mirror of https://github.com/zeldaret/oot.git
189 lines
9.1 KiB
ArmAsm
189 lines
9.1 KiB
ArmAsm
glabel func_800DDB64
|
|
/* B54D04 800DDB64 8FAE0014 */ lw $t6, 0x14($sp)
|
|
/* B54D08 800DDB68 24090001 */ li $t1, 1
|
|
/* B54D0C 800DDB6C 24010002 */ li $at, 2
|
|
/* B54D10 800DDB70 11C90005 */ beq $t6, $t1, .L800DDB88
|
|
/* B54D14 800DDB74 24080940 */ li $t0, 2368
|
|
/* B54D18 800DDB78 11C10008 */ beq $t6, $at, .L800DDB9C
|
|
/* B54D1C 800DDB7C 24080AE0 */ li $t0, 2784
|
|
/* B54D20 800DDB80 03E00008 */ jr $ra
|
|
/* B54D24 800DDB84 00801025 */ move $v0, $a0
|
|
|
|
.L800DDB88:
|
|
/* B54D28 800DDB88 90A30003 */ lbu $v1, 3($a1)
|
|
/* B54D2C 800DDB8C 90C20002 */ lbu $v0, 2($a2)
|
|
/* B54D30 800DDB90 A0C00003 */ sb $zero, 3($a2)
|
|
/* B54D34 800DDB94 10000008 */ b .L800DDBB8
|
|
/* B54D38 800DDB98 A0C30002 */ sb $v1, 2($a2)
|
|
.L800DDB9C:
|
|
/* B54D3C 800DDB9C 90A30004 */ lbu $v1, 4($a1)
|
|
/* B54D40 800DDBA0 90C20003 */ lbu $v0, 3($a2)
|
|
/* B54D44 800DDBA4 A0C00002 */ sb $zero, 2($a2)
|
|
/* B54D48 800DDBA8 10000003 */ b .L800DDBB8
|
|
/* B54D4C 800DDBAC A0C30003 */ sb $v1, 3($a2)
|
|
/* B54D50 800DDBB0 03E00008 */ jr $ra
|
|
/* B54D54 800DDBB4 00801025 */ move $v0, $a0
|
|
|
|
.L800DDBB8:
|
|
/* B54D58 800DDBB8 8FAF0010 */ lw $t7, 0x10($sp)
|
|
/* B54D5C 800DDBBC 3C180200 */ lui $t8, (0x020005C0 >> 16) # lui $t8, 0x200
|
|
/* B54D60 800DDBC0 3C0103C0 */ lui $at, 0x3c0
|
|
/* B54D64 800DDBC4 11E9005D */ beq $t7, $t1, .L800DDD3C
|
|
/* B54D68 800DDBC8 371805C0 */ ori $t8, (0x020005C0 & 0xFFFF) # ori $t8, $t8, 0x5c0
|
|
/* B54D6C 800DDBCC 00404825 */ move $t1, $v0
|
|
/* B54D70 800DDBD0 1043002B */ beq $v0, $v1, .L800DDC80
|
|
/* B54D74 800DDBD4 00602825 */ move $a1, $v1
|
|
/* B54D78 800DDBD8 00E51021 */ addu $v0, $a3, $a1
|
|
/* B54D7C 800DDBDC 00495023 */ subu $t2, $v0, $t1
|
|
/* B54D80 800DDBE0 3159FFFF */ andi $t9, $t2, 0xffff
|
|
/* B54D84 800DDBE4 3C0103C0 */ lui $at, 0x3c0
|
|
/* B54D88 800DDBE8 03216825 */ or $t5, $t9, $at
|
|
/* B54D8C 800DDBEC 3C180800 */ lui $t8, (0x080005C0 >> 16) # lui $t8, 0x800
|
|
/* B54D90 800DDBF0 000773C0 */ sll $t6, $a3, 0xf
|
|
/* B54D94 800DDBF4 371805C0 */ ori $t8, (0x080005C0 & 0xFFFF) # ori $t8, $t8, 0x5c0
|
|
/* B54D98 800DDBF8 00805825 */ move $t3, $a0
|
|
/* B54D9C 800DDBFC AD780000 */ sw $t8, ($t3)
|
|
/* B54DA0 800DDC00 AD6D0004 */ sw $t5, 4($t3)
|
|
/* B54DA4 800DDC04 2559FFFE */ addiu $t9, $t2, -2
|
|
/* B54DA8 800DDC08 24840008 */ addiu $a0, $a0, 8
|
|
/* B54DAC 800DDC0C 00806025 */ move $t4, $a0
|
|
/* B54DB0 800DDC10 AD800004 */ sw $zero, 4($t4)
|
|
/* B54DB4 800DDC14 24840008 */ addiu $a0, $a0, 8
|
|
/* B54DB8 800DDC18 05C10003 */ bgez $t6, .L800DDC28
|
|
/* B54DBC 800DDC1C 000E7843 */ sra $t7, $t6, 1
|
|
/* B54DC0 800DDC20 25C10001 */ addiu $at, $t6, 1
|
|
/* B54DC4 800DDC24 00017843 */ sra $t7, $at, 1
|
|
.L800DDC28:
|
|
/* B54DC8 800DDC28 25F8FFFF */ addiu $t8, $t7, -1
|
|
/* B54DCC 800DDC2C 07210003 */ bgez $t9, .L800DDC3C
|
|
/* B54DD0 800DDC30 00196843 */ sra $t5, $t9, 1
|
|
/* B54DD4 800DDC34 27210001 */ addiu $at, $t9, 1
|
|
/* B54DD8 800DDC38 00016843 */ sra $t5, $at, 1
|
|
.L800DDC3C:
|
|
/* B54DDC 800DDC3C 030D001A */ div $zero, $t8, $t5
|
|
/* B54DE0 800DDC40 15A00002 */ bnez $t5, .L800DDC4C
|
|
/* B54DE4 800DDC44 00000000 */ nop
|
|
/* B54DE8 800DDC48 0007000D */ break 7
|
|
.L800DDC4C:
|
|
/* B54DEC 800DDC4C 2401FFFF */ li $at, -1
|
|
/* B54DF0 800DDC50 15A10004 */ bne $t5, $at, .L800DDC64
|
|
/* B54DF4 800DDC54 3C018000 */ lui $at, 0x8000
|
|
/* B54DF8 800DDC58 17010002 */ bne $t8, $at, .L800DDC64
|
|
/* B54DFC 800DDC5C 00000000 */ nop
|
|
/* B54E00 800DDC60 0006000D */ break 6
|
|
.L800DDC64:
|
|
/* B54E04 800DDC64 00007012 */ mflo $t6
|
|
/* B54E08 800DDC68 31CFFFFF */ andi $t7, $t6, 0xffff
|
|
/* B54E0C 800DDC6C 31F9FFFF */ andi $t9, $t7, 0xffff
|
|
/* B54E10 800DDC70 3C010600 */ lui $at, 0x600
|
|
/* B54E14 800DDC74 0321C025 */ or $t8, $t9, $at
|
|
/* B54E18 800DDC78 1000000B */ b .L800DDCA8
|
|
/* B54E1C 800DDC7C AD980000 */ sw $t8, ($t4)
|
|
.L800DDC80:
|
|
/* B54E20 800DDC80 00805025 */ move $t2, $a0
|
|
/* B54E24 800DDC84 3C0D0A00 */ lui $t5, (0x0A0005C0 >> 16) # lui $t5, 0xa00
|
|
/* B54E28 800DDC88 30EEFFFF */ andi $t6, $a3, 0xffff
|
|
/* B54E2C 800DDC8C 3C0103C0 */ lui $at, 0x3c0
|
|
/* B54E30 800DDC90 01C17825 */ or $t7, $t6, $at
|
|
/* B54E34 800DDC94 35AD05C0 */ ori $t5, (0x0A0005C0 & 0xFFFF) # ori $t5, $t5, 0x5c0
|
|
/* B54E38 800DDC98 AD4D0000 */ sw $t5, ($t2)
|
|
/* B54E3C 800DDC9C AD4F0004 */ sw $t7, 4($t2)
|
|
/* B54E40 800DDCA0 24840008 */ addiu $a0, $a0, 8
|
|
/* B54E44 800DDCA4 00E51021 */ addu $v0, $a3, $a1
|
|
.L800DDCA8:
|
|
/* B54E48 800DDCA8 1120001B */ beqz $t1, .L800DDD18
|
|
/* B54E4C 800DDCAC 3C180A00 */ lui $t8, 0xa00
|
|
/* B54E50 800DDCB0 2539000F */ addiu $t9, $t1, 0xf
|
|
/* B54E54 800DDCB4 3338FFF0 */ andi $t8, $t9, 0xfff0
|
|
/* B54E58 800DDCB8 00186903 */ sra $t5, $t8, 4
|
|
/* B54E5C 800DDCBC 31AE00FF */ andi $t6, $t5, 0xff
|
|
/* B54E60 800DDCC0 000E7C00 */ sll $t7, $t6, 0x10
|
|
/* B54E64 800DDCC4 3C011400 */ lui $at, 0x1400
|
|
/* B54E68 800DDCC8 01E1C825 */ or $t9, $t7, $at
|
|
/* B54E6C 800DDCCC 373805C0 */ ori $t8, $t9, 0x5c0
|
|
/* B54E70 800DDCD0 00805025 */ move $t2, $a0
|
|
/* B54E74 800DDCD4 AD580000 */ sw $t8, ($t2)
|
|
/* B54E78 800DDCD8 8CCD000C */ lw $t5, 0xc($a2)
|
|
/* B54E7C 800DDCDC 24840008 */ addiu $a0, $a0, 8
|
|
/* B54E80 800DDCE0 3C0F0A00 */ lui $t7, (0x0A0003C0 >> 16) # lui $t7, 0xa00
|
|
/* B54E84 800DDCE4 25AE00A0 */ addiu $t6, $t5, 0xa0
|
|
/* B54E88 800DDCE8 AD4E0004 */ sw $t6, 4($t2)
|
|
/* B54E8C 800DDCEC 35EF03C0 */ ori $t7, (0x0A0003C0 & 0xFFFF) # ori $t7, $t7, 0x3c0
|
|
/* B54E90 800DDCF0 00805825 */ move $t3, $a0
|
|
/* B54E94 800DDCF4 AD6F0000 */ sw $t7, ($t3)
|
|
/* B54E98 800DDCF8 00497023 */ subu $t6, $v0, $t1
|
|
/* B54E9C 800DDCFC 253805C0 */ addiu $t8, $t1, 0x5c0
|
|
/* B54EA0 800DDD00 00186C00 */ sll $t5, $t8, 0x10
|
|
/* B54EA4 800DDD04 31CFFFFF */ andi $t7, $t6, 0xffff
|
|
/* B54EA8 800DDD08 01AFC825 */ or $t9, $t5, $t7
|
|
/* B54EAC 800DDD0C AD790004 */ sw $t9, 4($t3)
|
|
/* B54EB0 800DDD10 10000020 */ b .L800DDD94
|
|
/* B54EB4 800DDD14 24840008 */ addiu $a0, $a0, 8
|
|
.L800DDD18:
|
|
/* B54EB8 800DDD18 00804825 */ move $t1, $a0
|
|
/* B54EBC 800DDD1C 304EFFFF */ andi $t6, $v0, 0xffff
|
|
/* B54EC0 800DDD20 3C0105C0 */ lui $at, 0x5c0
|
|
/* B54EC4 800DDD24 01C16825 */ or $t5, $t6, $at
|
|
/* B54EC8 800DDD28 371803C0 */ ori $t8, $t8, 0x3c0
|
|
/* B54ECC 800DDD2C AD380000 */ sw $t8, ($t1)
|
|
/* B54ED0 800DDD30 AD2D0004 */ sw $t5, 4($t1)
|
|
/* B54ED4 800DDD34 10000017 */ b .L800DDD94
|
|
/* B54ED8 800DDD38 24840008 */ addiu $a0, $a0, 8
|
|
.L800DDD3C:
|
|
/* B54EDC 800DDD3C 00804825 */ move $t1, $a0
|
|
/* B54EE0 800DDD40 3C0F0A00 */ lui $t7, (0x0A0005C0 >> 16) # lui $t7, 0xa00
|
|
/* B54EE4 800DDD44 30E2FFFF */ andi $v0, $a3, 0xffff
|
|
/* B54EE8 800DDD48 0041C825 */ or $t9, $v0, $at
|
|
/* B54EEC 800DDD4C 35EF05C0 */ ori $t7, (0x0A0005C0 & 0xFFFF) # ori $t7, $t7, 0x5c0
|
|
/* B54EF0 800DDD50 24840008 */ addiu $a0, $a0, 8
|
|
/* B54EF4 800DDD54 AD2F0000 */ sw $t7, ($t1)
|
|
/* B54EF8 800DDD58 AD390004 */ sw $t9, 4($t1)
|
|
/* B54EFC 800DDD5C 00805025 */ move $t2, $a0
|
|
/* B54F00 800DDD60 24840008 */ addiu $a0, $a0, 8
|
|
/* B54F04 800DDD64 AD580000 */ sw $t8, ($t2)
|
|
/* B54F08 800DDD68 00805825 */ move $t3, $a0
|
|
/* B54F0C 800DDD6C 246F05C0 */ addiu $t7, $v1, 0x5c0
|
|
/* B54F10 800DDD70 AD430004 */ sw $v1, 4($t2)
|
|
/* B54F14 800DDD74 000FCC00 */ sll $t9, $t7, 0x10
|
|
/* B54F18 800DDD78 3C0E0A00 */ lui $t6, (0x0A0003C0 >> 16) # lui $t6, 0xa00
|
|
/* B54F1C 800DDD7C 35CE03C0 */ ori $t6, (0x0A0003C0 & 0xFFFF) # ori $t6, $t6, 0x3c0
|
|
/* B54F20 800DDD80 0322C025 */ or $t8, $t9, $v0
|
|
/* B54F24 800DDD84 AD780004 */ sw $t8, 4($t3)
|
|
/* B54F28 800DDD88 AD6E0000 */ sw $t6, ($t3)
|
|
/* B54F2C 800DDD8C 24840008 */ addiu $a0, $a0, 8
|
|
/* B54F30 800DDD90 00602825 */ move $a1, $v1
|
|
.L800DDD94:
|
|
/* B54F34 800DDD94 10600010 */ beqz $v1, .L800DDDD8
|
|
/* B54F38 800DDD98 00801025 */ move $v0, $a0
|
|
/* B54F3C 800DDD9C 24AE000F */ addiu $t6, $a1, 0xf
|
|
/* B54F40 800DDDA0 31CDFFF0 */ andi $t5, $t6, 0xfff0
|
|
/* B54F44 800DDDA4 000D7903 */ sra $t7, $t5, 4
|
|
/* B54F48 800DDDA8 31F900FF */ andi $t9, $t7, 0xff
|
|
/* B54F4C 800DDDAC 0019C400 */ sll $t8, $t9, 0x10
|
|
/* B54F50 800DDDB0 24ED05C0 */ addiu $t5, $a3, 0x5c0
|
|
/* B54F54 800DDDB4 3C011500 */ lui $at, 0x1500
|
|
/* B54F58 800DDDB8 03017025 */ or $t6, $t8, $at
|
|
/* B54F5C 800DDDBC 31AFFFFF */ andi $t7, $t5, 0xffff
|
|
/* B54F60 800DDDC0 01CFC825 */ or $t9, $t6, $t7
|
|
/* B54F64 800DDDC4 AC590000 */ sw $t9, ($v0)
|
|
/* B54F68 800DDDC8 8CD8000C */ lw $t8, 0xc($a2)
|
|
/* B54F6C 800DDDCC 24840008 */ addiu $a0, $a0, 8
|
|
/* B54F70 800DDDD0 270D00A0 */ addiu $t5, $t8, 0xa0
|
|
/* B54F74 800DDDD4 AC4D0004 */ sw $t5, 4($v0)
|
|
.L800DDDD8:
|
|
/* B54F78 800DDDD8 24EE003F */ addiu $t6, $a3, 0x3f
|
|
/* B54F7C 800DDDDC 31CFFFC0 */ andi $t7, $t6, 0xffc0
|
|
/* B54F80 800DDDE0 000FC903 */ sra $t9, $t7, 4
|
|
/* B54F84 800DDDE4 333800FF */ andi $t8, $t9, 0xff
|
|
/* B54F88 800DDDE8 00186C00 */ sll $t5, $t8, 0x10
|
|
/* B54F8C 800DDDEC 3C010400 */ lui $at, 0x400
|
|
/* B54F90 800DDDF0 01A17025 */ or $t6, $t5, $at
|
|
/* B54F94 800DDDF4 3C0105C0 */ lui $at, 0x5c0
|
|
/* B54F98 800DDDF8 3119FFFF */ andi $t9, $t0, 0xffff
|
|
/* B54F9C 800DDDFC 0321C025 */ or $t8, $t9, $at
|
|
/* B54FA0 800DDE00 35CF7FFF */ ori $t7, $t6, 0x7fff
|
|
/* B54FA4 800DDE04 AC8F0000 */ sw $t7, ($a0)
|
|
/* B54FA8 800DDE08 AC980004 */ sw $t8, 4($a0)
|
|
/* B54FAC 800DDE0C 24820008 */ addiu $v0, $a0, 8
|
|
/* B54FB0 800DDE10 03E00008 */ jr $ra
|
|
/* B54FB4 800DDE14 00000000 */ nop |