papermario/asm/nonmatchings/battle/area_sam2/63DD60/func_802194E0_63E6C0.s
2021-01-14 17:06:56 +09:00

135 lines
7.0 KiB
ArmAsm
Generated

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802194E0_63E6C0
/* 63E6C0 802194E0 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 63E6C4 802194E4 AFB60038 */ sw $s6, 0x38($sp)
/* 63E6C8 802194E8 0080B02D */ daddu $s6, $a0, $zero
/* 63E6CC 802194EC 27A50010 */ addiu $a1, $sp, 0x10
/* 63E6D0 802194F0 27A60014 */ addiu $a2, $sp, 0x14
/* 63E6D4 802194F4 27A70018 */ addiu $a3, $sp, 0x18
/* 63E6D8 802194F8 AFBF003C */ sw $ra, 0x3c($sp)
/* 63E6DC 802194FC AFB50034 */ sw $s5, 0x34($sp)
/* 63E6E0 80219500 AFB40030 */ sw $s4, 0x30($sp)
/* 63E6E4 80219504 AFB3002C */ sw $s3, 0x2c($sp)
/* 63E6E8 80219508 AFB20028 */ sw $s2, 0x28($sp)
/* 63E6EC 8021950C AFB10024 */ sw $s1, 0x24($sp)
/* 63E6F0 80219510 0C0470AC */ jal func_8011C2B0
/* 63E6F4 80219514 AFB00020 */ sw $s0, 0x20($sp)
/* 63E6F8 80219518 8FA20018 */ lw $v0, 0x18($sp)
/* 63E6FC 8021951C 18400052 */ blez $v0, .L80219668
/* 63E700 80219520 0000802D */ daddu $s0, $zero, $zero
/* 63E704 80219524 3C038022 */ lui $v1, %hi(D_80222990)
/* 63E708 80219528 24632990 */ addiu $v1, $v1, %lo(D_80222990)
/* 63E70C 8021952C 00161040 */ sll $v0, $s6, 1
/* 63E710 80219530 0043A021 */ addu $s4, $v0, $v1
/* 63E714 80219534 3C135555 */ lui $s3, 0x5555
/* 63E718 80219538 36735556 */ ori $s3, $s3, 0x5556
/* 63E71C 8021953C 34158000 */ ori $s5, $zero, 0x8000
/* 63E720 80219540 02130018 */ mult $s0, $s3
.L80219544:
/* 63E724 80219544 001097C3 */ sra $s2, $s0, 0x1f
/* 63E728 80219548 00001810 */ mfhi $v1
/* 63E72C 8021954C 00721823 */ subu $v1, $v1, $s2
/* 63E730 80219550 00031040 */ sll $v0, $v1, 1
/* 63E734 80219554 00431021 */ addu $v0, $v0, $v1
/* 63E738 80219558 02021023 */ subu $v0, $s0, $v0
/* 63E73C 8021955C 96830000 */ lhu $v1, ($s4)
/* 63E740 80219560 24420001 */ addiu $v0, $v0, 1
/* 63E744 80219564 00620018 */ mult $v1, $v0
/* 63E748 80219568 00101100 */ sll $v0, $s0, 4
/* 63E74C 8021956C 00001812 */ mflo $v1
/* 63E750 80219570 00702021 */ addu $a0, $v1, $s0
/* 63E754 80219574 8FA30014 */ lw $v1, 0x14($sp)
/* 63E758 80219578 3084FFFF */ andi $a0, $a0, 0xffff
/* 63E75C 8021957C 0C01917C */ jal sins
/* 63E760 80219580 00628821 */ addu $s1, $v1, $v0
/* 63E764 80219584 00021400 */ sll $v0, $v0, 0x10
/* 63E768 80219588 00021403 */ sra $v0, $v0, 0x10
/* 63E76C 8021958C 00551021 */ addu $v0, $v0, $s5
/* 63E770 80219590 00021FC2 */ srl $v1, $v0, 0x1f
/* 63E774 80219594 00431021 */ addu $v0, $v0, $v1
/* 63E778 80219598 000213C0 */ sll $v0, $v0, 0xf
/* 63E77C 8021959C 00021403 */ sra $v0, $v0, 0x10
/* 63E780 802195A0 00021880 */ sll $v1, $v0, 2
/* 63E784 802195A4 00621821 */ addu $v1, $v1, $v0
/* 63E788 802195A8 00031140 */ sll $v0, $v1, 5
/* 63E78C 802195AC 00431823 */ subu $v1, $v0, $v1
/* 63E790 802195B0 04610002 */ bgez $v1, .L802195BC
/* 63E794 802195B4 0060102D */ daddu $v0, $v1, $zero
/* 63E798 802195B8 24627FFF */ addiu $v0, $v1, 0x7fff
.L802195BC:
/* 63E79C 802195BC 000223C3 */ sra $a0, $v0, 0xf
/* 63E7A0 802195C0 24820064 */ addiu $v0, $a0, 0x64
/* 63E7A4 802195C4 A222000E */ sb $v0, 0xe($s1)
/* 63E7A8 802195C8 24820032 */ addiu $v0, $a0, 0x32
/* 63E7AC 802195CC 02121823 */ subu $v1, $s0, $s2
/* 63E7B0 802195D0 00032843 */ sra $a1, $v1, 1
/* 63E7B4 802195D4 00B30018 */ mult $a1, $s3
/* 63E7B8 802195D8 A222000D */ sb $v0, 0xd($s1)
/* 63E7BC 802195DC 96840000 */ lhu $a0, ($s4)
/* 63E7C0 802195E0 00031FC3 */ sra $v1, $v1, 0x1f
/* 63E7C4 802195E4 000433C2 */ srl $a2, $a0, 0xf
/* 63E7C8 802195E8 00004810 */ mfhi $t1
/* 63E7CC 802195EC 01231823 */ subu $v1, $t1, $v1
/* 63E7D0 802195F0 00031040 */ sll $v0, $v1, 1
/* 63E7D4 802195F4 00431021 */ addu $v0, $v0, $v1
/* 63E7D8 802195F8 00A22823 */ subu $a1, $a1, $v0
/* 63E7DC 802195FC 24A50001 */ addiu $a1, $a1, 1
/* 63E7E0 80219600 00052BC0 */ sll $a1, $a1, 0xf
/* 63E7E4 80219604 00C50018 */ mult $a2, $a1
/* 63E7E8 80219608 00042382 */ srl $a0, $a0, 0xe
/* 63E7EC 8021960C 000423C0 */ sll $a0, $a0, 0xf
/* 63E7F0 80219610 00001812 */ mflo $v1
/* 63E7F4 80219614 00642021 */ addu $a0, $v1, $a0
/* 63E7F8 80219618 00902021 */ addu $a0, $a0, $s0
/* 63E7FC 8021961C 0C01917C */ jal sins
/* 63E800 80219620 3084FFFF */ andi $a0, $a0, 0xffff
/* 63E804 80219624 00021400 */ sll $v0, $v0, 0x10
/* 63E808 80219628 00021403 */ sra $v0, $v0, 0x10
/* 63E80C 8021962C 9223000C */ lbu $v1, 0xc($s1)
/* 63E810 80219630 00551021 */ addu $v0, $v0, $s5
/* 63E814 80219634 00620018 */ mult $v1, $v0
/* 63E818 80219638 00001812 */ mflo $v1
/* 63E81C 8021963C 04610004 */ bgez $v1, .L80219650
/* 63E820 80219640 00031403 */ sra $v0, $v1, 0x10
/* 63E824 80219644 3402FFFF */ ori $v0, $zero, 0xffff
/* 63E828 80219648 00621821 */ addu $v1, $v1, $v0
/* 63E82C 8021964C 00031403 */ sra $v0, $v1, 0x10
.L80219650:
/* 63E830 80219650 A222000C */ sb $v0, 0xc($s1)
/* 63E834 80219654 8FA20018 */ lw $v0, 0x18($sp)
/* 63E838 80219658 26100001 */ addiu $s0, $s0, 1
/* 63E83C 8021965C 0202102A */ slt $v0, $s0, $v0
/* 63E840 80219660 1440FFB8 */ bnez $v0, .L80219544
/* 63E844 80219664 02130018 */ mult $s0, $s3
.L80219668:
/* 63E848 80219668 3C03800A */ lui $v1, %hi(gMasterGfxPos)
/* 63E84C 8021966C 2463A66C */ addiu $v1, $v1, %lo(gMasterGfxPos)
/* 63E850 80219670 8C620000 */ lw $v0, ($v1)
/* 63E854 80219674 02C0202D */ daddu $a0, $s6, $zero
/* 63E858 80219678 0040802D */ daddu $s0, $v0, $zero
/* 63E85C 8021967C 24420008 */ addiu $v0, $v0, 8
/* 63E860 80219680 AC620000 */ sw $v0, ($v1)
/* 63E864 80219684 3C02DE00 */ lui $v0, 0xde00
/* 63E868 80219688 0C0470BB */ jal func_8011C2EC
/* 63E86C 8021968C AE020000 */ sw $v0, ($s0)
/* 63E870 80219690 AE020004 */ sw $v0, 4($s0)
/* 63E874 80219694 3C028022 */ lui $v0, %hi(D_80222990)
/* 63E878 80219698 24422990 */ addiu $v0, $v0, %lo(D_80222990)
/* 63E87C 8021969C 00161840 */ sll $v1, $s6, 1
/* 63E880 802196A0 00621821 */ addu $v1, $v1, $v0
/* 63E884 802196A4 94620000 */ lhu $v0, ($v1)
/* 63E888 802196A8 24420253 */ addiu $v0, $v0, 0x253
/* 63E88C 802196AC A4620000 */ sh $v0, ($v1)
/* 63E890 802196B0 8FBF003C */ lw $ra, 0x3c($sp)
/* 63E894 802196B4 8FB60038 */ lw $s6, 0x38($sp)
/* 63E898 802196B8 8FB50034 */ lw $s5, 0x34($sp)
/* 63E89C 802196BC 8FB40030 */ lw $s4, 0x30($sp)
/* 63E8A0 802196C0 8FB3002C */ lw $s3, 0x2c($sp)
/* 63E8A4 802196C4 8FB20028 */ lw $s2, 0x28($sp)
/* 63E8A8 802196C8 8FB10024 */ lw $s1, 0x24($sp)
/* 63E8AC 802196CC 8FB00020 */ lw $s0, 0x20($sp)
/* 63E8B0 802196D0 03E00008 */ jr $ra
/* 63E8B4 802196D4 27BD0040 */ addiu $sp, $sp, 0x40