mirror of https://github.com/zeldaret/oot.git
191 lines
9.1 KiB
ArmAsm
191 lines
9.1 KiB
ArmAsm
glabel func_800F8A44
|
|
/* B6FBE4 800F8A44 27BDFF78 */ addiu $sp, $sp, -0x88
|
|
/* B6FBE8 800F8A48 AFB70034 */ sw $s7, 0x34($sp)
|
|
/* B6FBEC 800F8A4C AFA5008C */ sw $a1, 0x8c($sp)
|
|
/* B6FBF0 800F8A50 97B7008E */ lhu $s7, 0x8e($sp)
|
|
/* B6FBF4 800F8A54 AFBE0038 */ sw $fp, 0x38($sp)
|
|
/* B6FBF8 800F8A58 3C0F8013 */ lui $t7, %hi(D_801333A8) # $t7, 0x8013
|
|
/* B6FBFC 800F8A5C 32FEF000 */ andi $fp, $s7, 0xf000
|
|
/* B6FC00 800F8A60 001EF303 */ sra $fp, $fp, 0xc
|
|
/* B6FC04 800F8A64 33DE00FF */ andi $fp, $fp, 0xff
|
|
/* B6FC08 800F8A68 AFB30024 */ sw $s3, 0x24($sp)
|
|
/* B6FC0C 800F8A6C 001E7080 */ sll $t6, $fp, 2
|
|
/* B6FC10 800F8A70 25EF33A8 */ addiu $t7, %lo(D_801333A8) # addiu $t7, $t7, 0x33a8
|
|
/* B6FC14 800F8A74 01CF9821 */ addu $s3, $t6, $t7
|
|
/* B6FC18 800F8A78 8E780000 */ lw $t8, ($s3)
|
|
/* B6FC1C 800F8A7C AFBF003C */ sw $ra, 0x3c($sp)
|
|
/* B6FC20 800F8A80 AFB60030 */ sw $s6, 0x30($sp)
|
|
/* B6FC24 800F8A84 AFB5002C */ sw $s5, 0x2c($sp)
|
|
/* B6FC28 800F8A88 AFB40028 */ sw $s4, 0x28($sp)
|
|
/* B6FC2C 800F8A8C AFB20020 */ sw $s2, 0x20($sp)
|
|
/* B6FC30 800F8A90 AFB1001C */ sw $s1, 0x1c($sp)
|
|
/* B6FC34 800F8A94 AFB00018 */ sw $s0, 0x18($sp)
|
|
/* B6FC38 800F8A98 AFA40088 */ sw $a0, 0x88($sp)
|
|
/* B6FC3C 800F8A9C 9311002D */ lbu $s1, 0x2d($t8)
|
|
/* B6FC40 800F8AA0 241500FF */ li $s5, 255
|
|
/* B6FC44 800F8AA4 0000A025 */ move $s4, $zero
|
|
/* B6FC48 800F8AA8 12B1002A */ beq $s5, $s1, .L800F8B54
|
|
/* B6FC4C 800F8AAC 02201025 */ move $v0, $s1
|
|
/* B6FC50 800F8AB0 3C160602 */ lui $s6, 0x602
|
|
/* B6FC54 800F8AB4 24120030 */ li $s2, 48
|
|
.L800F8AB8:
|
|
/* B6FC58 800F8AB8 02320019 */ multu $s1, $s2
|
|
/* B6FC5C 800F8ABC 8E790000 */ lw $t9, ($s3)
|
|
/* B6FC60 800F8AC0 8FA90088 */ lw $t1, 0x88($sp)
|
|
/* B6FC64 800F8AC4 00004012 */ mflo $t0
|
|
/* B6FC68 800F8AC8 03288021 */ addu $s0, $t9, $t0
|
|
/* B6FC6C 800F8ACC 8E0A0000 */ lw $t2, ($s0)
|
|
/* B6FC70 800F8AD0 552A0016 */ bnel $t1, $t2, .L800F8B2C
|
|
/* B6FC74 800F8AD4 323400FF */ andi $s4, $s1, 0xff
|
|
/* B6FC78 800F8AD8 960B0028 */ lhu $t3, 0x28($s0)
|
|
/* B6FC7C 800F8ADC 56EB0013 */ bnel $s7, $t3, .L800F8B2C
|
|
/* B6FC80 800F8AE0 323400FF */ andi $s4, $s1, 0xff
|
|
/* B6FC84 800F8AE4 9202002A */ lbu $v0, 0x2a($s0)
|
|
/* B6FC88 800F8AE8 28410003 */ slti $at, $v0, 3
|
|
/* B6FC8C 800F8AEC 14200007 */ bnez $at, .L800F8B0C
|
|
/* B6FC90 800F8AF0 00000000 */ nop
|
|
/* B6FC94 800F8AF4 920D002E */ lbu $t5, 0x2e($s0)
|
|
/* B6FC98 800F8AF8 00002825 */ move $a1, $zero
|
|
/* B6FC9C 800F8AFC 000D7200 */ sll $t6, $t5, 8
|
|
/* B6FCA0 800F8B00 0C0396C8 */ jal func_800E5B20
|
|
/* B6FCA4 800F8B04 01D62025 */ or $a0, $t6, $s6
|
|
/* B6FCA8 800F8B08 9202002A */ lbu $v0, 0x2a($s0)
|
|
.L800F8B0C:
|
|
/* B6FCAC 800F8B0C 10400003 */ beqz $v0, .L800F8B1C
|
|
/* B6FCB0 800F8B10 33C400FF */ andi $a0, $fp, 0xff
|
|
/* B6FCB4 800F8B14 0C03DED5 */ jal func_800F7B54
|
|
/* B6FCB8 800F8B18 322500FF */ andi $a1, $s1, 0xff
|
|
.L800F8B1C:
|
|
/* B6FCBC 800F8B1C 241100FF */ li $s1, 255
|
|
/* B6FCC0 800F8B20 10000002 */ b .L800F8B2C
|
|
/* B6FCC4 800F8B24 240200FF */ li $v0, 255
|
|
/* B6FCC8 800F8B28 323400FF */ andi $s4, $s1, 0xff
|
|
.L800F8B2C:
|
|
/* B6FCCC 800F8B2C 12A20007 */ beq $s5, $v0, .L800F8B4C
|
|
/* B6FCD0 800F8B30 00000000 */ nop
|
|
/* B6FCD4 800F8B34 02920019 */ multu $s4, $s2
|
|
/* B6FCD8 800F8B38 8E6F0000 */ lw $t7, ($s3)
|
|
/* B6FCDC 800F8B3C 0000C012 */ mflo $t8
|
|
/* B6FCE0 800F8B40 01F8C821 */ addu $t9, $t7, $t8
|
|
/* B6FCE4 800F8B44 9331002D */ lbu $s1, 0x2d($t9)
|
|
/* B6FCE8 800F8B48 02201025 */ move $v0, $s1
|
|
.L800F8B4C:
|
|
/* B6FCEC 800F8B4C 16A2FFDA */ bne $s5, $v0, .L800F8AB8
|
|
/* B6FCF0 800F8B50 00000000 */ nop
|
|
.L800F8B54:
|
|
/* B6FCF4 800F8B54 8FA80088 */ lw $t0, 0x88($sp)
|
|
/* B6FCF8 800F8B58 97A9008E */ lhu $t1, 0x8e($sp)
|
|
/* B6FCFC 800F8B5C 24040003 */ li $a0, 3
|
|
/* B6FD00 800F8B60 27A50050 */ addiu $a1, $sp, 0x50
|
|
/* B6FD04 800F8B64 AFA80050 */ sw $t0, 0x50($sp)
|
|
/* B6FD08 800F8B68 0C03DD38 */ jal func_800F74E0
|
|
/* B6FD0C 800F8B6C A7A90078 */ sh $t1, 0x78($sp)
|
|
/* B6FD10 800F8B70 8FBF003C */ lw $ra, 0x3c($sp)
|
|
/* B6FD14 800F8B74 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* B6FD18 800F8B78 8FB1001C */ lw $s1, 0x1c($sp)
|
|
/* B6FD1C 800F8B7C 8FB20020 */ lw $s2, 0x20($sp)
|
|
/* B6FD20 800F8B80 8FB30024 */ lw $s3, 0x24($sp)
|
|
/* B6FD24 800F8B84 8FB40028 */ lw $s4, 0x28($sp)
|
|
/* B6FD28 800F8B88 8FB5002C */ lw $s5, 0x2c($sp)
|
|
/* B6FD2C 800F8B8C 8FB60030 */ lw $s6, 0x30($sp)
|
|
/* B6FD30 800F8B90 8FB70034 */ lw $s7, 0x34($sp)
|
|
/* B6FD34 800F8B94 8FBE0038 */ lw $fp, 0x38($sp)
|
|
/* B6FD38 800F8B98 03E00008 */ jr $ra
|
|
/* B6FD3C 800F8B9C 27BD0088 */ addiu $sp, $sp, 0x88
|
|
|
|
/* B6FD40 800F8BA0 27BDFF70 */ addiu $sp, $sp, -0x90
|
|
/* B6FD44 800F8BA4 AFBE0038 */ sw $fp, 0x38($sp)
|
|
/* B6FD48 800F8BA8 AFA50094 */ sw $a1, 0x94($sp)
|
|
/* B6FD4C 800F8BAC 97BE0096 */ lhu $fp, 0x96($sp)
|
|
/* B6FD50 800F8BB0 3C088013 */ lui $t0, %hi(D_801333A8) # $t0, 0x8013
|
|
/* B6FD54 800F8BB4 AFB40028 */ sw $s4, 0x28($sp)
|
|
/* B6FD58 800F8BB8 33CEF000 */ andi $t6, $fp, 0xf000
|
|
/* B6FD5C 800F8BBC 000E7B03 */ sra $t7, $t6, 0xc
|
|
/* B6FD60 800F8BC0 31F800FF */ andi $t8, $t7, 0xff
|
|
/* B6FD64 800F8BC4 0018C880 */ sll $t9, $t8, 2
|
|
/* B6FD68 800F8BC8 250833A8 */ addiu $t0, %lo(D_801333A8) # addiu $t0, $t0, 0x33a8
|
|
/* B6FD6C 800F8BCC 0328A021 */ addu $s4, $t9, $t0
|
|
/* B6FD70 800F8BD0 8E890000 */ lw $t1, ($s4)
|
|
/* B6FD74 800F8BD4 AFBF003C */ sw $ra, 0x3c($sp)
|
|
/* B6FD78 800F8BD8 AFB70034 */ sw $s7, 0x34($sp)
|
|
/* B6FD7C 800F8BDC AFB60030 */ sw $s6, 0x30($sp)
|
|
/* B6FD80 800F8BE0 AFB5002C */ sw $s5, 0x2c($sp)
|
|
/* B6FD84 800F8BE4 AFB30024 */ sw $s3, 0x24($sp)
|
|
/* B6FD88 800F8BE8 AFB20020 */ sw $s2, 0x20($sp)
|
|
/* B6FD8C 800F8BEC AFB1001C */ sw $s1, 0x1c($sp)
|
|
/* B6FD90 800F8BF0 AFB00018 */ sw $s0, 0x18($sp)
|
|
/* B6FD94 800F8BF4 AFA40090 */ sw $a0, 0x90($sp)
|
|
/* B6FD98 800F8BF8 AFB80050 */ sw $t8, 0x50($sp)
|
|
/* B6FD9C 800F8BFC 9131002D */ lbu $s1, 0x2d($t1)
|
|
/* B6FDA0 800F8C00 241600FF */ li $s6, 255
|
|
/* B6FDA4 800F8C04 0000A825 */ move $s5, $zero
|
|
/* B6FDA8 800F8C08 12D1002B */ beq $s6, $s1, .L800F8CB8
|
|
/* B6FDAC 800F8C0C 02209025 */ move $s2, $s1
|
|
/* B6FDB0 800F8C10 93AA0093 */ lbu $t2, 0x93($sp)
|
|
/* B6FDB4 800F8C14 3C170602 */ lui $s7, 0x602
|
|
/* B6FDB8 800F8C18 24130030 */ li $s3, 48
|
|
/* B6FDBC 800F8C1C AFAA0044 */ sw $t2, 0x44($sp)
|
|
.L800F8C20:
|
|
/* B6FDC0 800F8C20 02330019 */ multu $s1, $s3
|
|
/* B6FDC4 800F8C24 8E8B0000 */ lw $t3, ($s4)
|
|
/* B6FDC8 800F8C28 8FAD0044 */ lw $t5, 0x44($sp)
|
|
/* B6FDCC 800F8C2C 00006012 */ mflo $t4
|
|
/* B6FDD0 800F8C30 016C8021 */ addu $s0, $t3, $t4
|
|
/* B6FDD4 800F8C34 920E000C */ lbu $t6, 0xc($s0)
|
|
/* B6FDD8 800F8C38 55AE0015 */ bnel $t5, $t6, .L800F8C90
|
|
/* B6FDDC 800F8C3C 323500FF */ andi $s5, $s1, 0xff
|
|
/* B6FDE0 800F8C40 960F0028 */ lhu $t7, 0x28($s0)
|
|
/* B6FDE4 800F8C44 57CF0012 */ bnel $fp, $t7, .L800F8C90
|
|
/* B6FDE8 800F8C48 323500FF */ andi $s5, $s1, 0xff
|
|
/* B6FDEC 800F8C4C 9202002A */ lbu $v0, 0x2a($s0)
|
|
/* B6FDF0 800F8C50 28410003 */ slti $at, $v0, 3
|
|
/* B6FDF4 800F8C54 14200007 */ bnez $at, .L800F8C74
|
|
/* B6FDF8 800F8C58 00000000 */ nop
|
|
/* B6FDFC 800F8C5C 9219002E */ lbu $t9, 0x2e($s0)
|
|
/* B6FE00 800F8C60 00002825 */ move $a1, $zero
|
|
/* B6FE04 800F8C64 00194200 */ sll $t0, $t9, 8
|
|
/* B6FE08 800F8C68 0C0396C8 */ jal func_800E5B20
|
|
/* B6FE0C 800F8C6C 01172025 */ or $a0, $t0, $s7
|
|
/* B6FE10 800F8C70 9202002A */ lbu $v0, 0x2a($s0)
|
|
.L800F8C74:
|
|
/* B6FE14 800F8C74 10400006 */ beqz $v0, .L800F8C90
|
|
/* B6FE18 800F8C78 93A40053 */ lbu $a0, 0x53($sp)
|
|
/* B6FE1C 800F8C7C 0C03DED5 */ jal func_800F7B54
|
|
/* B6FE20 800F8C80 322500FF */ andi $a1, $s1, 0xff
|
|
/* B6FE24 800F8C84 10000002 */ b .L800F8C90
|
|
/* B6FE28 800F8C88 00000000 */ nop
|
|
/* B6FE2C 800F8C8C 323500FF */ andi $s5, $s1, 0xff
|
|
.L800F8C90:
|
|
/* B6FE30 800F8C90 12D20007 */ beq $s6, $s2, .L800F8CB0
|
|
/* B6FE34 800F8C94 00000000 */ nop
|
|
/* B6FE38 800F8C98 02B30019 */ multu $s5, $s3
|
|
/* B6FE3C 800F8C9C 8E890000 */ lw $t1, ($s4)
|
|
/* B6FE40 800F8CA0 00005012 */ mflo $t2
|
|
/* B6FE44 800F8CA4 012A5821 */ addu $t3, $t1, $t2
|
|
/* B6FE48 800F8CA8 9171002D */ lbu $s1, 0x2d($t3)
|
|
/* B6FE4C 800F8CAC 02209025 */ move $s2, $s1
|
|
.L800F8CB0:
|
|
/* B6FE50 800F8CB0 16D2FFDB */ bne $s6, $s2, .L800F8C20
|
|
/* B6FE54 800F8CB4 00000000 */ nop
|
|
.L800F8CB8:
|
|
/* B6FE58 800F8CB8 93AC0093 */ lbu $t4, 0x93($sp)
|
|
/* B6FE5C 800F8CBC 97AD0096 */ lhu $t5, 0x96($sp)
|
|
/* B6FE60 800F8CC0 24040004 */ li $a0, 4
|
|
/* B6FE64 800F8CC4 27A50058 */ addiu $a1, $sp, 0x58
|
|
/* B6FE68 800F8CC8 A3AC0064 */ sb $t4, 0x64($sp)
|
|
/* B6FE6C 800F8CCC 0C03DD38 */ jal func_800F74E0
|
|
/* B6FE70 800F8CD0 A7AD0080 */ sh $t5, 0x80($sp)
|
|
/* B6FE74 800F8CD4 8FBF003C */ lw $ra, 0x3c($sp)
|
|
/* B6FE78 800F8CD8 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* B6FE7C 800F8CDC 8FB1001C */ lw $s1, 0x1c($sp)
|
|
/* B6FE80 800F8CE0 8FB20020 */ lw $s2, 0x20($sp)
|
|
/* B6FE84 800F8CE4 8FB30024 */ lw $s3, 0x24($sp)
|
|
/* B6FE88 800F8CE8 8FB40028 */ lw $s4, 0x28($sp)
|
|
/* B6FE8C 800F8CEC 8FB5002C */ lw $s5, 0x2c($sp)
|
|
/* B6FE90 800F8CF0 8FB60030 */ lw $s6, 0x30($sp)
|
|
/* B6FE94 800F8CF4 8FB70034 */ lw $s7, 0x34($sp)
|
|
/* B6FE98 800F8CF8 8FBE0038 */ lw $fp, 0x38($sp)
|
|
/* B6FE9C 800F8CFC 03E00008 */ jr $ra
|
|
/* B6FEA0 800F8D00 27BD0090 */ addiu $sp, $sp, 0x90
|
|
|