Function at 0x458a10
Capabilities:
Hide graphical window

Disassembly:
push ebx
push esi
push edi
push ebp
push eax
mov eax, 4
add esp, 0xfffff004
push eax
dec eax
jne 0x458a1a
mov eax, dword [esp + 0x4000]
add esp, 0xffffffcc
mov edi, dword [0x48d1dc]
mov byte [0x49be2e], 0
mov byte [0x49be2c], 1
xor eax, eax
mov dword [0x49be10], eax
mov dword [0x49be14], eax
xor eax, eax
mov dword [0x49bdf8], eax
push 0x7f02
push 0
call sub.user32.dll_LoadCursorA
push eax
call sub.user32.dll_SetCursor
mov eax, dword [0x48d550]
cmp dword [eax + 0x17ec], 0
jne 0x458ab3
mov eax, dword [0x48d550]
mov dword [eax + 0x17e4], 0xb1
mov eax, dword [0x48d550]
mov dword [eax + 0x17ec], 0x270
mov eax, dword [0x48d550]
mov dword [eax + 0x17e8], 0x49
mov eax, dword [0x48d550]
mov dword [eax + 0x17f0], 0x20e
xor eax, eax
mov dword [0x49be20], eax
mov word [0x49be18], 0x50
call fcn.00458638
call fcn.00458964
push 0
mov eax, dword [0x48e700]
push eax
push 0
mov eax, dword [0x48d858]
mov eax, dword [eax]
push eax
mov eax, dword [0x48d550]
mov eax, dword [eax + 0x17f0]
mov edx, dword [0x48d550]
sub eax, dword [edx + 0x17e8]
push eax
mov eax, dword [0x48d550]
mov eax, dword [eax + 0x17ec]
mov edx, dword [0x48d550]
sub eax, dword [edx + 0x17e4]
push eax
mov eax, dword [0x48d550]
mov eax, dword [eax + 0x17e8]
push eax
mov eax, dword [0x48d550]
mov eax, dword [eax + 0x17e4]
push eax
push 0x84ec00c5
mov eax, dword [0x48da44]
push eax
mov eax, dword [0x48da08]
push eax
push 0x10100
call sub.user32.dll_CreateWindowExA
mov dword [edi], eax
mov eax, dword [0x48d90c]
mov byte [eax], 1
mov eax, dword [0x48dac4]
mov eax, dword [eax]
push eax
push 1
push 0x80
mov eax, dword [edi]
push eax
call sub.user32.dll_SendMessageA
cmp byte [0x49bdf4], 0
je 0x458c8f
cmp byte [0x49bdf5], 0
je 0x458b83
mov dword [esp + 0xc], 0x50010800
jmp 0x458b8b
mov dword [esp + 0xc], 0x50010000
push 0
mov eax, dword [0x48e700]
push eax
push 2
mov eax, dword [edi]
push eax
push 0x13
push 0x4b
push 0xa
push 0x5a
mov eax, dword [esp + 0x2c]
push eax
push 0x459364
mov eax, dword [0x48d704]
mov eax, dword [eax + 4]
push eax
push 0x200
call sub.user32.dll_CreateWindowExA
push 0
mov eax, dword [0x48e700]
push eax
push 2
mov eax, dword [edi]
push eax
push 0xf
push 0x50
push 0xd
push 8
push 0x50000000
mov ax, 0x236
call fcn.0040bc04
push eax
mov eax, dword [0x48d704]
mov eax, dword [eax + 8]
push eax
push 0
call sub.user32.dll_CreateWindowExA
mov eax, dword [0x48da44]
mov byte [eax + 1], 0
mov esi, 1
mov ebx, 0x49bdfc
mov eax, esi
add eax, eax
add al, 0x3a
mov edx, dword [0x48da44]
mov byte [edx], al
cmp esi, 3
jne 0x458c2c
mov ax, 6
call fcn.0040bc04
mov edx, eax
mov eax, dword [0x48da44]
call fcn.00405c48
push 0
mov eax, dword [0x48e700]
push eax
push 1
mov eax, dword [edi]
push eax
push 0x13
cmp esi, 3
sete al
and eax, 0x7f
imul eax, eax, 0x32
add eax, 0x14
push eax
push 0xa
mov eax, esi
dec eax
imul eax, eax, 0x16
add eax, 0xaa
push eax
push 0x50014000
mov eax, dword [0x48da44]
push eax
mov eax, dword [0x48d704]
mov eax, dword [eax]
push eax
push 0
call sub.user32.dll_CreateWindowExA
mov dword [ebx], eax
inc esi
add ebx, 4
cmp esi, 4
jne 0x458c04
call fcn.00458804
mov dword [0x49be28], 0x41
jmp 0x458c99
mov dword [0x49be28], 0x1e
mov ebp, dword [0x49bdf0]
test ebp, ebp
jle 0x459084
mov esi, 1
mov eax, esi
dec eax
mov ebx, eax
shl ebx, 6
add ebx, dword [0x49bde8]
cmp byte [ebx + 0x33], 0x24
ja 0x45907c
mov al, byte [ebx + 0x33]
cmp al, 0x23
je 0x458ccf
cmp al, 0x24
jne 0x458d31
push 0
mov eax, dword [0x48e700]
push eax
push 1
mov eax, dword [edi]
push eax
push 0x15
movsx eax, word [0x49be1a]
movsx edx, word [0x49be1c]
add eax, edx
push eax
mov eax, dword [0x49be28]
sub eax, 2
push eax
push 8
push 0x50000000
push 0
mov eax, dword [0x48d704]
mov eax, dword [eax + 8]
push eax
push 0
call sub.user32.dll_CreateWindowExA
add dword [0x49be28], 0x13
cmp byte [ebx + 0x33], 0x23
jne 0x45907c
lea edx, [ebx + 8]
mov eax, dword [0x48da44]
call fcn.00405c48
jmp 0x458d96
mov eax, dword [0x48d550]
cmp byte [eax + 0x18be], 0
jne 0x458d64
mov eax, dword [0x48d930]
mov eax, dword [eax]
mov edx, dword [0x48d524]
mov eax, dword [edx + eax*4 - 4]
cmp dword [eax + 0x4c], 0
je 0x458d80
mov eax, dword [0x48d550]
cmp byte [eax + 0x18e5], 0
je 0x458d80
push dword [ebx + 4]
push dword [ebx]
xor edx, edx
xor eax, eax
call fcn.0040fe88
mov edx, eax
mov eax, dword [0x48da44]
call fcn.00405c48
jmp 0x458d96
push dword [ebx + 4]
push dword [ebx]
call fcn.004123c0
mov edx, eax
mov eax, dword [0x48da44]
call fcn.00405c48
push 0
mov eax, dword [0x48e700]
push eax
mov eax, esi
neg eax
sub eax, 2
push eax
mov eax, dword [edi]
push eax
push 0x10
cmp byte [ebx + 0x33], 0x23
setne al
and eax, 0x7f
movsx edx, word [0x49be18]
sub edx, 8
imul edx
movsx edx, word [0x49be1a]
movsx ecx, word [0x49be1c]
add edx, ecx
sub edx, 8
cmp byte [ebx + 0x33], 0x23
sete cl
and ecx, 0x7f
imul edx, ecx
add eax, edx
push eax
mov eax, dword [0x49be28]
push eax
push 8
push 0x50000880
mov eax, dword [0x48da44]
push eax
mov eax, dword [0x48d704]
mov eax, dword [eax + 4]
push eax
push 0
call sub.user32.dll_CreateWindowExA
cmp byte [ebx + 0x33], 0x23
jae 0x459075
push 0
mov edx, dword [0x48e700]
push edx
push 0
mov edx, dword [edi]
push edx
push 0x13
movsx edx, word [0x49be1a]
movsx eax, word [0x49be18]
sub edx, eax
sub edx, 5
push edx
mov edx, dword [0x49be28]
push edx
push eax
push 0x50000880
lea eax, [ebx + 8]
push eax
test esi, esi
sete al
and eax, 0x7f
add eax, 0x81
mov edx, dword [0x48d704]
mov eax, dword [edx + eax*4 - 0x200]
push eax
push 0
call sub.user32.dll_CreateWindowExA
mov al, byte [ebx + 0x33]
cmp al, 0xe
jb 0x458e73
cmp al, 0x19
jbe 0x458e77
xor eax, eax
jmp 0x458e79
mov al, 1
mov byte [esp + 0x18], al
cmp byte [ebx + 0x34], 0
jne 0x458ea8
mov dword [esp + 0xc], 0x50010080
mov al, byte [ebx + 0x33]
cmp al, 2
je 0x458e9e
cmp al, 4
je 0x458e9e
cmp al, 6
je 0x458e9e
cmp al, 8
jne 0x458eb0
or dword [esp + 0xc], 0x2000
jmp 0x458eb0
mov dword [esp + 0xc], 0x50010880
push 0
mov eax, dword [0x48e700]
push eax
lea eax, [esi + 2]
push eax
mov eax, dword [edi]
push eax
push 0x14
movsx eax, word [0x49be1c]
xor edx, edx
mov dl, byte [esp + 0x2c]
inc edx
mov ecx, edx
cdq
idiv ecx
push eax
mov eax, dword [0x49be28]
sub eax, 3
push eax
movsx eax, word [0x49be1a]
push eax
mov eax, dword [esp + 0x2c]
push eax
push 0
mov eax, dword [0x48d704]
mov eax, dword [eax + 4]
push eax
push 0x200
call sub.user32.dll_CreateWindowExA
mov dword [esp + 4], eax
cmp dword [0x49bdf8], 0
jne 0x458f16
mov eax, dword [esp + 4]
mov dword [0x49bdf8], eax
cmp dword [esp + 4], 0
jne 0x458f4f
mov eax, dword [edi]
push eax
call sub.user32.dll_DestroyWindow
push 0x7f00
push 0
call sub.user32.dll_LoadCursorA
push eax
call sub.user32.dll_SetCursor
mov ax, 0x13e
call fcn.0040bc04
mov edx, 1
call fcn.00411d74
jmp 0x459354
cmp byte [esp + 0x18], 0
je 0x458fbf
push 0
mov edx, dword [0x48e700]
push edx
lea edx, [esi + 2]
add edx, dword [0x49bdf0]
push edx
mov edx, dword [edi]
push edx
push 0x14
movsx edx, word [0x49be1c]
sar edx, 1
jns 0x458f7c
adc edx, 0
push edx
mov edx, dword [0x49be28]
sub edx, 3
push edx
movsx edx, word [0x49be1a]
movsx eax, word [0x49be1c]
add edx, eax
sar eax, 1
jns 0x458f9e
adc eax, 0
sub edx, eax
push edx
mov eax, dword [esp + 0x2c]
push eax
push 0
mov eax, dword [0x48d704]
mov eax, dword [eax + 4]
push eax
push 0x200
call sub.user32.dll_CreateWindowExA
mov dword [esp + 8], eax
mov al, byte [ebx + 0x33]
cmp al, 0x1c
jb 0x458fca
cmp al, 0x1f
jbe 0x458fd3
lea edx, [ebx + 0x37]
mov dword [esp + 0x14], edx
jmp 0x458fda
mov edx, dword [ebx + 0x37]
mov dword [esp + 0x14], edx
xor edx, edx
mov dl, al
mov ecx, dword [0x48da4c]
movzx edx, byte [ecx + edx]
mov dword [esp + 0x10], edx
cmp al, 0x1e
jne 0x458ff7
mov eax, dword [ebx + 0x3b]
mov dword [esp + 0x10], eax
mov al, byte [ebx + 0x35]
push eax
mov al, byte [ebx + 0x36]
push eax
lea eax, [ebx + 0x33]
push eax
lea edx, [esp + 0x26]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
call fcn.00417fc4
test al, al
je 0x459027
lea eax, [esp + 0x1a]
push eax
mov eax, dword [esp + 8]
push eax
call sub.user32.dll_SetWindowTextA
cmp byte [esp + 0x18], 0
je 0x459075
mov al, byte [ebx + 0x33]
inc eax
mov byte [esp + 0x19], al
mov al, byte [ebx + 0x35]
push eax
mov al, byte [ebx + 0x36]
push eax
lea eax, [esp + 0x21]
push eax
xor eax, eax
mov al, byte [ebx + 0x33]
mov edx, dword [0x48da4c]
xor ecx, ecx
mov cl, byte [edx + eax]
mov edx, dword [0x48da44]
lea eax, [ebx + 0x37]
call fcn.00417fc4
test al, al
je 0x459075
mov eax, dword [0x48da44]
push eax
mov eax, dword [esp + 0xc]
push eax
call sub.user32.dll_SetWindowTextA
add dword [0x49be28], 0x13
inc esi
dec ebp
jne 0x458cac
push 0
push 0x458614
mov eax, dword [edi]
push eax
call sub.user32.dll_EnumChildWindows
call fcn.004586e4
xor eax, eax
mov al, byte [0x49bdf4]
imul ebx, eax, 0x23
add ebx, 5
push 0
mov eax, dword [0x48e700]
push eax
push 1
mov eax, dword [edi]
push eax
push 0x14
movsx eax, word [0x49be18]
sub eax, 8
push eax
push ebx
push 8
push 0x50000001
mov eax, dword [0x48d5e0]
push eax
mov eax, dword [0x48d704]
mov eax, dword [eax + 8]
push eax
push 0
call sub.user32.dll_CreateWindowExA
push 0
mov eax, dword [0x48e700]
push eax
push 1
mov eax, dword [edi]
push eax
push 0x14
movsx eax, word [0x49be1a]
movsx edx, word [0x49be18]
sub eax, edx
push eax
push ebx
movsx eax, word [0x49be18]
push eax
push 0x50000001
mov ax, 0x70
call fcn.0040bc04
push eax
mov eax, dword [0x48d704]
mov eax, dword [eax + 8]
push eax
push 0
call sub.user32.dll_CreateWindowExA
push 0
mov eax, dword [0x48e700]
push eax
push 1
mov eax, dword [edi]
push eax
push 0x14
movsx eax, word [0x49be1c]
push eax
push ebx
movsx eax, word [0x49be1a]
push eax
push 0x50000001
mov ax, 0x27a
call fcn.0040bc04
push eax
mov eax, dword [0x48d704]
mov eax, dword [eax + 8]
push eax
push 0
call sub.user32.dll_CreateWindowExA
mov eax, dword [edi]
mov dl, 1
call fcn.0041552c
push 0
mov eax, dword [edi]
push eax
call sub.user32.dll_GetSystemMenu
mov ebx, eax
push 0
push 0x46
mov eax, dword [0x48da44]
push eax
push 0x46
mov eax, dword [0x48d520]
mov eax, dword [eax]
push eax
call sub.user32.dll_GetMenuStringA
mov eax, dword [0x48da44]
mov dl, 9
call fcn.00405cf8
mov byte [eax], 0
mov eax, dword [0x48da44]
push eax
push 0x3e9
push 0x400
push 6
push ebx
call sub.user32.dll_InsertMenuA
mov eax, dword [edi]
mov edx, dword [0x48d2e8]
mov dword [edx], eax
push 5
mov eax, dword [edi]
push eax
call sub.user32.dll_ShowWindow
push 0
mov eax, dword [0x48d858]
mov eax, dword [eax]
push eax
call sub.user32.dll_EnableWindow
mov byte [0x49be2c], 0
jmp 0x45931c
cmp dword [esp + 0x401f], 0x100
jne 0x459299
cmp dword [esp + 0x4023], 0x1b
jne 0x459211
push 0
push 0
push 0x10
mov eax, dword [edi]
push eax
call sub.user32.dll_SendMessageA
cmp dword [esp + 0x4023], 0xd
jne 0x459299
push 2
mov eax, dword [edi]
push eax
call sub.user32.dll_GetDlgItem
cmp eax, dword [0x49bdf8]
jne 0x459237
call fcn.004588dc
jmp 0x45931c
mov eax, dword [0x49bdf8]
cmp eax, dword [0x49bdfc]
je 0x459275
mov eax, dword [0x49bdf8]
cmp eax, dword [0x49be00]
je 0x459275
mov eax, dword [0x49bdf8]
cmp eax, dword [0x49be04]
je 0x459275
call fcn.004581a8
test al, al
je 0x45931c
call fcn.00458218
jmp 0x45931c
mov eax, dword [0x49bdf8]
push eax
xor edx, edx
mov ax, 1
call fcn.00405a7c
push eax
push 0x111
mov eax, dword [edi]
push eax
call sub.user32.dll_SendMessageA
jmp 0x45931c
lea eax, [esp + 0x401b]
push eax
mov eax, dword [edi]
push eax
call sub.user32.dll_IsDialogMessageA
test eax, eax
jne 0x4592c7
lea eax, [esp + 0x401b]
push eax
call sub.user32.dll_TranslateMessage
lea eax, [esp + 0x401b]
push eax
call sub.user32.dll_DispatchMessageA
cmp dword [esp + 0x401f], 0x100
jne 0x4592e3
cmp dword [esp + 0x4023], 9
jne 0x4592e3
call fcn.004587a0
cmp byte [0x49be2c], 0
jbe 0x45931c
push 0xffffffffffffffff
mov eax, dword [0x48d858]
mov eax, dword [eax]
push eax
call sub.user32.dll_EnableWindow
mov eax, dword [0x48d858]
mov eax, dword [eax]
mov edx, dword [0x48d2e8]
mov dword [edx], eax
mov eax, dword [edi]
push eax
call sub.user32.dll_DestroyWindow
mov eax, dword [0x48d90c]
mov byte [eax], 0
jmp 0x459337
push 0
push 0
push 0
lea eax, [esp + 0x4027]
push eax
call sub.user32.dll_GetMessageA
test eax, eax
jne 0x4591e8
push 0x7f00
push 0
call sub.user32.dll_LoadCursorA
push eax
call sub.user32.dll_SetCursor
cmp byte [0x49be2c], 1
sete byte [esp]
mov al, byte [esp]
add esp, 0x4038
pop ebp
pop edi
pop esi
pop ebx
ret