mirror of
https://github.com/n64decomp/mk64
synced 2026-08-18 13:12:55 -04:00
17648067f8
* Fixed last PR
132 lines
6.4 KiB
ArmAsm
132 lines
6.4 KiB
ArmAsm
glabel func_800BCF44
|
|
/* 0BDB44 800BCF44 27BDFFE0 */ addiu $sp, $sp, -0x20
|
|
/* 0BDB48 800BCF48 2406FFFF */ li $a2, -1
|
|
/* 0BDB4C 800BCF4C AFBF0014 */ sw $ra, 0x14($sp)
|
|
/* 0BDB50 800BCF50 1086006F */ beq $a0, $a2, .L800BD110
|
|
/* 0BDB54 800BCF54 00A03825 */ move $a3, $a1
|
|
/* 0BDB58 800BCF58 8C820040 */ lw $v0, 0x40($a0)
|
|
/* 0BDB5C 800BCF5C 5040006D */ beql $v0, $zero, .L800BD114
|
|
/* 0BDB60 800BCF60 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* 0BDB64 800BCF64 8C4E0048 */ lw $t6, 0x48($v0)
|
|
/* 0BDB68 800BCF68 00402825 */ move $a1, $v0
|
|
/* 0BDB6C 800BCF6C 548E0003 */ bnel $a0, $t6, .L800BCF7C
|
|
/* 0BDB70 800BCF70 8CA20044 */ lw $v0, 0x44($a1)
|
|
/* 0BDB74 800BCF74 AC460048 */ sw $a2, 0x48($v0)
|
|
/* 0BDB78 800BCF78 8CA20044 */ lw $v0, 0x44($a1)
|
|
.L800BCF7C:
|
|
/* 0BDB7C 800BCF7C 50820014 */ beql $a0, $v0, .L800BCFD0
|
|
/* 0BDB80 800BCF80 A0800002 */ sb $zero, 2($a0)
|
|
/* 0BDB84 800BCF84 54C20063 */ bnel $a2, $v0, .L800BD114
|
|
/* 0BDB88 800BCF88 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* 0BDB8C 800BCF8C 8CAF0048 */ lw $t7, 0x48($a1)
|
|
/* 0BDB90 800BCF90 54CF0060 */ bnel $a2, $t7, .L800BD114
|
|
/* 0BDB94 800BCF94 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* 0BDB98 800BCF98 8CB80040 */ lw $t8, 0x40($a1)
|
|
/* 0BDB9C 800BCF9C 24080006 */ li $t0, 6
|
|
/* 0BDBA0 800BCFA0 5498005C */ bnel $a0, $t8, .L800BD114
|
|
/* 0BDBA4 800BCFA4 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* 0BDBA8 800BCFA8 50E8005A */ beql $a3, $t0, .L800BD114
|
|
/* 0BDBAC 800BCFAC 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* 0BDBB0 800BCFB0 90B90058 */ lbu $t9, 0x58($a1)
|
|
/* 0BDBB4 800BCFB4 3C01803B */ lui $at, %hi(D_803B70A0) # $at, 0x803b
|
|
/* 0BDBB8 800BCFB8 C42470A0 */ lwc1 $f4, %lo(D_803B70A0)($at)
|
|
/* 0BDBBC 800BCFBC 37290010 */ ori $t1, $t9, 0x10
|
|
/* 0BDBC0 800BCFC0 A0A90058 */ sb $t1, 0x58($a1)
|
|
/* 0BDBC4 800BCFC4 10000052 */ b .L800BD110
|
|
/* 0BDBC8 800BCFC8 E4A40068 */ swc1 $f4, 0x68($a1)
|
|
/* 0BDBCC 800BCFCC A0800002 */ sb $zero, 2($a0)
|
|
.L800BCFD0:
|
|
/* 0BDBD0 800BCFD0 90AA0059 */ lbu $t2, 0x59($a1)
|
|
/* 0BDBD4 800BCFD4 24080006 */ li $t0, 6
|
|
/* 0BDBD8 800BCFD8 240D0001 */ li $t5, 1
|
|
/* 0BDBDC 800BCFDC 110A0044 */ beq $t0, $t2, .L800BD0F0
|
|
/* 0BDBE0 800BCFE0 24010007 */ li $at, 7
|
|
/* 0BDBE4 800BCFE4 C4860030 */ lwc1 $f6, 0x30($a0)
|
|
/* 0BDBE8 800BCFE8 24A2004C */ addiu $v0, $a1, 0x4c
|
|
/* 0BDBEC 800BCFEC E4460004 */ swc1 $f6, 4($v0)
|
|
/* 0BDBF0 800BCFF0 C488002C */ lwc1 $f8, 0x2c($a0)
|
|
/* 0BDBF4 800BCFF4 E4480008 */ swc1 $f8, 8($v0)
|
|
/* 0BDBF8 800BCFF8 908B0006 */ lbu $t3, 6($a0)
|
|
/* 0BDBFC 800BCFFC A04B0001 */ sb $t3, 1($v0)
|
|
/* 0BDC00 800BD000 8C83004C */ lw $v1, 0x4c($a0)
|
|
/* 0BDC04 800BD004 50600004 */ beql $v1, $zero, .L800BD018
|
|
/* 0BDC08 800BD008 8CAE0044 */ lw $t6, 0x44($a1)
|
|
/* 0BDC0C 800BD00C 906C0004 */ lbu $t4, 4($v1)
|
|
/* 0BDC10 800BD010 A04C0000 */ sb $t4, ($v0)
|
|
/* 0BDC14 800BD014 8CAE0044 */ lw $t6, 0x44($a1)
|
|
.L800BD018:
|
|
/* 0BDC18 800BD018 A0AD0030 */ sb $t5, 0x30($a1)
|
|
/* 0BDC1C 800BD01C ACA60044 */ sw $a2, 0x44($a1)
|
|
/* 0BDC20 800BD020 14E10008 */ bne $a3, $at, .L800BD044
|
|
/* 0BDC24 800BD024 ACAE0040 */ sw $t6, 0x40($a1)
|
|
/* 0BDC28 800BD028 90AF0058 */ lbu $t7, 0x58($a1)
|
|
/* 0BDC2C 800BD02C 3C01803B */ lui $at, %hi(D_803B70A0) # $at, 0x803b
|
|
/* 0BDC30 800BD030 C42A70A0 */ lwc1 $f10, %lo(D_803B70A0)($at)
|
|
/* 0BDC34 800BD034 35F80010 */ ori $t8, $t7, 0x10
|
|
/* 0BDC38 800BD038 A0B80058 */ sb $t8, 0x58($a1)
|
|
/* 0BDC3C 800BD03C 1000002C */ b .L800BD0F0
|
|
/* 0BDC40 800BD040 E4AA0068 */ swc1 $f10, 0x68($a1)
|
|
.L800BD044:
|
|
/* 0BDC44 800BD044 90B90058 */ lbu $t9, 0x58($a1)
|
|
/* 0BDC48 800BD048 37290020 */ ori $t1, $t9, 0x20
|
|
/* 0BDC4C 800BD04C A0A90058 */ sb $t1, 0x58($a1)
|
|
/* 0BDC50 800BD050 90820018 */ lbu $v0, 0x18($a0)
|
|
/* 0BDC54 800BD054 54400010 */ bnel $v0, $zero, .L800BD098
|
|
/* 0BDC58 800BD058 44825000 */ mtc1 $v0, $f10
|
|
/* 0BDC5C 800BD05C 8C8A004C */ lw $t2, 0x4c($a0)
|
|
/* 0BDC60 800BD060 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
|
|
/* 0BDC64 800BD064 914B007C */ lbu $t3, 0x7c($t2)
|
|
/* 0BDC68 800BD068 448B8000 */ mtc1 $t3, $f16
|
|
/* 0BDC6C 800BD06C 05610004 */ bgez $t3, .L800BD080
|
|
/* 0BDC70 800BD070 468084A0 */ cvt.s.w $f18, $f16
|
|
/* 0BDC74 800BD074 44812000 */ mtc1 $at, $f4
|
|
/* 0BDC78 800BD078 00000000 */ nop
|
|
/* 0BDC7C 800BD07C 46049480 */ add.s $f18, $f18, $f4
|
|
.L800BD080:
|
|
/* 0BDC80 800BD080 3C01803B */ lui $at, %hi(D_803B70A4) # $at, 0x803b
|
|
/* 0BDC84 800BD084 C42670A4 */ lwc1 $f6, %lo(D_803B70A4)($at)
|
|
/* 0BDC88 800BD088 46069202 */ mul.s $f8, $f18, $f6
|
|
/* 0BDC8C 800BD08C 1000000C */ b .L800BD0C0
|
|
/* 0BDC90 800BD090 E4A80068 */ swc1 $f8, 0x68($a1)
|
|
/* 0BDC94 800BD094 44825000 */ mtc1 $v0, $f10
|
|
.L800BD098:
|
|
/* 0BDC98 800BD098 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
|
|
/* 0BDC9C 800BD09C 04410004 */ bgez $v0, .L800BD0B0
|
|
/* 0BDCA0 800BD0A0 46805420 */ cvt.s.w $f16, $f10
|
|
/* 0BDCA4 800BD0A4 44812000 */ mtc1 $at, $f4
|
|
/* 0BDCA8 800BD0A8 00000000 */ nop
|
|
/* 0BDCAC 800BD0AC 46048400 */ add.s $f16, $f16, $f4
|
|
.L800BD0B0:
|
|
/* 0BDCB0 800BD0B0 3C01803B */ lui $at, %hi(D_803B70A4) # $at, 0x803b
|
|
/* 0BDCB4 800BD0B4 C43270A4 */ lwc1 $f18, %lo(D_803B70A4)($at)
|
|
/* 0BDCB8 800BD0B8 46128182 */ mul.s $f6, $f16, $f18
|
|
/* 0BDCBC 800BD0BC E4A60068 */ swc1 $f6, 0x68($a1)
|
|
.L800BD0C0:
|
|
/* 0BDCC0 800BD0C0 8C8C004C */ lw $t4, 0x4c($a0)
|
|
/* 0BDCC4 800BD0C4 C4A4006C */ lwc1 $f4, 0x6c($a1)
|
|
/* 0BDCC8 800BD0C8 3C013B80 */ li $at, 0x3B800000 # 0.003906
|
|
/* 0BDCCC 800BD0CC 918D007D */ lbu $t5, 0x7d($t4)
|
|
/* 0BDCD0 800BD0D0 44819000 */ mtc1 $at, $f18
|
|
/* 0BDCD4 800BD0D4 448D4000 */ mtc1 $t5, $f8
|
|
/* 0BDCD8 800BD0D8 00000000 */ nop
|
|
/* 0BDCDC 800BD0DC 468042A0 */ cvt.s.w $f10, $f8
|
|
/* 0BDCE0 800BD0E0 46045402 */ mul.s $f16, $f10, $f4
|
|
/* 0BDCE4 800BD0E4 00000000 */ nop
|
|
/* 0BDCE8 800BD0E8 46128182 */ mul.s $f6, $f16, $f18
|
|
/* 0BDCEC 800BD0EC E4A60060 */ swc1 $f6, 0x60($a1)
|
|
.L800BD0F0:
|
|
/* 0BDCF0 800BD0F0 14E80007 */ bne $a3, $t0, .L800BD110
|
|
/* 0BDCF4 800BD0F4 00A02025 */ move $a0, $a1
|
|
/* 0BDCF8 800BD0F8 0C02F5BD */ jal func_800BD6F4
|
|
/* 0BDCFC 800BD0FC AFA5001C */ sw $a1, 0x1c($sp)
|
|
/* 0BDD00 800BD100 8FA5001C */ lw $a1, 0x1c($sp)
|
|
/* 0BDD04 800BD104 8CA4000C */ lw $a0, 0xc($a1)
|
|
/* 0BDD08 800BD108 0C02F5AD */ jal func_800BD6B4
|
|
/* 0BDD0C 800BD10C 24840010 */ addiu $a0, $a0, 0x10
|
|
.L800BD110:
|
|
/* 0BDD10 800BD110 8FBF0014 */ lw $ra, 0x14($sp)
|
|
.L800BD114:
|
|
/* 0BDD14 800BD114 27BD0020 */ addiu $sp, $sp, 0x20
|
|
/* 0BDD18 800BD118 03E00008 */ jr $ra
|
|
/* 0BDD1C 800BD11C 00000000 */ nop
|