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

144 lines
6.7 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_801108B8
/* 0A6FB8 801108B8 3C020002 */ lui $v0, 2
/* 0A6FBC 801108BC 8C830000 */ lw $v1, ($a0)
/* 0A6FC0 801108C0 90860004 */ lbu $a2, 4($a0)
/* 0A6FC4 801108C4 00621024 */ and $v0, $v1, $v0
/* 0A6FC8 801108C8 10400006 */ beqz $v0, .L801108E4
/* 0A6FCC 801108CC 0000282D */ daddu $a1, $zero, $zero
/* 0A6FD0 801108D0 24050080 */ addiu $a1, $zero, 0x80
/* 0A6FD4 801108D4 3C02FFFD */ lui $v0, 0xfffd
/* 0A6FD8 801108D8 3442FFFF */ ori $v0, $v0, 0xffff
/* 0A6FDC 801108DC 00621024 */ and $v0, $v1, $v0
/* 0A6FE0 801108E0 AC820000 */ sw $v0, ($a0)
.L801108E4:
/* 0A6FE4 801108E4 3C038016 */ lui $v1, 0x8016
/* 0A6FE8 801108E8 8463A552 */ lh $v1, -0x5aae($v1)
/* 0A6FEC 801108EC 2402FFFF */ addiu $v0, $zero, -1
/* 0A6FF0 801108F0 10620005 */ beq $v1, $v0, .L80110908
/* 0A6FF4 801108F4 30624000 */ andi $v0, $v1, 0x4000
/* 0A6FF8 801108F8 10400003 */ beqz $v0, .L80110908
/* 0A6FFC 801108FC 306200FF */ andi $v0, $v1, 0xff
/* 0A7000 80110900 50C20001 */ beql $a2, $v0, .L80110908
/* 0A7004 80110904 34A50001 */ ori $a1, $a1, 1
.L80110908:
/* 0A7008 80110908 3C038016 */ lui $v1, 0x8016
/* 0A700C 8011090C 8463A554 */ lh $v1, -0x5aac($v1)
/* 0A7010 80110910 2402FFFF */ addiu $v0, $zero, -1
/* 0A7014 80110914 10620005 */ beq $v1, $v0, .L8011092C
/* 0A7018 80110918 30624000 */ andi $v0, $v1, 0x4000
/* 0A701C 8011091C 10400003 */ beqz $v0, .L8011092C
/* 0A7020 80110920 306200FF */ andi $v0, $v1, 0xff
/* 0A7024 80110924 50C20001 */ beql $a2, $v0, .L8011092C
/* 0A7028 80110928 34A50100 */ ori $a1, $a1, 0x100
.L8011092C:
/* 0A702C 8011092C 3C038016 */ lui $v1, 0x8016
/* 0A7030 80110930 8463A558 */ lh $v1, -0x5aa8($v1)
/* 0A7034 80110934 2402FFFF */ addiu $v0, $zero, -1
/* 0A7038 80110938 10620005 */ beq $v1, $v0, .L80110950
/* 0A703C 8011093C 30624000 */ andi $v0, $v1, 0x4000
/* 0A7040 80110940 10400003 */ beqz $v0, .L80110950
/* 0A7044 80110944 306200FF */ andi $v0, $v1, 0xff
/* 0A7048 80110948 50C20001 */ beql $a2, $v0, .L80110950
/* 0A704C 8011094C 34A50004 */ ori $a1, $a1, 4
.L80110950:
/* 0A7050 80110950 3C038016 */ lui $v1, 0x8016
/* 0A7054 80110954 8463A550 */ lh $v1, -0x5ab0($v1)
/* 0A7058 80110958 2402FFFF */ addiu $v0, $zero, -1
/* 0A705C 8011095C 10620005 */ beq $v1, $v0, .L80110974
/* 0A7060 80110960 30624000 */ andi $v0, $v1, 0x4000
/* 0A7064 80110964 10400003 */ beqz $v0, .L80110974
/* 0A7068 80110968 306200FF */ andi $v0, $v1, 0xff
/* 0A706C 8011096C 50C20001 */ beql $a2, $v0, .L80110974
/* 0A7070 80110970 34A50010 */ ori $a1, $a1, 0x10
.L80110974:
/* 0A7074 80110974 3C038016 */ lui $v1, 0x8016
/* 0A7078 80110978 8463A564 */ lh $v1, -0x5a9c($v1)
/* 0A707C 8011097C 2402FFFF */ addiu $v0, $zero, -1
/* 0A7080 80110980 10620005 */ beq $v1, $v0, .L80110998
/* 0A7084 80110984 30624000 */ andi $v0, $v1, 0x4000
/* 0A7088 80110988 10400003 */ beqz $v0, .L80110998
/* 0A708C 8011098C 306200FF */ andi $v0, $v1, 0xff
/* 0A7090 80110990 50C20001 */ beql $a2, $v0, .L80110998
/* 0A7094 80110994 34A50040 */ ori $a1, $a1, 0x40
.L80110998:
/* 0A7098 80110998 3C038016 */ lui $v1, 0x8016
/* 0A709C 8011099C 8463A562 */ lh $v1, -0x5a9e($v1)
/* 0A70A0 801109A0 2402FFFF */ addiu $v0, $zero, -1
/* 0A70A4 801109A4 1062000B */ beq $v1, $v0, .L801109D4
/* 0A70A8 801109A8 30624000 */ andi $v0, $v1, 0x4000
/* 0A70AC 801109AC 10400009 */ beqz $v0, .L801109D4
/* 0A70B0 801109B0 306200FF */ andi $v0, $v1, 0xff
/* 0A70B4 801109B4 14C20007 */ bne $a2, $v0, .L801109D4
/* 0A70B8 801109B8 00000000 */ nop
/* 0A70BC 801109BC 3C02800F */ lui $v0, 0x800f
/* 0A70C0 801109C0 8C427B30 */ lw $v0, 0x7b30($v0)
/* 0A70C4 801109C4 8C4200E0 */ lw $v0, 0xe0($v0)
/* 0A70C8 801109C8 30428000 */ andi $v0, $v0, 0x8000
/* 0A70CC 801109CC 54400001 */ bnel $v0, $zero, .L801109D4
/* 0A70D0 801109D0 34A50008 */ ori $a1, $a1, 8
.L801109D4:
/* 0A70D4 801109D4 03E00008 */ jr $ra
/* 0A70D8 801109D8 00A0102D */ daddu $v0, $a1, $zero
/* 0A70DC 801109DC 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 0A70E0 801109E0 AFB20018 */ sw $s2, 0x18($sp)
/* 0A70E4 801109E4 0080902D */ daddu $s2, $a0, $zero
/* 0A70E8 801109E8 AFB00010 */ sw $s0, 0x10($sp)
/* 0A70EC 801109EC 0000802D */ daddu $s0, $zero, $zero
/* 0A70F0 801109F0 AFBF001C */ sw $ra, 0x1c($sp)
/* 0A70F4 801109F4 0C0441A9 */ jal func_801106A4
/* 0A70F8 801109F8 AFB10014 */ sw $s1, 0x14($sp)
/* 0A70FC 801109FC 0C039422 */ jal func_800E5088
/* 0A7100 80110A00 0040882D */ daddu $s1, $v0, $zero
/* 0A7104 80110A04 00021600 */ sll $v0, $v0, 0x18
/* 0A7108 80110A08 00021E03 */ sra $v1, $v0, 0x18
/* 0A710C 80110A0C 24020002 */ addiu $v0, $zero, 2
/* 0A7110 80110A10 1062000C */ beq $v1, $v0, .L80110A44
/* 0A7114 80110A14 24020003 */ addiu $v0, $zero, 3
/* 0A7118 80110A18 1462001E */ bne $v1, $v0, .L80110A94
/* 0A711C 80110A1C 0200102D */ daddu $v0, $s0, $zero
/* 0A7120 80110A20 2623FFF9 */ addiu $v1, $s1, -7
/* 0A7124 80110A24 2C620020 */ sltiu $v0, $v1, 0x20
/* 0A7128 80110A28 1040000F */ beqz $v0, .L80110A68
/* 0A712C 80110A2C 00031080 */ sll $v0, $v1, 2
/* 0A7130 80110A30 3C018015 */ lui $at, 0x8015
/* 0A7134 80110A34 00220821 */ addu $at, $at, $v0
/* 0A7138 80110A38 8C22F768 */ lw $v0, -0x898($at)
/* 0A713C 80110A3C 00400008 */ jr $v0
/* 0A7140 80110A40 00000000 */ nop
.L80110A44:
/* 0A7144 80110A44 2623FFF9 */ addiu $v1, $s1, -7
/* 0A7148 80110A48 2C62001C */ sltiu $v0, $v1, 0x1c
/* 0A714C 80110A4C 10400006 */ beqz $v0, .L80110A68
/* 0A7150 80110A50 00031080 */ sll $v0, $v1, 2
/* 0A7154 80110A54 3C018015 */ lui $at, 0x8015
/* 0A7158 80110A58 00220821 */ addu $at, $at, $v0
/* 0A715C 80110A5C 8C22F7E8 */ lw $v0, -0x818($at)
/* 0A7160 80110A60 00400008 */ jr $v0
/* 0A7164 80110A64 00000000 */ nop
.L80110A68:
/* 0A7168 80110A68 080442A5 */ j .L80110A94
/* 0A716C 80110A6C 0000102D */ daddu $v0, $zero, $zero
/* 0A7170 80110A70 0C04417A */ jal get_entity_by_index
/* 0A7174 80110A74 0240202D */ daddu $a0, $s2, $zero
/* 0A7178 80110A78 0040202D */ daddu $a0, $v0, $zero
/* 0A717C 80110A7C 24100001 */ addiu $s0, $zero, 1
/* 0A7180 80110A80 8C820000 */ lw $v0, ($a0)
/* 0A7184 80110A84 3C030002 */ lui $v1, 2
/* 0A7188 80110A88 00431025 */ or $v0, $v0, $v1
/* 0A718C 80110A8C AC820000 */ sw $v0, ($a0)
/* 0A7190 80110A90 0200102D */ daddu $v0, $s0, $zero
.L80110A94:
/* 0A7194 80110A94 8FBF001C */ lw $ra, 0x1c($sp)
/* 0A7198 80110A98 8FB20018 */ lw $s2, 0x18($sp)
/* 0A719C 80110A9C 8FB10014 */ lw $s1, 0x14($sp)
/* 0A71A0 80110AA0 8FB00010 */ lw $s0, 0x10($sp)
/* 0A71A4 80110AA4 03E00008 */ jr $ra
/* 0A71A8 80110AA8 27BD0020 */ addiu $sp, $sp, 0x20