Function at 0x10003040
Capabilities:
Create a process with modified i/o handles and window
Create pipe
Create process on windows
Create process suspended
Execute shell command and capture output
Get file size
Read file on windows
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x2b0
mov eax, dword [0x10018090]
xor eax, esp
mov dword [esp + 0x2ac], eax
mov eax, dword [esp + 0x2b4]
push ebx
push ebp
push esi
push edi
push 0x206
mov dword [esp + 0x30], eax
xor ebp, ebp
mov esi, edx
lea eax, [esp + 0xb6]
xor edx, edx
push ebp
mov edi, 1
push eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x2c], edi
mov word [esp + 0xbc], dx
call fcn.1000c1f0
add esp, 0xc
push 0x400
mov dword [esp + 0x20], ebp
mov dword [esp + 0x2c], ebp
call fcn.10004eae
add esp, 4
push 0x400
push ebp
push eax
mov dword [esp + 0x30], eax
call fcn.1000c1f0
add esp, 0xc
push 0x400
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], ebp
call fcn.10004eae
add esp, 4
push 0x400
mov ebx, eax
push ebp
push ebx
call fcn.1000c1f0
add esp, 0xc
push ebp
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x4c], 0xc
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], edi
call dword [sym.imp.KERNEL32.dll_CreatePipe]
test eax, eax
je 0x100033b6
lea ecx, [esp + 0x48]
push ecx
call dword [sym.imp.KERNEL32.dll_GetStartupInfoW]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x88], eax
mov dword [esp + 0x84], eax
xor edx, edx
lea eax, [esp + 0xb0]
mov dword [esp + 0x48], 0x44
mov word [esp + 0x78], dx
mov dword [esp + 0x74], 0x101
add eax, 0xfffffffe
mov edi, edi
mov cx, word [eax + 2]
add eax, 2
cmp cx, bp
jne 0x10003150
mov ecx, dword [str.cmd.exe__c]
mov edx, dword [0x1001627c]
mov dword [eax], ecx
mov ecx, dword [0x10016280]
mov dword [eax + 4], edx
mov edx, dword [0x10016284]
mov dword [eax + 8], ecx
mov ecx, dword [0x10016288]
mov dword [eax + 0xc], edx
mov edx, dword [0x1001628c]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
mov eax, esi
mov edx, esi
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x10003195
lea edi, [esp + 0xb0]
sub eax, edx
add edi, 0xfffffffe
lea esp, [esp]
mov cx, word [edi + 2]
add edi, 2
cmp cx, bp
jne 0x100031b0
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea eax, [esp + 0x90]
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x4c]
push ecx
push ebp
push ebp
push ebp
push 1
push ebp
push ebp
lea edx, [esp + 0xd0]
push edx
push ebp
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
mov dword [esp + 0x30], ebp
cmp dword [esp + 0x2c], ebp
je 0x100033b6
jmp 0x10003200
mov eax, dword [esp + 0x1c]
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
test eax, eax
je 0x1000330f
mov esi, dword [esp + 0x24]
push 0x400
push ebp
push esi
mov dword [esp + 0x20], ebp
call fcn.1000c1f0
mov edx, dword [esp + 0x28]
add esp, 0xc
push ebp
lea ecx, [esp + 0x1c]
push ecx
push 0x200
push esi
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x10003351
mov eax, dword [esp + 0x18]
lea ecx, [eax + eax + 0x10]
push ecx
call fcn.10004eae
mov edx, dword [esp + 0x1c]
mov esi, eax
add esp, 4
lea eax, [edx + edx + 0x10]
push eax
push ebp
push esi
call fcn.1000c1f0
mov eax, dword [esp + 0x24]
lea edi, [eax + eax + 0x10]
add esp, 0xc
push edi
mov ebp, eax
call fcn.10004eae
add esp, 4
push edi
push 0
push eax
mov dword [esp + 0x44], eax
call fcn.1000c1f0
mov edx, dword [esp + 0x30]
add esp, 0xc
push edi
lea ecx, [esp + 0x3c]
push ecx
push edx
mov eax, ebp
call fcn.10001200
mov edi, dword [esp + 0x44]
add esp, 0xc
push esi
mov ecx, edi
call fcn.10001320
add esp, 4
push edi
call fcn.10005a96
add esp, 4
push 0x400
push 0
push ebx
call fcn.1000c1f0
add esp, 0xc
mov eax, 0x400
mov ecx, ebx
mov edx, esi
call fcn.10001520
push esi
mov edi, eax
call fcn.10005a96
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
add esp, 4
push ebx
push eax
push 0
push ecx
mov eax, edi
call fcn.10003580
add esp, 0x10
test eax, eax
jl 0x1000334d
inc dword [esp + 0x30]
xor ebp, ebp
jmp 0x10003200
cmp dword [esp + 0x30], ebp
jne 0x10003331
cmp dword [esp + 0x14], 0x7530
jge 0x10003331
add dword [esp + 0x14], 0x64
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x10003200
cmp dword [esp + 0x14], 0x1388
jge 0x10003351
add dword [esp + 0x14], 0x64
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x10003200
xor ebp, ebp
jmp 0x100033ae
xor eax, eax
mov dword [esp + 0xa1], eax
mov dword [esp + 0xa5], eax
mov dword [esp + 0xa9], eax
mov word [esp + 0xad], ax
mov byte [esp + 0xaf], al
mov eax, 0x400
mov ecx, ebx
lea edx, [esp + 0xa0]
mov dword [esp + 0xa0], 0x6f6965
call fcn.10001520
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
push ebx
push edx
push 1
push ecx
call fcn.10003580
add esp, 0x10
test eax, eax
jge 0x100033b6
mov dword [esp + 0x20], 0xffffffff
mov edx, dword [esp + 0x24]
push edx
call fcn.10005a96
mov eax, dword [esp + 0x20]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
add esp, 4
cmp eax, ebp
je 0x100033d4
push eax
call esi
mov eax, dword [esp + 0x28]
cmp eax, ebp
je 0x100033df
push eax
call esi
push ebx
call fcn.10005a96
mov ecx, dword [esp + 0x2c0]
mov eax, dword [esp + 0x24]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10004eb9
add esp, 0x2b0
ret