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

Disassembly:
mov rax, rsp
push rbx
push rsi
sub rsp, 0xe8
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x68], xmm9
mov rax, qword [0x1801b8a28]
xor rax, rsp
mov qword [rsp + 0x60], rax
mov rcx, qword [0x1801b93f8]
mov qword [rsp + 0x48], rcx
mov rax, qword [rcx + 0x1aa0]
mov byte [rax + 0x88], 1
mov rsi, qword [rcx + 0x1aa0]
mov rbx, qword [rsi + 0x1a8]
call fcn.18001aca0
cmp dword [rbx + 0x10], 1
jle 0x1800396ac
call fcn.18001ab80
mov rdx, qword [rsi + 0x2d0]
lea rcx, [rbx + 0x70]
call fcn.1800264a0
movss xmm7, dword [rbx + 0x20]
mov ecx, dword [rbx + 4]
mov dword [rsp + 0x34], ecx
maxss xmm7, dword [rsi + 0xdc]
movss dword [rbx + 0x20], xmm7
movss dword [rsi + 0xdc], xmm7
test cl, 0x10
jne 0x1800396db
mov eax, dword [rbx + 0x28]
mov dword [rsi + 0xf0], eax
xor al, al
xorps xmm9, xmm9
test cl, 1
jne 0x180039a7a
cmp byte [rsi + 0x8b], al
jne 0x180039a7a
minss xmm7, dword [rsi + 0x27c]
mov qword [rsp + 0x100], rbp
mov ebp, 0xffffffff
mov qword [rsp + 0x108], rdi
mov edi, 1
movaps xmmword [rsp + 0xa0], xmm8
movss xmm8, dword [rbx + 0x24]
maxss xmm8, dword [rsi + 0x274]
cmp dword [rbx + 0x10], edi
jle 0x180039a61
mov qword [rsp + 0x110], r12
mov qword [rsp + 0xe0], r13
mov qword [rsp + 0xd8], r14
mov qword [rsp + 0xd0], r15
lea r15d, [rbp + 0x1d]
movaps xmmword [rsp + 0xc0], xmm6
movaps xmmword [rsp + 0x80], xmm10
movss xmm10, dword [0x18004e684]
movaps xmmword [rsp + 0x70], xmm11
movss xmm11, dword [0x18004f138]
nop word [rax + rax]
mov rax, qword [0x1801b93f8]
mov r13d, ebp
mov r12, qword [rbx + 0x68]
mov r8d, edi
mov rcx, qword [rax + 0x1aa0]
mov rdx, qword [rcx + 0x1a8]
test rdx, rdx
jne 0x1800397ba
movaps xmm6, xmm9
jmp 0x1800397e1
test edi, edi
jns 0x1800397c2
mov r8d, dword [rdx + 0xc]
movss xmm6, dword [rdx + 0x18]
subss xmm6, dword [rdx + 0x14]
movsxd rax, r8d
imul rcx, rax, 0x1c
mov rax, qword [rdx + 0x68]
mulss xmm6, dword [rcx + rax]
addss xmm6, dword [rdx + 0x14]
addss xmm6, dword [rsi + 0x10]
mov r14d, dword [rbx]
add r14d, edi
movss dword [rsp + 0x54], xmm8
mov ecx, r14d
movss dword [rsp + 0x5c], xmm7
movaps xmm1, xmm6
movaps xmm0, xmm6
addss xmm1, xmm11
subss xmm0, xmm11
movss dword [rsp + 0x58], xmm1
movss dword [rsp + 0x50], xmm0
call fcn.180016010
xor r8d, r8d
lea rcx, [rsp + 0x50]
mov edx, r14d
call fcn.180015640
test al, al
jne 0x1800398fa
test byte [rsp + 0x34], 2
mov byte [rsp + 0x30], al
mov byte [rsp + 0x31], al
jne 0x18003989b
lea r9, [rsp + 0x31]
mov dword [rsp + 0x20], 0
lea r8, [rsp + 0x30]
mov edx, r14d
lea rcx, [rsp + 0x50]
call fcn.180037920
movzx eax, byte [rsp + 0x30]
movzx ecx, byte [rsp + 0x31]
test al, al
jne 0x180039875
test cl, cl
je 0x18003989b
mov rdx, qword [rsp + 0x48]
mov dword [rdx + 0x1fc0], 4
test cl, cl
je 0x18003989b
test byte [r15 + r12 + 8], 2
mov ebp, edi
mov ecx, 0x1e
cmovne ebp, r13d
jmp 0x1800398a5
xor ecx, ecx
test al, al
setne cl
add ecx, 0x1c
movaps xmm1, xmm10
call fcn.180013d80
cvttss2si ecx, xmm6
mov r9d, eax
lea r8, [rsp + 0x38]
lea rdx, [rsp + 0x40]
movss dword [rsp + 0x3c], xmm7
movss dword [rsp + 0x20], xmm10
movd xmm0, ecx
mov rcx, qword [rsi + 0x2d0]
cvtdq2ps xmm0, xmm0
movss dword [rsp + 0x38], xmm0
movss dword [rsp + 0x40], xmm0
movaps xmm0, xmm8
addss xmm0, xmm10
movss dword [rsp + 0x44], xmm0
call fcn.180022500
mov eax, dword [rbx + 0x10]
inc edi
add r15, 0x1c
cmp edi, eax
jl 0x180039790
movaps xmm10, xmmword [rsp + 0x80]
movaps xmm6, xmmword [rsp + 0xc0]
mov r15, qword [rsp + 0xd0]
mov r14, qword [rsp + 0xd8]
mov r13, qword [rsp + 0xe0]
mov r12, qword [rsp + 0x110]
cmp ebp, 0xffffffff
je 0x180039a59
cmp byte [rbx + 9], 0
jne 0x18003997d
xor r8d, r8d
inc eax
test eax, eax
jle 0x18003997d
xor edx, edx
nop word [rax + rax]
mov rcx, qword [rbx + 0x68]
lea rdx, [rdx + 0x1c]
inc r8d
mov eax, dword [rdx + rcx - 0x1c]
mov dword [rdx + rcx - 0x18], eax
mov eax, dword [rbx + 0x10]
inc eax
cmp r8d, eax
jl 0x180039960
mov byte [rbx + 9], 1
lea ecx, [rbp - 1]
mov r8, qword [0x1801b93f8]
mov byte [rsp + 0x30], 1
mov rax, qword [r8 + 0x1aa0]
movss xmm2, dword [r8 + 0x130]
subss xmm2, dword [r8 + 0x1b18]
mov rdx, qword [rax + 0x1a8]
addss xmm2, xmm11
subss xmm2, dword [rax + 0x10]
test rdx, rdx
jne 0x1800399c5
movaps xmm1, xmm9
jmp 0x1800399eb
test ecx, ecx
jns 0x1800399cc
mov ecx, dword [rdx + 0xc]
movss xmm1, dword [rdx + 0x18]
subss xmm1, dword [rdx + 0x14]
movsxd rax, ecx
imul rcx, rax, 0x1c
mov rax, qword [rdx + 0x68]
mulss xmm1, dword [rcx + rax]
addss xmm1, dword [rdx + 0x14]
movss xmm3, dword [r8 + 0x15cc]
movaps xmm0, xmm3
addss xmm0, xmm1
comiss xmm2, xmm0
jae 0x180039a03
movaps xmm2, xmm0
test byte [rbx + 4], 4
je 0x180039a48
lea eax, [rbp + 1]
test rdx, rdx
jne 0x180039a17
movaps xmm1, xmm9
jmp 0x180039a3c
test eax, eax
jns 0x180039a1e
mov eax, dword [rdx + 0xc]
movss xmm1, dword [rdx + 0x18]
subss xmm1, dword [rdx + 0x14]
cdqe
imul rcx, rax, 0x1c
mov rax, qword [rdx + 0x68]
mulss xmm1, dword [rcx + rax]
addss xmm1, dword [rdx + 0x14]
subss xmm1, xmm3
comiss xmm1, xmm2
ja 0x180039a48
movaps xmm2, xmm1
movaps xmm1, xmm2
mov ecx, ebp
call fcn.18003de10
movzx eax, byte [rsp + 0x30]
jmp 0x180039a5b
xor al, al
movaps xmm11, xmmword [rsp + 0x70]
mov rdi, qword [rsp + 0x108]
mov rbp, qword [rsp + 0x100]
movaps xmm8, xmmword [rsp + 0xa0]
mov byte [rbx + 9], al
movups xmm0, xmmword [rsi + 0x260]
movups xmmword [rsi + 0x250], xmm0
movups xmm0, xmmword [rbx + 0x4c]
mov qword [rsi + 0x1a8], 0
mov dword [rsi + 0x114], 0
movups xmmword [rsi + 0x260], xmm0
movss xmm0, dword [rsi + 0x110]
addss xmm0, dword [rsi + 0x10]
addss xmm0, xmm9
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rsi + 0xd8], xmm0
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.180049c80
movaps xmm7, xmmword [rsp + 0xb0]
movaps xmm9, xmmword [rsp + 0x90]
add rsp, 0xe8
pop rsi
pop rbx
ret