mirror of https://github.com/zeldaret/oot.git
140 lines
6.0 KiB
ArmAsm
140 lines
6.0 KiB
ArmAsm
.late_rodata
|
|
glabel D_8014A5B4
|
|
.float 1923.077
|
|
|
|
.text
|
|
glabel func_800F37B8
|
|
/* B6A958 800F37B8 AFA60008 */ sw $a2, 8($sp)
|
|
/* B6A95C 800F37BC 8CAE0008 */ lw $t6, 8($a1)
|
|
/* B6A960 800F37C0 00063600 */ sll $a2, $a2, 0x18
|
|
/* B6A964 800F37C4 00063603 */ sra $a2, $a2, 0x18
|
|
/* B6A968 800F37C8 C5C40000 */ lwc1 $f4, ($t6)
|
|
/* B6A96C 800F37CC 28C10041 */ slti $at, $a2, 0x41
|
|
/* B6A970 800F37D0 00001825 */ move $v1, $zero
|
|
/* B6A974 800F37D4 460C203C */ c.lt.s $f4, $f12
|
|
/* B6A978 800F37D8 00000000 */ nop
|
|
/* B6A97C 800F37DC 4500001D */ bc1f .L800F3854
|
|
/* B6A980 800F37E0 00000000 */ nop
|
|
/* B6A984 800F37E4 10200004 */ beqz $at, .L800F37F8
|
|
/* B6A988 800F37E8 240F007F */ li $t7, 127
|
|
/* B6A98C 800F37EC 00061600 */ sll $v0, $a2, 0x18
|
|
/* B6A990 800F37F0 10000004 */ b .L800F3804
|
|
/* B6A994 800F37F4 00021603 */ sra $v0, $v0, 0x18
|
|
.L800F37F8:
|
|
/* B6A998 800F37F8 01E61023 */ subu $v0, $t7, $a2
|
|
/* B6A99C 800F37FC 00021600 */ sll $v0, $v0, 0x18
|
|
/* B6A9A0 800F3800 00021603 */ sra $v0, $v0, 0x18
|
|
.L800F3804:
|
|
/* B6A9A4 800F3804 2841001E */ slti $at, $v0, 0x1e
|
|
/* B6A9A8 800F3808 50200004 */ beql $at, $zero, .L800F381C
|
|
/* B6A9AC 800F380C 3041FFFF */ andi $at, $v0, 0xffff
|
|
/* B6A9B0 800F3810 10000010 */ b .L800F3854
|
|
/* B6A9B4 800F3814 00001825 */ move $v1, $zero
|
|
/* B6A9B8 800F3818 3041FFFF */ andi $at, $v0, 0xffff
|
|
.L800F381C:
|
|
/* B6A9BC 800F381C 00012080 */ sll $a0, $at, 2
|
|
/* B6A9C0 800F3820 00812021 */ addu $a0, $a0, $at
|
|
/* B6A9C4 800F3824 00042040 */ sll $a0, $a0, 1
|
|
/* B6A9C8 800F3828 2484FED4 */ addiu $a0, $a0, -0x12c
|
|
/* B6A9CC 800F382C 24010022 */ li $at, 34
|
|
/* B6A9D0 800F3830 0081001A */ div $zero, $a0, $at
|
|
/* B6A9D4 800F3834 00002012 */ mflo $a0
|
|
/* B6A9D8 800F3838 308600FF */ andi $a2, $a0, 0xff
|
|
/* B6A9DC 800F383C 10C00005 */ beqz $a2, .L800F3854
|
|
/* B6A9E0 800F3840 308300FF */ andi $v1, $a0, 0xff
|
|
/* B6A9E4 800F3844 24180010 */ li $t8, 16
|
|
/* B6A9E8 800F3848 03061823 */ subu $v1, $t8, $a2
|
|
/* B6A9EC 800F384C 10000001 */ b .L800F3854
|
|
/* B6A9F0 800F3850 306300FF */ andi $v1, $v1, 0xff
|
|
.L800F3854:
|
|
/* B6A9F4 800F3854 14600006 */ bnez $v1, .L800F3870
|
|
/* B6A9F8 800F3858 00602025 */ move $a0, $v1
|
|
/* B6A9FC 800F385C 94B90026 */ lhu $t9, 0x26($a1)
|
|
/* B6AA00 800F3860 33280200 */ andi $t0, $t9, 0x200
|
|
/* B6AA04 800F3864 51000003 */ beql $t0, $zero, .L800F3874
|
|
/* B6AA08 800F3868 94A20026 */ lhu $v0, 0x26($a1)
|
|
/* B6AA0C 800F386C 2404000F */ li $a0, 15
|
|
.L800F3870:
|
|
/* B6AA10 800F3870 94A20026 */ lhu $v0, 0x26($a1)
|
|
.L800F3874:
|
|
/* B6AA14 800F3874 24010001 */ li $at, 1
|
|
/* B6AA18 800F3878 30420003 */ andi $v0, $v0, 3
|
|
/* B6AA1C 800F387C 10410008 */ beq $v0, $at, .L800F38A0
|
|
/* B6AA20 800F3880 24010002 */ li $at, 2
|
|
/* B6AA24 800F3884 1041000A */ beq $v0, $at, .L800F38B0
|
|
/* B6AA28 800F3888 24010003 */ li $at, 3
|
|
/* B6AA2C 800F388C 1041000C */ beq $v0, $at, .L800F38C0
|
|
/* B6AA30 800F3890 3C014170 */ li $at, 0x41700000 # 0.000000
|
|
/* B6AA34 800F3894 44810000 */ mtc1 $at, $f0
|
|
/* B6AA38 800F3898 1000000C */ b .L800F38CC
|
|
/* B6AA3C 800F389C 00000000 */ nop
|
|
.L800F38A0:
|
|
/* B6AA40 800F38A0 3C014140 */ li $at, 0x41400000 # 0.000000
|
|
/* B6AA44 800F38A4 44810000 */ mtc1 $at, $f0
|
|
/* B6AA48 800F38A8 10000008 */ b .L800F38CC
|
|
/* B6AA4C 800F38AC 00000000 */ nop
|
|
.L800F38B0:
|
|
/* B6AA50 800F38B0 3C014110 */ li $at, 0x41100000 # 0.000000
|
|
/* B6AA54 800F38B4 44810000 */ mtc1 $at, $f0
|
|
/* B6AA58 800F38B8 10000004 */ b .L800F38CC
|
|
/* B6AA5C 800F38BC 00000000 */ nop
|
|
.L800F38C0:
|
|
/* B6AA60 800F38C0 3C0140C0 */ li $at, 0x40C00000 # 0.000000
|
|
/* B6AA64 800F38C4 44810000 */ mtc1 $at, $f0
|
|
/* B6AA68 800F38C8 00000000 */ nop
|
|
.L800F38CC:
|
|
/* B6AA6C 800F38CC 3C018015 */ lui $at, %hi(D_8014A5B4)
|
|
/* B6AA70 800F38D0 C42EA5B4 */ lwc1 $f14, %lo(D_8014A5B4)($at)
|
|
/* B6AA74 800F38D4 C4A2001C */ lwc1 $f2, 0x1c($a1)
|
|
/* B6AA78 800F38D8 3C014F00 */ li $at, 0x4F000000 # 0.000000
|
|
/* B6AA7C 800F38DC 4602703C */ c.lt.s $f14, $f2
|
|
/* B6AA80 800F38E0 00000000 */ nop
|
|
/* B6AA84 800F38E4 45020004 */ bc1fl .L800F38F8
|
|
/* B6AA88 800F38E8 46001306 */ mov.s $f12, $f2
|
|
/* B6AA8C 800F38EC 10000002 */ b .L800F38F8
|
|
/* B6AA90 800F38F0 46007306 */ mov.s $f12, $f14
|
|
/* B6AA94 800F38F4 46001306 */ mov.s $f12, $f2
|
|
.L800F38F8:
|
|
/* B6AA98 800F38F8 460C0182 */ mul.s $f6, $f0, $f12
|
|
/* B6AA9C 800F38FC 240B0001 */ li $t3, 1
|
|
/* B6AAA0 800F3900 00044900 */ sll $t1, $a0, 4
|
|
/* B6AAA4 800F3904 460E3203 */ div.s $f8, $f6, $f14
|
|
/* B6AAA8 800F3908 444AF800 */ cfc1 $t2, $31
|
|
/* B6AAAC 800F390C 44CBF800 */ ctc1 $t3, $31
|
|
/* B6AAB0 800F3910 00000000 */ nop
|
|
/* B6AAB4 800F3914 460042A4 */ cvt.w.s $f10, $f8
|
|
/* B6AAB8 800F3918 444BF800 */ cfc1 $t3, $31
|
|
/* B6AABC 800F391C 00000000 */ nop
|
|
/* B6AAC0 800F3920 316B0078 */ andi $t3, $t3, 0x78
|
|
/* B6AAC4 800F3924 51600013 */ beql $t3, $zero, .L800F3974
|
|
/* B6AAC8 800F3928 440B5000 */ mfc1 $t3, $f10
|
|
/* B6AACC 800F392C 44815000 */ mtc1 $at, $f10
|
|
/* B6AAD0 800F3930 240B0001 */ li $t3, 1
|
|
/* B6AAD4 800F3934 460A4281 */ sub.s $f10, $f8, $f10
|
|
/* B6AAD8 800F3938 44CBF800 */ ctc1 $t3, $31
|
|
/* B6AADC 800F393C 00000000 */ nop
|
|
/* B6AAE0 800F3940 460052A4 */ cvt.w.s $f10, $f10
|
|
/* B6AAE4 800F3944 444BF800 */ cfc1 $t3, $31
|
|
/* B6AAE8 800F3948 00000000 */ nop
|
|
/* B6AAEC 800F394C 316B0078 */ andi $t3, $t3, 0x78
|
|
/* B6AAF0 800F3950 15600005 */ bnez $t3, .L800F3968
|
|
/* B6AAF4 800F3954 00000000 */ nop
|
|
/* B6AAF8 800F3958 440B5000 */ mfc1 $t3, $f10
|
|
/* B6AAFC 800F395C 3C018000 */ lui $at, 0x8000
|
|
/* B6AB00 800F3960 10000007 */ b .L800F3980
|
|
/* B6AB04 800F3964 01615825 */ or $t3, $t3, $at
|
|
.L800F3968:
|
|
/* B6AB08 800F3968 10000005 */ b .L800F3980
|
|
/* B6AB0C 800F396C 240BFFFF */ li $t3, -1
|
|
/* B6AB10 800F3970 440B5000 */ mfc1 $t3, $f10
|
|
.L800F3974:
|
|
/* B6AB14 800F3974 00000000 */ nop
|
|
/* B6AB18 800F3978 0560FFFB */ bltz $t3, .L800F3968
|
|
/* B6AB1C 800F397C 00000000 */ nop
|
|
.L800F3980:
|
|
/* B6AB20 800F3980 44CAF800 */ ctc1 $t2, $31
|
|
/* B6AB24 800F3984 012B1021 */ addu $v0, $t1, $t3
|
|
/* B6AB28 800F3988 03E00008 */ jr $ra
|
|
/* B6AB2C 800F398C 304200FF */ andi $v0, $v0, 0xff
|
|
|