Function at 0x408444
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 0xc]
push esi
cmp ebx, 0x112
push edi
jne 0x40848f
cmp dword [ebp + 0x10], 1
jne 0x40848f
mov edi, dword [ebp + 8]
mov esi, dword [sym.imp.USER32.dll_EnableWindow]
push 0
push edi
call esi
push 0
push 0x40574c
push edi
push 0x72
push dword [0x47a0a4]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
push 1
push edi
call esi
push edi
call dword [sym.imp.USER32.dll_SetForegroundWindow]
xor eax, eax
jmp 0x4084fc
push dword [ebp + 8]
call fcn.00407b8a
mov esi, eax
pop ecx
test esi, esi
jne 0x4084a4
mov esi, dword [0x479e94]
mov edi, 0x80000000
test dword [0x47a0b4], edi
je 0x4084d1
xor eax, eax
test esi, esi
je 0x4084ba
mov eax, dword [esi + 0x14]
push eax
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push ebx
push dword [ebp + 8]
call fcn.0042141b
add esp, 0x14
test eax, eax
jne 0x4084fc
test esi, esi
jne 0x4084e7
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push ebx
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_DefWindowProcA]
jmp 0x4084fc
cmp ebx, 0x14
jne 0x408503
cmp byte [esi + 0x94], 0
jne 0x40894f
push 1
pop eax
pop edi
pop esi
pop ebx
pop ebp
ret 0x10
cmp ebx, 0x402
jne 0x408551
test dword [esi + 0x10], edi
je 0x40894f
xor ebx, ebx
cmp dword [esi + 0x78], ebx
jle 0x40894f
push ebx
lea ecx, [esi + 0x6c]
call fcn.0041c45e
mov edi, eax
cmp dword [edi + 8], 0xc
jne 0x40854b
mov eax, dword [ebp + 0x14]
cmp dword [edi + 0x10], eax
jne 0x40854b
push dword [ebp + 0x10]
mov ecx, dword [edi + 0x4c]
call fcn.0041ca7c
mov ecx, dword [edi + 0x4c]
call fcn.0041c903
inc ebx
cmp ebx, dword [esi + 0x78]
jl 0x40851f
cmp dword [ebp + 0xc], 0xf
jne 0x408593
test byte [esi + 0x13], 0x80
je 0x4088d6
xor edi, edi
cmp dword [esi + 0x78], edi
jle 0x4088d6
lea ebx, [esi + 0x6c]
push edi
mov ecx, ebx
call fcn.0041c45e
cmp dword [eax + 8], 0xc
jne 0x40858d
push edi
mov ecx, ebx
call fcn.0041c45e
mov ecx, dword [eax + 0x4c]
call fcn.0041c903
inc edi
cmp edi, dword [esi + 0x78]
jl 0x40856f
mov eax, dword [ebp + 0xc]
mov edi, 0x133
cmp eax, edi
jne 0x4085e0
push dword [ebp + 0x14]
mov ecx, esi
call fcn.004070b5
mov esi, eax
test esi, esi
je 0x40894f
mov eax, dword [esi + 8]
cmp eax, 5
je 0x4085c0
cmp eax, 6
jne 0x408609
push dword [esi + 0x24]
push dword [ebp + 0x10]
call dword [sym.imp.GDI32.dll_SetTextColor]
push dword [esi + 0x2c]
push dword [ebp + 0x10]
call dword [sym.imp.GDI32.dll_SetBkColor]
mov eax, dword [esi + 0x50]
jmp 0x4084fc
mov edi, 0x134
cmp eax, edi
jne 0x408615
push dword [ebp + 0x14]
mov ecx, esi
call fcn.004070b5
mov esi, eax
test esi, esi
je 0x40894f
cmp dword [esi + 8], 7
jne 0x408609
cmp dword [esi + 0x50], 0
jne 0x4085c0
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push edi
jmp 0x4084dc
cmp eax, 0x138
jne 0x408665
cmp byte [esi + 0x94], 0
lea eax, [esi + 0x94]
jne 0x40862e
mov byte [eax], 1
push dword [ebp + 0x14]
mov ecx, esi
call fcn.004070b5
mov esi, eax
test esi, esi
je 0x40894f
push dword [esi + 0x24]
push dword [ebp + 0x10]
call dword [sym.imp.GDI32.dll_SetTextColor]
mov eax, dword [esi + 8]
cmp eax, 5
je 0x4085cc
cmp eax, 6
je 0x4085cc
jmp 0x40868c
cmp eax, 0x135
jne 0x40869c
push dword [ebp + 0x14]
mov ecx, esi
call fcn.004070b5
mov esi, eax
test esi, esi
je 0x40894f
push dword [esi + 0x24]
push dword [ebp + 0x10]
call dword [sym.imp.GDI32.dll_SetTextColor]
push 1
push dword [ebp + 0x10]
call dword [sym.imp.GDI32.dll_SetBkMode]
jmp 0x4085d8
cmp eax, 0x201
jne 0x4086db
test byte [esi + 0x84], 2
je 0x40894f
mov eax, dword [esi + 0x80]
test eax, eax
je 0x40894f
xor ebx, ebx
push 3
push ebx
push ebx
lea ecx, [eax + 0x40]
call fcn.0041ab9e
push eax
push str.open
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
jmp 0x4086dd
xor ebx, ebx
cmp dword [ebp + 0xc], 0x200
jne 0x40880b
test byte [esi + 0x84], 1
je 0x40894f
mov eax, dword [ebp + 0x14]
movzx ecx, ax
shr eax, 0x10
push eax
push ecx
push dword [esi + 4]
call dword [sym.imp.USER32.dll_ChildWindowFromPoint]
mov edi, eax
test edi, edi
je 0x4087c3
cmp edi, dword [esi + 4]
je 0x4087c3
push 0xffffffffffffffeb
push edi
call dword [sym.imp.USER32.dll_GetWindowLongA]
cmp eax, 1
jne 0x408773
push dword [esi + 0x88]
call dword [sym.imp.USER32.dll_SetCursor]
test byte [esi + 0x84], 2
jne 0x40894f
push edi
mov ecx, esi
call fcn.004070b5
or dword [esi + 0x84], 2
push 0
push 0
mov dword [esi + 0x80], eax
push dword [eax + 0x4c]
mov dword [eax + 0x24], 0xff
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x40894f
test byte [esi + 0x84], 2
je 0x40894f
xor edi, edi
cmp dword [esi + 0x78], edi
jle 0x4087b0
lea ebx, [esi + 0x6c]
push edi
mov ecx, ebx
call fcn.0041c45e
mov ecx, dword [eax + 0x28]
cmp dword [eax + 0x24], ecx
je 0x4087aa
push 0
push 0
push dword [eax + 0x4c]
mov dword [eax + 0x24], ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
inc edi
cmp edi, dword [esi + 0x78]
jl 0x40878a
and dword [esi + 0x80], 0
and dword [esi + 0x84], 0xfffffffd
jmp 0x40894f
test byte [esi + 0x84], 2
je 0x40894f
xor ebx, ebx
xor edi, edi
cmp dword [esi + 0x78], ebx
jle 0x4087fe
push edi
lea ecx, [esi + 0x6c]
call fcn.0041c45e
mov ecx, dword [eax + 0x28]
cmp dword [eax + 0x24], ecx
je 0x4087f8
push ebx
push ebx
push dword [eax + 0x4c]
mov dword [eax + 0x24], ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
inc edi
cmp edi, dword [esi + 0x78]
jl 0x4087d9
and dword [esi + 0x84], 0xfffffffd
mov dword [esi + 0x80], ebx
cmp dword [ebp + 0xc], 0x20
jne 0x40882f
test byte [esi + 0x84], 2
je 0x40894f
push dword [esi + 0x88]
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x4084f9
cmp dword [ebp + 0xc], 6
jne 0x40888d
cmp word [ebp + 0x10], bx
jne 0x40894f
test byte [esi + 0x84], 2
lea eax, [esi + 0x84]
je 0x40894f
and dword [eax], 0xfffffffd
xor edi, edi
mov dword [esi + 0x80], edi
cmp dword [esi + 0x78], edi
jle 0x40894f
xor ebx, ebx
push edi
lea ecx, [esi + 0x6c]
call fcn.0041c45e
mov ecx, dword [eax + 0x28]
cmp dword [eax + 0x24], ecx
je 0x408887
push ebx
push ebx
push dword [eax + 0x4c]
mov dword [eax + 0x24], ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
inc edi
cmp edi, dword [esi + 0x78]
jl 0x408868
mov ecx, dword [ebp + 0xc]
mov eax, 0x111
cmp ecx, eax
je 0x4088be
cmp ecx, 0x10
je 0x4088c4
cmp ecx, 0x110
je 0x4088be
cmp ecx, 0x4e
je 0x4088be
cmp ecx, 0xf
je 0x4088be
cmp ecx, 0x113
jne 0x40894f
xor ebx, ebx
cmp dword [ebp + 0xc], 0x10
jne 0x4088d6
push ebx
push 2
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x4084fc
mov eax, dword [ebp + 0xc]
sub eax, 0xf
je 0x40893a
sub eax, 0x3f
je 0x40892b
sub eax, 0xc2
je 0x408919
dec eax
je 0x40890a
push dword [ebp + 0x14]
dec eax
dec eax
mov eax, dword [esi]
push dword [ebp + 0x10]
je 0x408903
push dword [ebp + 0xc]
mov ecx, esi
call dword [eax + 0xc]
jmp 0x408947
mov ecx, esi
call dword [eax + 0x18]
jmp 0x408947
push dword [ebp + 0x14]
mov eax, dword [esi]
mov ecx, esi
push dword [ebp + 0x10]
call dword [eax + 4]
jmp 0x408947
push dword [ebp + 0x14]
mov eax, dword [esi]
mov ecx, esi
push dword [ebp + 0x10]
push dword [ebp + 8]
call dword [eax + 8]
jmp 0x408947
push dword [ebp + 0x14]
mov eax, dword [esi]
mov ecx, esi
push dword [ebp + 0x10]
call dword [eax + 0x10]
jmp 0x408947
push dword [ebp + 0x14]
mov eax, dword [esi]
mov ecx, esi
push dword [ebp + 0x10]
call dword [eax + 0x14]
test al, al
jne 0x4084f9
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
jmp 0x4084dc