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

Disassembly:
mov qword [rsp + 0x18], r8
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0xf]
sub rsp, 0xe0
mov r14, r9
mov rsi, r8
mov rdi, rdx
mov rbx, rcx
movzx eax, byte [rcx + 0xb7]
imul r10d, eax, 7
mov eax, 0x88888889
mul r10d
mov r12d, edx
shr r12d, 3
test rdi, rdi
jne 0x14003feae
mov rdx, qword [r8]
jmp 0x140040434
mov rcx, qword [r8]
sub rcx, 0x18
call fcn.1400112b0
add rax, 0x18
mov qword [rsp + 0x30], rax
mov rax, qword [rbp + 0x7f]
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0x6f]
mov dword [rsp + 0x20], eax
mov r9, r14
lea r8, [rsp + 0x30]
mov rdx, rdi
mov rcx, rbx
call fcn.14003e460
mov rax, qword [rbx + 0xa8]
cmp dword [rax - 0x10], 0
je 0x140040431
mov edx, dword [rbx + 0x50]
mov ecx, dword [r14]
cmp ecx, edx
jne 0x14003ff3e
mov eax, dword [rbx + 0x54]
cmp dword [r14 + 4], eax
jne 0x14003ff3e
lea r14, [rbx + 0x98]
movss xmm1, dword [r14]
lea r15, [rbx + 0xa0]
ucomiss xmm1, dword [r15]
jp 0x14003ff8e
jne 0x14003ff8e
movss xmm2, dword [rbx + 0x9c]
ucomiss xmm2, dword [rbx + 0xa4]
jp 0x14003ff8e
je 0x140040196
jmp 0x14003ff8e
sub ecx, edx
mov eax, dword [r14 + 4]
sub eax, dword [rbx + 0x54]
movd xmm2, ecx
cvtdq2ps xmm2, xmm2
shufps xmm2, xmm2, 0
movd xmm3, eax
cvtdq2ps xmm3, xmm3
shufps xmm3, xmm3, 0
movups xmm0, xmmword [rbx + 0x58]
addps xmm0, xmm2
movups xmm1, xmmword [rbx + 0x68]
addps xmm1, xmm3
movups xmmword [rbx + 0x58], xmm0
movups xmmword [rbx + 0x68], xmm1
mov eax, dword [r14]
mov dword [rbx + 0x50], eax
mov eax, dword [r14 + 4]
mov dword [rbx + 0x54], eax
lea r14, [rbx + 0x98]
lea r15, [rbx + 0xa0]
mov rcx, qword [rdi + 0xa28]
mov rax, qword [rcx]
lea rdx, [rbp - 0x19]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], 0
mov r9d, 4
xor r8d, r8d
mov rdx, qword [rbx + 8]
call qword [rax + VarBstrFromDisp]
test eax, eax
jns 0x14003ffca
mov rcx, rbx
call fcn.14003f9a0
jmp 0x140040431
mov rax, qword [rbp - 0x19]
movss xmm0, dword [rbx + 0x58]
mulss xmm0, dword [r14]
movss dword [rax], xmm0
movss xmm1, dword [rbx + 0x68]
mulss xmm1, dword [rbx + 0x9c]
movss dword [rax + 4], xmm1
mov dword [rax + 8], 0x3f000000
mov dword [rax + 0xc], 0x3f800000
movd xmm0, dword [rbx + 0x4c]
cvtdq2ps xmm0, xmm0
movss xmm3, dword [0x1402222c0]
movaps xmm1, xmm3
divss xmm1, xmm0
addss xmm1, dword [rbx + 0x78]
movss dword [rax + 0x10], xmm1
movd xmm0, dword [rbx + 0x48]
cvtdq2ps xmm0, xmm0
movaps xmm2, xmm3
divss xmm2, xmm0
addss xmm2, dword [rbx + 0x88]
movss dword [rax + 0x14], xmm2
movss xmm0, dword [rbx + 0x5c]
mulss xmm0, dword [r14]
movss dword [rax + 0x18], xmm0
movss xmm1, dword [rbx + 0x6c]
mulss xmm1, dword [rbx + 0x9c]
movss dword [rax + 0x1c], xmm1
mov dword [rax + 0x20], 0x3f000000
mov dword [rax + 0x24], 0x3f800000
movd xmm0, dword [rbx + 0x4c]
cvtdq2ps xmm0, xmm0
movaps xmm1, xmm3
divss xmm1, xmm0
addss xmm1, dword [rbx + 0x7c]
movss dword [rax + 0x28], xmm1
movd xmm0, dword [rbx + 0x48]
cvtdq2ps xmm0, xmm0
movaps xmm2, xmm3
divss xmm2, xmm0
addss xmm2, dword [rbx + 0x8c]
movss dword [rax + 0x2c], xmm2
movss xmm0, dword [rbx + 0x60]
mulss xmm0, dword [r14]
movss dword [rax + 0x30], xmm0
movss xmm1, dword [rbx + 0x70]
mulss xmm1, dword [rbx + 0x9c]
movss dword [rax + 0x34], xmm1
mov dword [rax + 0x38], 0x3f000000
mov dword [rax + 0x3c], 0x3f800000
movd xmm0, dword [rbx + 0x4c]
cvtdq2ps xmm0, xmm0
movaps xmm1, xmm3
divss xmm1, xmm0
addss xmm1, dword [rbx + 0x80]
movss dword [rax + 0x40], xmm1
movd xmm0, dword [rbx + 0x48]
cvtdq2ps xmm0, xmm0
movaps xmm2, xmm3
divss xmm2, xmm0
addss xmm2, dword [rbx + 0x90]
movss dword [rax + 0x44], xmm2
movss xmm0, dword [rbx + 0x64]
mulss xmm0, dword [r14]
movss dword [rax + 0x48], xmm0
movss xmm1, dword [rbx + 0x74]
mulss xmm1, dword [rbx + 0x9c]
movss dword [rax + 0x4c], xmm1
mov dword [rax + 0x50], 0x3f000000
mov dword [rax + 0x54], 0x3f800000
movd xmm0, dword [rbx + 0x4c]
cvtdq2ps xmm0, xmm0
movaps xmm1, xmm3
divss xmm1, xmm0
addss xmm1, dword [rbx + 0x84]
movss dword [rax + 0x58], xmm1
movd xmm0, dword [rbx + 0x48]
cvtdq2ps xmm0, xmm0
divss xmm3, xmm0
addss xmm3, dword [rbx + 0x94]
movss dword [rax + 0x5c], xmm3
mov rcx, qword [rdi + 0xa28]
mov rax, qword [rcx]
xor r8d, r8d
mov rdx, qword [rbx + 8]
call qword [rax + 0x78]
movss xmm1, dword [r14]
movss dword [r15], xmm1
movss xmm2, dword [rbx + 0x9c]
movss dword [rbx + 0xa4], xmm2
mov rcx, rdi
call fcn.140037d40
mov qword [rbp - 0x5d], 0
mov qword [rbp - 0x65], 0
mov qword [rbp - 0x71], 0
mov qword [rbp - 0x79], 0
mov qword [rsp + 0x4c], 0
mov qword [rsp + 0x44], 0
mov dword [rbp - 0x55], 0x3f800000
mov dword [rbp - 0x69], 0x3f800000
mov dword [rbp - 0x7d], 0x3f800000
mov dword [rsp + 0x40], 0x3f800000
lea r8, [rsp + 0x40]
xor edx, edx
mov rcx, rdi
call fcn.140038020
movaps xmm0, xmmword [0x140224740]
movaps xmmword [rbp - 1], xmm0
lea rdx, [rbp - 1]
mov rcx, rdi
call fcn.140038090
mov edx, 2
mov rcx, rdi
call fcn.1400380f0
xor edx, edx
mov rcx, rdi
call fcn.140038270
xor r8d, r8d
xor edx, edx
mov rcx, qword [rdi + 0xa08]
call fcn.140031cc0
xor r8d, r8d
xor edx, edx
mov rcx, qword [rdi + 0xa08]
call fcn.140031d10
xor edx, edx
lea r8d, [rdx + 1]
mov rcx, qword [rdi + 0xa08]
call fcn.14000e6f0
mov edx, 3
mov rcx, qword [rdi + 0xa08]
call fcn.140031c60
mov edx, 5
mov rcx, rdi
call fcn.140037de0
mov edx, 1
mov rcx, rdi
call fcn.1400350d0
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 6]
mov rcx, qword [rdi + 0xa08]
call fcn.140031ab0
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 5]
mov rcx, qword [rdi + 0xa08]
call fcn.140031bc0
xor r8d, r8d
lea edx, [r8 + 1]
mov rcx, qword [rdi + 0xa08]
call fcn.140031b00
xor edx, edx
mov rcx, qword [rdi + 0xa08]
call fcn.140031c20
xorps xmm0, xmm0
movups xmmword [rbp - 0x49], xmm0
xor r8d, r8d
mov dl, 0xf
mov rcx, qword [rdi + 0xa08]
call fcn.140031c00
lea rdx, [rbp - 0x49]
mov rcx, qword [rdi + 0xa08]
call fcn.140031b20
mov edx, 6
mov rcx, rdi
call fcn.140038300
mov dword [rbp + 0x57], 0x18
mov dword [rbp + 0x4f], 0
mov rax, qword [rbx + 8]
mov qword [rbp - 0x51], rax
mov rcx, qword [rdi + 0xa28]
mov rax, qword [rcx]
lea rdx, [rbp + 0x4f]
mov qword [rsp + 0x28], rdx
lea rdx, [rbp + 0x57]
mov qword [rsp + 0x20], rdx
lea r9, [rbp - 0x51]
xor edx, edx
lea r8d, [rdx + 1]
call qword [rax + 0x90]
cmp byte [rbx + 0xb9], 0
jne 0x14004035f
cmp byte [rbx + 0xb8], 0
je 0x1400403b4
mov edx, dword [rbx + 0xb0]
mov rcx, rdi
call fcn.140038160
xor edx, edx
mov rcx, rdi
call fcn.140037e00
mov rax, qword [rbx + 0x30]
mov qword [rbp - 0x39], rax
mov rax, qword [0x1402ce3c0]
mov qword [rbp - 0x31], rax
mov rcx, qword [rdi + 0xa28]
mov rax, qword [rcx]
lea r9, [rbp - 0x39]
xor edx, edx
lea r8d, [rdx + 2]
call qword [rax + 0x40]
xor r9d, r9d
lea edx, [r9 + 5]
lea r8d, [r9 + 4]
mov rcx, rdi
call fcn.140035040
mov edx, dword [rbx + 0xb4]
mov rcx, rdi
call fcn.140038160
movzx edx, r12b
mov rcx, rdi
call fcn.140037e00
mov rax, qword [rbx + 0x28]
mov qword [rbp - 0x29], rax
mov rax, qword [0x1402ce3c0]
mov qword [rbp - 0x21], rax
mov rcx, qword [rdi + 0xa28]
mov rax, qword [rcx]
lea r9, [rbp - 0x29]
xor edx, edx
lea r8d, [rdx + 2]
call qword [rax + 0x40]
xor r9d, r9d
lea edx, [r9 + 5]
lea r8d, [r9 + 4]
mov rcx, rdi
call fcn.140035040
movaps xmm0, xmmword [0x140222d00]
movups xmmword [rbp - 0x49], xmm0
lea rdx, [rbp - 0x49]
mov rcx, qword [rdi + 0xa08]
call fcn.140031b20
xor edx, edx
mov rcx, rdi
call fcn.1400350d0
nop
mov rdx, qword [rsi]
sub rdx, 0x18
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140040450
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
add rsp, 0xe0
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret