Function at 0x40364c
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Initialize winsock library
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push ebx
push esi
push eax
mov eax, 3
add esp, 0xfffff004
push eax
dec eax
jne 0x403654
mov eax, dword [esp + 0x3000]
add esp, 0xfffff664
push 0x408294
call sub.kernel32.dll_lstrlenA_1
test eax, eax
jle 0x4039cf
push 0x4082b4
call sub.kernel32.dll_lstrlenA_1
test eax, eax
jle 0x4039cf
push 0x4039d8
lea eax, [esp + 0x1004]
push eax
call sub.kernel32.dll_lstrcpyA_1
push 0x4039dc
lea eax, [esp + 0x1004]
push eax
call sub.kernel32.dll_lstrcatA_1
mov ecx, 0x4039e0
mov edx, esp
mov eax, 0x408294
call fcn.004022a4
push esp
lea eax, [esp + 0x1004]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0x800
push 0x407d20
lea ecx, [esp + 0x808]
mov edx, 0x4039e4
mov eax, 0x4039ec
call fcn.00402b70
lea edx, [esp + 0x800]
lea eax, [esp + 0x800]
call fcn.0040234c
lea edx, [esp + 0x800]
lea eax, [esp + 0x800]
xor ecx, ecx
call fcn.00402504
push 0x4039f4
lea eax, [esp + 0x804]
push eax
call sub.kernel32.dll_lstrcatA_1
lea eax, [esp + 0x800]
push eax
call sub.kernel32.dll_lstrlenA_1
mov ebx, eax
mov edx, 0x4039fc
lea eax, [esp + 0x800]
mov ecx, 2
call fcn.00402134
mov esi, eax
lea eax, [esp + 0x1800]
mov edx, 0x800
call fcn.00402ed0
lea eax, [esp + 0x2000]
mov edx, 0x800
call fcn.00402ed0
mov ecx, esi
sub ecx, 7
dec ecx
lea edx, [esp + 0x807]
lea eax, [esp + 0x1800]
call fcn.00402ec8
mov ecx, ebx
sub ecx, esi
inc ecx
lea edx, [esp + esi + 0x7ff]
lea eax, [esp + 0x2000]
call fcn.00402ec8
push 0x403a00
lea eax, [esp + 0x2804]
push eax
call sub.kernel32.dll_lstrcpyA_1
lea eax, [esp + 0x2000]
push eax
lea eax, [esp + 0x2804]
push eax
call sub.kernel32.dll_lstrcatA_1
lea eax, [esp + 0x1000]
push eax
lea eax, [esp + 0x2804]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0x403a08
lea eax, [esp + 0x2804]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0x403a14
lea eax, [esp + 0x2804]
push eax
call sub.kernel32.dll_lstrcatA_1
lea eax, [esp + 0x1800]
push eax
lea eax, [esp + 0x2804]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0x403a1c
lea eax, [esp + 0x2804]
push eax
call sub.kernel32.dll_lstrcatA_1
lea eax, [esp + 0x3800]
push eax
push 0x101
call sub.wsock32.dll_WSAStartup
push 6
push 1
push 2
call sub.wsock32.dll_socket
mov ebx, eax
lea eax, [esp + 0x3990]
mov edx, 0x10
call fcn.00402ed0
mov word [esp + 0x3990], 2
push 0x50
call sub.wsock32.dll_htons
mov word [esp + 0x3992], ax
lea eax, [esp + 0x1800]
call fcn.00402d50
mov dword [esp + 0x3994], eax
push 0x10
lea eax, [esp + 0x3994]
push eax
push ebx
call sub.wsock32.dll_connect
push 0
lea eax, [esp + 0x2804]
push eax
call sub.kernel32.dll_lstrlenA_1
push eax
lea eax, [esp + 0x2808]
push eax
push ebx
call sub.wsock32.dll_send
lea eax, [esp + 0x3000]
mov edx, 0x800
call fcn.00402ed0
push 0
push 0x7ff
lea eax, [esp + 0x3008]
push eax
push ebx
call sub.wsock32.dll_recv
push ebx
call sub.wsock32.dll_closesocket
call sub.wsock32.dll_WSACleanup
lea eax, [esp + 0x3000]
push eax
call sub.kernel32.dll_lstrlenA_1
mov ebx, eax
mov eax, esp
mov edx, 0x800
call fcn.00402ed0
lea edx, [esp + ebx + 0x2ffa]
mov eax, esp
mov ecx, 6
call fcn.00402ec8
mov dl, byte [esp]
mov eax, edx
cmp al, 0x41
jb 0x4039cf
cmp al, 0x5a
ja 0x4039cf
mov al, byte [esp + 1]
cmp al, 0x30
jb 0x4039cf
mov al, byte [esp + 1]
cmp al, 0x39
ja 0x4039cf
mov al, byte [esp + 2]
cmp al, 0x41
jb 0x4039cf
mov al, byte [esp + 2]
cmp al, 0x5a
ja 0x4039cf
mov al, byte [esp + 3]
cmp al, 0x30
jb 0x4039cf
mov al, byte [esp + 3]
cmp al, 0x39
ja 0x4039cf
mov al, byte [esp + 4]
cmp al, 0x41
jb 0x4039cf
mov al, byte [esp + 4]
cmp al, 0x5a
ja 0x4039cf
mov al, byte [esp + 5]
cmp al, 0x30
jb 0x4039cf
mov al, byte [esp + 5]
cmp al, 0x39
ja 0x4039cf
mov byte [0x408394], dl
mov al, byte [esp + 1]
mov byte [0x408395], al
mov byte [0x408396], 0
mov al, byte [esp + 2]
mov byte [0x4083b4], al
mov al, byte [esp + 3]
mov byte [0x4083b5], al
mov byte [0x4083b6], 0
mov al, byte [esp + 4]
mov byte [0x4083d4], al
mov al, byte [esp + 5]
mov byte [0x4083d5], al
mov byte [0x4083d6], 0
add esp, 0x39a0
pop esi
pop ebx
ret