Function at 0x1002c2a0
Capabilities:
Check for time delay via gettickcount
Create tcp socket
Create udp socket
Get local ipv4 addresses
Get socket information
Get socket status
Start tcp server

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1004f002
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0x35cc
call fcn.10036fa0
mov eax, dword [0x1005d330]
push ebx
push esi
mov dword [ebp - 0x14], eax
mov eax, dword [0x1005ff90]
test eax, eax
push edi
mov esi, ecx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x3458], esi
je 0x1002cc44
mov eax, dword [0x1005ff94]
test eax, eax
je 0x1002cc44
mov ebx, dword [ebp + 8]
push 0
push ebx
push 0
push 0
mov ecx, 0x1005ed60
call fcn.100128c0
mov edi, 1
cmp eax, edi
jne 0x1002cc44
mov edx, dword [ebx + 4]
push 8
lea eax, [ebp - 0x345c]
push eax
lea ecx, [ebp - 0x1047]
push ecx
push edx
mov ecx, esi
mov byte [ebp - 0x1048], 4
mov dword [ebp - 0x345c], edi
call fcn.10017520
mov edx, dword [ebx + 4]
push 8
lea eax, [ebp - 0x345c]
push eax
lea ecx, [ebp - 0x1046]
push ecx
push edx
mov ecx, esi
mov byte [ebp - 0x48], 0
mov dword [ebp - 0x345c], 7
call fcn.10017520
test eax, eax
je 0x1002cc44
mov eax, dword [ebp - 0x345c]
mov cl, byte [ebp + eax - 0x1047]
test cl, cl
je 0x1002c3c7
mov edi, edi
push 8
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp + eax - 0x1046]
mov eax, dword [ebx + 4]
push edx
push eax
mov ecx, esi
mov dword [ebp + 8], edi
call fcn.10017520
test eax, eax
je 0x1002cc44
mov eax, dword [ebp - 0x345c]
inc eax
cmp eax, 0x106
mov dword [ebp - 0x345c], eax
ja 0x1002cc44
mov cl, byte [ebp + eax - 0x1047]
test cl, cl
jne 0x1002c380
mov al, byte [ebp - 0x1047]
xor ecx, ecx
cmp al, 1
mov dword [ebp + 8], 0xffffffff
mov dword [ebp - 4], ecx
jne 0x1002c7cc
push ecx
push edi
push 2
mov byte [ebp - 0x1048], cl
call dword [sym.imp.WS2_32.dll_socket]
mov dword [ebp + 8], eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
test eax, eax
je 0x1002c434
mov edx, dword [ebx + 4]
push 8
lea ecx, [ebp - 0x1048]
push ecx
push edx
mov ecx, esi
mov byte [ebp - 0x1047], 0x5b
call fcn.10017640
push 0x10058824
lea eax, [ebp - 0x34a0]
push eax
mov dword [ebp - 0x34a0], 0
call fcn.100374b2
mov cx, word [ebp - 0x1046]
mov edx, dword [ebp - 0x1044]
mov word [ebp - 0x22], cx
mov byte [ebp - 0x1448], 0
xor eax, eax
mov ecx, 0xff
lea edi, [ebp - 0x1447]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov esi, edx
stosb byte es:[edi], al
mov edi, dword [sym.imp.WS2_32.dll_inet_ntoa]
push edx
mov dword [ebp - 0x20], esi
call edi
test eax, eax
je 0x1002c48a
push esi
call edi
lea edx, [ebp - 0x1448]
lea esp, [esp]
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
test cl, cl
jne 0x1002c480
push 6
lea edx, [ebp - 0x1448]
push str.0.0.0.
push edx
call fcn.10040b84
add esp, 0xc
test eax, eax
jne 0x1002c5aa
lea eax, [ebp - 0x1040]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1002c4b1
sub eax, edx
lea eax, [ebp + eax - 0x1040]
mov esi, eax
mov dword [ebp - 0x3460], eax
lea eax, [ebp - 0x1048]
sub esi, eax
inc esi
cmp dword [ebx], 2
jne 0x1002c572
mov ecx, dword [ebp - 0x3458]
mov eax, dword [ecx + 0x110]
test eax, eax
je 0x1002c56d
mov eax, dword [ebx + 4]
push 8
lea edx, [ebp - 0x3454]
push edx
lea edi, [ebp + esi - 0x1048]
push edi
push eax
mov dword [ebp - 0x3454], 1
call fcn.10017520
test eax, eax
jne 0x1002c52e
push 0x10058824
lea ecx, [ebp - 0x347c]
push ecx
mov dword [ebp - 0x347c], eax
call fcn.100374b2
cmp byte [edi], 0
je 0x1002c56d
lea eax, [ebp - 0x1040]
inc esi
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1002c540
sub eax, edx
add eax, 0xff
cmp esi, eax
jle 0x1002c4d2
push 0x10058824
lea edx, [ebp - 0x3470]
push edx
mov dword [ebp - 0x3470], 0
call fcn.100374b2
cmp dword [ebx], 2
je 0x1002c58d
push 0x10058824
lea eax, [ebp - 0x3478]
push eax
mov dword [ebp - 0x3478], 0
call fcn.100374b2
mov ecx, dword [ebp - 0x3460]
inc ecx
lea edx, [ebp - 0x1448]
lea ebx, [ebx]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x1002c5a0
mov esi, dword [ebp - 0x22]
xor eax, eax
mov byte [ebp - 0x244c], 0
mov ecx, 0x400
lea edi, [ebp - 0x244b]
rep stosd dword es:[edi], eax
mov edi, dword [sym.imp.WS2_32.dll_ntohs]
push esi
call edi
movzx ecx, ax
push ecx
lea edx, [ebp - 0x1448]
push edx
lea eax, [ebp - 0x244c]
push str.CONNECT__s:_d
push eax
call fcn.10036e11
add esp, 0xc
lea edx, [ebp - 0x244c]
mov ecx, esp
mov dword [ebp - 0x3454], esp
push edx
call fcn.100047c0
push ecx
mov ecx, esp
mov dword [ebp - 0x3460], esp
push str.SOCKS4
mov byte [ebp - 4], 1
call fcn.100047c0
push ecx
mov ecx, esp
mov dword [ebp - 0x3464], esp
push 0x10050713
mov byte [ebp - 4], 2
call fcn.100047c0
push ebx
mov ecx, 0x1005ed60
mov byte [ebp - 4], 0
call fcn.1000cbb0
push ecx
mov ecx, esp
mov dword [ebp - 0x3464], esp
push 0x10050713
call fcn.100047c0
push esi
mov byte [ebp - 4], 3
call edi
movzx eax, ax
push eax
push ecx
lea edx, [ebp - 0x1448]
mov ecx, esp
mov dword [ebp - 0x3454], esp
push edx
call fcn.100047c0
push ebx
mov ecx, 0x1005ed60
mov byte [ebp - 4], 0
call fcn.100109a0
test eax, eax
je 0x1002c69d
push 0x10058824
lea eax, [ebp - 0x3480]
push eax
mov dword [ebp - 0x3480], 0
call fcn.100374b2
lea ecx, [ebp - 0x34d8]
call fcn.1001b740
lea ecx, [ebp - 0x34d8]
push ecx
push 1
mov ecx, 0x1005ff80
mov byte [ebp - 4], 4
call fcn.10030070
mov ecx, dword [0x10078d54]
xor eax, eax
test ecx, ecx
je 0x1002c6ed
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0x3454]
push edx
lea eax, [ebp - 0x44]
push eax
push ecx
mov dword [ebp - 0x3454], 0x10
call dword [sym.imp.WS2_32.dll_getsockname]
mov eax, dword [ebp - 0x40]
push eax
lea edx, [ebp - 0x34d8]
push edx
push esi
call edi
mov edx, dword [ebp + 8]
movzx eax, ax
push eax
lea ecx, [ebp - 0x1448]
push ecx
mov ecx, dword [ebp - 0x3458]
push edx
call fcn.10017d80
test eax, eax
jne 0x1002c750
mov ecx, dword [ebx + 4]
push 0xa
lea eax, [ebp - 0x1048]
push eax
push ecx
mov ecx, dword [ebp - 0x3458]
mov byte [ebp - 0x1047], 0x5c
call fcn.10017640
push 0x10058824
lea edx, [ebp - 0x3488]
push edx
mov dword [ebp - 0x3488], 0
call fcn.100374b2
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x3468]
push eax
lea ecx, [ebp - 0x34]
push ecx
push esi
mov dword [ebp - 0x3468], 0x10
call dword [sym.imp.WS2_32.dll_getsockname]
mov edx, dword [ebp - 0x30]
mov ax, word [ebp - 0x32]
mov edi, dword [ebp - 0x3458]
push 8
mov dword [ebp - 0x1046], edx
mov edx, dword [ebx + 4]
lea ecx, [ebp - 0x1048]
push ecx
push edx
mov ecx, edi
mov byte [ebp - 0x1047], 0x5a
mov word [ebp - 0x1044], ax
call fcn.10017640
mov eax, dword [ebx + 4]
push eax
push esi
push ebx
mov ecx, edi
call fcn.100176b0
push 0x10058824
lea ecx, [ebp - 0x34a8]
push ecx
mov dword [ebp - 0x34a8], 0
call fcn.100374b2
cmp al, 2
jne 0x1002cc18
mov edx, dword [ebp - 0x1044]
xor eax, eax
mov byte [ebp - 0x3450], 0
mov ecx, 0x400
lea edi, [ebp - 0x344f]
rep stosd dword es:[edi], eax
mov byte [ebp - 0x244c], al
mov ecx, 0x400
lea edi, [ebp - 0x244b]
push edx
rep stosd dword es:[edi], eax
call dword [sym.imp.WS2_32.dll_inet_ntoa]
test eax, eax
je 0x1002c820
mov ecx, eax
lea edx, [ebp - 0x244c]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x1002c816
mov eax, dword [ebp - 0x1046]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx ecx, ax
push ecx
lea edx, [ebp - 0x244c]
push edx
lea eax, [ebp - 0x3450]
push str.BIND__s:_d
push eax
call fcn.10036e11
add esp, 0xc
lea edx, [ebp - 0x3450]
mov ecx, esp
mov dword [ebp - 0x3464], esp
push edx
call fcn.100047c0
push ecx
mov ecx, esp
mov dword [ebp - 0x3468], esp
push str.SOCKS4
mov byte [ebp - 4], 5
call fcn.100047c0
push ecx
mov ecx, esp
mov dword [ebp - 0x3454], esp
push 0x10050713
mov byte [ebp - 4], 6
call fcn.100047c0
push ebx
mov ecx, 0x1005ed60
mov byte [ebp - 4], 0
call fcn.1000cbb0
push 1
xor edi, edi
push edi
push edi
push edi
push 1
push 2
mov byte [ebp - 0x1048], 0
call dword [sym.imp.WS2_32.dll_WSASocketA]
mov dword [ebp + 8], eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
test eax, eax
je 0x1002c8f4
mov ecx, dword [ebx + 4]
push 0xa
lea eax, [ebp - 0x1048]
push eax
push ecx
mov ecx, esi
mov byte [ebp - 0x1047], 0x5b
call fcn.10017640
push 0x10058824
lea edx, [ebp - 0x34b0]
push edx
mov dword [ebp - 0x34b0], edi
call fcn.100374b2
mov ecx, dword [ebp + 8]
push 0x10
lea eax, [ebp - 0x24]
push eax
push ecx
mov word [ebp - 0x22], di
mov word [ebp - 0x24], 2
mov dword [ebp - 0x20], edi
call dword [sym.imp.WS2_32.dll_bind]
test eax, eax
je 0x1002c92c
push 0x10058824
lea edx, [ebp - 0x3494]
push edx
mov dword [ebp - 0x3494], edi
call fcn.100374b2
mov eax, dword [ebp + 8]
push 5
push eax
call dword [sym.imp.WS2_32.dll_listen]
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x3460]
push ecx
lea edx, [ebp - 0x24]
push edx
push eax
mov dword [ebp - 0x3460], 0x10
call dword [sym.imp.WS2_32.dll_getsockname]
mov cx, word [ebp - 0x22]
mov eax, dword [ebx + 4]
push 8
lea edx, [ebp - 0x1048]
push edx
mov word [ebp - 0x1046], cx
push eax
mov ecx, esi
mov dword [ebp - 0x20], edi
mov byte [ebp - 0x1047], 0x5a
mov dword [ebp - 0x1044], edi
call fcn.10017640
cmp eax, edi
jne 0x1002c9a1
push 0x10058824
lea ecx, [ebp - 0x3474]
push ecx
mov dword [ebp - 0x3474], edi
call fcn.100374b2
mov dword [ebp - 0x2c], 1
mov dword [ebp - 0x28], edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, eax
cmp dword [ebx], 2
jne 0x1002cb45
mov edx, dword [ebp - 0x3458]
mov eax, dword [edx + 0x110]
test eax, eax
je 0x1002cb45
mov edx, dword [ebp + 8]
xor ecx, ecx
mov dword [ebp - 0x35dc], ecx
xor eax, eax
lea ecx, [ecx]
cmp eax, ecx
jae 0x1002c9f2
cmp dword [ebp + eax*4 - 0x35d8], edx
je 0x1002c9f0
inc eax
jmp 0x1002c9e0
cmp eax, ecx
jne 0x1002ca0d
cmp ecx, 0x40
jae 0x1002ca0d
mov dword [ebp + eax*4 - 0x35d8], edx
mov ecx, dword [ebp - 0x35dc]
inc ecx
mov dword [ebp - 0x35dc], ecx
xor eax, eax
nop
cmp eax, ecx
jae 0x1002ca25
mov edx, dword [ebp + eax*4 - 0x35d8]
cmp edx, dword [ebx + 4]
je 0x1002ca23
inc eax
jmp 0x1002ca10
cmp eax, ecx
jne 0x1002ca3c
cmp ecx, 0x40
jae 0x1002ca3c
mov ecx, dword [ebx + 4]
mov dword [ebp + eax*4 - 0x35d8], ecx
inc dword [ebp - 0x35dc]
lea edx, [ebp - 0x2c]
push edx
push 0
push 0
lea eax, [ebp - 0x35dc]
push eax
push 0x40
call dword [sym.imp.WS2_32.dll_select]
mov esi, eax
test esi, esi
jne 0x1002ca9d
mov eax, dword [0x1005c168]
test eax, eax
jle 0x1002c9b3
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [0x1005c168]
imul ecx, ecx, 0x3e8
sub eax, edi
cmp eax, ecx
jle 0x1002c9b3
push 0x10058824
lea edx, [ebp - 0x34a4]
push edx
mov dword [ebp - 0x34a4], 0xffffffff
call fcn.100374b2
call dword [sym.imp.KERNEL32.dll_GetTickCount]
test esi, esi
mov edi, eax
jge 0x1002cac4
push 0x10058824
lea eax, [ebp - 0x346c]
push eax
mov dword [ebp - 0x346c], 0
call fcn.100374b2
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x35dc]
push ecx
push esi
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x1002cb8f
lea edx, [ebp - 0x3460]
push edx
lea eax, [ebp - 0x44]
push eax
push esi
mov dword [ebp - 0x3460], 0x10
call dword [sym.imp.WS2_32.dll_accept]
mov esi, eax
test esi, esi
je 0x1002cb45
mov cx, word [ebp - 0x42]
mov edx, dword [ebp - 0x40]
mov edi, dword [ebp - 0x3458]
push 8
mov word [ebp - 0x1046], cx
mov ecx, dword [ebx + 4]
lea eax, [ebp - 0x1048]
push eax
push ecx
mov ecx, edi
mov byte [ebp - 0x1048], 0
mov byte [ebp - 0x1047], 0x5a
mov dword [ebp - 0x1044], edx
call fcn.10017640
test eax, eax
jne 0x1002cb60
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
push 0x10058824
lea eax, [ebp - 0x3490]
push eax
mov dword [ebp - 0x3490], 0
call fcn.100374b2
mov edx, dword [ebx + 4]
push edx
push esi
push ebx
mov ecx, edi
call fcn.100176b0
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
push 0x10058824
lea eax, [ebp - 0x349c]
push eax
mov dword [ebp - 0x349c], 0
call fcn.100374b2
mov edx, dword [ebx + 4]
lea ecx, [ebp - 0x35dc]
push ecx
push edx
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x1002c9b3
mov edx, dword [ebx + 4]
xor esi, esi
push esi
lea eax, [ebp - 0x3454]
push eax
lea ecx, [ebp - 0x1048]
push ecx
mov ecx, dword [ebp - 0x3458]
push edx
mov dword [ebp - 0x3454], 0x1000
call fcn.10017520
cmp eax, esi
push 0x10058824
jne 0x1002cbec
lea eax, [ebp - 0x3484]
push eax
mov dword [ebp - 0x3484], esi
call fcn.100374b2
cmp dword [ebp - 0x3454], esi
jne 0x1002cc06
lea ecx, [ebp - 0x34ac]
push ecx
mov dword [ebp - 0x34ac], esi
call fcn.100374b2
lea edx, [ebp - 0x348c]
push edx
mov dword [ebp - 0x348c], esi
call fcn.100374b2
mov dword [ebp - 0x3498], ecx
push 0x10058824
lea ecx, [ebp - 0x3498]
push ecx
call fcn.100374b2
mov eax, dword [ebp + 8]
cmp eax, 0xffffffff
je 0x1002cc3e
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
mov eax, 0x1002cc44
ret
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x14]
xor eax, eax
call fcn.10036c09
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4