papermario/asm/nonmatchings/code_a5dd0_len_114e0/func_80120234.s
2020-08-12 22:37:16 -04:00

106 lines
4.9 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80120234
/* 0B6934 80120234 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 0B6938 80120238 AFB00030 */ sw $s0, 0x30($sp)
/* 0B693C 8012023C 0080802D */ daddu $s0, $a0, $zero
/* 0B6940 80120240 AFB10034 */ sw $s1, 0x34($sp)
/* 0B6944 80120244 00A0882D */ daddu $s1, $a1, $zero
/* 0B6948 80120248 AFB3003C */ sw $s3, 0x3c($sp)
/* 0B694C 8012024C 00C0982D */ daddu $s3, $a2, $zero
/* 0B6950 80120250 AFB20038 */ sw $s2, 0x38($sp)
/* 0B6954 80120254 00E0902D */ daddu $s2, $a3, $zero
/* 0B6958 80120258 27A60010 */ addiu $a2, $sp, 0x10
/* 0B695C 8012025C 1200004C */ beqz $s0, .L80120390
/* 0B6960 80120260 AFBF0040 */ sw $ra, 0x40($sp)
/* 0B6964 80120264 8E020000 */ lw $v0, ($s0)
/* 0B6968 80120268 AFA00014 */ sw $zero, 0x14($sp)
/* 0B696C 8012026C AFA00018 */ sw $zero, 0x18($sp)
/* 0B6970 80120270 AFA0001C */ sw $zero, 0x1c($sp)
/* 0B6974 80120274 AFA20010 */ sw $v0, 0x10($sp)
/* 0B6978 80120278 86020004 */ lh $v0, 4($s0)
/* 0B697C 8012027C 3C018015 */ lui $at, 0x8015
/* 0B6980 80120280 D4220010 */ ldc1 $f2, 0x10($at)
/* 0B6984 80120284 44820000 */ mtc1 $v0, $f0
/* 0B6988 80120288 00000000 */ nop
/* 0B698C 8012028C 46800020 */ cvt.s.w $f0, $f0
/* 0B6990 80120290 46000021 */ cvt.d.s $f0, $f0
/* 0B6994 80120294 46220002 */ mul.d $f0, $f0, $f2
/* 0B6998 80120298 00000000 */ nop
/* 0B699C 8012029C 3C018015 */ lui $at, 0x8015
/* 0B69A0 801202A0 D4240018 */ ldc1 $f4, 0x18($at)
/* 0B69A4 801202A4 46240003 */ div.d $f0, $f0, $f4
/* 0B69A8 801202A8 46200020 */ cvt.s.d $f0, $f0
/* 0B69AC 801202AC E7A00020 */ swc1 $f0, 0x20($sp)
/* 0B69B0 801202B0 86020006 */ lh $v0, 6($s0)
/* 0B69B4 801202B4 44820000 */ mtc1 $v0, $f0
/* 0B69B8 801202B8 00000000 */ nop
/* 0B69BC 801202BC 46800020 */ cvt.s.w $f0, $f0
/* 0B69C0 801202C0 46000021 */ cvt.d.s $f0, $f0
/* 0B69C4 801202C4 46220002 */ mul.d $f0, $f0, $f2
/* 0B69C8 801202C8 00000000 */ nop
/* 0B69CC 801202CC 46240003 */ div.d $f0, $f0, $f4
/* 0B69D0 801202D0 46200020 */ cvt.s.d $f0, $f0
/* 0B69D4 801202D4 E7A00024 */ swc1 $f0, 0x24($sp)
/* 0B69D8 801202D8 86020008 */ lh $v0, 8($s0)
/* 0B69DC 801202DC 44820000 */ mtc1 $v0, $f0
/* 0B69E0 801202E0 00000000 */ nop
/* 0B69E4 801202E4 46800020 */ cvt.s.w $f0, $f0
/* 0B69E8 801202E8 46000021 */ cvt.d.s $f0, $f0
/* 0B69EC 801202EC 46220002 */ mul.d $f0, $f0, $f2
/* 0B69F0 801202F0 00000000 */ nop
/* 0B69F4 801202F4 0220202D */ daddu $a0, $s1, $zero
/* 0B69F8 801202F8 0260282D */ daddu $a1, $s3, $zero
/* 0B69FC 801202FC 46240003 */ div.d $f0, $f0, $f4
/* 0B6A00 80120300 46200020 */ cvt.s.d $f0, $f0
/* 0B6A04 80120304 0C0479C6 */ jal func_8011E718
/* 0B6A08 80120308 E7A00028 */ swc1 $f0, 0x28($sp)
/* 0B6A0C 8012030C 86030028 */ lh $v1, 0x28($s0)
/* 0B6A10 80120310 10600006 */ beqz $v1, .L8012032C
/* 0B6A14 80120314 0040302D */ daddu $a2, $v0, $zero
/* 0B6A18 80120318 94C200F4 */ lhu $v0, 0xf4($a2)
/* 0B6A1C 8012031C 2463FFFF */ addiu $v1, $v1, -1
/* 0B6A20 80120320 ACC300FC */ sw $v1, 0xfc($a2)
/* 0B6A24 80120324 34421000 */ ori $v0, $v0, 0x1000
/* 0B6A28 80120328 A4C200F4 */ sh $v0, 0xf4($a2)
.L8012032C:
/* 0B6A2C 8012032C 3C038015 */ lui $v1, 0x8015
/* 0B6A30 80120330 8C633B68 */ lw $v1, 0x3b68($v1)
/* 0B6A34 80120334 8C620000 */ lw $v0, ($v1)
/* 0B6A38 80120338 10500005 */ beq $v0, $s0, .L80120350
/* 0B6A3C 8012033C 0000202D */ daddu $a0, $zero, $zero
.L80120340:
/* 0B6A40 80120340 24630004 */ addiu $v1, $v1, 4
/* 0B6A44 80120344 8C620000 */ lw $v0, ($v1)
/* 0B6A48 80120348 1450FFFD */ bne $v0, $s0, .L80120340
/* 0B6A4C 8012034C 24840001 */ addiu $a0, $a0, 1
.L80120350:
/* 0B6A50 80120350 00041080 */ sll $v0, $a0, 2
/* 0B6A54 80120354 84C300F6 */ lh $v1, 0xf6($a2)
/* 0B6A58 80120358 00521021 */ addu $v0, $v0, $s2
/* 0B6A5C 8012035C AC430000 */ sw $v1, ($v0)
/* 0B6A60 80120360 8E04001C */ lw $a0, 0x1c($s0)
/* 0B6A64 80120364 10800004 */ beqz $a0, .L80120378
/* 0B6A68 80120368 0220282D */ daddu $a1, $s1, $zero
/* 0B6A6C 8012036C 84C600F6 */ lh $a2, 0xf6($a2)
/* 0B6A70 80120370 0C04808D */ jal func_80120234
/* 0B6A74 80120374 0240382D */ daddu $a3, $s2, $zero
.L80120378:
/* 0B6A78 80120378 8E040018 */ lw $a0, 0x18($s0)
/* 0B6A7C 8012037C 10800004 */ beqz $a0, .L80120390
/* 0B6A80 80120380 0220282D */ daddu $a1, $s1, $zero
/* 0B6A84 80120384 0260302D */ daddu $a2, $s3, $zero
/* 0B6A88 80120388 0C04808D */ jal func_80120234
/* 0B6A8C 8012038C 0240382D */ daddu $a3, $s2, $zero
.L80120390:
/* 0B6A90 80120390 8FBF0040 */ lw $ra, 0x40($sp)
/* 0B6A94 80120394 8FB3003C */ lw $s3, 0x3c($sp)
/* 0B6A98 80120398 8FB20038 */ lw $s2, 0x38($sp)
/* 0B6A9C 8012039C 8FB10034 */ lw $s1, 0x34($sp)
/* 0B6AA0 801203A0 8FB00030 */ lw $s0, 0x30($sp)
/* 0B6AA4 801203A4 03E00008 */ jr $ra
/* 0B6AA8 801203A8 27BD0048 */ addiu $sp, $sp, 0x48