papermario/asm/nonmatchings/code_17D6A0/func_80251474.s
2020-10-14 23:49:49 -04:00

96 lines
4.7 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80251474
/* 17FD54 80251474 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 17FD58 80251478 AFB1001C */ sw $s1, 0x1c($sp)
/* 17FD5C 8025147C 0080882D */ daddu $s1, $a0, $zero
/* 17FD60 80251480 AFBF0028 */ sw $ra, 0x28($sp)
/* 17FD64 80251484 AFB30024 */ sw $s3, 0x24($sp)
/* 17FD68 80251488 AFB20020 */ sw $s2, 0x20($sp)
/* 17FD6C 8025148C AFB00018 */ sw $s0, 0x18($sp)
/* 17FD70 80251490 8E3001F4 */ lw $s0, 0x1f4($s1)
/* 17FD74 80251494 12000044 */ beqz $s0, .L802515A8
/* 17FD78 80251498 3C134000 */ lui $s3, 0x4000
/* 17FD7C 8025149C 3C12CCCC */ lui $s2, 0xcccc
/* 17FD80 802514A0 3652CCCD */ ori $s2, $s2, 0xcccd
.L802514A4:
/* 17FD84 802514A4 8E030000 */ lw $v1, ($s0)
/* 17FD88 802514A8 30620001 */ andi $v0, $v1, 1
/* 17FD8C 802514AC 1440003B */ bnez $v0, .L8025159C
/* 17FD90 802514B0 00000000 */ nop
/* 17FD94 802514B4 8E020094 */ lw $v0, 0x94($s0)
/* 17FD98 802514B8 10400038 */ beqz $v0, .L8025159C
/* 17FD9C 802514BC 00731024 */ and $v0, $v1, $s3
/* 17FDA0 802514C0 14400036 */ bnez $v0, .L8025159C
/* 17FDA4 802514C4 00000000 */ nop
/* 17FDA8 802514C8 92250191 */ lbu $a1, 0x191($s1)
/* 17FDAC 802514CC 92030072 */ lbu $v1, 0x72($s0)
/* 17FDB0 802514D0 00B20019 */ multu $a1, $s2
/* 17FDB4 802514D4 C6200188 */ lwc1 $f0, 0x188($s1)
/* 17FDB8 802514D8 00031082 */ srl $v0, $v1, 2
/* 17FDBC 802514DC 00621821 */ addu $v1, $v1, $v0
/* 17FDC0 802514E0 44833000 */ mtc1 $v1, $f6
/* 17FDC4 802514E4 00000000 */ nop
/* 17FDC8 802514E8 468031A0 */ cvt.s.w $f6, $f6
/* 17FDCC 802514EC 46003182 */ mul.s $f6, $f6, $f0
/* 17FDD0 802514F0 00000000 */ nop
/* 17FDD4 802514F4 92020073 */ lbu $v0, 0x73($s0)
/* 17FDD8 802514F8 2442FFFE */ addiu $v0, $v0, -2
/* 17FDDC 802514FC 44822000 */ mtc1 $v0, $f4
/* 17FDE0 80251500 00000000 */ nop
/* 17FDE4 80251504 46802120 */ cvt.s.w $f4, $f4
/* 17FDE8 80251508 46002102 */ mul.s $f4, $f4, $f0
/* 17FDEC 8025150C 00000000 */ nop
/* 17FDF0 80251510 C602005C */ lwc1 $f2, 0x5c($s0)
/* 17FDF4 80251514 00004010 */ mfhi $t0
/* 17FDF8 80251518 000810C2 */ srl $v0, $t0, 3
/* 17FDFC 8025151C 304200FF */ andi $v0, $v0, 0xff
/* 17FE00 80251520 44820000 */ mtc1 $v0, $f0
/* 17FE04 80251524 00000000 */ nop
/* 17FE08 80251528 46800020 */ cvt.s.w $f0, $f0
/* 17FE0C 8025152C 4600320D */ trunc.w.s $f8, $f6
/* 17FE10 80251530 44034000 */ mfc1 $v1, $f8
/* 17FE14 80251534 8E220000 */ lw $v0, ($s1)
/* 17FE18 80251538 C6060060 */ lwc1 $f6, 0x60($s0)
/* 17FE1C 8025153C 4600220D */ trunc.w.s $f8, $f4
/* 17FE20 80251540 44044000 */ mfc1 $a0, $f8
/* 17FE24 80251544 30428000 */ andi $v0, $v0, 0x8000
/* 17FE28 80251548 C6040058 */ lwc1 $f4, 0x58($s0)
/* 17FE2C 8025154C 10400006 */ beqz $v0, .L80251568
/* 17FE30 80251550 46001080 */ add.s $f2, $f2, $f0
/* 17FE34 80251554 00051042 */ srl $v0, $a1, 1
/* 17FE38 80251558 44820000 */ mtc1 $v0, $f0
/* 17FE3C 8025155C 00000000 */ nop
/* 17FE40 80251560 46800020 */ cvt.s.w $f0, $f0
/* 17FE44 80251564 46001081 */ sub.s $f2, $f2, $f0
.L80251568:
/* 17FE48 80251568 44830000 */ mtc1 $v1, $f0
/* 17FE4C 8025156C 00000000 */ nop
/* 17FE50 80251570 46800020 */ cvt.s.w $f0, $f0
/* 17FE54 80251574 E7A00010 */ swc1 $f0, 0x10($sp)
/* 17FE58 80251578 44840000 */ mtc1 $a0, $f0
/* 17FE5C 8025157C 00000000 */ nop
/* 17FE60 80251580 46800020 */ cvt.s.w $f0, $f0
/* 17FE64 80251584 44052000 */ mfc1 $a1, $f4
/* 17FE68 80251588 44061000 */ mfc1 $a2, $f2
/* 17FE6C 8025158C 44073000 */ mfc1 $a3, $f6
/* 17FE70 80251590 0000202D */ daddu $a0, $zero, $zero
/* 17FE74 80251594 0C01C514 */ jal func_80071450
/* 17FE78 80251598 E7A00014 */ swc1 $f0, 0x14($sp)
.L8025159C:
/* 17FE7C 8025159C 8E10000C */ lw $s0, 0xc($s0)
/* 17FE80 802515A0 1600FFC0 */ bnez $s0, .L802514A4
/* 17FE84 802515A4 00000000 */ nop
.L802515A8:
/* 17FE88 802515A8 8FBF0028 */ lw $ra, 0x28($sp)
/* 17FE8C 802515AC 8FB30024 */ lw $s3, 0x24($sp)
/* 17FE90 802515B0 8FB20020 */ lw $s2, 0x20($sp)
/* 17FE94 802515B4 8FB1001C */ lw $s1, 0x1c($sp)
/* 17FE98 802515B8 8FB00018 */ lw $s0, 0x18($sp)
/* 17FE9C 802515BC 03E00008 */ jr $ra
/* 17FEA0 802515C0 27BD0030 */ addiu $sp, $sp, 0x30
/* 17FEA4 802515C4 00000000 */ nop
/* 17FEA8 802515C8 00000000 */ nop
/* 17FEAC 802515CC 00000000 */ nop