papermario/asm/nonmatchings/code_16c8e0/get_defense.s
2020-09-23 23:16:13 -04:00

156 lines
8.0 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel get_defense
/* 194B9C 802662BC 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 194BA0 802662C0 AFB10014 */ sw $s1, 0x14($sp)
/* 194BA4 802662C4 00A0882D */ daddu $s1, $a1, $zero
/* 194BA8 802662C8 AFB20018 */ sw $s2, 0x18($sp)
/* 194BAC 802662CC 00C0902D */ daddu $s2, $a2, $zero
/* 194BB0 802662D0 AFB00010 */ sw $s0, 0x10($sp)
/* 194BB4 802662D4 241000FF */ addiu $s0, $zero, 0xff
/* 194BB8 802662D8 12200065 */ beqz $s1, .L80266470
/* 194BBC 802662DC AFBF001C */ sw $ra, 0x1c($sp)
/* 194BC0 802662E0 32420002 */ andi $v0, $s2, 2
/* 194BC4 802662E4 10400007 */ beqz $v0, .L80266304
/* 194BC8 802662E8 0220202D */ daddu $a0, $s1, $zero
/* 194BCC 802662EC 0C099791 */ jal lookup_defense
/* 194BD0 802662F0 24050002 */ addiu $a1, $zero, 2
/* 194BD4 802662F4 0040182D */ daddu $v1, $v0, $zero
/* 194BD8 802662F8 0070102A */ slt $v0, $v1, $s0
/* 194BDC 802662FC 54400001 */ bnel $v0, $zero, .L80266304
/* 194BE0 80266300 0060802D */ daddu $s0, $v1, $zero
.L80266304:
/* 194BE4 80266304 32420004 */ andi $v0, $s2, 4
/* 194BE8 80266308 10400007 */ beqz $v0, .L80266328
/* 194BEC 8026630C 0220202D */ daddu $a0, $s1, $zero
/* 194BF0 80266310 0C099791 */ jal lookup_defense
/* 194BF4 80266314 24050003 */ addiu $a1, $zero, 3
/* 194BF8 80266318 0040182D */ daddu $v1, $v0, $zero
/* 194BFC 8026631C 0070102A */ slt $v0, $v1, $s0
/* 194C00 80266320 54400001 */ bnel $v0, $zero, .L80266328
/* 194C04 80266324 0060802D */ daddu $s0, $v1, $zero
.L80266328:
/* 194C08 80266328 32420008 */ andi $v0, $s2, 8
/* 194C0C 8026632C 10400007 */ beqz $v0, .L8026634C
/* 194C10 80266330 0220202D */ daddu $a0, $s1, $zero
/* 194C14 80266334 0C099791 */ jal lookup_defense
/* 194C18 80266338 24050004 */ addiu $a1, $zero, 4
/* 194C1C 8026633C 0040182D */ daddu $v1, $v0, $zero
/* 194C20 80266340 0070102A */ slt $v0, $v1, $s0
/* 194C24 80266344 54400001 */ bnel $v0, $zero, .L8026634C
/* 194C28 80266348 0060802D */ daddu $s0, $v1, $zero
.L8026634C:
/* 194C2C 8026634C 32420010 */ andi $v0, $s2, 0x10
/* 194C30 80266350 10400007 */ beqz $v0, .L80266370
/* 194C34 80266354 0220202D */ daddu $a0, $s1, $zero
/* 194C38 80266358 0C099791 */ jal lookup_defense
/* 194C3C 8026635C 24050007 */ addiu $a1, $zero, 7
/* 194C40 80266360 0040182D */ daddu $v1, $v0, $zero
/* 194C44 80266364 0070102A */ slt $v0, $v1, $s0
/* 194C48 80266368 54400001 */ bnel $v0, $zero, .L80266370
/* 194C4C 8026636C 0060802D */ daddu $s0, $v1, $zero
.L80266370:
/* 194C50 80266370 32420040 */ andi $v0, $s2, 0x40
/* 194C54 80266374 10400007 */ beqz $v0, .L80266394
/* 194C58 80266378 0220202D */ daddu $a0, $s1, $zero
/* 194C5C 8026637C 0C099791 */ jal lookup_defense
/* 194C60 80266380 24050008 */ addiu $a1, $zero, 8
/* 194C64 80266384 0040182D */ daddu $v1, $v0, $zero
/* 194C68 80266388 0070102A */ slt $v0, $v1, $s0
/* 194C6C 8026638C 54400001 */ bnel $v0, $zero, .L80266394
/* 194C70 80266390 0060802D */ daddu $s0, $v1, $zero
.L80266394:
/* 194C74 80266394 32420080 */ andi $v0, $s2, 0x80
/* 194C78 80266398 10400007 */ beqz $v0, .L802663B8
/* 194C7C 8026639C 0220202D */ daddu $a0, $s1, $zero
/* 194C80 802663A0 0C099791 */ jal lookup_defense
/* 194C84 802663A4 24050009 */ addiu $a1, $zero, 9
/* 194C88 802663A8 0040182D */ daddu $v1, $v0, $zero
/* 194C8C 802663AC 0070102A */ slt $v0, $v1, $s0
/* 194C90 802663B0 54400001 */ bnel $v0, $zero, .L802663B8
/* 194C94 802663B4 0060802D */ daddu $s0, $v1, $zero
.L802663B8:
/* 194C98 802663B8 32420100 */ andi $v0, $s2, 0x100
/* 194C9C 802663BC 10400007 */ beqz $v0, .L802663DC
/* 194CA0 802663C0 0220202D */ daddu $a0, $s1, $zero
/* 194CA4 802663C4 0C099791 */ jal lookup_defense
/* 194CA8 802663C8 2405000A */ addiu $a1, $zero, 0xa
/* 194CAC 802663CC 0040182D */ daddu $v1, $v0, $zero
/* 194CB0 802663D0 0070102A */ slt $v0, $v1, $s0
/* 194CB4 802663D4 54400001 */ bnel $v0, $zero, .L802663DC
/* 194CB8 802663D8 0060802D */ daddu $s0, $v1, $zero
.L802663DC:
/* 194CBC 802663DC 32420200 */ andi $v0, $s2, 0x200
/* 194CC0 802663E0 10400007 */ beqz $v0, .L80266400
/* 194CC4 802663E4 0220202D */ daddu $a0, $s1, $zero
/* 194CC8 802663E8 0C099791 */ jal lookup_defense
/* 194CCC 802663EC 2405000B */ addiu $a1, $zero, 0xb
/* 194CD0 802663F0 0040182D */ daddu $v1, $v0, $zero
/* 194CD4 802663F4 0070102A */ slt $v0, $v1, $s0
/* 194CD8 802663F8 54400001 */ bnel $v0, $zero, .L80266400
/* 194CDC 802663FC 0060802D */ daddu $s0, $v1, $zero
.L80266400:
/* 194CE0 80266400 32420020 */ andi $v0, $s2, 0x20
/* 194CE4 80266404 10400007 */ beqz $v0, .L80266424
/* 194CE8 80266408 0220202D */ daddu $a0, $s1, $zero
/* 194CEC 8026640C 0C099791 */ jal lookup_defense
/* 194CF0 80266410 2405000C */ addiu $a1, $zero, 0xc
/* 194CF4 80266414 0040182D */ daddu $v1, $v0, $zero
/* 194CF8 80266418 0070102A */ slt $v0, $v1, $s0
/* 194CFC 8026641C 54400001 */ bnel $v0, $zero, .L80266424
/* 194D00 80266420 0060802D */ daddu $s0, $v1, $zero
.L80266424:
/* 194D04 80266424 32420800 */ andi $v0, $s2, 0x800
/* 194D08 80266428 10400007 */ beqz $v0, .L80266448
/* 194D0C 8026642C 0220202D */ daddu $a0, $s1, $zero
/* 194D10 80266430 0C099791 */ jal lookup_defense
/* 194D14 80266434 2405000D */ addiu $a1, $zero, 0xd
/* 194D18 80266438 0040182D */ daddu $v1, $v0, $zero
/* 194D1C 8026643C 0070102A */ slt $v0, $v1, $s0
/* 194D20 80266440 54400001 */ bnel $v0, $zero, .L80266448
/* 194D24 80266444 0060802D */ daddu $s0, $v1, $zero
.L80266448:
/* 194D28 80266448 3C020004 */ lui $v0, 4
/* 194D2C 8026644C 02421024 */ and $v0, $s2, $v0
/* 194D30 80266450 10400007 */ beqz $v0, .L80266470
/* 194D34 80266454 0220202D */ daddu $a0, $s1, $zero
/* 194D38 80266458 0C099791 */ jal lookup_defense
/* 194D3C 8026645C 2405000F */ addiu $a1, $zero, 0xf
/* 194D40 80266460 0040182D */ daddu $v1, $v0, $zero
/* 194D44 80266464 0070102A */ slt $v0, $v1, $s0
/* 194D48 80266468 54400001 */ bnel $v0, $zero, .L80266470
/* 194D4C 8026646C 0060802D */ daddu $s0, $v1, $zero
.L80266470:
/* 194D50 80266470 240200FF */ addiu $v0, $zero, 0xff
/* 194D54 80266474 16020009 */ bne $s0, $v0, .L8026649C
/* 194D58 80266478 3C020800 */ lui $v0, 0x800
/* 194D5C 8026647C 0220202D */ daddu $a0, $s1, $zero
/* 194D60 80266480 0C099791 */ jal lookup_defense
/* 194D64 80266484 24050001 */ addiu $a1, $zero, 1
/* 194D68 80266488 0040182D */ daddu $v1, $v0, $zero
/* 194D6C 8026648C 286200FF */ slti $v0, $v1, 0xff
/* 194D70 80266490 54400001 */ bnel $v0, $zero, .L80266498
/* 194D74 80266494 0060802D */ daddu $s0, $v1, $zero
.L80266498:
/* 194D78 80266498 3C020800 */ lui $v0, 0x800
.L8026649C:
/* 194D7C 8026649C 02421024 */ and $v0, $s2, $v0
/* 194D80 802664A0 10400007 */ beqz $v0, .L802664C0
/* 194D84 802664A4 24020063 */ addiu $v0, $zero, 0x63
/* 194D88 802664A8 16020003 */ bne $s0, $v0, .L802664B8
/* 194D8C 802664AC 00000000 */ nop
/* 194D90 802664B0 08099930 */ j .L802664C0
/* 194D94 802664B4 241003E7 */ addiu $s0, $zero, 0x3e7
.L802664B8:
/* 194D98 802664B8 5E000001 */ bgtzl $s0, .L802664C0
/* 194D9C 802664BC 0000802D */ daddu $s0, $zero, $zero
.L802664C0:
/* 194DA0 802664C0 0200102D */ daddu $v0, $s0, $zero
/* 194DA4 802664C4 8FBF001C */ lw $ra, 0x1c($sp)
/* 194DA8 802664C8 8FB20018 */ lw $s2, 0x18($sp)
/* 194DAC 802664CC 8FB10014 */ lw $s1, 0x14($sp)
/* 194DB0 802664D0 8FB00010 */ lw $s0, 0x10($sp)
/* 194DB4 802664D4 03E00008 */ jr $ra
/* 194DB8 802664D8 27BD0020 */ addiu $sp, $sp, 0x20