Function at 0x150ca08
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 3
add esp, 0xfffff004
push eax
dec eax
jne 0x150ca11
mov eax, dword [ebp - 4]
add esp, 0xffffffa4
push ebx
push esi
push edi
mov esi, dword [ebp + 8]
mov edi, dword [0x152022c]
test edi, edi
jne 0x150ca3b
mov eax, 0x80004005
jmp 0x150cfcc
mov eax, 0x15201fc
call fcn.01501860
lea edx, [ebp - 0x40c]
mov eax, 0x15201fc
mov ecx, 0x400
call fcn.01501778
cmp esi, dword [0x151a308]
jge 0x150ca66
test esi, esi
jge 0x150ca70
mov eax, 0x80070057
jmp 0x150cfcc
mov esi, dword [esi*4 + 0x1520f9c]
mov eax, 0x15201fc
call fcn.01501870
mov edx, edi
shl edx, 3
sub edx, edi
add eax, edx
add eax, 0x400
push eax
call fcn.0150e1ac
pop ecx
mov ebx, eax
test ebx, ebx
jne 0x150caa6
mov eax, 0x80004005
jmp 0x150cfcc
mov byte [ebp - 0x80c], 0
mov edx, esi
add edx, 0xfffffffb
sub edx, 2
jb 0x150cac1
sub edx, 2
jb 0x150cb11
jmp 0x150cb83
push 0x151a365
lea ecx, [ebp - 0xc0c]
push ecx
call fcn.0150f6b8
add esp, 8
cmp esi, 6
jne 0x150cae7
lea eax, [ebp - 0xc0c]
xor edx, edx
call fcn.0150d1d0
push 0
push 0
lea edx, [ebp - 0xc0c]
xor ecx, ecx
mov eax, ebx
call fcn.0150d7ac
test al, al
jne 0x150ced3
mov eax, 0x80004005
jmp 0x150cfcc
lea edx, [ebp - 0x80c]
mov eax, str.Rar_MLXXXXXX
call fcn.015070a0
test al, al
jne 0x150cb2f
mov eax, 0x80004005
jmp 0x150cfcc
push 0x151a365
lea edx, [ebp - 0x100c]
push edx
call fcn.0150f6b8
add esp, 8
cmp esi, 7
jne 0x150cb59
lea edx, [ebp - 0x80c]
lea eax, [ebp - 0x100c]
call fcn.0150d1d0
push 0
push 1
lea edx, [ebp - 0x100c]
xor ecx, ecx
mov eax, ebx
call fcn.0150d7ac
test al, al
jne 0x150ced3
mov eax, 0x80004005
jmp 0x150cfcc
mov dword [ebp - 4], str.x__ow__ver
mov edx, esi
sub edx, 9
je 0x150cb96
dec edx
je 0x150cb9f
jmp 0x150cba6
mov dword [ebp - 4], str.t__iext
jmp 0x150cba6
mov dword [ebp - 4], 0x151a47c
push dword [ebp - 4]
mov al, 1
call fcn.0150d59c
push eax
push str._s__s
push ebx
call sub.USER32.DLL_wsprintfA
add esp, 0x10
cmp byte [0x15202f4], 0
je 0x150cbd7
mov edx, 0x15202f4
mov eax, 0x15201fc
call fcn.015015ec
lea eax, [ebp - 0x140c]
mov dl, 1
call fcn.0150d948
test al, al
je 0x150cc15
lea ecx, [ebp - 0x140c]
lea eax, [ebp - 0x180c]
push ecx
push str.__anf_s_
push eax
call sub.USER32.DLL_wsprintfA
add esp, 0xc
lea edx, [ebp - 0x180c]
push edx
push ebx
call fcn.0150f5dc
add esp, 8
jmp 0x150cc60
mov eax, 0x15201fc
call fcn.01501860
xor edx, edx
mov dword [ebp - 8], edx
jmp 0x150cc58
mov eax, 0x15201fc
call fcn.015017e0
push eax
push str.__an_s_
lea edx, [ebp - 0x1c0c]
push edx
call sub.USER32.DLL_wsprintfA
add esp, 0xc
lea ecx, [ebp - 0x1c0c]
push ecx
push ebx
call fcn.0150f5dc
add esp, 8
inc dword [ebp - 8]
lea eax, [edi - 1]
cmp eax, dword [ebp - 8]
jg 0x150cc26
cmp esi, 3
jne 0x150cc73
push str._ad
push ebx
call fcn.0150f5dc
add esp, 8
push 0x151a4a0
push ebx
call fcn.0150f5dc
add esp, 8
mov eax, 0x15201fc
call fcn.015017e0
push eax
push str.__s_
lea edx, [ebp - 0x200c]
push edx
call sub.USER32.DLL_wsprintfA
add esp, 0xc
lea ecx, [ebp - 0x200c]
push ecx
push ebx
call fcn.0150f5dc
add esp, 8
mov eax, esi
sub eax, 1
jb 0x150ccc7
sub eax, 3
jb 0x150cce8
je 0x150ceb6
jmp 0x150ced3
push 0x1520790
push str.___s_
push ebx
call fcn.0150f6e8
pop ecx
add eax, ebx
push eax
call sub.USER32.DLL_wsprintfA
add esp, 0xc
jmp 0x150ced3
lea edx, [ebp - 0x40c]
push edx
lea ecx, [ebp - 0x240c]
push ecx
call fcn.0150f6b8
add esp, 8
cmp esi, 2
jne 0x150cd12
lea eax, [ebp - 0x240c]
call fcn.01501b70
mov edi, eax
jmp 0x150cd1f
lea eax, [ebp - 0x240c]
call fcn.01501a64
mov edi, eax
test edi, edi
je 0x150ce1e
mov byte [edi], 0
lea eax, [ebp - 0x40c]
push eax
lea edx, [ebp - 0x2c0c]
push edx
call fcn.0150f6b8
add esp, 8
lea eax, [ebp - 0x2c0c]
xor edx, edx
call fcn.01501c90
lea eax, [ebp - 0x240c]
call fcn.01501b70
mov dword [ebp - 0xc], eax
cmp esi, 2
jne 0x150ce04
cmp dword [ebp - 0xc], 0
je 0x150ce04
lea edx, [ebp - 0x240c]
cmp edx, dword [ebp - 0xc]
jae 0x150ce04
mov edx, 0x151a3fc
lea eax, [edi + 1]
call fcn.015019f8
test eax, eax
je 0x150cd9f
mov edx, 0x151a3a4
lea eax, [edi + 1]
call fcn.015019f8
test eax, eax
jne 0x150cdec
lea eax, [ebp - 0x2c0c]
xor edx, edx
call fcn.015094b4
test al, al
jne 0x150cdc6
mov edx, str..part
mov ecx, 5
mov eax, dword [ebp - 0xc]
call fcn.01501a1c
test eax, eax
jne 0x150cdec
cmp byte [edi + 1], 0
je 0x150cdec
xor eax, eax
mov al, byte [edi + 2]
push eax
call fcn.01512d10
pop ecx
test eax, eax
jne 0x150cdec
xor edx, edx
mov dl, byte [edi - 1]
push edx
call fcn.01512d10
pop ecx
test eax, eax
jne 0x150cdfe
mov edx, 0x151a406
mov eax, dword [ebp - 0xc]
inc eax
call fcn.015019f8
test eax, eax
jne 0x150ce04
mov ecx, dword [ebp - 0xc]
mov byte [ecx], 0
dec edi
jmp 0x150ce0b
mov byte [edi], 0
dec edi
lea eax, [ebp - 0x240c]
cmp edi, eax
jbe 0x150ce1e
xor edx, edx
mov dl, byte [edi]
cmp edx, 0x2e
je 0x150ce07
cmp byte [0x1520790], 0
je 0x150ce2e
mov ecx, 0x1520790
jmp 0x150ce34
lea ecx, [ebp - 0x240c]
push ecx
lea eax, [ebp - 0x280c]
push eax
call fcn.0150f6b8
add esp, 8
lea eax, [ebp - 0x280c]
call fcn.01501bc8
cmp esi, 2
jne 0x150ce8c
cmp byte [0x1520790], 0
je 0x150ce8c
lea eax, [ebp - 0x240c]
call fcn.01501a64
push eax
lea edx, [ebp - 0x280c]
push edx
call fcn.0150f5dc
add esp, 8
push 0x151a36a
lea ecx, [ebp - 0x280c]
push ecx
call fcn.0150f5dc
add esp, 8
lea eax, [ebp - 0x280c]
xor edx, edx
call fcn.01501da8
lea eax, [ebp - 0x280c]
call fcn.0150b67c
lea edx, [ebp - 0x280c]
push edx
push ebx
call fcn.0150f5dc
add esp, 8
jmp 0x150ced3
lea ecx, [ebp - 0x200c]
mov al, 1
push ecx
call fcn.0150d59c
push eax
push str._s__s
push ebx
call sub.USER32.DLL_wsprintfA
add esp, 0x10
push 0x44
push 0
lea edx, [ebp - 0x2c50]
push edx
call fcn.0150f538
add esp, 0xc
mov dword [ebp - 0x2c50], 0x44
cmp byte [ebp - 0x80c], 0
je 0x150cf11
lea ecx, [ebp - 0x80c]
push ecx
lea eax, [ebp - 0x3060]
push eax
call fcn.0150f6b8
add esp, 8
jmp 0x150cf82
lea edx, [ebp - 0x40c]
push edx
lea ecx, [ebp - 0x3060]
push ecx
call fcn.0150f6b8
add esp, 8
cmp byte [0x151c7ac], 0
je 0x150cf47
lea edx, [ebp - 0x3060]
mov eax, 0x151c6ac
mov ecx, 0x5c
call fcn.01502418
jmp 0x150cf58
push 0x5c
lea eax, [ebp - 0x3060]
push eax
call fcn.0150f78c
add esp, 8
test eax, eax
jne 0x150cf65
mov byte [ebp - 0x3060], 0
jmp 0x150cf82
lea edx, [ebp - 0x3060]
cmp eax, edx
jbe 0x150cf82
xor ecx, ecx
mov cl, byte [eax - 1]
cmp ecx, 0x3a
je 0x150cf7e
mov byte [eax], 0
jmp 0x150cf82
mov byte [eax + 1], 0
lea eax, [ebp - 0x2c60]
push eax
lea edx, [ebp - 0x2c50]
push edx
lea ecx, [ebp - 0x3060]
push ecx
push 0
push 0
push 0
push 0
push 0
push ebx
push 0
call sub.KERNEL32.DLL_CreateProcessA
test eax, eax
je 0x150cfc3
push dword [ebp - 0x2c5c]
call sub.KERNEL32.DLL_CloseHandle
push dword [ebp - 0x2c60]
call sub.KERNEL32.DLL_CloseHandle
push ebx
call fcn.0150dfd4
pop ecx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4