bethsoftvid.mid
来自「君正早期ucos系统(只有早期的才不没有打包成库),MPLAYER,文件系统,图」· MID 代码 · 共 876 行
MID
876 行
.file 1 "bethsoftvid.c" .section .mdebug.abi32 .previous .section .text.vid_probe,"ax",@progbits .align 2 .align 5 .ent vid_probe .type vid_probe, @functionvid_probe: .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 .mask 0x00000000,0 .fmask 0x00000000,0 .set noreorder .set nomacro lw $2,4($4) lbu $3,3($2) lbu $5,2($2) lbu $6,0($2) lbu $4,1($2) sll $5,$5,16 sll $3,$3,24 or $3,$3,$5 or $3,$3,$6 sll $4,$4,8 li $2,4456448 # 0x440000 or $4,$4,$3 ori $2,$2,0x4956 xor $4,$4,$2 li $2,100 # 0x64 j $31 movn $2,$0,$4 .set macro .set reorder .end vid_probe .section .rodata.str1.4,"aMS",@progbits,1 .align 2$LC0: .ascii "reached terminating character but not all frames read.\012" .ascii "\000" .align 2$LC1: .ascii "unknown block (character = %c, decimal = %d, hex = %x)!!" .ascii "!\012\000" .section .text.vid_read_packet,"ax",@progbits .align 2 .align 5 .ent vid_read_packet .type vid_read_packet, @functionvid_read_packet: .frame $sp,88,$31 # vars= 24, regs= 10/0, args= 24, gp= 0 .mask 0xc0ff0000,-4 .fmask 0x00000000,0 addiu $sp,$sp,-88 sw $19,60($sp) sw $17,52($sp) sw $31,84($sp) sw $fp,80($sp) sw $23,76($sp) sw $22,72($sp) sw $21,68($sp) sw $20,64($sp) sw $18,56($sp) sw $16,48($sp) lw $18,12($4) move $17,$4 lw $2,12($18) .set noreorder .set nomacro beq $2,$0,$L65 move $19,$5 .set macro .set reorder$L7: li $16,-5 # 0xfffffffffffffffb$L21: move $2,$16$L73: lw $31,84($sp) lw $fp,80($sp) lw $23,76($sp) lw $22,72($sp) lw $21,68($sp) lw $20,64($sp) lw $19,60($sp) lw $18,56($sp) lw $17,52($sp) lw $16,48($sp) .set noreorder .set nomacro j $31 addiu $sp,$sp,88 .set macro .set reorder$L65: addiu $20,$4,16 .set noreorder .set nomacro jal url_feof move $4,$20 .set macro .set reorder .set noreorder .set nomacro bne $2,$0,$L21 li $16,-5 # 0xfffffffffffffffb .set macro .set reorder .set noreorder .set nomacro jal get_byte move $4,$20 .set macro .set reorder andi $16,$2,0x00ff sltu $2,$16,5 .set noreorder .set nomacro beq $2,$0,$L16 li $2,124 # 0x7c .set macro .set reorder sltu $2,$16,3 .set noreorder .set nomacro beq $2,$0,$L11 li $3,1 # 0x1 .set macro .set reorder .set noreorder .set nomacro beq $16,$3,$L11 li $2,2 # 0x2 .set macro .set reorder .set noreorder .set nomacro beq $16,$2,$L66 li $6,-1 # 0xffffffffffffffff .set macro .set reorder lui $6,%hi($LC1)$L74: move $7,$16 move $4,$17 addiu $6,$6,%lo($LC1) move $5,$0 sw $16,16($sp) .set noreorder .set nomacro jal av_log sw $16,20($sp) .set macro .set reorder .set noreorder .set nomacro j $L21 li $16,-1 # 0xffffffffffffffff .set macro .set reorder$L16: .set noreorder .set nomacro beq $16,$2,$L14 li $2,125 # 0x7d .set macro .set reorder .set noreorder .set nomacro beq $16,$2,$L15 li $2,20 # 0x14 .set macro .set reorder .set noreorder .set nomacro bne $16,$2,$L74 lui $6,%hi($LC1) .set macro .set reorder lw $2,0($18) .set noreorder .set nomacro beq $2,$0,$L75 li $2,1 # 0x1 .set macro .set reorder lui $6,%hi($LC0) move $4,$17 addiu $6,$6,%lo($LC0) .set noreorder .set nomacro jal av_log li $5,1 # 0x1 .set macro .set reorder li $2,1 # 0x1$L75: li $16,-5 # 0xfffffffffffffffb .set noreorder .set nomacro j $L21 sw $2,12($18) .set macro .set reorder$L11: lw $2,100($17) li $4,1000 # 0x3e8 lw $3,8($2) li $2,1000 # 0x3e8 lw $6,44($3) lw $5,40($3) sw $2,24($sp) mul $2,$5,$6 .set noreorder .set nomacro jal av_malloc sw $2,32($sp) .set macro .set reorder .set noreorder .set nomacro beq $2,$0,$L23 move $21,$2 .set macro .set reorder move $4,$20 .set noreorder .set nomacro jal url_ftell andi $fp,$16,0x00ff .set macro .set reorder sw $2,40($sp) sw $3,44($sp) sb $fp,0($21) lw $16,8($18) lw $17,4($18) .set noreorder .set nomacro jal get_le16 move $4,$20 .set macro .set reorder addu $16,$16,$17 addu $2,$2,$16 sw $2,8($18) li $2,4 # 0x4 .set noreorder .set nomacro bne $fp,$2,$L67 move $4,$20 .set macro .set reorder addiu $5,$21,1 .set noreorder .set nomacro jal get_buffer li $6,2 # 0x2 .set macro .set reorder li $3,2 # 0x2 beq $2,$3,$L68$L28: .set noreorder .set nomacro jal av_free move $4,$21 .set macro .set reorder .set noreorder .set nomacro j $L21 li $16,-1 # 0xffffffffffffffff .set macro .set reorder$L14: .set noreorder .set nomacro jal get_le16 move $4,$20 .set macro .set reorder lw $3,104($17) move $4,$20 .set noreorder .set nomacro jal get_byte lw $16,8($3) .set macro .set reorder li $3,256 # 0x100 subu $3,$3,$2 li $2,983040 # 0xf0000 ori $2,$2,0x4240 div $0,$2,$3 teq $3,$0,7 lw $4,104($17) lw $5,8($4) lw $3,68($5) lw $6,392($5) mflo $2 sw $2,64($16) lw $4,64($5) mul $3,$3,$4 mul $3,$3,$6 sw $3,4($5)$L15: .set noreorder .set nomacro jal get_le16 move $4,$20 .set macro .set reorder move $6,$2 move $4,$20 move $5,$19 .set noreorder .set nomacro jal av_get_packet move $16,$2 .set macro .set reorder li $3,1 # 0x1 .set noreorder .set nomacro bne $16,$2,$L7 sw $3,24($19) .set macro .set reorder .set noreorder .set nomacro j $L73 move $2,$16 .set macro .set reorder$L23: .set noreorder .set nomacro j $L21 li $16,-12 # 0xfffffffffffffff4 .set macro .set reorder$L68: li $16,3 # 0x3$L27: .set noreorder .set nomacro j $L30 move $22,$0 .set macro .set reorder$L71: li $2,3 # 0x3 .set noreorder .set nomacro beq $fp,$2,$L69 move $4,$20 .set macro .set reorder$L34: andi $2,$17,0x7f$L77: lw $3,32($sp) addu $22,$22,$2 .set noreorder .set nomacro beq $3,$22,$L70 slt $2,$3,$22 .set macro .set reorder bne $2,$0,$L28 .set noreorder .set nomacro beq $17,$0,$L76 move $4,$19 .set macro .set reorder$L30: move $4,$21 addiu $6,$16,1000 .set noreorder .set nomacro jal av_fast_realloc addiu $5,$sp,24 .set macro .set reorder move $23,$2 move $4,$20 .set noreorder .set nomacro beq $2,$0,$L23 move $21,$2 .set macro .set reorder jal get_byte move $17,$2 slt $3,$17,128 addu $2,$23,$16 sb $17,0($2) .set noreorder .set nomacro beq $3,$0,$L71 addiu $16,$16,1 .set macro .set reorder addu $5,$23,$16 move $4,$20 .set noreorder .set nomacro beq $17,$0,$L34 move $6,$17 .set macro .set reorder .set noreorder .set nomacro jal get_buffer addu $16,$16,$17 .set macro .set reorder .set noreorder .set nomacro beq $17,$2,$L77 andi $2,$17,0x7f .set macro .set reorder j $L28$L70: .set noreorder .set nomacro jal get_byte move $4,$20 .set macro .set reorder .set noreorder .set nomacro beq $2,$0,$L76 move $4,$19 .set macro .set reorder li $2,1 # 0x1 move $4,$20 li $6,-1 # 0xffffffffffffffff li $7,-1 # 0xffffffffffffffff .set noreorder .set nomacro jal url_fseek sw $2,16($sp) .set macro .set reorder move $4,$19$L76: .set noreorder .set nomacro jal av_new_packet move $5,$16 .set macro .set reorder .set noreorder .set nomacro bltz $2,$L28 sltu $2,$16,32 .set macro .set reorder .set noreorder .set nomacro bne $2,$0,$L44 lw $4,16($19) .set macro .set reorder andi $2,$4,0x3 .set noreorder .set nomacro bne $2,$0,$L44 andi $2,$23,0x3 .set macro .set reorder .set noreorder .set nomacro bne $2,$0,$L78 move $5,$23 .set macro .set reorder li $2,-32 # 0xffffffffffffffe0 addiu $4,$4,-4 and $2,$16,$2 addu $6,$4,$2 sltu $3,$4,$6 .set noreorder .set nomacro beq $3,$0,$L48 addiu $5,$23,-4 .set macro .set reorder$L59:#APP S32LDI xr1,$5,4 S32LDI xr2,$5,4 S32LDI xr3,$5,4 S32LDI xr4,$5,4 S32LDI xr5,$5,4 S32LDI xr6,$5,4 S32LDI xr7,$5,4 S32LDI xr8,$5,4 S32SDI xr1,$4,4 S32SDI xr2,$4,4 S32SDI xr3,$4,4 S32SDI xr4,$4,4 S32SDI xr5,$4,4 S32SDI xr6,$4,4 S32SDI xr7,$4,4 S32SDI xr8,$4,4#NO_APP sltu $2,$4,$6 bne $2,$0,$L59$L48: andi $2,$16,0x1c addu $6,$6,$2 sltu $3,$4,$6 .set noreorder .set nomacro beq $3,$0,$L79 andi $3,$16,0x3 .set macro .set reorder$L60:#APP S32LDI xr1,$5,4 S32SDI xr1,$4,4#NO_APP sltu $2,$4,$6 .set noreorder .set nomacro bne $2,$0,$L60 andi $3,$16,0x3 .set macro .set reorder$L79: li $2,2 # 0x2 .set noreorder .set nomacro beq $3,$2,$L54 li $2,3 # 0x3 .set macro .set reorder .set noreorder .set nomacro beq $3,$2,$L55 li $2,1 # 0x1 .set macro .set reorder bne $3,$2,$L52 lbu $2,4($5) sb $2,4($4)$L52: .set noreorder .set nomacro jal av_free move $4,$23 .set macro .set reorder sw $0,24($19) lw $3,40($sp) lw $6,8($18) lw $2,0($18) addiu $4,$3,-1 sra $5,$4,31 sra $3,$6,31 addiu $2,$2,-1 sw $3,4($19) sw $2,0($18) sw $5,52($19) sw $4,48($19) .set noreorder .set nomacro j $L21 sw $6,0($19) .set macro .set reorder$L44: move $5,$23$L78: .set noreorder .set nomacro jal memcpy move $6,$16 .set macro .set reorder j $L52$L67: .set noreorder .set nomacro j $L27 li $16,1 # 0x1 .set macro .set reorder$L66: li $7,-1 # 0xffffffffffffffff move $4,$20 .set noreorder .set nomacro jal url_fseek sw $3,16($sp) .set macro .set reorder move $4,$20 move $5,$19 .set noreorder .set nomacro jal av_get_packet li $6,769 # 0x301 .set macro .set reorder move $16,$2 li $2,769 # 0x301 bne $16,$2,$L72 .set noreorder .set nomacro j $L21 sw $0,24($19) .set macro .set reorder$L69: jal get_byte addu $3,$23,$16 addiu $16,$16,1 .set noreorder .set nomacro j $L34 sb $2,0($3) .set macro .set reorder$L72: .set noreorder .set nomacro beq $19,$0,$L21 li $16,-5 # 0xfffffffffffffffb .set macro .set reorder lw $2,36($19) beq $2,$0,$L21 .set noreorder .set nomacro jal $2 move $4,$19 .set macro .set reorder .set noreorder .set nomacro j $L21 li $16,-5 # 0xfffffffffffffffb .set macro .set reorder$L55: lbu $2,4($5) sb $2,4($4) lbu $3,5($5) sb $3,5($4) lbu $2,6($5) .set noreorder .set nomacro j $L52 sb $2,6($4) .set macro .set reorder$L54: lbu $2,4($5) sb $2,4($4) lbu $3,5($5) .set noreorder .set nomacro j $L52 sb $3,5($4) .set macro .set reorder .end vid_read_packet .section .text.vid_read_header,"ax",@progbits .align 2 .align 5 .ent vid_read_header .type vid_read_header, @functionvid_read_header: .frame $sp,56,$31 # vars= 0, regs= 7/0, args= 24, gp= 0 .mask 0x803f0000,-8 .fmask 0x00000000,0 .set noreorder .set nomacro addiu $sp,$sp,-56 sw $21,44($sp) sw $18,32($sp) li $21,1 # 0x1 addiu $18,$4,16 sw $31,48($sp) li $6,5 # 0x5 move $7,$0 sw $19,36($sp) sw $17,28($sp) move $19,$4 sw $20,40($sp) sw $16,24($sp) move $4,$18 sw $21,16($sp) jal url_fseek lw $20,12($19) jal get_le16 move $4,$18 sw $2,0($20) move $4,$19 jal av_new_stream move $5,$0 move $17,$2 li $6,1 # 0x1 li $7,60 # 0x3c li $5,32 # 0x20 bne $2,$0,$L86 move $4,$2$L81: li $4,-12 # 0xfffffffffffffff4$L84: lw $31,48($sp) lw $21,44($sp) lw $20,40($sp) lw $19,36($sp) lw $18,32($sp) lw $17,28($sp) lw $16,24($sp) move $2,$4 j $31 addiu $sp,$sp,56$L86: jal av_set_pts_info nop lw $16,8($17) li $2,107 # 0x6b sw $2,228($16) sw $0,224($16) jal get_le16 move $4,$18 sw $2,40($16) move $4,$18 jal get_le16 lw $16,8($17) lw $3,8($17) sw $2,44($16) li $2,14 # 0xe sw $2,52($3) jal get_le16 move $4,$18 sw $2,4($20) jal get_le16 move $4,$18 move $4,$19 jal av_new_stream move $5,$0 li $5,11025 # 0x2b11 sll $3,$5,3 beq $2,$0,$L81 move $4,$0 lw $2,8($2) sw $3,4($2) li $3,65536 # 0x10000 ori $3,$3,0x5 sw $3,228($2) li $3,8 # 0x8 sw $21,68($2) sw $3,392($2) sw $21,224($2) j $L84 sw $5,64($2) .set macro .set reorder .end vid_read_header .globl bethsoftvid_demuxer .section .rodata.str1.4 .align 2$LC2: .ascii "bethsoftvid\000" .align 2$LC3: .ascii "Bethesda Softworks 'Daggerfall' VID format\000" .data .align 2 .type bethsoftvid_demuxer, @object .size bethsoftvid_demuxer, 64bethsoftvid_demuxer: .word $LC2 .word $LC3 .word 16 .word vid_probe .word vid_read_header .word vid_read_packet .space 40 .ident "GCC: (GNU) 4.1.2"
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?