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

222 lines
9.8 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel get_variable
/* 0EC46C 802C7ABC 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0EC470 802C7AC0 3C07EFE8 */ lui $a3, 0xefe8
/* 0EC474 802C7AC4 34E72080 */ ori $a3, $a3, 0x2080
/* 0EC478 802C7AC8 00E5102A */ slt $v0, $a3, $a1
/* 0EC47C 802C7ACC 104000B2 */ beqz $v0, .L802C7D98
/* 0EC480 802C7AD0 AFBF0010 */ sw $ra, 0x10($sp)
/* 0EC484 802C7AD4 3C02F119 */ lui $v0, 0xf119
/* 0EC488 802C7AD8 34424D80 */ ori $v0, $v0, 0x4d80
/* 0EC48C 802C7ADC 0045102A */ slt $v0, $v0, $a1
/* 0EC490 802C7AE0 104000AD */ beqz $v0, .L802C7D98
/* 0EC494 802C7AE4 3C06F2E3 */ lui $a2, 0xf2e3
/* 0EC498 802C7AE8 34C61100 */ ori $a2, $a2, 0x1100
/* 0EC49C 802C7AEC 00C5102A */ slt $v0, $a2, $a1
/* 0EC4A0 802C7AF0 14400007 */ bnez $v0, .L802C7B10
/* 0EC4A4 802C7AF4 3C02F414 */ lui $v0, 0xf414
/* 0EC4A8 802C7AF8 0C0B1248 */ jal fixed_var_to_float
/* 0EC4AC 802C7AFC 00A0202D */ daddu $a0, $a1, $zero
/* 0EC4B0 802C7B00 4600008D */ trunc.w.s $f2, $f0
/* 0EC4B4 802C7B04 44021000 */ mfc1 $v0, $f2
/* 0EC4B8 802C7B08 080B1F67 */ j .L802C7D9C
/* 0EC4BC 802C7B0C 00000000 */ nop
.L802C7B10:
/* 0EC4C0 802C7B10 34423E00 */ ori $v0, $v0, 0x3e00
/* 0EC4C4 802C7B14 0045102A */ slt $v0, $v0, $a1
/* 0EC4C8 802C7B18 14400011 */ bnez $v0, .L802C7B60
/* 0EC4CC 802C7B1C 3C02F545 */ lui $v0, 0xf545
/* 0EC4D0 802C7B20 3C020C84 */ lui $v0, 0xc84
/* 0EC4D4 802C7B24 34425880 */ ori $v0, $v0, 0x5880
/* 0EC4D8 802C7B28 00A22821 */ addu $a1, $a1, $v0
/* 0EC4DC 802C7B2C 04A10002 */ bgez $a1, .L802C7B38
/* 0EC4E0 802C7B30 00A0182D */ daddu $v1, $a1, $zero
/* 0EC4E4 802C7B34 24A3001F */ addiu $v1, $a1, 0x1f
.L802C7B38:
/* 0EC4E8 802C7B38 00033143 */ sra $a2, $v1, 5
/* 0EC4EC 802C7B3C 00C0182D */ daddu $v1, $a2, $zero
/* 0EC4F0 802C7B40 00031140 */ sll $v0, $v1, 5
/* 0EC4F4 802C7B44 00A23023 */ subu $a2, $a1, $v0
/* 0EC4F8 802C7B48 8C820140 */ lw $v0, 0x140($a0)
/* 0EC4FC 802C7B4C 00031880 */ sll $v1, $v1, 2
/* 0EC500 802C7B50 00621821 */ addu $v1, $v1, $v0
/* 0EC504 802C7B54 8C630000 */ lw $v1, ($v1)
/* 0EC508 802C7B58 080B1F37 */ j .L802C7CDC
/* 0EC50C 802C7B5C 24020001 */ addiu $v0, $zero, 1
.L802C7B60:
/* 0EC510 802C7B60 34426B00 */ ori $v0, $v0, 0x6b00
/* 0EC514 802C7B64 0045102A */ slt $v0, $v0, $a1
/* 0EC518 802C7B68 1440000D */ bnez $v0, .L802C7BA0
/* 0EC51C 802C7B6C 3C02F676 */ lui $v0, 0xf676
/* 0EC520 802C7B70 3C020B53 */ lui $v0, 0xb53
/* 0EC524 802C7B74 34422B80 */ ori $v0, $v0, 0x2b80
/* 0EC528 802C7B78 00A22821 */ addu $a1, $a1, $v0
/* 0EC52C 802C7B7C 8C83013C */ lw $v1, 0x13c($a0)
/* 0EC530 802C7B80 00051080 */ sll $v0, $a1, 2
/* 0EC534 802C7B84 00431021 */ addu $v0, $v0, $v1
/* 0EC538 802C7B88 8C450000 */ lw $a1, ($v0)
/* 0EC53C 802C7B8C 00E5102A */ slt $v0, $a3, $a1
/* 0EC540 802C7B90 10400081 */ beqz $v0, .L802C7D98
/* 0EC544 802C7B94 00C5102A */ slt $v0, $a2, $a1
/* 0EC548 802C7B98 080B1F5F */ j .L802C7D7C
/* 0EC54C 802C7B9C 00000000 */ nop
.L802C7BA0:
/* 0EC550 802C7BA0 34429800 */ ori $v0, $v0, 0x9800
/* 0EC554 802C7BA4 0045102A */ slt $v0, $v0, $a1
/* 0EC558 802C7BA8 14400007 */ bnez $v0, .L802C7BC8
/* 0EC55C 802C7BAC 3C02F7A7 */ lui $v0, 0xf7a7
/* 0EC560 802C7BB0 3C040A21 */ lui $a0, 0xa21
/* 0EC564 802C7BB4 3484FE80 */ ori $a0, $a0, 0xfe80
/* 0EC568 802C7BB8 0C05154E */ jal get_global_byte
/* 0EC56C 802C7BBC 00A42021 */ addu $a0, $a1, $a0
/* 0EC570 802C7BC0 080B1F67 */ j .L802C7D9C
/* 0EC574 802C7BC4 00000000 */ nop
.L802C7BC8:
/* 0EC578 802C7BC8 3442C500 */ ori $v0, $v0, 0xc500
/* 0EC57C 802C7BCC 0045102A */ slt $v0, $v0, $a1
/* 0EC580 802C7BD0 14400007 */ bnez $v0, .L802C7BF0
/* 0EC584 802C7BD4 3C02F8D8 */ lui $v0, 0xf8d8
/* 0EC588 802C7BD8 3C0408F0 */ lui $a0, 0x8f0
/* 0EC58C 802C7BDC 3484D180 */ ori $a0, $a0, 0xd180
/* 0EC590 802C7BE0 0C051594 */ jal get_area_byte
/* 0EC594 802C7BE4 00A42021 */ addu $a0, $a1, $a0
/* 0EC598 802C7BE8 080B1F67 */ j .L802C7D9C
/* 0EC59C 802C7BEC 00000000 */ nop
.L802C7BF0:
/* 0EC5A0 802C7BF0 3442F200 */ ori $v0, $v0, 0xf200
/* 0EC5A4 802C7BF4 0045102A */ slt $v0, $v0, $a1
/* 0EC5A8 802C7BF8 14400007 */ bnez $v0, .L802C7C18
/* 0EC5AC 802C7BFC 3C02FA0A */ lui $v0, 0xfa0a
/* 0EC5B0 802C7C00 3C0407BF */ lui $a0, 0x7bf
/* 0EC5B4 802C7C04 3484A480 */ ori $a0, $a0, 0xa480
/* 0EC5B8 802C7C08 0C05152F */ jal get_global_flag
/* 0EC5BC 802C7C0C 00A42021 */ addu $a0, $a1, $a0
/* 0EC5C0 802C7C10 080B1F67 */ j .L802C7D9C
/* 0EC5C4 802C7C14 00000000 */ nop
.L802C7C18:
/* 0EC5C8 802C7C18 34421F00 */ ori $v0, $v0, 0x1f00
/* 0EC5CC 802C7C1C 0045102A */ slt $v0, $v0, $a1
/* 0EC5D0 802C7C20 14400007 */ bnez $v0, .L802C7C40
/* 0EC5D4 802C7C24 3C02FB3B */ lui $v0, 0xfb3b
/* 0EC5D8 802C7C28 3C04068E */ lui $a0, 0x68e
/* 0EC5DC 802C7C2C 34847780 */ ori $a0, $a0, 0x7780
/* 0EC5E0 802C7C30 0C05157C */ jal get_area_flag
/* 0EC5E4 802C7C34 00A42021 */ addu $a0, $a1, $a0
/* 0EC5E8 802C7C38 080B1F67 */ j .L802C7D9C
/* 0EC5EC 802C7C3C 00000000 */ nop
.L802C7C40:
/* 0EC5F0 802C7C40 34424C00 */ ori $v0, $v0, 0x4c00
/* 0EC5F4 802C7C44 0045102A */ slt $v0, $v0, $a1
/* 0EC5F8 802C7C48 14400012 */ bnez $v0, .L802C7C94
/* 0EC5FC 802C7C4C 3C02FC6C */ lui $v0, 0xfc6c
/* 0EC600 802C7C50 3C02055D */ lui $v0, 0x55d
/* 0EC604 802C7C54 34424A80 */ ori $v0, $v0, 0x4a80
/* 0EC608 802C7C58 00A22821 */ addu $a1, $a1, $v0
/* 0EC60C 802C7C5C 04A10002 */ bgez $a1, .L802C7C68
/* 0EC610 802C7C60 00A0182D */ daddu $v1, $a1, $zero
/* 0EC614 802C7C64 24A3001F */ addiu $v1, $a1, 0x1f
.L802C7C68:
/* 0EC618 802C7C68 00033143 */ sra $a2, $v1, 5
/* 0EC61C 802C7C6C 00C0182D */ daddu $v1, $a2, $zero
/* 0EC620 802C7C70 00031140 */ sll $v0, $v1, 5
/* 0EC624 802C7C74 00A23023 */ subu $a2, $a1, $v0
/* 0EC628 802C7C78 3C02802E */ lui $v0, 0x802e
/* 0EC62C 802C7C7C 8C42A480 */ lw $v0, -0x5b80($v0)
/* 0EC630 802C7C80 00031880 */ sll $v1, $v1, 2
/* 0EC634 802C7C84 00621821 */ addu $v1, $v1, $v0
/* 0EC638 802C7C88 8C630000 */ lw $v1, ($v1)
/* 0EC63C 802C7C8C 080B1F37 */ j .L802C7CDC
/* 0EC640 802C7C90 24020001 */ addiu $v0, $zero, 1
.L802C7C94:
/* 0EC644 802C7C94 34427900 */ ori $v0, $v0, 0x7900
/* 0EC648 802C7C98 0045102A */ slt $v0, $v0, $a1
/* 0EC64C 802C7C9C 14400013 */ bnez $v0, .L802C7CEC
/* 0EC650 802C7CA0 3C02FD9D */ lui $v0, 0xfd9d
/* 0EC654 802C7CA4 3C02042C */ lui $v0, 0x42c
/* 0EC658 802C7CA8 34421D80 */ ori $v0, $v0, 0x1d80
/* 0EC65C 802C7CAC 00A22821 */ addu $a1, $a1, $v0
/* 0EC660 802C7CB0 04A10002 */ bgez $a1, .L802C7CBC
/* 0EC664 802C7CB4 00A0182D */ daddu $v1, $a1, $zero
/* 0EC668 802C7CB8 24A3001F */ addiu $v1, $a1, 0x1f
.L802C7CBC:
/* 0EC66C 802C7CBC 00033143 */ sra $a2, $v1, 5
/* 0EC670 802C7CC0 00C0182D */ daddu $v1, $a2, $zero
/* 0EC674 802C7CC4 00031140 */ sll $v0, $v1, 5
/* 0EC678 802C7CC8 00A23023 */ subu $a2, $a1, $v0
/* 0EC67C 802C7CCC 00031880 */ sll $v1, $v1, 2
/* 0EC680 802C7CD0 00831821 */ addu $v1, $a0, $v1
/* 0EC684 802C7CD4 24020001 */ addiu $v0, $zero, 1
/* 0EC688 802C7CD8 8C6300C4 */ lw $v1, 0xc4($v1)
.L802C7CDC:
/* 0EC68C 802C7CDC 00C21004 */ sllv $v0, $v0, $a2
/* 0EC690 802C7CE0 00622824 */ and $a1, $v1, $v0
/* 0EC694 802C7CE4 080B1F67 */ j .L802C7D9C
/* 0EC698 802C7CE8 0005102B */ sltu $v0, $zero, $a1
.L802C7CEC:
/* 0EC69C 802C7CEC 3442A600 */ ori $v0, $v0, 0xa600
/* 0EC6A0 802C7CF0 0045102A */ slt $v0, $v0, $a1
/* 0EC6A4 802C7CF4 14400010 */ bnez $v0, .L802C7D38
/* 0EC6A8 802C7CF8 3C02FECE */ lui $v0, 0xfece
/* 0EC6AC 802C7CFC 3C0202FA */ lui $v0, 0x2fa
/* 0EC6B0 802C7D00 3442F080 */ ori $v0, $v0, 0xf080
/* 0EC6B4 802C7D04 00A22821 */ addu $a1, $a1, $v0
/* 0EC6B8 802C7D08 3C03EFE8 */ lui $v1, 0xefe8
/* 0EC6BC 802C7D0C 3C04802E */ lui $a0, 0x802e
/* 0EC6C0 802C7D10 8C84A484 */ lw $a0, -0x5b7c($a0)
/* 0EC6C4 802C7D14 00051080 */ sll $v0, $a1, 2
/* 0EC6C8 802C7D18 00441021 */ addu $v0, $v0, $a0
/* 0EC6CC 802C7D1C 8C450000 */ lw $a1, ($v0)
/* 0EC6D0 802C7D20 34632080 */ ori $v1, $v1, 0x2080
/* 0EC6D4 802C7D24 0065182A */ slt $v1, $v1, $a1
/* 0EC6D8 802C7D28 1060001B */ beqz $v1, .L802C7D98
/* 0EC6DC 802C7D2C 3C02F2E3 */ lui $v0, 0xf2e3
/* 0EC6E0 802C7D30 080B1F5E */ j .L802C7D78
/* 0EC6E4 802C7D34 34421100 */ ori $v0, $v0, 0x1100
.L802C7D38:
/* 0EC6E8 802C7D38 3442D300 */ ori $v0, $v0, 0xd300
/* 0EC6EC 802C7D3C 0045102A */ slt $v0, $v0, $a1
/* 0EC6F0 802C7D40 14400016 */ bnez $v0, .L802C7D9C
/* 0EC6F4 802C7D44 00A0102D */ daddu $v0, $a1, $zero
/* 0EC6F8 802C7D48 3C0201C9 */ lui $v0, 0x1c9
/* 0EC6FC 802C7D4C 3442C380 */ ori $v0, $v0, 0xc380
/* 0EC700 802C7D50 00A22821 */ addu $a1, $a1, $v0
/* 0EC704 802C7D54 00051080 */ sll $v0, $a1, 2
/* 0EC708 802C7D58 00821021 */ addu $v0, $a0, $v0
/* 0EC70C 802C7D5C 8C450084 */ lw $a1, 0x84($v0)
/* 0EC710 802C7D60 3C02EFE8 */ lui $v0, 0xefe8
/* 0EC714 802C7D64 34422080 */ ori $v0, $v0, 0x2080
/* 0EC718 802C7D68 0045102A */ slt $v0, $v0, $a1
/* 0EC71C 802C7D6C 1040000A */ beqz $v0, .L802C7D98
/* 0EC720 802C7D70 3C02F2E3 */ lui $v0, 0xf2e3
/* 0EC724 802C7D74 34421100 */ ori $v0, $v0, 0x1100
.L802C7D78:
/* 0EC728 802C7D78 0045102A */ slt $v0, $v0, $a1
.L802C7D7C:
/* 0EC72C 802C7D7C 14400007 */ bnez $v0, .L802C7D9C
/* 0EC730 802C7D80 00A0102D */ daddu $v0, $a1, $zero
/* 0EC734 802C7D84 0C0B1248 */ jal fixed_var_to_float
/* 0EC738 802C7D88 00A0202D */ daddu $a0, $a1, $zero
/* 0EC73C 802C7D8C 4600008D */ trunc.w.s $f2, $f0
/* 0EC740 802C7D90 44051000 */ mfc1 $a1, $f2
/* 0EC744 802C7D94 00000000 */ nop
.L802C7D98:
/* 0EC748 802C7D98 00A0102D */ daddu $v0, $a1, $zero
.L802C7D9C:
/* 0EC74C 802C7D9C 8FBF0010 */ lw $ra, 0x10($sp)
/* 0EC750 802C7DA0 03E00008 */ jr $ra
/* 0EC754 802C7DA4 27BD0018 */ addiu $sp, $sp, 0x18