Function at 0x4018c5
Capabilities:
Create thread
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
dec eax
dec eax
je 0x40190c
sub eax, 0x10e
je 0x4018fd
sub eax, 0x26
je 0x4018f3
dec eax
dec eax
je 0x4018f3
sub eax, 0x2c9
je 0x4018e7
xor eax, eax
jmp 0x401917
mov ecx, dword [0x439234]
pop ebp
jmp 0x401aff
push 0
call dword [sym.imp.GDI32.dll_GetStockObject]
jmp 0x401917
push esi
mov esi, dword [0x439234]
call fcn.0040191b
pop esi
jmp 0x401917
push 1
call dword [sym.imp.USER32.dll_PostQuitMessage]
xor eax, eax
inc eax
pop ebp
ret 4
push 0x18
mov eax, 0x42831f
call fcn.00423fef
mov ebx, ecx
mov esi, dword [ebp + 8]
mov eax, dword [esi + 4]
mov dword [ebx + 0x58], eax
xor edi, edi
mov dword [ebp - 4], edi
lea eax, [ebp + 0xb]
push eax
call fcn.00406358
mov byte [ebp - 4], 1
mov eax, dword [ebx + 0x58]
dec eax
cmp eax, 7
ja case.default.0x401b35
jmp dword [eax*4 + 0x401dbb]
lea eax, [ebx + 0x14]
call fcn.00401011
push 0x78
push ebx
call fcn.00401875
push ebx
call fcn.00401ddb
test al, al
je 0x401b73
cmp byte [ebx + 0x60], 0
je 0x401b66
push 5
push dword [ebx]
call dword [sym.imp.USER32.dll_ShowWindow]
push edi
push edi
push ebx
push 0x401360
jmp 0x401cd2
cmp byte [ebx + 0x61], 0
je 0x401bfd
call fcn.00405afa
test al, al
je 0x401bb8
push str.A_reboot_is_pending__client_mode_
lea esi, [ebx + 0x3c]
call fcn.00406a13
pop ecx
push 0
push 0xf003
push 6
push dword [ebx + 0x58]
push ebx
call fcn.00401810
push 5
push dword [ebx]
call dword [sym.imp.USER32.dll_ShowWindow]
mov esi, dword [ebp + 8]
jmp case.default.0x401b35
push edi
push edi
push 2
lea ecx, [ebp - 0x24]
call fcn.0040a360
mov byte [ebp - 4], 2
push 0x20006
lea edi, [ebp - 0x24]
call fcn.0040a5e3
test eax, eax
jne 0x401be3
push str.RebootNeeded
call fcn.0040aa49
push dword [ebx + 0x4c]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x24]
call fcn.0040a400
jmp case.default.0x401b35
cmp byte [ebx + 0x60], 0
je case.default.0x401b35
push dword [ebx + 0x4c]
call dword [sym.imp.USER32.dll_DestroyWindow]
jmp case.default.0x401b35
cmp dword [esi], 3
jne 0x401c2f
push 0x408
lea eax, [ebx + 0x30]
call fcn.004064cc
lea eax, [ebx + 4]
call fcn.00401000
push 2
lea eax, [ebx + 0x30]
call fcn.004064b0
lea eax, [ebx + 0x14]
call fcn.00401000
lea eax, [ebx + 0xc]
call fcn.00401011
cmp byte [ebx + 0x63], 0
je 0x401c56
push 0x7a
jmp 0x401d7c
cmp byte [ebx + 0x62], 0
jne 0x401c63
push 0x7b
jmp 0x401d7c
push 0x79
jmp 0x401d7c
push 0x408
lea eax, [ebx + 0x30]
call fcn.004064b0
lea eax, [ebx + 0xc]
call fcn.00401000
lea eax, [ebx + 4]
call fcn.00401011
push 0x7c
jmp 0x401d7c
lea eax, [ebx + 0x30]
push 0x408
call fcn.004064cc
push 0x3ea
lea eax, [ebx + 0x30]
call fcn.004064cc
push 2
lea eax, [ebx + 0x30]
call fcn.004064cc
lea eax, [ebx + 4]
call fcn.00401000
lea eax, [ebx + 0x14]
call fcn.00401011
push 0x7d
push ebx
call fcn.00401875
push edi
push edi
push ebx
push 0x4013af
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebx + 0x50], eax
jmp case.default.0x401b35
lea edi, [ebx + 0x30]
call fcn.004064e8
lea eax, [ebx + 0x14]
call fcn.00401000
lea eax, [ebx + 0x20]
call fcn.00401011
push 0x7f
jmp 0x401d7c
lea edi, [ebx + 0x30]
call fcn.004064e8
lea eax, [ebx + 0x14]
call fcn.00401000
lea eax, [ebx + 0x20]
call fcn.00401011
push 0x7e
jmp 0x401d7c
lea eax, [ebx + 0xc]
call fcn.00401000
lea edi, [ebx + 0x30]
call fcn.004064e8
lea eax, [ebx + 0x14]
call fcn.00401000
lea eax, [ebx + 0x20]
call fcn.00401011
push 0x84
jmp 0x401d7c
lea edi, [ebx + 0x30]
call fcn.004064e8
lea eax, [ebx + 0xc]
call fcn.00401000
lea eax, [ebx + 4]
call fcn.00401011
lea eax, [ebx + 0x14]
call fcn.00401000
mov edx, dword [esi + 0xc]
lea edi, [ebx + 0x28]
push edi
mov ecx, dword [esi + 8]
call fcn.0040664c
mov eax, edi
call fcn.00401011
push 0x80
push ebx
call fcn.00401875
mov byte [ebp - 4], 0
call fcn.00406335
or dword [ebp - 4], 0xffffffff
jmp 0x401d9a
mov dword [ebp + 8], esi
or dword [ebp - 4], 0xffffffff
lea ecx, [esi + 0xc]
call fcn.00406432
push esi
call fcn.00415d1e
pop ecx
xor eax, eax
inc eax
call fcn.00424094
ret 4