Function at 0x4018e7
Capabilities:
Create thread
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
dec eax
dec eax
je 0x40192e
sub eax, 0x10e
je 0x40191f
sub eax, 0x26
je 0x401915
dec eax
dec eax
je 0x401915
sub eax, 0x2c9
je 0x401909
xor eax, eax
jmp 0x401939
mov ecx, dword [0x439234]
pop ebp
jmp 0x401b21
push 0
call dword [sym.imp.GDI32.dll_GetStockObject]
jmp 0x401939
push esi
mov esi, dword [0x439234]
call fcn.0040193d
pop esi
jmp 0x401939
push 1
call dword [sym.imp.USER32.dll_PostQuitMessage]
xor eax, eax
inc eax
pop ebp
ret 4
push 0x18
mov eax, 0x428342
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.0040637e
mov byte [ebp - 4], 1
mov eax, dword [ebx + 0x58]
dec eax
cmp eax, 7
ja case.default.0x401b57
jmp dword [eax*4 + 0x401ddd]
lea eax, [ebx + 0x14]
call fcn.00401011
push 0x78
push ebx
call fcn.00401897
push ebx
call fcn.00401dfd
test al, al
je 0x401b95
cmp byte [ebx + 0x60], 0
je 0x401b88
push 5
push dword [ebx]
call dword [sym.imp.USER32.dll_ShowWindow]
push edi
push edi
push ebx
push 0x401382
jmp 0x401cf4
cmp byte [ebx + 0x61], 0
je 0x401c1f
call fcn.00405b1c
test al, al
je 0x401bda
push str.A_reboot_is_pending__client_mode_
lea esi, [ebx + 0x3c]
call fcn.00406a39
pop ecx
push 0
push 0xf003
push 6
push dword [ebx + 0x58]
push ebx
call fcn.00401832
push 5
push dword [ebx]
call dword [sym.imp.USER32.dll_ShowWindow]
mov esi, dword [ebp + 8]
jmp case.default.0x401b57
push edi
push edi
push 2
lea ecx, [ebp - 0x24]
call fcn.0040a343
mov byte [ebp - 4], 2
push 0x20006
lea edi, [ebp - 0x24]
call fcn.0040a5c6
test eax, eax
jne 0x401c05
push str.RebootNeeded
call fcn.0040aa2c
push dword [ebx + 0x4c]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x24]
call fcn.0040a3e3
jmp case.default.0x401b57
cmp byte [ebx + 0x60], 0
je case.default.0x401b57
push dword [ebx + 0x4c]
call dword [sym.imp.USER32.dll_DestroyWindow]
jmp case.default.0x401b57
cmp dword [esi], 3
jne 0x401c51
push 0x408
lea eax, [ebx + 0x30]
call fcn.004064f2
lea eax, [ebx + 4]
call fcn.00401000
push 2
lea eax, [ebx + 0x30]
call fcn.004064d6
lea eax, [ebx + 0x14]
call fcn.00401000
lea eax, [ebx + 0xc]
call fcn.00401011
cmp byte [ebx + 0x63], 0
je 0x401c78
push 0x7a
jmp 0x401d9e
cmp byte [ebx + 0x62], 0
jne 0x401c85
push 0x7b
jmp 0x401d9e
push 0x79
jmp 0x401d9e
push 0x408
lea eax, [ebx + 0x30]
call fcn.004064d6
lea eax, [ebx + 0xc]
call fcn.00401000
lea eax, [ebx + 4]
call fcn.00401011
push 0x7c
jmp 0x401d9e
lea eax, [ebx + 0x30]
push 0x408
call fcn.004064f2
push 0x3ea
lea eax, [ebx + 0x30]
call fcn.004064f2
push 2
lea eax, [ebx + 0x30]
call fcn.004064f2
lea eax, [ebx + 4]
call fcn.00401000
lea eax, [ebx + 0x14]
call fcn.00401011
push 0x7d
push ebx
call fcn.00401897
push edi
push edi
push ebx
push 0x4013d1
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebx + 0x50], eax
jmp case.default.0x401b57
lea edi, [ebx + 0x30]
call fcn.0040650e
lea eax, [ebx + 0x14]
call fcn.00401000
lea eax, [ebx + 0x20]
call fcn.00401011
push 0x7f
jmp 0x401d9e
lea edi, [ebx + 0x30]
call fcn.0040650e
lea eax, [ebx + 0x14]
call fcn.00401000
lea eax, [ebx + 0x20]
call fcn.00401011
push 0x7e
jmp 0x401d9e
lea eax, [ebx + 0xc]
call fcn.00401000
lea edi, [ebx + 0x30]
call fcn.0040650e
lea eax, [ebx + 0x14]
call fcn.00401000
lea eax, [ebx + 0x20]
call fcn.00401011
push 0x84
jmp 0x401d9e
lea edi, [ebx + 0x30]
call fcn.0040650e
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.00406672
mov eax, edi
call fcn.00401011
push 0x80
push ebx
call fcn.00401897
mov byte [ebp - 4], 0
call fcn.0040635b
or dword [ebp - 4], 0xffffffff
jmp 0x401dbc
mov dword [ebp + 8], esi
or dword [ebp - 4], 0xffffffff
lea ecx, [esi + 0xc]
call fcn.00406458
push esi
call fcn.00415d1e
pop ecx
xor eax, eax
inc eax
call fcn.00424094
ret 4