diff --git a/Makefile b/Makefile index 1db9cb8f3..69373e419 100644 --- a/Makefile +++ b/Makefile @@ -115,6 +115,7 @@ G_C_FILES := \ src/lib/lib_3a100.c \ src/lib/lib_3e3e0.c \ src/lib/lib_45ed0.c \ + src/lib/lib_47d20.c \ src/lib/mp3.c \ src/lib/speaker.c diff --git a/ld/libfiles.ntsc-beta.inc b/ld/libfiles.ntsc-beta.inc index bb9d83a31..b511e72ce 100644 --- a/ld/libfiles.ntsc-beta.inc +++ b/ld/libfiles.ntsc-beta.inc @@ -122,6 +122,7 @@ build/ROMID/lib/lib_47550.o (section); \ build/ROMID/lib/naudio/n_resample.o (section); \ build/ROMID/lib/lib_47d20.o (section); \ + build/ROMID/lib/lib_47ef0.o (section); \ build/ROMID/lib/ultra/io/vitbl.o (section); \ build/ROMID/lib/ultra/os/writebackdcacheall.o (section); \ build/ROMID/lib/ultra/os/invalicache.o (section); \ diff --git a/ld/libfiles.ntsc-final.inc b/ld/libfiles.ntsc-final.inc index 3180971e3..0c9a445c4 100644 --- a/ld/libfiles.ntsc-final.inc +++ b/ld/libfiles.ntsc-final.inc @@ -119,6 +119,7 @@ build/ROMID/lib/lib_47550.o (section); \ build/ROMID/lib/naudio/n_resample.o (section); \ build/ROMID/lib/lib_47d20.o (section); \ + build/ROMID/lib/lib_47ef0.o (section); \ build/ROMID/lib/ultra/io/vitbl.o (section); \ build/ROMID/lib/ultra/os/writebackdcacheall.o (section); \ build/ROMID/lib/ultra/os/invalicache.o (section); \ diff --git a/ld/libfiles.pal-final.inc b/ld/libfiles.pal-final.inc index 862b7ef4b..8e126e5d1 100644 --- a/ld/libfiles.pal-final.inc +++ b/ld/libfiles.pal-final.inc @@ -119,6 +119,7 @@ build/ROMID/lib/lib_47550.o (section); \ build/ROMID/lib/naudio/n_resample.o (section); \ build/ROMID/lib/lib_47d20.o (section); \ + build/ROMID/lib/lib_47ef0.o (section); \ build/ROMID/lib/ultra/io/vitbl.o (section); \ build/ROMID/lib/ultra/os/writebackdcacheall.o (section); \ build/ROMID/lib/ultra/os/invalicache.o (section); \ diff --git a/src/lib/lib_47d20.c b/src/lib/lib_47d20.c index e4516570d..de44b4224 100644 --- a/src/lib/lib_47d20.c +++ b/src/lib/lib_47d20.c @@ -4,290 +4,56 @@ #include "data.h" #include "types.h" -const u32 var70059e10[] = {0x3f317218}; -const u32 var70059e14[] = {0x7f7fffff}; -const u32 var70059e18[] = {0x3f317218}; -const u32 var70059e1c[] = {0x00000000}; -const u32 var70059e20[] = {0x3f317218}; -const u32 var70059e24[] = {0x3f317218}; +f32 fabsf(f32 value); -GLOBAL_ASM( -glabel func00047d20 -/* 47d20: 27bdffe0 */ addiu $sp,$sp,-32 -/* 47d24: 46006005 */ abs.s $f0,$f12 -/* 47d28: e7a0000c */ swc1 $f0,0xc($sp) -/* 47d2c: 3c013400 */ lui $at,0x3400 -/* 47d30: 44813000 */ mtc1 $at,$f6 -/* 47d34: c7a4000c */ lwc1 $f4,0xc($sp) -/* 47d38: 4606203c */ c.lt.s $f4,$f6 -/* 47d3c: 00000000 */ nop -/* 47d40: 45000005 */ bc1f .L00047d58 -/* 47d44: 00000000 */ nop -/* 47d48: 3c013f80 */ lui $at,0x3f80 -/* 47d4c: 44810000 */ mtc1 $at,$f0 -/* 47d50: 10000065 */ b .L00047ee8 -/* 47d54: 00000000 */ nop -.L00047d58: -/* 47d58: 3c017006 */ lui $at,%hi(var70059e10) -/* 47d5c: c42a9e10 */ lwc1 $f10,%lo(var70059e10)($at) -/* 47d60: c7a8000c */ lwc1 $f8,0xc($sp) -/* 47d64: 460a4403 */ div.s $f16,$f8,$f10 -/* 47d68: 4600848d */ trunc.w.s $f18,$f16 -/* 47d6c: 440f9000 */ mfc1 $t7,$f18 -/* 47d70: 00000000 */ nop -/* 47d74: afaf0004 */ sw $t7,0x4($sp) -/* 47d78: 8fb80004 */ lw $t8,0x4($sp) -/* 47d7c: 2b010401 */ slti $at,$t8,0x401 -/* 47d80: 1420000f */ bnez $at,.L00047dc0 -/* 47d84: 00000000 */ nop -/* 47d88: 44802000 */ mtc1 $zero,$f4 -/* 47d8c: 00000000 */ nop -/* 47d90: 460c203e */ c.le.s $f4,$f12 -/* 47d94: 00000000 */ nop -/* 47d98: 45000006 */ bc1f .L00047db4 -/* 47d9c: 00000000 */ nop -/* 47da0: 3c017006 */ lui $at,%hi(var70059e14) -/* 47da4: 10000050 */ b .L00047ee8 -/* 47da8: c4209e14 */ lwc1 $f0,%lo(var70059e14)($at) -/* 47dac: 10000004 */ b .L00047dc0 -/* 47db0: 00000000 */ nop -.L00047db4: -/* 47db4: 44800000 */ mtc1 $zero,$f0 -/* 47db8: 1000004b */ b .L00047ee8 -/* 47dbc: 00000000 */ nop -.L00047dc0: -/* 47dc0: 8fb90004 */ lw $t9,0x4($sp) -/* 47dc4: 3c017006 */ lui $at,%hi(var70059e18) -/* 47dc8: c42a9e18 */ lwc1 $f10,%lo(var70059e18)($at) -/* 47dcc: 44993000 */ mtc1 $t9,$f6 -/* 47dd0: c7b2000c */ lwc1 $f18,0xc($sp) -/* 47dd4: 46803220 */ cvt.s.w $f8,$f6 -/* 47dd8: 460a4402 */ mul.s $f16,$f8,$f10 -/* 47ddc: 46109101 */ sub.s $f4,$f18,$f16 -/* 47de0: e7a40010 */ swc1 $f4,0x10($sp) -/* 47de4: 24080001 */ addiu $t0,$zero,0x1 -/* 47de8: afa80008 */ sw $t0,0x8($sp) -/* 47dec: 3c013f80 */ lui $at,0x3f80 -/* 47df0: 44813000 */ mtc1 $at,$f6 -/* 47df4: 00000000 */ nop -/* 47df8: e7a6001c */ swc1 $f6,0x1c($sp) -/* 47dfc: 3c013f80 */ lui $at,0x3f80 -/* 47e00: 44814000 */ mtc1 $at,$f8 -/* 47e04: 00000000 */ nop -/* 47e08: e7a80018 */ swc1 $f8,0x18($sp) -.L00047e0c: -/* 47e0c: c7aa001c */ lwc1 $f10,0x1c($sp) -/* 47e10: e7aa0014 */ swc1 $f10,0x14($sp) -/* 47e14: 8fa90008 */ lw $t1,0x8($sp) -/* 47e18: c7b20010 */ lwc1 $f18,0x10($sp) -/* 47e1c: c7a80018 */ lwc1 $f8,0x18($sp) -/* 47e20: 44898000 */ mtc1 $t1,$f16 -/* 47e24: 00000000 */ nop -/* 47e28: 46808120 */ cvt.s.w $f4,$f16 -/* 47e2c: 46049183 */ div.s $f6,$f18,$f4 -/* 47e30: 46064282 */ mul.s $f10,$f8,$f6 -/* 47e34: e7aa0018 */ swc1 $f10,0x18($sp) -/* 47e38: c7b0001c */ lwc1 $f16,0x1c($sp) -/* 47e3c: c7b20018 */ lwc1 $f18,0x18($sp) -/* 47e40: 46128100 */ add.s $f4,$f16,$f18 -/* 47e44: e7a4001c */ swc1 $f4,0x1c($sp) -/* 47e48: 8faa0008 */ lw $t2,0x8($sp) -/* 47e4c: 254b0001 */ addiu $t3,$t2,0x1 -/* 47e50: afab0008 */ sw $t3,0x8($sp) -/* 47e54: c7a8001c */ lwc1 $f8,0x1c($sp) -/* 47e58: c7a60014 */ lwc1 $f6,0x14($sp) -/* 47e5c: 46064032 */ c.eq.s $f8,$f6 -/* 47e60: 00000000 */ nop -/* 47e64: 4500ffe9 */ bc1f .L00047e0c -/* 47e68: 00000000 */ nop -/* 47e6c: 8fac0004 */ lw $t4,0x4($sp) -/* 47e70: 1180000c */ beqz $t4,.L00047ea4 -/* 47e74: 00000000 */ nop -.L00047e78: -/* 47e78: 3c014000 */ lui $at,0x4000 -/* 47e7c: 44818000 */ mtc1 $at,$f16 -/* 47e80: c7aa001c */ lwc1 $f10,0x1c($sp) -/* 47e84: 46105482 */ mul.s $f18,$f10,$f16 -/* 47e88: e7b2001c */ swc1 $f18,0x1c($sp) -/* 47e8c: 8fad0004 */ lw $t5,0x4($sp) -/* 47e90: 25aeffff */ addiu $t6,$t5,-1 -/* 47e94: afae0004 */ sw $t6,0x4($sp) -/* 47e98: 8faf0004 */ lw $t7,0x4($sp) -/* 47e9c: 15e0fff6 */ bnez $t7,.L00047e78 -/* 47ea0: 00000000 */ nop -.L00047ea4: -/* 47ea4: 44802000 */ mtc1 $zero,$f4 -/* 47ea8: 00000000 */ nop -/* 47eac: 460c203e */ c.le.s $f4,$f12 -/* 47eb0: 00000000 */ nop -/* 47eb4: 45000005 */ bc1f .L00047ecc -/* 47eb8: 00000000 */ nop -/* 47ebc: 1000000a */ b .L00047ee8 -/* 47ec0: c7a0001c */ lwc1 $f0,0x1c($sp) -/* 47ec4: 10000006 */ b .L00047ee0 -/* 47ec8: 00000000 */ nop -.L00047ecc: -/* 47ecc: 3c013f80 */ lui $at,0x3f80 -/* 47ed0: 44814000 */ mtc1 $at,$f8 -/* 47ed4: c7a6001c */ lwc1 $f6,0x1c($sp) -/* 47ed8: 10000003 */ b .L00047ee8 -/* 47edc: 46064003 */ div.s $f0,$f8,$f6 -.L00047ee0: -/* 47ee0: 10000001 */ b .L00047ee8 -/* 47ee4: 00000000 */ nop -.L00047ee8: -/* 47ee8: 03e00008 */ jr $ra -/* 47eec: 27bd0020 */ addiu $sp,$sp,0x20 -); +#pragma intrinsic (fabsf) -GLOBAL_ASM( -glabel func00047ef0 -/* 47ef0: 27bdffe8 */ addiu $sp,$sp,-24 -/* 47ef4: 44802000 */ mtc1 $zero,$f4 -/* 47ef8: 00000000 */ nop -/* 47efc: 4604603c */ c.lt.s $f12,$f4 -/* 47f00: 00000000 */ nop -/* 47f04: 45000004 */ bc1f .L00047f18 -/* 47f08: 00000000 */ nop -/* 47f0c: 44800000 */ mtc1 $zero,$f0 -/* 47f10: 10000069 */ b .L000480b8 -/* 47f14: 00000000 */ nop -.L00047f18: -/* 47f18: 44803000 */ mtc1 $zero,$f6 -/* 47f1c: 00000000 */ nop -/* 47f20: 46066032 */ c.eq.s $f12,$f6 -/* 47f24: 00000000 */ nop -/* 47f28: 45000004 */ bc1f .L00047f3c -/* 47f2c: 00000000 */ nop -/* 47f30: 44800000 */ mtc1 $zero,$f0 -/* 47f34: 10000060 */ b .L000480b8 -/* 47f38: 00000000 */ nop -.L00047f3c: -/* 47f3c: 44804000 */ mtc1 $zero,$f8 -/* 47f40: 00000000 */ nop -/* 47f44: e7a80008 */ swc1 $f8,0x8($sp) -/* 47f48: 3c014000 */ lui $at,0x4000 -/* 47f4c: 44815000 */ mtc1 $at,$f10 -/* 47f50: 00000000 */ nop -/* 47f54: 460c503e */ c.le.s $f10,$f12 -/* 47f58: 00000000 */ nop -/* 47f5c: 45000011 */ bc1f .L00047fa4 -/* 47f60: 00000000 */ nop -.L00047f64: -/* 47f64: 3c014000 */ lui $at,0x4000 -/* 47f68: 44818000 */ mtc1 $at,$f16 -/* 47f6c: 00000000 */ nop -/* 47f70: 46106303 */ div.s $f12,$f12,$f16 -/* 47f74: 3c017006 */ lui $at,%hi(var70059e20) -/* 47f78: c4249e20 */ lwc1 $f4,%lo(var70059e20)($at) -/* 47f7c: c7b20008 */ lwc1 $f18,0x8($sp) -/* 47f80: 46049180 */ add.s $f6,$f18,$f4 -/* 47f84: e7a60008 */ swc1 $f6,0x8($sp) -/* 47f88: 3c014000 */ lui $at,0x4000 -/* 47f8c: 44814000 */ mtc1 $at,$f8 -/* 47f90: 00000000 */ nop -/* 47f94: 460c403e */ c.le.s $f8,$f12 -/* 47f98: 00000000 */ nop -/* 47f9c: 4501fff1 */ bc1t .L00047f64 -/* 47fa0: 00000000 */ nop -.L00047fa4: -/* 47fa4: 3c013f80 */ lui $at,0x3f80 -/* 47fa8: 44815000 */ mtc1 $at,$f10 -/* 47fac: 00000000 */ nop -/* 47fb0: 460a603c */ c.lt.s $f12,$f10 -/* 47fb4: 00000000 */ nop -/* 47fb8: 45000012 */ bc1f .L00048004 -/* 47fbc: 00000000 */ nop -.L00047fc0: -/* 47fc0: 3c014000 */ lui $at,0x4000 -/* 47fc4: 44818000 */ mtc1 $at,$f16 -/* 47fc8: 00000000 */ nop -/* 47fcc: 46106302 */ mul.s $f12,$f12,$f16 -/* 47fd0: 00000000 */ nop -/* 47fd4: 3c017006 */ lui $at,%hi(var70059e24) -/* 47fd8: c4249e24 */ lwc1 $f4,%lo(var70059e24)($at) -/* 47fdc: c7b20008 */ lwc1 $f18,0x8($sp) -/* 47fe0: 46049181 */ sub.s $f6,$f18,$f4 -/* 47fe4: e7a60008 */ swc1 $f6,0x8($sp) -/* 47fe8: 3c013f80 */ lui $at,0x3f80 -/* 47fec: 44814000 */ mtc1 $at,$f8 -/* 47ff0: 00000000 */ nop -/* 47ff4: 4608603c */ c.lt.s $f12,$f8 -/* 47ff8: 00000000 */ nop -/* 47ffc: 4501fff0 */ bc1t .L00047fc0 -/* 48000: 00000000 */ nop -.L00048004: -/* 48004: 240e0001 */ addiu $t6,$zero,0x1 -/* 48008: afae0014 */ sw $t6,0x14($sp) -/* 4800c: 3c013f80 */ lui $at,0x3f80 -/* 48010: 44815000 */ mtc1 $at,$f10 -/* 48014: 44819000 */ mtc1 $at,$f18 -/* 48018: 460a6401 */ sub.s $f16,$f12,$f10 -/* 4801c: 46126100 */ add.s $f4,$f12,$f18 -/* 48020: 46048183 */ div.s $f6,$f16,$f4 -/* 48024: e7a60010 */ swc1 $f6,0x10($sp) -/* 48028: 3c014000 */ lui $at,0x4000 -/* 4802c: 44814000 */ mtc1 $at,$f8 -/* 48030: c7aa0010 */ lwc1 $f10,0x10($sp) -/* 48034: 460a4482 */ mul.s $f18,$f8,$f10 -/* 48038: e7b2000c */ swc1 $f18,0xc($sp) -/* 4803c: c7b00010 */ lwc1 $f16,0x10($sp) -/* 48040: 46108102 */ mul.s $f4,$f16,$f16 -/* 48044: e7a40010 */ swc1 $f4,0x10($sp) -.L00048048: -/* 48048: c7a60008 */ lwc1 $f6,0x8($sp) -/* 4804c: e7a60004 */ swc1 $f6,0x4($sp) -/* 48050: 8faf0014 */ lw $t7,0x14($sp) -/* 48054: c7a8000c */ lwc1 $f8,0xc($sp) -/* 48058: c7a40008 */ lwc1 $f4,0x8($sp) -/* 4805c: 448f5000 */ mtc1 $t7,$f10 -/* 48060: 00000000 */ nop -/* 48064: 468054a0 */ cvt.s.w $f18,$f10 -/* 48068: 46124403 */ div.s $f16,$f8,$f18 -/* 4806c: 46102180 */ add.s $f6,$f4,$f16 -/* 48070: e7a60008 */ swc1 $f6,0x8($sp) -/* 48074: c7aa000c */ lwc1 $f10,0xc($sp) -/* 48078: c7a80010 */ lwc1 $f8,0x10($sp) -/* 4807c: 46085482 */ mul.s $f18,$f10,$f8 -/* 48080: e7b2000c */ swc1 $f18,0xc($sp) -/* 48084: 8fb80014 */ lw $t8,0x14($sp) -/* 48088: 27190002 */ addiu $t9,$t8,0x2 -/* 4808c: afb90014 */ sw $t9,0x14($sp) -/* 48090: c7a40008 */ lwc1 $f4,0x8($sp) -/* 48094: c7b00004 */ lwc1 $f16,0x4($sp) -/* 48098: 46102032 */ c.eq.s $f4,$f16 -/* 4809c: 00000000 */ nop -/* 480a0: 4500ffe9 */ bc1f .L00048048 -/* 480a4: 00000000 */ nop -/* 480a8: 10000003 */ b .L000480b8 -/* 480ac: c7a00008 */ lwc1 $f0,0x8($sp) -/* 480b0: 10000001 */ b .L000480b8 -/* 480b4: 00000000 */ nop -.L000480b8: -/* 480b8: 03e00008 */ jr $ra -/* 480bc: 27bd0018 */ addiu $sp,$sp,0x18 -/* 480c0: 00000000 */ nop -/* 480c4: 00000000 */ nop -/* 480c8: 00000000 */ nop -/* 480cc: 00000000 */ nop -/* 480d0: 00000000 */ nop -/* 480d4: 00000000 */ nop -/* 480d8: 00000000 */ nop -/* 480dc: 00000000 */ nop -/* 480e0: 00000000 */ nop -/* 480e4: 00000000 */ nop -/* 480e8: 00000000 */ nop -/* 480ec: 00000000 */ nop -/* 480f0: 00000000 */ nop -/* 480f4: 00000000 */ nop -/* 480f8: 00000000 */ nop -/* 480fc: 00000000 */ nop -/* 48100: 00000000 */ nop -/* 48104: 00000000 */ nop -/* 48108: 00000000 */ nop -/* 4810c: 00000000 */ nop -/* 48110: 00000000 */ nop -/* 48114: 00000000 */ nop -/* 48118: 00000000 */ nop -/* 4811c: 00000000 */ nop -); +f32 func00047d20(f32 arg0) +{ + f32 sp1c; + f32 sp18; + f32 sp14; + f32 sp10; + f32 sp0c; + s32 sp08; + s32 sp04; + + sp0c = fabsf(arg0); + + if (sp0c < 1.1920929e-7f) { + return 1; + } + + sp04 = (s32) (sp0c / 0.6931471824646f); + + if (sp04 > 1024) { + if (arg0 >= 0) { + return MAXFLOAT; + } else { + return 0; + } + } + + sp10 = sp0c - sp04 * 0.6931471824646f; + sp08 = 1; + sp1c = 1; + sp18 = 1; + + do { + sp14 = sp1c; + sp18 *= sp10 / sp08; + sp1c += sp18; + sp08++; + } while (sp1c != sp14); + + while (sp04) { + sp1c *= 2; + sp04--; + } + + if (arg0 >= 0) { + return sp1c; + } else { + return 1 / sp1c; + } +} diff --git a/src/lib/lib_47ef0.c b/src/lib/lib_47ef0.c new file mode 100644 index 000000000..048fc052b --- /dev/null +++ b/src/lib/lib_47ef0.c @@ -0,0 +1,163 @@ +#include +#include "constants.h" +#include "bss.h" +#include "data.h" +#include "types.h" + +GLOBAL_ASM( +glabel func00047ef0 +.late_rodata +glabel var70059e20 +.word 0x3f317218 +glabel var70059e24 +.word 0x3f317218 +.text +/* 47ef0: 27bdffe8 */ addiu $sp,$sp,-24 +/* 47ef4: 44802000 */ mtc1 $zero,$f4 +/* 47ef8: 00000000 */ nop +/* 47efc: 4604603c */ c.lt.s $f12,$f4 +/* 47f00: 00000000 */ nop +/* 47f04: 45000004 */ bc1f .L00047f18 +/* 47f08: 00000000 */ nop +/* 47f0c: 44800000 */ mtc1 $zero,$f0 +/* 47f10: 10000069 */ b .L000480b8 +/* 47f14: 00000000 */ nop +.L00047f18: +/* 47f18: 44803000 */ mtc1 $zero,$f6 +/* 47f1c: 00000000 */ nop +/* 47f20: 46066032 */ c.eq.s $f12,$f6 +/* 47f24: 00000000 */ nop +/* 47f28: 45000004 */ bc1f .L00047f3c +/* 47f2c: 00000000 */ nop +/* 47f30: 44800000 */ mtc1 $zero,$f0 +/* 47f34: 10000060 */ b .L000480b8 +/* 47f38: 00000000 */ nop +.L00047f3c: +/* 47f3c: 44804000 */ mtc1 $zero,$f8 +/* 47f40: 00000000 */ nop +/* 47f44: e7a80008 */ swc1 $f8,0x8($sp) +/* 47f48: 3c014000 */ lui $at,0x4000 +/* 47f4c: 44815000 */ mtc1 $at,$f10 +/* 47f50: 00000000 */ nop +/* 47f54: 460c503e */ c.le.s $f10,$f12 +/* 47f58: 00000000 */ nop +/* 47f5c: 45000011 */ bc1f .L00047fa4 +/* 47f60: 00000000 */ nop +.L00047f64: +/* 47f64: 3c014000 */ lui $at,0x4000 +/* 47f68: 44818000 */ mtc1 $at,$f16 +/* 47f6c: 00000000 */ nop +/* 47f70: 46106303 */ div.s $f12,$f12,$f16 +/* 47f74: 3c017006 */ lui $at,%hi(var70059e20) +/* 47f78: c4249e20 */ lwc1 $f4,%lo(var70059e20)($at) +/* 47f7c: c7b20008 */ lwc1 $f18,0x8($sp) +/* 47f80: 46049180 */ add.s $f6,$f18,$f4 +/* 47f84: e7a60008 */ swc1 $f6,0x8($sp) +/* 47f88: 3c014000 */ lui $at,0x4000 +/* 47f8c: 44814000 */ mtc1 $at,$f8 +/* 47f90: 00000000 */ nop +/* 47f94: 460c403e */ c.le.s $f8,$f12 +/* 47f98: 00000000 */ nop +/* 47f9c: 4501fff1 */ bc1t .L00047f64 +/* 47fa0: 00000000 */ nop +.L00047fa4: +/* 47fa4: 3c013f80 */ lui $at,0x3f80 +/* 47fa8: 44815000 */ mtc1 $at,$f10 +/* 47fac: 00000000 */ nop +/* 47fb0: 460a603c */ c.lt.s $f12,$f10 +/* 47fb4: 00000000 */ nop +/* 47fb8: 45000012 */ bc1f .L00048004 +/* 47fbc: 00000000 */ nop +.L00047fc0: +/* 47fc0: 3c014000 */ lui $at,0x4000 +/* 47fc4: 44818000 */ mtc1 $at,$f16 +/* 47fc8: 00000000 */ nop +/* 47fcc: 46106302 */ mul.s $f12,$f12,$f16 +/* 47fd0: 00000000 */ nop +/* 47fd4: 3c017006 */ lui $at,%hi(var70059e24) +/* 47fd8: c4249e24 */ lwc1 $f4,%lo(var70059e24)($at) +/* 47fdc: c7b20008 */ lwc1 $f18,0x8($sp) +/* 47fe0: 46049181 */ sub.s $f6,$f18,$f4 +/* 47fe4: e7a60008 */ swc1 $f6,0x8($sp) +/* 47fe8: 3c013f80 */ lui $at,0x3f80 +/* 47fec: 44814000 */ mtc1 $at,$f8 +/* 47ff0: 00000000 */ nop +/* 47ff4: 4608603c */ c.lt.s $f12,$f8 +/* 47ff8: 00000000 */ nop +/* 47ffc: 4501fff0 */ bc1t .L00047fc0 +/* 48000: 00000000 */ nop +.L00048004: +/* 48004: 240e0001 */ addiu $t6,$zero,0x1 +/* 48008: afae0014 */ sw $t6,0x14($sp) +/* 4800c: 3c013f80 */ lui $at,0x3f80 +/* 48010: 44815000 */ mtc1 $at,$f10 +/* 48014: 44819000 */ mtc1 $at,$f18 +/* 48018: 460a6401 */ sub.s $f16,$f12,$f10 +/* 4801c: 46126100 */ add.s $f4,$f12,$f18 +/* 48020: 46048183 */ div.s $f6,$f16,$f4 +/* 48024: e7a60010 */ swc1 $f6,0x10($sp) +/* 48028: 3c014000 */ lui $at,0x4000 +/* 4802c: 44814000 */ mtc1 $at,$f8 +/* 48030: c7aa0010 */ lwc1 $f10,0x10($sp) +/* 48034: 460a4482 */ mul.s $f18,$f8,$f10 +/* 48038: e7b2000c */ swc1 $f18,0xc($sp) +/* 4803c: c7b00010 */ lwc1 $f16,0x10($sp) +/* 48040: 46108102 */ mul.s $f4,$f16,$f16 +/* 48044: e7a40010 */ swc1 $f4,0x10($sp) +.L00048048: +/* 48048: c7a60008 */ lwc1 $f6,0x8($sp) +/* 4804c: e7a60004 */ swc1 $f6,0x4($sp) +/* 48050: 8faf0014 */ lw $t7,0x14($sp) +/* 48054: c7a8000c */ lwc1 $f8,0xc($sp) +/* 48058: c7a40008 */ lwc1 $f4,0x8($sp) +/* 4805c: 448f5000 */ mtc1 $t7,$f10 +/* 48060: 00000000 */ nop +/* 48064: 468054a0 */ cvt.s.w $f18,$f10 +/* 48068: 46124403 */ div.s $f16,$f8,$f18 +/* 4806c: 46102180 */ add.s $f6,$f4,$f16 +/* 48070: e7a60008 */ swc1 $f6,0x8($sp) +/* 48074: c7aa000c */ lwc1 $f10,0xc($sp) +/* 48078: c7a80010 */ lwc1 $f8,0x10($sp) +/* 4807c: 46085482 */ mul.s $f18,$f10,$f8 +/* 48080: e7b2000c */ swc1 $f18,0xc($sp) +/* 48084: 8fb80014 */ lw $t8,0x14($sp) +/* 48088: 27190002 */ addiu $t9,$t8,0x2 +/* 4808c: afb90014 */ sw $t9,0x14($sp) +/* 48090: c7a40008 */ lwc1 $f4,0x8($sp) +/* 48094: c7b00004 */ lwc1 $f16,0x4($sp) +/* 48098: 46102032 */ c.eq.s $f4,$f16 +/* 4809c: 00000000 */ nop +/* 480a0: 4500ffe9 */ bc1f .L00048048 +/* 480a4: 00000000 */ nop +/* 480a8: 10000003 */ b .L000480b8 +/* 480ac: c7a00008 */ lwc1 $f0,0x8($sp) +/* 480b0: 10000001 */ b .L000480b8 +/* 480b4: 00000000 */ nop +.L000480b8: +/* 480b8: 03e00008 */ jr $ra +/* 480bc: 27bd0018 */ addiu $sp,$sp,0x18 +/* 480c0: 00000000 */ nop +/* 480c4: 00000000 */ nop +/* 480c8: 00000000 */ nop +/* 480cc: 00000000 */ nop +/* 480d0: 00000000 */ nop +/* 480d4: 00000000 */ nop +/* 480d8: 00000000 */ nop +/* 480dc: 00000000 */ nop +/* 480e0: 00000000 */ nop +/* 480e4: 00000000 */ nop +/* 480e8: 00000000 */ nop +/* 480ec: 00000000 */ nop +/* 480f0: 00000000 */ nop +/* 480f4: 00000000 */ nop +/* 480f8: 00000000 */ nop +/* 480fc: 00000000 */ nop +/* 48100: 00000000 */ nop +/* 48104: 00000000 */ nop +/* 48108: 00000000 */ nop +/* 4810c: 00000000 */ nop +/* 48110: 00000000 */ nop +/* 48114: 00000000 */ nop +/* 48118: 00000000 */ nop +/* 4811c: 00000000 */ nop +);