oot/asm/non_matchings/code/z_bgcheck/func_80042244.s

209 lines
9.4 KiB
ArmAsm

glabel func_80042244
/* AB93E4 80042244 AFA40000 */ sw $a0, ($sp)
/* AB93E8 80042248 8CA20000 */ lw $v0, ($a1)
/* AB93EC 8004224C 44866000 */ mtc1 $a2, $f12
/* AB93F0 80042250 44877000 */ mtc1 $a3, $f14
/* AB93F4 80042254 94430024 */ lhu $v1, 0x24($v0)
/* AB93F8 80042258 00803025 */ move $a2, $a0
/* AB93FC 8004225C 3C0F8016 */ lui $t7, %hi(gSegments) # $t7, 0x8016
/* AB9400 80042260 10600007 */ beqz $v1, .L80042280
/* AB9404 80042264 00000000 */ nop
/* AB9408 80042268 8C440028 */ lw $a0, 0x28($v0)
/* AB940C 8004226C 8DEF6FA8 */ lw $t7, %lo(gSegments)($t7)
/* AB9410 80042270 3C018000 */ lui $at, 0x8000
/* AB9414 80042274 00817021 */ addu $t6, $a0, $at
/* AB9418 80042278 15CF0003 */ bne $t6, $t7, .L80042288
/* AB941C 8004227C 0003C100 */ sll $t8, $v1, 4
.L80042280:
/* AB9420 80042280 03E00008 */ jr $ra
/* AB9424 80042284 00001025 */ move $v0, $zero
.L80042288:
/* AB9428 80042288 00981021 */ addu $v0, $a0, $t8
/* AB942C 8004228C 0082082B */ sltu $at, $a0, $v0
/* AB9430 80042290 1020003F */ beqz $at, .L80042390
/* AB9434 80042294 00802825 */ move $a1, $a0
/* AB9438 80042298 3C070001 */ li $a3, 0x00010000 # 0.000000
/* AB943C 8004229C 00E63821 */ addu $a3, $a3, $a2
/* AB9440 800422A0 80E71CBC */ lb $a3, 0x1cbc($a3)
/* AB9444 800422A4 2406003F */ li $a2, 63
/* AB9448 800422A8 3C080008 */ li $t0, 0x00080000 # 0.000000
/* AB944C 800422AC 8CA4000C */ lw $a0, 0xc($a1)
.L800422B0:
/* AB9450 800422B0 00041B42 */ srl $v1, $a0, 0xd
/* AB9454 800422B4 3063003F */ andi $v1, $v1, 0x3f
/* AB9458 800422B8 10670003 */ beq $v1, $a3, .L800422C8
/* AB945C 800422BC 0088C824 */ and $t9, $a0, $t0
/* AB9460 800422C0 54660030 */ bnel $v1, $a2, .L80042384
/* AB9464 800422C4 24A50010 */ addiu $a1, $a1, 0x10
.L800422C8:
/* AB9468 800422C8 5720002E */ bnezl $t9, .L80042384
/* AB946C 800422CC 24A50010 */ addiu $a1, $a1, 0x10
/* AB9470 800422D0 84A30000 */ lh $v1, ($a1)
/* AB9474 800422D4 44832000 */ mtc1 $v1, $f4
/* AB9478 800422D8 00000000 */ nop
/* AB947C 800422DC 468021A0 */ cvt.s.w $f6, $f4
/* AB9480 800422E0 460C303C */ c.lt.s $f6, $f12
/* AB9484 800422E4 00000000 */ nop
/* AB9488 800422E8 45020026 */ bc1fl .L80042384
/* AB948C 800422EC 24A50010 */ addiu $a1, $a1, 0x10
/* AB9490 800422F0 84A90006 */ lh $t1, 6($a1)
/* AB9494 800422F4 00695021 */ addu $t2, $v1, $t1
/* AB9498 800422F8 448A4000 */ mtc1 $t2, $f8
/* AB949C 800422FC 00000000 */ nop
/* AB94A0 80042300 468042A0 */ cvt.s.w $f10, $f8
/* AB94A4 80042304 460A603C */ c.lt.s $f12, $f10
/* AB94A8 80042308 00000000 */ nop
/* AB94AC 8004230C 4502001D */ bc1fl .L80042384
/* AB94B0 80042310 24A50010 */ addiu $a1, $a1, 0x10
/* AB94B4 80042314 84A30004 */ lh $v1, 4($a1)
/* AB94B8 80042318 44838000 */ mtc1 $v1, $f16
/* AB94BC 8004231C 00000000 */ nop
/* AB94C0 80042320 468084A0 */ cvt.s.w $f18, $f16
/* AB94C4 80042324 460E903C */ c.lt.s $f18, $f14
/* AB94C8 80042328 00000000 */ nop
/* AB94CC 8004232C 45020015 */ bc1fl .L80042384
/* AB94D0 80042330 24A50010 */ addiu $a1, $a1, 0x10
/* AB94D4 80042334 84AB0008 */ lh $t3, 8($a1)
/* AB94D8 80042338 006B6021 */ addu $t4, $v1, $t3
/* AB94DC 8004233C 448C2000 */ mtc1 $t4, $f4
/* AB94E0 80042340 00000000 */ nop
/* AB94E4 80042344 468021A0 */ cvt.s.w $f6, $f4
/* AB94E8 80042348 4606703C */ c.lt.s $f14, $f6
/* AB94EC 8004234C 00000000 */ nop
/* AB94F0 80042350 4502000C */ bc1fl .L80042384
/* AB94F4 80042354 24A50010 */ addiu $a1, $a1, 0x10
/* AB94F8 80042358 8FAD0014 */ lw $t5, 0x14($sp)
/* AB94FC 8004235C 24020001 */ li $v0, 1
/* AB9500 80042360 ADA50000 */ sw $a1, ($t5)
/* AB9504 80042364 84AE0002 */ lh $t6, 2($a1)
/* AB9508 80042368 8FAF0010 */ lw $t7, 0x10($sp)
/* AB950C 8004236C 448E4000 */ mtc1 $t6, $f8
/* AB9510 80042370 00000000 */ nop
/* AB9514 80042374 468042A0 */ cvt.s.w $f10, $f8
/* AB9518 80042378 03E00008 */ jr $ra
/* AB951C 8004237C E5EA0000 */ swc1 $f10, ($t7)
/* AB9520 80042380 24A50010 */ addiu $a1, $a1, 0x10
.L80042384:
/* AB9524 80042384 00A2082B */ sltu $at, $a1, $v0
/* AB9528 80042388 5420FFC9 */ bnezl $at, .L800422B0
/* AB952C 8004238C 8CA4000C */ lw $a0, 0xc($a1)
.L80042390:
/* AB9530 80042390 00001025 */ move $v0, $zero
/* AB9534 80042394 03E00008 */ jr $ra
/* AB9538 80042398 00000000 */ nop
glabel func_8004239C
/* AB953C 8004239C 27BDFFF8 */ addiu $sp, $sp, -8
/* AB9540 800423A0 AFB00004 */ sw $s0, 4($sp)
/* AB9544 800423A4 AFA40008 */ sw $a0, 8($sp)
/* AB9548 800423A8 8CA20000 */ lw $v0, ($a1)
/* AB954C 800423AC 44876000 */ mtc1 $a3, $f12
/* AB9550 800423B0 00C08025 */ move $s0, $a2
/* AB9554 800423B4 94470024 */ lhu $a3, 0x24($v0)
/* AB9558 800423B8 3C0F8016 */ lui $t7, %hi(gSegments) # $t7, 0x8016
/* AB955C 800423BC 8FB80018 */ lw $t8, 0x18($sp)
/* AB9560 800423C0 50E00008 */ beql $a3, $zero, .L800423E4
/* AB9564 800423C4 AF000000 */ sw $zero, ($t8)
/* AB9568 800423C8 8C430028 */ lw $v1, 0x28($v0)
/* AB956C 800423CC 8DEF6FA8 */ lw $t7, %lo(gSegments)($t7)
/* AB9570 800423D0 3C018000 */ lui $at, 0x8000
/* AB9574 800423D4 00617021 */ addu $t6, $v1, $at
/* AB9578 800423D8 15CF0004 */ bne $t6, $t7, .L800423EC
/* AB957C 800423DC 00000000 */ nop
/* AB9580 800423E0 AF000000 */ sw $zero, ($t8)
.L800423E4:
/* AB9584 800423E4 10000051 */ b .L8004252C
/* AB9588 800423E8 2402FFFF */ li $v0, -1
.L800423EC:
/* AB958C 800423EC 18E0004C */ blez $a3, .L80042520
/* AB9590 800423F0 00002025 */ move $a0, $zero
/* AB9594 800423F4 8FB90008 */ lw $t9, 8($sp)
/* AB9598 800423F8 3C080001 */ li $t0, 0x00010000 # 0.000000
/* AB959C 800423FC 00601025 */ move $v0, $v1
/* AB95A0 80042400 01194021 */ addu $t0, $t0, $t9
/* AB95A4 80042404 81081CBC */ lb $t0, 0x1cbc($t0)
/* AB95A8 80042408 3C0A0008 */ li $t2, 0x00080000 # 0.000000
/* AB95AC 8004240C 2409003F */ li $t1, 63
.L80042410:
/* AB95B0 80042410 8C46000C */ lw $a2, 0xc($v0)
/* AB95B4 80042414 00401825 */ move $v1, $v0
/* AB95B8 80042418 00062B42 */ srl $a1, $a2, 0xd
/* AB95BC 8004241C 30A5003F */ andi $a1, $a1, 0x3f
/* AB95C0 80042420 10A80003 */ beq $a1, $t0, .L80042430
/* AB95C4 80042424 00CA5824 */ and $t3, $a2, $t2
/* AB95C8 80042428 54A9003A */ bnel $a1, $t1, .L80042514
/* AB95CC 8004242C 24840001 */ addiu $a0, $a0, 1
.L80042430:
/* AB95D0 80042430 55600038 */ bnezl $t3, .L80042514
/* AB95D4 80042434 24840001 */ addiu $a0, $a0, 1
/* AB95D8 80042438 84650000 */ lh $a1, ($v1)
/* AB95DC 8004243C C6000000 */ lwc1 $f0, ($s0)
/* AB95E0 80042440 44852000 */ mtc1 $a1, $f4
/* AB95E4 80042444 00000000 */ nop
/* AB95E8 80042448 468021A0 */ cvt.s.w $f6, $f4
/* AB95EC 8004244C 4600303C */ c.lt.s $f6, $f0
/* AB95F0 80042450 00000000 */ nop
/* AB95F4 80042454 4502002F */ bc1fl .L80042514
/* AB95F8 80042458 24840001 */ addiu $a0, $a0, 1
/* AB95FC 8004245C 846C0006 */ lh $t4, 6($v1)
/* AB9600 80042460 00AC6821 */ addu $t5, $a1, $t4
/* AB9604 80042464 448D4000 */ mtc1 $t5, $f8
/* AB9608 80042468 00000000 */ nop
/* AB960C 8004246C 468042A0 */ cvt.s.w $f10, $f8
/* AB9610 80042470 460A003C */ c.lt.s $f0, $f10
/* AB9614 80042474 00000000 */ nop
/* AB9618 80042478 45020026 */ bc1fl .L80042514
/* AB961C 8004247C 24840001 */ addiu $a0, $a0, 1
/* AB9620 80042480 84650004 */ lh $a1, 4($v1)
/* AB9624 80042484 C6000008 */ lwc1 $f0, 8($s0)
/* AB9628 80042488 44858000 */ mtc1 $a1, $f16
/* AB962C 8004248C 00000000 */ nop
/* AB9630 80042490 468084A0 */ cvt.s.w $f18, $f16
/* AB9634 80042494 4600903C */ c.lt.s $f18, $f0
/* AB9638 80042498 00000000 */ nop
/* AB963C 8004249C 4502001D */ bc1fl .L80042514
/* AB9640 800424A0 24840001 */ addiu $a0, $a0, 1
/* AB9644 800424A4 846E0008 */ lh $t6, 8($v1)
/* AB9648 800424A8 00AE7821 */ addu $t7, $a1, $t6
/* AB964C 800424AC 448F2000 */ mtc1 $t7, $f4
/* AB9650 800424B0 00000000 */ nop
/* AB9654 800424B4 468021A0 */ cvt.s.w $f6, $f4
/* AB9658 800424B8 4606003C */ c.lt.s $f0, $f6
/* AB965C 800424BC 00000000 */ nop
/* AB9660 800424C0 45020014 */ bc1fl .L80042514
/* AB9664 800424C4 24840001 */ addiu $a0, $a0, 1
/* AB9668 800424C8 84780002 */ lh $t8, 2($v1)
/* AB966C 800424CC C6000004 */ lwc1 $f0, 4($s0)
/* AB9670 800424D0 44984000 */ mtc1 $t8, $f8
/* AB9674 800424D4 460C0281 */ sub.s $f10, $f0, $f12
/* AB9678 800424D8 468040A0 */ cvt.s.w $f2, $f8
/* AB967C 800424DC 4602503C */ c.lt.s $f10, $f2
/* AB9680 800424E0 00000000 */ nop
/* AB9684 800424E4 4502000B */ bc1fl .L80042514
/* AB9688 800424E8 24840001 */ addiu $a0, $a0, 1
/* AB968C 800424EC 460C0400 */ add.s $f16, $f0, $f12
/* AB9690 800424F0 4610103C */ c.lt.s $f2, $f16
/* AB9694 800424F4 00000000 */ nop
/* AB9698 800424F8 45020006 */ bc1fl .L80042514
/* AB969C 800424FC 24840001 */ addiu $a0, $a0, 1
/* AB96A0 80042500 8FB90018 */ lw $t9, 0x18($sp)
/* AB96A4 80042504 00801025 */ move $v0, $a0
/* AB96A8 80042508 10000008 */ b .L8004252C
/* AB96AC 8004250C AF230000 */ sw $v1, ($t9)
/* AB96B0 80042510 24840001 */ addiu $a0, $a0, 1
.L80042514:
/* AB96B4 80042514 0087082A */ slt $at, $a0, $a3
/* AB96B8 80042518 1420FFBD */ bnez $at, .L80042410
/* AB96BC 8004251C 24420010 */ addiu $v0, $v0, 0x10
.L80042520:
/* AB96C0 80042520 8FAB0018 */ lw $t3, 0x18($sp)
/* AB96C4 80042524 2402FFFF */ li $v0, -1
/* AB96C8 80042528 AD600000 */ sw $zero, ($t3)
.L8004252C:
/* AB96CC 8004252C 8FB00004 */ lw $s0, 4($sp)
/* AB96D0 80042530 03E00008 */ jr $ra
/* AB96D4 80042534 27BD0008 */ addiu $sp, $sp, 8