Function at 0x401830
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xe4
mov eax, dword [0x41e008]
xor eax, esp
mov dword [esp + 0xe0], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [sym.imp.USER32.dll_LoadStringW]
push edi
mov edi, dword [ebp + 0x10]
push 0x64
push 0x420560
push 0x67
push ebx
call esi
push 0x64
push 0x420630
push 0x6d
push ebx
call esi
mov ecx, ebx
call fcn.00401d40
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0
push ebx
push 0
push 0
push 0
push 0
push 1
mov dword [0x420628], ebx
call esi
cdq
sub eax, edx
sar eax, 1
push eax
push 0
call esi
cdq
sub eax, edx
sar eax, 1
push eax
push 0x80000000
push 0x41c6c0
push 0x420630
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov esi, eax
test esi, esi
je 0x401d21
push dword [ebp + 0x14]
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
push esi
call dword [sym.imp.USER32.dll_UpdateWindow]
mov edx, edi
lea ecx, [esp + 0x8c]
call fcn.00401490
lea eax, [esp + 0x8c]
mov edx, str.in_params:
push eax
lea ecx, [esp + 0xc0]
call fcn.00403480
add esp, 4
cmp dword [eax + 0x14], 0x10
jb 0x401907
mov eax, dword [eax]
mov ecx, eax
call fcn.00401390
cmp dword [esp + 0xd0], 0x10
jb 0x401927
push dword [esp + 0xbc]
call fcn.004042bd
add esp, 4
push 0
push ecx
push dword [esp + 0xa4]
push ecx
lea ecx, [esp + 0x9c]
call fcn.00402700
test eax, eax
je 0x401c7d
push 2
push ecx
push 0x41c66c
lea ecx, [esp + 0x98]
call fcn.00402610
test eax, eax
je 0x401c7d
push 2
push ecx
push 0x41c66c
lea ecx, [esp + 0x98]
call fcn.00402610
push eax
push 0
lea eax, [esp + 0xac]
push eax
lea ecx, [esp + 0x98]
call fcn.00402050
push 0xffffffffffffffff
push 2
push ecx
push 0x41c66c
lea ecx, [esp + 0x9c]
call fcn.00402610
add eax, 2
lea ecx, [esp + 0x90]
push eax
lea eax, [esp + 0x7c]
push eax
call fcn.00402050
push 0
push ecx
push dword [esp + 0x8c]
push ecx
lea ecx, [esp + 0x84]
call fcn.00402700
test eax, eax
je 0x401c33
push ecx
push 0x41c66c
lea ecx, [esp + 0x7c]
call fcn.00402010
test eax, eax
je 0x401c33
push ecx
push 0x41c66c
lea ecx, [esp + 0x7c]
call fcn.00402010
push eax
push 0
lea eax, [esp + 0xc4]
push eax
lea ecx, [esp + 0x80]
call fcn.00402050
push 0xffffffffffffffff
push ecx
push 0x41c66c
lea ecx, [esp + 0x80]
call fcn.00402010
add eax, 2
lea ecx, [esp + 0x78]
push eax
lea eax, [esp + 0xdc]
push eax
call fcn.00402050
lea eax, [esp + 0xa4]
mov edx, str.path:
push eax
lea ecx, [esp + 0x14]
call fcn.00403480
add esp, 4
cmp dword [eax + 0x14], 0x10
jb 0x401a5e
mov eax, dword [eax]
mov ecx, eax
call fcn.00401390
lea ecx, [esp + 0x10]
call fcn.00401fe0
sub esp, 0x18
lea eax, [esp + 0xbc]
mov ecx, esp
push 0xffffffffffffffff
push 0
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push eax
mov byte [ecx], 0
call fcn.004022f0
lea ecx, [esp + 0x28]
call fcn.00401720
add esp, 0x18
lea ecx, [esp + 0xa4]
push eax
call fcn.00401f60
lea ecx, [esp + 0x10]
call fcn.00401fe0
lea eax, [esp + 0xa4]
mov edx, str.replace_path:
push eax
lea ecx, [esp + 0x14]
call fcn.00403480
add esp, 4
cmp dword [eax + 0x14], 0x10
jb 0x401ad8
mov eax, dword [eax]
mov ecx, eax
call fcn.00401390
lea ecx, [esp + 0x10]
call fcn.00401fe0
lea eax, [esp + 0xbc]
mov edx, str.name:
push eax
lea ecx, [esp + 0x14]
call fcn.00403480
add esp, 4
cmp dword [eax + 0x14], 0x10
jb 0x401b09
mov eax, dword [eax]
mov ecx, eax
call fcn.00401390
lea ecx, [esp + 0x10]
call fcn.00401fe0
lea eax, [esp + 0xd4]
mov edx, str.param:
push eax
lea ecx, [esp + 0x14]
call fcn.00403480
add esp, 4
cmp dword [eax + 0x14], 0x10
jb 0x401b3a
mov eax, dword [eax]
mov ecx, eax
call fcn.00401390
lea ecx, [esp + 0x10]
call fcn.00401fe0
lea edx, [esp + 0xa4]
lea ecx, [esp + 0x28]
call fcn.00401660
mov edi, eax
cmp dword [edi + 0x14], 8
jb 0x401b64
mov edi, dword [edi]
lea edx, [esp + 0xd4]
lea ecx, [esp + 0x40]
call fcn.00401660
mov esi, eax
cmp dword [esi + 0x14], 8
jb 0x401b7e
mov esi, dword [esi]
lea edx, [esp + 0xbc]
lea ecx, [esp + 0x10]
call fcn.00401660
cmp dword [eax + 0x14], 8
jb 0x401b96
mov eax, dword [eax]
push 1
push edi
push esi
push eax
push 0
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea ecx, [esp + 0x10]
mov esi, eax
call fcn.00402090
lea ecx, [esp + 0x40]
call fcn.00402090
lea ecx, [esp + 0x28]
call fcn.00402090
cmp esi, 0x20
ja 0x401c11
mov ecx, str.open_fail_
call fcn.00401390
mov edx, esi
lea ecx, [esp + 0x40]
call fcn.00401280
push eax
mov edx, str.Last_error:
lea ecx, [esp + 0x2c]
call fcn.00403370
add esp, 4
cmp dword [eax + 0x14], 0x10
jb 0x401bf6
mov eax, dword [eax]
mov ecx, eax
call fcn.00401390
lea ecx, [esp + 0x28]
call fcn.00401fe0
lea ecx, [esp + 0x40]
call fcn.00401fe0
jmp 0x401c1b
mov ecx, str.open_success_
call fcn.00401390
lea ecx, [esp + 0xd4]
call fcn.00401fe0
lea ecx, [esp + 0xbc]
call fcn.00401fe0
cmp dword [esp + 0x88], 0x10
jb 0x401c49
push dword [esp + 0x74]
call fcn.004042bd
add esp, 4
cmp dword [esp + 0xb8], 0x10
mov dword [esp + 0x88], 0xf
mov dword [esp + 0x84], 0
mov byte [esp + 0x74], 0
jb 0x401c7d
push dword [esp + 0xa4]
call fcn.004042bd
add esp, 4
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
push 0x6d
push ebx
call dword [sym.imp.USER32.dll_LoadAcceleratorsW]
mov esi, dword [sym.imp.USER32.dll_GetMessageW]
push 0
push 0
mov dword [esp + 0x14], eax
lea eax, [esp + 0x60]
push 0
push eax
call esi
test eax, eax
je 0x401ceb
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebx, dword [sym.imp.USER32.dll_DispatchMessageW]
lea eax, [esp + 0x58]
push eax
push dword [esp + 0x10]
push dword [esp + 0x60]
call dword [sym.imp.USER32.dll_TranslateAcceleratorW]
test eax, eax
jne 0x401cda
lea eax, [esp + 0x58]
push eax
call edi
lea eax, [esp + 0x58]
push eax
call ebx
push 0
push 0
push 0
lea eax, [esp + 0x64]
push eax
call esi
test eax, eax
jne 0x401cb5
cmp dword [esp + 0xa0], 0x10
mov esi, dword [esp + 0x60]
jb 0x401d08
push dword [esp + 0x8c]
call fcn.004042bd
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xe0]
xor ecx, esp
call fcn.00403920
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [esp + 0xec]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00403920
mov esp, ebp
pop ebp
ret 0x10