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

131 lines
6.4 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_E001A224
/* 330054 E001A224 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 330058 E001A228 AFBF0010 */ sw $ra, 0x10($sp)
/* 33005C E001A22C 8C85000C */ lw $a1, 0xc($a0)
/* 330060 E001A230 8CA20034 */ lw $v0, 0x34($a1)
/* 330064 E001A234 8CA60000 */ lw $a2, ($a1)
/* 330068 E001A238 28420096 */ slti $v0, $v0, 0x96
/* 33006C E001A23C 10400039 */ beqz $v0, .LE001A324
/* 330070 E001A240 00000000 */ nop
/* 330074 E001A244 C4A00010 */ lwc1 $f0, 0x10($a1)
/* 330078 E001A248 3C01E002 */ lui $at, %hi(D_E001A620)
/* 33007C E001A24C D422A620 */ ldc1 $f2, %lo(D_E001A620)($at)
/* 330080 E001A250 C4A6000C */ lwc1 $f6, 0xc($a1)
/* 330084 E001A254 46000021 */ cvt.d.s $f0, $f0
/* 330088 E001A258 46220001 */ sub.d $f0, $f0, $f2
/* 33008C E001A25C C4A20018 */ lwc1 $f2, 0x18($a1)
/* 330090 E001A260 C4A40024 */ lwc1 $f4, 0x24($a1)
/* 330094 E001A264 46023180 */ add.s $f6, $f6, $f2
/* 330098 E001A268 C4A2002C */ lwc1 $f2, 0x2c($a1)
/* 33009C E001A26C 46022100 */ add.s $f4, $f4, $f2
/* 3300A0 E001A270 C4A20004 */ lwc1 $f2, 4($a1)
/* 3300A4 E001A274 46200020 */ cvt.s.d $f0, $f0
/* 3300A8 E001A278 E4A00010 */ swc1 $f0, 0x10($a1)
/* 3300AC E001A27C 46001080 */ add.s $f2, $f2, $f0
/* 3300B0 E001A280 E4A6000C */ swc1 $f6, 0xc($a1)
/* 3300B4 E001A284 E4A40024 */ swc1 $f4, 0x24($a1)
/* 3300B8 E001A288 14C00018 */ bnez $a2, .LE001A2EC
/* 3300BC E001A28C E4A20004 */ swc1 $f2, 4($a1)
/* 3300C0 E001A290 3C014120 */ lui $at, 0x4120
/* 3300C4 E001A294 44811000 */ mtc1 $at, $f2
/* 3300C8 E001A298 00000000 */ nop
/* 3300CC E001A29C 4602203C */ c.lt.s $f4, $f2
/* 3300D0 E001A2A0 00000000 */ nop
/* 3300D4 E001A2A4 45000005 */ bc1f .LE001A2BC
/* 3300D8 E001A2A8 00000000 */ nop
/* 3300DC E001A2AC C4A0002C */ lwc1 $f0, 0x2c($a1)
/* 3300E0 E001A2B0 E4A20024 */ swc1 $f2, 0x24($a1)
/* 3300E4 E001A2B4 46000007 */ neg.s $f0, $f0
/* 3300E8 E001A2B8 E4A0002C */ swc1 $f0, 0x2c($a1)
.LE001A2BC:
/* 3300EC E001A2BC C4A00024 */ lwc1 $f0, 0x24($a1)
/* 3300F0 E001A2C0 3C014234 */ lui $at, 0x4234
/* 3300F4 E001A2C4 44811000 */ mtc1 $at, $f2
/* 3300F8 E001A2C8 00000000 */ nop
/* 3300FC E001A2CC 4600103C */ c.lt.s $f2, $f0
/* 330100 E001A2D0 00000000 */ nop
/* 330104 E001A2D4 45000005 */ bc1f .LE001A2EC
/* 330108 E001A2D8 00000000 */ nop
/* 33010C E001A2DC C4A0002C */ lwc1 $f0, 0x2c($a1)
/* 330110 E001A2E0 E4A20024 */ swc1 $f2, 0x24($a1)
/* 330114 E001A2E4 46000007 */ neg.s $f0, $f0
/* 330118 E001A2E8 E4A0002C */ swc1 $f0, 0x2c($a1)
.LE001A2EC:
/* 33011C E001A2EC C4A00028 */ lwc1 $f0, 0x28($a1)
/* 330120 E001A2F0 C4A20030 */ lwc1 $f2, 0x30($a1)
/* 330124 E001A2F4 46020000 */ add.s $f0, $f0, $f2
/* 330128 E001A2F8 14C00006 */ bnez $a2, .LE001A314
/* 33012C E001A2FC E4A00028 */ swc1 $f0, 0x28($a1)
/* 330130 E001A300 3C013FB3 */ lui $at, 0x3fb3
/* 330134 E001A304 34213333 */ ori $at, $at, 0x3333
/* 330138 E001A308 44810000 */ mtc1 $at, $f0
/* 33013C E001A30C 080068DC */ j .LE001A370
/* 330140 E001A310 E4A00014 */ swc1 $f0, 0x14($a1)
.LE001A314:
/* 330144 E001A314 3C013F80 */ lui $at, 0x3f80
/* 330148 E001A318 44810000 */ mtc1 $at, $f0
/* 33014C E001A31C 080068DC */ j .LE001A370
/* 330150 E001A320 E4A00014 */ swc1 $f0, 0x14($a1)
.LE001A324:
/* 330154 E001A324 C4A00020 */ lwc1 $f0, 0x20($a1)
/* 330158 E001A328 3C01E002 */ lui $at, %hi(D_E001A628)
/* 33015C E001A32C D422A628 */ ldc1 $f2, %lo(D_E001A628)($at)
/* 330160 E001A330 46000021 */ cvt.d.s $f0, $f0
/* 330164 E001A334 46220000 */ add.d $f0, $f0, $f2
/* 330168 E001A338 C4A4001C */ lwc1 $f4, 0x1c($a1)
/* 33016C E001A33C 46200020 */ cvt.s.d $f0, $f0
/* 330170 E001A340 46002100 */ add.s $f4, $f4, $f0
/* 330174 E001A344 C4A20014 */ lwc1 $f2, 0x14($a1)
/* 330178 E001A348 3C013F80 */ lui $at, 0x3f80
/* 33017C E001A34C 44813000 */ mtc1 $at, $f6
/* 330180 E001A350 46041080 */ add.s $f2, $f2, $f4
/* 330184 E001A354 E4A00020 */ swc1 $f0, 0x20($a1)
/* 330188 E001A358 E4A4001C */ swc1 $f4, 0x1c($a1)
/* 33018C E001A35C 4602303C */ c.lt.s $f6, $f2
/* 330190 E001A360 00000000 */ nop
/* 330194 E001A364 45000002 */ bc1f .LE001A370
/* 330198 E001A368 E4A20014 */ swc1 $f2, 0x14($a1)
/* 33019C E001A36C E4A60014 */ swc1 $f6, 0x14($a1)
.LE001A370:
/* 3301A0 E001A370 24020001 */ addiu $v0, $zero, 1
/* 3301A4 E001A374 14C20010 */ bne $a2, $v0, .LE001A3B8
/* 3301A8 E001A378 00000000 */ nop
/* 3301AC E001A37C 8CA20040 */ lw $v0, 0x40($a1)
/* 3301B0 E001A380 8CA3003C */ lw $v1, 0x3c($a1)
/* 3301B4 E001A384 00431821 */ addu $v1, $v0, $v1
/* 3301B8 E001A388 28620014 */ slti $v0, $v1, 0x14
/* 3301BC E001A38C 14400006 */ bnez $v0, .LE001A3A8
/* 3301C0 E001A390 ACA30040 */ sw $v1, 0x40($a1)
/* 3301C4 E001A394 24020014 */ addiu $v0, $zero, 0x14
/* 3301C8 E001A398 ACA20040 */ sw $v0, 0x40($a1)
/* 3301CC E001A39C 2402FFFF */ addiu $v0, $zero, -1
/* 3301D0 E001A3A0 080068EE */ j .LE001A3B8
/* 3301D4 E001A3A4 ACA2003C */ sw $v0, 0x3c($a1)
.LE001A3A8:
/* 3301D8 E001A3A8 1C600003 */ bgtz $v1, .LE001A3B8
/* 3301DC E001A3AC 00000000 */ nop
/* 3301E0 E001A3B0 ACA00040 */ sw $zero, 0x40($a1)
/* 3301E4 E001A3B4 ACA6003C */ sw $a2, 0x3c($a1)
.LE001A3B8:
/* 3301E8 E001A3B8 C4A00008 */ lwc1 $f0, 8($a1)
/* 3301EC E001A3BC 8CA20034 */ lw $v0, 0x34($a1)
/* 3301F0 E001A3C0 C4A20014 */ lwc1 $f2, 0x14($a1)
/* 3301F4 E001A3C4 2442FFFF */ addiu $v0, $v0, -1
/* 3301F8 E001A3C8 46020000 */ add.s $f0, $f0, $f2
/* 3301FC E001A3CC ACA20034 */ sw $v0, 0x34($a1)
/* 330200 E001A3D0 8CA20038 */ lw $v0, 0x38($a1)
/* 330204 E001A3D4 8CA30034 */ lw $v1, 0x34($a1)
/* 330208 E001A3D8 24420001 */ addiu $v0, $v0, 1
/* 33020C E001A3DC ACA20038 */ sw $v0, 0x38($a1)
/* 330210 E001A3E0 04610003 */ bgez $v1, .LE001A3F0
/* 330214 E001A3E4 E4A00008 */ swc1 $f0, 8($a1)
/* 330218 E001A3E8 0C080128 */ jal func_E02004A0
/* 33021C E001A3EC 00000000 */ nop
.LE001A3F0:
/* 330220 E001A3F0 8FBF0010 */ lw $ra, 0x10($sp)
/* 330224 E001A3F4 03E00008 */ jr $ra
/* 330228 E001A3F8 27BD0018 */ addiu $sp, $sp, 0x18