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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
push rsi
push rdi
push r14
sub rsp, 0x80
movaps xmmword [rax - 0x28], xmm6
mov rdi, rdx
movaps xmmword [rax - 0x38], xmm7
mov r14, rcx
test rcx, rcx
jne 0x18003bf8e
lea rcx, [0x180004368]
call fcn.180074574
jmp 0x18003c637
mov rdx, qword [0x18009efb8]
xor esi, esi
mov bl, byte [rcx + 0xb7]
cmp r14, qword [rdx + 0x4ad8]
sete sil
test bl, bl
jne 0x18003bfba
add rdx, 0x39e4
xor ecx, ecx
call fcn.180022218
lea rcx, [0x1800011a5]
test bl, bl
lea rax, [0x180004378]
mov r9, rdi
cmovne rax, rcx
lea r8, [0x180004388]
mov qword [rsp + 0x28], rax
mov edx, esi
mov rax, qword [r14 + 8]
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.180084ddc
mov dil, al
test bl, bl
jne 0x18003c001
mov ecx, 1
call fcn.180022274
xor ecx, ecx
call fcn.180024ca4
test al, al
je 0x18003c072
test bl, bl
je 0x18003c072
call fcn.180025330
lea rdx, [r14 + 0x20]
mov r9d, 0xff00ffff
movss xmm0, dword [rdx]
lea r8, [rsp + 0xa0]
addss xmm0, dword [r14 + 0x28]
movss xmm1, dword [rdx + 4]
mov rcx, rax
addss xmm1, dword [r14 + 0x2c]
movss dword [rsp + 0xa0], xmm0
movss xmm0, dword [0x18001dc94]
movss dword [rsp + 0x30], xmm0
and dword [rsp + 0x28], 0
movss dword [rsp + 0xa4], xmm1
xorps xmm1, xmm1
movss dword [rsp + 0x20], xmm1
call fcn.180062b0c
test dil, dil
je 0x18003c637
cmp byte [r14 + 0x3e4], 0
je 0x18003c091
lea rcx, [0x180004398]
call fcn.180074218
mov r8, qword [r14 + 0x298]
lea r9, [0x1800043d0]
mov ebp, dword [r14 + 0x14]
mov rcx, r14
call fcn.18003aba8
movss xmm0, dword [r14 + 0x44]
lea rcx, [0x1800043e0]
movss xmm4, dword [r14 + 0x40]
movss xmm5, dword [r14 + 0x3c]
movss xmm6, dword [r14 + 0x38]
movss xmm3, dword [r14 + 0x28]
movss xmm2, dword [r14 + 0x24]
movss xmm1, dword [r14 + 0x20]
movss xmm7, dword [r14 + 0x2c]
cvtps2pd xmm0, xmm0
cvtps2pd xmm4, xmm4
movsd qword [rsp + 0x40], xmm0
movsd qword [rsp + 0x38], xmm4
cvtps2pd xmm5, xmm5
cvtps2pd xmm6, xmm6
movsd qword [rsp + 0x30], xmm5
cvtps2pd xmm3, xmm3
cvtps2pd xmm2, xmm2
cvtps2pd xmm1, xmm1
cvtps2pd xmm7, xmm7
movsd qword [rsp + 0x28], xmm6
movq r9, xmm3
movq r8, xmm2
movsd qword [rsp + 0x20], xmm7
movq rdx, xmm1
call fcn.180074574
test bpl, 0x40
lea rax, [0x180004430]
lea rdx, [0x180004494]
lea rsi, [0x1800011a6]
cmovne rsi, rax
lea rdi, [0x1800011a7]
bt ebp, 0x12
mov qword [rsp + 0x50], rsi
lea rax, [0x180004448]
cmovb rdi, rax
lea rbx, [0x1800011b5]
bt ebp, 9
mov qword [rsp + 0x48], rdi
lea rax, [0x180004458]
cmovb rbx, rax
lea r11, [0x1800011b6]
bt ebp, 8
mov qword [rsp + 0x40], rbx
lea rax, [0x180004468]
cmovb r11, rax
lea r10, [0x1800011b7]
bt ebp, 0x1c
mov qword [rsp + 0x38], r11
lea rax, [0x180004480]
cmovb r10, rax
lea rcx, [0x1800011c1]
bt ebp, 0x1b
mov qword [rsp + 0x30], r10
lea rax, [0x18000448c]
cmovb rcx, rax
lea r9, [0x1800011c3]
bt ebp, 0x1a
mov qword [rsp + 0x28], rcx
lea rax, [0x1800011c2]
cmovb rax, rdx
lea r8, [0x1800011c4]
bt ebp, 0x19
mov qword [rsp + 0x20], rax
lea rdx, [0x1800044a0]
cmovb r9, rdx
lea rcx, [0x1800044b8]
lea rdx, [0x1800044ac]
bt ebp, 0x18
cmovb r8, rdx
mov edx, ebp
call fcn.180074574
cmp byte [r14 + 0xb5], 0
lea rax, [0x1800044e0]
lea rcx, [0x1800011c5]
cmovne rcx, rax
movss xmm3, dword [r14 + 0x88]
lea rdx, [0x1800044e4]
movss xmm2, dword [r14 + 0x8c]
lea rax, [0x1800011c6]
movss xmm1, dword [r14 + 0x84]
movss xmm0, dword [r14 + 0x90]
cmp byte [r14 + 0xb4], 0
mov qword [rsp + 0x30], rcx
lea rcx, [0x1800044e8]
cmovne rax, rdx
cvtps2pd xmm3, xmm3
mov qword [rsp + 0x28], rax
cvtps2pd xmm2, xmm2
cvtps2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
movq r9, xmm3
movq r8, xmm2
movq rdx, xmm1
movsd qword [rsp + 0x20], xmm0
call fcn.180074574
movzx ecx, byte [r14 + 0xb6]
test cl, cl
jne 0x18003c2cc
cmp byte [r14 + 0xb7], cl
jne 0x18003c2cc
or eax, 0xffffffff
jmp 0x18003c2d4
movsx eax, word [r14 + 0xc8]
movzx r9d, byte [r14 + 0xb8]
mov edx, ecx
movzx r8d, byte [r14 + 0xb7]
lea rcx, [0x180004518]
mov dword [rsp + 0x20], eax
call fcn.180074574
movsx ecx, byte [r14 + 0xd9]
movzx eax, byte [r14 + 0xbb]
movsx r9d, byte [r14 + 0xd8]
movzx r8d, byte [r14 + 0xbd]
movzx edx, byte [r14 + 0xbc]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
lea rcx, [0x180004560]
call fcn.180074574
xor ebx, ebx
lea rdi, [r14 + 0x3a0]
lea rsi, [r14 + 0x3a8]
movdqu xmm3, xmmword [rsi]
movaps xmm0, xmm3
movaps xmm2, xmm3
shufps xmm0, xmm3, 0xff
comiss xmm3, xmm0
shufps xmm2, xmm3, 0x55
jb 0x18003c371
comiss xmm2, xmm0
jb 0x18003c371
mov r8d, dword [rdi]
lea rcx, [0x1800045a0]
mov edx, ebx
call fcn.180074574
jmp 0x18003c3b6
mov r8d, dword [rdi]
lea rcx, [0x1800045b8]
xorps xmm4, xmm4
xorps xmm1, xmm1
cvtss2sd xmm4, xmm0
mov edx, ebx
movaps xmm0, xmm3
shufps xmm0, xmm3, 0xaa
movsd qword [rsp + 0x30], xmm4
cvtss2sd xmm1, xmm0
cvtss2sd xmm3, xmm3
cvtss2sd xmm2, xmm2
movsd qword [rsp + 0x28], xmm1
movq r9, xmm3
movsd qword [rsp + 0x20], xmm2
call fcn.180074574
mov ecx, dword [rdi]
call fcn.18003cef0
inc ebx
add rdi, 4
add rsi, 0x10
cmp ebx, 2
jl 0x18003c342
movss xmm7, dword [0x18001de28]
lea rbx, [r14 + 0x3c8]
movss xmm6, dword [0x18001de98]
xor edi, edi
movss xmm0, dword [rbx + 4]
ucomiss xmm0, xmm7
jp 0x18003c3f8
jne 0x18003c3f8
movaps xmm0, xmm6
movss xmm1, dword [rbx]
xorps xmm3, xmm3
ucomiss xmm1, xmm7
cvtss2sd xmm3, xmm0
jp 0x18003c40d
jne 0x18003c40d
movaps xmm1, xmm6
xorps xmm2, xmm2
lea rcx, [0x1800045f0]
cvtss2sd xmm2, xmm1
mov edx, edi
movq r9, xmm3
movq r8, xmm2
call fcn.180074574
inc edi
add rbx, 8
cmp edi, 2
jl 0x18003c3e9
mov rax, qword [r14 + 0x398]
test rax, rax
je 0x18003c449
mov r8, qword [rax + 8]
jmp 0x18003c450
lea r8, [0x18000461c]
movsx edx, word [r14 + 0x15c]
lea rcx, [0x180004628]
call fcn.180074574
mov rcx, qword [r14 + 0x378]
cmp rcx, r14
je 0x18003c47c
lea rdx, [0x180004660]
call fcn.18003bf54
mov rcx, qword [r14 + 0x368]
test rcx, rcx
je 0x18003c494
lea rdx, [0x180004670]
call fcn.18003bf54
lea rcx, [r14 + 0x190]
cmp dword [rcx], 0
jle 0x18003c4ac
lea rdx, [0x180004680]
call fcn.18003c65c
mov r8d, dword [r14 + 0x280]
test r8d, r8d
jle 0x18003c5d0
lea rdx, [0x180004690]
lea rcx, [0x1800046a8]
call fcn.180084cdc
test al, al
je 0x18003c5d0
movsxd rax, dword [r14 + 0x280]
mov rbx, qword [r14 + 0x288]
imul rsi, rax, 0x88
add rsi, rbx
jmp 0x18003c5c2
mov r8d, dword [rbx]
lea rdx, [0x180003bc0]
mov eax, dword [rbx + 4]
mov ecx, r8d
mov r9d, dword [rbx + 0x10]
mov dword [rsp + 0x20], eax
call fcn.180084d04
test al, al
je 0x18003c5bb
movss xmm0, dword [rbx + 0x18]
lea rcx, [0x180003bf0]
movss xmm2, dword [rbx + 0x14]
cvtps2pd xmm3, xmm0
subss xmm0, dword [rbx + 0x14]
cvtps2pd xmm2, xmm2
cvtps2pd xmm1, xmm0
movq r9, xmm3
movq r8, xmm2
movq rdx, xmm1
call fcn.180074574
movsxd rax, dword [rbx + 0x60]
mov rdi, qword [rbx + 0x68]
imul rbp, rax, 0x1c
add rbp, rdi
jmp 0x18003c5b1
movss xmm0, dword [rbx + 0x18]
mov rcx, rdi
subss xmm0, dword [rbx + 0x14]
sub rcx, qword [rbx + 0x68]
movabs rax, 0x4924924924924925
movss xmm2, dword [rdi]
imul rcx
cvtps2pd xmm2, xmm2
lea rcx, [0x180003c18]
sar rdx, 3
mulss xmm0, dword [rdi]
mov rax, rdx
shr rax, 0x3f
add rdx, rax
movq r8, xmm2
cvtps2pd xmm3, xmm0
movq r9, xmm3
call fcn.180074574
add rdi, 0x1c
cmp rdi, rbp
jne 0x18003c55d
call fcn.180085bb0
add rbx, 0x88
cmp rbx, rsi
jne 0x18003c4f4
call fcn.180085bb0
mov r9d, dword [r14 + 0x270]
lea rcx, [0x1800046b0]
mov eax, r9d
lea rdx, [0x1800041a8]
shl eax, 4
mov r8, rcx
mov dword [rsp + 0x20], eax
call fcn.180084cdc
test al, al
je 0x18003c632
movsxd rdi, dword [r14 + 0x270]
mov rbx, qword [r14 + 0x278]
shl rdi, 4
add rdi, rbx
jmp 0x18003c628
mov r8d, dword [rbx + 8]
lea rcx, [0x1800041c8]
mov edx, dword [rbx]
call fcn.180074574
add rbx, 0x10
cmp rbx, rdi
jne 0x18003c612
call fcn.180085bb0
call fcn.180085bb0
movaps xmm6, xmmword [rsp + 0x70]
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
movaps xmm7, xmmword [rsp + 0x60]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret