Function at 0x401c9c
Capabilities:
Create process on windows
Resolve function by parsing pe exports
Set current directory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x384
push ebx
push esi
xor eax, eax
push edi
inc eax
xor ebx, ebx
push 0x103
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x185]
push ebx
push eax
mov byte [esp + 0x18c], bl
call fcn.00402c10
add esp, 0xc
push 0x40
lea eax, [esp + 0x38]
push ebx
push eax
mov dword [esp + 0x3c], ebx
call fcn.00402c10
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x2c], ebx
xor eax, eax
lea edi, [esp + 0x30]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
add esp, 0xc
push str._nodel
stosd dword es:[edi], eax
call fcn.00401c3f
xor edi, edi
inc edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
mov dword [esp], 0x404224
call fcn.00401c3f
test eax, eax
pop ecx
je 0x401d6d
push 6
push str.SET_RESCUEAPP_MAJOR_d_n
call fcn.00402996
push edi
push str.SET_RESCUEAPP_MINOR_d_n
call fcn.00402996
mov ebx, 0x16c
push ebx
push str.SET_RESCUEAPP_BUILD_d_n
call fcn.00402996
lea esi, [ebx + 0x72]
push esi
push str.SET_RESCUEAPP_REVISION_d_n
call fcn.00402996
push esi
push ebx
push edi
push 6
push str.SET_RESCUEAPP_VER_d._d._d._d_n
call fcn.00402996
add esp, 0x34
xor eax, eax
jmp 0x40202e
mov edi, str._app
push edi
call fcn.00401c3f
test eax, eax
pop ecx
je 0x401db1
push 0xa
push 0x7d00
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceA]
cmp eax, ebx
mov dword [0x405384], eax
je 0x401d9b
call fcn.0040186f
jmp 0x401d9d
xor eax, eax
cmp eax, ebx
je 0x401db1
push 0x405018
call fcn.0040151f
pop ecx
call fcn.004018b4
push str._params
call fcn.00401c3f
test eax, eax
pop ecx
je 0x401e20
cmp dword [esp + 0x10], ebx
je 0x401dcb
call fcn.00401af8
xor eax, eax
cmp dword [esp + 0x10], ebx
sete al
push eax
push ebx
push str.params.txt
push 0x2710
call fcn.004018e1
call fcn.00401b52
call fcn.00401beb
push 1
mov esi, str.script
push esi
push 0x2712
push 0x2713
call fcn.004018e1
push 1
push esi
push 0x2714
push 0x2715
call fcn.004018e1
add esp, 0x30
jmp 0x401d66
push edi
call fcn.00401c3f
test eax, eax
pop ecx
jne 0x401d66
mov esi, str.script
lea eax, [esp + 0x78]
push eax
push dword [esp + 0x10]
lea edi, [esp + 0x290]
mov dword [esp + 0x1c], ebx
call fcn.00401759
test eax, eax
pop ecx
pop ecx
jne 0x401e76
cmp dword [esp + 0xc], ebx
je 0x401fc9
lea eax, [esp + 0x78]
push eax
push ebx
mov dword [esp + 0x14], ebx
call fcn.00401759
test eax, eax
pop ecx
pop ecx
je 0x401fc9
push 0xa
xor edi, edi
push 0x7d00
inc edi
push ebx
mov dword [esp + 0x20], edi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
cmp eax, ebx
mov dword [0x405384], eax
je 0x401e9b
call fcn.0040186f
jmp 0x401e9d
xor eax, eax
cmp eax, ebx
jne 0x401eb9
push str.Failed_to_locate_application_resource.
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0040149d
pop ecx
pop ecx
jmp 0x401fc9
push 0x405018
call fcn.0040151f
test eax, eax
pop ecx
jne 0x401ed9
cmp dword [esp + 0xc], ebx
jne 0x401fc9
push str.Failed_to_decompress_application_files.
jmp 0x401ea6
call fcn.004018b4
cmp dword [esp + 0x10], ebx
je 0x401ee9
call fcn.00401af8
xor eax, eax
cmp dword [esp + 0x10], ebx
sete al
push eax
push ebx
push str.params.txt
push 0x2710
call fcn.004018e1
call fcn.00401b52
call fcn.00401beb
push edi
push esi
push 0x2712
push 0x2713
call fcn.004018e1
push edi
push esi
push 0x2714
push 0x2715
call fcn.004018e1
push dword [0x405018]
lea eax, [esp + 0xac]
push eax
lea eax, [esp + 0x1b8]
push str.__s_s_
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x40
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x80]
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [esp + 0x1a0]
push eax
push ebx
mov dword [esp + 0x58], 0x44
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x401f95
cmp dword [esp + 0xc], ebx
jne 0x401fc9
push str.Failed_to_start_client_application.
jmp 0x401ea6
push 0xffffffffffffffff
push dword [esp + 0x24]
mov dword [esp + 0x20], ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x24]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test eax, eax
je 0x401fc5
xor eax, eax
cmp dword [esp + 0x1c], ebx
sete al
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ebx
call fcn.004018b4
cmp dword [esp + 0x24], ebx
je 0x401fe2
push dword [esp + 0x24]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esp + 0x24], ebx
cmp dword [esp + 0x20], ebx
je 0x401ff6
push dword [esp + 0x20]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esp + 0x20], ebx
cmp dword [esp + 0x14], ebx
je 0x40201b
cmp dword [esp + 0x10], ebx
jne 0x40201b
lea eax, [esp + 0x288]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea eax, [esp + 0x78]
push eax
call fcn.0040143f
pop ecx
cmp dword [esp + 0xc], ebx
je 0x40202a
mov dword [esp + 0xc], ebx
jmp 0x401e34
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10