papermario/asm/nonmatchings/battle/area_sam2/63DD60/func_80218EA0_63E080.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_80218EA0_63E080
/* 63E080 80218EA0 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 63E084 80218EA4 AFB60038 */ sw $s6, 0x38($sp)
/* 63E088 80218EA8 0080B02D */ daddu $s6, $a0, $zero
/* 63E08C 80218EAC 27A50010 */ addiu $a1, $sp, 0x10
/* 63E090 80218EB0 27A60014 */ addiu $a2, $sp, 0x14
/* 63E094 80218EB4 27A70018 */ addiu $a3, $sp, 0x18
/* 63E098 80218EB8 AFBF003C */ sw $ra, 0x3c($sp)
/* 63E09C 80218EBC AFB50034 */ sw $s5, 0x34($sp)
/* 63E0A0 80218EC0 AFB40030 */ sw $s4, 0x30($sp)
/* 63E0A4 80218EC4 AFB3002C */ sw $s3, 0x2c($sp)
/* 63E0A8 80218EC8 AFB20028 */ sw $s2, 0x28($sp)
/* 63E0AC 80218ECC AFB10024 */ sw $s1, 0x24($sp)
/* 63E0B0 80218ED0 0C0470AC */ jal func_8011C2B0
/* 63E0B4 80218ED4 AFB00020 */ sw $s0, 0x20($sp)
/* 63E0B8 80218ED8 8FA20018 */ lw $v0, 0x18($sp)
/* 63E0BC 80218EDC 18400052 */ blez $v0, .L80219028
/* 63E0C0 80218EE0 0000802D */ daddu $s0, $zero, $zero
/* 63E0C4 80218EE4 3C038022 */ lui $v1, %hi(D_80222200)
/* 63E0C8 80218EE8 24632200 */ addiu $v1, $v1, %lo(D_80222200)
/* 63E0CC 80218EEC 00161040 */ sll $v0, $s6, 1
/* 63E0D0 80218EF0 0043A021 */ addu $s4, $v0, $v1
/* 63E0D4 80218EF4 3C135555 */ lui $s3, 0x5555
/* 63E0D8 80218EF8 36735556 */ ori $s3, $s3, 0x5556
/* 63E0DC 80218EFC 34158000 */ ori $s5, $zero, 0x8000
/* 63E0E0 80218F00 02130018 */ mult $s0, $s3
.L80218F04:
/* 63E0E4 80218F04 001097C3 */ sra $s2, $s0, 0x1f
/* 63E0E8 80218F08 00001810 */ mfhi $v1
/* 63E0EC 80218F0C 00721823 */ subu $v1, $v1, $s2
/* 63E0F0 80218F10 00031040 */ sll $v0, $v1, 1
/* 63E0F4 80218F14 00431021 */ addu $v0, $v0, $v1
/* 63E0F8 80218F18 02021023 */ subu $v0, $s0, $v0
/* 63E0FC 80218F1C 96830000 */ lhu $v1, ($s4)
/* 63E100 80218F20 24420001 */ addiu $v0, $v0, 1
/* 63E104 80218F24 00620018 */ mult $v1, $v0
/* 63E108 80218F28 00101100 */ sll $v0, $s0, 4
/* 63E10C 80218F2C 00001812 */ mflo $v1
/* 63E110 80218F30 00702021 */ addu $a0, $v1, $s0
/* 63E114 80218F34 8FA30014 */ lw $v1, 0x14($sp)
/* 63E118 80218F38 3084FFFF */ andi $a0, $a0, 0xffff
/* 63E11C 80218F3C 0C01917C */ jal sins
/* 63E120 80218F40 00628821 */ addu $s1, $v1, $v0
/* 63E124 80218F44 00021400 */ sll $v0, $v0, 0x10
/* 63E128 80218F48 00021403 */ sra $v0, $v0, 0x10
/* 63E12C 80218F4C 00551021 */ addu $v0, $v0, $s5
/* 63E130 80218F50 00021FC2 */ srl $v1, $v0, 0x1f
/* 63E134 80218F54 00431021 */ addu $v0, $v0, $v1
/* 63E138 80218F58 000213C0 */ sll $v0, $v0, 0xf
/* 63E13C 80218F5C 00021403 */ sra $v0, $v0, 0x10
/* 63E140 80218F60 00021880 */ sll $v1, $v0, 2
/* 63E144 80218F64 00621821 */ addu $v1, $v1, $v0
/* 63E148 80218F68 00031140 */ sll $v0, $v1, 5
/* 63E14C 80218F6C 00431823 */ subu $v1, $v0, $v1
/* 63E150 80218F70 04610002 */ bgez $v1, .L80218F7C
/* 63E154 80218F74 0060102D */ daddu $v0, $v1, $zero
/* 63E158 80218F78 24627FFF */ addiu $v0, $v1, 0x7fff
.L80218F7C:
/* 63E15C 80218F7C 000223C3 */ sra $a0, $v0, 0xf
/* 63E160 80218F80 24820064 */ addiu $v0, $a0, 0x64
/* 63E164 80218F84 A222000E */ sb $v0, 0xe($s1)
/* 63E168 80218F88 24820032 */ addiu $v0, $a0, 0x32
/* 63E16C 80218F8C 02121823 */ subu $v1, $s0, $s2
/* 63E170 80218F90 00032843 */ sra $a1, $v1, 1
/* 63E174 80218F94 00B30018 */ mult $a1, $s3
/* 63E178 80218F98 A222000D */ sb $v0, 0xd($s1)
/* 63E17C 80218F9C 96840000 */ lhu $a0, ($s4)
/* 63E180 80218FA0 00031FC3 */ sra $v1, $v1, 0x1f
/* 63E184 80218FA4 000433C2 */ srl $a2, $a0, 0xf
/* 63E188 80218FA8 00004810 */ mfhi $t1
/* 63E18C 80218FAC 01231823 */ subu $v1, $t1, $v1
/* 63E190 80218FB0 00031040 */ sll $v0, $v1, 1
/* 63E194 80218FB4 00431021 */ addu $v0, $v0, $v1
/* 63E198 80218FB8 00A22823 */ subu $a1, $a1, $v0
/* 63E19C 80218FBC 24A50001 */ addiu $a1, $a1, 1
/* 63E1A0 80218FC0 00052BC0 */ sll $a1, $a1, 0xf
/* 63E1A4 80218FC4 00C50018 */ mult $a2, $a1
/* 63E1A8 80218FC8 00042382 */ srl $a0, $a0, 0xe
/* 63E1AC 80218FCC 000423C0 */ sll $a0, $a0, 0xf
/* 63E1B0 80218FD0 00001812 */ mflo $v1
/* 63E1B4 80218FD4 00642021 */ addu $a0, $v1, $a0
/* 63E1B8 80218FD8 00902021 */ addu $a0, $a0, $s0
/* 63E1BC 80218FDC 0C01917C */ jal sins
/* 63E1C0 80218FE0 3084FFFF */ andi $a0, $a0, 0xffff
/* 63E1C4 80218FE4 00021400 */ sll $v0, $v0, 0x10
/* 63E1C8 80218FE8 00021403 */ sra $v0, $v0, 0x10
/* 63E1CC 80218FEC 9223000C */ lbu $v1, 0xc($s1)
/* 63E1D0 80218FF0 00551021 */ addu $v0, $v0, $s5
/* 63E1D4 80218FF4 00620018 */ mult $v1, $v0
/* 63E1D8 80218FF8 00001812 */ mflo $v1
/* 63E1DC 80218FFC 04610004 */ bgez $v1, .L80219010
/* 63E1E0 80219000 00031403 */ sra $v0, $v1, 0x10
/* 63E1E4 80219004 3402FFFF */ ori $v0, $zero, 0xffff
/* 63E1E8 80219008 00621821 */ addu $v1, $v1, $v0
/* 63E1EC 8021900C 00031403 */ sra $v0, $v1, 0x10
.L80219010:
/* 63E1F0 80219010 A222000C */ sb $v0, 0xc($s1)
/* 63E1F4 80219014 8FA20018 */ lw $v0, 0x18($sp)
/* 63E1F8 80219018 26100001 */ addiu $s0, $s0, 1
/* 63E1FC 8021901C 0202102A */ slt $v0, $s0, $v0
/* 63E200 80219020 1440FFB8 */ bnez $v0, .L80218F04
/* 63E204 80219024 02130018 */ mult $s0, $s3
.L80219028:
/* 63E208 80219028 3C03800A */ lui $v1, %hi(gMasterGfxPos)
/* 63E20C 8021902C 2463A66C */ addiu $v1, $v1, %lo(gMasterGfxPos)
/* 63E210 80219030 8C620000 */ lw $v0, ($v1)
/* 63E214 80219034 02C0202D */ daddu $a0, $s6, $zero
/* 63E218 80219038 0040802D */ daddu $s0, $v0, $zero
/* 63E21C 8021903C 24420008 */ addiu $v0, $v0, 8
/* 63E220 80219040 AC620000 */ sw $v0, ($v1)
/* 63E224 80219044 3C02DE00 */ lui $v0, 0xde00
/* 63E228 80219048 0C0470BB */ jal func_8011C2EC
/* 63E22C 8021904C AE020000 */ sw $v0, ($s0)
/* 63E230 80219050 AE020004 */ sw $v0, 4($s0)
/* 63E234 80219054 3C028022 */ lui $v0, %hi(D_80222200)
/* 63E238 80219058 24422200 */ addiu $v0, $v0, %lo(D_80222200)
/* 63E23C 8021905C 00161840 */ sll $v1, $s6, 1
/* 63E240 80219060 00621821 */ addu $v1, $v1, $v0
/* 63E244 80219064 94620000 */ lhu $v0, ($v1)
/* 63E248 80219068 24420253 */ addiu $v0, $v0, 0x253
/* 63E24C 8021906C A4620000 */ sh $v0, ($v1)
/* 63E250 80219070 8FBF003C */ lw $ra, 0x3c($sp)
/* 63E254 80219074 8FB60038 */ lw $s6, 0x38($sp)
/* 63E258 80219078 8FB50034 */ lw $s5, 0x34($sp)
/* 63E25C 8021907C 8FB40030 */ lw $s4, 0x30($sp)
/* 63E260 80219080 8FB3002C */ lw $s3, 0x2c($sp)
/* 63E264 80219084 8FB20028 */ lw $s2, 0x28($sp)
/* 63E268 80219088 8FB10024 */ lw $s1, 0x24($sp)
/* 63E26C 8021908C 8FB00020 */ lw $s0, 0x20($sp)
/* 63E270 80219090 03E00008 */ jr $ra
/* 63E274 80219094 27BD0040 */ addiu $sp, $sp, 0x40