wc3movie.mid
来自「君正早期ucos系统(只有早期的才不没有打包成库),MPLAYER,文件系统,图」· MID 代码 · 共 1,079 行
MID
1,079 行
.file 1 "wc3movie.c" .section .mdebug.abi32 .previous .section .text.wc3_probe,"ax",@progbits .align 2 .align 5 .ent wc3_probe .type wc3_probe, @functionwc3_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,8($4) slt $2,$2,12 bne $2,$0,$L9 move $3,$0 lw $6,4($4) lbu $3,3($6) lbu $2,2($6) sll $3,$3,24 sll $2,$2,16 lbu $4,1($6) lbu $5,0($6) or $3,$3,$2 or $3,$3,$5 sll $4,$4,8 li $2,1297219584 # 0x4d520000 or $4,$4,$3 ori $2,$2,0x4f46 bne $4,$2,$L2 nop lbu $2,11($6) lbu $3,10($6) sll $2,$2,24 sll $3,$3,16 lbu $5,8($6) lbu $4,9($6) or $2,$2,$3 or $2,$2,$5 sll $4,$4,8 or $4,$4,$2 li $2,1163264000 # 0x45560000 ori $2,$2,0x4f4d beq $4,$2,$L6 li $3,100 # 0x64$L2: move $3,$0$L6:$L9: j $31 move $2,$3 .set macro .set reorder .end wc3_probe .section .text.wc3_read_close,"ax",@progbits .align 2 .align 5 .ent wc3_read_close .type wc3_read_close, @functionwc3_read_close: .frame $sp,24,$31 # vars= 0, regs= 1/0, args= 16, gp= 0 .mask 0x80000000,-8 .fmask 0x00000000,0 .set noreorder .set nomacro addiu $sp,$sp,-24 sw $31,16($sp) lw $2,12($4) jal av_free lw $4,8($2) lw $31,16($sp) move $2,$0 j $31 addiu $sp,$sp,24 .set macro .set reorder .end wc3_read_close .section .rodata.str1.4,"aMS",@progbits,1 .align 2$LC0: .ascii "Subtitle time!\012\000" .align 2$LC1: .ascii " inglish: %s\012\000" .align 2$LC2: .ascii " doytsch: %s\012\000" .align 2$LC3: .ascii " fronsay: %s\012\000" .align 2$LC4: .ascii " unrecognized WC3 chunk: %c%c%c%c (0x%02X%02X%02X%02X)\012" .ascii "\000" .section .text.wc3_read_packet,"ax",@progbits .align 2 .align 5 .ent wc3_read_packet .type wc3_read_packet, @functionwc3_read_packet: .frame $sp,1120,$31 # vars= 1032, regs= 9/0, args= 48, gp= 0 .mask 0x80ff0000,-8 .fmask 0x00000000,0 .set noreorder .set nomacro addiu $sp,$sp,-1120 sw $22,1104($sp) sw $21,1100($sp) sw $20,1096($sp) sw $19,1092($sp) sw $31,1112($sp) sw $23,1108($sp) sw $18,1088($sp) sw $17,1084($sp) sw $16,1080($sp) lw $18,12($4) move $20,$4 move $22,$5 addiu $19,$4,16 addiu $21,$sp,48$L41: move $4,$19$L42: move $5,$21 jal get_buffer li $6,8 # 0x8 lbu $3,52($sp) lbu $2,53($sp) lbu $11,51($sp) lbu $10,50($sp) sll $2,$2,16 sll $3,$3,24 or $3,$3,$2 lbu $4,54($sp) sll $2,$10,16 lbu $6,55($sp) lbu $9,49($sp) sll $5,$11,24 lbu $8,48($sp) or $5,$5,$2 or $3,$3,$6 sll $2,$9,8 sll $4,$4,8 or $5,$5,$8 or $4,$4,$3 or $5,$2,$5 li $2,1229193216 # 0x49440000 addiu $4,$4,1 li $3,-2 # 0xfffffffffffffffe ori $2,$2,0x5541 beq $5,$2,$L16 and $16,$4,$3 sltu $2,$2,$5 bne $2,$0,$L19 li $2,1414463488 # 0x544f0000 li $2,541130752 # 0x20410000 ori $2,$2,0x4756 beq $5,$2,$L15 li $2,1212350464 # 0x48430000 ori $2,$2,0x5242 beq $5,$2,$L42 move $4,$19 lui $6,%hi($LC4)$L43: move $4,$20 addiu $6,$6,%lo($LC4) move $7,$8 move $5,$0 sw $10,36($sp) sw $10,20($sp) sw $9,32($sp) sw $11,40($sp) sw $9,16($sp) sw $11,24($sp) jal av_log sw $8,28($sp) li $10,-22 # 0xffffffffffffffea$L24: lw $31,1112($sp) lw $23,1108($sp) lw $22,1104($sp) lw $21,1100($sp) lw $20,1096($sp) lw $19,1092($sp) lw $18,1088($sp) lw $17,1084($sp) lw $16,1080($sp) move $2,$10 j $31 addiu $sp,$sp,1120$L19: ori $2,$2,0x4853 beq $5,$2,$L17 li $2,1415053312 # 0x54580000 ori $2,$2,0x4554 bne $5,$2,$L43 lui $6,%hi($LC4) sltu $2,$16,1025 beq $2,$0,$L42 move $4,$19 addiu $23,$sp,56 move $5,$23 jal get_buffer move $6,$16 bne $16,$2,$L41 lui $6,%hi($LC0) move $4,$20 addiu $6,$6,%lo($LC0) jal av_log li $5,2 # 0x2 lui $6,%hi($LC1) move $4,$20 addiu $7,$sp,57 addiu $6,$6,%lo($LC1) jal av_log li $5,2 # 0x2 lbu $17,56($sp) lui $6,%hi($LC2) addiu $16,$17,1 addu $7,$23,$16 move $4,$20 addiu $6,$6,%lo($LC2) addiu $7,$7,1 li $5,2 # 0x2 jal av_log addu $16,$21,$16 lbu $7,8($16) addiu $17,$17,2 addu $7,$7,$17 addu $7,$23,$7 lui $6,%hi($LC3) addiu $6,$6,%lo($LC3) addiu $7,$7,1 move $4,$20 jal av_log li $5,2 # 0x2 j $L42 move $4,$19$L16: move $4,$19 move $5,$22 jal av_get_packet move $6,$16 lw $6,16($18) lw $7,20($18) sw $6,0($22) sw $7,4($22) lw $4,16($18) xor $8,$16,$2 lw $5,20($18) move $10,$2 addiu $2,$4,6000 lw $9,28($18) sltu $7,$2,$4 addu $3,$7,$5 sw $2,16($18) sw $3,20($18) sw $9,24($22) li $6,-5 # 0xfffffffffffffffb movn $10,$6,$8 lw $31,1112($sp) lw $23,1108($sp) lw $22,1104($sp) lw $21,1100($sp) lw $20,1096($sp) lw $19,1092($sp) lw $18,1088($sp) lw $17,1084($sp) lw $16,1080($sp) move $2,$10 j $31 addiu $sp,$sp,1120$L17: move $4,$19 move $5,$21 jal get_buffer li $6,4 # 0x4 li $3,4 # 0x4 bne $2,$3,$L20 lbu $3,51($sp) lbu $2,50($sp) sll $3,$3,24 sll $2,$2,16 lbu $4,49($sp) lbu $5,48($sp) or $3,$3,$2 or $3,$3,$5 sll $4,$4,8 lw $2,12($18) or $4,$4,$3 sltu $2,$4,$2 beq $2,$0,$L34 sll $3,$4,10 sll $2,$4,8 lw $8,8($18) subu $6,$3,$2 move $7,$0 li $9,1024 # 0x400$L25: addu $2,$6,$8 lbu $3,0($2) lbu $5,2($2) lbu $4,1($2) sll $3,$3,16 or $3,$3,$5 sll $4,$4,8 addu $2,$7,$18 or $4,$4,$3 addiu $7,$7,4 sw $4,36($2) bne $7,$9,$L25 addiu $6,$6,3 li $2,1 # 0x1 j $L41 sw $2,32($18)$L15: move $4,$19 move $5,$22 jal av_get_packet move $6,$16 move $10,$2 lw $3,20($18) lw $2,16($18) lw $4,24($18) sw $2,0($22) sw $3,4($22) beq $16,$10,$L24 sw $4,24($22)$L20: li $10,-5 # 0xfffffffffffffffb lw $31,1112($sp) lw $23,1108($sp) lw $22,1104($sp) lw $21,1100($sp) lw $20,1096($sp) lw $19,1092($sp) lw $18,1088($sp) lw $17,1084($sp) lw $16,1080($sp) move $2,$10 j $31 addiu $sp,$sp,1120$L34: j $L24 li $10,-22 # 0xffffffffffffffea .set macro .set reorder .end wc3_read_packet .section .text.wc3_read_header,"ax",@progbits .align 2 .align 5 .ent wc3_read_header .type wc3_read_header, @functionwc3_read_header: .frame $sp,96,$31 # vars= 8, regs= 9/0, args= 48, gp= 0 .mask 0x80ff0000,-8 .fmask 0x00000000,0 .set noreorder .set nomacro addiu $sp,$sp,-96 sw $31,88($sp) sw $20,72($sp) sw $19,68($sp) sw $18,64($sp) sw $23,84($sp) sw $22,80($sp) sw $21,76($sp) sw $17,60($sp) sw $16,56($sp) lw $17,12($4) li $2,320 # 0x140 li $3,165 # 0xa5 sw $2,0($17) sw $3,4($17) addiu $18,$4,16 move $2,$0 move $3,$0 sw $2,16($17) sw $0,8($17) sw $0,12($17) sw $3,20($17) sw $0,28($17) sw $0,24($17) li $6,12 # 0xc move $7,$0 li $2,1 # 0x1 move $19,$4 addiu $20,$sp,48 move $4,$18 jal url_fseek sw $2,16($sp) move $4,$18 move $5,$20 jal get_buffer li $6,8 # 0x8 li $3,8 # 0x8 beq $2,$3,$L79 lbu $2,52($sp)$L45: li $8,-5 # 0xfffffffffffffffb$L59: lw $31,88($sp) lw $23,84($sp) lw $22,80($sp) lw $21,76($sp) lw $20,72($sp) lw $19,68($sp) lw $18,64($sp) lw $17,60($sp) lw $16,56($sp) move $2,$8 j $31 addiu $sp,$sp,96$L79: lbu $3,53($sp) lbu $5,55($sp) sll $3,$3,16 sll $2,$2,24 lbu $11,51($sp) lbu $10,50($sp) lbu $4,54($sp) or $2,$2,$3 or $2,$2,$5 sll $3,$10,16 sll $4,$4,8 lbu $9,49($sp) sll $5,$11,24 lbu $8,48($sp) or $5,$5,$3 or $4,$4,$2 li $3,-2 # 0xfffffffffffffffe sll $2,$9,8 or $5,$5,$8 addiu $4,$4,1 or $5,$2,$5 and $4,$4,$3 li $2,1296105472 # 0x4d410000 lui $3,%hi(wc3_pal_lookup) ori $21,$2,0x4e42 addiu $23,$3,%lo(wc3_pal_lookup) move $22,$0$L47: beq $5,$21,$L51 sltu $2,$21,$5 bne $2,$0,$L54 li $2,1480851456 # 0x58440000 li $2,1145962496 # 0x444e0000 ori $2,$2,0x4f53 beq $5,$2,$L49 li $2,1163526144 # 0x455a0000 ori $2,$2,0x4953 beq $5,$2,$L80 move $4,$18 lui $6,%hi($LC4)$L83: move $4,$19 move $7,$8 addiu $6,$6,%lo($LC4) move $5,$0 sw $8,28($sp) sw $9,32($sp) sw $10,36($sp) sw $11,40($sp) sw $9,16($sp) sw $10,20($sp) jal av_log sw $11,24($sp) li $8,-22 # 0xffffffffffffffea lw $31,88($sp) lw $23,84($sp) lw $22,80($sp) lw $21,76($sp) lw $20,72($sp) lw $19,68($sp) lw $18,64($sp) lw $17,60($sp) lw $16,56($sp) move $2,$8 j $31 addiu $sp,$sp,96$L54: ori $2,$2,0x4e49 beq $5,$2,$L49 li $2,1598226432 # 0x5f430000 ori $2,$2,0x505f beq $5,$2,$L53 li $2,1414266880 # 0x544c0000 ori $2,$2,0x4150 bne $5,$2,$L83 lui $6,%hi($LC4) lw $2,12($17) sltu $2,$22,$2 beq $2,$0,$L77 sll $3,$22,8 lw $5,8($17) sll $2,$22,10 subu $16,$2,$3 addu $5,$16,$5 move $4,$18 jal get_buffer li $6,768 # 0x300 li $3,768 # 0x300 bne $2,$3,$L59 li $8,-5 # 0xfffffffffffffffb addiu $6,$16,768 slt $2,$16,$6 beq $2,$0,$L67 move $7,$23$L68: lw $5,8($17) addu $5,$16,$5 lbu $2,0($5) addiu $16,$16,1 srl $3,$2,6 sll $2,$2,2 or $2,$2,$3 andi $2,$2,0x00ff addu $2,$2,$7 lbu $3,0($2) slt $4,$16,$6 bne $4,$0,$L68 sb $3,0($5)$L67: j $L55 addiu $22,$22,1$L51: sltu $2,$4,512 li $16,512 # 0x200 movn $16,$4,$2 addiu $5,$19,1216 move $4,$18 jal get_buffer move $6,$16 bne $16,$2,$L59 li $8,-5 # 0xfffffffffffffffb$L55: move $4,$18$L82: move $5,$20 jal get_buffer li $6,8 # 0x8 li $3,8 # 0x8 bne $2,$3,$L45 lbu $11,51($sp) lbu $10,50($sp) lbu $9,49($sp) sll $3,$10,16 sll $2,$11,24 lbu $8,48($sp) or $2,$2,$3 or $2,$2,$8 sll $3,$9,8 or $7,$3,$2 li $2,1212350464 # 0x48430000 ori $2,$2,0x5242 lbu $3,52($sp) lbu $5,53($sp) lbu $6,54($sp) beq $7,$2,$L70 lbu $4,55($sp) sll $2,$5,16 sll $3,$3,24 or $3,$3,$2 or $3,$3,$4 sll $2,$6,8 or $2,$2,$3 addiu $2,$2,1 li $3,-2 # 0xfffffffffffffffe and $4,$2,$3 j $L47 move $5,$7$L49: move $6,$4 move $7,$0 move $4,$18 li $2,1 # 0x1 jal url_fseek sw $2,16($sp) j $L82 move $4,$18$L70: move $4,$19 jal av_new_stream move $5,$0 bne $2,$0,$L81 move $16,$2$L72: j $L59 li $8,-12 # 0xfffffffffffffff4$L53: li $6,8 # 0x8 move $7,$0 move $4,$18 li $2,1 # 0x1 jal url_fseek sw $2,16($sp) move $4,$18 move $5,$20 jal get_buffer li $6,4 # 0x4 li $3,4 # 0x4 bne $2,$3,$L45 lbu $3,51($sp) lbu $2,50($sp) lbu $4,49($sp) sll $2,$2,16 lbu $5,48($sp) sll $3,$3,24 or $3,$3,$2 or $3,$3,$5 sll $4,$4,8 li $2,5570560 # 0x550000 or $4,$4,$3 ori $2,$2,0x5555 sltu $2,$4,$2 beq $2,$0,$L76 sw $4,12($17) sll $2,$4,10 sll $4,$4,8 jal av_malloc subu $4,$2,$4 j $L55 sw $2,8($17)$L80: move $5,$20 jal get_buffer li $6,8 # 0x8 li $3,8 # 0x8 bne $2,$3,$L45 lbu $2,51($sp) lbu $4,50($sp) lbu $5,48($sp) lbu $3,49($sp) sll $4,$4,16 sll $2,$2,24 or $2,$2,$4 or $2,$2,$5 sll $3,$3,8 or $3,$3,$2 sw $3,0($17) lbu $2,55($sp) lbu $4,54($sp) lbu $3,53($sp) lbu $5,52($sp) sll $2,$2,24 sll $4,$4,16 or $2,$2,$4 or $2,$2,$5 sll $3,$3,8 or $3,$3,$2 j $L55 sw $3,4($17)$L81: li $18,65536 # 0x10000 move $4,$2 li $5,33 # 0x21 li $6,1 # 0x1 jal av_set_pts_info ori $7,$18,0x5f90 lw $3,8($16) lw $2,0($16) addiu $4,$17,32 sw $2,24($17) sw $0,232($3) lw $2,0($17) sw $4,584($3) sw $2,40($3) lw $5,4($17) li $2,41 # 0x29 sw $5,44($3) sw $2,228($3) sw $0,224($3) move $4,$19 jal av_new_stream move $5,$0 beq $2,$0,$L72 move $16,$2 move $4,$2 li $5,33 # 0x21 li $6,1 # 0x1 jal av_set_pts_info ori $7,$18,0x5f90 lw $2,8($16) lw $4,0($16) li $5,22050 # 0x5622 li $3,1 # 0x1 li $7,16 # 0x10 sll $6,$5,4 move $8,$0 sw $4,28($17) sw $18,228($2) sw $7,272($2) sw $3,68($2) sw $6,4($2) sw $3,224($2) sw $3,232($2) sw $7,392($2) j $L59 sw $5,64($2)$L76: li $8,-1 # 0xffffffffffffffff j $L59 sw $0,12($17)$L77: j $L59 li $8,-22 # 0xffffffffffffffea .set macro .set reorder .end wc3_read_header .globl wc3_demuxer .section .rodata.str1.4 .align 2$LC5: .ascii "wc3movie\000" .align 2$LC6: .ascii "Wing Commander III movie format\000" .data .align 2 .type wc3_demuxer, @object .size wc3_demuxer, 64wc3_demuxer: .word $LC5 .word $LC6 .word 1064 .word wc3_probe .word wc3_read_header .word wc3_read_packet .word wc3_read_close .space 36 .rdata .align 2 .type wc3_pal_lookup, @object .size wc3_pal_lookup, 256wc3_pal_lookup: .byte 0 .byte 3 .byte 5 .byte 7 .byte 9 .byte 11 .byte 13 .byte 14 .byte 16 .byte 18 .byte 19 .byte 21 .byte 22 .byte 24 .byte 25 .byte 26 .byte 28 .byte 29 .byte 31 .byte 32 .byte 33 .byte 35 .byte 36 .byte 37 .byte 39 .byte 40 .byte 41 .byte 42 .byte 44 .byte 45 .byte 46 .byte 47 .byte 49 .byte 50 .byte 51 .byte 52 .byte 53 .byte 54 .byte 56 .byte 57 .byte 58 .byte 59 .byte 60 .byte 61 .byte 63 .byte 64 .byte 65 .byte 66 .byte 67 .byte 68 .byte 69 .byte 70 .byte 72 .byte 73 .byte 74 .byte 75 .byte 76 .byte 77 .byte 78 .byte 79 .byte 80 .byte 81 .byte 82 .byte 83 .byte 84 .byte 86 .byte 87 .byte 88 .byte 89 .byte 90 .byte 91 .byte 92 .byte 93 .byte 94 .byte 95 .byte 96 .byte 97 .byte 98 .byte 99 .byte 100 .byte 101 .byte 102 .byte 103 .byte 104 .byte 105 .byte 106 .byte 107 .byte 108 .byte 109 .byte 110 .byte 111 .byte 112 .byte 113 .byte 114 .byte 115 .byte 116 .byte 117 .byte 118 .byte 119 .byte 120 .byte 121 .byte 122 .byte 123 .byte 124 .byte 125 .byte 125 .byte 126 .byte 127 .byte -128 .byte -127 .byte -126 .byte -125 .byte -124 .byte -123 .byte -122 .byte -121 .byte -120 .byte -119 .byte -118 .byte -117 .byte -116 .byte -115 .byte -115 .byte -114 .byte -113 .byte -112 .byte -111 .byte -110 .byte -109 .byte -108 .byte -107 .byte -106 .byte -105 .byte -104 .byte -103 .byte -103 .byte -102 .byte -101 .byte -100 .byte -99 .byte -98 .byte -97 .byte -96 .byte -95 .byte -94 .byte -94 .byte -93 .byte -92 .byte -91 .byte -90 .byte -89 .byte -88 .byte -87 .byte -86 .byte -86 .byte -85 .byte -84 .byte -83 .byte -82 .byte -81 .byte -80 .byte -79 .byte -78 .byte -78 .byte -77 .byte -76 .byte -75 .byte -74 .byte -73 .byte -72 .byte -71 .byte -71 .byte -70 .byte -69 .byte -68 .byte -67 .byte -66 .byte -65 .byte -65 .byte -64 .byte -63 .byte -62 .byte -61 .byte -60 .byte -59 .byte -59 .byte -58 .byte -57 .byte -56 .byte -55 .byte -54 .byte -53 .byte -53 .byte -52 .byte -51 .byte -50 .byte -49 .byte -48 .byte -48 .byte -47 .byte -46 .byte -45 .byte -44 .byte -43 .byte -43 .byte -42 .byte -41 .byte -40 .byte -39 .byte -38 .byte -38 .byte -37 .byte -36 .byte -35 .byte -34 .byte -33 .byte -33 .byte -32 .byte -31 .byte -30 .byte -29 .byte -28 .byte -28 .byte -27 .byte -26 .byte -25 .byte -24 .byte -23 .byte -23 .byte -22 .byte -21 .byte -20 .byte -19 .byte -19 .byte -18 .byte -17 .byte -16 .byte -15 .byte -15 .byte -14 .byte -13 .byte -12 .byte -11 .byte -10 .byte -10 .byte -9 .byte -8 .byte -7 .byte -6 .byte -6 .byte -5 .byte -4 .byte -3 .byte -3 .byte -3 .byte -3 .ident "GCC: (GNU) 4.1.2"
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?