Function at 0x40c070
Capabilities:
Hide graphical window
Inspect load icon resource
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4bc448
mov eax, dword fs:[0]
push eax
sub esp, 0x50
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4f36a0]
xor eax, esp
push eax
lea eax, [esp + 0x64]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x74]
xor edi, edi
mov dword [esp + 0x6c], edi
mov eax, dword [0x4fd4e4]
push 0x85
push eax
call dword [sym.imp.USER32.dll_LoadIconW]
mov ecx, dword [ebp + 4]
push eax
push 1
push 0x80
push ecx
mov dword [esp + 0x2c], eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [ebp + 0x71c]
xor eax, eax
add edx, 0x414
lea esi, [esp + 0x30]
mov byte [ebp + 0x6f9], 1
mov dword [ebp + 0x6a8], 2
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
call fcn.00429cb0
xor eax, eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x20]
mov edi, esi
mov ecx, ebp
call fcn.0040ba50
mov eax, dword [ebp + 0x71c]
mov edx, dword [eax + 0x41c]
sub edx, dword [eax + 0x414]
test edx, edx
jle 0x40c16d
mov ecx, dword [eax + 0x420]
sub ecx, dword [eax + 0x418]
test ecx, ecx
jle 0x40c16d
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
mov ebx, dword [sym.imp.USER32.dll_MoveWindow]
push 1
sub edx, eax
push edx
mov edx, dword [esp + 0x30]
sub edx, ecx
push edx
push eax
mov eax, dword [ebp + 4]
push ecx
push eax
call ebx
jmp 0x40c173
mov ebx, dword [sym.imp.USER32.dll_MoveWindow]
mov ecx, dword [ebp + 4]
push 0
push ecx
mov byte [ebp + 0x6fa], 0
call dword [sym.imp.USER32.dll_GetSystemMenu]
test eax, eax
je 0x40c198
push 0
push 0xf060
push eax
call dword [sym.imp.USER32.dll_EnableMenuItem]
mov edx, dword [ebp + 0x98]
push 1
push edx
call dword [sym.imp.USER32.dll_EnableWindow]
mov eax, dword [ebp + 4]
push 0x4dbdc0
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov edx, dword [ebp + 4]
lea ecx, [esp + 0x40]
push ecx
push edx
mov dword [ebp + 0x6e4], 2
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
push 1
sub ecx, eax
push ecx
mov ecx, dword [esp + 0x48]
sub edx, ecx
push edx
push eax
mov eax, dword [ebp + 4]
push ecx
push eax
call ebx
mov eax, dword [ebp + 0x71c]
mov edx, dword [eax + 0x420]
mov ecx, dword [eax + 0x41c]
sub edx, dword [eax + 0x418]
sub ecx, dword [eax + 0x414]
push 1
push edx
push ecx
mov ecx, dword [ebp + 0x5c]
push 0
push 0
push ecx
call ebx
mov edx, dword [ebp + 0x6d4]
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
push 5
push edx
call esi
mov eax, dword [ebp + 0x6cc]
push 0
push eax
call esi
mov edx, dword [ebp + 0x6d4]
lea ecx, [esp + 0x50]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x5c]
mov edx, 0x4dbeb0
mov dword [ebp + 0xbc], eax
mov ecx, dword [0x4f9f84]
shr edx, 0x10
mov dword [esp + 0x24], 0x19
mov dword [esp + 0x74], ecx
test edx, edx
jne 0x40c285
mov eax, 0x4dbeb0
movzx eax, ax
push eax
lea ecx, [esp + 0x78]
call fcn.004037f0
jmp 0x40c2bb
push 0x4dbeb0
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
test esi, esi
je 0x40c2bb
mov ecx, esi
lea edx, [esp + 0x74]
call fcn.004034c0
test eax, eax
je 0x40c2bb
mov edx, dword [esp + 0x74]
lea ecx, [esi + esi]
push ecx
push 0x4dbeb0
push edx
call fcn.0049c670
add esp, 0xc
lea esi, [ebp + 0x58]
lea eax, [esi + 0x2c]
lea edi, [esp + 0x74]
mov byte [esp + 0x6c], 1
call fcn.0040a460
mov edi, dword [esp + 0x74]
push edi
lea eax, [esi + 0x14c]
push 0x1c0
push eax
mov dword [esi + 0x148], 1
call fcn.00498b64
lea ecx, [edi - 0xc]
add esp, 0xc
cmp ecx, 0x4f9f74
je 0x40c314
add edi, 0xfffffff4
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40c314
push edi
call fcn.00498b08
add esp, 4
mov edx, dword [esp + 0x24]
mov eax, 0x19
mov dword [ebp + 0xc4], eax
mov dword [ebp + 0xc8], edx
mov eax, 0x1d6
mov dword [ebp + 0xcc], eax
mov eax, 0x32
mov dword [ebp + 0xd0], eax
xor eax, eax
mov dword [esi + 0x7c], eax
xor edx, edx
xor ecx, ecx
mov dword [esi + 0x80], ecx
mov dword [esi + 0x84], edx
xor edi, edi
mov dword [esi + 0x88], edi
mov eax, dword [esi + 0x80]
mov ecx, dword [esi + 0x7c]
push 1
mov edx, edi
sub edx, eax
push edx
mov edx, dword [esi + 0x84]
sub edx, ecx
push edx
push eax
mov eax, dword [esi + 0x3c]
push ecx
push eax
call ebx
lea eax, [esp + 0x20]
mov dword [esp + 0x20], 0x186
mov dword [esp + 0x24], 0x12c
mov dword [esp + 0x28], 0x1c2
mov dword [esp + 0x2c], 0x145
call fcn.00429510
mov byte [ebp + 0x17c], 0
mov ecx, dword [esi + 0x9c]
push edi
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
mov edx, dword [0x4f9f84]
mov dword [esp + 0x18], edx
push 0x4dbe10
push 0x4dbe10
mov byte [esp + 0x74], 2
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
lea esi, [esp + 0x1c]
call fcn.00403650
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0x4dbe60
call ebx
test eax, eax
je 0x40c406
mov esi, eax
mov edx, 0x4dbe60
lea eax, [esp + 0x18]
call fcn.00403750
lea eax, [ebp + 0x130]
lea edi, [esp + 0x18]
call fcn.0040a460
mov eax, dword [ebp + 0x6cc]
push 1
push 0
push 0
push 0
push 0
push eax
mov byte [ebp + 0x180], 1
mov byte [ebp + 0x182], 0
mov byte [ebp + 0x181], 0
mov byte [ebp + 0x17d], 0
call dword [sym.imp.USER32.dll_MoveWindow]
mov esi, dword [0x4f9f84]
mov ecx, 0x4dbec0
shr ecx, 0x10
mov dword [esp + 0x74], esi
test ecx, ecx
jne 0x40c520
mov edx, 0x4dbec0
movzx eax, dx
push eax
lea ecx, [esp + 0x78]
call fcn.004037f0
mov esi, dword [esp + 0x74]
mov edx, dword [ebp + 0x98]
push esi
push edx
call dword [sym.imp.USER32.dll_SetWindowTextW]
lea eax, [esi - 0xc]
cmp eax, 0x4f9f74
je 0x40c4a7
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40c4a7
push esi
call fcn.00498b08
add esp, 4
mov ecx, dword [ebp + 0x6d4]
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
push 5
push ecx
mov byte [ebp + 0x183], 1
call esi
mov edx, dword [ebp + 0x5c]
push 1
push 0
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [ebp + 4]
push 0
push eax
call esi
mov eax, dword [esp + 0x18]
lea ecx, [eax - 0xc]
cmp ecx, 0x4f9f74
je 0x40c4fb
lea esi, [eax - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40c4fb
push esi
call fcn.00498b08
add esp, 4
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x40c50a
push eax
call dword [sym.imp.USER32.dll_DestroyIcon]
mov ecx, dword [esp + 0x64]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 4
push 0x4dbec0
call ebx
mov edi, eax
test edi, edi
je 0x40c478
mov ecx, edi
lea edx, [esp + 0x74]
call fcn.004034c0
test eax, eax
je 0x40c474
mov esi, dword [esp + 0x74]
lea ecx, [edi + edi]
push ecx
push 0x4dbec0
push esi
call fcn.0049c670
add esp, 0xc
jmp 0x40c478