Function at 0x508164
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 8], edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x5086d1
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0xc]
mov eax, dword [0x54c11c]
call fcn.0040898c
mov eax, dword [ebp - 0xc]
lea edx, [ebp - 8]
call fcn.004095c8
mov eax, dword [ebp - 8]
mov edx, 0x5086e8
call fcn.00403fa0
je 0x5081fe
lea edx, [ebp - 0xc]
mov eax, dword [0x54c11c]
call fcn.0040898c
mov eax, dword [ebp - 0xc]
lea edx, [ebp - 8]
call fcn.004095c8
mov eax, dword [ebp - 8]
mov edx, 0x5086f8
call fcn.00403fa0
je 0x5081fe
push 1
push 0
push 0
mov eax, dword [0x54c11c]
call fcn.00404054
push eax
push 0
push 0
call sub.shell32.dll_ShellExecuteA
mov eax, dword [ebp - 4]
call fcn.00438154
jmp 0x5086ae
xor edx, edx
push ebp
push 0x5086a7
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 4]
mov byte [eax + 0x366], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e0]
mov edx, 0x508708
call fcn.0044122c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e8]
mov edx, 0x508724
call fcn.0044122c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x354]
xor edx, edx
call fcn.00441114
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x35c]
xor edx, edx
call fcn.00441114
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x344]
mov dl, 1
call fcn.00441114
lea eax, [ebp - 8]
push eax
mov eax, dword [0x54c120]
mov dword [ebp - 0x14], eax
mov byte [ebp - 0x10], 0xb
lea edx, [ebp - 0x14]
xor ecx, ecx
mov eax, 0x508740
call fcn.0040a05c
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x344]
call fcn.0044122c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f0]
mov dl, 1
call fcn.00441114
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c8]
add eax, 0x4080
mov edx, dword [0x54c11c]
call fcn.00403c68
lea ecx, [ebp - 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c8]
mov eax, dword [eax + 0x4080]
mov edx, 0x508760
call fcn.00409434
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c8]
add eax, 0x4090
call fcn.00403c68
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c8]
add eax, 0x4098
call fcn.00403c14
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x308]
mov edx, dword [eax]
call dword [edx + 0xb8]
test al, al
je 0x508369
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
call fcn.004411fc
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c8]
add eax, 0x50
call fcn.00403c68
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x314]
call fcn.004411fc
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c8]
add eax, 0x54
call fcn.00403c68
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c8]
mov dword [eax + 0x30], 0xea60
xor edx, edx
mov dword [eax + 0x40a8], edx
xor edx, edx
push ebp
push 0x5083ae
push dword fs:[edx]
mov dword fs:[edx], esp
xor edx, edx
call fcn.005044dc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c8]
call fcn.00506084
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5083ee
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x2c8]
cmp dword [ebx + 0x40a8], 0x190
jl 0x50842b
mov ecx, dword [ebx + 0x40ac]
lea eax, [ebp - 8]
mov edx, 0x508770
call fcn.00403edc
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00507c94
call fcn.00403728
jmp 0x5086ae
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c8]
mov eax, dword [eax + 0x40b0]
mov dword [0x54c134], eax
cmp dword [0x54c134], 0
jle 0x508462
call sub.kernel32.dll_GetTickCount
mov dword [0x54c138], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c4]
mov dl, 1
call fcn.00455ef8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c8]
xor edx, edx
mov dword [eax + 0x40a8], edx
xor eax, eax
push ebp
push 0x5084b1
push dword fs:[eax]
mov dword fs:[eax], esp
push 0xffff
mov ecx, dword [0x54c12c]
mov dl, 1
mov eax, dword [0x40f724]
call fcn.00413b7c
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x2c8]
mov dword [edx + 0x40cc], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5084d7
xor eax, eax
push ebp
push 0x50850d
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c8]
xor edx, edx
call fcn.005044dc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c8]
call fcn.00506078
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x508517
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c8]
mov eax, dword [eax + 0x40cc]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx - 4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c8]
xor edx, edx
mov dword [eax + 0x40cc], edx
test eax, eax
jne 0x50854c
call fcn.00403728
jmp 0x5086ae
cmp dword [0x54c110], 0
jne 0x50855f
call fcn.00403728
jmp 0x5086ae
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c4]
xor edx, edx
call fcn.00455ef8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f0]
xor edx, edx
call fcn.00441114
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x340]
xor edx, edx
call fcn.00441114
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c8]
cmp byte [eax + 0x3c], 0
je 0x5085b5
mov edx, 0x50879c
mov eax, dword [ebp - 4]
call fcn.00507c94
call fcn.00403728
jmp 0x5086ae
cmp byte [0x54c130], 1
jne 0x5085c8
call fcn.00403728
jmp 0x5086ae
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c8]
cmp dword [eax + 0x40a8], 0x190
jl 0x50861e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f0]
xor edx, edx
call fcn.0047a960
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c8]
mov ecx, dword [eax + 0x40ac]
lea eax, [ebp - 8]
mov edx, 0x508770
call fcn.00403edc
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00507c94
call fcn.00403728
jmp 0x5086ae
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x32c]
xor edx, edx
call fcn.00441114
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x330]
mov dl, 1
call fcn.00441114
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x320]
mov edx, 0x5087c0
call fcn.0044122c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x338]
mov edx, dword [0x54c12c]
call fcn.0044122c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x338]
mov dl, 1
call fcn.00441114
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x33c]
mov dl, 1
call fcn.00441114
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5086ae
mov dl, 3
mov eax, dword [ebp - 4]
call fcn.00507d60
mov eax, dword [ebp - 4]
mov byte [eax + 0x366], 0
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5086d8
lea eax, [ebp - 0x18]
call fcn.00403c14
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.00403c38
ret