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

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
mov qword [rax - 0x60], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
movaps xmmword [rax - 0x38], xmm6
mov rax, qword [0x1804610b0]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov ebx, r9d
mov r12d, r8d
mov ebp, edx
mov dword [rsp + 0x28], edx
mov rdi, rcx
mov r14, qword [rsp + 0xd8]
mov rsi, qword [rsp + 0xe0]
cmp qword [rcx], 0
jne 0x18015e133
xor eax, eax
jmp 0x18015e7c2
xor eax, eax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x40], xmm0
mov rcx, qword [rcx]
mov rax, qword [rcx]
lea rdx, [rsp + 0x40]
call qword [rax + 0x18]
cmp qword [rsp + 0x40], 0
je 0x18015e786
movzx r15d, byte [rsp + 0xd0]
mov byte [rdi + 0x170], r15b
lea rcx, [rdi + 0x128]
mov rdx, r14
call fcn.18015da10
mov rax, qword [rsp + 0xc8]
movaps xmm0, xmmword [rax]
movups xmmword [rdi + 0x20], xmm0
mov rcx, rdi
call fcn.1801622d0
mov dword [rdi + 0x2c], eax
mov dword [rdi + 0xa0], ebx
movss xmm6, dword [rsp + 0xc0]
movss dword [rdi + 0xe4], xmm6
movaps xmm0, xmm6
mulss xmm0, dword [0x180397da0]
cvttss2si r14, xmm0
mov r13d, 7
mov r8d, r13d
mov eax, 0xe
test r15b, r15b
cmovne r8d, eax
mov edx, r13d
mov eax, 0xa
cmovne edx, eax
mov eax, dword [rdi + 0x20]
mov ecx, r12d
sub ecx, eax
sub ecx, ebp
cmp r8d, eax
cmova r8d, eax
mov dword [rsp + 0x24], r8d
cmp edx, ecx
cmovbe ecx, edx
lea eax, [r8 + rcx]
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
mulss xmm0, xmm6
cvttss2si rax, xmm0
mov qword [rsp + 0x30], rax
lea ebx, [rax + r14]
add ebx, ebp
mov rdx, rsi
mov rcx, rdi
call fcn.1801624f0
mov dword [rsp + 0x20], eax
call fcn.1800395c0
mov rcx, rax
lea edx, [r13 + 0x35]
call fcn.180174f80
movss xmm0, dword [rdi + 0xe4]
mulss xmm0, dword [0x180397df4]
cvttss2si rbp, xmm0
add ebp, eax
cmp dword [rsp + 0x20], 0
je 0x18015e2be
cmp byte [rsi + 4], 0
je 0x18015e27b
call fcn.1800395c0
mov rcx, rax
test r15b, r15b
je 0x18015e274
lea edx, [r13 + 0x67]
jmp 0x18015e292
mov edx, 0x64
jmp 0x18015e292
call fcn.1800395c0
mov rcx, rax
test r15b, r15b
mov edx, 0x8c
jne 0x18015e292
mov edx, 0x82
call fcn.180174f80
mov edx, eax
mov ecx, dword [rdi + 0x20]
mov eax, dword [rsp + 0x24]
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
mulss xmm0, xmm6
cvttss2si rax, xmm0
sub ecx, eax
add ecx, edx
add ecx, dword [rsp + 0x20]
cmp ecx, ebp
cmova ebp, ecx
test dword [rsi], 0xfffffff7
je 0x18015e2e1
cmp ebx, ebp
jae 0x18015e2e1
test r15b, r15b
jne 0x18015e2d9
mov r12, qword [rsp + 0x30]
add r12d, dword [rsp + 0x28]
mov r14d, ebp
sub r14d, r12d
jmp 0x18015e2ed
mov ebp, ebx
sub ebx, r12d
test r15b, r15b
cmovne r14d, ebx
mov ebx, 5
mov eax, 9
cmp byte [rsi + 4], 0
cmovne ebx, eax
call fcn.1800395c0
mov rcx, rax
mov edx, ebx
call fcn.180174f80
mov ebx, eax
mov rcx, rdi
call fcn.18015edd0
lea ecx, [rbx + rax]
mov r15d, dword [rdi + 0x2c]
add r15d, ecx
mov dword [rdi + 0x174], r15d
movzx ecx, byte [rsi + 4]
mov eax, 3
test cl, cl
cmovne r13d, eax
mov eax, dword [rsi]
dec eax
test eax, 0xfffffffb
jne 0x18015e349
mov r13d, dword [rsi + 0x2a8]
mov eax, 0x1c
mov edx, 0x20
test cl, cl
cmovne eax, edx
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
mulss xmm0, dword [rdi + 0xe4]
cvttss2si rbx, xmm0
call fcn.1800395c0
mov rcx, rax
mov edx, 0x12
call fcn.180174f80
mov edx, ebx
imul edx, r13d
add edx, eax
mov ecx, dword [rdi + 0x20]
mov eax, dword [rsp + 0x24]
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
mulss xmm0, xmm6
cvttss2si rax, xmm0
sub ecx, eax
mov dword [rdi + 0x10], ecx
mov eax, dword [rdi + 0x24]
mov dword [rdi + 0x14], eax
mov dword [rdi + 0x18], ebp
lea eax, [rdx + r15]
mov dword [rdi + 0x1c], eax
mov dword [rdi + 0x30], ecx
mov ecx, dword [rdi + 0x14]
add ecx, r15d
mov dword [rdi + 0x34], ecx
mov eax, dword [rdi + 0x18]
mov dword [rdi + 0x38], eax
mov dword [rdi + 0x3c], ebx
mov eax, dword [rdi + 0x10]
mov dword [rdi + 0x40], eax
lea eax, [rbx + r15]
add eax, dword [rdi + 0x14]
mov dword [rdi + 0x44], eax
mov eax, dword [rdi + 0x18]
mov dword [rdi + 0x48], eax
mov dword [rdi + 0x4c], ebx
mov eax, dword [rdi + 0x10]
mov dword [rdi + 0x50], eax
lea eax, [r15 + rbx*2]
add eax, dword [rdi + 0x14]
mov dword [rdi + 0x54], eax
mov eax, dword [rdi + 0x18]
mov dword [rdi + 0x58], eax
mov dword [rdi + 0x5c], ebx
mov eax, dword [rdi + 0x10]
mov dword [rdi + 0x60], eax
lea ecx, [r15 + rbx*2]
add ecx, ebx
add ecx, dword [rdi + 0x14]
mov dword [rdi + 0x64], ecx
mov eax, dword [rdi + 0x18]
mov dword [rdi + 0x68], eax
mov dword [rdi + 0x6c], ebx
mov eax, dword [rdi + 0x10]
mov dword [rdi + 0x70], eax
lea eax, [r15 + rbx*4]
add eax, dword [rdi + 0x14]
mov dword [rdi + 0x74], eax
mov eax, dword [rdi + 0x18]
mov dword [rdi + 0x78], eax
mov dword [rdi + 0x7c], ebx
mov eax, dword [rdi + 0x10]
mov dword [rdi + 0x80], eax
lea ecx, [r15 + rbx*4]
add ecx, ebx
add ecx, dword [rdi + 0x14]
mov dword [rdi + 0x84], ecx
mov eax, dword [rdi + 0x18]
mov dword [rdi + 0x88], eax
mov dword [rdi + 0x8c], ebx
mov eax, dword [rdi + 0x10]
mov dword [rdi + 0x90], eax
lea eax, [rbx + rbx*2]
lea ecx, [r15 + rax*2]
add ecx, dword [rdi + 0x14]
mov dword [rdi + 0x94], ecx
mov eax, dword [rdi + 0x18]
mov dword [rdi + 0x98], eax
mov dword [rdi + 0x9c], ebx
mov ebx, dword [rdi + 0x18]
add ebx, dword [rdi + 0x10]
mov eax, dword [0x18048ad08]
test al, 1
jne 0x18015e4de
or eax, 1
mov dword [0x18048ad08], eax
lea rcx, [0x18048ad10]
call fcn.180174c40
nop
lea rcx, [0x18031d480]
call fcn.1802998ec
nop
mov eax, dword [0x18048ad08]
test al, 1
jne 0x18015e4de
or eax, 1
mov dword [0x18048ad08], eax
lea rcx, [0x18048ad10]
call fcn.180174c40
nop
lea rcx, [0x18031d480]
call fcn.1802998ec
nop
mov edx, 0xe
lea rcx, [0x18048ad10]
call fcn.180174f80
sub ebx, eax
mov edx, 6
lea rcx, [0x18048ad10]
call fcn.180174f80
sub ebx, eax
mov dword [rdi + 0xa4], ebx
mov eax, dword [0x18048ad08]
test al, 1
jne 0x18015e537
or eax, 1
mov dword [0x18048ad08], eax
lea rcx, [0x18048ad10]
call fcn.180174c40
nop
lea rcx, [0x18031d480]
call fcn.1802998ec
nop
mov edx, 0xe
lea rcx, [0x18048ad10]
call fcn.180174f80
mov dword [rdi + 0xac], eax
mov ebx, dword [rdi + 0x1c]
add ebx, dword [rdi + 0x14]
mov eax, dword [0x18048ad08]
test al, 1
jne 0x18015e5ae
or eax, 1
mov dword [0x18048ad08], eax
lea rcx, [0x18048ad10]
call fcn.180174c40
nop
lea rcx, [0x18031d480]
call fcn.1802998ec
nop
mov eax, dword [0x18048ad08]
test al, 1
jne 0x18015e5ae
or eax, 1
mov dword [0x18048ad08], eax
lea rcx, [0x18048ad10]
call fcn.180174c40
nop
lea rcx, [0x18031d480]
call fcn.1802998ec
nop
mov edx, 0x12
lea rcx, [0x18048ad10]
call fcn.180174f80
sub ebx, eax
mov edx, 1
lea rcx, [0x18048ad10]
call fcn.180174f80
add eax, ebx
mov dword [rdi + 0xa8], eax
mov eax, dword [0x18048ad08]
test al, 1
jne 0x18015e607
or eax, 1
mov dword [0x18048ad08], eax
lea rcx, [0x18048ad10]
call fcn.180174c40
nop
lea rcx, [0x18031d480]
call fcn.1802998ec
nop
mov edx, 0x12
lea rcx, [0x18048ad10]
call fcn.180174f80
mov dword [rdi + 0xb0], eax
mov eax, dword [rsi]
dec eax
test eax, 0xfffffffb
jne 0x18015e781
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax + 0x13d8]
test rcx, rcx
je 0x18015e6dc
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov ebx, eax
call fcn.1800395c0
mov rcx, rax
mov edx, ebx
call fcn.180174f80
xor edx, edx
div dword [rsi + 0x304]
mov ebx, eax
call fcn.1800395c0
mov rcx, rax
mov edx, 6
call fcn.180174f80
mov ecx, dword [rdi + 0xa4]
sub ecx, ebx
sub ecx, eax
mov dword [rdi + 0xc4], ecx
mov dword [rdi + 0xcc], ebx
mov ebx, dword [rdi + 0x1c]
add ebx, dword [rdi + 0x14]
call fcn.1800395c0
mov rcx, rax
mov edx, 0x12
call fcn.180174f80
sub ebx, eax
call fcn.1800395c0
mov rcx, rax
mov edx, 1
call fcn.180174f80
add eax, ebx
mov dword [rdi + 0xc8], eax
call fcn.1800395c0
mov rcx, rax
mov edx, 0x12
call fcn.180174f80
mov dword [rdi + 0xd0], eax
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax + 0x13e8]
test rcx, rcx
je 0x18015e781
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov ebx, eax
call fcn.1800395c0
mov rcx, rax
mov edx, ebx
call fcn.180174f80
xor edx, edx
div dword [rsi + 0x310]
mov ebx, eax
call fcn.1800395c0
mov rcx, rax
mov edx, 2
call fcn.180174f80
mov ecx, dword [rdi + 0xc4]
sub ecx, ebx
sub ecx, eax
mov dword [rdi + 0xd4], ecx
mov dword [rdi + 0xdc], ebx
mov ebx, dword [rdi + 0x1c]
add ebx, dword [rdi + 0x14]
call fcn.1800395c0
mov rcx, rax
mov edx, 0x12
call fcn.180174f80
sub ebx, eax
call fcn.1800395c0
mov rcx, rax
mov edx, 1
call fcn.180174f80
add eax, ebx
mov dword [rdi + 0xd8], eax
call fcn.1800395c0
mov rcx, rax
mov edx, 0x12
call fcn.180174f80
mov dword [rdi + 0xe0], eax
cmp dword [rsi], 8
jne 0x18015e789
xor r14d, r14d
mov rbx, qword [rsp + 0x48]
test rbx, rbx
je 0x18015e7bf
mov edi, 0xffffffff
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x18015e7bf
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x18015e7bf
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + reloc.OLEAUT32.dll_VariantClear]
mov eax, r14d
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.1802994c0
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
movaps xmm6, xmmword [rsp + 0x60]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret