Function at 0x50d530
Capabilities:
Create process on windows
Delete file

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffd08
push ebx
xor edx, edx
mov dword [ebp - 0x2f8], edx
mov dword [ebp - 0x2f4], edx
mov dword [ebp - 0x2ec], edx
mov dword [ebp - 0x2f0], edx
mov dword [ebp - 0x2e4], edx
mov dword [ebp - 0x2e8], edx
mov dword [ebp - 0x2dc], edx
mov dword [ebp - 0x2e0], edx
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.004060c4
lea eax, [ebp - 0x280]
mov edx, dword [0x40b0ec]
call fcn.00406e64
xor eax, eax
push ebp
push 0x50d8e0
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 4]
add eax, 0x3bc
mov edx, dword [ebp + 8]
mov edx, dword [edx + 8]
mov edx, dword [edx - 4]
mov edx, dword [edx + 0x3b8]
call fcn.004060dc
lea eax, [ebp - 0x2c8]
xor ecx, ecx
mov edx, 0x44
call fcn.004039d0
mov dword [ebp - 0x2c8], 0x44
mov word [ebp - 0x298], 0
or dword [ebp - 0x29c], 1
lea edx, [ebp - 0x2e0]
mov eax, dword [ebp - 4]
call fcn.0040e094
mov eax, dword [ebp - 0x2e0]
lea ecx, [ebp - 0x2dc]
mov edx, 0x50d8f8
call fcn.0040dec4
mov ecx, dword [ebp - 0x2dc]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 4]
mov edx, dword [eax + 0x3b8]
lea eax, [ebp - 0xc]
call fcn.004065c0
lea edx, [ebp - 0x2e8]
mov eax, dword [0x520340]
mov eax, dword [eax]
call fcn.0048907c
mov eax, dword [ebp - 0x2e8]
lea edx, [ebp - 0x2e4]
call fcn.0040df98
push dword [ebp - 0x2e4]
push 0x50d910
push dword [ebp - 4]
push 0x50d94c
push dword [ebp - 0xc]
push 0x50d960
lea eax, [ebp - 8]
mov edx, 6
call fcn.004066a4
xor eax, eax
mov dword [ebp - 0x284], eax
lea eax, [ebp - 0x2d8]
push eax
lea eax, [ebp - 0x2c8]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 8]
call fcn.00406168
push eax
push 0
call sub.kernel32.dll_CreateProcessW
test eax, eax
je 0x50d6e5
push 0xffffffffffffffff
mov eax, dword [ebp - 0x2d8]
push eax
call sub.kernel32.dll_WaitForSingleObject
lea eax, [ebp - 0x284]
push eax
mov eax, dword [ebp - 0x2d8]
push eax
call sub.kernel32.dll_GetExitCodeProcess
mov eax, dword [ebp - 0x2d8]
push eax
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [ebp - 0x2d4]
push eax
call sub.kernel32.dll_CloseHandle_1
lea edx, [ebp - 0x2f0]
mov eax, dword [0x520340]
mov eax, dword [eax]
call fcn.0048907c
mov eax, dword [ebp - 0x2f0]
lea edx, [ebp - 0x2ec]
call fcn.0040df98
push dword [ebp - 0x2ec]
push 0x50d970
push dword [ebp - 0xc]
push 0x50d94c
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 4]
push dword [eax + 0x3b8]
push 0x50d9a8
push 0x50d960
lea eax, [ebp - 8]
mov edx, 7
call fcn.004066a4
lea eax, [ebp - 0x2d8]
push eax
lea eax, [ebp - 0x2c8]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 8]
call fcn.00406168
push eax
push 0
call sub.kernel32.dll_CreateProcessW
test eax, eax
je 0x50d7a8
push 0xffffffffffffffff
mov eax, dword [ebp - 0x2d8]
push eax
call sub.kernel32.dll_WaitForSingleObject
lea eax, [ebp - 0x284]
push eax
mov eax, dword [ebp - 0x2d8]
push eax
call sub.kernel32.dll_GetExitCodeProcess
mov eax, dword [ebp - 0x2d8]
push eax
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [ebp - 0x2d4]
push eax
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [ebp - 0xc]
call fcn.00406168
push eax
call sub.kernel32.dll_DeleteFileW
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 4]
mov edx, dword [eax + 0x3bc]
lea eax, [ebp - 0x2f4]
mov ecx, 0x50d9c0
call fcn.004065c0
mov eax, dword [ebp - 0x2f4]
lea ecx, [ebp - 0x280]
mov edx, 0x1ff
call fcn.0040dcbc
mov ebx, eax
xor eax, eax
push ebp
push 0x50d887
push dword fs:[eax]
mov dword fs:[eax], esp
test ebx, ebx
jne 0x50d86e
test byte [ebp - 0x270], 0x10
jne 0x50d85d
lea edx, [ebp - 0x2f8]
mov eax, dword [ebp - 0x26c]
call fcn.0040e0d4
mov eax, dword [ebp - 0x2f8]
lea edx, [ebp - 8]
call fcn.0040cb28
mov eax, dword [ebp - 8]
call fcn.005066d4
test al, al
je 0x50d85d
cmp dword [ebp - 0x274], 0
jne 0x50d847
cmp dword [ebp - 0x278], 0
jbe 0x50d85d
jmp 0x50d849
jle 0x50d85d
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 8]
mov edx, dword [ebp - 0x26c]
call fcn.00422c74
lea eax, [ebp - 0x280]
call fcn.0040dd0c
mov ebx, eax
test ebx, ebx
je 0x50d7ff
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x50d88e
lea eax, [ebp - 0x280]
call fcn.0040dd30
ret