Function at 0x4157d0
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42b597
mov eax, dword fs:[0]
push eax
sub esp, 0x58
push esi
push edi
mov eax, dword [0x438008]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
test edi, edi
jne 0x415805
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.004164b0
call fcn.004148a0
mov dword [ebp - 0x14], eax
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll___p___wargv]
mov esi, dword [eax]
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll___p___argc]
mov ecx, dword [eax]
mov dword [0x438e7c], edi
mov dword [0x438e80], ecx
mov dword [0x438e84], esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push 2
push 0
mov dword [0x438e88], eax
call dword [sym.imp.ole32.dll_CoInitializeEx]
xor ecx, ecx
test eax, eax
setns cl
mov dword [0x438dc4], ecx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push str.SHCore.dll
mov edi, eax
mov dword [ebp + 8], 0
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [ebp - 0x10], eax
test eax, eax
je 0x4158c3
push str.GetDpiForMonitor
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
je 0x4158ba
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 esi
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, dword [ebp + 8]
test eax, eax
jne 0x4158ea
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 [0x42f700]
divsd xmm0, qword [0x42f708]
comisd xmm1, xmm0
jbe 0x415912
movsd qword [0x438dc8], xmm1
jmp 0x41591a
movsd qword [0x438dc8], xmm0
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
call eax
mov dword [0x438dc0], eax
mov esi, dword [eax]
call fcn.00415160
mov ecx, dword [0x438dc0]
push eax
mov eax, dword [esi + 0x34]
call eax
test eax, eax
jne 0x415950
mov ecx, dword [0x438dc0]
mov eax, dword [ecx]
call dword [eax + 0x30]
push 0xffffffffffffffff
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
push 0
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_DefWindowProcW]
call fcn.00414ec0
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, eax
neg edi
sbb edi, edi
neg edi
dec edi
mov dword [ebp + 8], edi
test eax, eax
je 0x415cc9
mov esi, dword [0x438dc0]
mov edi, dword [esi]
call fcn.004142d0
push eax
mov eax, dword [edi + 0x34]
mov ecx, esi
call eax
neg eax
sbb ecx, ecx
and ecx, dword [0x438dc0]
cmp dword [0x438fac], 0
mov dword [ebp - 0x14], ecx
je 0x415cb7
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], 0x42eb4c
mov dword [ebp - 4], 3
mov dword [ebp - 0x64], 0x42eb24
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 4], 4
mov edi, dword [0x438d5c]
add edi, 0x10
mov dword [ebp - 0x28], edi
mov byte [ebp - 0x24], 0
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 [0x438fa4]
mov dword [ebp - 0x18], esi
push 4
mov dword [ebp + 8], eax
mov ecx, dword [esi + 8]
inc ecx
push ecx
push dword [esi]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll__recalloc]
add esp, 0xc
test eax, eax
je 0x415ac1
mov dword [esi], eax
mov eax, dword [esi + 8]
push 4
inc eax
push eax
push dword [esi + 4]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll__recalloc]
add esp, 0xc
test eax, eax
je 0x415ac1
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 0x415aa3
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 0x415aba
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 0x415b22
nop dword [eax + eax]
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 0x415b22
mov eax, dword [ebp - 0x64]
mov ecx, esi
inc esi
push ecx
lea ecx, [ebp - 0x64]
mov eax, dword [eax + 8]
cmp eax, fcn.004155d0
jne 0x415b11
call fcn.004155d0
jmp 0x415b13
call eax
mov ecx, eax
xor eax, eax
test ecx, ecx
cmovne eax, edi
mov edi, eax
test edi, edi
jne 0x415ae0
push 0
push 0
push 0
lea eax, [ebp - 0x48]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
cmp eax, 0xffffffff
je 0x415ad7
test eax, eax
je 0x415be2
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 4]
cmp eax, fcn.004156e0
jne 0x415b5a
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x64]
call fcn.004156e0
jmp 0x415b63
lea ecx, [ebp - 0x48]
push ecx
lea ecx, [ebp - 0x64]
call eax
test eax, eax
jne 0x415b7b
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 0x415bc0
mov eax, dword [ebp - 0x44]
cmp eax, 0x118
ja 0x415ba0
je 0x415bbc
cmp eax, 0xf
je 0x415bbc
cmp eax, 0xa0
jmp 0x415ba5
cmp eax, 0x200
je 0x415bbc
mov ecx, 1
xor eax, eax
test ecx, ecx
mov edi, ecx
cmove eax, esi
mov esi, eax
jmp 0x415ad7
xor ecx, ecx
jmp 0x415bcb
lea ecx, [ebp - 0x48]
push ecx
lea ecx, [ebp - 0x64]
call eax
mov ecx, eax
test ecx, ecx
je 0x415bd4
mov edi, 1
xor eax, eax
test ecx, ecx
cmove eax, esi
mov esi, eax
jmp 0x415ad7
mov eax, dword [0x438d5c]
mov edi, 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 [0x438fa4]
xor ecx, ecx
mov esi, dword [edx + 8]
test esi, esi
jle 0x415c3f
mov edx, dword [edx]
nop word [eax + eax]
cmp dword [edx], eax
je 0x415c2e
inc ecx
add edx, 4
cmp ecx, esi
jl 0x415c20
jmp 0x415c3f
cmp ecx, 0xffffffff
je 0x415c3f
push ecx
mov ecx, dword [0x438fa4]
call fcn.00415f40
push dword [ebp - 0x20]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
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]
mov esi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
test eax, eax
je 0x415c7b
push eax
call esi
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 0x415ca4
push eax
call esi
add esp, 4
mov dword [ebp - 0x60], 0
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
jmp 0x415cba
mov edi, dword [ebp + 8]
test ecx, ecx
je 0x415cc3
mov eax, dword [ecx]
call dword [eax + 0x54]
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, 0x438df4
call fcn.0041ff20
mov ecx, dword [0x438dc0]
test ecx, ecx
je 0x415cec
mov eax, dword [ecx]
call dword [eax + 0x30]
mov dword [0x438dc0], 0
mov ecx, 0x438e54
call fcn.00416b20
mov ecx, 0x438da0
call fcn.0041a830
push 0x438dd0
mov dword [ebp + 8], 0x438dd0
call esi
mov dword [ebp - 4], 0x13
mov eax, dword [0x438de8]
test eax, eax
je 0x415d2f
push eax
call dword [sym.imp.gdiplus.dll_GdiplusShutdown]
mov dword [0x438de8], 0
mov dword [ebp - 4], 0xffffffff
push 0x438dd0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [0x438d5c]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov byte [ebp - 0x1c], 0
mov dword [ebp - 4], 0x15
push eax
call esi
mov esi, dword [0x438fa8]
mov byte [ebp - 0x1c], 1
test esi, esi
je 0x415db1
cmp dword [esi + 4], 0
jle 0x415d7e
mov eax, dword [esi]
push dword [eax]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov esi, dword [0x438fa8]
test esi, esi
je 0x415db1
mov eax, dword [esi]
test eax, eax
je 0x415d98
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov dword [esi], 0
push 0xc
push esi
mov dword [esi + 4], 0
mov dword [esi + 8], 0
call fcn.00426cee
add esp, 8
push dword [ebp - 0x20]
mov dword [0x438fa8], 0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov byte [ebp - 0x1c], 0
mov dword [ebp - 4], 0xffffffff
mov esi, dword [0x438fa4]
test esi, esi
je 0x415e19
mov eax, dword [esi]
test eax, eax
je 0x415def
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x415e07
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
mov dword [esi + 8], 0
call fcn.00426cee
add esp, 8
mov esi, dword [0x438f9c]
test esi, esi
je 0x415e4b
cmp dword [esi], 0
je 0x415e4b
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x415e35
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [esi + 0x20]
push 0
mov dword [esi + 0x10], 0
call eax
add esi, 0x24
cmp dword [esi], 0
jne 0x415e28
mov esi, dword [0x4380b0]
mov ecx, dword [0x4380b4]
cmp esi, ecx
jae 0x415e7a
nop dword [eax + eax]
mov eax, dword [esi]
test eax, eax
je 0x415e73
mov eax, dword [eax + 0x1c]
push 0
call eax
mov ecx, dword [0x4380b4]
add esi, 4
cmp esi, ecx
jb 0x415e60
mov ecx, 0x438f70
call fcn.00416420
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10