Function at 0x40e9d0
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x472db0
mov eax, dword fs:[0]
push eax
sub esp, 0x44
mov eax, dword [0x49c00c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
cmp dword [esi + 0x3e8], 0
jle 0x40ebd3
nop word [eax + eax]
xor edi, edi
cmp byte [esi + 0xc7], 0
jne 0x40ec1a
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
inc edi
cmp edi, 0x64
jl 0x40ea12
dec dword [esi + 0x3e8]
call fcn.0040a540
mov ecx, eax
test ecx, ecx
je 0x40ec36
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x40ec40
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
add eax, 0x10
mov dword [ebp - 0x4c], eax
mov dword [ebp - 4], 0
lea eax, [ebp - 0x4c]
push dword [esi + 0x3e8]
push 0x487bfc
push eax
call fcn.00409d20
mov eax, dword [ebp - 0x4c]
add esp, 0xc
mov edi, dword [esi + 0x224]
sub edi, 0x10
lea ebx, [eax - 0x10]
cmp ebx, edi
je 0x40eb02
cmp dword [edi + 0xc], 0
jl 0x40eaf3
mov ecx, dword [ebx]
cmp ecx, dword [edi]
jne 0x40eaf3
mov ecx, ebx
call fcn.00409890
mov dword [ebp - 0x50], eax
lea edx, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40eae5
mov edx, dword [edi]
push edi
mov ecx, dword [edx]
mov eax, dword [ecx + 4]
cmp ecx, vtable.ATL::CAtlStringMgr.0
jne 0x40ec47
mov eax, dword [edx + 4]
push 0
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [ebp - 0x50]
add eax, 0x10
mov dword [esi + 0x224], eax
jmp 0x40eb02
mov eax, dword [ebp - 0x50]
add eax, 0x10
mov dword [esi + 0x224], eax
jmp 0x40eb02
push dword [eax - 0xc]
lea ecx, [esi + 0x224]
push eax
call fcn.00409900
mov eax, dword [esi]
mov edx, dword [eax + 0x20]
cmp eax, vtable.CNsMsgBox.0
jne 0x40ec50
cmp byte [esi + 0x5c], 0
je 0x40eb29
push 0
push 0
push 0xf
push dword [esi + 0x54]
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x40eb91
push dword [esi + 0x54]
call dword [sym.imp.USER32.dll_GetDC]
mov edi, eax
lea eax, [ebp - 0x20]
push eax
push dword [esi + 0x54]
call dword [sym.imp.USER32.dll_GetClientRect]
lea ecx, [ebp - 0x48]
call sym.Install_adv.exe_public:_void___thiscall_CNsDC::constructor_void_
mov byte [ebp - 4], 1
lea eax, [ebp - 0x20]
cmp byte [esi + 0x5c], 0
lea ecx, [ebp - 0x48]
je 0x40eb60
push dword [esi + 0x54]
push 1
jmp 0x40eb64
push 0
push 0
push 0
push eax
push edi
call sym.Install_adv.exe_public:_void___thiscall_CNsDC::CreateMemDC_struct_HDC_____struct_tagRECT___bool__bool__struct_HWND____
mov eax, dword [esi]
mov ecx, esi
push dword [ebp - 0x48]
call dword [eax + 0xc]
lea ecx, [ebp - 0x48]
call sym.Install_adv.exe_public:_void___thiscall_CNsDC::Draw_void_
push edi
push dword [esi + 0x54]
call dword [sym.imp.USER32.dll_ReleaseDC]
lea ecx, [ebp - 0x48]
call sym.Install_adv.exe_public:_void___thiscall_CNsDC::destructor_void_
mov dword [ebp - 4], 0xffffffff
or eax, 0xffffffff
lock xadd dword [ebx + 0xc], eax
dec eax
test eax, eax
jg 0x40ebc6
mov ecx, dword [ebx]
push ebx
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x40ec59
mov eax, dword [ecx + 4]
push 0
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [esi + 0x3e8], 0
jg 0x40ea10
mov eax, dword [esi]
mov ecx, esi
push dword [esi + 0x3e4]
call dword [eax + 0x5c]
push 0
push dword [esi + 0x54]
mov dword [esi + 0x68], 1
call dword [sym.imp.USER32.dll_ShowWindow]
push 0
push 0
push 0x200
push dword [esi + 0x54]
mov byte [esi + 0xc7], 1
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0
push dword [esi + 0x54]
call dword [sym.imp.USER32.dll_PostMessageW]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00429d20
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.0040a610
call edx
jmp 0x40ea59
mov ecx, edx
call eax
jmp 0x40eae5
mov ecx, esi
call edx
jmp 0x40eb91
call edx
jmp 0x40ebc6