1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-11-26 02:04:18 +00:00
oot/asm/non_matchings/code/fault/func_800D59F8.s
2020-03-17 00:31:30 -04:00

116 lines
5.4 KiB
ArmAsm

glabel func_800D59F8
/* B4CB98 800D59F8 3C0FFFFA */ lui $t7, (0xFFFA5A5A >> 16) # lui $t7, 0xfffa
/* B4CB9C 800D59FC 03A0C825 */ move $t9, $sp
/* B4CBA0 800D5A00 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B4CBA4 800D5A04 35EF5A5A */ ori $t7, (0xFFFA5A5A & 0xFFFF) # ori $t7, $t7, 0x5a5a
.L800D5A08:
/* B4CBA8 800D5A08 2739FFF8 */ addiu $t9, $t9, -8
/* B4CBAC 800D5A0C AF2F0000 */ sw $t7, ($t9)
/* B4CBB0 800D5A10 173DFFFD */ bne $t9, $sp, .L800D5A08
/* B4CBB4 800D5A14 AF2F0004 */ sw $t7, 4($t9)
/* B4CBB8 800D5A18 AFB30014 */ sw $s3, 0x14($sp)
/* B4CBBC 800D5A1C AFB20010 */ sw $s2, 0x10($sp)
/* B4CBC0 800D5A20 AFB1000C */ sw $s1, 0xc($sp)
/* B4CBC4 800D5A24 AFB00008 */ sw $s0, 8($sp)
/* B4CBC8 800D5A28 8C820000 */ lw $v0, ($a0)
/* B4CBCC 800D5A2C 8CA30000 */ lw $v1, ($a1)
/* B4CBD0 800D5A30 8CC70000 */ lw $a3, ($a2)
/* B4CBD4 800D5A34 304E0003 */ andi $t6, $v0, 3
/* B4CBD8 800D5A38 15C0000E */ bnez $t6, .L800D5A74
/* B4CBDC 800D5A3C 3C080001 */ lui $t0, 1
/* B4CBE0 800D5A40 3C098000 */ lui $t1, 0x8000
/* B4CBE4 800D5A44 0049082B */ sltu $at, $v0, $t1
/* B4CBE8 800D5A48 1420000A */ bnez $at, .L800D5A74
/* B4CBEC 800D5A4C 3C0CA000 */ lui $t4, 0xa000
/* B4CBF0 800D5A50 004C082B */ sltu $at, $v0, $t4
/* B4CBF4 800D5A54 10200007 */ beqz $at, .L800D5A74
/* B4CBF8 800D5A58 30EF0003 */ andi $t7, $a3, 3
/* B4CBFC 800D5A5C 15E00005 */ bnez $t7, .L800D5A74
/* B4CC00 800D5A60 00E9082B */ sltu $at, $a3, $t1
/* B4CC04 800D5A64 14200003 */ bnez $at, .L800D5A74
/* B4CC08 800D5A68 00EC082B */ sltu $at, $a3, $t4
/* B4CC0C 800D5A6C 14200005 */ bnez $at, .L800D5A84
/* B4CC10 800D5A70 30780003 */ andi $t8, $v1, 3
.L800D5A74:
/* B4CC14 800D5A74 AC800000 */ sw $zero, ($a0)
/* B4CC18 800D5A78 ACA00000 */ sw $zero, ($a1)
/* B4CC1C 800D5A7C 1000003C */ b .L800D5B70
/* B4CC20 800D5A80 ACC00000 */ sw $zero, ($a2)
.L800D5A84:
/* B4CC24 800D5A84 17000005 */ bnez $t8, .L800D5A9C
/* B4CC28 800D5A88 0069082B */ sltu $at, $v1, $t1
/* B4CC2C 800D5A8C 14200003 */ bnez $at, .L800D5A9C
/* B4CC30 800D5A90 006C082B */ sltu $at, $v1, $t4
/* B4CC34 800D5A94 14200003 */ bnez $at, .L800D5AA4
/* B4CC38 800D5A98 00004825 */ move $t1, $zero
.L800D5A9C:
/* B4CC3C 800D5A9C 10000034 */ b .L800D5B70
/* B4CC40 800D5AA0 ACA70000 */ sw $a3, ($a1)
.L800D5AA4:
/* B4CC44 800D5AA4 3C134200 */ lui $s3, (0x42000018 >> 16) # lui $s3, 0x4200
/* B4CC48 800D5AA8 3C1003E0 */ lui $s0, (0x03E00008 >> 16) # lui $s0, 0x3e0
/* B4CC4C 800D5AAC 36100008 */ ori $s0, (0x03E00008 & 0xFFFF) # ori $s0, $s0, 8
/* B4CC50 800D5AB0 36730018 */ ori $s3, (0x42000018 & 0xFFFF) # ori $s3, $s3, 0x18
/* B4CC54 800D5AB4 241227BD */ li $s2, 10173
/* B4CC58 800D5AB8 24110002 */ li $s1, 2
/* B4CC5C 800D5ABC 340D8FBF */ li $t5, 36799
.L800D5AC0:
/* B4CC60 800D5AC0 006CC825 */ or $t9, $v1, $t4
/* B4CC64 800D5AC4 8F2A0000 */ lw $t2, ($t9)
/* B4CC68 800D5AC8 000A5C02 */ srl $t3, $t2, 0x10
/* B4CC6C 800D5ACC 316BFFFF */ andi $t3, $t3, 0xffff
/* B4CC70 800D5AD0 15AB0006 */ bne $t5, $t3, .L800D5AEC
/* B4CC74 800D5AD4 000A7C00 */ sll $t7, $t2, 0x10
/* B4CC78 800D5AD8 000FC403 */ sra $t8, $t7, 0x10
/* B4CC7C 800D5ADC 0058C821 */ addu $t9, $v0, $t8
/* B4CC80 800D5AE0 032C7025 */ or $t6, $t9, $t4
/* B4CC84 800D5AE4 1000000C */ b .L800D5B18
/* B4CC88 800D5AE8 8DC70000 */ lw $a3, ($t6)
.L800D5AEC:
/* B4CC8C 800D5AEC 164B0004 */ bne $s2, $t3, .L800D5B00
/* B4CC90 800D5AF0 000AC400 */ sll $t8, $t2, 0x10
/* B4CC94 800D5AF4 0018CC03 */ sra $t9, $t8, 0x10
/* B4CC98 800D5AF8 10000007 */ b .L800D5B18
/* B4CC9C 800D5AFC 00591021 */ addu $v0, $v0, $t9
.L800D5B00:
/* B4CCA0 800D5B00 15530005 */ bne $t2, $s3, .L800D5B18
/* B4CCA4 800D5B04 00000000 */ nop
/* B4CCA8 800D5B08 00001025 */ move $v0, $zero
/* B4CCAC 800D5B0C 00001825 */ move $v1, $zero
/* B4CCB0 800D5B10 10000014 */ b .L800D5B64
/* B4CCB4 800D5B14 00003825 */ move $a3, $zero
.L800D5B18:
/* B4CCB8 800D5B18 15300003 */ bne $t1, $s0, .L800D5B28
/* B4CCBC 800D5B1C 00097682 */ srl $t6, $t1, 0x1a
/* B4CCC0 800D5B20 10000010 */ b .L800D5B64
/* B4CCC4 800D5B24 00E01825 */ move $v1, $a3
.L800D5B28:
/* B4CCC8 800D5B28 162E0006 */ bne $s1, $t6, .L800D5B44
/* B4CCCC 800D5B2C 00037F02 */ srl $t7, $v1, 0x1c
/* B4CCD0 800D5B30 0009C980 */ sll $t9, $t1, 6
/* B4CCD4 800D5B34 00197102 */ srl $t6, $t9, 4
/* B4CCD8 800D5B38 000FC700 */ sll $t8, $t7, 0x1c
/* B4CCDC 800D5B3C 10000009 */ b .L800D5B64
/* B4CCE0 800D5B40 030E1825 */ or $v1, $t8, $t6
.L800D5B44:
/* B4CCE4 800D5B44 01404825 */ move $t1, $t2
/* B4CCE8 800D5B48 11000003 */ beqz $t0, .L800D5B58
/* B4CCEC 800D5B4C 24630004 */ addiu $v1, $v1, 4
/* B4CCF0 800D5B50 1000FFDB */ b .L800D5AC0
/* B4CCF4 800D5B54 2508FFFF */ addiu $t0, $t0, -1
.L800D5B58:
/* B4CCF8 800D5B58 00001025 */ move $v0, $zero
/* B4CCFC 800D5B5C 00001825 */ move $v1, $zero
/* B4CD00 800D5B60 00003825 */ move $a3, $zero
.L800D5B64:
/* B4CD04 800D5B64 AC820000 */ sw $v0, ($a0)
/* B4CD08 800D5B68 ACA30000 */ sw $v1, ($a1)
/* B4CD0C 800D5B6C ACC70000 */ sw $a3, ($a2)
.L800D5B70:
/* B4CD10 800D5B70 8FB00008 */ lw $s0, 8($sp)
/* B4CD14 800D5B74 8FB1000C */ lw $s1, 0xc($sp)
/* B4CD18 800D5B78 8FB20010 */ lw $s2, 0x10($sp)
/* B4CD1C 800D5B7C 8FB30014 */ lw $s3, 0x14($sp)
/* B4CD20 800D5B80 03E00008 */ jr $ra
/* B4CD24 800D5B84 27BD0018 */ addiu $sp, $sp, 0x18