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

164 lines
7.0 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel get_float_variable
/* 0ECDDC 802C842C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0ECDE0 802C8430 3C02EFE8 */ lui $v0, 0xefe8
/* 0ECDE4 802C8434 34422080 */ ori $v0, $v0, 0x2080
/* 0ECDE8 802C8438 0045102A */ slt $v0, $v0, $a1
/* 0ECDEC 802C843C 10400006 */ beqz $v0, .L802C8458
/* 0ECDF0 802C8440 AFBF0010 */ sw $ra, 0x10($sp)
/* 0ECDF4 802C8444 3C02F119 */ lui $v0, 0xf119
/* 0ECDF8 802C8448 34424D80 */ ori $v0, $v0, 0x4d80
/* 0ECDFC 802C844C 0045102A */ slt $v0, $v0, $a1
/* 0ECE00 802C8450 14400005 */ bnez $v0, .L802C8468
/* 0ECE04 802C8454 3C02F2E3 */ lui $v0, 0xf2e3
.L802C8458:
/* 0ECE08 802C8458 44850000 */ mtc1 $a1, $f0
/* 0ECE0C 802C845C 00000000 */ nop
/* 0ECE10 802C8460 080B218D */ j .L802C8634
/* 0ECE14 802C8464 46800020 */ cvt.s.w $f0, $f0
.L802C8468:
/* 0ECE18 802C8468 34421100 */ ori $v0, $v0, 0x1100
/* 0ECE1C 802C846C 0045102A */ slt $v0, $v0, $a1
/* 0ECE20 802C8470 14400003 */ bnez $v0, .L802C8480
/* 0ECE24 802C8474 3C02F545 */ lui $v0, 0xf545
/* 0ECE28 802C8478 080B218B */ j .L802C862C
/* 0ECE2C 802C847C 00A0202D */ daddu $a0, $a1, $zero
.L802C8480:
/* 0ECE30 802C8480 34426B00 */ ori $v0, $v0, 0x6b00
/* 0ECE34 802C8484 0045102A */ slt $v0, $v0, $a1
/* 0ECE38 802C8488 14400009 */ bnez $v0, .L802C84B0
/* 0ECE3C 802C848C 3C02F676 */ lui $v0, 0xf676
/* 0ECE40 802C8490 3C020B53 */ lui $v0, 0xb53
/* 0ECE44 802C8494 34422B80 */ ori $v0, $v0, 0x2b80
/* 0ECE48 802C8498 00A22821 */ addu $a1, $a1, $v0
/* 0ECE4C 802C849C 8C83013C */ lw $v1, 0x13c($a0)
/* 0ECE50 802C84A0 00051080 */ sll $v0, $a1, 2
/* 0ECE54 802C84A4 00431021 */ addu $v0, $v0, $v1
/* 0ECE58 802C84A8 080B218B */ j .L802C862C
/* 0ECE5C 802C84AC 8C440000 */ lw $a0, ($v0)
.L802C84B0:
/* 0ECE60 802C84B0 34429800 */ ori $v0, $v0, 0x9800
/* 0ECE64 802C84B4 0045102A */ slt $v0, $v0, $a1
/* 0ECE68 802C84B8 14400007 */ bnez $v0, .L802C84D8
/* 0ECE6C 802C84BC 3C02F7A7 */ lui $v0, 0xf7a7
/* 0ECE70 802C84C0 3C040A21 */ lui $a0, 0xa21
/* 0ECE74 802C84C4 3484FE80 */ ori $a0, $a0, 0xfe80
/* 0ECE78 802C84C8 0C05154E */ jal get_global_byte
/* 0ECE7C 802C84CC 00A42021 */ addu $a0, $a1, $a0
/* 0ECE80 802C84D0 080B218B */ j .L802C862C
/* 0ECE84 802C84D4 0040202D */ daddu $a0, $v0, $zero
.L802C84D8:
/* 0ECE88 802C84D8 3442C500 */ ori $v0, $v0, 0xc500
/* 0ECE8C 802C84DC 0045102A */ slt $v0, $v0, $a1
/* 0ECE90 802C84E0 14400007 */ bnez $v0, .L802C8500
/* 0ECE94 802C84E4 3C02FB3B */ lui $v0, 0xfb3b
/* 0ECE98 802C84E8 3C0408F0 */ lui $a0, 0x8f0
/* 0ECE9C 802C84EC 3484D180 */ ori $a0, $a0, 0xd180
/* 0ECEA0 802C84F0 0C051594 */ jal get_area_byte
/* 0ECEA4 802C84F4 00A42021 */ addu $a0, $a1, $a0
/* 0ECEA8 802C84F8 080B218B */ j .L802C862C
/* 0ECEAC 802C84FC 0040202D */ daddu $a0, $v0, $zero
.L802C8500:
/* 0ECEB0 802C8500 34424C00 */ ori $v0, $v0, 0x4c00
/* 0ECEB4 802C8504 0045102A */ slt $v0, $v0, $a1
/* 0ECEB8 802C8508 14400015 */ bnez $v0, .L802C8560
/* 0ECEBC 802C850C 3C02FC6C */ lui $v0, 0xfc6c
/* 0ECEC0 802C8510 3C02055D */ lui $v0, 0x55d
/* 0ECEC4 802C8514 34424A80 */ ori $v0, $v0, 0x4a80
/* 0ECEC8 802C8518 00A22821 */ addu $a1, $a1, $v0
/* 0ECECC 802C851C 04A10002 */ bgez $a1, .L802C8528
/* 0ECED0 802C8520 00A0182D */ daddu $v1, $a1, $zero
/* 0ECED4 802C8524 24A3001F */ addiu $v1, $a1, 0x1f
.L802C8528:
/* 0ECED8 802C8528 00033143 */ sra $a2, $v1, 5
/* 0ECEDC 802C852C 00C0182D */ daddu $v1, $a2, $zero
/* 0ECEE0 802C8530 00031140 */ sll $v0, $v1, 5
/* 0ECEE4 802C8534 00A23023 */ subu $a2, $a1, $v0
/* 0ECEE8 802C8538 00031880 */ sll $v1, $v1, 2
/* 0ECEEC 802C853C 3C02802E */ lui $v0, 0x802e
/* 0ECEF0 802C8540 8C42A480 */ lw $v0, -0x5b80($v0)
/* 0ECEF4 802C8544 3C013F80 */ lui $at, 0x3f80
/* 0ECEF8 802C8548 44810000 */ mtc1 $at, $f0
/* 0ECEFC 802C854C 00621821 */ addu $v1, $v1, $v0
/* 0ECF00 802C8550 24020001 */ addiu $v0, $zero, 1
/* 0ECF04 802C8554 8C630000 */ lw $v1, ($v1)
/* 0ECF08 802C8558 080B216D */ j .L802C85B4
/* 0ECF0C 802C855C 00C21004 */ sllv $v0, $v0, $a2
.L802C8560:
/* 0ECF10 802C8560 34427900 */ ori $v0, $v0, 0x7900
/* 0ECF14 802C8564 0045102A */ slt $v0, $v0, $a1
/* 0ECF18 802C8568 14400018 */ bnez $v0, .L802C85CC
/* 0ECF1C 802C856C 3C02FD9D */ lui $v0, 0xfd9d
/* 0ECF20 802C8570 3C02042C */ lui $v0, 0x42c
/* 0ECF24 802C8574 34421D80 */ ori $v0, $v0, 0x1d80
/* 0ECF28 802C8578 00A22821 */ addu $a1, $a1, $v0
/* 0ECF2C 802C857C 04A10002 */ bgez $a1, .L802C8588
/* 0ECF30 802C8580 00A0182D */ daddu $v1, $a1, $zero
/* 0ECF34 802C8584 24A3001F */ addiu $v1, $a1, 0x1f
.L802C8588:
/* 0ECF38 802C8588 00033143 */ sra $a2, $v1, 5
/* 0ECF3C 802C858C 00C0182D */ daddu $v1, $a2, $zero
/* 0ECF40 802C8590 00031140 */ sll $v0, $v1, 5
/* 0ECF44 802C8594 00A23023 */ subu $a2, $a1, $v0
/* 0ECF48 802C8598 00031880 */ sll $v1, $v1, 2
/* 0ECF4C 802C859C 00831821 */ addu $v1, $a0, $v1
/* 0ECF50 802C85A0 24020001 */ addiu $v0, $zero, 1
/* 0ECF54 802C85A4 00C21004 */ sllv $v0, $v0, $a2
/* 0ECF58 802C85A8 8C6300C4 */ lw $v1, 0xc4($v1)
/* 0ECF5C 802C85AC 3C013F80 */ lui $at, 0x3f80
/* 0ECF60 802C85B0 44810000 */ mtc1 $at, $f0
.L802C85B4:
/* 0ECF64 802C85B4 00622824 */ and $a1, $v1, $v0
/* 0ECF68 802C85B8 14A0001E */ bnez $a1, .L802C8634
/* 0ECF6C 802C85BC 00000000 */ nop
/* 0ECF70 802C85C0 44800000 */ mtc1 $zero, $f0
/* 0ECF74 802C85C4 080B218D */ j .L802C8634
/* 0ECF78 802C85C8 00000000 */ nop
.L802C85CC:
/* 0ECF7C 802C85CC 3442A600 */ ori $v0, $v0, 0xa600
/* 0ECF80 802C85D0 0045102A */ slt $v0, $v0, $a1
/* 0ECF84 802C85D4 1440000A */ bnez $v0, .L802C8600
/* 0ECF88 802C85D8 3C02FECE */ lui $v0, 0xfece
/* 0ECF8C 802C85DC 3C0202FA */ lui $v0, 0x2fa
/* 0ECF90 802C85E0 3442F080 */ ori $v0, $v0, 0xf080
/* 0ECF94 802C85E4 00A22821 */ addu $a1, $a1, $v0
/* 0ECF98 802C85E8 3C03802E */ lui $v1, 0x802e
/* 0ECF9C 802C85EC 8C63A484 */ lw $v1, -0x5b7c($v1)
/* 0ECFA0 802C85F0 00051080 */ sll $v0, $a1, 2
/* 0ECFA4 802C85F4 00431021 */ addu $v0, $v0, $v1
/* 0ECFA8 802C85F8 080B218B */ j .L802C862C
/* 0ECFAC 802C85FC 8C440000 */ lw $a0, ($v0)
.L802C8600:
/* 0ECFB0 802C8600 3442D300 */ ori $v0, $v0, 0xd300
/* 0ECFB4 802C8604 0045102A */ slt $v0, $v0, $a1
/* 0ECFB8 802C8608 10400003 */ beqz $v0, .L802C8618
/* 0ECFBC 802C860C 3C0201C9 */ lui $v0, 0x1c9
/* 0ECFC0 802C8610 080B218B */ j .L802C862C
/* 0ECFC4 802C8614 00A0202D */ daddu $a0, $a1, $zero
.L802C8618:
/* 0ECFC8 802C8618 3442C380 */ ori $v0, $v0, 0xc380
/* 0ECFCC 802C861C 00A22821 */ addu $a1, $a1, $v0
/* 0ECFD0 802C8620 00051080 */ sll $v0, $a1, 2
/* 0ECFD4 802C8624 00821021 */ addu $v0, $a0, $v0
/* 0ECFD8 802C8628 8C440084 */ lw $a0, 0x84($v0)
.L802C862C:
/* 0ECFDC 802C862C 0C0B1248 */ jal fixed_var_to_float
/* 0ECFE0 802C8630 00000000 */ nop
.L802C8634:
/* 0ECFE4 802C8634 8FBF0010 */ lw $ra, 0x10($sp)
/* 0ECFE8 802C8638 03E00008 */ jr $ra
/* 0ECFEC 802C863C 27BD0018 */ addiu $sp, $sp, 0x18