papermario/asm/nonmatchings/battle/area_sam/6253E0/func_80219BB0_625750.s
2020-12-28 14:34:30 +09:00

135 lines
7.0 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80219BB0_625750
/* 625750 80219BB0 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 625754 80219BB4 AFB60038 */ sw $s6, 0x38($sp)
/* 625758 80219BB8 0080B02D */ daddu $s6, $a0, $zero
/* 62575C 80219BBC 27A50010 */ addiu $a1, $sp, 0x10
/* 625760 80219BC0 27A60014 */ addiu $a2, $sp, 0x14
/* 625764 80219BC4 27A70018 */ addiu $a3, $sp, 0x18
/* 625768 80219BC8 AFBF003C */ sw $ra, 0x3c($sp)
/* 62576C 80219BCC AFB50034 */ sw $s5, 0x34($sp)
/* 625770 80219BD0 AFB40030 */ sw $s4, 0x30($sp)
/* 625774 80219BD4 AFB3002C */ sw $s3, 0x2c($sp)
/* 625778 80219BD8 AFB20028 */ sw $s2, 0x28($sp)
/* 62577C 80219BDC AFB10024 */ sw $s1, 0x24($sp)
/* 625780 80219BE0 0C0470AC */ jal func_8011C2B0
/* 625784 80219BE4 AFB00020 */ sw $s0, 0x20($sp)
/* 625788 80219BE8 8FA20018 */ lw $v0, 0x18($sp)
/* 62578C 80219BEC 18400052 */ blez $v0, .L80219D38
/* 625790 80219BF0 0000802D */ daddu $s0, $zero, $zero
/* 625794 80219BF4 3C038023 */ lui $v1, %hi(D_8022EFD0)
/* 625798 80219BF8 2463EFD0 */ addiu $v1, $v1, %lo(D_8022EFD0)
/* 62579C 80219BFC 00161040 */ sll $v0, $s6, 1
/* 6257A0 80219C00 0043A021 */ addu $s4, $v0, $v1
/* 6257A4 80219C04 3C135555 */ lui $s3, 0x5555
/* 6257A8 80219C08 36735556 */ ori $s3, $s3, 0x5556
/* 6257AC 80219C0C 34158000 */ ori $s5, $zero, 0x8000
/* 6257B0 80219C10 02130018 */ mult $s0, $s3
.L80219C14:
/* 6257B4 80219C14 001097C3 */ sra $s2, $s0, 0x1f
/* 6257B8 80219C18 00001810 */ mfhi $v1
/* 6257BC 80219C1C 00721823 */ subu $v1, $v1, $s2
/* 6257C0 80219C20 00031040 */ sll $v0, $v1, 1
/* 6257C4 80219C24 00431021 */ addu $v0, $v0, $v1
/* 6257C8 80219C28 02021023 */ subu $v0, $s0, $v0
/* 6257CC 80219C2C 96830000 */ lhu $v1, ($s4)
/* 6257D0 80219C30 24420001 */ addiu $v0, $v0, 1
/* 6257D4 80219C34 00620018 */ mult $v1, $v0
/* 6257D8 80219C38 00101100 */ sll $v0, $s0, 4
/* 6257DC 80219C3C 00001812 */ mflo $v1
/* 6257E0 80219C40 00702021 */ addu $a0, $v1, $s0
/* 6257E4 80219C44 8FA30014 */ lw $v1, 0x14($sp)
/* 6257E8 80219C48 3084FFFF */ andi $a0, $a0, 0xffff
/* 6257EC 80219C4C 0C01917C */ jal sins
/* 6257F0 80219C50 00628821 */ addu $s1, $v1, $v0
/* 6257F4 80219C54 00021400 */ sll $v0, $v0, 0x10
/* 6257F8 80219C58 00021403 */ sra $v0, $v0, 0x10
/* 6257FC 80219C5C 00551021 */ addu $v0, $v0, $s5
/* 625800 80219C60 00021FC2 */ srl $v1, $v0, 0x1f
/* 625804 80219C64 00431021 */ addu $v0, $v0, $v1
/* 625808 80219C68 000213C0 */ sll $v0, $v0, 0xf
/* 62580C 80219C6C 00021403 */ sra $v0, $v0, 0x10
/* 625810 80219C70 00021880 */ sll $v1, $v0, 2
/* 625814 80219C74 00621821 */ addu $v1, $v1, $v0
/* 625818 80219C78 00031140 */ sll $v0, $v1, 5
/* 62581C 80219C7C 00431823 */ subu $v1, $v0, $v1
/* 625820 80219C80 04610002 */ bgez $v1, .L80219C8C
/* 625824 80219C84 0060102D */ daddu $v0, $v1, $zero
/* 625828 80219C88 24627FFF */ addiu $v0, $v1, 0x7fff
.L80219C8C:
/* 62582C 80219C8C 000223C3 */ sra $a0, $v0, 0xf
/* 625830 80219C90 24820064 */ addiu $v0, $a0, 0x64
/* 625834 80219C94 A222000E */ sb $v0, 0xe($s1)
/* 625838 80219C98 24820032 */ addiu $v0, $a0, 0x32
/* 62583C 80219C9C 02121823 */ subu $v1, $s0, $s2
/* 625840 80219CA0 00032843 */ sra $a1, $v1, 1
/* 625844 80219CA4 00B30018 */ mult $a1, $s3
/* 625848 80219CA8 A222000D */ sb $v0, 0xd($s1)
/* 62584C 80219CAC 96840000 */ lhu $a0, ($s4)
/* 625850 80219CB0 00031FC3 */ sra $v1, $v1, 0x1f
/* 625854 80219CB4 000433C2 */ srl $a2, $a0, 0xf
/* 625858 80219CB8 00004810 */ mfhi $t1
/* 62585C 80219CBC 01231823 */ subu $v1, $t1, $v1
/* 625860 80219CC0 00031040 */ sll $v0, $v1, 1
/* 625864 80219CC4 00431021 */ addu $v0, $v0, $v1
/* 625868 80219CC8 00A22823 */ subu $a1, $a1, $v0
/* 62586C 80219CCC 24A50001 */ addiu $a1, $a1, 1
/* 625870 80219CD0 00052BC0 */ sll $a1, $a1, 0xf
/* 625874 80219CD4 00C50018 */ mult $a2, $a1
/* 625878 80219CD8 00042382 */ srl $a0, $a0, 0xe
/* 62587C 80219CDC 000423C0 */ sll $a0, $a0, 0xf
/* 625880 80219CE0 00001812 */ mflo $v1
/* 625884 80219CE4 00642021 */ addu $a0, $v1, $a0
/* 625888 80219CE8 00902021 */ addu $a0, $a0, $s0
/* 62588C 80219CEC 0C01917C */ jal sins
/* 625890 80219CF0 3084FFFF */ andi $a0, $a0, 0xffff
/* 625894 80219CF4 00021400 */ sll $v0, $v0, 0x10
/* 625898 80219CF8 00021403 */ sra $v0, $v0, 0x10
/* 62589C 80219CFC 9223000C */ lbu $v1, 0xc($s1)
/* 6258A0 80219D00 00551021 */ addu $v0, $v0, $s5
/* 6258A4 80219D04 00620018 */ mult $v1, $v0
/* 6258A8 80219D08 00001812 */ mflo $v1
/* 6258AC 80219D0C 04610004 */ bgez $v1, .L80219D20
/* 6258B0 80219D10 00031403 */ sra $v0, $v1, 0x10
/* 6258B4 80219D14 3402FFFF */ ori $v0, $zero, 0xffff
/* 6258B8 80219D18 00621821 */ addu $v1, $v1, $v0
/* 6258BC 80219D1C 00031403 */ sra $v0, $v1, 0x10
.L80219D20:
/* 6258C0 80219D20 A222000C */ sb $v0, 0xc($s1)
/* 6258C4 80219D24 8FA20018 */ lw $v0, 0x18($sp)
/* 6258C8 80219D28 26100001 */ addiu $s0, $s0, 1
/* 6258CC 80219D2C 0202102A */ slt $v0, $s0, $v0
/* 6258D0 80219D30 1440FFB8 */ bnez $v0, .L80219C14
/* 6258D4 80219D34 02130018 */ mult $s0, $s3
.L80219D38:
/* 6258D8 80219D38 3C03800A */ lui $v1, %hi(D_8009A66C)
/* 6258DC 80219D3C 2463A66C */ addiu $v1, $v1, %lo(D_8009A66C)
/* 6258E0 80219D40 8C620000 */ lw $v0, ($v1)
/* 6258E4 80219D44 02C0202D */ daddu $a0, $s6, $zero
/* 6258E8 80219D48 0040802D */ daddu $s0, $v0, $zero
/* 6258EC 80219D4C 24420008 */ addiu $v0, $v0, 8
/* 6258F0 80219D50 AC620000 */ sw $v0, ($v1)
/* 6258F4 80219D54 3C02DE00 */ lui $v0, 0xde00
/* 6258F8 80219D58 0C0470BB */ jal func_8011C2EC
/* 6258FC 80219D5C AE020000 */ sw $v0, ($s0)
/* 625900 80219D60 AE020004 */ sw $v0, 4($s0)
/* 625904 80219D64 3C028023 */ lui $v0, %hi(D_8022EFD0)
/* 625908 80219D68 2442EFD0 */ addiu $v0, $v0, %lo(D_8022EFD0)
/* 62590C 80219D6C 00161840 */ sll $v1, $s6, 1
/* 625910 80219D70 00621821 */ addu $v1, $v1, $v0
/* 625914 80219D74 94620000 */ lhu $v0, ($v1)
/* 625918 80219D78 24420253 */ addiu $v0, $v0, 0x253
/* 62591C 80219D7C A4620000 */ sh $v0, ($v1)
/* 625920 80219D80 8FBF003C */ lw $ra, 0x3c($sp)
/* 625924 80219D84 8FB60038 */ lw $s6, 0x38($sp)
/* 625928 80219D88 8FB50034 */ lw $s5, 0x34($sp)
/* 62592C 80219D8C 8FB40030 */ lw $s4, 0x30($sp)
/* 625930 80219D90 8FB3002C */ lw $s3, 0x2c($sp)
/* 625934 80219D94 8FB20028 */ lw $s2, 0x28($sp)
/* 625938 80219D98 8FB10024 */ lw $s1, 0x24($sp)
/* 62593C 80219D9C 8FB00020 */ lw $s0, 0x20($sp)
/* 625940 80219DA0 03E00008 */ jr $ra
/* 625944 80219DA4 27BD0040 */ addiu $sp, $sp, 0x40