mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 17:02:46 +01:00
366 lines
17 KiB
ArmAsm
366 lines
17 KiB
ArmAsm
|
.set noat # allow manual use of $at
|
||
|
.set noreorder # don't insert nops after branches
|
||
|
|
||
|
|
||
|
glabel load_hit_data
|
||
|
/* 03663C 8005B23C 27BDFF90 */ addiu $sp, $sp, -0x70
|
||
|
/* 036640 8005B240 AFB60038 */ sw $s6, 0x38($sp)
|
||
|
/* 036644 8005B244 0000B02D */ daddu $s6, $zero, $zero
|
||
|
/* 036648 8005B248 AFBE0040 */ sw $fp, 0x40($sp)
|
||
|
/* 03664C 8005B24C 02C0F02D */ daddu $fp, $s6, $zero
|
||
|
/* 036650 8005B250 AFBF0044 */ sw $ra, 0x44($sp)
|
||
|
/* 036654 8005B254 AFB7003C */ sw $s7, 0x3c($sp)
|
||
|
/* 036658 8005B258 AFB50034 */ sw $s5, 0x34($sp)
|
||
|
/* 03665C 8005B25C AFB40030 */ sw $s4, 0x30($sp)
|
||
|
/* 036660 8005B260 AFB3002C */ sw $s3, 0x2c($sp)
|
||
|
/* 036664 8005B264 AFB20028 */ sw $s2, 0x28($sp)
|
||
|
/* 036668 8005B268 AFB10024 */ sw $s1, 0x24($sp)
|
||
|
/* 03666C 8005B26C AFB00020 */ sw $s0, 0x20($sp)
|
||
|
/* 036670 8005B270 F7BC0068 */ sdc1 $f28, 0x68($sp)
|
||
|
/* 036674 8005B274 F7BA0060 */ sdc1 $f26, 0x60($sp)
|
||
|
/* 036678 8005B278 F7B80058 */ sdc1 $f24, 0x58($sp)
|
||
|
/* 03667C 8005B27C F7B60050 */ sdc1 $f22, 0x50($sp)
|
||
|
/* 036680 8005B280 F7B40048 */ sdc1 $f20, 0x48($sp)
|
||
|
/* 036684 8005B284 AFA40070 */ sw $a0, 0x70($sp)
|
||
|
/* 036688 8005B288 0C016AFA */ jal get_current_map_header
|
||
|
/* 03668C 8005B28C AFA50074 */ sw $a1, 0x74($sp)
|
||
|
/* 036690 8005B290 8FA80070 */ lw $t0, 0x70($sp)
|
||
|
/* 036694 8005B294 11000006 */ beqz $t0, .L8005B2B0
|
||
|
/* 036698 8005B298 0040182D */ daddu $v1, $v0, $zero
|
||
|
/* 03669C 8005B29C 24020001 */ addiu $v0, $zero, 1
|
||
|
/* 0366A0 8005B2A0 1102000B */ beq $t0, $v0, .L8005B2D0
|
||
|
/* 0366A4 8005B2A4 0000A02D */ daddu $s4, $zero, $zero
|
||
|
/* 0366A8 8005B2A8 08016CBC */ j .L8005B2F0
|
||
|
/* 0366AC 8005B2AC 00000000 */ nop
|
||
|
|
||
|
.L8005B2B0:
|
||
|
/* 0366B0 8005B2B0 8C620004 */ lw $v0, 4($v1)
|
||
|
/* 0366B4 8005B2B4 10400121 */ beqz $v0, .L8005B73C
|
||
|
/* 0366B8 8005B2B8 00000000 */ nop
|
||
|
/* 0366BC 8005B2BC 8FA80074 */ lw $t0, 0x74($sp)
|
||
|
/* 0366C0 8005B2C0 3C1E800B */ lui $fp, 0x800b
|
||
|
/* 0366C4 8005B2C4 27DE42E0 */ addiu $fp, $fp, 0x42e0
|
||
|
/* 0366C8 8005B2C8 08016CBB */ j .L8005B2EC
|
||
|
/* 0366CC 8005B2CC 0102B021 */ addu $s6, $t0, $v0
|
||
|
|
||
|
.L8005B2D0:
|
||
|
/* 0366D0 8005B2D0 8C620008 */ lw $v0, 8($v1)
|
||
|
/* 0366D4 8005B2D4 10400119 */ beqz $v0, .L8005B73C
|
||
|
/* 0366D8 8005B2D8 00000000 */ nop
|
||
|
/* 0366DC 8005B2DC 8FA80074 */ lw $t0, 0x74($sp)
|
||
|
/* 0366E0 8005B2E0 0102B021 */ addu $s6, $t0, $v0
|
||
|
/* 0366E4 8005B2E4 3C1E800E */ lui $fp, 0x800e
|
||
|
/* 0366E8 8005B2E8 27DE91D0 */ addiu $fp, $fp, -0x6e30
|
||
|
.L8005B2EC:
|
||
|
/* 0366EC 8005B2EC 0000A02D */ daddu $s4, $zero, $zero
|
||
|
.L8005B2F0:
|
||
|
/* 0366F0 8005B2F0 8EC20014 */ lw $v0, 0x14($s6)
|
||
|
/* 0366F4 8005B2F4 8FA80074 */ lw $t0, 0x74($sp)
|
||
|
/* 0366F8 8005B2F8 86C40010 */ lh $a0, 0x10($s6)
|
||
|
/* 0366FC 8005B2FC 01028021 */ addu $s0, $t0, $v0
|
||
|
/* 036700 8005B300 0C00AB6C */ jal collision_heap_malloc
|
||
|
/* 036704 8005B304 00042080 */ sll $a0, $a0, 2
|
||
|
/* 036708 8005B308 AFC20008 */ sw $v0, 8($fp)
|
||
|
/* 03670C 8005B30C 86C30010 */ lh $v1, 0x10($s6)
|
||
|
/* 036710 8005B310 18600009 */ blez $v1, .L8005B338
|
||
|
/* 036714 8005B314 0040202D */ daddu $a0, $v0, $zero
|
||
|
.L8005B318:
|
||
|
/* 036718 8005B318 8E020000 */ lw $v0, ($s0)
|
||
|
/* 03671C 8005B31C 26100004 */ addiu $s0, $s0, 4
|
||
|
/* 036720 8005B320 26940001 */ addiu $s4, $s4, 1
|
||
|
/* 036724 8005B324 AC820000 */ sw $v0, ($a0)
|
||
|
/* 036728 8005B328 86C20010 */ lh $v0, 0x10($s6)
|
||
|
/* 03672C 8005B32C 0282102A */ slt $v0, $s4, $v0
|
||
|
/* 036730 8005B330 1440FFF9 */ bnez $v0, .L8005B318
|
||
|
/* 036734 8005B334 24840004 */ addiu $a0, $a0, 4
|
||
|
.L8005B338:
|
||
|
/* 036738 8005B338 0000A02D */ daddu $s4, $zero, $zero
|
||
|
/* 03673C 8005B33C 8EC2000C */ lw $v0, 0xc($s6)
|
||
|
/* 036740 8005B340 8FA80074 */ lw $t0, 0x74($sp)
|
||
|
/* 036744 8005B344 86C30008 */ lh $v1, 8($s6)
|
||
|
/* 036748 8005B348 01028021 */ addu $s0, $t0, $v0
|
||
|
/* 03674C 8005B34C 00032040 */ sll $a0, $v1, 1
|
||
|
/* 036750 8005B350 00832021 */ addu $a0, $a0, $v1
|
||
|
/* 036754 8005B354 0C00AB6C */ jal collision_heap_malloc
|
||
|
/* 036758 8005B358 00042080 */ sll $a0, $a0, 2
|
||
|
/* 03675C 8005B35C AFC20000 */ sw $v0, ($fp)
|
||
|
/* 036760 8005B360 86C30008 */ lh $v1, 8($s6)
|
||
|
/* 036764 8005B364 1860001A */ blez $v1, .L8005B3D0
|
||
|
/* 036768 8005B368 0040282D */ daddu $a1, $v0, $zero
|
||
|
/* 03676C 8005B36C 26040004 */ addiu $a0, $s0, 4
|
||
|
/* 036770 8005B370 24A30008 */ addiu $v1, $a1, 8
|
||
|
.L8005B374:
|
||
|
/* 036774 8005B374 86020000 */ lh $v0, ($s0)
|
||
|
/* 036778 8005B378 26100006 */ addiu $s0, $s0, 6
|
||
|
/* 03677C 8005B37C 26940001 */ addiu $s4, $s4, 1
|
||
|
/* 036780 8005B380 44820000 */ mtc1 $v0, $f0
|
||
|
/* 036784 8005B384 00000000 */ nop
|
||
|
/* 036788 8005B388 46800020 */ cvt.s.w $f0, $f0
|
||
|
/* 03678C 8005B38C E4A00000 */ swc1 $f0, ($a1)
|
||
|
/* 036790 8005B390 8482FFFE */ lh $v0, -2($a0)
|
||
|
/* 036794 8005B394 24A5000C */ addiu $a1, $a1, 0xc
|
||
|
/* 036798 8005B398 44820000 */ mtc1 $v0, $f0
|
||
|
/* 03679C 8005B39C 00000000 */ nop
|
||
|
/* 0367A0 8005B3A0 46800020 */ cvt.s.w $f0, $f0
|
||
|
/* 0367A4 8005B3A4 E460FFFC */ swc1 $f0, -4($v1)
|
||
|
/* 0367A8 8005B3A8 84820000 */ lh $v0, ($a0)
|
||
|
/* 0367AC 8005B3AC 24840006 */ addiu $a0, $a0, 6
|
||
|
/* 0367B0 8005B3B0 44820000 */ mtc1 $v0, $f0
|
||
|
/* 0367B4 8005B3B4 00000000 */ nop
|
||
|
/* 0367B8 8005B3B8 46800020 */ cvt.s.w $f0, $f0
|
||
|
/* 0367BC 8005B3BC E4600000 */ swc1 $f0, ($v1)
|
||
|
/* 0367C0 8005B3C0 86C20008 */ lh $v0, 8($s6)
|
||
|
/* 0367C4 8005B3C4 0282102A */ slt $v0, $s4, $v0
|
||
|
/* 0367C8 8005B3C8 1440FFEA */ bnez $v0, .L8005B374
|
||
|
/* 0367CC 8005B3CC 2463000C */ addiu $v1, $v1, 0xc
|
||
|
.L8005B3D0:
|
||
|
/* 0367D0 8005B3D0 8EC20004 */ lw $v0, 4($s6)
|
||
|
/* 0367D4 8005B3D4 8FA80074 */ lw $t0, 0x74($sp)
|
||
|
/* 0367D8 8005B3D8 86C30000 */ lh $v1, ($s6)
|
||
|
/* 0367DC 8005B3DC 01021021 */ addu $v0, $t0, $v0
|
||
|
/* 0367E0 8005B3E0 000320C0 */ sll $a0, $v1, 3
|
||
|
/* 0367E4 8005B3E4 00832023 */ subu $a0, $a0, $v1
|
||
|
/* 0367E8 8005B3E8 00042080 */ sll $a0, $a0, 2
|
||
|
/* 0367EC 8005B3EC 0C00AB6C */ jal collision_heap_malloc
|
||
|
/* 0367F0 8005B3F0 AFA20010 */ sw $v0, 0x10($sp)
|
||
|
/* 0367F4 8005B3F4 AFC20004 */ sw $v0, 4($fp)
|
||
|
/* 0367F8 8005B3F8 96C30000 */ lhu $v1, ($s6)
|
||
|
/* 0367FC 8005B3FC 0000A02D */ daddu $s4, $zero, $zero
|
||
|
/* 036800 8005B400 A7C3000C */ sh $v1, 0xc($fp)
|
||
|
/* 036804 8005B404 86C30000 */ lh $v1, ($s6)
|
||
|
/* 036808 8005B408 186000CC */ blez $v1, .L8005B73C
|
||
|
/* 03680C 8005B40C 0040382D */ daddu $a3, $v0, $zero
|
||
|
/* 036810 8005B410 24F20010 */ addiu $s2, $a3, 0x10
|
||
|
/* 036814 8005B414 8FA80010 */ lw $t0, 0x10($sp)
|
||
|
/* 036818 8005B418 3C013F80 */ lui $at, 0x3f80
|
||
|
/* 03681C 8005B41C 4481D000 */ mtc1 $at, $f26
|
||
|
/* 036820 8005B420 4480E000 */ mtc1 $zero, $f28
|
||
|
/* 036824 8005B424 25130006 */ addiu $s3, $t0, 6
|
||
|
.L8005B428:
|
||
|
/* 036828 8005B428 ACE00000 */ sw $zero, ($a3)
|
||
|
/* 03682C 8005B42C 9662FFFC */ lhu $v0, -4($s3)
|
||
|
/* 036830 8005B430 A642FFF4 */ sh $v0, -0xc($s2)
|
||
|
/* 036834 8005B434 9662FFFE */ lhu $v0, -2($s3)
|
||
|
/* 036838 8005B438 A642FFF6 */ sh $v0, -0xa($s2)
|
||
|
/* 03683C 8005B43C 96620000 */ lhu $v0, ($s3)
|
||
|
/* 036840 8005B440 A642FFFA */ sh $v0, -6($s2)
|
||
|
/* 036844 8005B444 00021400 */ sll $v0, $v0, 0x10
|
||
|
/* 036848 8005B448 504000B3 */ beql $v0, $zero, .L8005B718
|
||
|
/* 03684C 8005B44C 2673000C */ addiu $s3, $s3, 0xc
|
||
|
/* 036850 8005B450 86640000 */ lh $a0, ($s3)
|
||
|
/* 036854 8005B454 AFA70018 */ sw $a3, 0x18($sp)
|
||
|
/* 036858 8005B458 0C00AB6C */ jal collision_heap_malloc
|
||
|
/* 03685C 8005B45C 00042180 */ sll $a0, $a0, 6
|
||
|
/* 036860 8005B460 0040B82D */ daddu $s7, $v0, $zero
|
||
|
/* 036864 8005B464 AE57FFFC */ sw $s7, -4($s2)
|
||
|
/* 036868 8005B468 8FA80010 */ lw $t0, 0x10($sp)
|
||
|
/* 03686C 8005B46C 85020000 */ lh $v0, ($t0)
|
||
|
/* 036870 8005B470 8FA70018 */ lw $a3, 0x18($sp)
|
||
|
/* 036874 8005B474 04410003 */ bgez $v0, .L8005B484
|
||
|
/* 036878 8005B478 00021080 */ sll $v0, $v0, 2
|
||
|
/* 03687C 8005B47C 08016D41 */ j .L8005B504
|
||
|
/* 036880 8005B480 AE400000 */ sw $zero, ($s2)
|
||
|
|
||
|
.L8005B484:
|
||
|
/* 036884 8005B484 8FC30008 */ lw $v1, 8($fp)
|
||
|
/* 036888 8005B488 00621821 */ addu $v1, $v1, $v0
|
||
|
/* 03688C 8005B48C AE430000 */ sw $v1, ($s2)
|
||
|
/* 036890 8005B490 8FA80070 */ lw $t0, 0x70($sp)
|
||
|
/* 036894 8005B494 1500001C */ bnez $t0, .L8005B508
|
||
|
/* 036898 8005B498 0000A82D */ daddu $s5, $zero, $zero
|
||
|
/* 03689C 8005B49C C4600000 */ lwc1 $f0, ($v1)
|
||
|
/* 0368A0 8005B4A0 461A0001 */ sub.s $f0, $f0, $f26
|
||
|
/* 0368A4 8005B4A4 E4600000 */ swc1 $f0, ($v1)
|
||
|
/* 0368A8 8005B4A8 8E420000 */ lw $v0, ($s2)
|
||
|
/* 0368AC 8005B4AC C4400004 */ lwc1 $f0, 4($v0)
|
||
|
/* 0368B0 8005B4B0 461A0001 */ sub.s $f0, $f0, $f26
|
||
|
/* 0368B4 8005B4B4 E4400004 */ swc1 $f0, 4($v0)
|
||
|
/* 0368B8 8005B4B8 8E420000 */ lw $v0, ($s2)
|
||
|
/* 0368BC 8005B4BC C4400008 */ lwc1 $f0, 8($v0)
|
||
|
/* 0368C0 8005B4C0 461A0001 */ sub.s $f0, $f0, $f26
|
||
|
/* 0368C4 8005B4C4 E4400008 */ swc1 $f0, 8($v0)
|
||
|
/* 0368C8 8005B4C8 8E420000 */ lw $v0, ($s2)
|
||
|
/* 0368CC 8005B4CC C440000C */ lwc1 $f0, 0xc($v0)
|
||
|
/* 0368D0 8005B4D0 461A0000 */ add.s $f0, $f0, $f26
|
||
|
/* 0368D4 8005B4D4 E440000C */ swc1 $f0, 0xc($v0)
|
||
|
/* 0368D8 8005B4D8 8E420000 */ lw $v0, ($s2)
|
||
|
/* 0368DC 8005B4DC C4400010 */ lwc1 $f0, 0x10($v0)
|
||
|
/* 0368E0 8005B4E0 461A0000 */ add.s $f0, $f0, $f26
|
||
|
/* 0368E4 8005B4E4 E4400010 */ swc1 $f0, 0x10($v0)
|
||
|
/* 0368E8 8005B4E8 8E420000 */ lw $v0, ($s2)
|
||
|
/* 0368EC 8005B4EC C4400014 */ lwc1 $f0, 0x14($v0)
|
||
|
/* 0368F0 8005B4F0 461A0000 */ add.s $f0, $f0, $f26
|
||
|
/* 0368F4 8005B4F4 E4400014 */ swc1 $f0, 0x14($v0)
|
||
|
/* 0368F8 8005B4F8 8E420000 */ lw $v0, ($s2)
|
||
|
/* 0368FC 8005B4FC 8C420018 */ lw $v0, 0x18($v0)
|
||
|
/* 036900 8005B500 ACE20000 */ sw $v0, ($a3)
|
||
|
.L8005B504:
|
||
|
/* 036904 8005B504 0000A82D */ daddu $s5, $zero, $zero
|
||
|
.L8005B508:
|
||
|
/* 036908 8005B508 8E620002 */ lw $v0, 2($s3)
|
||
|
/* 03690C 8005B50C 8FA80074 */ lw $t0, 0x74($sp)
|
||
|
/* 036910 8005B510 86630000 */ lh $v1, ($s3)
|
||
|
/* 036914 8005B514 1860007F */ blez $v1, .L8005B714
|
||
|
/* 036918 8005B518 01028821 */ addu $s1, $t0, $v0
|
||
|
/* 03691C 8005B51C 26F00038 */ addiu $s0, $s7, 0x38
|
||
|
.L8005B520:
|
||
|
/* 036920 8005B520 8E230000 */ lw $v1, ($s1)
|
||
|
/* 036924 8005B524 8FC40000 */ lw $a0, ($fp)
|
||
|
/* 036928 8005B528 306303FF */ andi $v1, $v1, 0x3ff
|
||
|
/* 03692C 8005B52C 00031040 */ sll $v0, $v1, 1
|
||
|
/* 036930 8005B530 00431021 */ addu $v0, $v0, $v1
|
||
|
/* 036934 8005B534 00021080 */ sll $v0, $v0, 2
|
||
|
/* 036938 8005B538 00822021 */ addu $a0, $a0, $v0
|
||
|
/* 03693C 8005B53C AEE40000 */ sw $a0, ($s7)
|
||
|
/* 036940 8005B540 8E220000 */ lw $v0, ($s1)
|
||
|
/* 036944 8005B544 8FC60000 */ lw $a2, ($fp)
|
||
|
/* 036948 8005B548 00021283 */ sra $v0, $v0, 0xa
|
||
|
/* 03694C 8005B54C 304203FF */ andi $v0, $v0, 0x3ff
|
||
|
/* 036950 8005B550 00021840 */ sll $v1, $v0, 1
|
||
|
/* 036954 8005B554 00621821 */ addu $v1, $v1, $v0
|
||
|
/* 036958 8005B558 00031880 */ sll $v1, $v1, 2
|
||
|
/* 03695C 8005B55C 00C33021 */ addu $a2, $a2, $v1
|
||
|
/* 036960 8005B560 AE06FFCC */ sw $a2, -0x34($s0)
|
||
|
/* 036964 8005B564 8E220000 */ lw $v0, ($s1)
|
||
|
/* 036968 8005B568 8FC50000 */ lw $a1, ($fp)
|
||
|
/* 03696C 8005B56C 00021503 */ sra $v0, $v0, 0x14
|
||
|
/* 036970 8005B570 304203FF */ andi $v0, $v0, 0x3ff
|
||
|
/* 036974 8005B574 00021840 */ sll $v1, $v0, 1
|
||
|
/* 036978 8005B578 00621821 */ addu $v1, $v1, $v0
|
||
|
/* 03697C 8005B57C 00031880 */ sll $v1, $v1, 2
|
||
|
/* 036980 8005B580 00A32821 */ addu $a1, $a1, $v1
|
||
|
/* 036984 8005B584 AE05FFD0 */ sw $a1, -0x30($s0)
|
||
|
/* 036988 8005B588 8E220000 */ lw $v0, ($s1)
|
||
|
/* 03698C 8005B58C 00021783 */ sra $v0, $v0, 0x1e
|
||
|
/* 036990 8005B590 30420001 */ andi $v0, $v0, 1
|
||
|
/* 036994 8005B594 A6020004 */ sh $v0, 4($s0)
|
||
|
/* 036998 8005B598 C4A00000 */ lwc1 $f0, ($a1)
|
||
|
/* 03699C 8005B59C C4820000 */ lwc1 $f2, ($a0)
|
||
|
/* 0369A0 8005B5A0 46020001 */ sub.s $f0, $f0, $f2
|
||
|
/* 0369A4 8005B5A4 E600FFD4 */ swc1 $f0, -0x2c($s0)
|
||
|
/* 0369A8 8005B5A8 C4A00004 */ lwc1 $f0, 4($a1)
|
||
|
/* 0369AC 8005B5AC C4820004 */ lwc1 $f2, 4($a0)
|
||
|
/* 0369B0 8005B5B0 46020001 */ sub.s $f0, $f0, $f2
|
||
|
/* 0369B4 8005B5B4 E600FFD8 */ swc1 $f0, -0x28($s0)
|
||
|
/* 0369B8 8005B5B8 C4A00008 */ lwc1 $f0, 8($a1)
|
||
|
/* 0369BC 8005B5BC C4820008 */ lwc1 $f2, 8($a0)
|
||
|
/* 0369C0 8005B5C0 46020001 */ sub.s $f0, $f0, $f2
|
||
|
/* 0369C4 8005B5C4 E600FFDC */ swc1 $f0, -0x24($s0)
|
||
|
/* 0369C8 8005B5C8 C4800000 */ lwc1 $f0, ($a0)
|
||
|
/* 0369CC 8005B5CC C4C20000 */ lwc1 $f2, ($a2)
|
||
|
/* 0369D0 8005B5D0 46020001 */ sub.s $f0, $f0, $f2
|
||
|
/* 0369D4 8005B5D4 E600FFE0 */ swc1 $f0, -0x20($s0)
|
||
|
/* 0369D8 8005B5D8 C4800004 */ lwc1 $f0, 4($a0)
|
||
|
/* 0369DC 8005B5DC C4C20004 */ lwc1 $f2, 4($a2)
|
||
|
/* 0369E0 8005B5E0 46020001 */ sub.s $f0, $f0, $f2
|
||
|
/* 0369E4 8005B5E4 E600FFE4 */ swc1 $f0, -0x1c($s0)
|
||
|
/* 0369E8 8005B5E8 C4800008 */ lwc1 $f0, 8($a0)
|
||
|
/* 0369EC 8005B5EC C4C20008 */ lwc1 $f2, 8($a2)
|
||
|
/* 0369F0 8005B5F0 46020001 */ sub.s $f0, $f0, $f2
|
||
|
/* 0369F4 8005B5F4 E600FFE8 */ swc1 $f0, -0x18($s0)
|
||
|
/* 0369F8 8005B5F8 C4C00000 */ lwc1 $f0, ($a2)
|
||
|
/* 0369FC 8005B5FC C4A20000 */ lwc1 $f2, ($a1)
|
||
|
/* 036A00 8005B600 46020001 */ sub.s $f0, $f0, $f2
|
||
|
/* 036A04 8005B604 E600FFEC */ swc1 $f0, -0x14($s0)
|
||
|
/* 036A08 8005B608 C4C00004 */ lwc1 $f0, 4($a2)
|
||
|
/* 036A0C 8005B60C C4A20004 */ lwc1 $f2, 4($a1)
|
||
|
/* 036A10 8005B610 46020001 */ sub.s $f0, $f0, $f2
|
||
|
/* 036A14 8005B614 E600FFF0 */ swc1 $f0, -0x10($s0)
|
||
|
/* 036A18 8005B618 C60AFFD8 */ lwc1 $f10, -0x28($s0)
|
||
|
/* 036A1C 8005B61C C608FFE8 */ lwc1 $f8, -0x18($s0)
|
||
|
/* 036A20 8005B620 46085382 */ mul.s $f14, $f10, $f8
|
||
|
/* 036A24 8005B624 00000000 */ nop
|
||
|
/* 036A28 8005B628 C606FFDC */ lwc1 $f6, -0x24($s0)
|
||
|
/* 036A2C 8005B62C C604FFE4 */ lwc1 $f4, -0x1c($s0)
|
||
|
/* 036A30 8005B630 46043302 */ mul.s $f12, $f6, $f4
|
||
|
/* 036A34 8005B634 00000000 */ nop
|
||
|
/* 036A38 8005B638 C602FFE0 */ lwc1 $f2, -0x20($s0)
|
||
|
/* 036A3C 8005B63C 46023182 */ mul.s $f6, $f6, $f2
|
||
|
/* 036A40 8005B640 00000000 */ nop
|
||
|
/* 036A44 8005B644 C600FFD4 */ lwc1 $f0, -0x2c($s0)
|
||
|
/* 036A48 8005B648 46080202 */ mul.s $f8, $f0, $f8
|
||
|
/* 036A4C 8005B64C 00000000 */ nop
|
||
|
/* 036A50 8005B650 46040002 */ mul.s $f0, $f0, $f4
|
||
|
/* 036A54 8005B654 00000000 */ nop
|
||
|
/* 036A58 8005B658 46025282 */ mul.s $f10, $f10, $f2
|
||
|
/* 036A5C 8005B65C 00000000 */ nop
|
||
|
/* 036A60 8005B660 460C7601 */ sub.s $f24, $f14, $f12
|
||
|
/* 036A64 8005B664 4618C102 */ mul.s $f4, $f24, $f24
|
||
|
/* 036A68 8005B668 00000000 */ nop
|
||
|
/* 036A6C 8005B66C 46083501 */ sub.s $f20, $f6, $f8
|
||
|
/* 036A70 8005B670 4614A182 */ mul.s $f6, $f20, $f20
|
||
|
/* 036A74 8005B674 00000000 */ nop
|
||
|
/* 036A78 8005B678 460A0581 */ sub.s $f22, $f0, $f10
|
||
|
/* 036A7C 8005B67C 4616B202 */ mul.s $f8, $f22, $f22
|
||
|
/* 036A80 8005B680 00000000 */ nop
|
||
|
/* 036A84 8005B684 C4C20008 */ lwc1 $f2, 8($a2)
|
||
|
/* 036A88 8005B688 C4A00008 */ lwc1 $f0, 8($a1)
|
||
|
/* 036A8C 8005B68C 46001081 */ sub.s $f2, $f2, $f0
|
||
|
/* 036A90 8005B690 46062100 */ add.s $f4, $f4, $f6
|
||
|
/* 036A94 8005B694 46082300 */ add.s $f12, $f4, $f8
|
||
|
/* 036A98 8005B698 461C6032 */ c.eq.s $f12, $f28
|
||
|
/* 036A9C 8005B69C 00000000 */ nop
|
||
|
/* 036AA0 8005B6A0 4501000B */ bc1t .L8005B6D0
|
||
|
/* 036AA4 8005B6A4 E602FFF4 */ swc1 $f2, -0xc($s0)
|
||
|
/* 036AA8 8005B6A8 46006004 */ sqrt.s $f0, $f12
|
||
|
/* 036AAC 8005B6AC 46000032 */ c.eq.s $f0, $f0
|
||
|
/* 036AB0 8005B6B0 00000000 */ nop
|
||
|
/* 036AB4 8005B6B4 45030007 */ bc1tl .L8005B6D4
|
||
|
/* 036AB8 8005B6B8 4600D303 */ div.s $f12, $f26, $f0
|
||
|
/* 036ABC 8005B6BC 0C0187BC */ jal sqrtf
|
||
|
/* 036AC0 8005B6C0 AFA70018 */ sw $a3, 0x18($sp)
|
||
|
/* 036AC4 8005B6C4 8FA70018 */ lw $a3, 0x18($sp)
|
||
|
/* 036AC8 8005B6C8 08016DB5 */ j .L8005B6D4
|
||
|
/* 036ACC 8005B6CC 4600D303 */ div.s $f12, $f26, $f0
|
||
|
|
||
|
.L8005B6D0:
|
||
|
/* 036AD0 8005B6D0 4600E306 */ mov.s $f12, $f28
|
||
|
.L8005B6D4:
|
||
|
/* 036AD4 8005B6D4 460CC082 */ mul.s $f2, $f24, $f12
|
||
|
/* 036AD8 8005B6D8 00000000 */ nop
|
||
|
/* 036ADC 8005B6DC 460CA102 */ mul.s $f4, $f20, $f12
|
||
|
/* 036AE0 8005B6E0 00000000 */ nop
|
||
|
/* 036AE4 8005B6E4 26310004 */ addiu $s1, $s1, 4
|
||
|
/* 036AE8 8005B6E8 460CB002 */ mul.s $f0, $f22, $f12
|
||
|
/* 036AEC 8005B6EC 00000000 */ nop
|
||
|
/* 036AF0 8005B6F0 26F70040 */ addiu $s7, $s7, 0x40
|
||
|
/* 036AF4 8005B6F4 26B50001 */ addiu $s5, $s5, 1
|
||
|
/* 036AF8 8005B6F8 E602FFF8 */ swc1 $f2, -8($s0)
|
||
|
/* 036AFC 8005B6FC E604FFFC */ swc1 $f4, -4($s0)
|
||
|
/* 036B00 8005B700 E6000000 */ swc1 $f0, ($s0)
|
||
|
/* 036B04 8005B704 86620000 */ lh $v0, ($s3)
|
||
|
/* 036B08 8005B708 02A2102A */ slt $v0, $s5, $v0
|
||
|
/* 036B0C 8005B70C 1440FF84 */ bnez $v0, .L8005B520
|
||
|
/* 036B10 8005B710 26100040 */ addiu $s0, $s0, 0x40
|
||
|
.L8005B714:
|
||
|
/* 036B14 8005B714 2673000C */ addiu $s3, $s3, 0xc
|
||
|
.L8005B718:
|
||
|
/* 036B18 8005B718 2652001C */ addiu $s2, $s2, 0x1c
|
||
|
/* 036B1C 8005B71C 8FA80010 */ lw $t0, 0x10($sp)
|
||
|
/* 036B20 8005B720 2508000C */ addiu $t0, $t0, 0xc
|
||
|
/* 036B24 8005B724 AFA80010 */ sw $t0, 0x10($sp)
|
||
|
/* 036B28 8005B728 86C20000 */ lh $v0, ($s6)
|
||
|
/* 036B2C 8005B72C 26940001 */ addiu $s4, $s4, 1
|
||
|
/* 036B30 8005B730 0282102A */ slt $v0, $s4, $v0
|
||
|
/* 036B34 8005B734 1440FF3C */ bnez $v0, .L8005B428
|
||
|
/* 036B38 8005B738 24E7001C */ addiu $a3, $a3, 0x1c
|
||
|
.L8005B73C:
|
||
|
/* 036B3C 8005B73C 8FBF0044 */ lw $ra, 0x44($sp)
|
||
|
/* 036B40 8005B740 8FBE0040 */ lw $fp, 0x40($sp)
|
||
|
/* 036B44 8005B744 8FB7003C */ lw $s7, 0x3c($sp)
|
||
|
/* 036B48 8005B748 8FB60038 */ lw $s6, 0x38($sp)
|
||
|
/* 036B4C 8005B74C 8FB50034 */ lw $s5, 0x34($sp)
|
||
|
/* 036B50 8005B750 8FB40030 */ lw $s4, 0x30($sp)
|
||
|
/* 036B54 8005B754 8FB3002C */ lw $s3, 0x2c($sp)
|
||
|
/* 036B58 8005B758 8FB20028 */ lw $s2, 0x28($sp)
|
||
|
/* 036B5C 8005B75C 8FB10024 */ lw $s1, 0x24($sp)
|
||
|
/* 036B60 8005B760 8FB00020 */ lw $s0, 0x20($sp)
|
||
|
/* 036B64 8005B764 D7BC0068 */ ldc1 $f28, 0x68($sp)
|
||
|
/* 036B68 8005B768 D7BA0060 */ ldc1 $f26, 0x60($sp)
|
||
|
/* 036B6C 8005B76C D7B80058 */ ldc1 $f24, 0x58($sp)
|
||
|
/* 036B70 8005B770 D7B60050 */ ldc1 $f22, 0x50($sp)
|
||
|
/* 036B74 8005B774 D7B40048 */ ldc1 $f20, 0x48($sp)
|
||
|
/* 036B78 8005B778 03E00008 */ jr $ra
|
||
|
/* 036B7C 8005B77C 27BD0070 */ addiu $sp, $sp, 0x70
|
||
|
|