Function at 0x402c60
Capabilities:
Hide graphical window

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x44cd4b
push eax
mov eax, dword [0x45384c]
mov dword fs:[0], esp
sub esp, 0x64
push ebx
xor ebx, ebx
push ebp
push esi
cmp eax, ebx
push edi
jne 0x402c88
int3
mov eax, dword [0x45384c]
mov edi, dword [esp + 0x84]
push eax
push edi
call dword [0x453474]
lea ecx, [esp + 0x14]
push 4
push ecx
push edi
call dword [0x453470]
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x402cb9
cmp eax, 0x100000
jb 0x402cbe
int3
add eax, 4
push eax
call dword [sym.imp.MSVCRT.dll_malloc]
mov esi, eax
add esp, 4
cmp esi, ebx
mov dword [esp + 0x84], esi
jne 0x402cd9
int3
mov edx, dword [0x453848]
push edx
push edi
push esi
call dword [0x45346c]
push edi
call dword [0x453468]
mov eax, dword [esi + 0xe]
mov edi, dword [esi + 0x12]
mov ebp, dword [esi + 0x16]
add esi, 0xe
cmp eax, 0x28
jne 0x402d1a
cmp edi, 0x32
jl 0x402d1a
cmp edi, 0x258
jg 0x402d1a
cmp ebp, 0x32
jl 0x402d1a
cmp ebp, 0x190
jle 0x402d1b
int3
push 0x10
mov dword [esp + 0x14], ebx
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebx
mov dword [esp + 0x7c], ebx
je 0x402d3f
mov ecx, eax
call dword [0x45345c]
jmp 0x402d41
xor eax, eax
mov dword [0x453840], eax
xor eax, eax
mov ax, word [esi + 0xe]
push ebx
push 1
lea ecx, [esp + 0x18]
push eax
push ecx
mov dword [esp + 0x8c], 0xffffffff
call dword [0x45343c]
cmp dword [esp + 0x10], ebx
jne 0x402d6d
int3
mov edx, dword [esp + 0x10]
mov ecx, dword [0x453840]
push edx
push ebp
push edi
call dword [0x453464]
mov ecx, dword [0x453840]
push ebx
push ebx
push esi
call dword [0x453460]
mov eax, dword [esp + 0x84]
push eax
call dword [sym.imp.MSVCRT.dll_free]
mov eax, dword [0x4539d8]
add esp, 4
mov dword [esp + 0x44], 0x30
mov dword [esp + 0x48], 0x80b
push 0x64
push eax
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x60], eax
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x54], 0x402b00
call dword [sym.imp.USER32.dll_LoadIconA]
mov dword [esp + 0x5c], eax
mov al, 0x6e
mov byte [esp + 0x1d], al
mov byte [esp + 0x20], al
mov eax, dword [0x4539d4]
lea ecx, [esp + 0x1c]
cmp eax, 0x400
mov byte [esp + 0x1c], 0x72
mov byte [esp + 0x1e], 0x64
mov byte [esp + 0x1f], 0x77
mov byte [esp + 0x21], 0x64
mov byte [esp + 0x22], 0x36
mov byte [esp + 0x23], 0x35
mov byte [esp + 0x24], 0x37
mov byte [esp + 0x25], 0
mov dword [esp + 0x6c], ecx
jl 0x402e4f
mov edx, dword [0x4539d8]
push ebx
push 0x10
push 0x10
push 1
push 0x64
push edx
call dword [sym.imp.USER32.dll_LoadImageA]
mov dword [esp + 0x70], eax
lea eax, [esp + 0x44]
push eax
call dword [sym.imp.USER32.dll_RegisterClassExA]
jmp 0x402e5a
lea ecx, [esp + 0x48]
push ecx
call dword [sym.imp.USER32.dll_RegisterClassA]
test ax, ax
je 0x402fa2
mov ebx, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x3d
call ebx
mov edx, 0xffffffe0
mov esi, eax
sub edx, edi
push 0x3e
add esi, edx
call ebx
mov edx, dword [0x4539d8]
mov ecx, 0xffffffe0
push 0
push edx
sub ecx, ebp
push 0
push 0
add eax, ecx
push ebp
push edi
push eax
push esi
push 0x80000000
lea eax, [esp + 0x40]
push 0x453810
push eax
push 8
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov edi, eax
test edi, edi
je 0x402fa2
mov eax, dword [0x4539e8]
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
test eax, eax
je 0x402edc
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x402edc
mov ecx, dword [0x4539e8]
push 0
push ecx
call esi
push 5
push edi
call esi
push edi
call dword [sym.imp.USER32.dll_UpdateWindow]
mov ebp, dword [sym.imp.WINMM.dll_timeGetTime]
call ebp
lea esi, [eax + 0x9c4]
mov dword [esp + 0x84], esi
call ebp
cmp eax, esi
jae 0x402f76
mov ebx, dword [sym.imp.USER32.dll_PeekMessageA]
xor esi, esi
lea edx, [esp + 0x28]
push esi
push esi
push esi
push esi
push edx
call ebx
test eax, eax
je 0x402f63
push 0
push 0
lea eax, [esp + 0x30]
push 0
push eax
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
je 0x402f47
lea ecx, [esp + 0x28]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [esp + 0x28]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x402f4c
mov esi, 1
push 0
push 0
push 0
lea eax, [esp + 0x34]
push 0
push eax
call ebx
test eax, eax
jne 0x402f1a
test esi, esi
jne 0x402f76
push 0x14
call dword [sym.imp.KERNEL32.dll_Sleep]
call ebp
cmp eax, dword [esp + 0x84]
jb 0x402f09
push edi
call dword [sym.imp.USER32.dll_DestroyWindow]
mov esi, dword [0x453840]
test esi, esi
je 0x402f98
mov ecx, esi
call dword [0x453444]
push esi
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [0x453840], 0
mov ecx, dword [esp + 0x74]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x70
ret