papermario/asm/nonmatchings/code_376460/func_E0074000.s
Ethan Roseman 765e59e020 blah
2021-01-09 16:55:31 +09:00

133 lines
6.7 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_E0074000
/* 376460 E0074000 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 376464 E0074004 F7B40040 */ sdc1 $f20, 0x40($sp)
/* 376468 E0074008 4485A000 */ mtc1 $a1, $f20
/* 37646C E007400C F7B60048 */ sdc1 $f22, 0x48($sp)
/* 376470 E0074010 4486B000 */ mtc1 $a2, $f22
/* 376474 E0074014 F7B80050 */ sdc1 $f24, 0x50($sp)
/* 376478 E0074018 4487C000 */ mtc1 $a3, $f24
/* 37647C E007401C AFB30034 */ sw $s3, 0x34($sp)
/* 376480 E0074020 0080982D */ daddu $s3, $a0, $zero
/* 376484 E0074024 AFB00028 */ sw $s0, 0x28($sp)
/* 376488 E0074028 8FB00070 */ lw $s0, 0x70($sp)
/* 37648C E007402C 27A40010 */ addiu $a0, $sp, 0x10
/* 376490 E0074030 AFB20030 */ sw $s2, 0x30($sp)
/* 376494 E0074034 8FB20074 */ lw $s2, 0x74($sp)
/* 376498 E0074038 3C02E007 */ lui $v0, %hi(func_E00741E0)
/* 37649C E007403C 244241E0 */ addiu $v0, $v0, %lo(func_E00741E0)
/* 3764A0 E0074040 AFA20018 */ sw $v0, 0x18($sp)
/* 3764A4 E0074044 3C02E007 */ lui $v0, %hi(func_E00741E8)
/* 3764A8 E0074048 244241E8 */ addiu $v0, $v0, %lo(func_E00741E8)
/* 3764AC E007404C AFA2001C */ sw $v0, 0x1c($sp)
/* 3764B0 E0074050 3C02E007 */ lui $v0, %hi(func_E0074598)
/* 3764B4 E0074054 24424598 */ addiu $v0, $v0, %lo(func_E0074598)
/* 3764B8 E0074058 AFA20020 */ sw $v0, 0x20($sp)
/* 3764BC E007405C 2402003A */ addiu $v0, $zero, 0x3a
/* 3764C0 E0074060 AFBF0038 */ sw $ra, 0x38($sp)
/* 3764C4 E0074064 AFB1002C */ sw $s1, 0x2c($sp)
/* 3764C8 E0074068 AFA00010 */ sw $zero, 0x10($sp)
/* 3764CC E007406C AFA00024 */ sw $zero, 0x24($sp)
/* 3764D0 E0074070 AFA20014 */ sw $v0, 0x14($sp)
/* 3764D4 E0074074 0C080124 */ jal func_E0200490
/* 3764D8 E0074078 26100001 */ addiu $s0, $s0, 1
/* 3764DC E007407C 001020C0 */ sll $a0, $s0, 3
/* 3764E0 E0074080 00902023 */ subu $a0, $a0, $s0
/* 3764E4 E0074084 00042080 */ sll $a0, $a0, 2
/* 3764E8 E0074088 00902023 */ subu $a0, $a0, $s0
/* 3764EC E007408C 00042080 */ sll $a0, $a0, 2
/* 3764F0 E0074090 0040882D */ daddu $s1, $v0, $zero
/* 3764F4 E0074094 0C08012C */ jal func_E02004B0
/* 3764F8 E0074098 AE300008 */ sw $s0, 8($s1)
/* 3764FC E007409C 0040202D */ daddu $a0, $v0, $zero
/* 376500 E00740A0 14800003 */ bnez $a0, .LE00740B0
/* 376504 E00740A4 AE24000C */ sw $a0, 0xc($s1)
.LE00740A8:
/* 376508 E00740A8 0801D02A */ j .LE00740A8
/* 37650C E00740AC 00000000 */ nop
.LE00740B0:
/* 376510 E00740B0 AC930000 */ sw $s3, ($a0)
/* 376514 E00740B4 1E400004 */ bgtz $s2, .LE00740C8
/* 376518 E00740B8 AC80003C */ sw $zero, 0x3c($a0)
/* 37651C E00740BC 240203E8 */ addiu $v0, $zero, 0x3e8
/* 376520 E00740C0 0801D033 */ j .LE00740CC
/* 376524 E00740C4 AC820038 */ sw $v0, 0x38($a0)
.LE00740C8:
/* 376528 E00740C8 AC920038 */ sw $s2, 0x38($a0)
.LE00740CC:
/* 37652C E00740CC 3C013F80 */ lui $at, 0x3f80
/* 376530 E00740D0 44810000 */ mtc1 $at, $f0
/* 376534 E00740D4 240300FF */ addiu $v1, $zero, 0xff
/* 376538 E00740D8 AC83004C */ sw $v1, 0x4c($a0)
/* 37653C E00740DC E4940004 */ swc1 $f20, 4($a0)
/* 376540 E00740E0 E4960008 */ swc1 $f22, 8($a0)
/* 376544 E00740E4 E498000C */ swc1 $f24, 0xc($a0)
/* 376548 E00740E8 E4800060 */ swc1 $f0, 0x60($a0)
/* 37654C E00740EC C7A00068 */ lwc1 $f0, 0x68($sp)
/* 376550 E00740F0 E4800010 */ swc1 $f0, 0x10($a0)
/* 376554 E00740F4 C7A0006C */ lwc1 $f0, 0x6c($sp)
/* 376558 E00740F8 2402007F */ addiu $v0, $zero, 0x7f
/* 37655C E00740FC AC820058 */ sw $v0, 0x58($a0)
/* 376560 E0074100 2A420014 */ slti $v0, $s2, 0x14
/* 376564 E0074104 AC830040 */ sw $v1, 0x40($a0)
/* 376568 E0074108 AC830044 */ sw $v1, 0x44($a0)
/* 37656C E007410C AC830048 */ sw $v1, 0x48($a0)
/* 376570 E0074110 AC830050 */ sw $v1, 0x50($a0)
/* 376574 E0074114 AC830054 */ sw $v1, 0x54($a0)
/* 376578 E0074118 AC83005C */ sw $v1, 0x5c($a0)
/* 37657C E007411C E4800014 */ swc1 $f0, 0x14($a0)
/* 376580 E0074120 10400009 */ beqz $v0, .LE0074148
/* 376584 E0074124 2484006C */ addiu $a0, $a0, 0x6c
/* 376588 E0074128 2602FFFF */ addiu $v0, $s0, -1
/* 37658C E007412C 3C0141A0 */ lui $at, 0x41a0
/* 376590 E0074130 44811000 */ mtc1 $at, $f2
/* 376594 E0074134 44820000 */ mtc1 $v0, $f0
/* 376598 E0074138 00000000 */ nop
/* 37659C E007413C 46800020 */ cvt.s.w $f0, $f0
/* 3765A0 E0074140 0801D05A */ j .LE0074168
/* 3765A4 E0074144 46001083 */ div.s $f2, $f2, $f0
.LE0074148:
/* 3765A8 E0074148 44920000 */ mtc1 $s2, $f0
/* 3765AC E007414C 00000000 */ nop
/* 3765B0 E0074150 46800020 */ cvt.s.w $f0, $f0
/* 3765B4 E0074154 2602FFFF */ addiu $v0, $s0, -1
/* 3765B8 E0074158 44821000 */ mtc1 $v0, $f2
/* 3765BC E007415C 00000000 */ nop
/* 3765C0 E0074160 468010A0 */ cvt.s.w $f2, $f2
/* 3765C4 E0074164 46020083 */ div.s $f2, $f0, $f2
.LE0074168:
/* 3765C8 E0074168 24030001 */ addiu $v1, $zero, 1
/* 3765CC E007416C 0070102A */ slt $v0, $v1, $s0
/* 3765D0 E0074170 10400011 */ beqz $v0, .LE00741B8
/* 3765D4 E0074174 0220102D */ daddu $v0, $s1, $zero
.LE0074178:
/* 3765D8 E0074178 44830000 */ mtc1 $v1, $f0
/* 3765DC E007417C 00000000 */ nop
/* 3765E0 E0074180 46800020 */ cvt.s.w $f0, $f0
/* 3765E4 E0074184 46000007 */ neg.s $f0, $f0
/* 3765E8 E0074188 46020002 */ mul.s $f0, $f0, $f2
/* 3765EC E007418C 00000000 */ nop
/* 3765F0 E0074190 24630001 */ addiu $v1, $v1, 1
/* 3765F4 E0074194 4600010D */ trunc.w.s $f4, $f0
/* 3765F8 E0074198 44022000 */ mfc1 $v0, $f4
/* 3765FC E007419C 00000000 */ nop
/* 376600 E00741A0 2442FFFF */ addiu $v0, $v0, -1
/* 376604 E00741A4 AC820030 */ sw $v0, 0x30($a0)
/* 376608 E00741A8 0070102A */ slt $v0, $v1, $s0
/* 37660C E00741AC 1440FFF2 */ bnez $v0, .LE0074178
/* 376610 E00741B0 2484006C */ addiu $a0, $a0, 0x6c
/* 376614 E00741B4 0220102D */ daddu $v0, $s1, $zero
.LE00741B8:
/* 376618 E00741B8 8FBF0038 */ lw $ra, 0x38($sp)
/* 37661C E00741BC 8FB30034 */ lw $s3, 0x34($sp)
/* 376620 E00741C0 8FB20030 */ lw $s2, 0x30($sp)
/* 376624 E00741C4 8FB1002C */ lw $s1, 0x2c($sp)
/* 376628 E00741C8 8FB00028 */ lw $s0, 0x28($sp)
/* 37662C E00741CC D7B80050 */ ldc1 $f24, 0x50($sp)
/* 376630 E00741D0 D7B60048 */ ldc1 $f22, 0x48($sp)
/* 376634 E00741D4 D7B40040 */ ldc1 $f20, 0x40($sp)
/* 376638 E00741D8 03E00008 */ jr $ra
/* 37663C E00741DC 27BD0058 */ addiu $sp, $sp, 0x58