papermario/ver/us/asm/nonmatchings/40C5A0/func_E012217C.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

378 lines
19 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_E012217C
/* 40C71C E012217C 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 40C720 E0122180 AFBF001C */ sw $ra, 0x1c($sp)
/* 40C724 E0122184 AFB20018 */ sw $s2, 0x18($sp)
/* 40C728 E0122188 AFB10014 */ sw $s1, 0x14($sp)
/* 40C72C E012218C AFB00010 */ sw $s0, 0x10($sp)
/* 40C730 E0122190 8C830000 */ lw $v1, ($a0)
/* 40C734 E0122194 8C90000C */ lw $s0, 0xc($a0)
/* 40C738 E0122198 30620010 */ andi $v0, $v1, 0x10
/* 40C73C E012219C 8E120004 */ lw $s2, 4($s0)
/* 40C740 E01221A0 10400005 */ beqz $v0, .LE01221B8
/* 40C744 E01221A4 2402FFEF */ addiu $v0, $zero, -0x11
/* 40C748 E01221A8 00621024 */ and $v0, $v1, $v0
/* 40C74C E01221AC AC820000 */ sw $v0, ($a0)
/* 40C750 E01221B0 24020010 */ addiu $v0, $zero, 0x10
/* 40C754 E01221B4 AE020014 */ sw $v0, 0x14($s0)
.LE01221B8:
/* 40C758 E01221B8 8E030014 */ lw $v1, 0x14($s0)
/* 40C75C E01221BC 286203E8 */ slti $v0, $v1, 0x3e8
/* 40C760 E01221C0 10400002 */ beqz $v0, .LE01221CC
/* 40C764 E01221C4 2462FFFF */ addiu $v0, $v1, -1
/* 40C768 E01221C8 AE020014 */ sw $v0, 0x14($s0)
.LE01221CC:
/* 40C76C E01221CC 8E020018 */ lw $v0, 0x18($s0)
/* 40C770 E01221D0 8E030014 */ lw $v1, 0x14($s0)
/* 40C774 E01221D4 24510001 */ addiu $s1, $v0, 1
/* 40C778 E01221D8 04610005 */ bgez $v1, .LE01221F0
/* 40C77C E01221DC AE110018 */ sw $s1, 0x18($s0)
/* 40C780 E01221E0 0C080128 */ jal func_E02004A0
/* 40C784 E01221E4 00000000 */ nop
/* 40C788 E01221E8 080489AB */ j .LE01226AC
/* 40C78C E01221EC 00000000 */ nop
.LE01221F0:
/* 40C790 E01221F0 28620010 */ slti $v0, $v1, 0x10
/* 40C794 E01221F4 10400002 */ beqz $v0, .LE0122200
/* 40C798 E01221F8 00031100 */ sll $v0, $v1, 4
/* 40C79C E01221FC AE020028 */ sw $v0, 0x28($s0)
.LE0122200:
/* 40C7A0 E0122200 8E030070 */ lw $v1, 0x70($s0)
/* 40C7A4 E0122204 24020004 */ addiu $v0, $zero, 4
/* 40C7A8 E0122208 106200D5 */ beq $v1, $v0, .LE0122560
/* 40C7AC E012220C 28620005 */ slti $v0, $v1, 5
/* 40C7B0 E0122210 10400007 */ beqz $v0, .LE0122230
/* 40C7B4 E0122214 24020005 */ addiu $v0, $zero, 5
/* 40C7B8 E0122218 1060000B */ beqz $v1, .LE0122248
/* 40C7BC E012221C 24020001 */ addiu $v0, $zero, 1
/* 40C7C0 E0122220 10620096 */ beq $v1, $v0, .LE012247C
/* 40C7C4 E0122224 00000000 */ nop
/* 40C7C8 E0122228 0804898B */ j .LE012262C
/* 40C7CC E012222C 00000000 */ nop
.LE0122230:
/* 40C7D0 E0122230 106200FE */ beq $v1, $v0, .LE012262C
/* 40C7D4 E0122234 24020064 */ addiu $v0, $zero, 0x64
/* 40C7D8 E0122238 10620040 */ beq $v1, $v0, .LE012233C
/* 40C7DC E012223C 00000000 */ nop
/* 40C7E0 E0122240 0804898B */ j .LE012262C
/* 40C7E4 E0122244 00000000 */ nop
.LE0122248:
/* 40C7E8 E0122248 00111080 */ sll $v0, $s1, 2
/* 40C7EC E012224C 00511021 */ addu $v0, $v0, $s1
/* 40C7F0 E0122250 00021080 */ sll $v0, $v0, 2
/* 40C7F4 E0122254 44826000 */ mtc1 $v0, $f12
/* 40C7F8 E0122258 00000000 */ nop
/* 40C7FC E012225C 46806320 */ cvt.s.w $f12, $f12
/* 40C800 E0122260 32230003 */ andi $v1, $s1, 3
/* 40C804 E0122264 00031100 */ sll $v0, $v1, 4
/* 40C808 E0122268 00431023 */ subu $v0, $v0, $v1
/* 40C80C E012226C 00021040 */ sll $v0, $v0, 1
/* 40C810 E0122270 8E030074 */ lw $v1, 0x74($s0)
/* 40C814 E0122274 244200C8 */ addiu $v0, $v0, 0xc8
/* 40C818 E0122278 AE020050 */ sw $v0, 0x50($s0)
/* 40C81C E012227C 24630001 */ addiu $v1, $v1, 1
/* 40C820 E0122280 0C080140 */ jal func_E0200500
/* 40C824 E0122284 AE030074 */ sw $v1, 0x74($s0)
/* 40C828 E0122288 3C01E012 */ lui $at, %hi(D_E0122CA0)
/* 40C82C E012228C D4222CA0 */ ldc1 $f2, %lo(D_E0122CA0)($at)
/* 40C830 E0122290 46000021 */ cvt.d.s $f0, $f0
/* 40C834 E0122294 46220002 */ mul.d $f0, $f0, $f2
/* 40C838 E0122298 00000000 */ nop
/* 40C83C E012229C 3C013FE0 */ lui $at, 0x3fe0
/* 40C840 E01222A0 44811800 */ mtc1 $at, $f3
/* 40C844 E01222A4 44801000 */ mtc1 $zero, $f2
/* 40C848 E01222A8 00000000 */ nop
/* 40C84C E01222AC 46220000 */ add.d $f0, $f0, $f2
/* 40C850 E01222B0 8E020000 */ lw $v0, ($s0)
/* 40C854 E01222B4 46200020 */ cvt.s.d $f0, $f0
/* 40C858 E01222B8 104000E8 */ beqz $v0, .LE012265C
/* 40C85C E01222BC E6000040 */ swc1 $f0, 0x40($s0)
/* 40C860 E01222C0 44916000 */ mtc1 $s1, $f12
/* 40C864 E01222C4 00000000 */ nop
/* 40C868 E01222C8 0C080140 */ jal func_E0200500
/* 40C86C E01222CC 46806320 */ cvt.s.w $f12, $f12
/* 40C870 E01222D0 3C01E012 */ lui $at, %hi(D_E0122CA8)
/* 40C874 E01222D4 D4222CA8 */ ldc1 $f2, %lo(D_E0122CA8)($at)
/* 40C878 E01222D8 44916000 */ mtc1 $s1, $f12
/* 40C87C E01222DC 00000000 */ nop
/* 40C880 E01222E0 46806321 */ cvt.d.w $f12, $f12
/* 40C884 E01222E4 46226302 */ mul.d $f12, $f12, $f2
/* 40C888 E01222E8 00000000 */ nop
/* 40C88C E01222EC C6020008 */ lwc1 $f2, 8($s0)
/* 40C890 E01222F0 46001080 */ add.s $f2, $f2, $f0
/* 40C894 E01222F4 E6020008 */ swc1 $f2, 8($s0)
/* 40C898 E01222F8 0C080144 */ jal func_E0200510
/* 40C89C E01222FC 46206320 */ cvt.s.d $f12, $f12
/* 40C8A0 E0122300 C602000C */ lwc1 $f2, 0xc($s0)
/* 40C8A4 E0122304 8E020074 */ lw $v0, 0x74($s0)
/* 40C8A8 E0122308 46001080 */ add.s $f2, $f2, $f0
/* 40C8AC E012230C 28420033 */ slti $v0, $v0, 0x33
/* 40C8B0 E0122310 144000D2 */ bnez $v0, .LE012265C
/* 40C8B4 E0122314 E602000C */ swc1 $f2, 0xc($s0)
/* 40C8B8 E0122318 24020003 */ addiu $v0, $zero, 3
/* 40C8BC E012231C 16420004 */ bne $s2, $v0, .LE0122330
/* 40C8C0 E0122320 AE000074 */ sw $zero, 0x74($s0)
/* 40C8C4 E0122324 24020064 */ addiu $v0, $zero, 0x64
/* 40C8C8 E0122328 08048997 */ j .LE012265C
/* 40C8CC E012232C AE020070 */ sw $v0, 0x70($s0)
.LE0122330:
/* 40C8D0 E0122330 24020001 */ addiu $v0, $zero, 1
/* 40C8D4 E0122334 08048997 */ j .LE012265C
/* 40C8D8 E0122338 AE020070 */ sw $v0, 0x70($s0)
.LE012233C:
/* 40C8DC E012233C 8E030074 */ lw $v1, 0x74($s0)
/* 40C8E0 E0122340 10600005 */ beqz $v1, .LE0122358
/* 40C8E4 E0122344 24020001 */ addiu $v0, $zero, 1
/* 40C8E8 E0122348 10620007 */ beq $v1, $v0, .LE0122368
/* 40C8EC E012234C 240200FF */ addiu $v0, $zero, 0xff
/* 40C8F0 E0122350 080488DF */ j .LE012237C
/* 40C8F4 E0122354 AE00004C */ sw $zero, 0x4c($s0)
.LE0122358:
/* 40C8F8 E0122358 3C014080 */ lui $at, 0x4080
/* 40C8FC E012235C 44810000 */ mtc1 $at, $f0
/* 40C900 E0122360 080488DC */ j .LE0122370
/* 40C904 E0122364 240200FF */ addiu $v0, $zero, 0xff
.LE0122368:
/* 40C908 E0122368 3C014100 */ lui $at, 0x4100
/* 40C90C E012236C 44810000 */ mtc1 $at, $f0
.LE0122370:
/* 40C910 E0122370 AE02005C */ sw $v0, 0x5c($s0)
/* 40C914 E0122374 080488E0 */ j .LE0122380
/* 40C918 E0122378 E600004C */ swc1 $f0, 0x4c($s0)
.LE012237C:
/* 40C91C E012237C AE00005C */ sw $zero, 0x5c($s0)
.LE0122380:
/* 40C920 E0122380 8E040074 */ lw $a0, 0x74($s0)
/* 40C924 E0122384 2882001E */ slti $v0, $a0, 0x1e
/* 40C928 E0122388 10400017 */ beqz $v0, .LE01223E8
/* 40C92C E012238C 00041880 */ sll $v1, $a0, 2
/* 40C930 E0122390 3C02E012 */ lui $v0, %hi(D_E0122BA8)
/* 40C934 E0122394 24422BA8 */ addiu $v0, $v0, %lo(D_E0122BA8)
/* 40C938 E0122398 00621821 */ addu $v1, $v1, $v0
/* 40C93C E012239C 94620000 */ lhu $v0, ($v1)
/* 40C940 E01223A0 3C01E012 */ lui $at, %hi(D_E0122CB0)
/* 40C944 E01223A4 D4202CB0 */ ldc1 $f0, %lo(D_E0122CB0)($at)
/* 40C948 E01223A8 44821000 */ mtc1 $v0, $f2
/* 40C94C E01223AC 00000000 */ nop
/* 40C950 E01223B0 468010A0 */ cvt.s.w $f2, $f2
/* 40C954 E01223B4 460010A1 */ cvt.d.s $f2, $f2
/* 40C958 E01223B8 46201082 */ mul.d $f2, $f2, $f0
/* 40C95C E01223BC 00000000 */ nop
/* 40C960 E01223C0 3C01E012 */ lui $at, %hi(D_E0122CB8)
/* 40C964 E01223C4 D4242CB8 */ ldc1 $f4, %lo(D_E0122CB8)($at)
/* 40C968 E01223C8 44840000 */ mtc1 $a0, $f0
/* 40C96C E01223CC 00000000 */ nop
/* 40C970 E01223D0 46800021 */ cvt.d.w $f0, $f0
/* 40C974 E01223D4 46240002 */ mul.d $f0, $f0, $f4
/* 40C978 E01223D8 00000000 */ nop
/* 40C97C E01223DC 90620003 */ lbu $v0, 3($v1)
/* 40C980 E01223E0 0804890E */ j .LE0122438
/* 40C984 E01223E4 46201080 */ add.d $f2, $f2, $f0
.LE01223E8:
/* 40C988 E01223E8 3C03E012 */ lui $v1, %hi(D_E0122BA8)
/* 40C98C E01223EC 24632BA8 */ addiu $v1, $v1, %lo(D_E0122BA8)
/* 40C990 E01223F0 94620074 */ lhu $v0, 0x74($v1)
/* 40C994 E01223F4 3C01E012 */ lui $at, %hi(D_E0122CC0)
/* 40C998 E01223F8 D4202CC0 */ ldc1 $f0, %lo(D_E0122CC0)($at)
/* 40C99C E01223FC 44821000 */ mtc1 $v0, $f2
/* 40C9A0 E0122400 00000000 */ nop
/* 40C9A4 E0122404 468010A0 */ cvt.s.w $f2, $f2
/* 40C9A8 E0122408 460010A1 */ cvt.d.s $f2, $f2
/* 40C9AC E012240C 46201082 */ mul.d $f2, $f2, $f0
/* 40C9B0 E0122410 00000000 */ nop
/* 40C9B4 E0122414 3C01E012 */ lui $at, %hi(D_E0122CC8)
/* 40C9B8 E0122418 D4242CC8 */ ldc1 $f4, %lo(D_E0122CC8)($at)
/* 40C9BC E012241C 44840000 */ mtc1 $a0, $f0
/* 40C9C0 E0122420 00000000 */ nop
/* 40C9C4 E0122424 46800021 */ cvt.d.w $f0, $f0
/* 40C9C8 E0122428 46240002 */ mul.d $f0, $f0, $f4
/* 40C9CC E012242C 00000000 */ nop
/* 40C9D0 E0122430 46201080 */ add.d $f2, $f2, $f0
/* 40C9D4 E0122434 90620077 */ lbu $v0, 0x77($v1)
.LE0122438:
/* 40C9D8 E0122438 46201020 */ cvt.s.d $f0, $f2
/* 40C9DC E012243C 3C01E012 */ lui $at, %hi(D_E0122CD0)
/* 40C9E0 E0122440 D4222CD0 */ ldc1 $f2, %lo(D_E0122CD0)($at)
/* 40C9E4 E0122444 304200FF */ andi $v0, $v0, 0xff
/* 40C9E8 E0122448 AE020054 */ sw $v0, 0x54($s0)
/* 40C9EC E012244C AE020058 */ sw $v0, 0x58($s0)
/* 40C9F0 E0122450 8E020074 */ lw $v0, 0x74($s0)
/* 40C9F4 E0122454 E6000044 */ swc1 $f0, 0x44($s0)
/* 40C9F8 E0122458 46000021 */ cvt.d.s $f0, $f0
/* 40C9FC E012245C AE000050 */ sw $zero, 0x50($s0)
/* 40CA00 E0122460 AE000040 */ sw $zero, 0x40($s0)
/* 40CA04 E0122464 46220000 */ add.d $f0, $f0, $f2
/* 40CA08 E0122468 24420001 */ addiu $v0, $v0, 1
/* 40CA0C E012246C AE020074 */ sw $v0, 0x74($s0)
/* 40CA10 E0122470 46200020 */ cvt.s.d $f0, $f0
/* 40CA14 E0122474 08048997 */ j .LE012265C
/* 40CA18 E0122478 E6000048 */ swc1 $f0, 0x48($s0)
.LE012247C:
/* 40CA1C E012247C 8E020074 */ lw $v0, 0x74($s0)
/* 40CA20 E0122480 10400005 */ beqz $v0, .LE0122498
/* 40CA24 E0122484 00000000 */ nop
/* 40CA28 E0122488 10430007 */ beq $v0, $v1, .LE01224A8
/* 40CA2C E012248C 240200FF */ addiu $v0, $zero, 0xff
/* 40CA30 E0122490 0804892F */ j .LE01224BC
/* 40CA34 E0122494 AE00004C */ sw $zero, 0x4c($s0)
.LE0122498:
/* 40CA38 E0122498 3C014080 */ lui $at, 0x4080
/* 40CA3C E012249C 44810000 */ mtc1 $at, $f0
/* 40CA40 E01224A0 0804892C */ j .LE01224B0
/* 40CA44 E01224A4 240200FF */ addiu $v0, $zero, 0xff
.LE01224A8:
/* 40CA48 E01224A8 3C014100 */ lui $at, 0x4100
/* 40CA4C E01224AC 44810000 */ mtc1 $at, $f0
.LE01224B0:
/* 40CA50 E01224B0 AE02005C */ sw $v0, 0x5c($s0)
/* 40CA54 E01224B4 08048930 */ j .LE01224C0
/* 40CA58 E01224B8 E600004C */ swc1 $f0, 0x4c($s0)
.LE01224BC:
/* 40CA5C E01224BC AE00005C */ sw $zero, 0x5c($s0)
.LE01224C0:
/* 40CA60 E01224C0 8E030074 */ lw $v1, 0x74($s0)
/* 40CA64 E01224C4 3C02E012 */ lui $v0, %hi(D_E0122BA8)
/* 40CA68 E01224C8 24422BA8 */ addiu $v0, $v0, %lo(D_E0122BA8)
/* 40CA6C E01224CC 00031880 */ sll $v1, $v1, 2
/* 40CA70 E01224D0 00621821 */ addu $v1, $v1, $v0
/* 40CA74 E01224D4 94620000 */ lhu $v0, ($v1)
/* 40CA78 E01224D8 3C01E012 */ lui $at, %hi(D_E0122CD8)
/* 40CA7C E01224DC D4202CD8 */ ldc1 $f0, %lo(D_E0122CD8)($at)
/* 40CA80 E01224E0 44821000 */ mtc1 $v0, $f2
/* 40CA84 E01224E4 00000000 */ nop
/* 40CA88 E01224E8 468010A0 */ cvt.s.w $f2, $f2
/* 40CA8C E01224EC 460010A1 */ cvt.d.s $f2, $f2
/* 40CA90 E01224F0 46201082 */ mul.d $f2, $f2, $f0
/* 40CA94 E01224F4 00000000 */ nop
/* 40CA98 E01224F8 3C01E012 */ lui $at, %hi(D_E0122CE0)
/* 40CA9C E01224FC D4242CE0 */ ldc1 $f4, %lo(D_E0122CE0)($at)
/* 40CAA0 E0122500 90630003 */ lbu $v1, 3($v1)
/* 40CAA4 E0122504 AE000050 */ sw $zero, 0x50($s0)
/* 40CAA8 E0122508 AE000040 */ sw $zero, 0x40($s0)
/* 40CAAC E012250C 462010A0 */ cvt.s.d $f2, $f2
/* 40CAB0 E0122510 46001021 */ cvt.d.s $f0, $f2
/* 40CAB4 E0122514 46240002 */ mul.d $f0, $f0, $f4
/* 40CAB8 E0122518 00000000 */ nop
/* 40CABC E012251C 8E020074 */ lw $v0, 0x74($s0)
/* 40CAC0 E0122520 306300FF */ andi $v1, $v1, 0xff
/* 40CAC4 E0122524 AE030054 */ sw $v1, 0x54($s0)
/* 40CAC8 E0122528 AE030058 */ sw $v1, 0x58($s0)
/* 40CACC E012252C 3C014010 */ lui $at, 0x4010
/* 40CAD0 E0122530 44812800 */ mtc1 $at, $f5
/* 40CAD4 E0122534 44802000 */ mtc1 $zero, $f4
/* 40CAD8 E0122538 24420001 */ addiu $v0, $v0, 1
/* 40CADC E012253C AE020074 */ sw $v0, 0x74($s0)
/* 40CAE0 E0122540 46240000 */ add.d $f0, $f0, $f4
/* 40CAE4 E0122544 2842001E */ slti $v0, $v0, 0x1e
/* 40CAE8 E0122548 E6020044 */ swc1 $f2, 0x44($s0)
/* 40CAEC E012254C 46200020 */ cvt.s.d $f0, $f0
/* 40CAF0 E0122550 14400042 */ bnez $v0, .LE012265C
/* 40CAF4 E0122554 E6000048 */ swc1 $f0, 0x48($s0)
/* 40CAF8 E0122558 08048988 */ j .LE0122620
/* 40CAFC E012255C 24020004 */ addiu $v0, $zero, 4
.LE0122560:
/* 40CB00 E0122560 8E030074 */ lw $v1, 0x74($s0)
/* 40CB04 E0122564 2402001D */ addiu $v0, $zero, 0x1d
/* 40CB08 E0122568 00431823 */ subu $v1, $v0, $v1
/* 40CB0C E012256C 10600005 */ beqz $v1, .LE0122584
/* 40CB10 E0122570 24020001 */ addiu $v0, $zero, 1
/* 40CB14 E0122574 10620007 */ beq $v1, $v0, .LE0122594
/* 40CB18 E0122578 240200FF */ addiu $v0, $zero, 0xff
/* 40CB1C E012257C 0804896A */ j .LE01225A8
/* 40CB20 E0122580 AE00004C */ sw $zero, 0x4c($s0)
.LE0122584:
/* 40CB24 E0122584 3C014080 */ lui $at, 0x4080
/* 40CB28 E0122588 44810000 */ mtc1 $at, $f0
/* 40CB2C E012258C 08048967 */ j .LE012259C
/* 40CB30 E0122590 240200FF */ addiu $v0, $zero, 0xff
.LE0122594:
/* 40CB34 E0122594 3C014100 */ lui $at, 0x4100
/* 40CB38 E0122598 44810000 */ mtc1 $at, $f0
.LE012259C:
/* 40CB3C E012259C AE02005C */ sw $v0, 0x5c($s0)
/* 40CB40 E01225A0 0804896B */ j .LE01225AC
/* 40CB44 E01225A4 E600004C */ swc1 $f0, 0x4c($s0)
.LE01225A8:
/* 40CB48 E01225A8 AE00005C */ sw $zero, 0x5c($s0)
.LE01225AC:
/* 40CB4C E01225AC 3C03E012 */ lui $v1, %hi(D_E0122C20)
/* 40CB50 E01225B0 24632C20 */ addiu $v1, $v1, %lo(D_E0122C20)
/* 40CB54 E01225B4 8E020074 */ lw $v0, 0x74($s0)
/* 40CB58 E01225B8 3C01E012 */ lui $at, %hi(D_E0122CE8)
/* 40CB5C E01225BC D4222CE8 */ ldc1 $f2, %lo(D_E0122CE8)($at)
/* 40CB60 E01225C0 00021080 */ sll $v0, $v0, 2
/* 40CB64 E01225C4 00431021 */ addu $v0, $v0, $v1
/* 40CB68 E01225C8 94430000 */ lhu $v1, ($v0)
/* 40CB6C E01225CC 90440003 */ lbu $a0, 3($v0)
/* 40CB70 E01225D0 8E020074 */ lw $v0, 0x74($s0)
/* 40CB74 E01225D4 AE000050 */ sw $zero, 0x50($s0)
/* 40CB78 E01225D8 AE000040 */ sw $zero, 0x40($s0)
/* 40CB7C E01225DC 44830000 */ mtc1 $v1, $f0
/* 40CB80 E01225E0 00000000 */ nop
/* 40CB84 E01225E4 46800020 */ cvt.s.w $f0, $f0
/* 40CB88 E01225E8 46000021 */ cvt.d.s $f0, $f0
/* 40CB8C E01225EC 46220002 */ mul.d $f0, $f0, $f2
/* 40CB90 E01225F0 00000000 */ nop
/* 40CB94 E01225F4 AE000058 */ sw $zero, 0x58($s0)
/* 40CB98 E01225F8 AE000048 */ sw $zero, 0x48($s0)
/* 40CB9C E01225FC 24420001 */ addiu $v0, $v0, 1
/* 40CBA0 E0122600 308400FF */ andi $a0, $a0, 0xff
/* 40CBA4 E0122604 AE020074 */ sw $v0, 0x74($s0)
/* 40CBA8 E0122608 2842001E */ slti $v0, $v0, 0x1e
/* 40CBAC E012260C AE040054 */ sw $a0, 0x54($s0)
/* 40CBB0 E0122610 46200020 */ cvt.s.d $f0, $f0
/* 40CBB4 E0122614 14400011 */ bnez $v0, .LE012265C
/* 40CBB8 E0122618 E6000044 */ swc1 $f0, 0x44($s0)
/* 40CBBC E012261C 24020005 */ addiu $v0, $zero, 5
.LE0122620:
/* 40CBC0 E0122620 AE000074 */ sw $zero, 0x74($s0)
/* 40CBC4 E0122624 08048997 */ j .LE012265C
/* 40CBC8 E0122628 AE020070 */ sw $v0, 0x70($s0)
.LE012262C:
/* 40CBCC E012262C 8E020074 */ lw $v0, 0x74($s0)
/* 40CBD0 E0122630 AE000040 */ sw $zero, 0x40($s0)
/* 40CBD4 E0122634 AE000044 */ sw $zero, 0x44($s0)
/* 40CBD8 E0122638 AE000048 */ sw $zero, 0x48($s0)
/* 40CBDC E012263C AE000050 */ sw $zero, 0x50($s0)
/* 40CBE0 E0122640 AE000054 */ sw $zero, 0x54($s0)
/* 40CBE4 E0122644 AE000058 */ sw $zero, 0x58($s0)
/* 40CBE8 E0122648 AE00004C */ sw $zero, 0x4c($s0)
/* 40CBEC E012264C AE00005C */ sw $zero, 0x5c($s0)
/* 40CBF0 E0122650 AE00004C */ sw $zero, 0x4c($s0)
/* 40CBF4 E0122654 24420001 */ addiu $v0, $v0, 1
/* 40CBF8 E0122658 AE020074 */ sw $v0, 0x74($s0)
.LE012265C:
/* 40CBFC E012265C 0000202D */ daddu $a0, $zero, $zero
/* 40CC00 E0122660 240500FF */ addiu $a1, $zero, 0xff
/* 40CC04 E0122664 44801000 */ mtc1 $zero, $f2
/* 40CC08 E0122668 0200182D */ daddu $v1, $s0, $zero
.LE012266C:
/* 40CC0C E012266C 8C620050 */ lw $v0, 0x50($v1)
/* 40CC10 E0122670 28420100 */ slti $v0, $v0, 0x100
/* 40CC14 E0122674 50400001 */ beql $v0, $zero, .LE012267C
/* 40CC18 E0122678 AC650050 */ sw $a1, 0x50($v1)
.LE012267C:
/* 40CC1C E012267C 8C620050 */ lw $v0, 0x50($v1)
/* 40CC20 E0122680 04420001 */ bltzl $v0, .LE0122688
/* 40CC24 E0122684 AC600050 */ sw $zero, 0x50($v1)
.LE0122688:
/* 40CC28 E0122688 C4600040 */ lwc1 $f0, 0x40($v1)
/* 40CC2C E012268C 4602003C */ c.lt.s $f0, $f2
/* 40CC30 E0122690 00000000 */ nop
/* 40CC34 E0122694 45030001 */ bc1tl .LE012269C
/* 40CC38 E0122698 E4620040 */ swc1 $f2, 0x40($v1)
.LE012269C:
/* 40CC3C E012269C 24840001 */ addiu $a0, $a0, 1
/* 40CC40 E01226A0 28820004 */ slti $v0, $a0, 4
/* 40CC44 E01226A4 1440FFF1 */ bnez $v0, .LE012266C
/* 40CC48 E01226A8 24630004 */ addiu $v1, $v1, 4
.LE01226AC:
/* 40CC4C E01226AC 8FBF001C */ lw $ra, 0x1c($sp)
/* 40CC50 E01226B0 8FB20018 */ lw $s2, 0x18($sp)
/* 40CC54 E01226B4 8FB10014 */ lw $s1, 0x14($sp)
/* 40CC58 E01226B8 8FB00010 */ lw $s0, 0x10($sp)
/* 40CC5C E01226BC 03E00008 */ jr $ra
/* 40CC60 E01226C0 27BD0020 */ addiu $sp, $sp, 0x20