papermario/asm/nonmatchings/code_32E490/func_E0014260.s
2021-01-11 21:40:52 +09:00

155 lines
7.9 KiB
ArmAsm
Generated

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_E0014260
/* 32E6F0 E0014260 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 32E6F4 E0014264 AFB40020 */ sw $s4, 0x20($sp)
/* 32E6F8 E0014268 0080A02D */ daddu $s4, $a0, $zero
/* 32E6FC E001426C AFB3001C */ sw $s3, 0x1c($sp)
/* 32E700 E0014270 0000982D */ daddu $s3, $zero, $zero
/* 32E704 E0014274 AFB20018 */ sw $s2, 0x18($sp)
/* 32E708 E0014278 AFBF0024 */ sw $ra, 0x24($sp)
/* 32E70C E001427C AFB10014 */ sw $s1, 0x14($sp)
/* 32E710 E0014280 AFB00010 */ sw $s0, 0x10($sp)
/* 32E714 E0014284 F7B40028 */ sdc1 $f20, 0x28($sp)
/* 32E718 E0014288 8E820008 */ lw $v0, 8($s4)
/* 32E71C E001428C 8E91000C */ lw $s1, 0xc($s4)
/* 32E720 E0014290 18400075 */ blez $v0, .LE0014468
/* 32E724 E0014294 0260902D */ daddu $s2, $s3, $zero
/* 32E728 E0014298 3C01E001 */ lui $at, %hi(D_E0014790)
/* 32E72C E001429C D4344790 */ ldc1 $f20, %lo(D_E0014790)($at)
/* 32E730 E00142A0 26300008 */ addiu $s0, $s1, 8
.LE00142A4:
/* 32E734 E00142A4 8E220000 */ lw $v0, ($s1)
/* 32E738 E00142A8 5040006A */ beql $v0, $zero, .LE0014454
/* 32E73C E00142AC 26730001 */ addiu $s3, $s3, 1
/* 32E740 E00142B0 9602FFFE */ lhu $v0, -2($s0)
/* 32E744 E00142B4 2442FFFF */ addiu $v0, $v0, -1
/* 32E748 E00142B8 A602FFFE */ sh $v0, -2($s0)
/* 32E74C E00142BC 00021400 */ sll $v0, $v0, 0x10
/* 32E750 E00142C0 1C400003 */ bgtz $v0, .LE00142D0
/* 32E754 E00142C4 00000000 */ nop
/* 32E758 E00142C8 08005114 */ j .LE0014450
/* 32E75C E00142CC AE200000 */ sw $zero, ($s1)
.LE00142D0:
/* 32E760 E00142D0 C6000024 */ lwc1 $f0, 0x24($s0)
/* 32E764 E00142D4 3C014140 */ lui $at, 0x4140
/* 32E768 E00142D8 44816000 */ mtc1 $at, $f12
/* 32E76C E00142DC 0C08013C */ jal func_E02004F0
/* 32E770 E00142E0 460C0300 */ add.s $f12, $f0, $f12
/* 32E774 E00142E4 46000306 */ mov.s $f12, $f0
/* 32E778 E00142E8 0C080140 */ jal func_E0200500
/* 32E77C E00142EC E60C0024 */ swc1 $f12, 0x24($s0)
/* 32E780 E00142F0 46000021 */ cvt.d.s $f0, $f0
/* 32E784 E00142F4 46340002 */ mul.d $f0, $f0, $f20
/* 32E788 E00142F8 00000000 */ nop
/* 32E78C E00142FC C602001C */ lwc1 $f2, 0x1c($s0)
/* 32E790 E0014300 460010A1 */ cvt.d.s $f2, $f2
/* 32E794 E0014304 46201080 */ add.d $f2, $f2, $f0
/* 32E798 E0014308 C60C0024 */ lwc1 $f12, 0x24($s0)
/* 32E79C E001430C 462010A0 */ cvt.s.d $f2, $f2
/* 32E7A0 E0014310 0C080144 */ jal func_E0200510
/* 32E7A4 E0014314 E6020010 */ swc1 $f2, 0x10($s0)
/* 32E7A8 E0014318 46000021 */ cvt.d.s $f0, $f0
/* 32E7AC E001431C 46340002 */ mul.d $f0, $f0, $f20
/* 32E7B0 E0014320 00000000 */ nop
/* 32E7B4 E0014324 C6040028 */ lwc1 $f4, 0x28($s0)
/* 32E7B8 E0014328 3C01E001 */ lui $at, %hi(D_E0014798)
/* 32E7BC E001432C D4224798 */ ldc1 $f2, %lo(D_E0014798)($at)
/* 32E7C0 E0014330 46002121 */ cvt.d.s $f4, $f4
/* 32E7C4 E0014334 46222102 */ mul.d $f4, $f4, $f2
/* 32E7C8 E0014338 00000000 */ nop
/* 32E7CC E001433C C608001C */ lwc1 $f8, 0x1c($s0)
/* 32E7D0 E0014340 3C01401E */ lui $at, 0x401e
/* 32E7D4 E0014344 44817800 */ mtc1 $at, $f15
/* 32E7D8 E0014348 44807000 */ mtc1 $zero, $f14
/* 32E7DC E001434C 46004221 */ cvt.d.s $f8, $f8
/* 32E7E0 E0014350 46287381 */ sub.d $f14, $f14, $f8
/* 32E7E4 E0014354 3C01E001 */ lui $at, %hi(D_E00147A0)
/* 32E7E8 E0014358 D42247A0 */ ldc1 $f2, %lo(D_E00147A0)($at)
/* 32E7EC E001435C 46227382 */ mul.d $f14, $f14, $f2
/* 32E7F0 E0014360 00000000 */ nop
/* 32E7F4 E0014364 C60C0020 */ lwc1 $f12, 0x20($s0)
/* 32E7F8 E0014368 3C01E001 */ lui $at, %hi(D_E00147A8)
/* 32E7FC E001436C D42247A8 */ ldc1 $f2, %lo(D_E00147A8)($at)
/* 32E800 E0014370 46006321 */ cvt.d.s $f12, $f12
/* 32E804 E0014374 46226302 */ mul.d $f12, $f12, $f2
/* 32E808 E0014378 00000000 */ nop
/* 32E80C E001437C C612003C */ lwc1 $f18, 0x3c($s0)
/* 32E810 E0014380 46202120 */ cvt.s.d $f4, $f4
/* 32E814 E0014384 46122482 */ mul.s $f18, $f4, $f18
/* 32E818 E0014388 00000000 */ nop
/* 32E81C E001438C C6020040 */ lwc1 $f2, 0x40($s0)
/* 32E820 E0014390 24120001 */ addiu $s2, $zero, 1
/* 32E824 E0014394 E6040028 */ swc1 $f4, 0x28($s0)
/* 32E828 E0014398 46002406 */ mov.s $f16, $f4
/* 32E82C E001439C 46028402 */ mul.s $f16, $f16, $f2
/* 32E830 E00143A0 00000000 */ nop
/* 32E834 E00143A4 C60A0030 */ lwc1 $f10, 0x30($s0)
/* 32E838 E00143A8 C606002C */ lwc1 $f6, 0x2c($s0)
/* 32E83C E00143AC C6020034 */ lwc1 $f2, 0x34($s0)
/* 32E840 E00143B0 8602FFFE */ lh $v0, -2($s0)
/* 32E844 E00143B4 46025280 */ add.s $f10, $f10, $f2
/* 32E848 E00143B8 C6020020 */ lwc1 $f2, 0x20($s0)
/* 32E84C E00143BC 2842000A */ slti $v0, $v0, 0xa
/* 32E850 E00143C0 460010A1 */ cvt.d.s $f2, $f2
/* 32E854 E00143C4 46201080 */ add.d $f2, $f2, $f0
/* 32E858 E00143C8 C6040008 */ lwc1 $f4, 8($s0)
/* 32E85C E00143CC C600000C */ lwc1 $f0, 0xc($s0)
/* 32E860 E00143D0 462E4200 */ add.d $f8, $f8, $f14
/* 32E864 E00143D4 46206320 */ cvt.s.d $f12, $f12
/* 32E868 E00143D8 E60A0030 */ swc1 $f10, 0x30($s0)
/* 32E86C E00143DC E60C0020 */ swc1 $f12, 0x20($s0)
/* 32E870 E00143E0 460A3180 */ add.s $f6, $f6, $f10
/* 32E874 E00143E4 462010A0 */ cvt.s.d $f2, $f2
/* 32E878 E00143E8 46204220 */ cvt.s.d $f8, $f8
/* 32E87C E00143EC 46100000 */ add.s $f0, $f0, $f16
/* 32E880 E00143F0 E6020014 */ swc1 $f2, 0x14($s0)
/* 32E884 E00143F4 C6020004 */ lwc1 $f2, 4($s0)
/* 32E888 E00143F8 46062100 */ add.s $f4, $f4, $f6
/* 32E88C E00143FC E608001C */ swc1 $f8, 0x1c($s0)
/* 32E890 E0014400 E606002C */ swc1 $f6, 0x2c($s0)
/* 32E894 E0014404 46121080 */ add.s $f2, $f2, $f18
/* 32E898 E0014408 E600000C */ swc1 $f0, 0xc($s0)
/* 32E89C E001440C E6040008 */ swc1 $f4, 8($s0)
/* 32E8A0 E0014410 10400008 */ beqz $v0, .LE0014434
/* 32E8A4 E0014414 E6020004 */ swc1 $f2, 4($s0)
/* 32E8A8 E0014418 3C01E001 */ lui $at, %hi(D_E00147B0)
/* 32E8AC E001441C D42247B0 */ ldc1 $f2, %lo(D_E00147B0)($at)
/* 32E8B0 E0014420 46006021 */ cvt.d.s $f0, $f12
/* 32E8B4 E0014424 46220002 */ mul.d $f0, $f0, $f2
/* 32E8B8 E0014428 00000000 */ nop
/* 32E8BC E001442C 46200020 */ cvt.s.d $f0, $f0
/* 32E8C0 E0014430 E6000020 */ swc1 $f0, 0x20($s0)
.LE0014434:
/* 32E8C4 E0014434 8602FFFE */ lh $v0, -2($s0)
/* 32E8C8 E0014438 2842000F */ slti $v0, $v0, 0xf
/* 32E8CC E001443C 50400005 */ beql $v0, $zero, .LE0014454
/* 32E8D0 E0014440 26730001 */ addiu $s3, $s3, 1
/* 32E8D4 E0014444 92020000 */ lbu $v0, ($s0)
/* 32E8D8 E0014448 2442FFF0 */ addiu $v0, $v0, -0x10
/* 32E8DC E001444C A2020000 */ sb $v0, ($s0)
.LE0014450:
/* 32E8E0 E0014450 26730001 */ addiu $s3, $s3, 1
.LE0014454:
/* 32E8E4 E0014454 2610004C */ addiu $s0, $s0, 0x4c
/* 32E8E8 E0014458 8E820008 */ lw $v0, 8($s4)
/* 32E8EC E001445C 0262102A */ slt $v0, $s3, $v0
/* 32E8F0 E0014460 1440FF90 */ bnez $v0, .LE00142A4
/* 32E8F4 E0014464 2631004C */ addiu $s1, $s1, 0x4c
.LE0014468:
/* 32E8F8 E0014468 16400003 */ bnez $s2, .LE0014478
/* 32E8FC E001446C 00000000 */ nop
/* 32E900 E0014470 0C080128 */ jal func_E02004A0
/* 32E904 E0014474 0280202D */ daddu $a0, $s4, $zero
.LE0014478:
/* 32E908 E0014478 8FBF0024 */ lw $ra, 0x24($sp)
/* 32E90C E001447C 8FB40020 */ lw $s4, 0x20($sp)
/* 32E910 E0014480 8FB3001C */ lw $s3, 0x1c($sp)
/* 32E914 E0014484 8FB20018 */ lw $s2, 0x18($sp)
/* 32E918 E0014488 8FB10014 */ lw $s1, 0x14($sp)
/* 32E91C E001448C 8FB00010 */ lw $s0, 0x10($sp)
/* 32E920 E0014490 D7B40028 */ ldc1 $f20, 0x28($sp)
/* 32E924 E0014494 03E00008 */ jr $ra
/* 32E928 E0014498 27BD0030 */ addiu $sp, $sp, 0x30