Function at 0x4ab788
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov esi, edx
mov ebx, eax
xor eax, eax
push ebp
push 0x4abb6d
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, esi
mov edx, dword [0x454914]
call fcn.004030d8
test al, al
je 0x4ab7c6
mov eax, esi
mov edx, dword [0x454914]
call fcn.004030f0
mov edx, eax
mov eax, ebx
call fcn.004aadb4
mov eax, dword [ebx + 0x378]
test eax, eax
je case.default.0x4ab849
cmp byte [eax + 0x47], 0
je case.default.0x4ab849
mov eax, dword [eax + 0xc]
add eax, 0xfffffffc
sub eax, 3
jae 0x4ab837
mov eax, dword [0x4b2f24]
mov eax, dword [eax]
xor edx, edx
call fcn.00471248
mov eax, dword [ebx + 0x378]
mov edx, dword [eax + 0x70]
mov eax, dword [0x4b2f24]
mov eax, dword [eax]
mov eax, dword [eax + 0x344]
call fcn.0042c548
mov eax, dword [ebx + 0x378]
mov eax, dword [eax + 0x58]
call fcn.00419b70
mov edx, eax
mov eax, dword [0x4b2f24]
mov eax, dword [eax]
mov eax, dword [eax + 0x344]
mov eax, dword [eax + 0x58]
call fcn.00419b78
mov eax, dword [ebx + 0x378]
mov eax, dword [eax + 0xc]
cmp eax, 9
ja case.default.0x4ab849
jmp dword [eax*4 + 0x4ab850]
mov edx, dword [0x4b3468]
mov edx, dword [edx]
mov eax, dword [0x4b3450]
mov eax, dword [eax]
call fcn.004afa3c
jmp case.default.0x4ab849
mov edx, dword [0x4b3048]
mov edx, dword [edx]
mov eax, dword [0x4b3450]
mov eax, dword [eax]
call fcn.004afa3c
jmp case.default.0x4ab849
mov edx, dword [0x4b2f4c]
mov edx, dword [edx]
mov eax, dword [0x4b3450]
mov eax, dword [eax]
call fcn.004afa3c
jmp case.default.0x4ab849
mov edx, dword [0x4b30e8]
mov edx, dword [edx]
mov eax, dword [0x4b3450]
mov eax, dword [eax]
call fcn.004afa3c
jmp case.default.0x4ab849
mov eax, dword [0x4b3450]
mov eax, dword [eax]
mov eax, dword [eax + 0x50]
mov edx, 0x4abb80
call fcn.00450c58
mov eax, dword [0x4b2f24]
mov eax, dword [eax]
mov dword [eax + 0x444], 1
mov edx, dword [0x4b2f24]
mov edx, dword [edx]
mov eax, dword [0x4b3450]
mov eax, dword [eax]
call fcn.004afa3c
jmp case.default.0x4ab849
mov eax, dword [0x4b3450]
mov eax, dword [eax]
mov eax, dword [eax + 0x50]
mov edx, 0x4abb90
call fcn.00450c58
mov eax, dword [0x4b2f24]
mov eax, dword [eax]
mov dword [eax + 0x444], 1
mov edx, dword [0x4b2f24]
mov edx, dword [edx]
mov eax, dword [0x4b3450]
mov eax, dword [eax]
call fcn.004afa3c
jmp case.default.0x4ab849
mov eax, dword [0x4b3450]
mov eax, dword [eax]
mov eax, dword [eax + 0x50]
mov edx, 0x4abba0
call fcn.00450c58
mov eax, dword [0x4b2f24]
mov eax, dword [eax]
mov dword [eax + 0x444], 1
mov edx, dword [0x4b2f24]
mov edx, dword [edx]
mov eax, dword [0x4b3450]
mov eax, dword [eax]
call fcn.004afa3c
jmp case.default.0x4ab849
mov eax, ebx
call fcn.004ab21c
jmp case.default.0x4ab849
mov edx, dword [0x4b336c]
mov edx, dword [edx]
mov eax, dword [0x4b3450]
mov eax, dword [eax]
call fcn.004afa3c
jmp case.default.0x4ab849
mov eax, dword [0x4b3450]
mov eax, dword [eax]
cmp dword [eax + 0x90], 0
je 0x4ab9ea
push 5
mov eax, dword [0x4b3450]
mov eax, dword [eax]
mov eax, dword [eax + 0x90]
call fcn.00404170
push eax
call sub.kernel32.dll_WinExec
jmp case.default.0x4ab849
mov dl, 1
mov eax, dword [ebx + 0x2f0]
call fcn.0042c430
mov edx, 0x4abbb0
mov eax, dword [ebx + 0x2f0]
call fcn.0042c548
mov eax, dword [ebx + 0x2f0]
call fcn.0042c9f4
mov eax, dword [0x4b2ef8]
mov eax, dword [eax]
call fcn.004aa1ec
xor edx, edx
mov eax, dword [ebx + 0x2f0]
call fcn.0042c548
mov eax, dword [0x4b3284]
mov eax, dword [eax]
call fcn.0044b7b0
mov eax, dword [0x4b2ef8]
mov eax, dword [eax]
mov eax, dword [eax + 0x90]
mov edx, eax
add edx, 0xfffffffd
sub edx, 2
jae 0x4aba94
mov eax, dword [0x4b320c]
mov eax, dword [eax]
call fcn.00448298
mov eax, dword [0x4b3450]
mov eax, dword [eax]
mov dword [eax + 0x68], 1
mov eax, dword [0x4b3450]
mov eax, dword [eax]
xor edx, edx
call fcn.004afa3c
mov eax, dword [0x4b320c]
mov eax, dword [eax]
mov edx, dword [eax + 0x380]
mov eax, dword [0x4b320c]
mov eax, dword [eax]
call fcn.004a90c8
jmp case.default.0x4ab849
cmp eax, 7
ja case.default.0x4aba9d
jmp dword [eax*4 + 0x4abaa4]
mov edx, 0x4abbc8
mov eax, dword [ebx + 0x2f0]
call fcn.0042c548
jmp case.default.0x4aba9d
mov edx, 0x4abbdc
mov eax, dword [ebx + 0x2f0]
call fcn.0042c548
jmp case.default.0x4aba9d
mov edx, 0x4abbf0
mov eax, dword [ebx + 0x2f0]
call fcn.0042c548
jmp case.default.0x4aba9d
mov edx, 0x4abc00
mov eax, dword [ebx + 0x2f0]
call fcn.0042c548
jmp case.default.0x4aba9d
mov edx, 0x4abc10
mov eax, dword [ebx + 0x2f0]
call fcn.0042c548
jmp case.default.0x4aba9d
mov edx, 0x4abc24
mov eax, dword [ebx + 0x2f0]
call fcn.0042c548
jmp case.default.0x4aba9d
mov edx, 0x4abc38
mov eax, dword [ebx + 0x2f0]
call fcn.0042c548
jmp case.default.0x4aba9d
mov edx, 0x4abc48
mov eax, dword [ebx + 0x2f0]
call fcn.0042c548
mov dl, 1
mov eax, dword [ebx + 0x2f0]
call fcn.0042c430
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4abb74
ret