mirror of https://github.com/zeldaret/oot.git
260 lines
12 KiB
ArmAsm
260 lines
12 KiB
ArmAsm
.rdata
|
|
glabel D_8013AC7C
|
|
.asciz "pclobj_elem->ac_hit_elem != NULL"
|
|
.balign 4
|
|
|
|
glabel D_8013ACA0
|
|
.asciz "../z_collision_check.c"
|
|
.balign 4
|
|
|
|
.text
|
|
glabel func_80061F64
|
|
/* AD9104 80061F64 27BDFFE8 */ addiu $sp, $sp, -0x18
|
|
/* AD9108 80061F68 AFBF0014 */ sw $ra, 0x14($sp)
|
|
/* AD910C 80061F6C AFA40018 */ sw $a0, 0x18($sp)
|
|
/* AD9110 80061F70 AFA5001C */ sw $a1, 0x1c($sp)
|
|
/* AD9114 80061F74 AFA60020 */ sw $a2, 0x20($sp)
|
|
/* AD9118 80061F78 8CC80000 */ lw $t0, ($a2)
|
|
/* AD911C 80061F7C 51000078 */ beql $t0, $zero, .L80062160
|
|
/* AD9120 80061F80 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* AD9124 80061F84 90CF0011 */ lbu $t7, 0x11($a2)
|
|
/* AD9128 80061F88 31F80002 */ andi $t8, $t7, 2
|
|
/* AD912C 80061F8C 53000074 */ beql $t8, $zero, .L80062160
|
|
/* AD9130 80061F90 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* AD9134 80061F94 90E20016 */ lbu $v0, 0x16($a3)
|
|
/* AD9138 80061F98 30590002 */ andi $t9, $v0, 2
|
|
/* AD913C 80061F9C 1320006F */ beqz $t9, .L8006215C
|
|
/* AD9140 80061FA0 30490010 */ andi $t1, $v0, 0x10
|
|
/* AD9144 80061FA4 5520006E */ bnezl $t1, .L80062160
|
|
/* AD9148 80061FA8 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* AD914C 80061FAC 8CE40024 */ lw $a0, 0x24($a3)
|
|
/* AD9150 80061FB0 3C058014 */ lui $a1, %hi(D_8013ACA0)
|
|
/* AD9154 80061FB4 24A5ACA0 */ addiu $a1, %lo(D_8013ACA0) # addiu $a1, $a1, -0x5360
|
|
/* AD9158 80061FB8 14800009 */ bnez $a0, .L80061FE0
|
|
/* AD915C 80061FBC 2406195D */ li $a2, 6493
|
|
/* AD9160 80061FC0 3C048014 */ lui $a0, %hi(D_8013AC7C)
|
|
/* AD9164 80061FC4 2484AC7C */ addiu $a0, %lo(D_8013AC7C) # addiu $a0, $a0, -0x5384
|
|
/* AD9168 80061FC8 0C0007FC */ jal __assert
|
|
/* AD916C 80061FCC AFA70024 */ sw $a3, 0x24($sp)
|
|
/* AD9170 80061FD0 8FA70024 */ lw $a3, 0x24($sp)
|
|
/* AD9174 80061FD4 8FAA0020 */ lw $t2, 0x20($sp)
|
|
/* AD9178 80061FD8 8CE40024 */ lw $a0, 0x24($a3)
|
|
/* AD917C 80061FDC 8D480000 */ lw $t0, ($t2)
|
|
.L80061FE0:
|
|
/* AD9180 80061FE0 8D060098 */ lw $a2, 0x98($t0)
|
|
/* AD9184 80061FE4 00001825 */ move $v1, $zero
|
|
/* AD9188 80061FE8 24050020 */ li $a1, 32
|
|
/* AD918C 80061FEC 54C0001B */ bnezl $a2, .L8006205C
|
|
/* AD9190 80061FF0 8C820000 */ lw $v0, ($a0)
|
|
/* AD9194 80061FF4 908B0005 */ lbu $t3, 5($a0)
|
|
/* AD9198 80061FF8 44801000 */ mtc1 $zero, $f2
|
|
/* AD919C 80061FFC 3C014F80 */ li $at, 0x4F800000 # 0.000000
|
|
/* AD91A0 80062000 448B2000 */ mtc1 $t3, $f4
|
|
/* AD91A4 80062004 05610004 */ bgez $t3, .L80062018
|
|
/* AD91A8 80062008 468021A0 */ cvt.s.w $f6, $f4
|
|
/* AD91AC 8006200C 44814000 */ mtc1 $at, $f8
|
|
/* AD91B0 80062010 00000000 */ nop
|
|
/* AD91B4 80062014 46083180 */ add.s $f6, $f6, $f8
|
|
.L80062018:
|
|
/* AD91B8 80062018 90EC000D */ lbu $t4, 0xd($a3)
|
|
/* AD91BC 8006201C 3C014F80 */ li $at, 0x4F800000 # 0.000000
|
|
/* AD91C0 80062020 448C5000 */ mtc1 $t4, $f10
|
|
/* AD91C4 80062024 05810004 */ bgez $t4, .L80062038
|
|
/* AD91C8 80062028 46805420 */ cvt.s.w $f16, $f10
|
|
/* AD91CC 8006202C 44819000 */ mtc1 $at, $f18
|
|
/* AD91D0 80062030 00000000 */ nop
|
|
/* AD91D4 80062034 46128400 */ add.s $f16, $f16, $f18
|
|
.L80062038:
|
|
/* AD91D8 80062038 46103001 */ sub.s $f0, $f6, $f16
|
|
/* AD91DC 8006203C 8FAD0020 */ lw $t5, 0x20($sp)
|
|
/* AD91E0 80062040 4602003C */ c.lt.s $f0, $f2
|
|
/* AD91E4 80062044 91A50011 */ lbu $a1, 0x11($t5)
|
|
/* AD91E8 80062048 45020015 */ bc1fl .L800620A0
|
|
/* AD91EC 8006204C 30AA0004 */ andi $t2, $a1, 4
|
|
/* AD91F0 80062050 10000012 */ b .L8006209C
|
|
/* AD91F4 80062054 46001006 */ mov.s $f0, $f2
|
|
/* AD91F8 80062058 8C820000 */ lw $v0, ($a0)
|
|
.L8006205C:
|
|
/* AD91FC 8006205C 24040001 */ li $a0, 1
|
|
.L80062060:
|
|
/* AD9200 80062060 50440005 */ beql $v0, $a0, .L80062078
|
|
/* AD9204 80062064 00C37021 */ addu $t6, $a2, $v1
|
|
/* AD9208 80062068 24630001 */ addiu $v1, $v1, 1
|
|
/* AD920C 8006206C 1465FFFC */ bne $v1, $a1, .L80062060
|
|
/* AD9210 80062070 00021042 */ srl $v0, $v0, 1
|
|
/* AD9214 80062074 00C37021 */ addu $t6, $a2, $v1
|
|
.L80062078:
|
|
/* AD9218 80062078 91C20000 */ lbu $v0, ($t6)
|
|
/* AD921C 8006207C 0002C103 */ sra $t8, $v0, 4
|
|
/* AD9220 80062080 3319000F */ andi $t9, $t8, 0xf
|
|
/* AD9224 80062084 A11900B1 */ sb $t9, 0xb1($t0)
|
|
/* AD9228 80062088 304F000F */ andi $t7, $v0, 0xf
|
|
/* AD922C 8006208C 448F2000 */ mtc1 $t7, $f4
|
|
/* AD9230 80062090 8FA90020 */ lw $t1, 0x20($sp)
|
|
/* AD9234 80062094 46802020 */ cvt.s.w $f0, $f4
|
|
/* AD9238 80062098 91250011 */ lbu $a1, 0x11($t1)
|
|
.L8006209C:
|
|
/* AD923C 8006209C 30AA0004 */ andi $t2, $a1, 4
|
|
.L800620A0:
|
|
/* AD9240 800620A0 1540002E */ bnez $t2, .L8006215C
|
|
/* AD9244 800620A4 8FAB0020 */ lw $t3, 0x20($sp)
|
|
/* AD9248 800620A8 8D680000 */ lw $t0, ($t3)
|
|
/* AD924C 800620AC 3C014F80 */ li $at, 0x4F800000 # 0.000000
|
|
/* AD9250 800620B0 910C00B0 */ lbu $t4, 0xb0($t0)
|
|
/* AD9254 800620B4 448C4000 */ mtc1 $t4, $f8
|
|
/* AD9258 800620B8 05810004 */ bgez $t4, .L800620CC
|
|
/* AD925C 800620BC 468042A0 */ cvt.s.w $f10, $f8
|
|
/* AD9260 800620C0 44819000 */ mtc1 $at, $f18
|
|
/* AD9264 800620C4 00000000 */ nop
|
|
/* AD9268 800620C8 46125280 */ add.s $f10, $f10, $f18
|
|
.L800620CC:
|
|
/* AD926C 800620CC 46005180 */ add.s $f6, $f10, $f0
|
|
/* AD9270 800620D0 240E0001 */ li $t6, 1
|
|
/* AD9274 800620D4 3C014F00 */ li $at, 0x4F000000 # 0.000000
|
|
/* AD9278 800620D8 444DF800 */ cfc1 $t5, $31
|
|
/* AD927C 800620DC 44CEF800 */ ctc1 $t6, $31
|
|
/* AD9280 800620E0 00000000 */ nop
|
|
/* AD9284 800620E4 46003424 */ cvt.w.s $f16, $f6
|
|
/* AD9288 800620E8 444EF800 */ cfc1 $t6, $31
|
|
/* AD928C 800620EC 00000000 */ nop
|
|
/* AD9290 800620F0 31CE0078 */ andi $t6, $t6, 0x78
|
|
/* AD9294 800620F4 51C00013 */ beql $t6, $zero, .L80062144
|
|
/* AD9298 800620F8 440E8000 */ mfc1 $t6, $f16
|
|
/* AD929C 800620FC 44818000 */ mtc1 $at, $f16
|
|
/* AD92A0 80062100 240E0001 */ li $t6, 1
|
|
/* AD92A4 80062104 46103401 */ sub.s $f16, $f6, $f16
|
|
/* AD92A8 80062108 44CEF800 */ ctc1 $t6, $31
|
|
/* AD92AC 8006210C 00000000 */ nop
|
|
/* AD92B0 80062110 46008424 */ cvt.w.s $f16, $f16
|
|
/* AD92B4 80062114 444EF800 */ cfc1 $t6, $31
|
|
/* AD92B8 80062118 00000000 */ nop
|
|
/* AD92BC 8006211C 31CE0078 */ andi $t6, $t6, 0x78
|
|
/* AD92C0 80062120 15C00005 */ bnez $t6, .L80062138
|
|
/* AD92C4 80062124 00000000 */ nop
|
|
/* AD92C8 80062128 440E8000 */ mfc1 $t6, $f16
|
|
/* AD92CC 8006212C 3C018000 */ lui $at, 0x8000
|
|
/* AD92D0 80062130 10000007 */ b .L80062150
|
|
/* AD92D4 80062134 01C17025 */ or $t6, $t6, $at
|
|
.L80062138:
|
|
/* AD92D8 80062138 10000005 */ b .L80062150
|
|
/* AD92DC 8006213C 240EFFFF */ li $t6, -1
|
|
/* AD92E0 80062140 440E8000 */ mfc1 $t6, $f16
|
|
.L80062144:
|
|
/* AD92E4 80062144 00000000 */ nop
|
|
/* AD92E8 80062148 05C0FFFB */ bltz $t6, .L80062138
|
|
/* AD92EC 8006214C 00000000 */ nop
|
|
.L80062150:
|
|
/* AD92F0 80062150 44CDF800 */ ctc1 $t5, $31
|
|
/* AD92F4 80062154 A10E00B0 */ sb $t6, 0xb0($t0)
|
|
/* AD92F8 80062158 00000000 */ nop
|
|
.L8006215C:
|
|
/* AD92FC 8006215C 8FBF0014 */ lw $ra, 0x14($sp)
|
|
.L80062160:
|
|
/* AD9300 80062160 27BD0018 */ addiu $sp, $sp, 0x18
|
|
/* AD9304 80062164 03E00008 */ jr $ra
|
|
/* AD9308 80062168 00000000 */ nop
|
|
|
|
/* AD930C 8006216C 27BDFFD0 */ addiu $sp, $sp, -0x30
|
|
/* AD9310 80062170 AFBF002C */ sw $ra, 0x2c($sp)
|
|
/* AD9314 80062174 AFB50028 */ sw $s5, 0x28($sp)
|
|
/* AD9318 80062178 AFB40024 */ sw $s4, 0x24($sp)
|
|
/* AD931C 8006217C AFB30020 */ sw $s3, 0x20($sp)
|
|
/* AD9320 80062180 AFB2001C */ sw $s2, 0x1c($sp)
|
|
/* AD9324 80062184 AFB10018 */ sw $s1, 0x18($sp)
|
|
/* AD9328 80062188 AFB00014 */ sw $s0, 0x14($sp)
|
|
/* AD932C 8006218C 8CC20018 */ lw $v0, 0x18($a2)
|
|
/* AD9330 80062190 00C09025 */ move $s2, $a2
|
|
/* AD9334 80062194 0080A025 */ move $s4, $a0
|
|
/* AD9338 80062198 00A0A825 */ move $s5, $a1
|
|
/* AD933C 8006219C 18400013 */ blez $v0, .L800621EC
|
|
/* AD9340 800621A0 00C09825 */ move $s3, $a2
|
|
/* AD9344 800621A4 8CCE001C */ lw $t6, 0x1c($a2)
|
|
/* AD9348 800621A8 51C00011 */ beql $t6, $zero, .L800621F0
|
|
/* AD934C 800621AC 8FBF002C */ lw $ra, 0x2c($sp)
|
|
/* AD9350 800621B0 1840000E */ blez $v0, .L800621EC
|
|
/* AD9354 800621B4 00008025 */ move $s0, $zero
|
|
/* AD9358 800621B8 00008825 */ move $s1, $zero
|
|
/* AD935C 800621BC 8E4F001C */ lw $t7, 0x1c($s2)
|
|
.L800621C0:
|
|
/* AD9360 800621C0 02802025 */ move $a0, $s4
|
|
/* AD9364 800621C4 02A02825 */ move $a1, $s5
|
|
/* AD9368 800621C8 02403025 */ move $a2, $s2
|
|
/* AD936C 800621CC 0C0187D9 */ jal func_80061F64
|
|
/* AD9370 800621D0 01F13821 */ addu $a3, $t7, $s1
|
|
/* AD9374 800621D4 8E780018 */ lw $t8, 0x18($s3)
|
|
/* AD9378 800621D8 26100001 */ addiu $s0, $s0, 1
|
|
/* AD937C 800621DC 26310040 */ addiu $s1, $s1, 0x40
|
|
/* AD9380 800621E0 0218082A */ slt $at, $s0, $t8
|
|
/* AD9384 800621E4 5420FFF6 */ bnezl $at, .L800621C0
|
|
/* AD9388 800621E8 8E4F001C */ lw $t7, 0x1c($s2)
|
|
.L800621EC:
|
|
/* AD938C 800621EC 8FBF002C */ lw $ra, 0x2c($sp)
|
|
.L800621F0:
|
|
/* AD9390 800621F0 8FB00014 */ lw $s0, 0x14($sp)
|
|
/* AD9394 800621F4 8FB10018 */ lw $s1, 0x18($sp)
|
|
/* AD9398 800621F8 8FB2001C */ lw $s2, 0x1c($sp)
|
|
/* AD939C 800621FC 8FB30020 */ lw $s3, 0x20($sp)
|
|
/* AD93A0 80062200 8FB40024 */ lw $s4, 0x24($sp)
|
|
/* AD93A4 80062204 8FB50028 */ lw $s5, 0x28($sp)
|
|
/* AD93A8 80062208 03E00008 */ jr $ra
|
|
/* AD93AC 8006220C 27BD0030 */ addiu $sp, $sp, 0x30
|
|
|
|
/* AD93B0 80062210 27BDFFE8 */ addiu $sp, $sp, -0x18
|
|
/* AD93B4 80062214 AFBF0014 */ sw $ra, 0x14($sp)
|
|
/* AD93B8 80062218 0C0187D9 */ jal func_80061F64
|
|
/* AD93BC 8006221C 24C70018 */ addiu $a3, $a2, 0x18
|
|
/* AD93C0 80062220 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* AD93C4 80062224 27BD0018 */ addiu $sp, $sp, 0x18
|
|
/* AD93C8 80062228 03E00008 */ jr $ra
|
|
/* AD93CC 8006222C 00000000 */ nop
|
|
|
|
/* AD93D0 80062230 27BDFFD0 */ addiu $sp, $sp, -0x30
|
|
/* AD93D4 80062234 AFBF002C */ sw $ra, 0x2c($sp)
|
|
/* AD93D8 80062238 AFB50028 */ sw $s5, 0x28($sp)
|
|
/* AD93DC 8006223C AFB40024 */ sw $s4, 0x24($sp)
|
|
/* AD93E0 80062240 AFB30020 */ sw $s3, 0x20($sp)
|
|
/* AD93E4 80062244 AFB2001C */ sw $s2, 0x1c($sp)
|
|
/* AD93E8 80062248 AFB10018 */ sw $s1, 0x18($sp)
|
|
/* AD93EC 8006224C AFB00014 */ sw $s0, 0x14($sp)
|
|
/* AD93F0 80062250 8CCE0018 */ lw $t6, 0x18($a2)
|
|
/* AD93F4 80062254 00C09025 */ move $s2, $a2
|
|
/* AD93F8 80062258 0080A025 */ move $s4, $a0
|
|
/* AD93FC 8006225C 00A0A825 */ move $s5, $a1
|
|
/* AD9400 80062260 00C09825 */ move $s3, $a2
|
|
/* AD9404 80062264 19C0000E */ blez $t6, .L800622A0
|
|
/* AD9408 80062268 00008025 */ move $s0, $zero
|
|
/* AD940C 8006226C 00008825 */ move $s1, $zero
|
|
/* AD9410 80062270 8E4F001C */ lw $t7, 0x1c($s2)
|
|
.L80062274:
|
|
/* AD9414 80062274 02802025 */ move $a0, $s4
|
|
/* AD9418 80062278 02A02825 */ move $a1, $s5
|
|
/* AD941C 8006227C 02403025 */ move $a2, $s2
|
|
/* AD9420 80062280 0C0187D9 */ jal func_80061F64
|
|
/* AD9424 80062284 01F13821 */ addu $a3, $t7, $s1
|
|
/* AD9428 80062288 8E780018 */ lw $t8, 0x18($s3)
|
|
/* AD942C 8006228C 26100001 */ addiu $s0, $s0, 1
|
|
/* AD9430 80062290 2631005C */ addiu $s1, $s1, 0x5c
|
|
/* AD9434 80062294 0218082A */ slt $at, $s0, $t8
|
|
/* AD9438 80062298 5420FFF6 */ bnezl $at, .L80062274
|
|
/* AD943C 8006229C 8E4F001C */ lw $t7, 0x1c($s2)
|
|
.L800622A0:
|
|
/* AD9440 800622A0 8FBF002C */ lw $ra, 0x2c($sp)
|
|
/* AD9444 800622A4 8FB00014 */ lw $s0, 0x14($sp)
|
|
/* AD9448 800622A8 8FB10018 */ lw $s1, 0x18($sp)
|
|
/* AD944C 800622AC 8FB2001C */ lw $s2, 0x1c($sp)
|
|
/* AD9450 800622B0 8FB30020 */ lw $s3, 0x20($sp)
|
|
/* AD9454 800622B4 8FB40024 */ lw $s4, 0x24($sp)
|
|
/* AD9458 800622B8 8FB50028 */ lw $s5, 0x28($sp)
|
|
/* AD945C 800622BC 03E00008 */ jr $ra
|
|
/* AD9460 800622C0 27BD0030 */ addiu $sp, $sp, 0x30
|
|
|
|
/* AD9464 800622C4 27BDFFE8 */ addiu $sp, $sp, -0x18
|
|
/* AD9468 800622C8 AFBF0014 */ sw $ra, 0x14($sp)
|
|
/* AD946C 800622CC 0C0187D9 */ jal func_80061F64
|
|
/* AD9470 800622D0 24C70018 */ addiu $a3, $a2, 0x18
|
|
/* AD9474 800622D4 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* AD9478 800622D8 27BD0018 */ addiu $sp, $sp, 0x18
|
|
/* AD947C 800622DC 03E00008 */ jr $ra
|
|
/* AD9480 800622E0 00000000 */ nop
|
|
|