Function at 0x403790
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
Send http request
Send http request with host header

Disassembly:
push ebx
push esi
push eax
mov eax, 3
add esp, 0xfffff004
push eax
dec eax
jne 0x403798
mov eax, dword [esp + 0x3000]
add esp, 0xfffff664
push 0x408294
call sub.kernel32.dll_lstrlenA_1
test eax, eax
jle 0x403b13
push 0x4082b4
call sub.kernel32.dll_lstrlenA_1
test eax, eax
jle 0x403b13
push 0x403b1c
lea eax, [esp + 0x1004]
push eax
call sub.kernel32.dll_lstrcpyA_1
push 0x403b20
lea eax, [esp + 0x1004]
push eax
call sub.kernel32.dll_lstrcatA_1
mov ecx, 0x403b24
mov edx, esp
mov eax, 0x408294
call fcn.00402284
push esp
lea eax, [esp + 0x1004]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0x800
push 0x407d20
lea ecx, [esp + 0x808]
mov edx, 0x403b28
mov eax, 0x403b30
call fcn.00402cac
lea edx, [esp + 0x800]
lea eax, [esp + 0x800]
call fcn.0040232c
lea edx, [esp + 0x800]
lea eax, [esp + 0x800]
xor ecx, ecx
call fcn.004024e4
push 0x403b38
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, 0x403b40
lea eax, [esp + 0x800]
mov ecx, 2
call fcn.00402114
mov esi, eax
lea eax, [esp + 0x1800]
mov edx, 0x800
call fcn.00403014
lea eax, [esp + 0x2000]
mov edx, 0x800
call fcn.00403014
mov ecx, esi
sub ecx, 7
dec ecx
lea edx, [esp + 0x807]
lea eax, [esp + 0x1800]
call fcn.0040300c
mov ecx, ebx
sub ecx, esi
inc ecx
lea edx, [esp + esi + 0x7ff]
lea eax, [esp + 0x2000]
call fcn.0040300c
push 0x403b44
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 0x403b4c
lea eax, [esp + 0x2804]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0x403b58
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 0x403b60
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.00403014
mov word [esp + 0x3990], 2
push 0x50
call sub.wsock32.dll_htons
mov word [esp + 0x3992], ax
lea eax, [esp + 0x1800]
call fcn.00402e8c
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.00403014
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.00403014
lea edx, [esp + ebx + 0x2ffa]
mov eax, esp
mov ecx, 6
call fcn.0040300c
mov dl, byte [esp]
mov eax, edx
cmp al, 0x41
jb 0x403b13
cmp al, 0x5a
ja 0x403b13
mov al, byte [esp + 1]
cmp al, 0x30
jb 0x403b13
mov al, byte [esp + 1]
cmp al, 0x39
ja 0x403b13
mov al, byte [esp + 2]
cmp al, 0x41
jb 0x403b13
mov al, byte [esp + 2]
cmp al, 0x5a
ja 0x403b13
mov al, byte [esp + 3]
cmp al, 0x30
jb 0x403b13
mov al, byte [esp + 3]
cmp al, 0x39
ja 0x403b13
mov al, byte [esp + 4]
cmp al, 0x41
jb 0x403b13
mov al, byte [esp + 4]
cmp al, 0x5a
ja 0x403b13
mov al, byte [esp + 5]
cmp al, 0x30
jb 0x403b13
mov al, byte [esp + 5]
cmp al, 0x39
ja 0x403b13
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