papermario/ver/jp/asm/nonmatchings/D2A0/func_800328F4.s
Ethan Roseman 3315d6010f
Splat refactor (#257)
* all non-world rodata migrated

* data disasm

* kinda working

* updated yaml

* bloop

* linker header

* configure 2.0

* bin

* mass rename to remove code_

* pause rename

* battle partner stuff

* whew

* more renames

* more renames

* more renaming

* it builds!

* updates

* remove main prefix

* one more thing

* crc, yay0

* .data, .rodata, .bss

* img

* dead_atan2

* it buildsgit add -A

* split battle/partner/6FAD10

* rm &s on sleepy_sheep syms

* sha1sum ninja rule description

* OK but commented out PaperMarioMapFS and PaperMarioNpcSprites

* uncomment

* fix mapfs

* match func_8003CFB4

* .

* clean up and name npc_iter_no_op

* npc.c

* enable cc warnings

* name npc_find_near

* use singular options.asset_path

* smores

* cc_dsl only when needed

* kinda fix configure for splat refactor2

* ok!

* new msg format

* remove old msg format docs

* slight bug fixes, splat adjustment

* git subrepo pull (merge) --force tools/splat

subrepo:
  subdir:   "tools/splat"
  merged:   "cfc140bb76"
upstream:
  origin:   "https://github.com/ethteck/splat.git"
  branch:   "master"
  commit:   "cfc140bb76"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"

* git subrepo pull (merge) --force tools/splat

subrepo:
  subdir:   "tools/splat"
  merged:   "85349befcd"
upstream:
  origin:   "https://github.com/ethteck/splat.git"
  branch:   "master"
  commit:   "85349befcd"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"

* Update symbol addrs

* git subrepo pull tools/splat

subrepo:
  subdir:   "tools/splat"
  merged:   "a44631e194"
upstream:
  origin:   "https://github.com/ethteck/splat.git"
  branch:   "master"
  commit:   "a44631e194"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"

Co-authored-by: Alex Bates <hi@imalex.xyz>
2021-04-13 16:47:52 +09:00

489 lines
24 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_800328F4
/* DCF4 800328F4 27BDFF68 */ addiu $sp, $sp, -0x98
/* DCF8 800328F8 AFB10054 */ sw $s1, 0x54($sp)
/* DCFC 800328FC 0080882D */ daddu $s1, $a0, $zero
/* DD00 80032900 AFBF0068 */ sw $ra, 0x68($sp)
/* DD04 80032904 AFB50064 */ sw $s5, 0x64($sp)
/* DD08 80032908 AFB40060 */ sw $s4, 0x60($sp)
/* DD0C 8003290C AFB3005C */ sw $s3, 0x5c($sp)
/* DD10 80032910 AFB20058 */ sw $s2, 0x58($sp)
/* DD14 80032914 AFB00050 */ sw $s0, 0x50($sp)
/* DD18 80032918 F7BC0090 */ sdc1 $f28, 0x90($sp)
/* DD1C 8003291C F7BA0088 */ sdc1 $f26, 0x88($sp)
/* DD20 80032920 F7B80080 */ sdc1 $f24, 0x80($sp)
/* DD24 80032924 F7B60078 */ sdc1 $f22, 0x78($sp)
/* DD28 80032928 F7B40070 */ sdc1 $f20, 0x70($sp)
/* DD2C 8003292C C6200084 */ lwc1 $f0, 0x84($s1)
/* DD30 80032930 3C014334 */ lui $at, 0x4334
/* DD34 80032934 44811000 */ mtc1 $at, $f2
/* DD38 80032938 3C014049 */ lui $at, 0x4049
/* DD3C 8003293C 34210FD8 */ ori $at, $at, 0xfd8
/* DD40 80032940 44812000 */ mtc1 $at, $f4
/* DD44 80032944 46020003 */ div.s $f0, $f0, $f2
/* DD48 80032948 46040502 */ mul.s $f20, $f0, $f4
/* DD4C 8003294C 00000000 */ nop
/* DD50 80032950 0000902D */ daddu $s2, $zero, $zero
/* DD54 80032954 C63A050C */ lwc1 $f26, 0x50c($s1)
/* DD58 80032958 0C00A864 */ jal func_8002A190
/* DD5C 8003295C 4600A306 */ mov.s $f12, $f20
/* DD60 80032960 0C00A84B */ jal func_8002A12C
/* DD64 80032964 4600A306 */ mov.s $f12, $f20
/* DD68 80032968 C6200064 */ lwc1 $f0, 0x64($s1)
/* DD6C 8003296C 3C014120 */ lui $at, 0x4120
/* DD70 80032970 44817000 */ mtc1 $at, $f14
/* DD74 80032974 C62C0060 */ lwc1 $f12, 0x60($s1)
/* DD78 80032978 460E0380 */ add.s $f14, $f0, $f14
/* DD7C 8003297C 8E260068 */ lw $a2, 0x68($s1)
/* DD80 80032980 0C00C7A8 */ jal func_80031EA0
/* DD84 80032984 0240382D */ daddu $a3, $s2, $zero
/* DD88 80032988 0040802D */ daddu $s0, $v0, $zero
/* DD8C 8003298C 120000A1 */ beqz $s0, .L80032C14
/* DD90 80032990 0200982D */ daddu $s3, $s0, $zero
/* DD94 80032994 8E030000 */ lw $v1, ($s0)
/* DD98 80032998 24020002 */ addiu $v0, $zero, 2
/* DD9C 8003299C 1062000A */ beq $v1, $v0, .L800329C8
/* DDA0 800329A0 24020005 */ addiu $v0, $zero, 5
/* DDA4 800329A4 10620008 */ beq $v1, $v0, .L800329C8
/* DDA8 800329A8 00000000 */ nop
/* DDAC 800329AC 8E250060 */ lw $a1, 0x60($s1)
/* DDB0 800329B0 8E260068 */ lw $a2, 0x68($s1)
/* DDB4 800329B4 0C00C94D */ jal func_80032534
/* DDB8 800329B8 0200202D */ daddu $a0, $s0, $zero
/* DDBC 800329BC 0040902D */ daddu $s2, $v0, $zero
/* DDC0 800329C0 12400094 */ beqz $s2, .L80032C14
/* DDC4 800329C4 00000000 */ nop
.L800329C8:
/* DDC8 800329C8 8E220530 */ lw $v0, 0x530($s1)
/* DDCC 800329CC 10400049 */ beqz $v0, .L80032AF4
/* DDD0 800329D0 00000000 */ nop
/* DDD4 800329D4 263000D4 */ addiu $s0, $s1, 0xd4
/* DDD8 800329D8 0200202D */ daddu $a0, $s0, $zero
/* DDDC 800329DC 8627000A */ lh $a3, 0xa($s1)
/* DDE0 800329E0 86220012 */ lh $v0, 0x12($s1)
/* DDE4 800329E4 8623000C */ lh $v1, 0xc($s1)
/* DDE8 800329E8 3C013F80 */ lui $at, 0x3f80
/* DDEC 800329EC 4481A000 */ mtc1 $at, $f20
/* DDF0 800329F0 44820000 */ mtc1 $v0, $f0
/* DDF4 800329F4 00000000 */ nop
/* DDF8 800329F8 46800020 */ cvt.s.w $f0, $f0
/* DDFC 800329FC E7A00010 */ swc1 $f0, 0x10($sp)
/* DE00 80032A00 86220014 */ lh $v0, 0x14($s1)
/* DE04 80032A04 44871000 */ mtc1 $a3, $f2
/* DE08 80032A08 00000000 */ nop
/* DE0C 80032A0C 468010A0 */ cvt.s.w $f2, $f2
/* DE10 80032A10 E7B40018 */ swc1 $f20, 0x18($sp)
/* DE14 80032A14 44820000 */ mtc1 $v0, $f0
/* DE18 80032A18 00000000 */ nop
/* DE1C 80032A1C 46800020 */ cvt.s.w $f0, $f0
/* DE20 80032A20 E7A00014 */ swc1 $f0, 0x14($sp)
/* DE24 80032A24 44830000 */ mtc1 $v1, $f0
/* DE28 80032A28 00000000 */ nop
/* DE2C 80032A2C 46800020 */ cvt.s.w $f0, $f0
/* DE30 80032A30 46001083 */ div.s $f2, $f2, $f0
/* DE34 80032A34 8E260018 */ lw $a2, 0x18($s1)
/* DE38 80032A38 44071000 */ mfc1 $a3, $f2
/* DE3C 80032A3C 0C018ED8 */ jal func_80063B60
/* DE40 80032A40 26250038 */ addiu $a1, $s1, 0x38
/* DE44 80032A44 26240114 */ addiu $a0, $s1, 0x114
/* DE48 80032A48 0200282D */ daddu $a1, $s0, $zero
/* DE4C 80032A4C 0C019D78 */ jal func_800675E0
/* DE50 80032A50 0200302D */ daddu $a2, $s0, $zero
/* DE54 80032A54 27A20030 */ addiu $v0, $sp, 0x30
/* DE58 80032A58 AFA20014 */ sw $v0, 0x14($sp)
/* DE5C 80032A5C 27A20034 */ addiu $v0, $sp, 0x34
/* DE60 80032A60 AFA20018 */ sw $v0, 0x18($sp)
/* DE64 80032A64 27A20038 */ addiu $v0, $sp, 0x38
/* DE68 80032A68 AFA2001C */ sw $v0, 0x1c($sp)
/* DE6C 80032A6C 27A2003C */ addiu $v0, $sp, 0x3c
/* DE70 80032A70 E7B40010 */ swc1 $f20, 0x10($sp)
/* DE74 80032A74 AFA20020 */ sw $v0, 0x20($sp)
/* DE78 80032A78 8E250060 */ lw $a1, 0x60($s1)
/* DE7C 80032A7C 8E260064 */ lw $a2, 0x64($s1)
/* DE80 80032A80 8E270068 */ lw $a3, 0x68($s1)
/* DE84 80032A84 0C00A578 */ jal func_800295E0
/* DE88 80032A88 0200202D */ daddu $a0, $s0, $zero
/* DE8C 80032A8C C7A0003C */ lwc1 $f0, 0x3c($sp)
/* DE90 80032A90 44802000 */ mtc1 $zero, $f4
/* DE94 80032A94 00000000 */ nop
/* DE98 80032A98 46040032 */ c.eq.s $f0, $f4
/* DE9C 80032A9C 00000000 */ nop
/* DEA0 80032AA0 45030001 */ bc1tl .L80032AA8
/* DEA4 80032AA4 E7B4003C */ swc1 $f20, 0x3c($sp)
.L80032AA8:
/* DEA8 80032AA8 C7A0003C */ lwc1 $f0, 0x3c($sp)
/* DEAC 80032AAC C7A20030 */ lwc1 $f2, 0x30($sp)
/* DEB0 80032AB0 4600A003 */ div.s $f0, $f20, $f0
/* DEB4 80032AB4 46001082 */ mul.s $f2, $f2, $f0
/* DEB8 80032AB8 00000000 */ nop
/* DEBC 80032ABC 2623052C */ addiu $v1, $s1, 0x52c
/* DEC0 80032AC0 E7A0003C */ swc1 $f0, 0x3c($sp)
/* DEC4 80032AC4 4602203C */ c.lt.s $f4, $f2
/* DEC8 80032AC8 E7A20030 */ swc1 $f2, 0x30($sp)
/* DECC 80032ACC 45010006 */ bc1t .L80032AE8
/* DED0 80032AD0 24020001 */ addiu $v0, $zero, 1
/* DED4 80032AD4 4604103C */ c.lt.s $f2, $f4
/* DED8 80032AD8 00000000 */ nop
/* DEDC 80032ADC 45000002 */ bc1f .L80032AE8
/* DEE0 80032AE0 0000102D */ daddu $v0, $zero, $zero
/* DEE4 80032AE4 2402FFFF */ addiu $v0, $zero, -1
.L80032AE8:
/* DEE8 80032AE8 AC620000 */ sw $v0, ($v1)
/* DEEC 80032AEC 0800CAED */ j .L80032BB4
/* DEF0 80032AF0 AE200530 */ sw $zero, 0x530($s1)
.L80032AF4:
/* DEF4 80032AF4 8E220534 */ lw $v0, 0x534($s1)
/* DEF8 80032AF8 10400011 */ beqz $v0, .L80032B40
/* DEFC 80032AFC 00000000 */ nop
/* DF00 80032B00 8C430000 */ lw $v1, ($v0)
/* DF04 80032B04 24020002 */ addiu $v0, $zero, 2
/* DF08 80032B08 1062002A */ beq $v1, $v0, .L80032BB4
/* DF0C 80032B0C 24020005 */ addiu $v0, $zero, 5
/* DF10 80032B10 10620028 */ beq $v1, $v0, .L80032BB4
/* DF14 80032B14 00000000 */ nop
/* DF18 80032B18 8E250524 */ lw $a1, 0x524($s1)
/* DF1C 80032B1C 8E260528 */ lw $a2, 0x528($s1)
/* DF20 80032B20 0C00C94D */ jal func_80032534
/* DF24 80032B24 0200202D */ daddu $a0, $s0, $zero
/* DF28 80032B28 14400022 */ bnez $v0, .L80032BB4
/* DF2C 80032B2C 00000000 */ nop
/* DF30 80032B30 12400003 */ beqz $s2, .L80032B40
/* DF34 80032B34 00000000 */ nop
/* DF38 80032B38 0800CAED */ j .L80032BB4
/* DF3C 80032B3C AE32052C */ sw $s2, 0x52c($s1)
.L80032B40:
/* DF40 80032B40 C6380060 */ lwc1 $f24, 0x60($s1)
/* DF44 80032B44 C6200524 */ lwc1 $f0, 0x524($s1)
/* DF48 80032B48 C6360068 */ lwc1 $f22, 0x68($s1)
/* DF4C 80032B4C 4600C601 */ sub.s $f24, $f24, $f0
/* DF50 80032B50 C6200528 */ lwc1 $f0, 0x528($s1)
/* DF54 80032B54 C62C006C */ lwc1 $f12, 0x6c($s1)
/* DF58 80032B58 0C00A8C4 */ jal func_8002A310
/* DF5C 80032B5C 4600B581 */ sub.s $f22, $f22, $f0
/* DF60 80032B60 C62C006C */ lwc1 $f12, 0x6c($s1)
/* DF64 80032B64 0C00A8AB */ jal func_8002A2AC
/* DF68 80032B68 46000507 */ neg.s $f20, $f0
/* DF6C 80032B6C 4614C602 */ mul.s $f24, $f24, $f20
/* DF70 80032B70 00000000 */ nop
/* DF74 80032B74 46000007 */ neg.s $f0, $f0
/* DF78 80032B78 4600B582 */ mul.s $f22, $f22, $f0
/* DF7C 80032B7C 00000000 */ nop
/* DF80 80032B80 4616C600 */ add.s $f24, $f24, $f22
/* DF84 80032B84 44800000 */ mtc1 $zero, $f0
/* DF88 80032B88 00000000 */ nop
/* DF8C 80032B8C 4618003C */ c.lt.s $f0, $f24
/* DF90 80032B90 00000000 */ nop
/* DF94 80032B94 45010006 */ bc1t .L80032BB0
/* DF98 80032B98 2402FFFF */ addiu $v0, $zero, -1
/* DF9C 80032B9C 4600C03C */ c.lt.s $f24, $f0
/* DFA0 80032BA0 00000000 */ nop
/* DFA4 80032BA4 45010002 */ bc1t .L80032BB0
/* DFA8 80032BA8 24020001 */ addiu $v0, $zero, 1
/* DFAC 80032BAC 0000102D */ daddu $v0, $zero, $zero
.L80032BB0:
/* DFB0 80032BB0 AE22052C */ sw $v0, 0x52c($s1)
.L80032BB4:
/* DFB4 80032BB4 44800000 */ mtc1 $zero, $f0
/* DFB8 80032BB8 00000000 */ nop
/* DFBC 80032BBC 461A003C */ c.lt.s $f0, $f26
/* DFC0 80032BC0 00000000 */ nop
/* DFC4 80032BC4 45000004 */ bc1f .L80032BD8
/* DFC8 80032BC8 00000000 */ nop
/* DFCC 80032BCC 8E22052C */ lw $v0, 0x52c($s1)
/* DFD0 80032BD0 5C400009 */ bgtzl $v0, .L80032BF8
/* DFD4 80032BD4 AE200514 */ sw $zero, 0x514($s1)
.L80032BD8:
/* DFD8 80032BD8 4600D03C */ c.lt.s $f26, $f0
/* DFDC 80032BDC 00000000 */ nop
/* DFE0 80032BE0 45000006 */ bc1f .L80032BFC
/* DFE4 80032BE4 00000000 */ nop
/* DFE8 80032BE8 8E22052C */ lw $v0, 0x52c($s1)
/* DFEC 80032BEC 04410003 */ bgez $v0, .L80032BFC
/* DFF0 80032BF0 00000000 */ nop
/* DFF4 80032BF4 AE200514 */ sw $zero, 0x514($s1)
.L80032BF8:
/* DFF8 80032BF8 AE20050C */ sw $zero, 0x50c($s1)
.L80032BFC:
/* DFFC 80032BFC C6200060 */ lwc1 $f0, 0x60($s1)
/* E000 80032C00 C6220068 */ lwc1 $f2, 0x68($s1)
/* E004 80032C04 AE330534 */ sw $s3, 0x534($s1)
/* E008 80032C08 E6200524 */ swc1 $f0, 0x524($s1)
/* E00C 80032C0C 0800CBFB */ j .L80032FEC
/* E010 80032C10 E6220528 */ swc1 $f2, 0x528($s1)
.L80032C14:
/* E014 80032C14 C6200060 */ lwc1 $f0, 0x60($s1)
/* E018 80032C18 C6220068 */ lwc1 $f2, 0x68($s1)
/* E01C 80032C1C 4600A306 */ mov.s $f12, $f20
/* E020 80032C20 AE20052C */ sw $zero, 0x52c($s1)
/* E024 80032C24 AE330534 */ sw $s3, 0x534($s1)
/* E028 80032C28 E6200524 */ swc1 $f0, 0x524($s1)
/* E02C 80032C2C 0C00A864 */ jal func_8002A190
/* E030 80032C30 E6220528 */ swc1 $f2, 0x528($s1)
/* E034 80032C34 4600D002 */ mul.s $f0, $f26, $f0
/* E038 80032C38 00000000 */ nop
/* E03C 80032C3C C6220060 */ lwc1 $f2, 0x60($s1)
/* E040 80032C40 46001700 */ add.s $f28, $f2, $f0
/* E044 80032C44 0C00A84B */ jal func_8002A12C
/* E048 80032C48 4600A306 */ mov.s $f12, $f20
/* E04C 80032C4C 4600D002 */ mul.s $f0, $f26, $f0
/* E050 80032C50 00000000 */ nop
/* E054 80032C54 C6220068 */ lwc1 $f2, 0x68($s1)
/* E058 80032C58 3C014120 */ lui $at, 0x4120
/* E05C 80032C5C 44817000 */ mtc1 $at, $f14
/* E060 80032C60 46001680 */ add.s $f26, $f2, $f0
/* E064 80032C64 C6200064 */ lwc1 $f0, 0x64($s1)
/* E068 80032C68 27A70040 */ addiu $a3, $sp, 0x40
/* E06C 80032C6C 460E0380 */ add.s $f14, $f0, $f14
/* E070 80032C70 4406D000 */ mfc1 $a2, $f26
/* E074 80032C74 0C00C7A8 */ jal func_80031EA0
/* E078 80032C78 4600E306 */ mov.s $f12, $f28
/* E07C 80032C7C 0040802D */ daddu $s0, $v0, $zero
/* E080 80032C80 120000DA */ beqz $s0, .L80032FEC
/* E084 80032C84 24020002 */ addiu $v0, $zero, 2
/* E088 80032C88 8E040000 */ lw $a0, ($s0)
/* E08C 80032C8C 1082000A */ beq $a0, $v0, .L80032CB8
/* E090 80032C90 24020005 */ addiu $v0, $zero, 5
/* E094 80032C94 10820008 */ beq $a0, $v0, .L80032CB8
/* E098 80032C98 00000000 */ nop
/* E09C 80032C9C 8E240534 */ lw $a0, 0x534($s1)
/* E0A0 80032CA0 4405E000 */ mfc1 $a1, $f28
/* E0A4 80032CA4 4406D000 */ mfc1 $a2, $f26
/* E0A8 80032CA8 0C00C94D */ jal func_80032534
/* E0AC 80032CAC 00000000 */ nop
/* E0B0 80032CB0 104000CE */ beqz $v0, .L80032FEC
/* E0B4 80032CB4 00000000 */ nop
.L80032CB8:
/* E0B8 80032CB8 8E240534 */ lw $a0, 0x534($s1)
/* E0BC 80032CBC 3C014974 */ lui $at, 0x4974
/* E0C0 80032CC0 34212400 */ ori $at, $at, 0x2400
/* E0C4 80032CC4 4481A000 */ mtc1 $at, $f20
/* E0C8 80032CC8 10800043 */ beqz $a0, .L80032DD8
/* E0CC 80032CCC 24120001 */ addiu $s2, $zero, 1
/* E0D0 80032CD0 8C830000 */ lw $v1, ($a0)
/* E0D4 80032CD4 24020006 */ addiu $v0, $zero, 6
/* E0D8 80032CD8 1462003F */ bne $v1, $v0, .L80032DD8
/* E0DC 80032CDC 0080802D */ daddu $s0, $a0, $zero
/* E0E0 80032CE0 C6200060 */ lwc1 $f0, 0x60($s1)
/* E0E4 80032CE4 C6080018 */ lwc1 $f8, 0x18($s0)
/* E0E8 80032CE8 C604000C */ lwc1 $f4, 0xc($s0)
/* E0EC 80032CEC C6020020 */ lwc1 $f2, 0x20($s0)
/* E0F0 80032CF0 C6060014 */ lwc1 $f6, 0x14($s0)
/* E0F4 80032CF4 E7A00010 */ swc1 $f0, 0x10($sp)
/* E0F8 80032CF8 C6200068 */ lwc1 $f0, 0x68($s1)
/* E0FC 80032CFC 27A20044 */ addiu $v0, $sp, 0x44
/* E100 80032D00 AFA20020 */ sw $v0, 0x20($sp)
/* E104 80032D04 27A20048 */ addiu $v0, $sp, 0x48
/* E108 80032D08 46061601 */ sub.s $f24, $f2, $f6
/* E10C 80032D0C AFA20024 */ sw $v0, 0x24($sp)
/* E110 80032D10 27A2004C */ addiu $v0, $sp, 0x4c
/* E114 80032D14 46044581 */ sub.s $f22, $f8, $f4
/* E118 80032D18 E7BC0018 */ swc1 $f28, 0x18($sp)
/* E11C 80032D1C E7BA001C */ swc1 $f26, 0x1c($sp)
/* E120 80032D20 AFA20028 */ sw $v0, 0x28($sp)
/* E124 80032D24 46182281 */ sub.s $f10, $f4, $f24
/* E128 80032D28 E7A00014 */ swc1 $f0, 0x14($sp)
/* E12C 80032D2C C60C000C */ lwc1 $f12, 0xc($s0)
/* E130 80032D30 46163180 */ add.s $f6, $f6, $f22
/* E134 80032D34 C60E0014 */ lwc1 $f14, 0x14($s0)
/* E138 80032D38 44065000 */ mfc1 $a2, $f10
/* E13C 80032D3C 44073000 */ mfc1 $a3, $f6
/* E140 80032D40 0C00C89D */ jal func_80032274
/* E144 80032D44 0000902D */ daddu $s2, $zero, $zero
/* E148 80032D48 10400006 */ beqz $v0, .L80032D64
/* E14C 80032D4C 00000000 */ nop
/* E150 80032D50 C7A0004C */ lwc1 $f0, 0x4c($sp)
/* E154 80032D54 4614003C */ c.lt.s $f0, $f20
/* E158 80032D58 00000000 */ nop
/* E15C 80032D5C 45030001 */ bc1tl .L80032D64
/* E160 80032D60 46000506 */ mov.s $f20, $f0
.L80032D64:
/* E164 80032D64 C6200060 */ lwc1 $f0, 0x60($s1)
/* E168 80032D68 C6020018 */ lwc1 $f2, 0x18($s0)
/* E16C 80032D6C C6040020 */ lwc1 $f4, 0x20($s0)
/* E170 80032D70 E7A00010 */ swc1 $f0, 0x10($sp)
/* E174 80032D74 C6200068 */ lwc1 $f0, 0x68($s1)
/* E178 80032D78 27A20044 */ addiu $v0, $sp, 0x44
/* E17C 80032D7C AFA20020 */ sw $v0, 0x20($sp)
/* E180 80032D80 27A20048 */ addiu $v0, $sp, 0x48
/* E184 80032D84 46181081 */ sub.s $f2, $f2, $f24
/* E188 80032D88 AFA20024 */ sw $v0, 0x24($sp)
/* E18C 80032D8C 27A2004C */ addiu $v0, $sp, 0x4c
/* E190 80032D90 46162100 */ add.s $f4, $f4, $f22
/* E194 80032D94 E7BC0018 */ swc1 $f28, 0x18($sp)
/* E198 80032D98 E7BA001C */ swc1 $f26, 0x1c($sp)
/* E19C 80032D9C AFA20028 */ sw $v0, 0x28($sp)
/* E1A0 80032DA0 E7A00014 */ swc1 $f0, 0x14($sp)
/* E1A4 80032DA4 C60C0018 */ lwc1 $f12, 0x18($s0)
/* E1A8 80032DA8 C60E0020 */ lwc1 $f14, 0x20($s0)
/* E1AC 80032DAC 44061000 */ mfc1 $a2, $f2
/* E1B0 80032DB0 44072000 */ mfc1 $a3, $f4
/* E1B4 80032DB4 0C00C89D */ jal func_80032274
/* E1B8 80032DB8 00000000 */ nop
/* E1BC 80032DBC 10400006 */ beqz $v0, .L80032DD8
/* E1C0 80032DC0 00000000 */ nop
/* E1C4 80032DC4 C7A0004C */ lwc1 $f0, 0x4c($sp)
/* E1C8 80032DC8 4614003C */ c.lt.s $f0, $f20
/* E1CC 80032DCC 00000000 */ nop
/* E1D0 80032DD0 45030001 */ bc1tl .L80032DD8
/* E1D4 80032DD4 46000506 */ mov.s $f20, $f0
.L80032DD8:
/* E1D8 80032DD8 1240005C */ beqz $s2, .L80032F4C
/* E1DC 80032DDC 00000000 */ nop
/* E1E0 80032DE0 8FA30040 */ lw $v1, 0x40($sp)
/* E1E4 80032DE4 8462000A */ lh $v0, 0xa($v1)
/* E1E8 80032DE8 18400058 */ blez $v0, .L80032F4C
/* E1EC 80032DEC 0000902D */ daddu $s2, $zero, $zero
/* E1F0 80032DF0 27B50044 */ addiu $s5, $sp, 0x44
/* E1F4 80032DF4 27B40048 */ addiu $s4, $sp, 0x48
/* E1F8 80032DF8 27B3004C */ addiu $s3, $sp, 0x4c
/* E1FC 80032DFC 0240802D */ daddu $s0, $s2, $zero
.L80032E00:
/* E200 80032E00 8C62000C */ lw $v0, 0xc($v1)
/* E204 80032E04 C6200060 */ lwc1 $f0, 0x60($s1)
/* E208 80032E08 02021021 */ addu $v0, $s0, $v0
/* E20C 80032E0C 8C430000 */ lw $v1, ($v0)
/* E210 80032E10 8C420004 */ lw $v0, 4($v0)
/* E214 80032E14 E7A00010 */ swc1 $f0, 0x10($sp)
/* E218 80032E18 C6200068 */ lwc1 $f0, 0x68($s1)
/* E21C 80032E1C E7BC0018 */ swc1 $f28, 0x18($sp)
/* E220 80032E20 E7BA001C */ swc1 $f26, 0x1c($sp)
/* E224 80032E24 AFB50020 */ sw $s5, 0x20($sp)
/* E228 80032E28 AFB40024 */ sw $s4, 0x24($sp)
/* E22C 80032E2C AFB30028 */ sw $s3, 0x28($sp)
/* E230 80032E30 E7A00014 */ swc1 $f0, 0x14($sp)
/* E234 80032E34 C46C0000 */ lwc1 $f12, ($v1)
/* E238 80032E38 C46E0008 */ lwc1 $f14, 8($v1)
/* E23C 80032E3C 8C460000 */ lw $a2, ($v0)
/* E240 80032E40 0C00C7DB */ jal func_80031F6C
/* E244 80032E44 8C470008 */ lw $a3, 8($v0)
/* E248 80032E48 10400006 */ beqz $v0, .L80032E64
/* E24C 80032E4C 00000000 */ nop
/* E250 80032E50 C7A0004C */ lwc1 $f0, 0x4c($sp)
/* E254 80032E54 4614003C */ c.lt.s $f0, $f20
/* E258 80032E58 00000000 */ nop
/* E25C 80032E5C 45030001 */ bc1tl .L80032E64
/* E260 80032E60 46000506 */ mov.s $f20, $f0
.L80032E64:
/* E264 80032E64 8FA20040 */ lw $v0, 0x40($sp)
/* E268 80032E68 8C42000C */ lw $v0, 0xc($v0)
/* E26C 80032E6C C6200060 */ lwc1 $f0, 0x60($s1)
/* E270 80032E70 02021021 */ addu $v0, $s0, $v0
/* E274 80032E74 8C430004 */ lw $v1, 4($v0)
/* E278 80032E78 8C420008 */ lw $v0, 8($v0)
/* E27C 80032E7C E7A00010 */ swc1 $f0, 0x10($sp)
/* E280 80032E80 C6200068 */ lwc1 $f0, 0x68($s1)
/* E284 80032E84 E7BC0018 */ swc1 $f28, 0x18($sp)
/* E288 80032E88 E7BA001C */ swc1 $f26, 0x1c($sp)
/* E28C 80032E8C AFB50020 */ sw $s5, 0x20($sp)
/* E290 80032E90 AFB40024 */ sw $s4, 0x24($sp)
/* E294 80032E94 AFB30028 */ sw $s3, 0x28($sp)
/* E298 80032E98 E7A00014 */ swc1 $f0, 0x14($sp)
/* E29C 80032E9C C46C0000 */ lwc1 $f12, ($v1)
/* E2A0 80032EA0 C46E0008 */ lwc1 $f14, 8($v1)
/* E2A4 80032EA4 8C460000 */ lw $a2, ($v0)
/* E2A8 80032EA8 0C00C7DB */ jal func_80031F6C
/* E2AC 80032EAC 8C470008 */ lw $a3, 8($v0)
/* E2B0 80032EB0 10400006 */ beqz $v0, .L80032ECC
/* E2B4 80032EB4 00000000 */ nop
/* E2B8 80032EB8 C7A0004C */ lwc1 $f0, 0x4c($sp)
/* E2BC 80032EBC 4614003C */ c.lt.s $f0, $f20
/* E2C0 80032EC0 00000000 */ nop
/* E2C4 80032EC4 45030001 */ bc1tl .L80032ECC
/* E2C8 80032EC8 46000506 */ mov.s $f20, $f0
.L80032ECC:
/* E2CC 80032ECC 8FA20040 */ lw $v0, 0x40($sp)
/* E2D0 80032ED0 8C42000C */ lw $v0, 0xc($v0)
/* E2D4 80032ED4 C6200060 */ lwc1 $f0, 0x60($s1)
/* E2D8 80032ED8 02021021 */ addu $v0, $s0, $v0
/* E2DC 80032EDC 8C430008 */ lw $v1, 8($v0)
/* E2E0 80032EE0 8C420000 */ lw $v0, ($v0)
/* E2E4 80032EE4 E7A00010 */ swc1 $f0, 0x10($sp)
/* E2E8 80032EE8 C6200068 */ lwc1 $f0, 0x68($s1)
/* E2EC 80032EEC E7BC0018 */ swc1 $f28, 0x18($sp)
/* E2F0 80032EF0 E7BA001C */ swc1 $f26, 0x1c($sp)
/* E2F4 80032EF4 AFB50020 */ sw $s5, 0x20($sp)
/* E2F8 80032EF8 AFB40024 */ sw $s4, 0x24($sp)
/* E2FC 80032EFC AFB30028 */ sw $s3, 0x28($sp)
/* E300 80032F00 E7A00014 */ swc1 $f0, 0x14($sp)
/* E304 80032F04 C46C0000 */ lwc1 $f12, ($v1)
/* E308 80032F08 C46E0008 */ lwc1 $f14, 8($v1)
/* E30C 80032F0C 8C460000 */ lw $a2, ($v0)
/* E310 80032F10 0C00C7DB */ jal func_80031F6C
/* E314 80032F14 8C470008 */ lw $a3, 8($v0)
/* E318 80032F18 10400006 */ beqz $v0, .L80032F34
/* E31C 80032F1C 00000000 */ nop
/* E320 80032F20 C7A0004C */ lwc1 $f0, 0x4c($sp)
/* E324 80032F24 4614003C */ c.lt.s $f0, $f20
/* E328 80032F28 00000000 */ nop
/* E32C 80032F2C 45030001 */ bc1tl .L80032F34
/* E330 80032F30 46000506 */ mov.s $f20, $f0
.L80032F34:
/* E334 80032F34 8FA30040 */ lw $v1, 0x40($sp)
/* E338 80032F38 8462000A */ lh $v0, 0xa($v1)
/* E33C 80032F3C 26520001 */ addiu $s2, $s2, 1
/* E340 80032F40 0242102A */ slt $v0, $s2, $v0
/* E344 80032F44 1440FFAE */ bnez $v0, .L80032E00
/* E348 80032F48 26100040 */ addiu $s0, $s0, 0x40
.L80032F4C:
/* E34C 80032F4C 3C014974 */ lui $at, 0x4974
/* E350 80032F50 34212400 */ ori $at, $at, 0x2400
/* E354 80032F54 44810000 */ mtc1 $at, $f0
/* E358 80032F58 00000000 */ nop
/* E35C 80032F5C 4600A032 */ c.eq.s $f20, $f0
/* E360 80032F60 00000000 */ nop
/* E364 80032F64 45030020 */ bc1tl .L80032FE8
/* E368 80032F68 AE20050C */ sw $zero, 0x50c($s1)
/* E36C 80032F6C 44801000 */ mtc1 $zero, $f2
/* E370 80032F70 00000000 */ nop
/* E374 80032F74 4602A032 */ c.eq.s $f20, $f2
/* E378 80032F78 00000000 */ nop
/* E37C 80032F7C 45000003 */ bc1f .L80032F8C
/* E380 80032F80 00000000 */ nop
/* E384 80032F84 0800CBFA */ j .L80032FE8
/* E388 80032F88 AE20050C */ sw $zero, 0x50c($s1)
.L80032F8C:
/* E38C 80032F8C C620050C */ lwc1 $f0, 0x50c($s1)
/* E390 80032F90 4600103C */ c.lt.s $f2, $f0
/* E394 80032F94 00000000 */ nop
/* E398 80032F98 4500000A */ bc1f .L80032FC4
/* E39C 80032F9C 2630050C */ addiu $s0, $s1, 0x50c
/* E3A0 80032FA0 4600A004 */ sqrt.s $f0, $f20
/* E3A4 80032FA4 46000032 */ c.eq.s $f0, $f0
/* E3A8 80032FA8 00000000 */ nop
/* E3AC 80032FAC 4503000E */ bc1tl .L80032FE8
/* E3B0 80032FB0 E6000000 */ swc1 $f0, ($s0)
/* E3B4 80032FB4 0C0187B0 */ jal func_80061EC0
/* E3B8 80032FB8 4600A306 */ mov.s $f12, $f20
/* E3BC 80032FBC 0800CBFA */ j .L80032FE8
/* E3C0 80032FC0 E6000000 */ swc1 $f0, ($s0)
.L80032FC4:
/* E3C4 80032FC4 4600A004 */ sqrt.s $f0, $f20
/* E3C8 80032FC8 46000032 */ c.eq.s $f0, $f0
/* E3CC 80032FCC 00000000 */ nop
/* E3D0 80032FD0 45030004 */ bc1tl .L80032FE4
/* E3D4 80032FD4 46000007 */ neg.s $f0, $f0
/* E3D8 80032FD8 0C0187B0 */ jal func_80061EC0
/* E3DC 80032FDC 4600A306 */ mov.s $f12, $f20
/* E3E0 80032FE0 46000007 */ neg.s $f0, $f0
.L80032FE4:
/* E3E4 80032FE4 E6000000 */ swc1 $f0, ($s0)
.L80032FE8:
/* E3E8 80032FE8 AE200514 */ sw $zero, 0x514($s1)
.L80032FEC:
/* E3EC 80032FEC 8FBF0068 */ lw $ra, 0x68($sp)
/* E3F0 80032FF0 8FB50064 */ lw $s5, 0x64($sp)
/* E3F4 80032FF4 8FB40060 */ lw $s4, 0x60($sp)
/* E3F8 80032FF8 8FB3005C */ lw $s3, 0x5c($sp)
/* E3FC 80032FFC 8FB20058 */ lw $s2, 0x58($sp)
/* E400 80033000 8FB10054 */ lw $s1, 0x54($sp)
/* E404 80033004 8FB00050 */ lw $s0, 0x50($sp)
/* E408 80033008 D7BC0090 */ ldc1 $f28, 0x90($sp)
/* E40C 8003300C D7BA0088 */ ldc1 $f26, 0x88($sp)
/* E410 80033010 D7B80080 */ ldc1 $f24, 0x80($sp)
/* E414 80033014 D7B60078 */ ldc1 $f22, 0x78($sp)
/* E418 80033018 D7B40070 */ ldc1 $f20, 0x70($sp)
/* E41C 8003301C 03E00008 */ jr $ra
/* E420 80033020 27BD0098 */ addiu $sp, $sp, 0x98