Function at 0x18003c6f0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x90
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
movaps xmmword [rax - 0x48], xmm8
mov rax, qword [0x180059040]
xor rax, rsp
mov qword [rsp + 0x58], rax
mov rbp, qword [0x180059bf8]
mov ebx, ecx
xor r8d, r8d
movss xmm2, dword [rbp + 0x1910]
movss xmm3, dword [rbp + 0x1590]
movaps xmm0, xmm2
addss xmm0, dword [rdx]
addss xmm2, dword [rdx + 4]
movss xmm1, dword [rbp + 0x1594]
addss xmm3, xmm3
mov rsi, qword [rbp + 0x1a18]
addss xmm1, xmm1
addss xmm3, xmm0
movsd xmm0, qword [rdx]
addss xmm2, xmm1
movsd qword [rsp + 0x48], xmm0
mov edx, ecx
lea rcx, [rsp + 0x48]
movss dword [rsp + 0x50], xmm3
movss dword [rsp + 0x54], xmm2
call fcn.18001bd40
lea r9, [rsp + 0x31]
mov dword [rsp + 0x20], 0
lea r8, [rsp + 0x30]
mov edx, ebx
lea rcx, [rsp + 0x48]
call fcn.18003bd00
movzx r10d, byte [rsp + 0x31]
movzx edi, al
movzx r9d, byte [rsp + 0x30]
test r10b, r10b
je 0x18003c7ce
test r9b, r9b
je 0x18003c7ce
mov eax, 0x17
jmp 0x18003c7da
xor eax, eax
test r9b, r9b
setne al
add rax, 0x15
mov r8, qword [0x180059bf8]
lea rcx, [rsp + 0x38]
add rax, 0xb
add rax, rax
movss xmm6, dword [r8 + 0x1558]
movups xmm0, xmmword [r8 + rax*8 + 0x1558]
movups xmmword [rsp + 0x38], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, xmm6
movss dword [rsp + 0x44], xmm0
call fcn.180019b50
movups xmm0, xmmword [r8 + 0x1608]
lea rcx, [rsp + 0x38]
mov r14d, eax
movups xmmword [rsp + 0x38], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, xmm6
movss dword [rsp + 0x44], xmm0
call fcn.180019b50
movss xmm0, dword [rsp + 0x50]
mov r15d, eax
movss xmm1, dword [0x180051b0c]
movss xmm6, dword [rsp + 0x48]
movss xmm7, dword [rsp + 0x4c]
addss xmm0, xmm6
movss xmm8, dword [0x180051b38]
mulss xmm0, xmm1
movss dword [rsp + 0x38], xmm0
movss xmm0, dword [rsp + 0x54]
addss xmm0, xmm7
mulss xmm0, xmm1
movss dword [rsp + 0x3c], xmm0
test r9b, r9b
jne 0x18003c891
test r10b, r10b
je 0x18003c8fb
mov rbx, qword [rsi + 0x2a8]
test r14d, 0xff000000
je 0x18003c8fb
movss xmm2, dword [rbp + 0x1910]
lea rdx, [rsp + 0x38]
movss xmm0, dword [0x180051ba0]
xorps xmm3, xmm3
mulss xmm2, xmm1
mov rcx, rbx
mov dword [rsp + 0x28], 0xb
movss dword [rsp + 0x20], xmm0
addss xmm2, xmm8
call fcn.180034650
mov r8d, dword [rbx + 0x80]
mov r9d, r14d
mov rdx, qword [rbx + 0x88]
mov rcx, rbx
call fcn.180033e70
mov dword [rbx + 0x80], 0
addss xmm6, dword [rbp + 0x1590]
addss xmm7, dword [rbp + 0x1594]
cmp byte [rsi + 0x81], 0
mov eax, 1
mov rcx, qword [rsi + 0x2a8]
mov r9d, 3
cmovne r9d, eax
movss dword [rsp + 0x20], xmm8
mov r8d, r15d
unpcklps xmm6, xmm7
movq rdx, xmm6
call fcn.18001aba0
mov rbx, qword [0x180059bf8]
mov ecx, dword [rbx + 0x1a60]
test ecx, ecx
je 0x18003c9fa
mov rax, qword [rbx + 0x1a18]
cmp ecx, dword [rax + 0x110]
jne 0x18003c9fa
cmp byte [rbx + 0x138], 0
je 0x18003c9fa
movss xmm1, dword [rbx + 0x38]
movss xmm0, dword [rbx + 0x48c]
mulss xmm1, xmm1
comiss xmm0, xmm1
setae al
test al, al
je 0x18003c9fa
mov rcx, rsi
call fcn.180023e60
mov ecx, dword [rsi + 0x4c]
mov rdx, rsi
call fcn.18001ba60
mov byte [rbx + 0x1bf6], 1
mov rax, qword [rsi + 0x360]
movss xmm1, dword [rbx + 0x130]
movss xmm0, dword [rbx + 0x134]
subss xmm1, dword [rax + 0x10]
subss xmm0, dword [rax + 0x14]
movss dword [rbx + 0x1a88], xmm1
movss dword [rbx + 0x1a8c], xmm0
test byte [rsi + 0xc], 4
jne 0x18003c9fa
mov rax, qword [rsi + 0x360]
test byte [rax + 0xc], 4
movzx eax, dil
jne 0x18003c9fe
mov qword [rbx + 0x1a30], rsi
jmp 0x18003c9fe
movzx eax, dil
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.180046990
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [rsp + 0x70]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r15
pop r14
pop rdi
ret