diff --git a/src/include/lib/lib_3e8c0.h b/src/include/lib/lib_3e8c0.h index aa88b7090..759d7766e 100644 --- a/src/include/lib/lib_3e8c0.h +++ b/src/include/lib/lib_3e8c0.h @@ -39,7 +39,7 @@ extern const u32 var700576c8[]; extern const u32 var70057750[]; bool func0003f8a0(void); -void func00040164(struct asistream *stream, u32 gr, u32 ch); +bool func00040164(struct asistream *stream, u32 gr, u32 ch); bool mp3decUnpackScaleFac(struct asistream *stream, u32 gr, u32 ch); void func00041600(struct asistream *stream, u32 gr, u32 ch); bool func00042238(struct asistream *stream, u32 gr, u32 ch); diff --git a/src/include/lib/lib_461c0.h b/src/include/lib/lib_461c0.h index 6d8662d65..d42253d94 100644 --- a/src/include/lib/lib_461c0.h +++ b/src/include/lib/lib_461c0.h @@ -7,7 +7,7 @@ u32 func000461c0(void); u32 func00046290(void); s32 mp3decGetBits(u8 *buffer, s32 *count, s32 numbits); -s32 func000462f8(u8 *arg0, s32 *arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, u8 **arg6, u8 **arg7); -s32 func000464a8(u8 *arg0, s32 *arg1, s32 arg2, s32 arg3, s32 arg4, u8 **arg5, u8 **arg6); +s32 func000462f8(u8 *arg0, s32 *arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s16 **arg6, u8 **arg7); +s32 func000464a8(u8 *arg0, s32 *arg1, s32 arg2, s32 arg3, s32 arg4, s16 **arg5, u8 **arg6); #endif diff --git a/src/include/types.h b/src/include/types.h index a3f735b0b..3339672c4 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -7392,7 +7392,7 @@ struct asistream { /*0x3bf8*/ u32 scfsi[1][32]; /*0x3c78*/ u32 part2_3_length[2][1]; /*0x3c80*/ u32 big_value[2][1]; - /*0x3c88*/ u32 global_gain[2][1]; + /*0x3c88*/ s32 global_gain[2][1]; /*0x3c90*/ u32 scalefac_compress[2][1]; /*0x3c98*/ u32 window_switching[2][1]; /*0x3ca0*/ u32 block_type[2][1]; @@ -7416,11 +7416,11 @@ struct asistream { /*0x3f88*/ s32 unk3f88; /*0x3f8c*/ s32 numchannels; /*0x3f90*/ s32 numgranules; - /*0x3f94*/ u8 unk3f94[1][0x484]; + /*0x3f94*/ s16 unk3f94[1][0x242]; /*0x4418*/ u8 unk4418[1][0x242]; /*0x465c*/ s32 unk465c[1]; /*0x4660*/ s32 unk4660[1]; - /*0x4664*/ struct asistream_4f64 unk4664[32]; + /*0x4664*/ struct asistream_4f64 unk4664[1][32]; /*0x4f64*/ struct asistream_4f64 unk4f64[2][32]; /*0x6164*/ u8 unk6164[0x900]; /*0x6a64*/ struct asistream_4f64 unk6a64[2][32]; diff --git a/src/lib/lib_3f8a0.c b/src/lib/lib_3f8a0.c index 8e532e3d0..828f37389 100644 --- a/src/lib/lib_3f8a0.c +++ b/src/lib/lib_3f8a0.c @@ -2965,121 +2965,19 @@ const u8 var70057968[2][3][13] = { }, }; -const u32 var700579b8[] = {0x00000006}; -const u32 var700579bc[] = {0x000c0012}; -const u32 var700579c0[] = {0x0018001e}; -const u32 var700579c4[] = {0x0024002c}; +struct mp3decthing2 { + s16 unk00[23]; + s16 unk2e[14]; +}; -const u32 var700579c8[] = {0x00360042}; -const u32 var700579cc[] = {0x00500060}; -const u32 var700579d0[] = {0x0074008c}; -const u32 var700579d4[] = {0x00a800c8}; -const u32 var700579d8[] = {0x00ee011c}; -const u32 var700579dc[] = {0x0150018c}; -const u32 var700579e0[] = {0x01d0020a}; - -const u32 var700579e4[] = {0x02400000}; - -const u32 var700579e8[] = {0x00040008}; - -const u32 var700579ec[] = {0x000c0012}; -const u32 var700579f0[] = {0x00180020}; -const u32 var700579f4[] = {0x002a0038}; -const u32 var700579f8[] = {0x004a0064}; -const u32 var700579fc[] = {0x008400ae}; -const u32 var70057a00[] = {0x00c00000}; -const u32 var70057a04[] = {0x0006000c}; -const u32 var70057a08[] = {0x00120018}; -const u32 var70057a0c[] = {0x001e0024}; -const u32 var70057a10[] = {0x002c0036}; -const u32 var70057a14[] = {0x00420050}; -const u32 var70057a18[] = {0x00600072}; -const u32 var70057a1c[] = {0x008800a2}; -const u32 var70057a20[] = {0x00c200e8}; -const u32 var70057a24[] = {0x0116014a}; -const u32 var70057a28[] = {0x018a01d0}; -const u32 var70057a2c[] = {0x021c0240}; -const u32 var70057a30[] = {0x00000004}; -const u32 var70057a34[] = {0x0008000c}; -const u32 var70057a38[] = {0x0012001a}; -const u32 var70057a3c[] = {0x00240030}; -const u32 var70057a40[] = {0x003e0050}; -const u32 var70057a44[] = {0x00680088}; -const u32 var70057a48[] = {0x00b400c0}; -const u32 var70057a4c[] = {0x00000006}; -const u32 var70057a50[] = {0x000c0012}; -const u32 var70057a54[] = {0x0018001e}; -const u32 var70057a58[] = {0x0024002c}; -const u32 var70057a5c[] = {0x00360042}; -const u32 var70057a60[] = {0x00500060}; -const u32 var70057a64[] = {0x0074008c}; -const u32 var70057a68[] = {0x00a800c8}; -const u32 var70057a6c[] = {0x00ee011c}; -const u32 var70057a70[] = {0x0150018c}; -const u32 var70057a74[] = {0x01d0020a}; -const u32 var70057a78[] = {0x02400000}; -const u32 var70057a7c[] = {0x00040008}; -const u32 var70057a80[] = {0x000c0012}; -const u32 var70057a84[] = {0x001a0024}; -const u32 var70057a88[] = {0x0030003e}; -const u32 var70057a8c[] = {0x00500068}; -const u32 var70057a90[] = {0x008600ae}; -const u32 var70057a94[] = {0x00c00000}; -const u32 var70057a98[] = {0x00040008}; -const u32 var70057a9c[] = {0x000c0010}; -const u32 var70057aa0[] = {0x00140018}; -const u32 var70057aa4[] = {0x001e0024}; -const u32 var70057aa8[] = {0x002c0034}; -const u32 var70057aac[] = {0x003e004a}; -const u32 var70057ab0[] = {0x005a006e}; -const u32 var70057ab4[] = {0x008600a2}; -const u32 var70057ab8[] = {0x00c400ee}; -const u32 var70057abc[] = {0x01200156}; -const u32 var70057ac0[] = {0x01a20240}; -const u32 var70057ac4[] = {0x00000004}; -const u32 var70057ac8[] = {0x0008000c}; -const u32 var70057acc[] = {0x00100016}; -const u32 var70057ad0[] = {0x001e0028}; -const u32 var70057ad4[] = {0x00340042}; -const u32 var70057ad8[] = {0x0054006a}; -const u32 var70057adc[] = {0x008800c0}; -const u32 var70057ae0[] = {0x00000004}; -const u32 var70057ae4[] = {0x0008000c}; -const u32 var70057ae8[] = {0x00100014}; -const u32 var70057aec[] = {0x0018001e}; -const u32 var70057af0[] = {0x0024002a}; -const u32 var70057af4[] = {0x0032003c}; -const u32 var70057af8[] = {0x00480058}; -const u32 var70057afc[] = {0x006a0080}; -const u32 var70057b00[] = {0x009c00be}; -const u32 var70057b04[] = {0x00e60114}; -const u32 var70057b08[] = {0x014a0180}; -const u32 var70057b0c[] = {0x02400000}; -const u32 var70057b10[] = {0x00040008}; -const u32 var70057b14[] = {0x000c0010}; -const u32 var70057b18[] = {0x0016001c}; -const u32 var70057b1c[] = {0x00260032}; -const u32 var70057b20[] = {0x00400050}; -const u32 var70057b24[] = {0x0064007e}; -const u32 var70057b28[] = {0x00c00000}; -const u32 var70057b2c[] = {0x00040008}; -const u32 var70057b30[] = {0x000c0010}; -const u32 var70057b34[] = {0x00140018}; -const u32 var70057b38[] = {0x001e0024}; -const u32 var70057b3c[] = {0x002c0036}; -const u32 var70057b40[] = {0x00420052}; -const u32 var70057b44[] = {0x0066007e}; -const u32 var70057b48[] = {0x009c00c2}; -const u32 var70057b4c[] = {0x00f00128}; -const u32 var70057b50[] = {0x016c01c0}; -const u32 var70057b54[] = {0x02260240}; -const u32 var70057b58[] = {0x00000004}; -const u32 var70057b5c[] = {0x0008000c}; -const u32 var70057b60[] = {0x00100016}; -const u32 var70057b64[] = {0x001e002a}; -const u32 var70057b68[] = {0x003a004e}; -const u32 var70057b6c[] = {0x0068008a}; -const u32 var70057b70[] = {0x00b400c0}; +const struct mp3decthing2 var700579b8[6] = { + { { 0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576 }, { 0, 4, 8, 12, 18, 24, 32, 42, 56, 74, 100, 132, 174, 192 } }, + { { 0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 114, 136, 162, 194, 232, 278, 330, 394, 464, 540, 576 }, { 0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 136, 180, 192 } }, + { { 0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576 }, { 0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192 } }, + { { 0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 52, 62, 74, 90, 110, 134, 162, 196, 238, 288, 342, 418, 576 }, { 0, 4, 8, 12, 16, 22, 30, 40, 52, 66, 84, 106, 136, 192 } }, + { { 0, 4, 8, 12, 16, 20, 24, 30, 36, 42, 50, 60, 72, 88, 106, 128, 156, 190, 230, 276, 330, 384, 576 }, { 0, 4, 8, 12, 16, 22, 28, 38, 50, 64, 80, 100, 126, 192 } }, + { { 0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 54, 66, 82, 102, 126, 156, 194, 240, 296, 364, 448, 550, 576 }, { 0, 4, 8, 12, 16, 22, 30, 42, 58, 78, 104, 138, 180, 192 } }, +}; const u8 var70057b74[] = { 0, 6, 11, 16, 21, 0, 6, 12 }; @@ -3735,853 +3633,145 @@ bool func0003f8a0(void) return true; } -const u32 var70059adc[] = {0x00000000}; -const u32 var70059ae0[] = {0x00000000}; -const u32 var70059ae4[] = {0x00000000}; -const u32 var70059ae8[] = {0x00000000}; -const u32 var70059aec[] = {0x00000000}; -const u32 var70059af0[] = {0x00000000}; -const u32 var70059af4[] = {0x00000000}; -const u32 var70059af8[] = {0x00000000}; -const u32 var70059afc[] = {0x00000000}; -const u32 var70059b00[] = {0x00000000}; -const u32 var70059b04[] = {0x00000000}; -const u32 var70059b08[] = {0x00000001}; -const u32 var70059b0c[] = {0x00000001}; -const u32 var70059b10[] = {0x00000001}; -const u32 var70059b14[] = {0x00000001}; -const u32 var70059b18[] = {0x00000002}; -const u32 var70059b1c[] = {0x00000002}; -const u32 var70059b20[] = {0x00000003}; -const u32 var70059b24[] = {0x00000003}; -const u32 var70059b28[] = {0x00000003}; -const u32 var70059b2c[] = {0x00000002}; -const u32 var70059b30[] = {0x00000000}; +bool func00040164(struct asistream *stream, u32 gr, u32 ch) +{ + s32 sp1bc; + s32 sp1b8; + s32 sp1b4; + s32 sp1b0; -GLOBAL_ASM( -glabel func00040164 -/* 40164: 27bdfe40 */ addiu $sp,$sp,-448 -/* 40168: afbf001c */ sw $ra,0x1c($sp) -/* 4016c: afa401c0 */ sw $a0,0x1c0($sp) -/* 40170: afa501c4 */ sw $a1,0x1c4($sp) -/* 40174: afa601c8 */ sw $a2,0x1c8($sp) -/* 40178: afb00018 */ sw $s0,0x18($sp) -/* 4017c: 3c0f7006 */ lui $t7,%hi(var70059adc) -/* 40180: 25ef9adc */ addiu $t7,$t7,%lo(var70059adc) -/* 40184: 25e80054 */ addiu $t0,$t7,0x54 -/* 40188: 27ae0158 */ addiu $t6,$sp,0x158 -.L0004018c: -/* 4018c: 8df90000 */ lw $t9,0x0($t7) -/* 40190: 25ef000c */ addiu $t7,$t7,0xc -/* 40194: 25ce000c */ addiu $t6,$t6,0xc -/* 40198: add9fff4 */ sw $t9,-0xc($t6) -/* 4019c: 8df8fff8 */ lw $t8,-0x8($t7) -/* 401a0: add8fff8 */ sw $t8,-0x8($t6) -/* 401a4: 8df9fffc */ lw $t9,-0x4($t7) -/* 401a8: 15e8fff8 */ bne $t7,$t0,.L0004018c -/* 401ac: add9fffc */ sw $t9,-0x4($t6) -/* 401b0: 8df90000 */ lw $t9,0x0($t7) -/* 401b4: add90000 */ sw $t9,0x0($t6) -/* 401b8: 8fa901c0 */ lw $t1,0x1c0($sp) -/* 401bc: 8d2b3ba4 */ lw $t3,0x3ba4($t1) -/* 401c0: 8d2a3bb4 */ lw $t2,0x3bb4($t1) -/* 401c4: 000b6080 */ sll $t4,$t3,0x2 -/* 401c8: 018b6023 */ subu $t4,$t4,$t3 -/* 401cc: 014c6821 */ addu $t5,$t2,$t4 -/* 401d0: afad01bc */ sw $t5,0x1bc($sp) -/* 401d4: 8faf01c4 */ lw $t7,0x1c4($sp) -/* 401d8: 8fa801c0 */ lw $t0,0x1c0($sp) -/* 401dc: 8fb901c8 */ lw $t9,0x1c8($sp) -/* 401e0: 000f7080 */ sll $t6,$t7,0x2 -/* 401e4: 010ec021 */ addu $t8,$t0,$t6 -/* 401e8: 00194880 */ sll $t1,$t9,0x2 -/* 401ec: 03095821 */ addu $t3,$t8,$t1 -/* 401f0: 8d6a3c98 */ lw $t2,0x3c98($t3) -/* 401f4: 11400033 */ beqz $t2,.L000402c4 -/* 401f8: 00000000 */ nop -/* 401fc: 8d6c3ca0 */ lw $t4,0x3ca0($t3) -/* 40200: 24010002 */ addiu $at,$zero,0x2 -/* 40204: 1581002f */ bne $t4,$at,.L000402c4 -/* 40208: 00000000 */ nop -/* 4020c: 8faf01c4 */ lw $t7,0x1c4($sp) -/* 40210: 8fad01c0 */ lw $t5,0x1c0($sp) -/* 40214: 8fb901c8 */ lw $t9,0x1c8($sp) -/* 40218: 000f4080 */ sll $t0,$t7,0x2 -/* 4021c: 01a87021 */ addu $t6,$t5,$t0 -/* 40220: 0019c080 */ sll $t8,$t9,0x2 -/* 40224: 01d84821 */ addu $t1,$t6,$t8 -/* 40228: 8d2a3ca8 */ lw $t2,0x3ca8($t1) -/* 4022c: 1140000c */ beqz $t2,.L00040260 -/* 40230: 00000000 */ nop -/* 40234: 8fab01bc */ lw $t3,0x1bc($sp) -/* 40238: 3c0f7005 */ lui $t7,%hi(var700579b8+0x2) -/* 4023c: 000b60c0 */ sll $t4,$t3,0x3 -/* 40240: 018b6021 */ addu $t4,$t4,$t3 -/* 40244: 000c6080 */ sll $t4,$t4,0x2 -/* 40248: 018b6021 */ addu $t4,$t4,$t3 -/* 4024c: 000c6040 */ sll $t4,$t4,0x1 -/* 40250: 01ec7821 */ addu $t7,$t7,$t4 -/* 40254: 85ef79ba */ lh $t7,%lo(var700579b8+0x2)($t7) -/* 40258: 10000018 */ b .L000402bc -/* 4025c: afaf01b8 */ sw $t7,0x1b8($sp) -.L00040260: -/* 40260: 8fad01bc */ lw $t5,0x1bc($sp) -/* 40264: 3c197005 */ lui $t9,%hi(var700579e8) -/* 40268: 000d40c0 */ sll $t0,$t5,0x3 -/* 4026c: 010d4021 */ addu $t0,$t0,$t5 -/* 40270: 00084080 */ sll $t0,$t0,0x2 -/* 40274: 010d4021 */ addu $t0,$t0,$t5 -/* 40278: 00084040 */ sll $t0,$t0,0x1 -/* 4027c: 0328c821 */ addu $t9,$t9,$t0 -/* 40280: 873979e8 */ lh $t9,%lo(var700579e8)($t9) -/* 40284: 00197080 */ sll $t6,$t9,0x2 -/* 40288: 01d97023 */ subu $t6,$t6,$t9 -/* 4028c: afae01b8 */ sw $t6,0x1b8($sp) -/* 40290: 8fb801bc */ lw $t8,0x1bc($sp) -/* 40294: 3c0a7005 */ lui $t2,%hi(var700579e8) -/* 40298: 001848c0 */ sll $t1,$t8,0x3 -/* 4029c: 01384821 */ addu $t1,$t1,$t8 -/* 402a0: 00094880 */ sll $t1,$t1,0x2 -/* 402a4: 01384821 */ addu $t1,$t1,$t8 -/* 402a8: 00094840 */ sll $t1,$t1,0x1 -/* 402ac: 01495021 */ addu $t2,$t2,$t1 -/* 402b0: 854a79e8 */ lh $t2,%lo(var700579e8)($t2) -/* 402b4: afaa01b0 */ sw $t2,0x1b0($sp) -/* 402b8: afa001b4 */ sw $zero,0x1b4($sp) -.L000402bc: -/* 402bc: 1000000b */ b .L000402ec -/* 402c0: 00000000 */ nop -.L000402c4: -/* 402c4: 8fab01bc */ lw $t3,0x1bc($sp) -/* 402c8: 3c0f7005 */ lui $t7,%hi(var700579b8+0x2) -/* 402cc: 000b60c0 */ sll $t4,$t3,0x3 -/* 402d0: 018b6021 */ addu $t4,$t4,$t3 -/* 402d4: 000c6080 */ sll $t4,$t4,0x2 -/* 402d8: 018b6021 */ addu $t4,$t4,$t3 -/* 402dc: 000c6040 */ sll $t4,$t4,0x1 -/* 402e0: 01ec7821 */ addu $t7,$t7,$t4 -/* 402e4: 85ef79ba */ lh $t7,%lo(var700579b8+0x2)($t7) -/* 402e8: afaf01b8 */ sw $t7,0x1b8($sp) -.L000402ec: -/* 402ec: 8fa801c4 */ lw $t0,0x1c4($sp) -/* 402f0: 8fad01c0 */ lw $t5,0x1c0($sp) -/* 402f4: 8fb801c8 */ lw $t8,0x1c8($sp) -/* 402f8: 0008c880 */ sll $t9,$t0,0x2 -/* 402fc: 01b97021 */ addu $t6,$t5,$t9 -/* 40300: 00184880 */ sll $t1,$t8,0x2 -/* 40304: 01c95021 */ addu $t2,$t6,$t1 -/* 40308: 8d4b3c88 */ lw $t3,0x3c88($t2) -/* 4030c: 3c014000 */ lui $at,0x4000 -/* 40310: 44816000 */ mtc1 $at,$f12 -/* 40314: 448b2000 */ mtc1 $t3,$f4 -/* 40318: 3c014352 */ lui $at,0x4352 -/* 4031c: 44814000 */ mtc1 $at,$f8 -/* 40320: 468021a0 */ cvt.s.w $f6,$f4 -/* 40324: 3c013e80 */ lui $at,0x3e80 -/* 40328: 44818000 */ mtc1 $at,$f16 -/* 4032c: 46083281 */ sub.s $f10,$f6,$f8 -/* 40330: 46105382 */ mul.s $f14,$f10,$f16 -/* 40334: 0c0117b4 */ jal func00045ed0 -/* 40338: 00000000 */ nop -/* 4033c: e7a00060 */ swc1 $f0,0x60($sp) -/* 40340: 8faf01c4 */ lw $t7,0x1c4($sp) -/* 40344: 8fac01c0 */ lw $t4,0x1c0($sp) -/* 40348: 8fb901c8 */ lw $t9,0x1c8($sp) -/* 4034c: 000f4080 */ sll $t0,$t7,0x2 -/* 40350: 01886821 */ addu $t5,$t4,$t0 -/* 40354: 0019c080 */ sll $t8,$t9,0x2 -/* 40358: 01b87021 */ addu $t6,$t5,$t8 -/* 4035c: 8dc93cf8 */ lw $t1,0x3cf8($t6) -/* 40360: afa90054 */ sw $t1,0x54($sp) -/* 40364: afa0005c */ sw $zero,0x5c($sp) -.L00040368: -/* 40368: 8fab01c4 */ lw $t3,0x1c4($sp) -/* 4036c: 8faa01c0 */ lw $t2,0x1c0($sp) -/* 40370: 8fa801c8 */ lw $t0,0x1c8($sp) -/* 40374: 8fae005c */ lw $t6,0x5c($sp) -/* 40378: 000b7880 */ sll $t7,$t3,0x2 -/* 4037c: 014f6021 */ addu $t4,$t2,$t7 -/* 40380: 0008c880 */ sll $t9,$t0,0x2 -/* 40384: 000e4880 */ sll $t1,$t6,0x2 -/* 40388: 03a97821 */ addu $t7,$sp,$t1 -/* 4038c: 01996821 */ addu $t5,$t4,$t9 -/* 40390: 8db83cf0 */ lw $t8,0x3cf0($t5) -/* 40394: 8def0158 */ lw $t7,0x158($t7) -/* 40398: 000bc940 */ sll $t9,$t3,0x5 -/* 4039c: 032bc823 */ subu $t9,$t9,$t3 -/* 403a0: 01f80019 */ multu $t7,$t8 -/* 403a4: 00087140 */ sll $t6,$t0,0x5 -/* 403a8: 0019c8c0 */ sll $t9,$t9,0x3 -/* 403ac: 01c87023 */ subu $t6,$t6,$t0 -/* 403b0: 000e70c0 */ sll $t6,$t6,0x3 -/* 403b4: 01596821 */ addu $t5,$t2,$t9 -/* 403b8: 01ae7821 */ addu $t7,$t5,$t6 -/* 403bc: 01e9c021 */ addu $t8,$t7,$t1 -/* 403c0: 8f0b3d08 */ lw $t3,0x3d08($t8) -/* 403c4: 8fb90054 */ lw $t9,0x54($sp) -/* 403c8: 00006012 */ mflo $t4 -/* 403cc: 018b5021 */ addu $t2,$t4,$t3 -/* 403d0: 27280001 */ addiu $t0,$t9,0x1 -/* 403d4: 01480019 */ multu $t2,$t0 -/* 403d8: 00006812 */ mflo $t5 -/* 403dc: afad004c */ sw $t5,0x4c($sp) -/* 403e0: 00000000 */ nop -/* 403e4: 8faf004c */ lw $t7,0x4c($sp) -/* 403e8: 3c0e800a */ lui $t6,%hi(var8009c6d8) -/* 403ec: 8dcec6d8 */ lw $t6,%lo(var8009c6d8)($t6) -/* 403f0: 000f4880 */ sll $t1,$t7,0x2 -/* 403f4: c7a40060 */ lwc1 $f4,0x60($sp) -/* 403f8: 01c9c021 */ addu $t8,$t6,$t1 -/* 403fc: c7120000 */ lwc1 $f18,0x0($t8) -/* 40400: 8fac005c */ lw $t4,0x5c($sp) -/* 40404: 46049182 */ mul.s $f6,$f18,$f4 -/* 40408: 000c5880 */ sll $t3,$t4,0x2 -/* 4040c: 03abc821 */ addu $t9,$sp,$t3 -/* 40410: e7260100 */ swc1 $f6,0x100($t9) -/* 40414: 8faa005c */ lw $t2,0x5c($sp) -/* 40418: 25480001 */ addiu $t0,$t2,0x1 -/* 4041c: 29010016 */ slti $at,$t0,0x16 -/* 40420: 1420ffd1 */ bnez $at,.L00040368 -/* 40424: afa8005c */ sw $t0,0x5c($sp) -/* 40428: afa00058 */ sw $zero,0x58($sp) -.L0004042c: -/* 4042c: afa0005c */ sw $zero,0x5c($sp) -.L00040430: -/* 40430: 8faf01c4 */ lw $t7,0x1c4($sp) -/* 40434: 8fb801c8 */ lw $t8,0x1c8($sp) -/* 40438: 8fad01c0 */ lw $t5,0x1c0($sp) -/* 4043c: 000f7080 */ sll $t6,$t7,0x2 -/* 40440: 8fb90058 */ lw $t9,0x58($sp) -/* 40444: 01cf7023 */ subu $t6,$t6,$t7 -/* 40448: 00186080 */ sll $t4,$t8,0x2 -/* 4044c: 000e7080 */ sll $t6,$t6,0x2 -/* 40450: 01986023 */ subu $t4,$t4,$t8 -/* 40454: 000c6080 */ sll $t4,$t4,0x2 -/* 40458: 01ae4821 */ addu $t1,$t5,$t6 -/* 4045c: 012c5821 */ addu $t3,$t1,$t4 -/* 40460: 00195080 */ sll $t2,$t9,0x2 -/* 40464: 016a4021 */ addu $t0,$t3,$t2 -/* 40468: 8d0f3cc8 */ lw $t7,0x3cc8($t0) -/* 4046c: afaf0050 */ sw $t7,0x50($sp) -/* 40470: 8fae01c4 */ lw $t6,0x1c4($sp) -/* 40474: 8faa0058 */ lw $t2,0x58($sp) -/* 40478: 8fac01c8 */ lw $t4,0x1c8($sp) -/* 4047c: 8fad01c0 */ lw $t5,0x1c0($sp) -/* 40480: 000ec140 */ sll $t8,$t6,0x5 -/* 40484: 030ec023 */ subu $t8,$t8,$t6 -/* 40488: 000a4080 */ sll $t0,$t2,0x2 -/* 4048c: 0018c0c0 */ sll $t8,$t8,0x3 -/* 40490: 010a4023 */ subu $t0,$t0,$t2 -/* 40494: 000cc940 */ sll $t9,$t4,0x5 -/* 40498: 8fae005c */ lw $t6,0x5c($sp) -/* 4049c: 00084080 */ sll $t0,$t0,0x2 -/* 404a0: 032cc823 */ subu $t9,$t9,$t4 -/* 404a4: 01b84821 */ addu $t1,$t5,$t8 -/* 404a8: 0019c8c0 */ sll $t9,$t9,0x3 -/* 404ac: 010a4021 */ addu $t0,$t0,$t2 -/* 404b0: 00084080 */ sll $t0,$t0,0x2 -/* 404b4: 01395821 */ addu $t3,$t1,$t9 -/* 404b8: 01687821 */ addu $t7,$t3,$t0 -/* 404bc: 000e6880 */ sll $t5,$t6,0x2 -/* 404c0: 8fa90054 */ lw $t1,0x54($sp) -/* 404c4: 01edc021 */ addu $t8,$t7,$t5 -/* 404c8: 8f0c3d64 */ lw $t4,0x3d64($t8) -/* 404cc: 25390001 */ addiu $t9,$t1,0x1 -/* 404d0: 01990019 */ multu $t4,$t9 -/* 404d4: 00005012 */ mflo $t2 -/* 404d8: afaa004c */ sw $t2,0x4c($sp) -/* 404dc: 00000000 */ nop -/* 404e0: 8fb80050 */ lw $t8,0x50($sp) -/* 404e4: 3c0d800a */ lui $t5,%hi(var8009c6dc) -/* 404e8: 8dadc6dc */ lw $t5,%lo(var8009c6dc)($t5) -/* 404ec: 00184880 */ sll $t1,$t8,0x2 -/* 404f0: c7b00060 */ lwc1 $f16,0x60($sp) -/* 404f4: 01a96021 */ addu $t4,$t5,$t1 -/* 404f8: c58a0000 */ lwc1 $f10,0x0($t4) -/* 404fc: 8fa8004c */ lw $t0,0x4c($sp) -/* 40500: 3c0b800a */ lui $t3,%hi(var8009c6d8) -/* 40504: 460a8482 */ mul.s $f18,$f16,$f10 -/* 40508: 8d6bc6d8 */ lw $t3,%lo(var8009c6d8)($t3) -/* 4050c: 00087080 */ sll $t6,$t0,0x2 -/* 40510: 8fb90058 */ lw $t9,0x58($sp) -/* 40514: 016e7821 */ addu $t7,$t3,$t6 -/* 40518: c5e80000 */ lwc1 $f8,0x0($t7) -/* 4051c: 00195080 */ sll $t2,$t9,0x2 -/* 40520: 8fa8005c */ lw $t0,0x5c($sp) -/* 40524: 46124102 */ mul.s $f4,$f8,$f18 -/* 40528: 01595023 */ subu $t2,$t2,$t9 -/* 4052c: 000a5080 */ sll $t2,$t2,0x2 -/* 40530: 01595021 */ addu $t2,$t2,$t9 -/* 40534: 000a5080 */ sll $t2,$t2,0x2 -/* 40538: 00085880 */ sll $t3,$t0,0x2 -/* 4053c: 014b7021 */ addu $t6,$t2,$t3 -/* 40540: 03ae7821 */ addu $t7,$sp,$t6 -/* 40544: e5e40064 */ swc1 $f4,0x64($t7) -/* 40548: 8fb8005c */ lw $t8,0x5c($sp) -/* 4054c: 270d0001 */ addiu $t5,$t8,0x1 -/* 40550: 29a1000d */ slti $at,$t5,0xd -/* 40554: 1420ffb6 */ bnez $at,.L00040430 -/* 40558: afad005c */ sw $t5,0x5c($sp) -/* 4055c: 8fa90058 */ lw $t1,0x58($sp) -/* 40560: 252c0001 */ addiu $t4,$t1,0x1 -/* 40564: 29810003 */ slti $at,$t4,0x3 -/* 40568: 1420ffb0 */ bnez $at,.L0004042c -/* 4056c: afac0058 */ sw $t4,0x58($sp) -/* 40570: afa0005c */ sw $zero,0x5c($sp) -/* 40574: afa00048 */ sw $zero,0x48($sp) -/* 40578: 8fa801c8 */ lw $t0,0x1c8($sp) -/* 4057c: 8fb901c0 */ lw $t9,0x1c0($sp) -/* 40580: 00085080 */ sll $t2,$t0,0x2 -/* 40584: 032a5821 */ addu $t3,$t9,$t2 -/* 40588: 8d6e465c */ lw $t6,0x465c($t3) -/* 4058c: afae0044 */ sw $t6,0x44($sp) -/* 40590: 8fb801c8 */ lw $t8,0x1c8($sp) -/* 40594: 8faf01c0 */ lw $t7,0x1c0($sp) -/* 40598: 001868c0 */ sll $t5,$t8,0x3 -/* 4059c: 01b86821 */ addu $t5,$t5,$t8 -/* 405a0: 000d6a00 */ sll $t5,$t5,0x8 -/* 405a4: 01ed4821 */ addu $t1,$t7,$t5 -/* 405a8: 252c4664 */ addiu $t4,$t1,0x4664 -/* 405ac: afac0040 */ sw $t4,0x40($sp) -/* 405b0: 8fb901c8 */ lw $t9,0x1c8($sp) -/* 405b4: 8fa801c0 */ lw $t0,0x1c0($sp) -/* 405b8: 001950c0 */ sll $t2,$t9,0x3 -/* 405bc: 01595021 */ addu $t2,$t2,$t9 -/* 405c0: 000a5140 */ sll $t2,$t2,0x5 -/* 405c4: 01595021 */ addu $t2,$t2,$t9 -/* 405c8: 000a5080 */ sll $t2,$t2,0x2 -/* 405cc: 010a5821 */ addu $t3,$t0,$t2 -/* 405d0: 256e3f94 */ addiu $t6,$t3,0x3f94 -/* 405d4: afae003c */ sw $t6,0x3c($sp) -/* 405d8: 8faf01c8 */ lw $t7,0x1c8($sp) -/* 405dc: 8fb801c0 */ lw $t8,0x1c0($sp) -/* 405e0: 000f68c0 */ sll $t5,$t7,0x3 -/* 405e4: 01af6821 */ addu $t5,$t5,$t7 -/* 405e8: 000d6940 */ sll $t5,$t5,0x5 -/* 405ec: 01af6821 */ addu $t5,$t5,$t7 -/* 405f0: 000d6840 */ sll $t5,$t5,0x1 -/* 405f4: 030d4821 */ addu $t1,$t8,$t5 -/* 405f8: 252c4418 */ addiu $t4,$t1,0x4418 -/* 405fc: afac0038 */ sw $t4,0x38($sp) -/* 40600: 8fa801c4 */ lw $t0,0x1c4($sp) -/* 40604: 8fb901c0 */ lw $t9,0x1c0($sp) -/* 40608: 8fae01c8 */ lw $t6,0x1c8($sp) -/* 4060c: 00085080 */ sll $t2,$t0,0x2 -/* 40610: 032a5821 */ addu $t3,$t9,$t2 -/* 40614: 000e7880 */ sll $t7,$t6,0x2 -/* 40618: 016fc021 */ addu $t8,$t3,$t7 -/* 4061c: 8f103ca0 */ lw $s0,0x3ca0($t8) -/* 40620: 3a100002 */ xori $s0,$s0,0x2 -/* 40624: 2e100001 */ sltiu $s0,$s0,0x1 -/* 40628: 12000003 */ beqz $s0,.L00040638 -/* 4062c: 00000000 */ nop -/* 40630: 8f103ca8 */ lw $s0,0x3ca8($t8) -/* 40634: 2e100001 */ sltiu $s0,$s0,0x1 -.L00040638: -/* 40638: afb00034 */ sw $s0,0x34($sp) -/* 4063c: 8fa901c4 */ lw $t1,0x1c4($sp) -/* 40640: 8fad01c0 */ lw $t5,0x1c0($sp) -/* 40644: 8fb901c8 */ lw $t9,0x1c8($sp) -/* 40648: 00096080 */ sll $t4,$t1,0x2 -/* 4064c: 01ac4021 */ addu $t0,$t5,$t4 -/* 40650: 00195080 */ sll $t2,$t9,0x2 -/* 40654: 010a7021 */ addu $t6,$t0,$t2 -/* 40658: 8dd03ca0 */ lw $s0,0x3ca0($t6) -/* 4065c: 3a100002 */ xori $s0,$s0,0x2 -/* 40660: 2e100001 */ sltiu $s0,$s0,0x1 -/* 40664: 12000003 */ beqz $s0,.L00040674 -/* 40668: 00000000 */ nop -/* 4066c: 8dd03ca8 */ lw $s0,0x3ca8($t6) -/* 40670: 0010802b */ sltu $s0,$zero,$s0 -.L00040674: -/* 40674: afb00030 */ sw $s0,0x30($sp) -/* 40678: 8faf01c4 */ lw $t7,0x1c4($sp) -/* 4067c: 8fab01c0 */ lw $t3,0x1c0($sp) -/* 40680: 8fad01c8 */ lw $t5,0x1c8($sp) -/* 40684: 000fc080 */ sll $t8,$t7,0x2 -/* 40688: 01784821 */ addu $t1,$t3,$t8 -/* 4068c: 000d6080 */ sll $t4,$t5,0x2 -/* 40690: 012cc821 */ addu $t9,$t1,$t4 -/* 40694: 8f283c98 */ lw $t0,0x3c98($t9) -/* 40698: afa8002c */ sw $t0,0x2c($sp) -/* 4069c: 8faa0048 */ lw $t2,0x48($sp) -/* 406a0: 8fae0044 */ lw $t6,0x44($sp) -/* 406a4: 014e082a */ slt $at,$t2,$t6 -/* 406a8: 102001a9 */ beqz $at,.L00040d50 -/* 406ac: 00000000 */ nop -.L000406b0: -/* 406b0: 8faf01b8 */ lw $t7,0x1b8($sp) -/* 406b4: 8fab0044 */ lw $t3,0x44($sp) -/* 406b8: 016f082a */ slt $at,$t3,$t7 -/* 406bc: 10200003 */ beqz $at,.L000406cc -/* 406c0: 00000000 */ nop -/* 406c4: 8fb80044 */ lw $t8,0x44($sp) -/* 406c8: afb801b8 */ sw $t8,0x1b8($sp) -.L000406cc: -/* 406cc: 8fad002c */ lw $t5,0x2c($sp) -/* 406d0: 11a0001f */ beqz $t5,.L00040750 -/* 406d4: 00000000 */ nop -/* 406d8: 8fa90034 */ lw $t1,0x34($sp) -/* 406dc: 15200008 */ bnez $t1,.L00040700 -/* 406e0: 00000000 */ nop -/* 406e4: 8fac0030 */ lw $t4,0x30($sp) -/* 406e8: 11800019 */ beqz $t4,.L00040750 -/* 406ec: 00000000 */ nop -/* 406f0: 8fb90048 */ lw $t9,0x48($sp) -/* 406f4: 2b210024 */ slti $at,$t9,0x24 -/* 406f8: 14200015 */ bnez $at,.L00040750 -/* 406fc: 00000000 */ nop -.L00040700: -/* 40700: 8fa80048 */ lw $t0,0x48($sp) -/* 40704: 8faa01b4 */ lw $t2,0x1b4($sp) -/* 40708: 8faf01b0 */ lw $t7,0x1b0($sp) -/* 4070c: 010a7023 */ subu $t6,$t0,$t2 -/* 40710: 01cf001a */ div $zero,$t6,$t7 -/* 40714: 00005812 */ mflo $t3 -/* 40718: afab0058 */ sw $t3,0x58($sp) -/* 4071c: 15e00002 */ bnez $t7,.L00040728 -/* 40720: 00000000 */ nop -/* 40724: 0007000d */ break 0x7 -.L00040728: -/* 40728: 2401ffff */ addiu $at,$zero,-1 -/* 4072c: 15e10004 */ bne $t7,$at,.L00040740 -/* 40730: 3c018000 */ lui $at,0x8000 -/* 40734: 15c10002 */ bne $t6,$at,.L00040740 -/* 40738: 00000000 */ nop -/* 4073c: 0006000d */ break 0x6 -.L00040740: -/* 40740: 8fb801b4 */ lw $t8,0x1b4($sp) -/* 40744: 8fad01b0 */ lw $t5,0x1b0($sp) -/* 40748: 030d4821 */ addu $t1,$t8,$t5 -/* 4074c: afa90028 */ sw $t1,0x28($sp) -.L00040750: -/* 40750: 8fac0048 */ lw $t4,0x48($sp) -/* 40754: 8fb901b8 */ lw $t9,0x1b8($sp) -/* 40758: 0199082a */ slt $at,$t4,$t9 -/* 4075c: 1020008f */ beqz $at,.L0004099c -/* 40760: 00000000 */ nop -.L00040764: -/* 40764: 8fa8002c */ lw $t0,0x2c($sp) -/* 40768: 11000054 */ beqz $t0,.L000408bc -/* 4076c: 00000000 */ nop -/* 40770: 8faa0034 */ lw $t2,0x34($sp) -/* 40774: 15400008 */ bnez $t2,.L00040798 -/* 40778: 00000000 */ nop -/* 4077c: 8fae0030 */ lw $t6,0x30($sp) -/* 40780: 11c0004e */ beqz $t6,.L000408bc -/* 40784: 00000000 */ nop -/* 40788: 8faf0048 */ lw $t7,0x48($sp) -/* 4078c: 29e10024 */ slti $at,$t7,0x24 -/* 40790: 1420004a */ bnez $at,.L000408bc -/* 40794: 00000000 */ nop -.L00040798: -/* 40798: 8fab0048 */ lw $t3,0x48($sp) -/* 4079c: 8fb80028 */ lw $t8,0x28($sp) -/* 407a0: 0178082a */ slt $at,$t3,$t8 -/* 407a4: 14200008 */ bnez $at,.L000407c8 -/* 407a8: 00000000 */ nop -/* 407ac: 8fad0028 */ lw $t5,0x28($sp) -/* 407b0: 8fa901b0 */ lw $t1,0x1b0($sp) -/* 407b4: 01a96021 */ addu $t4,$t5,$t1 -/* 407b8: afac0028 */ sw $t4,0x28($sp) -/* 407bc: 8fb90058 */ lw $t9,0x58($sp) -/* 407c0: 27280001 */ addiu $t0,$t9,0x1 -/* 407c4: afa80058 */ sw $t0,0x58($sp) -.L000407c8: -/* 407c8: 8faa0058 */ lw $t2,0x58($sp) -/* 407cc: 27af0064 */ addiu $t7,$sp,0x64 -/* 407d0: 000a7080 */ sll $t6,$t2,0x2 -/* 407d4: 01ca7023 */ subu $t6,$t6,$t2 -/* 407d8: 000e7080 */ sll $t6,$t6,0x2 -/* 407dc: 01ca7021 */ addu $t6,$t6,$t2 -/* 407e0: 000e7080 */ sll $t6,$t6,0x2 -/* 407e4: 01cf5821 */ addu $t3,$t6,$t7 -/* 407e8: afab0024 */ sw $t3,0x24($sp) -/* 407ec: 8fb80038 */ lw $t8,0x38($sp) -/* 407f0: 93100000 */ lbu $s0,0x0($t8) -/* 407f4: 270d0001 */ addiu $t5,$t8,0x1 -/* 407f8: afad0038 */ sw $t5,0x38($sp) -/* 407fc: 12000018 */ beqz $s0,.L00040860 -/* 40800: 00000000 */ nop -/* 40804: 8fae003c */ lw $t6,0x3c($sp) -/* 40808: 8fac005c */ lw $t4,0x5c($sp) -/* 4080c: 3c0a800a */ lui $t2,%hi(var8009c648) -/* 40810: 85cf0000 */ lh $t7,0x0($t6) -/* 40814: 8d4ac648 */ lw $t2,%lo(var8009c648)($t2) -/* 40818: 8fa90024 */ lw $t1,0x24($sp) -/* 4081c: 000cc880 */ sll $t9,$t4,0x2 -/* 40820: 000f5880 */ sll $t3,$t7,0x2 -/* 40824: 014bc021 */ addu $t8,$t2,$t3 -/* 40828: 01394021 */ addu $t0,$t1,$t9 -/* 4082c: c5060000 */ lwc1 $f6,0x0($t0) -/* 40830: c7100000 */ lwc1 $f16,0x0($t8) -/* 40834: 8fad0040 */ lw $t5,0x40($sp) -/* 40838: 46103282 */ mul.s $f10,$f6,$f16 -/* 4083c: 46005207 */ neg.s $f8,$f10 -/* 40840: e5a80000 */ swc1 $f8,0x0($t5) -/* 40844: 8fb9003c */ lw $t9,0x3c($sp) -/* 40848: 8fac0040 */ lw $t4,0x40($sp) -/* 4084c: 27280002 */ addiu $t0,$t9,0x2 -/* 40850: 25890004 */ addiu $t1,$t4,0x4 -/* 40854: afa90040 */ sw $t1,0x40($sp) -/* 40858: 10000016 */ b .L000408b4 -/* 4085c: afa8003c */ sw $t0,0x3c($sp) -.L00040860: -/* 40860: 8fad003c */ lw $t5,0x3c($sp) -/* 40864: 8faf005c */ lw $t7,0x5c($sp) -/* 40868: 3c18800a */ lui $t8,%hi(var8009c648) -/* 4086c: 85ac0000 */ lh $t4,0x0($t5) -/* 40870: 8f18c648 */ lw $t8,%lo(var8009c648)($t8) -/* 40874: 8fae0024 */ lw $t6,0x24($sp) -/* 40878: 000f5080 */ sll $t2,$t7,0x2 -/* 4087c: 000c4880 */ sll $t1,$t4,0x2 -/* 40880: 0309c821 */ addu $t9,$t8,$t1 -/* 40884: 01ca5821 */ addu $t3,$t6,$t2 -/* 40888: c5720000 */ lwc1 $f18,0x0($t3) -/* 4088c: c7240000 */ lwc1 $f4,0x0($t9) -/* 40890: 8fa80040 */ lw $t0,0x40($sp) -/* 40894: 46049182 */ mul.s $f6,$f18,$f4 -/* 40898: e5060000 */ swc1 $f6,0x0($t0) -/* 4089c: 8faa003c */ lw $t2,0x3c($sp) -/* 408a0: 8faf0040 */ lw $t7,0x40($sp) -/* 408a4: 254b0002 */ addiu $t3,$t2,0x2 -/* 408a8: 25ee0004 */ addiu $t6,$t7,0x4 -/* 408ac: afae0040 */ sw $t6,0x40($sp) -/* 408b0: afab003c */ sw $t3,0x3c($sp) -.L000408b4: -/* 408b4: 10000031 */ b .L0004097c -/* 408b8: 00000000 */ nop -.L000408bc: -/* 408bc: 8fad0038 */ lw $t5,0x38($sp) -/* 408c0: 91b00000 */ lbu $s0,0x0($t5) -/* 408c4: 25ac0001 */ addiu $t4,$t5,0x1 -/* 408c8: afac0038 */ sw $t4,0x38($sp) -/* 408cc: 12000017 */ beqz $s0,.L0004092c -/* 408d0: 00000000 */ nop -/* 408d4: 8fa9003c */ lw $t1,0x3c($sp) -/* 408d8: 8fae005c */ lw $t6,0x5c($sp) -/* 408dc: 3c18800a */ lui $t8,%hi(var8009c648) -/* 408e0: 85390000 */ lh $t9,0x0($t1) -/* 408e4: 8f18c648 */ lw $t8,%lo(var8009c648)($t8) -/* 408e8: 000e5080 */ sll $t2,$t6,0x2 -/* 408ec: 00194080 */ sll $t0,$t9,0x2 -/* 408f0: 03aa5821 */ addu $t3,$sp,$t2 -/* 408f4: 03087821 */ addu $t7,$t8,$t0 -/* 408f8: c5f00000 */ lwc1 $f16,0x0($t7) -/* 408fc: c56a0100 */ lwc1 $f10,0x100($t3) -/* 40900: 8fad0040 */ lw $t5,0x40($sp) -/* 40904: 46105202 */ mul.s $f8,$f10,$f16 -/* 40908: 46004487 */ neg.s $f18,$f8 -/* 4090c: e5b20000 */ swc1 $f18,0x0($t5) -/* 40910: 8fb9003c */ lw $t9,0x3c($sp) -/* 40914: 8fac0040 */ lw $t4,0x40($sp) -/* 40918: 27380002 */ addiu $t8,$t9,0x2 -/* 4091c: 25890004 */ addiu $t1,$t4,0x4 -/* 40920: afa90040 */ sw $t1,0x40($sp) -/* 40924: 10000015 */ b .L0004097c -/* 40928: afb8003c */ sw $t8,0x3c($sp) -.L0004092c: -/* 4092c: 8faf003c */ lw $t7,0x3c($sp) -/* 40930: 8fad005c */ lw $t5,0x5c($sp) -/* 40934: 3c08800a */ lui $t0,%hi(var8009c648) -/* 40938: 85ee0000 */ lh $t6,0x0($t7) -/* 4093c: 8d08c648 */ lw $t0,%lo(var8009c648)($t0) -/* 40940: 000d6080 */ sll $t4,$t5,0x2 -/* 40944: 000e5080 */ sll $t2,$t6,0x2 -/* 40948: 03ac4821 */ addu $t1,$sp,$t4 -/* 4094c: 010a5821 */ addu $t3,$t0,$t2 -/* 40950: c5640000 */ lwc1 $f4,0x0($t3) -/* 40954: c5260100 */ lwc1 $f6,0x100($t1) -/* 40958: 8fb90040 */ lw $t9,0x40($sp) -/* 4095c: 46043282 */ mul.s $f10,$f6,$f4 -/* 40960: e72a0000 */ swc1 $f10,0x0($t9) -/* 40964: 8fae003c */ lw $t6,0x3c($sp) -/* 40968: 8fb80040 */ lw $t8,0x40($sp) -/* 4096c: 25c80002 */ addiu $t0,$t6,0x2 -/* 40970: 270f0004 */ addiu $t7,$t8,0x4 -/* 40974: afaf0040 */ sw $t7,0x40($sp) -/* 40978: afa8003c */ sw $t0,0x3c($sp) -.L0004097c: -/* 4097c: 8faa0048 */ lw $t2,0x48($sp) -/* 40980: 254b0001 */ addiu $t3,$t2,0x1 -/* 40984: afab0048 */ sw $t3,0x48($sp) -/* 40988: 8fad0048 */ lw $t5,0x48($sp) -/* 4098c: 8fac01b8 */ lw $t4,0x1b8($sp) -/* 40990: 01ac082a */ slt $at,$t5,$t4 -/* 40994: 1420ff73 */ bnez $at,.L00040764 -/* 40998: 00000000 */ nop -.L0004099c: -/* 4099c: 8fb901c4 */ lw $t9,0x1c4($sp) -/* 409a0: 8fa901c0 */ lw $t1,0x1c0($sp) -/* 409a4: 8fae01c8 */ lw $t6,0x1c8($sp) -/* 409a8: 0019c080 */ sll $t8,$t9,0x2 -/* 409ac: 01387821 */ addu $t7,$t1,$t8 -/* 409b0: 000e4080 */ sll $t0,$t6,0x2 -/* 409b4: 01e85021 */ addu $t2,$t7,$t0 -/* 409b8: 8d4b3c98 */ lw $t3,0x3c98($t2) -/* 409bc: 116000d0 */ beqz $t3,.L00040d00 -/* 409c0: 00000000 */ nop -/* 409c4: 8d4d3ca0 */ lw $t5,0x3ca0($t2) -/* 409c8: 24010002 */ addiu $at,$zero,0x2 -/* 409cc: 15a100cc */ bne $t5,$at,.L00040d00 -/* 409d0: 00000000 */ nop -/* 409d4: 8fb901c4 */ lw $t9,0x1c4($sp) -/* 409d8: 8fac01c0 */ lw $t4,0x1c0($sp) -/* 409dc: 8fae01c8 */ lw $t6,0x1c8($sp) -/* 409e0: 00194880 */ sll $t1,$t9,0x2 -/* 409e4: 0189c021 */ addu $t8,$t4,$t1 -/* 409e8: 000e7880 */ sll $t7,$t6,0x2 -/* 409ec: 030f4021 */ addu $t0,$t8,$t7 -/* 409f0: 8d0b3ca8 */ lw $t3,0x3ca8($t0) -/* 409f4: 1160008e */ beqz $t3,.L00040c30 -/* 409f8: 00000000 */ nop -/* 409fc: 8faa01bc */ lw $t2,0x1bc($sp) -/* 40a00: 3c197005 */ lui $t9,%hi(var700579c8) -/* 40a04: 8fac0048 */ lw $t4,0x48($sp) -/* 40a08: 000a68c0 */ sll $t5,$t2,0x3 -/* 40a0c: 01aa6821 */ addu $t5,$t5,$t2 -/* 40a10: 000d6880 */ sll $t5,$t5,0x2 -/* 40a14: 01aa6821 */ addu $t5,$t5,$t2 -/* 40a18: 000d6840 */ sll $t5,$t5,0x1 -/* 40a1c: 032dc821 */ addu $t9,$t9,$t5 -/* 40a20: 873979c8 */ lh $t9,%lo(var700579c8)($t9) -/* 40a24: 172c0031 */ bne $t9,$t4,.L00040aec -/* 40a28: 00000000 */ nop -/* 40a2c: 8fa901bc */ lw $t1,0x1bc($sp) -/* 40a30: 3c187005 */ lui $t8,%hi(var700579ec+0x2) -/* 40a34: 000970c0 */ sll $t6,$t1,0x3 -/* 40a38: 01c97021 */ addu $t6,$t6,$t1 -/* 40a3c: 000e7080 */ sll $t6,$t6,0x2 -/* 40a40: 01c97021 */ addu $t6,$t6,$t1 -/* 40a44: 000e7040 */ sll $t6,$t6,0x1 -/* 40a48: 030ec021 */ addu $t8,$t8,$t6 -/* 40a4c: 871879ee */ lh $t8,%lo(var700579ec+0x2)($t8) -/* 40a50: 00187880 */ sll $t7,$t8,0x2 -/* 40a54: 01f87823 */ subu $t7,$t7,$t8 -/* 40a58: afaf01b8 */ sw $t7,0x1b8($sp) -/* 40a5c: 24080003 */ addiu $t0,$zero,0x3 -/* 40a60: afa8005c */ sw $t0,0x5c($sp) -/* 40a64: 8fab01bc */ lw $t3,0x1bc($sp) -/* 40a68: 8fad005c */ lw $t5,0x5c($sp) -/* 40a6c: 3c097005 */ lui $t1,%hi(var700579b8) -/* 40a70: 000b50c0 */ sll $t2,$t3,0x3 -/* 40a74: 014b5021 */ addu $t2,$t2,$t3 -/* 40a78: 000a5080 */ sll $t2,$t2,0x2 -/* 40a7c: 014b5021 */ addu $t2,$t2,$t3 -/* 40a80: 000a5040 */ sll $t2,$t2,0x1 -/* 40a84: 000dc840 */ sll $t9,$t5,0x1 -/* 40a88: 252979b8 */ addiu $t1,$t1,%lo(var700579b8) -/* 40a8c: 01596021 */ addu $t4,$t2,$t9 -/* 40a90: 01597821 */ addu $t7,$t2,$t9 -/* 40a94: 01e94021 */ addu $t0,$t7,$t1 -/* 40a98: 01897021 */ addu $t6,$t4,$t1 -/* 40a9c: 85d80030 */ lh $t8,0x30($t6) -/* 40aa0: 850b002e */ lh $t3,0x2e($t0) -/* 40aa4: 030b6823 */ subu $t5,$t8,$t3 -/* 40aa8: afad01b0 */ sw $t5,0x1b0($sp) -/* 40aac: 8fac01bc */ lw $t4,0x1bc($sp) -/* 40ab0: 8faa005c */ lw $t2,0x5c($sp) -/* 40ab4: 3c097005 */ lui $t1,%hi(var700579e4+0x2) -/* 40ab8: 000c70c0 */ sll $t6,$t4,0x3 -/* 40abc: 01cc7021 */ addu $t6,$t6,$t4 -/* 40ac0: 000e7080 */ sll $t6,$t6,0x2 -/* 40ac4: 01cc7021 */ addu $t6,$t6,$t4 -/* 40ac8: 000e7040 */ sll $t6,$t6,0x1 -/* 40acc: 000ac840 */ sll $t9,$t2,0x1 -/* 40ad0: 01d97821 */ addu $t7,$t6,$t9 -/* 40ad4: 012f4821 */ addu $t1,$t1,$t7 -/* 40ad8: 852979e6 */ lh $t1,%lo(var700579e4+0x2)($t1) -/* 40adc: 00094080 */ sll $t0,$t1,0x2 -/* 40ae0: 01094023 */ subu $t0,$t0,$t1 -/* 40ae4: 10000050 */ b .L00040c28 -/* 40ae8: afa801b4 */ sw $t0,0x1b4($sp) -.L00040aec: -/* 40aec: 8fab01bc */ lw $t3,0x1bc($sp) -/* 40af0: 3c0c7005 */ lui $t4,%hi(var700579c8) -/* 40af4: 8fb80048 */ lw $t8,0x48($sp) -/* 40af8: 000b68c0 */ sll $t5,$t3,0x3 -/* 40afc: 01ab6821 */ addu $t5,$t5,$t3 -/* 40b00: 000d6880 */ sll $t5,$t5,0x2 -/* 40b04: 01ab6821 */ addu $t5,$t5,$t3 -/* 40b08: 000d6840 */ sll $t5,$t5,0x1 -/* 40b0c: 018d6021 */ addu $t4,$t4,$t5 -/* 40b10: 858c79c8 */ lh $t4,%lo(var700579c8)($t4) -/* 40b14: 030c082a */ slt $at,$t8,$t4 -/* 40b18: 10200011 */ beqz $at,.L00040b60 -/* 40b1c: 00000000 */ nop -/* 40b20: 8faa01bc */ lw $t2,0x1bc($sp) -/* 40b24: 8fb0005c */ lw $s0,0x5c($sp) -/* 40b28: 3c097005 */ lui $t1,%hi(var700579b8+0x2) -/* 40b2c: 000a70c0 */ sll $t6,$t2,0x3 -/* 40b30: 01ca7021 */ addu $t6,$t6,$t2 -/* 40b34: 000e7080 */ sll $t6,$t6,0x2 -/* 40b38: 01ca7021 */ addu $t6,$t6,$t2 -/* 40b3c: 26100001 */ addiu $s0,$s0,0x1 -/* 40b40: 0010c840 */ sll $t9,$s0,0x1 -/* 40b44: 000e7040 */ sll $t6,$t6,0x1 -/* 40b48: 01d97821 */ addu $t7,$t6,$t9 -/* 40b4c: 012f4821 */ addu $t1,$t1,$t7 -/* 40b50: 852979ba */ lh $t1,%lo(var700579b8+0x2)($t1) -/* 40b54: afb0005c */ sw $s0,0x5c($sp) -/* 40b58: 10000033 */ b .L00040c28 -/* 40b5c: afa901b8 */ sw $t1,0x1b8($sp) -.L00040b60: -/* 40b60: 8fa801bc */ lw $t0,0x1bc($sp) -/* 40b64: 8fb0005c */ lw $s0,0x5c($sp) -/* 40b68: 3c0c7005 */ lui $t4,%hi(var700579e8) -/* 40b6c: 000858c0 */ sll $t3,$t0,0x3 -/* 40b70: 01685821 */ addu $t3,$t3,$t0 -/* 40b74: 000b5880 */ sll $t3,$t3,0x2 -/* 40b78: 01685821 */ addu $t3,$t3,$t0 -/* 40b7c: 26100001 */ addiu $s0,$s0,0x1 -/* 40b80: 00106840 */ sll $t5,$s0,0x1 -/* 40b84: 000b5840 */ sll $t3,$t3,0x1 -/* 40b88: 016dc021 */ addu $t8,$t3,$t5 -/* 40b8c: 01986021 */ addu $t4,$t4,$t8 -/* 40b90: 858c79e8 */ lh $t4,%lo(var700579e8)($t4) -/* 40b94: afb0005c */ sw $s0,0x5c($sp) -/* 40b98: 000c5080 */ sll $t2,$t4,0x2 -/* 40b9c: 014c5023 */ subu $t2,$t2,$t4 -/* 40ba0: afaa01b8 */ sw $t2,0x1b8($sp) -/* 40ba4: 8fae01bc */ lw $t6,0x1bc($sp) -/* 40ba8: 8faf005c */ lw $t7,0x5c($sp) -/* 40bac: 3c0b7005 */ lui $t3,%hi(var700579b8) -/* 40bb0: 000ec8c0 */ sll $t9,$t6,0x3 -/* 40bb4: 032ec821 */ addu $t9,$t9,$t6 -/* 40bb8: 0019c880 */ sll $t9,$t9,0x2 -/* 40bbc: 032ec821 */ addu $t9,$t9,$t6 -/* 40bc0: 0019c840 */ sll $t9,$t9,0x1 -/* 40bc4: 000f4840 */ sll $t1,$t7,0x1 -/* 40bc8: 256b79b8 */ addiu $t3,$t3,%lo(var700579b8) -/* 40bcc: 03294021 */ addu $t0,$t9,$t1 -/* 40bd0: 03296021 */ addu $t4,$t9,$t1 -/* 40bd4: 018b5021 */ addu $t2,$t4,$t3 -/* 40bd8: 010b6821 */ addu $t5,$t0,$t3 -/* 40bdc: 85b80030 */ lh $t8,0x30($t5) -/* 40be0: 854e002e */ lh $t6,0x2e($t2) -/* 40be4: 030e7823 */ subu $t7,$t8,$t6 -/* 40be8: afaf01b0 */ sw $t7,0x1b0($sp) -/* 40bec: 8fa801bc */ lw $t0,0x1bc($sp) -/* 40bf0: 8fb9005c */ lw $t9,0x5c($sp) -/* 40bf4: 3c0b7005 */ lui $t3,%hi(var700579e4+0x2) -/* 40bf8: 000868c0 */ sll $t5,$t0,0x3 -/* 40bfc: 01a86821 */ addu $t5,$t5,$t0 -/* 40c00: 000d6880 */ sll $t5,$t5,0x2 -/* 40c04: 01a86821 */ addu $t5,$t5,$t0 -/* 40c08: 000d6840 */ sll $t5,$t5,0x1 -/* 40c0c: 00194840 */ sll $t1,$t9,0x1 -/* 40c10: 01a96021 */ addu $t4,$t5,$t1 -/* 40c14: 016c5821 */ addu $t3,$t3,$t4 -/* 40c18: 856b79e6 */ lh $t3,%lo(var700579e4+0x2)($t3) -/* 40c1c: 000b5080 */ sll $t2,$t3,0x2 -/* 40c20: 014b5023 */ subu $t2,$t2,$t3 -/* 40c24: afaa01b4 */ sw $t2,0x1b4($sp) -.L00040c28: -/* 40c28: 10000033 */ b .L00040cf8 -/* 40c2c: 00000000 */ nop -.L00040c30: -/* 40c30: 8fb801bc */ lw $t8,0x1bc($sp) -/* 40c34: 8fb0005c */ lw $s0,0x5c($sp) -/* 40c38: 3c197005 */ lui $t9,%hi(var700579e8) -/* 40c3c: 001870c0 */ sll $t6,$t8,0x3 -/* 40c40: 01d87021 */ addu $t6,$t6,$t8 -/* 40c44: 000e7080 */ sll $t6,$t6,0x2 -/* 40c48: 01d87021 */ addu $t6,$t6,$t8 -/* 40c4c: 26100001 */ addiu $s0,$s0,0x1 -/* 40c50: 00107840 */ sll $t7,$s0,0x1 -/* 40c54: 000e7040 */ sll $t6,$t6,0x1 -/* 40c58: 01cf4021 */ addu $t0,$t6,$t7 -/* 40c5c: 0328c821 */ addu $t9,$t9,$t0 -/* 40c60: 873979e8 */ lh $t9,%lo(var700579e8)($t9) -/* 40c64: afb0005c */ sw $s0,0x5c($sp) -/* 40c68: 00196880 */ sll $t5,$t9,0x2 -/* 40c6c: 01b96823 */ subu $t5,$t5,$t9 -/* 40c70: afad01b8 */ sw $t5,0x1b8($sp) -/* 40c74: 8fa901bc */ lw $t1,0x1bc($sp) -/* 40c78: 8fab005c */ lw $t3,0x5c($sp) -/* 40c7c: 3c0e7005 */ lui $t6,%hi(var700579b8) -/* 40c80: 000960c0 */ sll $t4,$t1,0x3 -/* 40c84: 01896021 */ addu $t4,$t4,$t1 -/* 40c88: 000c6080 */ sll $t4,$t4,0x2 -/* 40c8c: 01896021 */ addu $t4,$t4,$t1 -/* 40c90: 000c6040 */ sll $t4,$t4,0x1 -/* 40c94: 000b5040 */ sll $t2,$t3,0x1 -/* 40c98: 25ce79b8 */ addiu $t6,$t6,%lo(var700579b8) -/* 40c9c: 018ac021 */ addu $t8,$t4,$t2 -/* 40ca0: 018ac821 */ addu $t9,$t4,$t2 -/* 40ca4: 032e6821 */ addu $t5,$t9,$t6 -/* 40ca8: 030e7821 */ addu $t7,$t8,$t6 -/* 40cac: 85e80030 */ lh $t0,0x30($t7) -/* 40cb0: 85a9002e */ lh $t1,0x2e($t5) -/* 40cb4: 01095823 */ subu $t3,$t0,$t1 -/* 40cb8: afab01b0 */ sw $t3,0x1b0($sp) -/* 40cbc: 8fb801bc */ lw $t8,0x1bc($sp) -/* 40cc0: 8fac005c */ lw $t4,0x5c($sp) -/* 40cc4: 3c0e7005 */ lui $t6,%hi(var700579e4+0x2) -/* 40cc8: 001878c0 */ sll $t7,$t8,0x3 -/* 40ccc: 01f87821 */ addu $t7,$t7,$t8 -/* 40cd0: 000f7880 */ sll $t7,$t7,0x2 -/* 40cd4: 01f87821 */ addu $t7,$t7,$t8 -/* 40cd8: 000f7840 */ sll $t7,$t7,0x1 -/* 40cdc: 000c5040 */ sll $t2,$t4,0x1 -/* 40ce0: 01eac821 */ addu $t9,$t7,$t2 -/* 40ce4: 01d97021 */ addu $t6,$t6,$t9 -/* 40ce8: 85ce79e6 */ lh $t6,%lo(var700579e4+0x2)($t6) -/* 40cec: 000e6880 */ sll $t5,$t6,0x2 -/* 40cf0: 01ae6823 */ subu $t5,$t5,$t6 -/* 40cf4: afad01b4 */ sw $t5,0x1b4($sp) -.L00040cf8: -/* 40cf8: 10000010 */ b .L00040d3c -/* 40cfc: 00000000 */ nop -.L00040d00: -/* 40d00: 8fa801bc */ lw $t0,0x1bc($sp) -/* 40d04: 8fb0005c */ lw $s0,0x5c($sp) -/* 40d08: 3c0c7005 */ lui $t4,%hi(var700579b8+0x2) -/* 40d0c: 000848c0 */ sll $t1,$t0,0x3 -/* 40d10: 01284821 */ addu $t1,$t1,$t0 -/* 40d14: 00094880 */ sll $t1,$t1,0x2 -/* 40d18: 01284821 */ addu $t1,$t1,$t0 -/* 40d1c: 26100001 */ addiu $s0,$s0,0x1 -/* 40d20: 00105840 */ sll $t3,$s0,0x1 -/* 40d24: 00094840 */ sll $t1,$t1,0x1 -/* 40d28: 012bc021 */ addu $t8,$t1,$t3 -/* 40d2c: 01986021 */ addu $t4,$t4,$t8 -/* 40d30: 858c79ba */ lh $t4,%lo(var700579b8+0x2)($t4) -/* 40d34: afb0005c */ sw $s0,0x5c($sp) -/* 40d38: afac01b8 */ sw $t4,0x1b8($sp) -.L00040d3c: -/* 40d3c: 8faf0048 */ lw $t7,0x48($sp) -/* 40d40: 8faa0044 */ lw $t2,0x44($sp) -/* 40d44: 01ea082a */ slt $at,$t7,$t2 -/* 40d48: 1420fe59 */ bnez $at,.L000406b0 -/* 40d4c: 00000000 */ nop -.L00040d50: -/* 40d50: 8fb90048 */ lw $t9,0x48($sp) -/* 40d54: 2b210240 */ slti $at,$t9,0x240 -/* 40d58: 1020000b */ beqz $at,.L00040d88 -/* 40d5c: 00000000 */ nop -/* 40d60: 8fad01c8 */ lw $t5,0x1c8($sp) -/* 40d64: 8fae01c0 */ lw $t6,0x1c0($sp) -/* 40d68: 8fa40040 */ lw $a0,0x40($sp) -/* 40d6c: 000d4080 */ sll $t0,$t5,0x2 -/* 40d70: 01c84821 */ addu $t1,$t6,$t0 -/* 40d74: 8d254660 */ lw $a1,0x4660($t1) -/* 40d78: 0c012c30 */ jal bzero -/* 40d7c: 00052880 */ sll $a1,$a1,0x2 -/* 40d80: 10000005 */ b .L00040d98 -/* 40d84: 24020001 */ addiu $v0,$zero,0x1 -.L00040d88: -/* 40d88: 10000003 */ b .L00040d98 -/* 40d8c: 24020001 */ addiu $v0,$zero,0x1 -/* 40d90: 10000001 */ b .L00040d98 -/* 40d94: 00000000 */ nop -.L00040d98: -/* 40d98: 8fbf001c */ lw $ra,0x1c($sp) -/* 40d9c: 8fb00018 */ lw $s0,0x18($sp) -/* 40da0: 27bd01c0 */ addiu $sp,$sp,0x1c0 -/* 40da4: 03e00008 */ jr $ra -/* 40da8: 00000000 */ nop -); + const s32 sp158[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 2, 2, 3, 3, 3, 2, 0, + }; + + f32 sp100[22]; + f32 sp64[3][13]; + f32 sp60; + s32 sp5c; + s32 sp58; + s32 sp54; + s32 sp50; + s32 sp4c; + s32 sp48; + s32 sp44; + f32 *sp40; + s16 *sp3c; + u8 *sp38; + s32 sp34; + s32 sp30; + s32 sp2c; + s32 sp28; + f32 *sp24; + + sp1bc = stream->samplerateindex + stream->version * 3; + + if (stream->window_switching[gr][ch] && stream->block_type[gr][ch] == 2) { + if (stream->mixed_block_flag[gr][ch]) { + sp1b8 = var700579b8[sp1bc].unk00[1]; + } else { + sp1b8 = var700579b8[sp1bc].unk2e[1] * 3; + sp1b0 = var700579b8[sp1bc].unk2e[1]; + sp1b4 = 0; + } + } else { + sp1b8 = var700579b8[sp1bc].unk00[1]; + } + + sp60 = func00045ed0(2, (stream->global_gain[gr][ch] - 210.0f) * 0.25f); + sp54 = stream->scalefac_scale[gr][ch]; + + for (sp5c = 0; sp5c < 22; sp5c++) { + sp4c = (*(u32 *)(stream->scalefac_l + gr * 0xf8 + ch * 0xf8 + sp5c * 4) + stream->preflag[gr][ch] * *(s32 *)((u32)sp158 + sp5c * 4)) * (sp54 + 1); + sp100[sp5c] = var8009c6d8[sp4c] * sp60; + } + + for (sp58 = 0; sp58 < 3; sp58++) { + for (sp5c = 0; sp5c < 13; sp5c++) { + sp50 = stream->subblock_gain[gr][ch][sp58]; + sp4c = (*(u32 *)(stream->scalefac_s + gr * 0xf8 + ch * 0xf8 + sp58 * 0x34 + sp5c * 4) * (sp54 + 1)); + sp64[sp58][sp5c] = sp60 * var8009c6dc[sp50] * var8009c6d8[sp4c]; + } + } + + sp5c = 0; + sp48 = 0; + sp44 = stream->unk465c[ch]; + sp40 = stream->unk4664[ch][0].unk00; + sp3c = stream->unk3f94[ch]; + sp38 = stream->unk4418[ch]; + sp34 = stream->block_type[gr][ch] == 2 && stream->mixed_block_flag[gr][ch] == 0; + sp30 = stream->block_type[gr][ch] == 2 && stream->mixed_block_flag[gr][ch] != 0; + sp2c = stream->window_switching[gr][ch]; + + while (sp48 < sp44) { + if (sp1b8 > sp44) { + sp1b8 = sp44; + } + + if (sp2c) { + if (sp34 || (sp30 && sp48 >= 36)) { + sp58 = (sp48 - sp1b4) / sp1b0; + sp28 = sp1b4 + sp1b0; + } + } + + while (sp48 < sp1b8) { + if (sp2c && (sp34 || (sp30 && sp48 >= 36))) { + if (sp48 >= sp28) { + sp28 += sp1b0; + sp58++; + } + + sp24 = sp64[sp58]; + + if (*sp38++) { + *sp40++ = -(var8009c648[*sp3c++] * sp24[sp5c]); + } else { + *sp40++ = var8009c648[*sp3c++] * sp24[sp5c]; + } + } else { + if (*sp38++) { + *sp40++ = -(var8009c648[*sp3c++] * sp100[sp5c]); + } else { + *sp40++ = var8009c648[*sp3c++] * sp100[sp5c]; + } + } + + sp48++; + } + + if (stream->window_switching[gr][ch] && stream->block_type[gr][ch] == 2) { + if (stream->mixed_block_flag[gr][ch]) { + if (var700579b8[sp1bc].unk00[8] == sp48) { + sp1b8 = var700579b8[sp1bc].unk2e[4] * 3; + sp5c = 3; + sp1b0 = var700579b8[sp1bc].unk2e[sp5c + 1] - var700579b8[sp1bc].unk2e[sp5c]; + sp1b4 = var700579b8[sp1bc].unk2e[sp5c] * 3; + } else if (sp48 < var700579b8[sp1bc].unk00[8]) { + sp1b8 = var700579b8[sp1bc].unk00[++sp5c + 1]; + } else { + sp1b8 = var700579b8[sp1bc].unk2e[++sp5c + 1] * 3; + sp1b0 = var700579b8[sp1bc].unk2e[sp5c + 1] - var700579b8[sp1bc].unk2e[sp5c]; + sp1b4 = var700579b8[sp1bc].unk2e[sp5c] * 3; + } + } else { + sp1b8 = var700579b8[sp1bc].unk2e[++sp5c + 1] * 3; + sp1b0 = var700579b8[sp1bc].unk2e[sp5c + 1] - var700579b8[sp1bc].unk2e[sp5c]; + sp1b4 = var700579b8[sp1bc].unk2e[sp5c] * 3; + } + } else { + sp1b8 = var700579b8[sp1bc].unk00[++sp5c + 1]; + } + } + + if (sp48 < 576) { + bzero(sp40, stream->unk4660[ch] * 4); + return true; + } + + return true; +} bool mp3decUnpackScaleFac(struct asistream *stream, u32 gr, u32 ch) { @@ -5575,7 +4765,7 @@ bool func00042238(struct asistream *stream, u32 gr, u32 ch) const s16 *sp50; const u8 *sp4c; s32 sp48; - u8 *sp44; + s16 *sp44; u8 *sp40; s32 i; u32 sp38; @@ -5635,7 +4825,7 @@ bool func00042238(struct asistream *stream, u32 gr, u32 ch) bzero(sp44, sp2c * 2); - sp44 += sp2c * 2; + sp44 += sp2c; sp40 += sp2c; sp48 = sp30; } else { @@ -5668,7 +4858,7 @@ bool func000427d8(struct asistream *stream, u32 gr) { const s16 *sp14 = var70057b9c[stream->version][stream->samplerateindex]; f32 *sp10 = stream->unk4f64[0][0].unk00; - f32 *sp0c = stream->unk4664[0].unk00; + f32 *sp0c = stream->unk4664[0][0].unk00; s32 i = 0; if (stream->window_switching[gr][0] && stream->window_switching[gr][2] == 2) {