Function at 0x406b40
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ebx
push esi
push edi
mov eax, 0x406ad8
call fcn.004041fc
mov ebx, 0x409514
mov esi, 0x4094f8
mov edi, 0x409544
xor eax, eax
push ebp
push 0x406fc0
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.00402628
cmp eax, 2
jne 0x406b9d
lea edx, [ebp - 0x10]
mov eax, 1
call fcn.00402688
mov eax, dword [ebp - 0x10]
mov edx, 0x406fd8
call fcn.00403148
je 0x406ba1
xor eax, eax
jmp 0x406ba3
mov al, 1
mov byte [0x409590], al
mov dword [ebx], 0x30
xor eax, eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], 0x4060bc
xor eax, eax
mov dword [ebx + 0xc], eax
xor eax, eax
mov dword [ebx + 0x10], eax
mov eax, dword [ebx + 0x14]
mov dword [ebx + 0x14], eax
push 0x406fdc
mov eax, dword [ebx + 0x14]
push eax
call sub.user32.dll_LoadIconA
mov dword [ebx + 0x18], eax
push 0x406fdc
mov eax, dword [ebx + 0x14]
push eax
call sub.user32.dll_LoadIconA
mov dword [ebx + 0x2c], eax
push 0x7f00
push 0
call sub.user32.dll_LoadCursorA
mov dword [ebx + 0x1c], eax
mov dword [ebx + 0x20], 0x10
xor eax, eax
mov dword [ebx + 0x24], eax
mov eax, 0x406fe8
mov dword [ebx + 0x28], eax
push ebx
call sub.user32.dll_RegisterClassExA
test ax, ax
jne 0x406c21
xor eax, eax
call fcn.00402f00
push 0x80000000
push 0x80000000
push 0x80000000
push 0x80000000
push 0
push 0
mov eax, dword [0x4094c4]
push eax
push 0
mov eax, 0x406fe8
mov ecx, 0xca0000
mov edx, dword [0x4080b8]
call fcn.004043dc
mov dword [0x4094f4], eax
xor eax, eax
mov dword [edi], eax
mov dword [edi + 4], 0x406958
xor eax, eax
mov dword [edi + 8], eax
xor eax, eax
mov dword [edi + 0xc], eax
mov ebx, dword [edi + 0x10]
mov dword [edi + 0x10], ebx
push 0x406fdc
push ebx
call sub.user32.dll_LoadIconA
mov dword [edi + 0x14], eax
push 0x7f00
push 0
call sub.user32.dll_LoadCursorA
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], 0x10
xor eax, eax
mov dword [edi + 0x20], eax
mov eax, 0x406ff4
mov dword [edi + 0x24], eax
push edi
call sub.user32.dll_RegisterClassA
test ax, ax
jne 0x406cb9
xor eax, eax
call fcn.00402f00
push 0x409574
call sub.user32.dll_GetDesktopWindow
push eax
call sub.user32.dll_GetWindowRect
imul ebx, dword [0x40956c], 0x46
mov eax, dword [0x40957c]
sub eax, ebx
sar eax, 1
jns 0x406cde
adc eax, 0
push eax
mov eax, dword [0x409570]
shl eax, 3
mov edx, dword [0x409580]
sub edx, eax
sar edx, 1
jns 0x406cf6
adc edx, 0
push edx
push ebx
mov eax, dword [0x409570]
mov edx, eax
shl eax, 3
sub eax, edx
push eax
mov eax, dword [0x4094f4]
push eax
push 0
mov eax, dword [0x4094c4]
push eax
push 0
mov edx, 0x407004
mov eax, 0x406ff4
mov ecx, 0xc00000
call fcn.004043dc
mov dword [0x409588], eax
mov dword [0x4095c0], 0xffffffff
cmp byte [0x409590], 0
je 0x406d52
mov edx, 0x4095c4
mov eax, 2
call fcn.00402688
jmp 0x406d5e
mov edx, 0x4095c4
xor eax, eax
call fcn.00402688
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
mov eax, dword [0x4095c4]
call fcn.004031fc
push eax
call sub.kernel32.dll_CreateFileA_1
mov dword [0x4095bc], eax
cmp dword [0x4095bc], 0xffffffff
jne 0x406d93
call fcn.004047d4
call fcn.00402628
dec eax
jne 0x406dc9
lea edx, [ebp - 0x14]
mov eax, 1
call fcn.00402688
mov eax, dword [ebp - 0x14]
mov edx, 0x407020
call fcn.00403148
jne 0x406dc9
push 0
mov eax, dword [0x409594]
push eax
call sub.user32.dll_EnableWindow
jmp 0x406f67
mov eax, dword [0x4095bc]
call fcn.0040466c
sub eax, 8
sbb edx, 0
sub eax, 4
sbb edx, 0
push edx
push eax
mov eax, dword [0x4095bc]
call fcn.004046fc
test al, al
jne 0x406df4
call fcn.004047d4
mov edx, 0x40a600
mov ecx, 8
mov eax, dword [0x4095bc]
call fcn.004046cc
test al, al
jne 0x406e11
call fcn.004047d4
cmp dword [0x40a604], 0
jne 0x406e25
cmp dword [0x40a600], 0
jb 0x406e45
jmp 0x406e27
jl 0x406e45
mov eax, dword [0x4095bc]
call fcn.0040466c
cmp edx, dword [0x40a604]
jne 0x406e43
cmp eax, dword [0x40a600]
jae 0x406e6b
jmp 0x406e45
jge 0x406e6b
push 0x10
mov eax, dword [0x4080b8]
push eax
push 0x407024
push 0
call sub.user32.dll_MessageBoxA_1
mov eax, dword [0x4095bc]
push eax
call sub.kernel32.dll_CloseHandle_1
xor eax, eax
call fcn.00402f00
mov eax, dword [0x4095bc]
call fcn.0040466c
sub eax, dword [0x40a600]
sbb edx, dword [0x40a604]
push edx
push eax
mov eax, dword [0x4095bc]
call fcn.004046fc
test al, al
jne 0x406e96
call fcn.004047d4
mov edx, 0x40a608
mov ecx, 6
mov eax, dword [0x4095bc]
call fcn.004046cc
test al, al
jne 0x406eb3
call fcn.004047d4
lea eax, [ebp - 0x18]
mov edx, 0x40a608
mov ecx, 6
call fcn.00403000
mov eax, dword [ebp - 0x18]
mov edx, 0x407058
call fcn.00403148
je 0x406efa
push 0x10
mov eax, dword [0x4080b8]
push eax
push 0x407024
push 0
call sub.user32.dll_MessageBoxA_1
mov eax, dword [0x4095bc]
push eax
call sub.kernel32.dll_CloseHandle_1
xor eax, eax
call fcn.00402f00
mov dword [0x40a5e4], 0
mov dword [0x40a5e8], 0
lea eax, [ebp - 0x1c]
call fcn.00404acc
mov eax, dword [ebp - 0x1c]
call fcn.004031fc
push eax
mov eax, dword [0x409598]
push eax
call sub.user32.dll_SetWindowTextA
lea eax, [ebp - 0x20]
call fcn.00404acc
mov edx, dword [ebp - 0x20]
mov eax, 0x4095d4
call fcn.00402f6c
call fcn.00404b4c
cmp byte [0x40a5ec], 0
jne 0x406f67
push 0
mov eax, dword [0x40959c]
push eax
call sub.user32.dll_ShowWindow
push 0
mov eax, dword [0x4095a4]
push eax
call sub.user32.dll_ShowWindow
push 5
mov eax, dword [0x4094f4]
push eax
call sub.user32.dll_ShowWindow
mov eax, dword [0x4094f4]
push eax
call sub.user32.dll_UpdateWindow
jmp 0x406f8d
push esi
call sub.user32.dll_TranslateMessage
push esi
call sub.user32.dll_DispatchMessageA
push 0
push 0
push 0
push esi
call sub.user32.dll_GetMessageA
test eax, eax
jne 0x406f81
mov eax, dword [esi + 8]
call fcn.00402f00
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x406fc7
lea eax, [ebp - 0x20]
mov edx, 5
call fcn.00402f3c
ret