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

69 lines
3.2 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_E007812C
/* 37A51C E007812C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 37A520 E0078130 AFBF0010 */ sw $ra, 0x10($sp)
/* 37A524 E0078134 8C850000 */ lw $a1, ($a0)
/* 37A528 E0078138 8C83000C */ lw $v1, 0xc($a0)
/* 37A52C E007813C 30A20010 */ andi $v0, $a1, 0x10
/* 37A530 E0078140 10400005 */ beqz $v0, .LE0078158
/* 37A534 E0078144 2402FFEF */ addiu $v0, $zero, -0x11
/* 37A538 E0078148 00A21024 */ and $v0, $a1, $v0
/* 37A53C E007814C AC820000 */ sw $v0, ($a0)
/* 37A540 E0078150 2402000A */ addiu $v0, $zero, 0xa
/* 37A544 E0078154 AC620014 */ sw $v0, 0x14($v1)
.LE0078158:
/* 37A548 E0078158 8C620018 */ lw $v0, 0x18($v1)
/* 37A54C E007815C 8C650014 */ lw $a1, 0x14($v1)
/* 37A550 E0078160 24420001 */ addiu $v0, $v0, 1
/* 37A554 E0078164 AC620018 */ sw $v0, 0x18($v1)
/* 37A558 E0078168 28A20064 */ slti $v0, $a1, 0x64
/* 37A55C E007816C 10400002 */ beqz $v0, .LE0078178
/* 37A560 E0078170 24A2FFFF */ addiu $v0, $a1, -1
/* 37A564 E0078174 AC620014 */ sw $v0, 0x14($v1)
.LE0078178:
/* 37A568 E0078178 8C620014 */ lw $v0, 0x14($v1)
/* 37A56C E007817C 04410005 */ bgez $v0, .LE0078194
/* 37A570 E0078180 00000000 */ nop
/* 37A574 E0078184 0C080128 */ jal func_E02004A0
/* 37A578 E0078188 00000000 */ nop
/* 37A57C E007818C 0801E081 */ j .LE0078204
/* 37A580 E0078190 00000000 */ nop
.LE0078194:
/* 37A584 E0078194 8C620000 */ lw $v0, ($v1)
/* 37A588 E0078198 8C640018 */ lw $a0, 0x18($v1)
/* 37A58C E007819C 14400019 */ bnez $v0, .LE0078204
/* 37A590 E00781A0 2882000B */ slti $v0, $a0, 0xb
/* 37A594 E00781A4 10400005 */ beqz $v0, .LE00781BC
/* 37A598 E00781A8 00041040 */ sll $v0, $a0, 1
/* 37A59C E00781AC 00441021 */ addu $v0, $v0, $a0
/* 37A5A0 E00781B0 00021040 */ sll $v0, $v0, 1
/* 37A5A4 E00781B4 0801E070 */ j .LE00781C0
/* 37A5A8 E00781B8 24420004 */ addiu $v0, $v0, 4
.LE00781BC:
/* 37A5AC E00781BC 24020040 */ addiu $v0, $zero, 0x40
.LE00781C0:
/* 37A5B0 E00781C0 AC620010 */ sw $v0, 0x10($v1)
/* 37A5B4 E00781C4 30820001 */ andi $v0, $a0, 1
/* 37A5B8 E00781C8 10400009 */ beqz $v0, .LE00781F0
/* 37A5BC E00781CC 2882000F */ slti $v0, $a0, 0xf
/* 37A5C0 E00781D0 3C01E008 */ lui $at, %hi(D_E00789D0)
/* 37A5C4 E00781D4 D42289D0 */ ldc1 $f2, %lo(D_E00789D0)($at)
/* 37A5C8 E00781D8 C4600010 */ lwc1 $f0, 0x10($v1)
/* 37A5CC E00781DC 46800021 */ cvt.d.w $f0, $f0
/* 37A5D0 E00781E0 46220002 */ mul.d $f0, $f0, $f2
/* 37A5D4 E00781E4 00000000 */ nop
/* 37A5D8 E00781E8 4620010D */ trunc.w.d $f4, $f0
/* 37A5DC E00781EC E4640010 */ swc1 $f4, 0x10($v1)
.LE00781F0:
/* 37A5E0 E00781F0 14400004 */ bnez $v0, .LE0078204
/* 37A5E4 E00781F4 24020004 */ addiu $v0, $zero, 4
/* 37A5E8 E00781F8 AC620000 */ sw $v0, ($v1)
/* 37A5EC E00781FC 2402007F */ addiu $v0, $zero, 0x7f
/* 37A5F0 E0078200 AC620010 */ sw $v0, 0x10($v1)
.LE0078204:
/* 37A5F4 E0078204 8FBF0010 */ lw $ra, 0x10($sp)
/* 37A5F8 E0078208 03E00008 */ jr $ra
/* 37A5FC E007820C 27BD0018 */ addiu $sp, $sp, 0x18