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

Disassembly:
mov r11, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xc0
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov qword [r11 + 0x18], rbx
movaps xmmword [r11 - 0x48], xmm6
movaps xmmword [r11 - 0x58], xmm7
mov rax, qword [0x1804610b0]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov r15, rdx
mov qword [rsp + 0x48], rdx
mov rdi, rcx
mov qword [rsp + 0x50], rcx
cmp qword [rcx], 0
je 0x18015f1d5
xor eax, eax
mov qword [r11 - 0x78], rax
mov qword [r11 - 0x70], rax
xorps xmm0, xmm0
movdqu xmmword [r11 - 0x78], xmm0
mov rcx, qword [rcx]
mov rax, qword [rcx]
lea rdx, [r11 - 0x78]
call qword [rax + 0x20]
mov rax, qword [rsp + 0x80]
test rax, rax
je 0x18015f19c
mov r13d, dword [rax + 0xc0]
mov dword [rsp + 0x40], r13d
movss xmm0, dword [rdi + 0xe4]
mulss xmm0, dword [0x180397da8]
cvttss2si rsi, xmm0
call fcn.1800395c0
mov rcx, rax
mov edx, 1
call fcn.180174f80
mov ebp, eax
mov r12d, dword [rdi + 0x10]
mov dword [rsp + 0x30], r12d
mov r9d, dword [rdi + 0x18]
add r9d, r12d
mov dword [rsp + 0x44], r9d
mov ebx, dword [rdi + 0x14]
mov dword [rsp + 0x34], ebx
lea r10, vtable.RC::RCGDIBrush.0
lea r11, vtable.RC::RCGDISolidBrush.0
cmp byte [rdi + 0x170], 0
je 0x18015efc3
mov rcx, rdi
call fcn.18015edd0
add eax, dword [rdi + 0x2c]
mov esi, eax
jmp 0x18015f0d8
xor r14d, r14d
test esi, esi
je 0x18015f0e6
mov eax, esi
xorps xmm6, xmm6
cvtsi2sd xmm6, rax
movzx edx, r13b
mov dword [rsp + 0x38], edx
movzx r15d, r13w
shr r15d, 8
mov eax, r13d
shr eax, 0x10
movzx r8d, al
mov dword [rsp + 0x3c], r8d
mov r12d, r9d
sub r12d, ebp
movsd xmm7, qword [0x180397d40]
mov rdi, qword [rsp + 0x48]
mov r13d, dword [rsp + 0x30]
nop
mov eax, r14d
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
divsd xmm0, xmm6
mulsd xmm0, xmm7
cvttsd2si eax, xmm0
movzx ecx, al
shl ecx, 8
or ecx, edx
shl ecx, 8
or ecx, r15d
shl ecx, 8
or ecx, r8d
mov qword [rsp + 0x70], r10
mov dword [rsp + 0x78], 0xff000000
mov qword [rsp + 0x70], r11
mov dword [rsp + 0x78], ecx
add ebx, r14d
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], ebp
mov r9d, ebx
mov r8d, r13d
lea rdx, [rsp + 0x70]
mov rcx, rdi
call fcn.180166740
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], ebp
mov r9d, ebx
mov r8d, r12d
lea rdx, [rsp + 0x70]
mov rcx, rdi
call fcn.180166740
nop
lea rcx, [rsp + 0x70]
call fcn.1800421c0
inc r14d
cmp r14d, esi
mov edx, dword [rsp + 0x38]
mov r8d, dword [rsp + 0x3c]
mov ebx, dword [rsp + 0x34]
lea r10, vtable.RC::RCGDIBrush.0
lea r11, vtable.RC::RCGDISolidBrush.0
jb 0x18015f010
mov rdi, qword [rsp + 0x50]
mov r13d, dword [rsp + 0x40]
mov r15, qword [rsp + 0x48]
mov r12d, dword [rsp + 0x30]
lea r11, vtable.RC::RCGDISolidBrush.0
lea r10, vtable.RC::RCGDIBrush.0
movzx ecx, r13b
or ecx, 0x5a00
shl ecx, 8
movzx eax, r13w
shr eax, 8
or ecx, eax
shl ecx, 8
shr r13d, 0x10
movzx eax, r13b
or ecx, eax
mov qword [rsp + 0x60], r10
mov dword [rsp + 0x68], 0xff000000
mov qword [rsp + 0x60], r11
mov dword [rsp + 0x68], ecx
add ebx, esi
mov eax, dword [rdi + 0x1c]
sub eax, ebp
sub eax, esi
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ebp
mov r9d, ebx
mov r8d, r12d
lea rdx, [rsp + 0x60]
mov rcx, r15
call fcn.180166740
mov eax, dword [rdi + 0x1c]
sub eax, ebp
sub eax, esi
mov r8d, dword [rsp + 0x44]
sub r8d, ebp
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ebp
mov r9d, ebx
lea rdx, [rsp + 0x60]
mov rcx, r15
call fcn.180166740
mov r9d, dword [rdi + 0x1c]
add r9d, dword [rdi + 0x14]
sub r9d, ebp
mov dword [rsp + 0x28], ebp
mov eax, dword [rdi + 0x18]
mov dword [rsp + 0x20], eax
mov r8d, r12d
lea rdx, [rsp + 0x60]
mov rcx, r15
call fcn.180166740
nop
lea rcx, [rsp + 0x60]
call fcn.1800421c0
nop
mov rbx, qword [rsp + 0x88]
test rbx, rbx
je 0x18015f1d5
mov edi, 0xffffffff
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x18015f1d5
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x18015f1d5
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.1802994c0
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x50]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret