Function at 0x4020ab
Capabilities:
Create process on windows
Set current directory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x195c
call fcn.004135a0
mov eax, dword [0x41c004]
xor eax, esp
mov dword [esp + 0x1958], eax
push ebx
push esi
push edi
mov ecx, str._nodel
call fcn.0040200e
mov ecx, str._ghost
mov dword [esp + 0x10], eax
call fcn.0040200e
mov ecx, str._stop
mov dword [esp + 0x18], eax
call fcn.0040200e
mov ecx, str._service
mov dword [esp + 0x24], eax
call fcn.0040200e
mov ecx, str._norunonce
mov dword [esp + 0x20], eax
call fcn.0040200e
mov ecx, str._app
mov dword [esp + 0x14], eax
call fcn.0040200e
mov ecx, str._params
mov dword [esp + 0x1c], eax
call fcn.0040200e
mov ebx, 0x80
mov dword [esp + 0xc], eax
push ebx
xor edi, edi
lea eax, [esp + 0x84]
push edi
push eax
call fcn.00404300
add esp, 0xc
lea eax, [esp + 0x1140]
xor esi, esi
inc esi
push 0x820
push edi
push eax
call fcn.00404300
add esp, 0xc
lea eax, [esp + 0x100]
push 0x820
push edi
push eax
call fcn.00404300
add esp, 0xc
lea eax, [esp + 0x920]
push 0x820
push edi
push eax
call fcn.00404300
add esp, 0xc
lea eax, [esp + 0x38]
push 0x44
push edi
push eax
call fcn.00404300
mov dword [esp + 0x34], edi
xor eax, eax
lea edi, [esp + 0x38]
add esp, 0xc
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, 0x41a8fc
mov ecx, edi
call fcn.0040200e
test eax, eax
je 0x4021f5
push str._unattid
lea eax, [esp + 0x84]
push ebx
push eax
call fcn.00404a77
add esp, 0xc
lea eax, [esp + 0x80]
push 0x40
push eax
call fcn.00404cd2
sub ebx, eax
lea edx, [esp + 0x88]
push ebx
mov ecx, edi
lea edx, [edx + eax*2]
call fcn.00402047
add esp, 0xc
mov ebx, dword [esp + 0x1c]
mov edi, dword [sym.imp.KERNEL32.dll_FindResourceW]
test ebx, ebx
je 0x402235
push 0xa
push 0x7d00
push 0
call edi
mov dword [0x41d2c0], eax
test eax, eax
je 0x40221e
call fcn.00401aca
jmp 0x402220
xor eax, eax
test eax, eax
je 0x402235
push ecx
call fcn.00403127
pop ecx
call fcn.00401b0e
call fcn.00401ab1
mov eax, dword [esp + 0xc]
test eax, eax
je 0x4022f7
push esi
push 0
mov edx, str.eula.txt
mov ecx, 0x2717
call fcn.00401b3b
pop ecx
pop ecx
mov edx, 0x41a6c0
call fcn.00401ddf
cmp dword [esp + 0x10], 0
je 0x402270
mov edx, str._nodel
call fcn.00401ddf
cmp dword [esp + 0x14], 0
je 0x402281
mov edx, str._norunonce
call fcn.00401ddf
cmp dword [esp + 0x18], 0
je 0x4022a9
mov edx, str._ghost
call fcn.00401ddf
cmp word [esp + 0x80], 0
je 0x4022a9
lea edx, [esp + 0x80]
call fcn.00401ddf
push 0
push 0
mov edx, str.params.txt
mov ecx, 0x2710
call fcn.00401b3b
xor ecx, ecx
call fcn.00401ef2
xor ecx, ecx
call fcn.00401fa3
mov edx, 0x2712
push esi
push str.script
lea ecx, [edx + 1]
call fcn.00401b3b
mov edx, 0x2714
push esi
push str.script
lea ecx, [edx + 1]
call fcn.00401b3b
mov eax, dword [esp + 0x24]
add esp, 0x18
test ebx, ebx
jne 0x402551
test eax, eax
jne 0x402551
mov ebx, 0x41a988
mov ecx, ebx
call fcn.0040200e
lea edx, [esp + 0x100]
test eax, eax
je 0x402355
push 0x410
mov ecx, ebx
call fcn.00402047
pop ecx
lea eax, [esp + 0x100]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push 0xa
push 0x7d00
xor ebx, ebx
push ebx
call edi
mov dword [0x41d2c0], eax
test eax, eax
je 0x402383
call fcn.00401aca
jmp 0x402385
push ecx
push ecx
lea ecx, [esp + 0x1148]
call fcn.004018ce
pop ecx
pop ecx
test eax, eax
je 0x402339
push str.Failed_to_create_applet_folder.
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.004019eb
pop ecx
pop ecx
xor ebx, ebx
jmp 0x4024fc
mov eax, ebx
test eax, eax
jne 0x4023a1
push str.Failed_to_locate_application_resource.
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.004019eb
pop ecx
pop ecx
jmp 0x4024fc
push ecx
call fcn.00403127
pop ecx
test eax, eax
jne 0x4023b3
push str.Failed_to_decompress_application_files.
jmp 0x40238e
call fcn.00401ab1
test eax, eax
jne 0x4023c3
push str.Failed_to_copy_service_binary.
jmp 0x40238e
call fcn.00401b0e
push esi
push ebx
mov edx, str.eula.txt
mov ecx, 0x2717
call fcn.00401b3b
mov ebx, dword [esp + 0x28]
pop ecx
pop ecx
test ebx, ebx
jne 0x40244b
mov edx, 0x41a6c0
call fcn.00401ddf
cmp dword [esp + 0x10], ebx
je 0x4023fd
mov edx, str._nodel
call fcn.00401ddf
cmp dword [esp + 0x14], 0
je 0x40240e
mov edx, str._norunonce
call fcn.00401ddf
cmp dword [esp + 0x18], 0
je 0x402436
mov edx, str._ghost
call fcn.00401ddf
cmp word [esp + 0x80], 0
je 0x402436
lea edx, [esp + 0x80]
call fcn.00401ddf
push 0
push 0
mov edx, str.params.txt
mov ecx, 0x2710
call fcn.00401b3b
pop ecx
pop ecx
mov ecx, ebx
call fcn.00401ef2
mov ecx, ebx
call fcn.00401fa3
test ebx, ebx
jne 0x402483
mov edx, 0x2712
mov ebx, str.script
push esi
push ebx
lea ecx, [edx + 1]
call fcn.00401b3b
mov edx, 0x2714
push esi
push ebx
lea ecx, [edx + 1]
call fcn.00401b3b
add esp, 0x10
xor ebx, ebx
mov esi, ebx
cmp dword [esp + 0x24], ebx
jne 0x4024fc
push str.LMI_InstantChat.exe
lea eax, [esp + 0x104]
push eax
push str.__s_s_
lea eax, [esp + 0x92c]
push 0x820
push eax
call fcn.0040196c
add esp, 0x14
mov dword [esp + 0x38], 0x44
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x108]
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [esp + 0x940]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
jne 0x4024fc
push str.Failed_to_start_client_application.
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.004019eb
pop ecx
pop ecx
push 2
pop esi
call fcn.00401b0e
cmp dword [esp + 0x2c], 0
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
je 0x402518
push dword [esp + 0x2c]
call edi
mov dword [esp + 0x2c], ebx
cmp dword [esp + 0x28], 0
je 0x402529
push dword [esp + 0x28]
call edi
mov dword [esp + 0x28], ebx
push 0x410
lea eax, [esp + 0x924]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x40254d
lea ecx, [esp + 0x920]
call fcn.00401265
mov eax, esi
jmp 0x402553
xor eax, eax
mov ecx, dword [esp + 0x1964]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004032a6
mov esp, ebp
pop ebp
ret