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

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x1f8
mov qword [rsp + 0x160], 0xfffffffffffffffe
mov rcx, qword [rsp + 0x208]
call fcn.180059dd0
mov rcx, qword [rsp + 0x210]
mov ecx, dword [rcx]
or ecx, eax
mov dword [rsp + 0x44], ecx
mov rax, qword [rsp + 0x210]
mov ecx, dword [rsp + 0x44]
mov dword [rax], ecx
mov edx, dword [rsp + 0x44]
mov rcx, qword [rsp + 0x200]
call fcn.180059c10
mov rcx, qword [rsp + 0x200]
call fcn.180059b80
and eax, 0x80
test eax, eax
je 0x180051085
mov rcx, qword [rsp + 0x208]
call fcn.180059b80
and eax, 3
mov rcx, qword [rsp + 0x210]
mov r8d, dword [rcx]
mov edx, eax
mov rcx, qword [rsp + 0x200]
call fcn.180059d30
jmp 0x1800510c0
mov rcx, qword [rsp + 0x200]
call fcn.180029e10
cmp qword [rax], 0
je 0x1800510a9
mov rcx, qword [rsp + 0x200]
call fcn.180059dd0
test eax, eax
jne 0x1800510c0
mov rax, qword [rsp + 0x210]
mov edx, dword [rax]
mov rcx, qword [rsp + 0x200]
call fcn.180059d90
mov rax, qword [rsp + 0x210]
mov eax, dword [rax]
and eax, 0x800000
test eax, eax
je 0x180051165
mov rax, qword [rsp + 0x210]
add rax, 4
mov rdx, qword [rsp + 0x208]
mov rcx, rax
call fcn.18004f5b0
mov dword [rsp + 0x3c], eax
mov eax, reloc.OLEAUT32.dll_SafeArrayDestroy
mov word [rsp + 0x30], ax
movsx rax, word [rsp + 0x30]
lea rcx, [0x18009af80]
cmp dword [rcx + rax*4], 1
jne 0x180051136
movsx rax, word [rsp + 0x30]
lea rcx, [0x18009af80]
mov eax, dword [rcx + rax*4]
inc eax
movsx rcx, word [rsp + 0x30]
lea rdx, [0x18009af80]
mov dword [rdx + rcx*4], eax
mov dword [rsp + 0x5c], SafeArrayGetElement
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov ecx, dword [rsp + 0x5c]
movsxd rcx, ecx
lea rdx, [0x18009af80]
mov dword [rdx + rcx*4], eax
cmp dword [rsp + 0x3c], 0
je 0x180051165
mov eax, dword [rsp + 0x3c]
jmp 0x180051e4f
mov rax, qword [rsp + 0x210]
mov eax, dword [rax]
and eax, 0x800000
test eax, eax
je 0x180051182
mov dword [rsp + 0x40], 0x800001
jmp 0x18005118a
mov dword [rsp + 0x40], 0
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x60], eax
mov dword [rsp + 0xa0], 0
mov eax, dword [rsp + 0xa0]
cmp eax, 0x1ae45f11
jne 0x1800511c6
lea r8, str.Local263967000938050442449073696273507852015713870437973016x
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_OpenMutexA]
mov qword [rsp + 0x178], rax
jmp 0x1800511ee
mov eax, 4
imul rax, rax, 0xb
lea rcx, [0x18009af80]
mov eax, dword [rcx + rax]
inc eax
mov ecx, 4
imul rcx, rcx, 0xb
lea rdx, [0x18009af80]
mov dword [rdx + rcx], eax
xor r9d, r9d
mov r8, qword [rsp + 0x200]
mov edx, 1
lea rcx, [rsp + 0x100]
call fcn.180059210
mov eax, 4
imul rax, rax, 1
lea rcx, [0x18009af80]
mov eax, dword [rcx + rax]
xor eax, 0xffffface
mov ecx, 4
imul rcx, rcx, 1
lea rdx, [0x18009af80]
mov dword [rdx + rcx], eax
xor r9d, r9d
mov r8, qword [rsp + 0x208]
mov edx, dword [rsp + 0x60]
lea rcx, [rsp + 0x190]
call fcn.180059210
mov eax, reloc.OLEAUT32.dll_SafeArrayDestroy
mov word [rsp + 0x28], ax
movsx rax, word [rsp + 0x28]
lea rcx, [0x18009af80]
cmp dword [rcx + rax*4], 1
jne 0x180051291
movsx rax, word [rsp + 0x28]
lea rcx, [0x18009af80]
mov eax, dword [rcx + rax*4]
inc eax
movsx rcx, word [rsp + 0x28]
lea rdx, [0x18009af80]
mov dword [rdx + rcx*4], eax
lea rcx, [rsp + 0x190]
call fcn.180059ba0
mov r8d, SafeArrayGetDim
mov rdx, qword [rsp + 0x210]
mov rcx, rax
call fcn.18005a2a0
mov eax, 4
imul rax, rax, 1
lea rcx, [0x18009af80]
mov edx, 4
imul rdx, rdx, 2
lea r8, [0x18009af80]
mov eax, dword [rcx + rax]
mov dword [r8 + rdx], eax
mov eax, 4
imul rax, rax, 2
lea rcx, [0x18009af80]
mov edx, 4
imul rdx, rdx, 1
lea r8, [0x18009af80]
mov edx, dword [r8 + rdx]
cmp dword [rcx + rax], edx
jae 0x180051332
mov eax, 4
imul rax, rax, 3
lea rcx, [0x18009af80]
mov edx, dword [rcx + rax]
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetDlgItem]
mov ecx, 4
imul rcx, rcx, 2
lea rdx, [0x18009af80]
mov dword [rdx + rcx], eax
mov rax, qword [rsp + 0x210]
mov eax, dword [rax]
and eax, 0x20000
test eax, eax
je 0x1800515f6
mov rax, qword [rsp + 0x210]
mov eax, dword [rax]
and eax, 0x200000
test eax, eax
je 0x180051478
mov eax, 4
imul rax, rax, 1
lea rcx, [0x18009af80]
mov eax, dword [rcx + rax]
xor eax, 0xfffffaab
mov ecx, 4
imul rcx, rcx, 1
lea rdx, [0x18009af80]
mov dword [rdx + rcx], eax
mov eax, 4
imul rax, rax, 3
lea rcx, [0x18009af80]
mov eax, dword [rcx + rax]
add eax, 0x81bfbb4
mov ecx, 4
imul rcx, rcx, 0xb
lea rdx, [0x18009af80]
mov dword [rdx + rcx], eax
call fcn.180059c80
and eax, 0x3f
mov r8d, eax
mov rax, qword [rsp + 0x210]
mov edx, dword [rax]
lea rcx, [rsp + 0x218]
call fcn.180059a00
mov eax, eax
mov rcx, qword [rsp + 0x220]
movzx eax, byte [rcx + rax]
mov edx, eax
lea rcx, [rsp + 0x100]
call fcn.180050730
mov eax, SafeArrayGetDim
mov word [rsp + 0x24], ax
movsx rax, word [rsp + 0x24]
lea rcx, [0x18009af80]
cmp dword [rcx + rax*4], 1
jne 0x180051434
movsx rax, word [rsp + 0x24]
lea rcx, [0x18009af80]
mov eax, dword [rcx + rax*4]
inc eax
movsx rcx, word [rsp + 0x24]
lea rdx, [0x18009af80]
mov dword [rdx + rcx*4], eax
call fcn.180059c80
and eax, 0x3f
mov r8d, eax
mov rax, qword [rsp + 0x210]
mov edx, dword [rax]
lea rcx, [rsp + 0x218]
call fcn.180059a00
mov eax, eax
mov rcx, qword [rsp + 0x220]
movzx eax, byte [rcx + rax]
mov edx, eax
lea rcx, [rsp + 0x100]
call fcn.180050730
jmp 0x1800515d3
xor r8d, r8d
mov rax, qword [rsp + 0x210]
mov edx, dword [rax]
lea rcx, [rsp + 0x218]
call fcn.180059a00
mov eax, eax
mov rcx, qword [rsp + 0x220]
movzx eax, byte [rcx + rax]
mov edx, eax
lea rcx, [rsp + 0x100]
call fcn.180050730
lea rax, [0x180089c70]
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0x68], 0
mov rax, qword [rsp + 0xb8]
movzx eax, byte [rax]
movsx eax, al
cmp eax, 0x61
jne 0x18005151e
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov qword [rsp + 0x68], rax
cmp qword [rsp + 0x68], 0
jne 0x18005151e
mov eax, 4
imul rax, rax, 0xb
lea rcx, [0x18009af80]
mov edx, dword [rcx + rax]
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.USER32.dll_GetDlgItem]
mov ecx, 4
imul rcx, rcx, 0xc
lea rdx, [0x18009af80]
mov dword [rdx + rcx], eax
xor r8d, r8d
mov rax, qword [rsp + 0x210]
mov edx, dword [rax]
lea rcx, [rsp + 0x218]
call fcn.180059a00
mov eax, eax
mov rcx, qword [rsp + 0x220]
movzx eax, byte [rcx + rax]
mov edx, eax
lea rcx, [rsp + 0x100]
call fcn.180050730
mov eax, 4
imul rax, rax, 1
lea rcx, [0x18009af80]
mov edx, 4
imul rdx, rdx, 2
lea r8, [0x18009af80]
mov eax, dword [rcx + rax]
mov dword [r8 + rdx], eax
mov eax, 4
imul rax, rax, 2
lea rcx, [0x18009af80]
mov edx, 4
imul rdx, rdx, 1
lea r8, [0x18009af80]
mov edx, dword [r8 + rdx]
cmp dword [rcx + rax], edx
jae 0x1800515d3
mov eax, 4
imul rax, rax, 3
lea rcx, [0x18009af80]
mov edx, dword [rcx + rax]
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetDlgItem]
mov ecx, 4
imul rcx, rcx, 2
lea rdx, [0x18009af80]
mov dword [rdx + rcx], eax
mov edx, reloc.OLEAUT32.dll_SafeArrayGetDim
mov ecx, dword [rsp + 0x218]
call fcn.180059d00
mov ecx, dword [rsp + 0x218]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x218], eax
mov dword [rsp + 0x34], 0
mov qword [rsp + 0x50], 0
lea rcx, [rsp + 0x190]
call fcn.180059ab0
test rax, rax
je 0x180051cce
mov dword [rsp + 0x34], 0
lea rdx, [rsp + 0x34]
lea rcx, [rsp + 0x190]
call fcn.1800500c0
mov byte [rsp + 0x22], al
lea rdx, [rsp + 0x34]
lea rcx, [rsp + 0x190]
call fcn.1800500c0
mov byte [rsp + 0x21], al
mov dword [rsp + 0x90], SafeArrayGetElement
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov ecx, dword [rsp + 0x90]
movsxd rcx, ecx
lea rdx, [0x18009af80]
mov dword [rdx + rcx*4], eax
lea rdx, [rsp + 0x34]
lea rcx, [rsp + 0x190]
call fcn.1800500c0
mov byte [rsp + 0x20], al
movzx eax, byte [rsp + 0x22]
and eax, 0xfc
sar eax, 2
mov r8d, eax
mov rax, qword [rsp + 0x210]
mov edx, dword [rax]
lea rcx, [rsp + 0x218]
call fcn.180059a00
mov eax, eax
mov rcx, qword [rsp + 0x220]
movzx eax, byte [rcx + rax]
mov edx, eax
lea rcx, [rsp + 0x100]
call fcn.180050730
movzx eax, byte [rsp + 0x22]
and eax, 3
shl eax, 4
movzx ecx, byte [rsp + 0x21]
and ecx, 0xf0
sar ecx, 4
add eax, ecx
mov r8d, eax
mov rax, qword [rsp + 0x210]
mov edx, dword [rax]
lea rcx, [rsp + 0x218]
call fcn.180059a00
mov eax, eax
mov rcx, qword [rsp + 0x220]
movzx eax, byte [rcx + rax]
mov edx, eax
lea rcx, [rsp + 0x100]
call fcn.180050730
cmp dword [rsp + 0x34], 1
jle 0x180051779
movzx eax, byte [rsp + 0x21]
and eax, 0xf
movzx ecx, byte [rsp + 0x20]
and ecx, 0xc0
sar ecx, 6
lea eax, [rcx + rax*4]
mov r8d, eax
mov rax, qword [rsp + 0x210]
mov edx, dword [rax]
lea rcx, [rsp + 0x218]
call fcn.180059a00
mov eax, eax
mov rcx, qword [rsp + 0x220]
movzx eax, byte [rcx + rax]
mov edx, eax
lea rcx, [rsp + 0x100]
call fcn.180050730
cmp dword [rsp + 0x34], 2
jle 0x1800517bf
movzx eax, byte [rsp + 0x20]
and eax, 0x3f
mov r8d, eax
mov rax, qword [rsp + 0x210]
mov edx, dword [rax]
lea rcx, [rsp + 0x218]
call fcn.180059a00
mov eax, eax
mov rcx, qword [rsp + 0x220]
movzx eax, byte [rcx + rax]
mov edx, eax
lea rcx, [rsp + 0x100]
call fcn.180050730
mov eax, 4
imul rax, rax, 1
lea rcx, [0x18009af80]
mov eax, dword [rcx + rax]
xor eax, 0xfffffa43
mov ecx, 4
imul rcx, rcx, 1
lea rdx, [0x18009af80]
mov dword [rdx + rcx], eax
mov eax, 4
imul rax, rax, 1
lea rcx, [0x18009af80]
mov edx, 4
imul rdx, rdx, 2
lea r8, [0x18009af80]
mov eax, dword [rcx + rax]
mov dword [r8 + rdx], eax
mov eax, 4
imul rax, rax, 2
lea rcx, [0x18009af80]
mov edx, 4
imul rdx, rdx, 1
lea r8, [0x18009af80]
mov edx, dword [r8 + rdx]
cmp dword [rcx + rax], edx
jae 0x180051868
mov eax, 4
imul rax, rax, 3
lea rcx, [0x18009af80]
mov edx, dword [rcx + rax]
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetDlgItem]
mov ecx, 4
imul rcx, rcx, 2
lea rdx, [0x18009af80]
mov dword [rdx + rcx], eax
movzx eax, byte [rsp + 0x20]
and eax, 0xaa
test eax, eax
je 0x180051880
mov dword [rsp + 0x48], 1
jmp 0x180051888
mov dword [rsp + 0x48], 0
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x210]
mov eax, dword [rax]
xor eax, 0x420000
and eax, 0x420000
test eax, eax
jne 0x180051b6d
mov rax, qword [0x18009aeb8]
cmp qword [rsp + 0x50], rax
jbe 0x180051b6d
mov eax, 4
imul rax, rax, 3
lea rcx, [0x18009af80]
mov eax, dword [rcx + rax]
add eax, 0x62194da
mov ecx, 4
imul rcx, rcx, 0xb
lea rdx, [0x18009af80]
mov dword [rdx + rcx], eax
cmp qword [0x1800e8eb0], 0
jne 0x18005196c
mov ecx, 0x38
call fcn.18005a0a8
mov qword [rsp + 0xa8], rax
cmp qword [rsp + 0xa8], 0
je 0x180051941
mov r8d, SafeArrayGetElement
lea rdx, str.___________:
mov rcx, qword [rsp + 0xa8]
call fcn.18004d5b0
mov qword [rsp + 0xb0], rax
jmp 0x18005194d
mov qword [rsp + 0xb0], 0
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0xf0], rax
mov rax, qword [rsp + 0xf0]
mov qword [0x1800e8eb0], rax
mov qword [rsp + 0x50], 0
mov eax, 4
imul rax, rax, 1
lea rcx, [0x18009af80]
mov edx, 4
imul rdx, rdx, 2
lea r8, [0x18009af80]
mov eax, dword [rcx + rax]
mov dword [r8 + rdx], eax
mov eax, 4
imul rax, rax, 2
lea rcx, [0x18009af80]
mov edx, 4
imul rdx, rdx, 1
lea r8, [0x18009af80]
mov edx, dword [r8 + rdx]
cmp dword [rcx + rax], edx
jae 0x1800519f3
mov eax, 4
imul rax, rax, 3
lea rcx, [0x18009af80]
mov edx, dword [rcx + rax]
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetDlgItem]
mov ecx, 4
imul rcx, rcx, 2
lea rdx, [0x18009af80]
mov dword [rdx + rcx], eax
call fcn.180059c80
movzx ecx, byte [rsp + 0x21]
add eax, ecx
movzx ecx, byte [reloc.OLEAUT32.dll_VariantCopyInd]
xor edx, edx
div ecx
mov eax, edx
add eax, 0x3e8
mov eax, eax
mov qword [rsp + 0xd8], rax
mov eax, 4
imul rax, rax, 3
lea rcx, [0x18009af80]
mov eax, dword [rcx + rax]
add eax, 0x506d9e8
mov ecx, 4
imul rcx, rcx, 0xb
lea rdx, [0x18009af80]
mov dword [rdx + rcx], eax
mov dword [rsp + 0x70], 0
mov eax, dword [rsp + 0x70]
cmp eax, 0x7cac4641
jne 0x180051a74
lea r8, str.Local112832200840786397883205009201872321362739998402803069640x
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_OpenMutexA]
mov qword [rsp + 0x170], rax
jmp 0x180051a9c
mov eax, 4
imul rax, rax, 0xb
lea rcx, [0x18009af80]
mov eax, dword [rcx + rax]
inc eax
mov ecx, 4
imul rcx, rcx, 0xb
lea rdx, [0x18009af80]
mov dword [rdx + rcx], eax
mov qword [rsp + 0x78], 0
jmp 0x180051ab4
mov rax, qword [rsp + 0x78]
inc rax
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0xd8]
cmp qword [rsp + 0x78], rax
jae 0x180051b6d
mov rcx, qword [0x1800e8eb0]
call fcn.180016da0
mov qword [rsp + 0xc8], rax
call fcn.180059c80
mov eax, eax
mov qword [rsp + 0xd0], rax
mov rcx, qword [0x1800e8eb0]
call fcn.180029e10
mov qword [rsp + 0xe8], rax
xor edx, edx
mov rcx, qword [rsp + 0xd0]
mov rax, rcx
mov rcx, qword [rsp + 0xe8]
div qword [rcx]
mov rax, rdx
mov rcx, qword [rsp + 0xc8]
movzx eax, byte [rcx + rax]
mov byte [rsp + 0x2c], al
movzx eax, byte [rsp + 0x2c]
mov edx, eax
lea rcx, [rsp + 0x100]
call fcn.180050730
mov eax, 4
imul rax, rax, 2
lea rcx, [0x18009af80]
mov eax, dword [rcx + rax]
xor eax, 0xfffff9f7
mov ecx, 4
imul rcx, rcx, 2
lea rdx, [0x18009af80]
mov dword [rdx + rcx], eax
jmp 0x180051aa7
mov rax, qword [rsp + 0x210]
mov eax, dword [rax]
xor eax, 0x60000
and eax, 0x60000
test eax, eax
jne 0x180051cc9
movzx eax, byte [rsp + 0x20]
and eax, 7
cmp eax, 7
jne 0x180051cc9
mov eax, 4
imul rax, rax, 1
lea rcx, [0x18009af80]
mov eax, dword [rcx + rax]
xor eax, 0xfffff9eb
mov ecx, 4
imul rcx, rcx, 1
lea rdx, [0x18009af80]
mov dword [rdx + rcx], eax
mov dword [rsp + 0xa4], 0
mov eax, dword [rsp + 0xa4]
cmp eax, 0x21afb801
jne 0x180051bf9
lea r8, str.Local93468844878817411251749520843948600616648032192908976x
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_OpenMutexA]
mov qword [rsp + 0x180], rax
jmp 0x180051c21
mov eax, 4
imul rax, rax, 0xb
lea rcx, [0x18009af80]
mov eax, dword [rcx + rax]
inc eax
mov ecx, 4
imul rcx, rcx, 0xb
lea rdx, [0x18009af80]
mov dword [rdx + rcx], eax
movzx eax, byte [rsp + 0x20]
and eax, 0xa0
cmp eax, 0xa0
jne 0x180051c49
mov edx, 0x20
lea rcx, [rsp + 0x100]
call fcn.180050730
jmp 0x180051cc9
mov edx, SafeArrayGetDim
lea rcx, [rsp + 0x100]
call fcn.180050730
mov dword [rsp + 0x80], 0
mov eax, dword [rsp + 0x80]
cmp eax, 0x12a2b189
jne 0x180051c8f
lea r8, str.Local2130005856100702624298828244941751940668217900675103140x
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_OpenMutexA]
mov qword [rsp + 0x168], rax
jmp 0x180051cb7
mov eax, 4
imul rax, rax, 0xb
lea rcx, [0x18009af80]
mov eax, dword [rcx + rax]
inc eax
mov ecx, 4
imul rcx, rcx, 0xb
lea rdx, [0x18009af80]
mov dword [rdx + rcx], eax
mov edx, 0xa
lea rcx, [rsp + 0x100]
call fcn.180050730
jmp 0x180051607
mov rax, qword [rsp + 0x210]
mov eax, dword [rax]
and eax, 0x10000
test eax, eax
je 0x180051d37
mov dword [rsp + 0x58], 7
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov ecx, dword [rsp + 0x58]
movsxd rcx, ecx
lea rdx, [0x18009af80]
mov dword [rdx + rcx*4], eax
mov dword [rsp + 0x38], 0
jmp 0x180051d14
mov eax, dword [rsp + 0x38]
inc eax
mov dword [rsp + 0x38], eax
mov eax, 3
sub eax, dword [rsp + 0x34]
cmp dword [rsp + 0x38], eax
jge 0x180051d37
mov edx, 0x3d
lea rcx, [rsp + 0x100]
call fcn.180050730
jmp 0x180051d0a
lea rcx, [rsp + 0x100]
call fcn.180050e10
movzx eax, al
test eax, eax
jne 0x180051d55
mov eax, 0xfffffffc
jmp 0x180051e4f
lea rax, [0x180089cb4]
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0x88], 0
mov rax, qword [rsp + 0xe0]
movzx eax, byte [rax]
movsx eax, al
cmp eax, 0x61
jne 0x180051dd0
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov qword [rsp + 0x88], rax
cmp qword [rsp + 0x88], 0
jne 0x180051dd0
mov eax, 4
imul rax, rax, 0xb
lea rcx, [0x18009af80]
mov edx, dword [rcx + rax]
mov rcx, qword [rsp + 0x88]
call qword [sym.imp.USER32.dll_GetDlgItem]
mov ecx, 4
imul rcx, rcx, 0xc
lea rdx, [0x18009af80]
mov dword [rdx + rcx], eax
xor eax, eax
jmp 0x180051e4f
add rsp, 0x1f8
ret