Function at 0x406fb4
Capabilities:
Create tcp socket
Create udp socket
Get file size
Get local ipv4 addresses
Get socket information
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
Start tcp server

Disassembly:
push ebp
mov ebp, esp
push esi
push ebx
sub esp, 0x9c0
mov dword [esp + 8], 0x32
mov dword [esp + 4], 0
lea eax, [ebp - 0x486]
mov dword [esp], eax
call sym._memset
mov dword [esp + 4], 0x45fcc0
lea eax, [ebp - 0x486]
mov dword [esp], eax
call sym._strcpy
mov eax, dword [0x45fd00]
mov dword [ebp - 0x1c], eax
mov dword [esp + 4], 0x45fba0
lea eax, [ebp - 0x58a]
mov dword [esp], eax
call sym._strcpy
mov dword [esp + 8], 0x200
mov dword [esp + 4], 0
lea eax, [ebp - 0x78a]
mov dword [esp], eax
call sym._memset
mov dword [0x45fd0c], 1
mov dword [ebp - 0x790], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], 2
mov eax, dword [sym.imp.WS2_32.dll_socket]
call eax
sub esp, 0xc
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0xffffffff
jne 0x407088
mov dword [esp + 4], 0x4243ec
lea eax, [ebp - 0x78a]
mov dword [esp], eax
call sym._sprintf
jmp 0x4075c6
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0
lea eax, [ebp - 0x454]
mov dword [esp], eax
call sym._memset
mov word [ebp - 0x454], 2
mov dword [esp], 0
mov eax, dword [sym.imp.WS2_32.dll_htons]
call eax
sub esp, 4
mov word [ebp - 0x452], ax
mov dword [ebp - 0x450], 0
mov dword [esp + 8], 0x10
lea eax, [ebp - 0x454]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
mov eax, dword [sym.imp.WS2_32.dll_bind]
call eax
sub esp, 0xc
test eax, eax
je 0x407112
mov dword [esp + 4], 0x4243ec
lea eax, [ebp - 0x78a]
mov dword [esp], eax
call sym._sprintf
jmp 0x4075c6
mov dword [ebp - 0x794], 0x10
lea eax, [ebp - 0x794]
mov dword [esp + 8], eax
lea eax, [ebp - 0x454]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
mov eax, dword [sym.imp.WS2_32.dll_getsockname]
call eax
sub esp, 0xc
movzx eax, word [ebp - 0x452]
movzx eax, ax
mov dword [esp], eax
mov eax, dword [sym.imp.WS2_32.dll_ntohs]
call eax
sub esp, 4
mov word [ebp - 0x22], ax
mov dword [ebp - 0x10], 0
jmp 0x4071a5
lea edx, [ebp - 0x58a]
mov eax, dword [ebp - 0x10]
add eax, edx
movzx eax, byte [eax]
cmp al, 0x20
jne 0x407186
lea edx, [ebp - 0x8a4]
mov eax, dword [ebp - 0x10]
add eax, edx
mov byte [eax], 0x5f
jmp 0x4071a1
lea edx, [ebp - 0x58a]
mov eax, dword [ebp - 0x10]
add eax, edx
movzx eax, byte [eax]
lea ecx, [ebp - 0x8a4]
mov edx, dword [ebp - 0x10]
add edx, ecx
mov byte [edx], al
add dword [ebp - 0x10], 1
lea eax, [ebp - 0x58a]
mov dword [esp], eax
call sym._strlen
mov edx, eax
mov eax, dword [ebp - 0x10]
cmp edx, eax
jae 0x407164
mov dword [esp + 4], 1
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
mov eax, dword [sym.imp.WS2_32.dll_listen]
call eax
sub esp, 8
test eax, eax
je 0x4071f3
mov dword [esp + 4], 0x4243ec
lea eax, [ebp - 0x78a]
mov dword [esp], eax
call sym._sprintf
jmp 0x4075c6
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0x80000000
lea eax, [ebp - 0x58a]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_CreateFileA]
call eax
sub esp, 0x1c
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xffffffff
jne 0x40725a
mov dword [esp + 4], 0x424418
lea eax, [ebp - 0x78a]
mov dword [esp], eax
call sym._sprintf
jmp 0x4075c6
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetFileSize]
call eax
sub esp, 8
mov dword [ebp - 0x794], eax
mov esi, dword [ebp - 0x794]
movsx ebx, word [ebp - 0x22]
mov dword [esp], str.000.000.000.000
mov eax, dword [sym.imp.WS2_32.dll_inet_addr]
call eax
sub esp, 4
mov dword [esp], eax
mov eax, dword [sym.imp.WS2_32.dll_htonl]
call eax
sub esp, 4
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x8a4]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x424bfc
lea eax, [ebp - 0x78a]
mov dword [esp], eax
call sym._sprintf
lea eax, [ebp - 0x78a]
mov dword [esp + 8], eax
lea eax, [ebp - 0x486]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call sym._dccsenderror
mov dword [ebp - 0x79c], 0x3c
mov dword [ebp - 0x798], 0
mov dword [ebp - 0x9a8], 0
mov dword [ebp - 0x14], 0
jmp 0x407325
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x9a4]
cmp dword [ebp - 0x20], eax
je 0x407330
add dword [ebp - 0x14], 1
mov eax, dword [ebp - 0x9a8]
cmp dword [ebp - 0x14], eax
jb 0x407312
mov eax, dword [ebp - 0x9a8]
cmp dword [ebp - 0x14], eax
jne 0x407362
mov eax, dword [ebp - 0x9a8]
cmp eax, 0x3f
ja 0x407362
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x9a4], edx
mov eax, dword [ebp - 0x9a8]
add eax, 1
mov dword [ebp - 0x9a8], eax
lea eax, [ebp - 0x79c]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
lea eax, [ebp - 0x9a8]
mov dword [esp + 4], eax
mov dword [esp], 0
mov eax, dword [sym.imp.WS2_32.dll_select]
call eax
sub esp, 0x14
test eax, eax
jg 0x4073bd
mov dword [esp + 8], str.Dcc_send_timeout
lea eax, [ebp - 0x486]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call sym._dccsenderror
jmp 0x4075c6
mov dword [ebp - 0x7a0], 0x10
lea eax, [ebp - 0x7a0]
mov dword [esp + 8], eax
lea eax, [ebp - 0x444]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
mov eax, dword [sym.imp.WS2_32.dll_accept]
call eax
sub esp, 0xc
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
jne 0x40740f
mov dword [esp + 4], 0x4243ec
lea eax, [ebp - 0x78a]
mov dword [esp], eax
call sym._sprintf
jmp 0x4075c6
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
mov eax, dword [sym.imp.WS2_32.dll_closesocket]
call eax
sub esp, 4
jmp 0x40756d
mov dword [ebp - 0x18], 0x400
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
lea eax, [ebp - 0x434]
mov dword [esp], eax
call sym._memset
mov eax, dword [ebp - 0x794]
cmp dword [ebp - 0x18], eax
jle 0x40745d
mov eax, dword [ebp - 0x794]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x794]
neg eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_SetFilePointer]
call eax
sub esp, 0x10
mov eax, dword [ebp - 0x18]
mov dword [esp + 0x10], 0
lea edx, [ebp - 0x790]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
lea eax, [ebp - 0x434]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_ReadFile]
call eax
sub esp, 0x14
mov dword [esp + 0xc], 0
mov eax, dword [ebp - 0x18]
mov dword [esp + 8], eax
lea eax, [ebp - 0x434]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
mov eax, dword [sym.imp.WS2_32.dll_send]
call eax
sub esp, 0x10
mov dword [ebp - 0x30], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x400
lea eax, [ebp - 0x434]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
mov eax, dword [sym.imp.WS2_32.dll_recv]
call eax
sub esp, 0x10
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
je 0x407527
cmp dword [ebp - 0x30], 0
jg 0x40755e
mov dword [esp + 8], str.Socket_error
lea eax, [ebp - 0x486]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call sym._dccsenderror
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
mov eax, dword [sym.imp.WS2_32.dll_closesocket]
call eax
sub esp, 4
mov eax, 1
jmp 0x407610
mov eax, dword [ebp - 0x794]
sub eax, dword [ebp - 0x30]
mov dword [ebp - 0x794], eax
mov eax, dword [ebp - 0x794]
test eax, eax
jne 0x407424
cmp dword [ebp - 0x28], 0xffffffff
je 0x407591
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_CloseHandle]
call eax
sub esp, 4
mov dword [esp + 8], 0x200
mov dword [esp + 4], 0
lea eax, [ebp - 0x78a]
mov dword [esp], eax
call sym._memset
mov dword [esp + 4], str.Transfer_complete
lea eax, [ebp - 0x78a]
mov dword [esp], eax
call sym._sprintf
nop
lea eax, [ebp - 0x78a]
mov dword [esp + 8], eax
lea eax, [ebp - 0x486]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call sym._dccsenderror
cmp dword [ebp - 0x20], 0
je 0x4075fb
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
mov eax, dword [sym.imp.WS2_32.dll_closesocket]
call eax
sub esp, 4
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
mov eax, dword [sym.imp.WS2_32.dll_closesocket]
call eax
sub esp, 4
mov eax, 0
lea esp, [ebp - 8]
pop ebx
pop esi
pop ebp
ret 4