Decompile func00042238

This commit is contained in:
Ryan Dwyer 2021-11-14 23:05:08 +10:00
parent 27e3d67065
commit 23558445f3
7 changed files with 150 additions and 514 deletions

View File

@ -181,7 +181,8 @@ IDO71_C_FILES := \
$(shell find src/lib/ultra/audio -name '*.c') \
$(shell find src/lib/naudio -name '*.c') \
src/lib/lib_2fc60.c \
src/lib/lib_39c80.c
src/lib/lib_39c80.c \
src/lib/lib_3f8a0.c
LOOPUNROLL_O_FILES = $(patsubst src/%.c, $(B_DIR)/%.o, $(LOOPUNROLL_C_FILES))
MIPS3_O_FILES = $(patsubst src/%.c, $(B_DIR)/%.o, $(MIPS3_C_FILES))

View File

@ -49,7 +49,7 @@ extern u32 var8009c3e0;
extern struct asistream *g_AsiStream;
extern u8 *var8009c640;
extern u8 *var8009c644;
extern u8 var8009c650[];
extern u32 var8009c650[34];
extern u8 *var8009c6d8;
extern u8 *var8009c6dc;
extern OSTimer var8009c760;

View File

@ -40,9 +40,9 @@ extern const u32 var70057750[];
u32 func0003f8a0(void);
void func00040164(struct asistream *stream, u32 arg1, u32 arg2);
u32 func00040dac(void);
u32 func00041600(void);
void func00042238(struct asistream *stream, u32 arg1, u32 arg2);
void func00040dac(struct asistream *stream, u32 arg1, u32 arg2);
void func00041600(struct asistream *stream, u32 arg1, u32 arg2);
bool func00042238(struct asistream *stream, u32 arg1, u32 arg2);
bool func000427d8(struct asistream *stream, u32 arg1);
bool func00042990(struct asistream *stream, u32 arg1, u32 arg2);
bool func00042e38(struct asistream *stream);

View File

@ -7,7 +7,7 @@
u32 func000461c0(void);
u32 func00046290(void);
s32 func000462c4(void *arg0, void *arg1, s32 arg2);
u32 func000462f8(void);
u32 func000464a8(void);
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);
#endif

View File

@ -7386,14 +7386,23 @@ struct asistream {
u32 unk3bec;
u32 unk3bf0;
u32 unk3bf4;
u8 unk3bf8[0xa0];
u8 unk3bf8[0x80];
u32 unk3c78[2][1];
u32 unk3c80[6][1];
u32 unk3c98[1][1];
u8 unk3c9c[0x2ec];
u8 unk3c9c[0x14];
u32 unk3cb0[4][1][3];
u32 unk3ce0[1][1];
u8 unk3ce4[0x1c];
u32 unk3d00[1][1];
u8 unk3d04[0x284];
s32 unk3f88;
s32 unk3f8c;
u8 unk3f90[0x6cc];
s32 unk465c;
u32 unk4660;
u32 unk3f90;
u8 unk3f94[1][0x484];
u8 unk4418[1][0x242];
s32 unk465c[1];
s32 unk4660[1];
struct asistream_4f64 unk4664[32];
struct asistream_4f64 unk4f64[2][32];
u8 unk6164[0x900];

View File

@ -2909,128 +2909,36 @@ const u32 var700577cc[] = {0x00000000};
const u32 var700577d0[] = {0x64646400};
const u32 var700577d4[] = {0x00000000};
const u32 var700577d8[] = {0x00000000};
const u32 var700577dc[] = {0x00000000};
const u32 var700577e0[] = {0x00000000};
const u32 var700577e4[] = {0x00000000};
const u32 var700577e8[] = {0x00000000};
const u32 var700577ec[] = {0x00000000};
const u32 var700577f0[] = {0x00000000};
const u32 var700577f4[] = {0x00000000};
const u32 var700577f8[] = {0x00000000};
const u32 var700577fc[] = {0x00000000};
const u32 var70057800[] = {0x00000000};
const u32 var70057804[] = {0x00000000};
const u32 var70057808[] = {0x00000000};
const u32 var7005780c[] = {0x00000000};
const u32 var70057810[] = {0x00000000};
const u32 var70057814[] = {0x00000000};
const u32 var70057818[] = {0x00000001};
const u32 var7005781c[] = {0x00000002};
const u32 var70057820[] = {0x00000003};
const u32 var70057824[] = {0x00000004};
const u32 var70057828[] = {0x00000006};
const u32 var7005782c[] = {0x00000008};
const u32 var70057830[] = {0x0000000a};
const u32 var70057834[] = {0x0000000d};
const u32 var70057838[] = {0x00000004};
const u32 var7005783c[] = {0x00000005};
const u32 var70057840[] = {0x00000006};
const u32 var70057844[] = {0x00000007};
const u32 var70057848[] = {0x00000008};
const u32 var7005784c[] = {0x00000009};
const u32 var70057850[] = {0x0000000b};
const u32 var70057854[] = {0x0000000d};
const u32 var70057858[] = {0xffffffff};
const u32 var7005785c[] = {0xffffffff};
const s32 var700577d8[34] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 2, 3, 4,
6, 8, 10, 13, 4, 5, 6, 7, 8, 9,
11, 13, -1, -1,
};
const u32 var70057860[] = {0x0005000b};
const u32 var70057864[] = {0x00110017};
const u32 var70057868[] = {0x001d0023};
const u32 var7005786c[] = {0x002b0035};
const u32 var70057870[] = {0x0041004f};
const u32 var70057874[] = {0x005f0073};
const u32 var70057878[] = {0x008b00a7};
const u32 var7005787c[] = {0x00c700ed};
const u32 var70057880[] = {0x011b014f};
const u32 var70057884[] = {0x018b01cf};
const u32 var70057888[] = {0x0209023f};
const u32 var7005788c[] = {0x0005000b};
const u32 var70057890[] = {0x00110017};
const u32 var70057894[] = {0x001d0023};
const u32 var70057898[] = {0x002b0035};
const u32 var7005789c[] = {0x0041004f};
const u32 var700578a0[] = {0x005f0071};
const u32 var700578a4[] = {0x008700a1};
const u32 var700578a8[] = {0x00c100e7};
const u32 var700578ac[] = {0x0115014b};
const u32 var700578b0[] = {0x018901cf};
const u32 var700578b4[] = {0x021b023f};
const u32 var700578b8[] = {0x0005000b};
const u32 var700578bc[] = {0x00110017};
const u32 var700578c0[] = {0x001d0023};
const u32 var700578c4[] = {0x002b0035};
const u32 var700578c8[] = {0x0041004f};
const u32 var700578cc[] = {0x005f0073};
const u32 var700578d0[] = {0x008b00a7};
const u32 var700578d4[] = {0x00c700ed};
const u32 var700578d8[] = {0x011b014f};
const u32 var700578dc[] = {0x018b01cf};
const u32 var700578e0[] = {0x0209023f};
const u32 var700578e4[] = {0x00030007};
const u32 var700578e8[] = {0x000b000f};
const u32 var700578ec[] = {0x00130017};
const u32 var700578f0[] = {0x001d0023};
const u32 var700578f4[] = {0x002b0033};
const u32 var700578f8[] = {0x003d0049};
const u32 var700578fc[] = {0x0059006d};
const u32 var70057900[] = {0x008500a1};
const u32 var70057904[] = {0x00c300ed};
const u32 var70057908[] = {0x011f0155};
const u32 var7005790c[] = {0x01a1023f};
const u32 var70057910[] = {0x00030007};
const u32 var70057914[] = {0x000b000f};
const u32 var70057918[] = {0x00130017};
const u32 var7005791c[] = {0x001d0023};
const u32 var70057920[] = {0x00290031};
const u32 var70057924[] = {0x003b0047};
const u32 var70057928[] = {0x00570069};
const u32 var7005792c[] = {0x007f009b};
const u32 var70057930[] = {0x00bd00e5};
const u32 var70057934[] = {0x01130149};
const u32 var70057938[] = {0x017f023f};
const u32 var7005793c[] = {0x00030007};
const u32 var70057940[] = {0x000b000f};
const u32 var70057944[] = {0x00130017};
const u32 var70057948[] = {0x001d0023};
const u32 var7005794c[] = {0x002b0035};
const u32 var70057950[] = {0x00410051};
const u32 var70057954[] = {0x0065007d};
const u32 var70057958[] = {0x009b00c1};
const u32 var7005795c[] = {0x00ef0127};
const u32 var70057960[] = {0x016b01bf};
const u32 var70057964[] = {0x0225023f};
const s16 var70057860[2][3][22] = {
{
{ 5, 11, 17, 23, 29, 35, 43, 53, 65, 79, 95, 115, 139, 167, 199, 237, 283, 335, 395, 463, 521, 575 },
{ 5, 11, 17, 23, 29, 35, 43, 53, 65, 79, 95, 113, 135, 161, 193, 231, 277, 331, 393, 463, 539, 575 },
{ 5, 11, 17, 23, 29, 35, 43, 53, 65, 79, 95, 115, 139, 167, 199, 237, 283, 335, 395, 463, 521, 575 },
}, {
{ 3, 7, 11, 15, 19, 23, 29, 35, 43, 51, 61, 73, 89, 109, 133, 161, 195, 237, 287, 341, 417, 575 },
{ 3, 7, 11, 15, 19, 23, 29, 35, 41, 49, 59, 71, 87, 105, 127, 155, 189, 229, 275, 329, 383, 575 },
{ 3, 7, 11, 15, 19, 23, 29, 35, 43, 53, 65, 81, 101, 125, 155, 193, 239, 295, 363, 447, 549, 575 },
},
};
const u32 var70057968[] = {0x03070b11};
const u32 var7005796c[] = {0x171f2937};
const u32 var70057970[] = {0x496383ad};
const u32 var70057974[] = {0xbf03070b};
const u32 var70057978[] = {0x1119232f};
const u32 var7005797c[] = {0x3d4f6787};
const u32 var70057980[] = {0xb3bf0307};
const u32 var70057984[] = {0x0b111923};
const u32 var70057988[] = {0x2f3d4f67};
const u32 var7005798c[] = {0x85adbf03};
const u32 var70057990[] = {0x070b0f15};
const u32 var70057994[] = {0x1d273341};
const u32 var70057998[] = {0x536987bf};
const u32 var7005799c[] = {0x03070b0f};
const u32 var700579a0[] = {0x151b2531};
const u32 var700579a4[] = {0x3f4f637d};
const u32 var700579a8[] = {0xbf03070b};
const u32 var700579ac[] = {0x0f151d29};
const u32 var700579b0[] = {0x394d6789};
const u32 var700579b4[] = {0xb3bf0000};
const u8 var70057968[2][3][13] = {
{
{ 3, 7, 11, 17, 23, 31, 41, 55, 73, 99, 131, 173, 191 },
{ 3, 7, 11, 17, 25, 35, 47, 61, 79, 103, 135, 179, 191 },
{ 3, 7, 11, 17, 25, 35, 47, 61, 79, 103, 133, 173, 191 },
}, {
{ 3, 7, 11, 15, 21, 29, 39, 51, 65, 83, 105, 135, 191 },
{ 3, 7, 11, 15, 21, 27, 37, 49, 63, 79, 99, 125, 191 },
{ 3, 7, 11, 15, 21, 29, 41, 57, 77, 103, 137, 179, 191 },
},
};
const u32 var700579b8[] = {0x00000006};
const u32 var700579bc[] = {0x000c0012};
@ -6624,386 +6532,104 @@ glabel func00041600
/* 42234: 00000000 */ nop
);
GLOBAL_ASM(
glabel func00042238
/* 42238: 27bdff98 */ addiu $sp,$sp,-104
/* 4223c: afbf0024 */ sw $ra,0x24($sp)
/* 42240: afa40068 */ sw $a0,0x68($sp)
/* 42244: afa5006c */ sw $a1,0x6c($sp)
/* 42248: afa60070 */ sw $a2,0x70($sp)
/* 4224c: 8fae0068 */ lw $t6,0x68($sp)
/* 42250: 8dcf2020 */ lw $t7,0x2020($t6)
/* 42254: afaf0064 */ sw $t7,0x64($sp)
/* 42258: 8fb80068 */ lw $t8,0x68($sp)
/* 4225c: 8f193ba4 */ lw $t9,0x3ba4($t8)
/* 42260: 13200007 */ beqz $t9,.L00042280
/* 42264: 00000000 */ nop
/* 42268: 8fa40068 */ lw $a0,0x68($sp)
/* 4226c: 8fa5006c */ lw $a1,0x6c($sp)
/* 42270: 0c01036b */ jal func00040dac
/* 42274: 8fa60070 */ lw $a2,0x70($sp)
/* 42278: 10000005 */ b .L00042290
/* 4227c: 00000000 */ nop
.L00042280:
/* 42280: 8fa40068 */ lw $a0,0x68($sp)
/* 42284: 8fa5006c */ lw $a1,0x6c($sp)
/* 42288: 0c010580 */ jal func00041600
/* 4228c: 8fa60070 */ lw $a2,0x70($sp)
.L00042290:
/* 42290: 8fa9006c */ lw $t1,0x6c($sp)
/* 42294: 8fa80068 */ lw $t0,0x68($sp)
/* 42298: 8fac0070 */ lw $t4,0x70($sp)
/* 4229c: 00095080 */ sll $t2,$t1,0x2
/* 422a0: 010a5821 */ addu $t3,$t0,$t2
/* 422a4: 000c6880 */ sll $t5,$t4,0x2
/* 422a8: 016d7021 */ addu $t6,$t3,$t5
/* 422ac: 8dcf3c80 */ lw $t7,0x3c80($t6)
/* 422b0: 000fc040 */ sll $t8,$t7,0x1
/* 422b4: afb80060 */ sw $t8,0x60($sp)
/* 422b8: 8fb90068 */ lw $t9,0x68($sp)
/* 422bc: 3c0d7005 */ lui $t5,%hi(var70057860)
/* 422c0: 25ad7860 */ addiu $t5,$t5,%lo(var70057860)
/* 422c4: 8f2a3bb4 */ lw $t2,0x3bb4($t9)
/* 422c8: 8f293ba4 */ lw $t1,0x3ba4($t9)
/* 422cc: 000a6080 */ sll $t4,$t2,0x2
/* 422d0: 018a6023 */ subu $t4,$t4,$t2
/* 422d4: 000c6080 */ sll $t4,$t4,0x2
/* 422d8: 00094140 */ sll $t0,$t1,0x5
/* 422dc: 018a6023 */ subu $t4,$t4,$t2
/* 422e0: 01094021 */ addu $t0,$t0,$t1
/* 422e4: 00084080 */ sll $t0,$t0,0x2
/* 422e8: 000c6080 */ sll $t4,$t4,0x2
/* 422ec: 010c5821 */ addu $t3,$t0,$t4
/* 422f0: 016d7021 */ addu $t6,$t3,$t5
/* 422f4: afae0050 */ sw $t6,0x50($sp)
/* 422f8: 8faf0068 */ lw $t7,0x68($sp)
/* 422fc: 3c0c7005 */ lui $t4,%hi(var70057968)
/* 42300: 258c7968 */ addiu $t4,$t4,%lo(var70057968)
/* 42304: 8df83ba4 */ lw $t8,0x3ba4($t7)
/* 42308: 8df93bb4 */ lw $t9,0x3bb4($t7)
/* 4230c: 00184880 */ sll $t1,$t8,0x2
/* 42310: 00195080 */ sll $t2,$t9,0x2
/* 42314: 01384821 */ addu $t1,$t1,$t8
/* 42318: 01595023 */ subu $t2,$t2,$t9
/* 4231c: 000a5080 */ sll $t2,$t2,0x2
/* 42320: 000948c0 */ sll $t1,$t1,0x3
/* 42324: 01384823 */ subu $t1,$t1,$t8
/* 42328: 01595021 */ addu $t2,$t2,$t9
/* 4232c: 012a4021 */ addu $t0,$t1,$t2
/* 42330: 010c5821 */ addu $t3,$t0,$t4
/* 42334: afab004c */ sw $t3,0x4c($sp)
/* 42338: 8fae006c */ lw $t6,0x6c($sp)
/* 4233c: 8fad0068 */ lw $t5,0x68($sp)
/* 42340: 8fb90070 */ lw $t9,0x70($sp)
/* 42344: 000ec080 */ sll $t8,$t6,0x2
/* 42348: 01b87821 */ addu $t7,$t5,$t8
/* 4234c: 00194880 */ sll $t1,$t9,0x2
/* 42350: 01e95021 */ addu $t2,$t7,$t1
/* 42354: 8d483c98 */ lw $t0,0x3c98($t2)
/* 42358: 1500003c */ bnez $t0,.L0004244c
/* 4235c: 00000000 */ nop
/* 42360: 8d4c3ca0 */ lw $t4,0x3ca0($t2)
/* 42364: 15800039 */ bnez $t4,.L0004244c
/* 42368: 00000000 */ nop
/* 4236c: 8fae006c */ lw $t6,0x6c($sp)
/* 42370: 8fab0068 */ lw $t3,0x68($sp)
/* 42374: 8fb90070 */ lw $t9,0x70($sp)
/* 42378: 000e6880 */ sll $t5,$t6,0x2
/* 4237c: 016dc021 */ addu $t8,$t3,$t5
/* 42380: 00197880 */ sll $t7,$t9,0x2
/* 42384: 030f4821 */ addu $t1,$t8,$t7
/* 42388: 8d283ce0 */ lw $t0,0x3ce0($t1)
/* 4238c: 8fac0050 */ lw $t4,0x50($sp)
/* 42390: 27b90054 */ addiu $t9,$sp,0x54
/* 42394: 00085040 */ sll $t2,$t0,0x1
/* 42398: 018a7021 */ addu $t6,$t4,$t2
/* 4239c: 85cb0000 */ lh $t3,0x0($t6)
/* 423a0: 256d0001 */ addiu $t5,$t3,0x1
/* 423a4: af2d0000 */ sw $t5,0x0($t9)
/* 423a8: 27b80054 */ addiu $t8,$sp,0x54
/* 423ac: 8f0f0000 */ lw $t7,0x0($t8)
/* 423b0: 8fa90060 */ lw $t1,0x60($sp)
/* 423b4: 012f082a */ slt $at,$t1,$t7
/* 423b8: 10200008 */ beqz $at,.L000423dc
/* 423bc: 00000000 */ nop
/* 423c0: 8fa80060 */ lw $t0,0x60($sp)
/* 423c4: 27ac0054 */ addiu $t4,$sp,0x54
/* 423c8: 27aa0054 */ addiu $t2,$sp,0x54
/* 423cc: ad880004 */ sw $t0,0x4($t4)
/* 423d0: 8d4e0004 */ lw $t6,0x4($t2)
/* 423d4: 1000001b */ b .L00042444
/* 423d8: ad4e0000 */ sw $t6,0x0($t2)
.L000423dc:
/* 423dc: 8fad006c */ lw $t5,0x6c($sp)
/* 423e0: 8fab0068 */ lw $t3,0x68($sp)
/* 423e4: 8faf0070 */ lw $t7,0x70($sp)
/* 423e8: 000dc880 */ sll $t9,$t5,0x2
/* 423ec: 0179c021 */ addu $t8,$t3,$t9
/* 423f0: 000f4880 */ sll $t1,$t7,0x2
/* 423f4: 03094021 */ addu $t0,$t8,$t1
/* 423f8: 8d0c3ce8 */ lw $t4,0x3ce8($t0)
/* 423fc: 8d0e3ce0 */ lw $t6,0x3ce0($t0)
/* 42400: 8fab0050 */ lw $t3,0x50($sp)
/* 42404: 27a90054 */ addiu $t1,$sp,0x54
/* 42408: 018e5021 */ addu $t2,$t4,$t6
/* 4240c: 000a6840 */ sll $t5,$t2,0x1
/* 42410: 016dc821 */ addu $t9,$t3,$t5
/* 42414: 872f0002 */ lh $t7,0x2($t9)
/* 42418: 25f80001 */ addiu $t8,$t7,0x1
/* 4241c: ad380004 */ sw $t8,0x4($t1)
/* 42420: 27a80054 */ addiu $t0,$sp,0x54
/* 42424: 8d0c0004 */ lw $t4,0x4($t0)
/* 42428: 8fae0060 */ lw $t6,0x60($sp)
/* 4242c: 01cc082a */ slt $at,$t6,$t4
/* 42430: 10200004 */ beqz $at,.L00042444
/* 42434: 00000000 */ nop
/* 42438: 8faa0060 */ lw $t2,0x60($sp)
/* 4243c: 27ab0054 */ addiu $t3,$sp,0x54
/* 42440: ad6a0004 */ sw $t2,0x4($t3)
.L00042444:
/* 42444: 10000028 */ b .L000424e8
/* 42448: 00000000 */ nop
.L0004244c:
/* 4244c: 8fb9006c */ lw $t9,0x6c($sp)
/* 42450: 8fad0068 */ lw $t5,0x68($sp)
/* 42454: 8fa90070 */ lw $t1,0x70($sp)
/* 42458: 00197880 */ sll $t7,$t9,0x2
/* 4245c: 01afc021 */ addu $t8,$t5,$t7
/* 42460: 00094080 */ sll $t0,$t1,0x2
/* 42464: 03086021 */ addu $t4,$t8,$t0
/* 42468: 8d8e3ca0 */ lw $t6,0x3ca0($t4)
/* 4246c: 24010002 */ addiu $at,$zero,0x2
/* 42470: 15c1000c */ bne $t6,$at,.L000424a4
/* 42474: 00000000 */ nop
/* 42478: 8d8a3ca8 */ lw $t2,0x3ca8($t4)
/* 4247c: 15400009 */ bnez $t2,.L000424a4
/* 42480: 00000000 */ nop
/* 42484: 8fab004c */ lw $t3,0x4c($sp)
/* 42488: 27a90054 */ addiu $t1,$sp,0x54
/* 4248c: 91790002 */ lbu $t9,0x2($t3)
/* 42490: 00196880 */ sll $t5,$t9,0x2
/* 42494: 01b96823 */ subu $t5,$t5,$t9
/* 42498: 25af0003 */ addiu $t7,$t5,0x3
/* 4249c: 10000006 */ b .L000424b8
/* 424a0: ad2f0000 */ sw $t7,0x0($t1)
.L000424a4:
/* 424a4: 8fb80050 */ lw $t8,0x50($sp)
/* 424a8: 27ac0054 */ addiu $t4,$sp,0x54
/* 424ac: 8708000e */ lh $t0,0xe($t8)
/* 424b0: 250e0001 */ addiu $t6,$t0,0x1
/* 424b4: ad8e0000 */ sw $t6,0x0($t4)
.L000424b8:
/* 424b8: 27aa0054 */ addiu $t2,$sp,0x54
/* 424bc: 8d4b0000 */ lw $t3,0x0($t2)
/* 424c0: 8fb90060 */ lw $t9,0x60($sp)
/* 424c4: 032b082a */ slt $at,$t9,$t3
/* 424c8: 10200004 */ beqz $at,.L000424dc
/* 424cc: 00000000 */ nop
/* 424d0: 8fad0060 */ lw $t5,0x60($sp)
/* 424d4: 27af0054 */ addiu $t7,$sp,0x54
/* 424d8: aded0000 */ sw $t5,0x0($t7)
.L000424dc:
/* 424dc: 8fa90060 */ lw $t1,0x60($sp)
/* 424e0: 27b80054 */ addiu $t8,$sp,0x54
/* 424e4: af090004 */ sw $t1,0x4($t8)
.L000424e8:
/* 424e8: 8fa80060 */ lw $t0,0x60($sp)
/* 424ec: 27ae0054 */ addiu $t6,$sp,0x54
/* 424f0: adc80008 */ sw $t0,0x8($t6)
/* 424f4: afa00048 */ sw $zero,0x48($sp)
/* 424f8: 8faa0070 */ lw $t2,0x70($sp)
/* 424fc: 8fac0068 */ lw $t4,0x68($sp)
/* 42500: 000a58c0 */ sll $t3,$t2,0x3
/* 42504: 016a5821 */ addu $t3,$t3,$t2
/* 42508: 000b5940 */ sll $t3,$t3,0x5
/* 4250c: 016a5821 */ addu $t3,$t3,$t2
/* 42510: 000b5880 */ sll $t3,$t3,0x2
/* 42514: 018bc821 */ addu $t9,$t4,$t3
/* 42518: 272d3f94 */ addiu $t5,$t9,0x3f94
/* 4251c: afad0044 */ sw $t5,0x44($sp)
/* 42520: 8fa90070 */ lw $t1,0x70($sp)
/* 42524: 8faf0068 */ lw $t7,0x68($sp)
/* 42528: 0009c0c0 */ sll $t8,$t1,0x3
/* 4252c: 0309c021 */ addu $t8,$t8,$t1
/* 42530: 0018c140 */ sll $t8,$t8,0x5
/* 42534: 0309c021 */ addu $t8,$t8,$t1
/* 42538: 0018c040 */ sll $t8,$t8,0x1
/* 4253c: 01f84021 */ addu $t0,$t7,$t8
/* 42540: 250e4418 */ addiu $t6,$t0,0x4418
/* 42544: afae0040 */ sw $t6,0x40($sp)
/* 42548: afa0003c */ sw $zero,0x3c($sp)
.L0004254c:
/* 4254c: 8fac006c */ lw $t4,0x6c($sp)
/* 42550: 8fad0070 */ lw $t5,0x70($sp)
/* 42554: 8faa0068 */ lw $t2,0x68($sp)
/* 42558: 000c5880 */ sll $t3,$t4,0x2
/* 4255c: 8fb8003c */ lw $t8,0x3c($sp)
/* 42560: 016c5823 */ subu $t3,$t3,$t4
/* 42564: 000d4880 */ sll $t1,$t5,0x2
/* 42568: 000b5880 */ sll $t3,$t3,0x2
/* 4256c: 012d4823 */ subu $t1,$t1,$t5
/* 42570: 00094880 */ sll $t1,$t1,0x2
/* 42574: 014bc821 */ addu $t9,$t2,$t3
/* 42578: 03297821 */ addu $t7,$t9,$t1
/* 4257c: 00184080 */ sll $t0,$t8,0x2
/* 42580: 01e87021 */ addu $t6,$t7,$t0
/* 42584: 8dcc3cb0 */ lw $t4,0x3cb0($t6)
/* 42588: afac0038 */ sw $t4,0x38($sp)
/* 4258c: 8faa0038 */ lw $t2,0x38($sp)
/* 42590: 3c0d7005 */ lui $t5,%hi(var700577d8)
/* 42594: 000a5880 */ sll $t3,$t2,0x2
/* 42598: 01ab6821 */ addu $t5,$t5,$t3
/* 4259c: 8dad77d8 */ lw $t5,%lo(var700577d8)($t5)
/* 425a0: afad0034 */ sw $t5,0x34($sp)
/* 425a4: 8fb9003c */ lw $t9,0x3c($sp)
/* 425a8: 00194880 */ sll $t1,$t9,0x2
/* 425ac: 03a9c021 */ addu $t8,$sp,$t1
/* 425b0: 8f180054 */ lw $t8,0x54($t8)
/* 425b4: afb80030 */ sw $t8,0x30($sp)
/* 425b8: 8faf0038 */ lw $t7,0x38($sp)
/* 425bc: 3c0e800a */ lui $t6,%hi(var8009c650)
/* 425c0: 000f4080 */ sll $t0,$t7,0x2
/* 425c4: 01c87021 */ addu $t6,$t6,$t0
/* 425c8: 8dcec650 */ lw $t6,%lo(var8009c650)($t6)
/* 425cc: 15c00015 */ bnez $t6,.L00042624
/* 425d0: 00000000 */ nop
/* 425d4: 8fac0030 */ lw $t4,0x30($sp)
/* 425d8: 8faa0048 */ lw $t2,0x48($sp)
/* 425dc: 018a5823 */ subu $t3,$t4,$t2
/* 425e0: afab002c */ sw $t3,0x2c($sp)
/* 425e4: 8fa5002c */ lw $a1,0x2c($sp)
/* 425e8: 8fa40044 */ lw $a0,0x44($sp)
/* 425ec: 0c012c30 */ jal bzero
/* 425f0: 00052840 */ sll $a1,$a1,0x1
/* 425f4: 8fb9002c */ lw $t9,0x2c($sp)
/* 425f8: 8fad0044 */ lw $t5,0x44($sp)
/* 425fc: 00194840 */ sll $t1,$t9,0x1
/* 42600: 01a9c021 */ addu $t8,$t5,$t1
/* 42604: afb80044 */ sw $t8,0x44($sp)
/* 42608: 8faf0040 */ lw $t7,0x40($sp)
/* 4260c: 8fa8002c */ lw $t0,0x2c($sp)
/* 42610: 01e87021 */ addu $t6,$t7,$t0
/* 42614: afae0040 */ sw $t6,0x40($sp)
/* 42618: 8fac0030 */ lw $t4,0x30($sp)
/* 4261c: 10000010 */ b .L00042660
/* 42620: afac0048 */ sw $t4,0x48($sp)
.L00042624:
/* 42624: 8faa0068 */ lw $t2,0x68($sp)
/* 42628: 8fab0034 */ lw $t3,0x34($sp)
/* 4262c: 8fb90030 */ lw $t9,0x30($sp)
/* 42630: 27ad0044 */ addiu $t5,$sp,0x44
/* 42634: 27a90040 */ addiu $t1,$sp,0x40
/* 42638: afa9001c */ sw $t1,0x1c($sp)
/* 4263c: afad0018 */ sw $t5,0x18($sp)
/* 42640: 8fa60038 */ lw $a2,0x38($sp)
/* 42644: 8fa70048 */ lw $a3,0x48($sp)
/* 42648: 2544001c */ addiu $a0,$t2,0x1c
/* 4264c: 25452020 */ addiu $a1,$t2,0x2020
/* 42650: afab0010 */ sw $t3,0x10($sp)
/* 42654: 0c0118be */ jal func000462f8
/* 42658: afb90014 */ sw $t9,0x14($sp)
/* 4265c: afa20048 */ sw $v0,0x48($sp)
.L00042660:
/* 42660: 8fb8003c */ lw $t8,0x3c($sp)
/* 42664: 270f0001 */ addiu $t7,$t8,0x1
/* 42668: 29e10003 */ slti $at,$t7,0x3
/* 4266c: 1420ffb7 */ bnez $at,.L0004254c
/* 42670: afaf003c */ sw $t7,0x3c($sp)
/* 42674: 8fae006c */ lw $t6,0x6c($sp)
/* 42678: 8fa80068 */ lw $t0,0x68($sp)
/* 4267c: 8fab0070 */ lw $t3,0x70($sp)
/* 42680: 000e6080 */ sll $t4,$t6,0x2
/* 42684: 010c5021 */ addu $t2,$t0,$t4
/* 42688: 000bc880 */ sll $t9,$t3,0x2
/* 4268c: 01596821 */ addu $t5,$t2,$t9
/* 42690: 8da93d00 */ lw $t1,0x3d00($t5)
/* 42694: 25380020 */ addiu $t8,$t1,0x20
/* 42698: afb80038 */ sw $t8,0x38($sp)
/* 4269c: 8fae006c */ lw $t6,0x6c($sp)
/* 426a0: 8faf0068 */ lw $t7,0x68($sp)
/* 426a4: 8fab0070 */ lw $t3,0x70($sp)
/* 426a8: 000e4080 */ sll $t0,$t6,0x2
/* 426ac: 01e86021 */ addu $t4,$t7,$t0
/* 426b0: 000b5080 */ sll $t2,$t3,0x2
/* 426b4: 018ac821 */ addu $t9,$t4,$t2
/* 426b8: 8f2d3c78 */ lw $t5,0x3c78($t9)
/* 426bc: 8fa90064 */ lw $t1,0x64($sp)
/* 426c0: 01a9c021 */ addu $t8,$t5,$t1
/* 426c4: afb80028 */ sw $t8,0x28($sp)
/* 426c8: 8fae0068 */ lw $t6,0x68($sp)
/* 426cc: 8faf0028 */ lw $t7,0x28($sp)
/* 426d0: 27a80044 */ addiu $t0,$sp,0x44
/* 426d4: 27ab0040 */ addiu $t3,$sp,0x40
/* 426d8: afab0018 */ sw $t3,0x18($sp)
/* 426dc: afa80014 */ sw $t0,0x14($sp)
/* 426e0: 8fa60038 */ lw $a2,0x38($sp)
/* 426e4: 8fa70048 */ lw $a3,0x48($sp)
/* 426e8: 25c4001c */ addiu $a0,$t6,0x1c
/* 426ec: 25c52020 */ addiu $a1,$t6,0x2020
/* 426f0: 0c01192a */ jal func000464a8
/* 426f4: afaf0010 */ sw $t7,0x10($sp)
/* 426f8: afa20048 */ sw $v0,0x48($sp)
/* 426fc: 8fac0028 */ lw $t4,0x28($sp)
/* 42700: 8faa0068 */ lw $t2,0x68($sp)
/* 42704: ad4c2020 */ sw $t4,0x2020($t2)
/* 42708: 8fb90048 */ lw $t9,0x48($sp)
/* 4270c: 2b210241 */ slti $at,$t9,0x241
/* 42710: 14200008 */ bnez $at,.L00042734
/* 42714: 00000000 */ nop
/* 42718: 8fb80070 */ lw $t8,0x70($sp)
/* 4271c: 8fa90068 */ lw $t1,0x68($sp)
/* 42720: 240d0240 */ addiu $t5,$zero,0x240
/* 42724: 00187080 */ sll $t6,$t8,0x2
/* 42728: 012e7821 */ addu $t7,$t1,$t6
/* 4272c: 10000007 */ b .L0004274c
/* 42730: aded465c */ sw $t5,0x465c($t7)
.L00042734:
/* 42734: 8fac0070 */ lw $t4,0x70($sp)
/* 42738: 8fab0068 */ lw $t3,0x68($sp)
/* 4273c: 8fa80048 */ lw $t0,0x48($sp)
/* 42740: 000c5080 */ sll $t2,$t4,0x2
/* 42744: 016ac821 */ addu $t9,$t3,$t2
/* 42748: af28465c */ sw $t0,0x465c($t9)
.L0004274c:
/* 4274c: 8fb80048 */ lw $t8,0x48($sp)
/* 42750: 2b010240 */ slti $at,$t8,0x240
/* 42754: 10200013 */ beqz $at,.L000427a4
/* 42758: 00000000 */ nop
/* 4275c: 8fac0070 */ lw $t4,0x70($sp)
/* 42760: 8fa90048 */ lw $t1,0x48($sp)
/* 42764: 8faf0068 */ lw $t7,0x68($sp)
/* 42768: 240e0240 */ addiu $t6,$zero,0x240
/* 4276c: 000c5880 */ sll $t3,$t4,0x2
/* 42770: 01c96823 */ subu $t5,$t6,$t1
/* 42774: 01eb5021 */ addu $t2,$t7,$t3
/* 42778: ad4d4660 */ sw $t5,0x4660($t2)
/* 4277c: 8fb90070 */ lw $t9,0x70($sp)
/* 42780: 8fa80068 */ lw $t0,0x68($sp)
/* 42784: 8fa40044 */ lw $a0,0x44($sp)
/* 42788: 0019c080 */ sll $t8,$t9,0x2
/* 4278c: 01187021 */ addu $t6,$t0,$t8
/* 42790: 8dc54660 */ lw $a1,0x4660($t6)
/* 42794: 0c012c30 */ jal bzero
/* 42798: 00052840 */ sll $a1,$a1,0x1
/* 4279c: 10000006 */ b .L000427b8
/* 427a0: 00000000 */ nop
.L000427a4:
/* 427a4: 8fac0070 */ lw $t4,0x70($sp)
/* 427a8: 8fa90068 */ lw $t1,0x68($sp)
/* 427ac: 000c7880 */ sll $t7,$t4,0x2
/* 427b0: 012f5821 */ addu $t3,$t1,$t7
/* 427b4: ad604660 */ sw $zero,0x4660($t3)
.L000427b8:
/* 427b8: 10000003 */ b .L000427c8
/* 427bc: 24020001 */ addiu $v0,$zero,0x1
/* 427c0: 10000001 */ b .L000427c8
/* 427c4: 00000000 */ nop
.L000427c8:
/* 427c8: 8fbf0024 */ lw $ra,0x24($sp)
/* 427cc: 27bd0068 */ addiu $sp,$sp,0x68
/* 427d0: 03e00008 */ jr $ra
/* 427d4: 00000000 */ nop
);
extern u32 var8009c650[34];
bool func00042238(struct asistream *stream, u32 arg1, u32 arg2)
{
s32 sp64 = stream->unk2020;
s32 sp60;
s32 sp54[3];
const s16 *sp50;
const u8 *sp4c;
s32 sp48;
u8 *sp44;
u8 *sp40;
s32 i;
u32 sp38;
s32 sp34;
s32 sp30;
s32 sp2c;
s32 sp28;
if (stream->unk3ba4) {
func00040dac(stream, arg1, arg2);
} else {
func00041600(stream, arg1, arg2);
}
sp60 = stream->unk3c80[arg1][arg2] * 2;
sp50 = var70057860[stream->unk3ba4][stream->unk3bb4];
sp4c = var70057968[stream->unk3ba4][stream->unk3bb4];
if (stream->unk3c98[arg1][arg2] == 0 && stream->unk3c98[arg1][arg2 + 2] == 0) {
sp54[0] = sp50[stream->unk3ce0[arg1][arg2]] + 1;
if (sp54[0] > sp60) {
sp54[0] = sp54[1] = sp60;
} else {
sp54[1] = sp50[stream->unk3ce0[arg1][arg2] + stream->unk3ce0[arg1][arg2 + 2] + 1] + 1;
if (sp54[1] > sp60) {
sp54[1] = sp60;
}
}
} else {
if (stream->unk3c98[arg1][arg2 + 2] == 2 && stream->unk3c98[arg1][arg2 + 4] == 0) {
sp54[0] = sp4c[2] * 3 + 3;
} else {
sp54[0] = sp50[7] + 1;
}
if (sp54[0] > sp60) {
sp54[0] = sp60;
}
sp54[1] = sp60;
}
sp54[2] = sp60;
sp48 = 0;
sp44 = stream->unk3f94[arg2];
sp40 = stream->unk4418[arg2];
for (i = 0; i < 3; i++) {
sp38 = stream->unk3cb0[arg1][arg2][i];
sp34 = var700577d8[sp38];
sp30 = sp54[i];
if (var8009c650[sp38] == 0) {
sp2c = sp30 - sp48;
bzero(sp44, sp2c * 2);
sp44 += sp2c * 2;
sp40 += sp2c;
sp48 = sp30;
} else {
sp48 = func000462f8(stream->unk1c, &stream->unk2020, sp38, sp48, sp34, sp30, &sp44, &sp40);
}
}
sp38 = stream->unk3d00[arg1][arg2] + 32;
sp28 = stream->unk3c78[arg1][arg2] + sp64;
sp48 = func000464a8(stream->unk1c, &stream->unk2020, sp38, sp48, sp28, &sp44, &sp40);
stream->unk2020 = sp28;
if (sp48 > 576) {
stream->unk465c[arg2] = 576;
} else {
stream->unk465c[arg2] = sp48;
}
if (sp48 < 576) {
stream->unk4660[arg2] = 576 - sp48;
bzero(sp44, stream->unk4660[arg2] * 2);
} else {
stream->unk4660[arg2] = 0;
}
return true;
}
bool func000427d8(struct asistream *stream, u32 arg1)
{
@ -7740,7 +7366,7 @@ bool func0004371c(struct asistream *stream)
if (stream->unk3c98[sp950][0] != 0 && stream->unk3c98[sp950][2] == 2) {
sp948 = 32;
} else {
sp944 = (stream->unk465c - 1) / 18 + 1;
sp944 = (stream->unk465c[0] - 1) / 18 + 1;
sp948 = sp944;
}

View File

@ -9,7 +9,7 @@
extern struct mp3vars g_Mp3Vars;
u8 var8009c650[0x88];
u32 var8009c650[34];
u8 *var8009c6d8;
u8 *var8009c6dc;