Attempt to decompile fileGetInflatedLength

This commit is contained in:
Ryan Dwyer
2021-02-09 19:00:04 +10:00
parent 7b8b83bb50
commit 52c2238c08
9 changed files with 45 additions and 19 deletions
+30 -4
View File
@@ -148,7 +148,7 @@ void func0f166ff0(u16 filenum, void *memaddr, s32 offset, u32 len)
}
GLOBAL_ASM(
glabel func0f167054
glabel fileGetInflatedLength
/* f167054: 27bdff78 */ addiu $sp,$sp,-136
/* f167058: 3c0f8008 */ lui $t7,%hi(filetable)
/* f16705c: 25ef2060 */ addiu $t7,$t7,%lo(filetable)
@@ -177,7 +177,7 @@ glabel func0f167054
/* f1670b4: 0c003504 */ jal func0000d410
/* f1670b8: 00808025 */ or $s0,$a0,$zero
.L0f1670bc:
/* f1670bc: 0c002277 */ jal func000089dc
/* f1670bc: 0c002277 */ jal rzipIs1173
/* f1670c0: 02002025 */ or $a0,$s0,$zero
/* f1670c4: 10400009 */ beqz $v0,.L0f1670ec
/* f1670c8: 8fbf001c */ lw $ra,0x1c($sp)
@@ -197,6 +197,32 @@ glabel func0f167054
/* f1670f8: 27bd0088 */ addiu $sp,$sp,0x88
);
//u32 fileGetInflatedLength(u32 filenum)
//{
// u8 buffer[0x50];
// u8 *alignedbuffer;
// void *romaddr;
// u32 tmp;
//
// romaddr = filetable[filenum];
// alignedbuffer = buffer;
//
// if (romaddr == NULL) {
// alignedbuffer = (u8 *)(((u32)alignedbuffer) & ~0xf);
//
// stub0f175f58(func0f166ea8((u32 *) &filetable[filenum]), (u32)alignedbuffer, 16);
// } else {
// alignedbuffer = (u8 *)(((u32)alignedbuffer) & ~0xf);
// func0000d410((void *)alignedbuffer, romaddr, 0x40);
// }
//
// if (rzipIs1173((void *)alignedbuffer)) {
// return (alignedbuffer[2] << 16) | (alignedbuffer[3] << 8) | alignedbuffer[4];
// }
//
// return 0;
//}
GLOBAL_ASM(
glabel func0f1670fc
/* f1670fc: 27bdffd0 */ addiu $sp,$sp,-48
@@ -218,7 +244,7 @@ glabel func0f1670fc
/* f167138: 8e080000 */ lw $t0,0x0($s0)
/* f16713c: 5500000e */ bnezl $t0,.L0f167178
/* f167140: 8e040000 */ lw $a0,0x0($s0)
/* f167144: 0fc59c15 */ jal func0f167054
/* f167144: 0fc59c15 */ jal fileGetInflatedLength
/* f167148: 01e02025 */ or $a0,$t7,$zero
/* f16714c: 24490020 */ addiu $t1,$v0,0x20
/* f167150: 2401fff0 */ addiu $at,$zero,-16
@@ -284,7 +310,7 @@ glabel func0f1670fc
//
// // 13c
// if (info->unk00 == 0) {
// info->unk00 = (func0f167054(filenum) + 0x20) & 0xfffffff0;
// info->unk00 = (fileGetInflatedLength(filenum) + 0x20) & 0xfffffff0;
//
// // 164
// if (arg1 == 0x11) {
+2 -2
View File
@@ -8218,7 +8218,7 @@ glabel func0f09e144
/* f09e19c: 8e5815bc */ lw $t8,0x15bc($s2)
/* f09e1a0: af100000 */ sw $s0,0x0($t8)
/* f09e1a4: 964415b2 */ lhu $a0,0x15b2($s2)
/* f09e1a8: 0fc59c15 */ jal func0f167054
/* f09e1a8: 0fc59c15 */ jal fileGetInflatedLength
/* f09e1ac: afa30064 */ sw $v1,0x64($sp)
/* f09e1b0: 2443003f */ addiu $v1,$v0,0x3f
/* f09e1b4: 3479003f */ ori $t9,$v1,0x3f
@@ -8370,7 +8370,7 @@ glabel func0f09e144
/* f09e3e4: 02202025 */ or $a0,$s1,$zero
/* f09e3e8: 0fc69d58 */ jal func0f1a7560
/* f09e3ec: 02203825 */ or $a3,$s1,$zero
/* f09e3f0: 0fc59c15 */ jal func0f167054
/* f09e3f0: 0fc59c15 */ jal fileGetInflatedLength
/* f09e3f4: 964415b2 */ lhu $a0,0x15b2($s2)
/* f09e3f8: 0fc59ca0 */ jal fileGetSize
/* f09e3fc: 964415b2 */ lhu $a0,0x15b2($s2)
+3 -3
View File
@@ -1733,7 +1733,7 @@ glabel var7f1ad5b4
/* f0b8e1c: 9484cf06 */ lhu $a0,%lo(g_Bodies+0x2)($a0)
/* f0b8e20: afab00f0 */ sw $t3,0xf0($sp)
/* f0b8e24: afa5005c */ sw $a1,0x5c($sp)
/* f0b8e28: 0fc59c15 */ jal func0f167054
/* f0b8e28: 0fc59c15 */ jal fileGetInflatedLength
/* f0b8e2c: afa500ec */ sw $a1,0xec($sp)
/* f0b8e30: 8fa900f0 */ lw $t1,0xf0($sp)
/* f0b8e34: 244e003f */ addiu $t6,$v0,0x3f
@@ -1748,7 +1748,7 @@ glabel var7f1ad5b4
/* f0b8e58: 000a5080 */ sll $t2,$t2,0x2
/* f0b8e5c: 3c048008 */ lui $a0,%hi(g_Bodies+0x2)
/* f0b8e60: 008a2021 */ addu $a0,$a0,$t2
/* f0b8e64: 0fc59c15 */ jal func0f167054
/* f0b8e64: 0fc59c15 */ jal fileGetInflatedLength
/* f0b8e68: 9484cf06 */ lhu $a0,%lo(g_Bodies+0x2)($a0)
/* f0b8e6c: 8fab00e4 */ lw $t3,0xe4($sp)
/* f0b8e70: 244c003f */ addiu $t4,$v0,0x3f
@@ -1762,7 +1762,7 @@ glabel var7f1ad5b4
/* f0b8e8c: 001948c0 */ sll $t1,$t9,0x3
/* f0b8e90: 3c048008 */ lui $a0,%hi(g_Props+0x4)
/* f0b8e94: 00892021 */ addu $a0,$a0,$t1
/* f0b8e98: 0fc59c15 */ jal func0f167054
/* f0b8e98: 0fc59c15 */ jal fileGetInflatedLength
/* f0b8e9c: 9484b070 */ lhu $a0,%lo(g_Props+0x4)($a0)
/* f0b8ea0: 8fb800e4 */ lw $t8,0xe4($sp)
/* f0b8ea4: 244f003f */ addiu $t7,$v0,0x3f
+3 -3
View File
@@ -3247,7 +3247,7 @@ glabel var7f1b2948
/* f0f3a84: 96220002 */ lhu $v0,0x2($s1)
/* f0f3a88: 00402025 */ or $a0,$v0,$zero
/* f0f3a8c: a7a2040a */ sh $v0,0x40a($sp)
/* f0f3a90: 0fc59c15 */ jal func0f167054
/* f0f3a90: 0fc59c15 */ jal fileGetInflatedLength
/* f0f3a94: afa2003c */ sw $v0,0x3c($sp)
/* f0f3a98: 8e2d0000 */ lw $t5,0x0($s1)
/* f0f3a9c: 2443003f */ addiu $v1,$v0,0x3f
@@ -3268,7 +3268,7 @@ glabel var7f1b2948
/* f0f3ad4: 000a5080 */ sll $t2,$t2,0x2
/* f0f3ad8: 022a8821 */ addu $s1,$s1,$t2
/* f0f3adc: 9631cf06 */ lhu $s1,%lo(g_Bodies+0x2)($s1)
/* f0f3ae0: 0fc59c15 */ jal func0f167054
/* f0f3ae0: 0fc59c15 */ jal fileGetInflatedLength
/* f0f3ae4: 02202025 */ or $a0,$s1,$zero
/* f0f3ae8: 8fab0420 */ lw $t3,0x420($sp)
/* f0f3aec: 244c003f */ addiu $t4,$v0,0x3f
@@ -3353,7 +3353,7 @@ glabel var7f1b2948
/* f0f3c1c: 10000027 */ b .L0f0f3cbc
/* f0f3c20: 8e19000c */ lw $t9,0xc($s0)
.L0f0f3c24:
/* f0f3c24: 0fc59c15 */ jal func0f167054
/* f0f3c24: 0fc59c15 */ jal fileGetInflatedLength
/* f0f3c28: 00402025 */ or $a0,$v0,$zero
/* f0f3c2c: 2443003f */ addiu $v1,$v0,0x3f
/* f0f3c30: 346d003f */ ori $t5,$v1,0x3f
+2 -2
View File
@@ -7350,7 +7350,7 @@ glabel func0f15d9a8
/* f15d9ac: afbf0014 */ sw $ra,0x14($sp)
/* f15d9b0: afa51424 */ sw $a1,0x1424($sp)
/* f15d9b4: afa61428 */ sw $a2,0x1428($sp)
/* f15d9b8: 0c002277 */ jal func000089dc
/* f15d9b8: 0c002277 */ jal rzipIs1173
/* f15d9bc: afa41420 */ sw $a0,0x1420($sp)
/* f15d9c0: 8fa41420 */ lw $a0,0x1420($sp)
/* f15d9c4: 8fa51424 */ lw $a1,0x1424($sp)
@@ -7638,7 +7638,7 @@ glabel func0f15dc58
/* f15dd98: 02602025 */ or $a0,$s3,$zero
/* f15dd9c: 0fc56c71 */ jal func0f15b1c4
/* f15dda0: 02403025 */ or $a2,$s2,$zero
/* f15dda4: 0c002277 */ jal func000089dc
/* f15dda4: 0c002277 */ jal rzipIs1173
/* f15dda8: 02602025 */ or $a0,$s3,$zero
/* f15ddac: 10400009 */ beqz $v0,.L0f15ddd4
/* f15ddb0: 8fae02f4 */ lw $t6,0x2f4($sp)
+2 -2
View File
@@ -6,11 +6,11 @@
void *fileGetRomAddress(s32 filenum);
u32 fileGetRomSizeByTableAddress(u32 *filetableaddr);
s32 fileGetRomSizeByFileNum(s32 filenum);
u32 func0f166ea8(void);
u32 func0f166ea8(u32 *filetableaddr);
void func0f166eb4(void *ptr, u32 len, void *table, struct fileinfo *info);
void func0f166f74(void);
void func0f166ff0(u16 filenum, void *memaddr, s32 offset, u32 len);
u32 func0f167054(u32 filenum);
u32 fileGetInflatedLength(u32 filenum);
void *func0f1670fc(u32 filenum, u32 arg1);
void *func0f167200(s32 filenum, s32 arg1, u8 *ptr, u32 size);
u32 fileGetSize(s32 filenum);
+1 -1
View File
@@ -4,7 +4,7 @@
#include "types.h"
void stub0f175f50(void);
void stub0f175f58(s32 arg0, s32 arg1, s32 arg2);
void stub0f175f58(s32 arg0, u32 addr, u32 numwords);
bool stub0f175f68(s32 arg0, s32 arg1);
void stub0f175f78(s32 arg0, s32 arg1, s32 arg2);
+1 -1
View File
@@ -12,7 +12,7 @@ u32 func00008024(void);
u32 func00008064(void);
u32 func00008610(void);
u32 func000088b0(void);
u32 func000089dc(void);
bool rzipIs1173(void *buffer);
u32 func00008a08(void);
#endif
+1 -1
View File
@@ -1563,7 +1563,7 @@ glabel func000088b0
);
GLOBAL_ASM(
glabel func000089dc
glabel rzipIs1173
/* 89dc: 24090011 */ addiu $t1,$zero,0x11
/* 89e0: 90880000 */ lbu $t0,0x0($a0)
/* 89e4: 15090006 */ bne $t0,$t1,.L00008a00