mirror of https://github.com/zeldaret/oot.git
142 lines
6.7 KiB
ArmAsm
142 lines
6.7 KiB
ArmAsm
glabel func_80039448
|
|
/* AB05E8 80039448 27BDFFD8 */ addiu $sp, $sp, -0x28
|
|
/* AB05EC 8003944C AFBF001C */ sw $ra, 0x1c($sp)
|
|
/* AB05F0 80039450 AFB10018 */ sw $s1, 0x18($sp)
|
|
/* AB05F4 80039454 AFB00014 */ sw $s0, 0x14($sp)
|
|
/* AB05F8 80039458 AFA5002C */ sw $a1, 0x2c($sp)
|
|
/* AB05FC 8003945C 94AF0000 */ lhu $t7, ($a1)
|
|
/* AB0600 80039460 340CFFFF */ li $t4, 65535
|
|
/* AB0604 80039464 00C08025 */ move $s0, $a2
|
|
/* AB0608 80039468 158F0006 */ bne $t4, $t7, .L80039484
|
|
/* AB060C 8003946C 00808825 */ move $s1, $a0
|
|
/* AB0610 80039470 24840044 */ addiu $a0, $a0, 0x44
|
|
/* AB0614 80039474 0C00E1CA */ jal func_80038728
|
|
/* AB0618 80039478 27A6003A */ addiu $a2, $sp, 0x3a
|
|
/* AB061C 8003947C 10000073 */ b .L8003964C
|
|
/* AB0620 80039480 8FBF001C */ lw $ra, 0x1c($sp)
|
|
.L80039484:
|
|
/* AB0624 80039484 87B8003A */ lh $t8, 0x3a($sp)
|
|
/* AB0628 80039488 00E02825 */ move $a1, $a3
|
|
/* AB062C 8003948C AFA70034 */ sw $a3, 0x34($sp)
|
|
/* AB0630 80039490 0018C900 */ sll $t9, $t8, 4
|
|
/* AB0634 80039494 0C00E249 */ jal func_80038924
|
|
/* AB0638 80039498 03302021 */ addu $a0, $t9, $s0
|
|
/* AB063C 8003949C 8FAD002C */ lw $t5, 0x2c($sp)
|
|
/* AB0640 800394A0 8E2A0048 */ lw $t2, 0x48($s1)
|
|
/* AB0644 800394A4 24080006 */ li $t0, 6
|
|
/* AB0648 800394A8 95AF0000 */ lhu $t7, ($t5)
|
|
/* AB064C 800394AC 8FA70034 */ lw $a3, 0x34($sp)
|
|
/* AB0650 800394B0 340CFFFF */ li $t4, 65535
|
|
/* AB0654 800394B4 000F7080 */ sll $t6, $t7, 2
|
|
/* AB0658 800394B8 014E4821 */ addu $t1, $t2, $t6
|
|
/* AB065C 800394BC 85260000 */ lh $a2, ($t1)
|
|
/* AB0660 800394C0 0006C100 */ sll $t8, $a2, 4
|
|
/* AB0664 800394C4 02182821 */ addu $a1, $s0, $t8
|
|
/* AB0668 800394C8 94B90002 */ lhu $t9, 2($a1)
|
|
/* AB066C 800394CC 332F1FFF */ andi $t7, $t9, 0x1fff
|
|
/* AB0670 800394D0 01E80019 */ multu $t7, $t0
|
|
/* AB0674 800394D4 00007012 */ mflo $t6
|
|
/* AB0678 800394D8 00EEC021 */ addu $t8, $a3, $t6
|
|
/* AB067C 800394DC 87190002 */ lh $t9, 2($t8)
|
|
/* AB0680 800394E0 0059082A */ slt $at, $v0, $t9
|
|
/* AB0684 800394E4 5020001A */ beql $at, $zero, .L80039550
|
|
/* AB0688 800394E8 240B0006 */ li $t3, 6
|
|
/* AB068C 800394EC 94AF0004 */ lhu $t7, 4($a1)
|
|
/* AB0690 800394F0 31EE1FFF */ andi $t6, $t7, 0x1fff
|
|
/* AB0694 800394F4 01C80019 */ multu $t6, $t0
|
|
/* AB0698 800394F8 0000C012 */ mflo $t8
|
|
/* AB069C 800394FC 00F8C821 */ addu $t9, $a3, $t8
|
|
/* AB06A0 80039500 872F0002 */ lh $t7, 2($t9)
|
|
/* AB06A4 80039504 004F082A */ slt $at, $v0, $t7
|
|
/* AB06A8 80039508 50200011 */ beql $at, $zero, .L80039550
|
|
/* AB06AC 8003950C 240B0006 */ li $t3, 6
|
|
/* AB06B0 80039510 94AE0006 */ lhu $t6, 6($a1)
|
|
/* AB06B4 80039514 240B0006 */ li $t3, 6
|
|
/* AB06B8 80039518 01A02825 */ move $a1, $t5
|
|
/* AB06BC 8003951C 01CB0019 */ multu $t6, $t3
|
|
/* AB06C0 80039520 26240044 */ addiu $a0, $s1, 0x44
|
|
/* AB06C4 80039524 0000C012 */ mflo $t8
|
|
/* AB06C8 80039528 00F8C821 */ addu $t9, $a3, $t8
|
|
/* AB06CC 8003952C 872F0002 */ lh $t7, 2($t9)
|
|
/* AB06D0 80039530 004F082A */ slt $at, $v0, $t7
|
|
/* AB06D4 80039534 50200006 */ beql $at, $zero, .L80039550
|
|
/* AB06D8 80039538 240B0006 */ li $t3, 6
|
|
/* AB06DC 8003953C 0C00E1CA */ jal func_80038728
|
|
/* AB06E0 80039540 27A6003A */ addiu $a2, $sp, 0x3a
|
|
/* AB06E4 80039544 10000041 */ b .L8003964C
|
|
/* AB06E8 80039548 8FBF001C */ lw $ra, 0x1c($sp)
|
|
/* AB06EC 8003954C 240B0006 */ li $t3, 6
|
|
.L80039550:
|
|
/* AB06F0 80039550 95230002 */ lhu $v1, 2($t1)
|
|
/* AB06F4 80039554 1583000E */ bne $t4, $v1, .L80039590
|
|
/* AB06F8 80039558 0003C880 */ sll $t9, $v1, 2
|
|
/* AB06FC 8003955C 26240044 */ addiu $a0, $s1, 0x44
|
|
/* AB0700 80039560 0C00F937 */ jal func_8003E4DC
|
|
/* AB0704 80039564 AFA90024 */ sw $t1, 0x24($sp)
|
|
/* AB0708 80039568 8E2E0048 */ lw $t6, 0x48($s1)
|
|
/* AB070C 8003956C 0002C080 */ sll $t8, $v0, 2
|
|
/* AB0710 80039570 3050FFFF */ andi $s0, $v0, 0xffff
|
|
/* AB0714 80039574 27A5003A */ addiu $a1, $sp, 0x3a
|
|
/* AB0718 80039578 3406FFFF */ li $a2, 65535
|
|
/* AB071C 8003957C 0C00E1C2 */ jal func_80038708
|
|
/* AB0720 80039580 01D82021 */ addu $a0, $t6, $t8
|
|
/* AB0724 80039584 8FA90024 */ lw $t1, 0x24($sp)
|
|
/* AB0728 80039588 1000002F */ b .L80039648
|
|
/* AB072C 8003958C A5300002 */ sh $s0, 2($t1)
|
|
.L80039590:
|
|
/* AB0730 80039590 01592021 */ addu $a0, $t2, $t9
|
|
/* AB0734 80039594 84860000 */ lh $a2, ($a0)
|
|
/* AB0738 80039598 00067900 */ sll $t7, $a2, 4
|
|
/* AB073C 8003959C 020F2821 */ addu $a1, $s0, $t7
|
|
/* AB0740 800395A0 94AD0002 */ lhu $t5, 2($a1)
|
|
/* AB0744 800395A4 31AE1FFF */ andi $t6, $t5, 0x1fff
|
|
/* AB0748 800395A8 01C80019 */ multu $t6, $t0
|
|
/* AB074C 800395AC 0000C012 */ mflo $t8
|
|
/* AB0750 800395B0 00F8C821 */ addu $t9, $a3, $t8
|
|
/* AB0754 800395B4 872F0002 */ lh $t7, 2($t9)
|
|
/* AB0758 800395B8 004F082A */ slt $at, $v0, $t7
|
|
/* AB075C 800395BC 10200020 */ beqz $at, .L80039640
|
|
/* AB0760 800395C0 00000000 */ nop
|
|
/* AB0764 800395C4 94AD0004 */ lhu $t5, 4($a1)
|
|
/* AB0768 800395C8 31AE1FFF */ andi $t6, $t5, 0x1fff
|
|
/* AB076C 800395CC 01C80019 */ multu $t6, $t0
|
|
/* AB0770 800395D0 0000C012 */ mflo $t8
|
|
/* AB0774 800395D4 00F8C821 */ addu $t9, $a3, $t8
|
|
/* AB0778 800395D8 872F0002 */ lh $t7, 2($t9)
|
|
/* AB077C 800395DC 004F082A */ slt $at, $v0, $t7
|
|
/* AB0780 800395E0 10200017 */ beqz $at, .L80039640
|
|
/* AB0784 800395E4 00000000 */ nop
|
|
/* AB0788 800395E8 94AD0006 */ lhu $t5, 6($a1)
|
|
/* AB078C 800395EC 01AB0019 */ multu $t5, $t3
|
|
/* AB0790 800395F0 00007012 */ mflo $t6
|
|
/* AB0794 800395F4 00EEC021 */ addu $t8, $a3, $t6
|
|
/* AB0798 800395F8 87190002 */ lh $t9, 2($t8)
|
|
/* AB079C 800395FC 0059082A */ slt $at, $v0, $t9
|
|
/* AB07A0 80039600 1020000F */ beqz $at, .L80039640
|
|
/* AB07A4 80039604 00000000 */ nop
|
|
/* AB07A8 80039608 26240044 */ addiu $a0, $s1, 0x44
|
|
/* AB07AC 8003960C 0C00F937 */ jal func_8003E4DC
|
|
/* AB07B0 80039610 AFA90024 */ sw $t1, 0x24($sp)
|
|
/* AB07B4 80039614 8FA90024 */ lw $t1, 0x24($sp)
|
|
/* AB07B8 80039618 8E2F0048 */ lw $t7, 0x48($s1)
|
|
/* AB07BC 8003961C 00026880 */ sll $t5, $v0, 2
|
|
/* AB07C0 80039620 3050FFFF */ andi $s0, $v0, 0xffff
|
|
/* AB07C4 80039624 27A5003A */ addiu $a1, $sp, 0x3a
|
|
/* AB07C8 80039628 95260002 */ lhu $a2, 2($t1)
|
|
/* AB07CC 8003962C 0C00E1C2 */ jal func_80038708
|
|
/* AB07D0 80039630 01ED2021 */ addu $a0, $t7, $t5
|
|
/* AB07D4 80039634 8FA90024 */ lw $t1, 0x24($sp)
|
|
/* AB07D8 80039638 10000003 */ b .L80039648
|
|
/* AB07DC 8003963C A5300002 */ sh $s0, 2($t1)
|
|
.L80039640:
|
|
/* AB07E0 80039640 1000FFC3 */ b .L80039550
|
|
/* AB07E4 80039644 00804825 */ move $t1, $a0
|
|
.L80039648:
|
|
/* AB07E8 80039648 8FBF001C */ lw $ra, 0x1c($sp)
|
|
.L8003964C:
|
|
/* AB07EC 8003964C 8FB00014 */ lw $s0, 0x14($sp)
|
|
/* AB07F0 80039650 8FB10018 */ lw $s1, 0x18($sp)
|
|
/* AB07F4 80039654 03E00008 */ jr $ra
|
|
/* AB07F8 80039658 27BD0028 */ addiu $sp, $sp, 0x28
|
|
|