papermario/asm/nonmatchings/code_364300/func_E0062000.s
2021-01-13 00:42:27 +09:00

147 lines
7.6 KiB
ArmAsm
Generated

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_E0062000
/* 364300 E0062000 27BDFF90 */ addiu $sp, $sp, -0x70
/* 364304 E0062004 F7B40048 */ sdc1 $f20, 0x48($sp)
/* 364308 E0062008 4485A000 */ mtc1 $a1, $f20
/* 36430C E006200C AFB1002C */ sw $s1, 0x2c($sp)
/* 364310 E0062010 0080882D */ daddu $s1, $a0, $zero
/* 364314 E0062014 F7B60050 */ sdc1 $f22, 0x50($sp)
/* 364318 E0062018 4486B000 */ mtc1 $a2, $f22
/* 36431C E006201C 27A40010 */ addiu $a0, $sp, 0x10
/* 364320 E0062020 F7B80058 */ sdc1 $f24, 0x58($sp)
/* 364324 E0062024 4487C000 */ mtc1 $a3, $f24
/* 364328 E0062028 3C02E006 */ lui $v0, %hi(func_E0062218)
/* 36432C E006202C 24422218 */ addiu $v0, $v0, %lo(func_E0062218)
/* 364330 E0062030 AFA20018 */ sw $v0, 0x18($sp)
/* 364334 E0062034 3C02E006 */ lui $v0, %hi(func_E0062220)
/* 364338 E0062038 24422220 */ addiu $v0, $v0, %lo(func_E0062220)
/* 36433C E006203C AFA2001C */ sw $v0, 0x1c($sp)
/* 364340 E0062040 3C02E006 */ lui $v0, %hi(func_E00624A8)
/* 364344 E0062044 244224A8 */ addiu $v0, $v0, %lo(func_E00624A8)
/* 364348 E0062048 AFA20020 */ sw $v0, 0x20($sp)
/* 36434C E006204C 24020031 */ addiu $v0, $zero, 0x31
/* 364350 E0062050 AFBF0040 */ sw $ra, 0x40($sp)
/* 364354 E0062054 AFB5003C */ sw $s5, 0x3c($sp)
/* 364358 E0062058 AFB40038 */ sw $s4, 0x38($sp)
/* 36435C E006205C AFB30034 */ sw $s3, 0x34($sp)
/* 364360 E0062060 AFB20030 */ sw $s2, 0x30($sp)
/* 364364 E0062064 AFB00028 */ sw $s0, 0x28($sp)
/* 364368 E0062068 F7BC0068 */ sdc1 $f28, 0x68($sp)
/* 36436C E006206C F7BA0060 */ sdc1 $f26, 0x60($sp)
/* 364370 E0062070 AFA00010 */ sw $zero, 0x10($sp)
/* 364374 E0062074 AFA00024 */ sw $zero, 0x24($sp)
/* 364378 E0062078 0C080124 */ jal func_E0200490
/* 36437C E006207C AFA20014 */ sw $v0, 0x14($sp)
/* 364380 E0062080 24040200 */ addiu $a0, $zero, 0x200
/* 364384 E0062084 24150008 */ addiu $s5, $zero, 8
/* 364388 E0062088 0040A02D */ daddu $s4, $v0, $zero
/* 36438C E006208C 0C08012C */ jal func_E02004B0
/* 364390 E0062090 AE950008 */ sw $s5, 8($s4)
/* 364394 E0062094 0040802D */ daddu $s0, $v0, $zero
/* 364398 E0062098 16000003 */ bnez $s0, .LE00620A8
/* 36439C E006209C AE90000C */ sw $s0, 0xc($s4)
.LE00620A0:
/* 3643A0 E00620A0 08018828 */ j .LE00620A0
/* 3643A4 E00620A4 00000000 */ nop
.LE00620A8:
/* 3643A8 E00620A8 0200202D */ daddu $a0, $s0, $zero
/* 3643AC E00620AC 0C080130 */ jal func_E02004C0
/* 3643B0 E00620B0 00152980 */ sll $a1, $s5, 6
/* 3643B4 E00620B4 2402001E */ addiu $v0, $zero, 0x1e
/* 3643B8 E00620B8 AE020024 */ sw $v0, 0x24($s0)
/* 3643BC E00620BC 240200FF */ addiu $v0, $zero, 0xff
/* 3643C0 E00620C0 AE000028 */ sw $zero, 0x28($s0)
/* 3643C4 E00620C4 A6110000 */ sh $s1, ($s0)
/* 3643C8 E00620C8 E6140004 */ swc1 $f20, 4($s0)
/* 3643CC E00620CC E6160008 */ swc1 $f22, 8($s0)
/* 3643D0 E00620D0 E618000C */ swc1 $f24, 0xc($s0)
/* 3643D4 E00620D4 16200009 */ bnez $s1, .LE00620FC
/* 3643D8 E00620D8 AE020034 */ sw $v0, 0x34($s0)
/* 3643DC E00620DC 24020014 */ addiu $v0, $zero, 0x14
/* 3643E0 E00620E0 A202003B */ sb $v0, 0x3b($s0)
/* 3643E4 E00620E4 A2020038 */ sb $v0, 0x38($s0)
/* 3643E8 E00620E8 24020015 */ addiu $v0, $zero, 0x15
/* 3643EC E00620EC A202003C */ sb $v0, 0x3c($s0)
/* 3643F0 E00620F0 A2020039 */ sb $v0, 0x39($s0)
/* 3643F4 E00620F4 08018846 */ j .LE0062118
/* 3643F8 E00620F8 240200F2 */ addiu $v0, $zero, 0xf2
.LE00620FC:
/* 3643FC E00620FC 240200C8 */ addiu $v0, $zero, 0xc8
/* 364400 E0062100 A202003B */ sb $v0, 0x3b($s0)
/* 364404 E0062104 A2020038 */ sb $v0, 0x38($s0)
/* 364408 E0062108 24020015 */ addiu $v0, $zero, 0x15
/* 36440C E006210C A202003C */ sb $v0, 0x3c($s0)
/* 364410 E0062110 A2020039 */ sb $v0, 0x39($s0)
/* 364414 E0062114 240200D4 */ addiu $v0, $zero, 0xd4
.LE0062118:
/* 364418 E0062118 A202003D */ sb $v0, 0x3d($s0)
/* 36441C E006211C A202003A */ sb $v0, 0x3a($s0)
/* 364420 E0062120 24120001 */ addiu $s2, $zero, 1
/* 364424 E0062124 0255102A */ slt $v0, $s2, $s5
/* 364428 E0062128 1040002C */ beqz $v0, .LE00621DC
/* 36442C E006212C 26100040 */ addiu $s0, $s0, 0x40
/* 364430 E0062130 26B3FFFF */ addiu $s3, $s5, -1
/* 364434 E0062134 2610002C */ addiu $s0, $s0, 0x2c
/* 364438 E0062138 0000882D */ daddu $s1, $zero, $zero
/* 36443C E006213C 3C013F80 */ lui $at, 0x3f80
/* 364440 E0062140 4481E000 */ mtc1 $at, $f28
/* 364444 E0062144 3C0142B4 */ lui $at, 0x42b4
/* 364448 E0062148 4481D000 */ mtc1 $at, $f26
/* 36444C E006214C 3C013DCC */ lui $at, 0x3dcc
/* 364450 E0062150 3421CCCD */ ori $at, $at, 0xcccd
/* 364454 E0062154 4481C000 */ mtc1 $at, $f24
.LE0062158:
/* 364458 E0062158 16600002 */ bnez $s3, .LE0062164
/* 36445C E006215C 0233001A */ div $zero, $s1, $s3
/* 364460 E0062160 0007000D */ break 7
.LE0062164:
/* 364464 E0062164 2401FFFF */ addiu $at, $zero, -1
/* 364468 E0062168 16610004 */ bne $s3, $at, .LE006217C
/* 36446C E006216C 3C018000 */ lui $at, 0x8000
/* 364470 E0062170 16210002 */ bne $s1, $at, .LE006217C
/* 364474 E0062174 00000000 */ nop
/* 364478 E0062178 0006000D */ break 6
.LE006217C:
/* 36447C E006217C 00001012 */ mflo $v0
/* 364480 E0062180 4482B000 */ mtc1 $v0, $f22
/* 364484 E0062184 00000000 */ nop
/* 364488 E0062188 4680B5A0 */ cvt.s.w $f22, $f22
/* 36448C E006218C 461AB500 */ add.s $f20, $f22, $f26
/* 364490 E0062190 26310168 */ addiu $s1, $s1, 0x168
/* 364494 E0062194 26520001 */ addiu $s2, $s2, 1
/* 364498 E0062198 0C080144 */ jal func_E0200510
/* 36449C E006219C 4600A306 */ mov.s $f12, $f20
/* 3644A0 E00621A0 4600A306 */ mov.s $f12, $f20
/* 3644A4 E00621A4 0C080140 */ jal func_E0200500
/* 3644A8 E00621A8 E600FFD8 */ swc1 $f0, -0x28($s0)
/* 3644AC E00621AC E600FFDC */ swc1 $f0, -0x24($s0)
/* 3644B0 E00621B0 AE00FFE0 */ sw $zero, -0x20($s0)
/* 3644B4 E00621B4 AE00FFE4 */ sw $zero, -0x1c($s0)
/* 3644B8 E00621B8 AE00FFE8 */ sw $zero, -0x18($s0)
/* 3644BC E00621BC AE00FFEC */ sw $zero, -0x14($s0)
/* 3644C0 E00621C0 E618FFF0 */ swc1 $f24, -0x10($s0)
/* 3644C4 E00621C4 E618FFF4 */ swc1 $f24, -0xc($s0)
/* 3644C8 E00621C8 E61C0004 */ swc1 $f28, 4($s0)
/* 3644CC E00621CC E6160000 */ swc1 $f22, ($s0)
/* 3644D0 E00621D0 0255102A */ slt $v0, $s2, $s5
/* 3644D4 E00621D4 1440FFE0 */ bnez $v0, .LE0062158
/* 3644D8 E00621D8 26100040 */ addiu $s0, $s0, 0x40
.LE00621DC:
/* 3644DC E00621DC 0280102D */ daddu $v0, $s4, $zero
/* 3644E0 E00621E0 8FBF0040 */ lw $ra, 0x40($sp)
/* 3644E4 E00621E4 8FB5003C */ lw $s5, 0x3c($sp)
/* 3644E8 E00621E8 8FB40038 */ lw $s4, 0x38($sp)
/* 3644EC E00621EC 8FB30034 */ lw $s3, 0x34($sp)
/* 3644F0 E00621F0 8FB20030 */ lw $s2, 0x30($sp)
/* 3644F4 E00621F4 8FB1002C */ lw $s1, 0x2c($sp)
/* 3644F8 E00621F8 8FB00028 */ lw $s0, 0x28($sp)
/* 3644FC E00621FC D7BC0068 */ ldc1 $f28, 0x68($sp)
/* 364500 E0062200 D7BA0060 */ ldc1 $f26, 0x60($sp)
/* 364504 E0062204 D7B80058 */ ldc1 $f24, 0x58($sp)
/* 364508 E0062208 D7B60050 */ ldc1 $f22, 0x50($sp)
/* 36450C E006220C D7B40048 */ ldc1 $f20, 0x48($sp)
/* 364510 E0062210 03E00008 */ jr $ra
/* 364514 E0062214 27BD0070 */ addiu $sp, $sp, 0x70