Function at 0x4187a0
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44d78f
mov eax, dword fs:[0]
push eax
sub esp, 0x58
push esi
push edi
mov eax, dword [0x46500c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
test edi, edi
jne 0x4187d5
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
lea eax, [ebp - 0x28]
mov dword [ebp - 0x28], 8
push eax
mov dword [ebp - 0x24], 0xff
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
sub esp, 0xc
call fcn.004192d0
call fcn.00410a10
mov dword [ebp - 0x14], eax
call fcn.0043a6fb
mov esi, dword [eax]
call fcn.0043a6f5
mov ecx, dword [eax]
mov dword [0x46802c], edi
mov dword [0x468030], ecx
mov dword [0x468034], esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push 2
push 0
mov dword [0x468038], eax
call dword [sym.imp.ole32.dll_CoInitializeEx]
xor ecx, ecx
test eax, eax
push 0x45948c
setns cl
mov dword [0x467f74], ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
test esi, esi
je 0x41886b
push str.SetProcessDpiAwareness
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x418864
push 2
call eax
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push 0x45948c
mov edi, eax
mov dword [ebp + 8], 0
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
test esi, esi
je 0x4188bc
push str.GetDpiForMonitor
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x10], eax
test eax, eax
je 0x4188b5
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x18]
push eax
push 0
push 2
push edi
call dword [sym.imp.USER32.dll_MonitorFromWindow]
push eax
call dword [ebp - 0x10]
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, dword [ebp + 8]
test eax, eax
jne 0x4188e3
push edi
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
push 0x5a
push esi
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push esi
push edi
mov dword [ebp + 8], eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [ebp + 8]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd xmm1, qword [0x45a098]
divsd xmm0, qword [0x45a110]
comisd xmm1, xmm0
jbe 0x41890b
movsd qword [0x467f78], xmm1
jmp 0x418913
movsd qword [0x467f78], xmm0
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
call eax
mov dword [0x467f70], eax
mov esi, dword [eax]
call fcn.00411320
mov ecx, dword [0x467f70]
push eax
mov eax, dword [esi + 0x34]
call eax
test eax, eax
je 0x418d38
push 0
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_DefWindowProcW]
call fcn.00411090
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, eax
neg esi
sbb esi, esi
neg esi
dec esi
mov dword [ebp + 8], esi
test eax, eax
je 0x418ca6
mov esi, dword [0x467f70]
mov edi, dword [esi]
call fcn.00410470
push eax
mov eax, dword [edi + 0x34]
mov ecx, esi
call eax
mov ecx, eax
neg ecx
sbb ecx, ecx
and ecx, dword [0x467f70]
cmp dword [0x46807c], 0
mov dword [ebp - 0x14], ecx
je 0x418c94
mov dword [ebp - 0x64], vtable.WTL::CMessageLoop.0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov byte [ebp - 4], 1
xorps xmm0, xmm0
movups xmmword [ebp - 0x48], xmm0
mov dword [ebp - 0x30], 0
movq qword [ebp - 0x38], xmm0
mov dword [ebp - 4], 2
mov dword [ebp - 0x64], 0x459018
mov dword [ebp - 4], 3
mov dword [ebp - 0x64], 0x458ff0
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 4], 4
mov edi, dword [0x467b28]
add edi, 0x10
mov byte [ebp - 0x24], 0
mov dword [ebp - 0x28], edi
mov byte [ebp - 4], 6
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 0x24], 1
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, dword [0x468074]
push 4
mov dword [ebp + 8], eax
mov dword [ebp - 0x18], esi
mov ecx, dword [esi + 8]
inc ecx
push ecx
push dword [esi]
call fcn.0043a701
add esp, 0xc
test eax, eax
je 0x418aab
mov dword [esi], eax
mov eax, dword [esi + 8]
push 4
inc eax
push eax
push dword [esi + 4]
call fcn.0043a701
add esp, 0xc
test eax, eax
je 0x418aab
mov dword [esi + 4], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x10], eax
lea ecx, [eax*4]
mov eax, dword [esi]
add eax, ecx
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 8
je 0x418a8d
mov edx, dword [ebp + 8]
mov dword [eax], edx
mov byte [ebp - 4], 6
mov eax, dword [esi + 4]
add eax, ecx
mov dword [ebp + 8], eax
mov byte [ebp - 4], 9
je 0x418aa4
lea ecx, [ebp - 0x64]
mov dword [eax], ecx
mov byte [ebp - 4], 6
inc dword [esi + 8]
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov byte [ebp - 0x24], 0
mov byte [ebp - 4], 4
mov edi, 1
xor esi, esi
test edi, edi
je 0x418b07
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x48]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
jne 0x418b07
mov eax, dword [ebp - 0x64]
mov ecx, esi
inc esi
push ecx
lea ecx, [ebp - 0x64]
mov eax, dword [eax + 8]
cmp eax, fcn.00418600
jne 0x418af6
call fcn.00418600
jmp 0x418af8
call eax
mov ecx, eax
xor eax, eax
test ecx, ecx
cmovne eax, edi
mov edi, eax
test edi, edi
jne 0x418ac5
push 0
push 0
push 0
lea eax, [ebp - 0x48]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
cmp eax, 0xffffffff
je 0x418ac1
test eax, eax
je 0x418bc7
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 4]
cmp eax, fcn.00418710
jne 0x418b3f
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x64]
call fcn.00418710
jmp 0x418b48
lea ecx, [ebp - 0x48]
push ecx
lea ecx, [ebp - 0x64]
call eax
test eax, eax
jne 0x418b60
lea eax, [ebp - 0x48]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x48]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 0xc]
cmp eax, method.WTL::CMessageLoop.virtual_12
jne 0x418ba5
mov eax, dword [ebp - 0x44]
cmp eax, 0x118
ja 0x418b85
je 0x418ba1
cmp eax, 0xf
je 0x418ba1
cmp eax, 0xa0
jmp 0x418b8a
cmp eax, 0x200
je 0x418ba1
mov ecx, 1
xor eax, eax
test ecx, ecx
mov edi, ecx
cmove eax, esi
mov esi, eax
jmp 0x418ac1
xor ecx, ecx
jmp 0x418bb0
lea ecx, [ebp - 0x48]
push ecx
lea ecx, [ebp - 0x64]
call eax
mov ecx, eax
test ecx, ecx
je 0x418bb9
mov edi, 1
xor eax, eax
test ecx, ecx
cmove eax, esi
mov esi, eax
jmp 0x418ac1
mov eax, dword [0x467b28]
mov esi, dword [ebp - 0x40]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov byte [ebp - 0x1c], 0
mov byte [ebp - 4], 0xc
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 0x1c], 1
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edx, dword [0x468074]
xor ecx, ecx
mov edi, dword [edx + 8]
test edi, edi
jle 0x418c1a
mov edx, dword [edx]
nop
cmp dword [edx], eax
je 0x418c0e
inc ecx
add edx, 4
cmp ecx, edi
jl 0x418c00
jmp 0x418c1a
push ecx
mov ecx, dword [0x468074]
call fcn.00418df0
push dword [ebp - 0x20]
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call edi
mov byte [ebp - 0x1c], 0
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x64], vtable.WTL::CMessageLoop.0
mov dword [ebp - 4], 0x11
mov eax, dword [ebp - 0x54]
test eax, eax
je 0x418c55
push eax
call fcn.00435d14
add esp, 4
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x418c81
push eax
call fcn.00435d14
add esp, 4
mov dword [ebp - 0x60], 0
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
jmp 0x418c9d
mov esi, dword [ebp + 8]
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test ecx, ecx
je 0x418ca6
mov eax, dword [ecx]
call dword [eax + 0x54]
mov ecx, 0x467fa4
call fcn.00425950
mov ecx, dword [0x467f70]
test ecx, ecx
je 0x418cc9
mov eax, dword [ecx]
call dword [eax + 0x30]
mov dword [0x467f70], 0
mov ecx, 0x468004
call fcn.0041b8e0
mov ecx, 0x467f50
call fcn.0041ede0
push 0x467f80
mov dword [ebp + 8], 0x467f80
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [ebp - 4], 0x13
mov eax, dword [0x467f98]
test eax, eax
je 0x418d10
push eax
call dword [sym.imp.gdiplus.dll_GdiplusShutdown]
mov dword [0x467f98], 0
mov dword [ebp - 4], 0xffffffff
push 0x467f80
call edi
call fcn.00418480
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [0x467f70]
mov eax, dword [ecx]
call dword [eax + 0x30]
push 0xffffffffffffffff
call fcn.0043a4b9
int3