Function at 0x5ac250
Capabilities:
Act as tcp client
Check for time delay via gettickcount
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Receive data
Receive data on socket
Send data
Send data on socket
Send http request

Disassembly:
push 0xffffffffffffffff
push 0x795f90
mov eax, dword fs:[0]
push eax
sub esp, 0x4fc
mov eax, dword [0x856918]
xor eax, esp
mov dword [esp + 0x4f8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x856918]
xor eax, esp
push eax
lea eax, [esp + 0x510]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x520]
push 6
push 1
push 2
mov dword [esp + 0x24], ebp
call dword [sym.imp.WS2_32.dll_socket]
mov edi, eax
cmp edi, 0xffffffff
jne 0x5ac32e
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.005abb10
push eax
lea ecx, [esp + 0x28]
push str.CCategoryManager::CheckSpeedHTTP_failed_to_create_socket_with_error:
xor ebx, ebx
push ecx
mov dword [esp + 0x52c], ebx
call fcn.00404cfa
push 1
push eax
mov byte [esp + 0x534], 1
call fcn.005a7050
mov esi, 0x10
add esp, 0x1c
cmp dword [esp + 0x34], esi
jb 0x5ac302
mov edx, dword [esp + 0x20]
push edx
call fcn.00564155
add esp, 4
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
cmp dword [esp + 0x50], esi
jb 0x5ac80c
mov eax, dword [esp + 0x3c]
push eax
call fcn.00564155
add esp, 4
jmp 0x5ac80c
mov ecx, dword [esp + 0x528]
xor eax, eax
push ecx
xor ebx, ebx
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], eax
call dword [sym.imp.WS2_32.dll_htons]
mov word [esp + 0xe2], ax
mov eax, dword [esp + 0x524]
push 0xa
mov edx, 2
push str.google.com
lea ecx, [esp + 0xf8]
mov word [esp + 0xe8], dx
mov dword [esp + 0xec], eax
mov dword [esp + 0x110], 0xf
mov dword [esp + 0x10c], ebx
mov byte [esp + 0xfc], bl
call fcn.00405920
mov esi, 0x10
mov dword [esp + 0x518], 2
cmp dword [0x85803c], esi
jb 0x5ac3cf
mov ecx, dword [0x858028]
mov dword [esp + 0x14], ecx
jmp 0x5ac3d7
mov dword [esp + 0x14], 0x858028
mov edx, dword [esp + 0xf4]
cmp dword [esp + 0x108], esi
jae 0x5ac3ee
lea edx, [esp + 0xf4]
mov ecx, dword [0x85800c]
cmp dword [0x858020], esi
jae 0x5ac401
mov ecx, 0x85800c
cmp dword [ebp + 0x18], esi
jb 0x5ac40b
mov eax, dword [ebp + 4]
jmp 0x5ac40e
lea eax, [ebp + 4]
mov ebp, dword [esp + 0x52c]
push ebp
mov ebp, dword [esp + 0x18]
push ebp
push ebx
push ebx
push 1
push 1
push ebx
push edx
push ecx
push eax
lea edx, [esp + 0xec]
push edx
call fcn.005ab190
add esp, 0x2c
mov ebp, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov byte [esp + 0x518], 3
call ebp
mov dword [esp + 0x14], eax
push esi
lea eax, [esp + 0xe4]
push eax
push edi
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x5ac598
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
lea ecx, [esp + 0x74]
push ecx
call fcn.005abb10
mov edi, eax
mov edx, dword [esp + 0x20]
push edx
lea eax, [esp + 0x44]
push str.CCategoryManager::CheckSpeedHTTP_failed_to_connect_to_server:
push eax
mov byte [esp + 0x52c], 4
call fcn.00404cfa
push str._with_error:
push eax
lea ecx, [esp + 0x70]
push ecx
mov byte [esp + 0x538], 5
call fcn.00405939
push edi
push eax
lea edx, [esp + 0x44]
push edx
mov byte [esp + 0x544], 6
call fcn.00402fd1
push 1
push eax
mov byte [esp + 0x54c], 7
call fcn.005a7050
add esp, 0x34
cmp dword [esp + 0x34], esi
jb 0x5ac4e3
mov eax, dword [esp + 0x20]
push eax
call fcn.00564155
add esp, 4
mov edi, 0xf
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
cmp dword [esp + 0x6c], esi
jb 0x5ac507
mov ecx, dword [esp + 0x58]
push ecx
call fcn.00564155
add esp, 4
mov dword [esp + 0x6c], edi
mov dword [esp + 0x68], ebx
mov byte [esp + 0x58], bl
cmp dword [esp + 0x50], esi
jb 0x5ac526
mov edx, dword [esp + 0x3c]
push edx
call fcn.00564155
add esp, 4
mov dword [esp + 0x50], edi
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3c], bl
cmp dword [esp + 0x88], esi
jb 0x5ac548
mov eax, dword [esp + 0x74]
push eax
call fcn.00564155
add esp, 4
cmp dword [esp + 0xdc], esi
jb 0x5ac561
mov ecx, dword [esp + 0xc8]
push ecx
call fcn.00564155
add esp, 4
mov dword [esp + 0xdc], edi
mov dword [esp + 0xd8], ebx
mov byte [esp + 0xc8], bl
cmp dword [esp + 0x108], esi
jb 0x5ac80c
mov edx, dword [esp + 0xf4]
push edx
call fcn.00564155
add esp, 4
jmp 0x5ac80c
mov eax, dword [esp + 0xc8]
cmp dword [esp + 0xdc], esi
jae 0x5ac5af
lea eax, [esp + 0xc8]
mov ecx, dword [esp + 0xd8]
push ebx
push ecx
push eax
push edi
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x5ac706
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
lea edx, [esp + 0x74]
push edx
call fcn.005abb10
mov ebp, eax
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x28]
push str.CCategoryManager::CheckSpeedHTTP_failed_to_send_data_to_server:
push ecx
mov byte [esp + 0x52c], 8
call fcn.00404cfa
push str._with_error:
push eax
lea edx, [esp + 0x70]
push edx
mov byte [esp + 0x538], 9
call fcn.00405939
push ebp
push eax
lea eax, [esp + 0x60]
push eax
mov byte [esp + 0x544], 0xa
call fcn.00402fd1
push 1
push eax
mov byte [esp + 0x54c], 0xb
call fcn.005a7050
add esp, 0x34
cmp dword [esp + 0x50], esi
jb 0x5ac64a
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.00564155
add esp, 4
mov ebp, 0xf
mov dword [esp + 0x50], ebp
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3c], bl
cmp dword [esp + 0x6c], esi
jb 0x5ac66e
mov edx, dword [esp + 0x58]
push edx
call fcn.00564155
add esp, 4
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x68], ebx
mov byte [esp + 0x58], bl
cmp dword [esp + 0x34], esi
jb 0x5ac68d
mov eax, dword [esp + 0x20]
push eax
call fcn.00564155
add esp, 4
mov dword [esp + 0x34], ebp
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
cmp dword [esp + 0x88], esi
jb 0x5ac6af
mov ecx, dword [esp + 0x74]
push ecx
call fcn.00564155
add esp, 4
push edi
call dword [sym.imp.WS2_32.dll_closesocket]
cmp dword [esp + 0xdc], esi
jb 0x5ac6cf
mov edx, dword [esp + 0xc8]
push edx
call fcn.00564155
add esp, 4
mov dword [esp + 0xdc], ebp
mov dword [esp + 0xd8], ebx
mov byte [esp + 0xc8], bl
cmp dword [esp + 0x108], esi
jb 0x5ac80c
mov eax, dword [esp + 0xf4]
push eax
call fcn.00564155
add esp, 4
jmp 0x5ac80c
push 0x3ff
lea ecx, [esp + 0x111]
push ebx
push ecx
mov byte [esp + 0x118], bl
call fcn.00566330
add esp, 0xc
push ebx
push 0x3ff
lea edx, [esp + 0x114]
push edx
push edi
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, ebx
jl 0x5ac743
mov byte [esp + eax + 0x10c], bl
cmp eax, 0xffffffff
jne 0x5ac836
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
lea eax, [esp + 0x90]
push eax
call fcn.005abb10
mov esi, eax
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0xb4]
push str.CCategoryManager::CheckSpeedHTTP_failed_to_receive_data_from_server:
push edx
mov byte [esp + 0x52c], 0xc
call fcn.00404cfa
push str._with_error:
push eax
lea eax, [esp + 0x70]
push eax
mov byte [esp + 0x538], 0xd
call fcn.00405939
push esi
push eax
lea ecx, [esp + 0x98]
push ecx
mov byte [esp + 0x544], 0xe
call fcn.00402fd1
push 1
push eax
mov byte [esp + 0x54c], 0xf
call fcn.005a7050
add esp, 0x34
lea ecx, [esp + 0x70]
call fcn.00402ed7
lea ecx, [esp + 0x54]
call fcn.00402ed7
lea ecx, [esp + 0xa8]
call fcn.00402ed7
lea ecx, [esp + 0x8c]
call fcn.00402ed7
push edi
call dword [sym.imp.WS2_32.dll_closesocket]
lea ecx, [esp + 0xc4]
call fcn.00402ed7
lea ecx, [esp + 0xf0]
call fcn.00402ed7
xor eax, eax
mov ecx, dword [esp + 0x510]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x4f8]
xor ecx, esp
call fcn.00564b24
add esp, 0x508
ret
call ebp
mov esi, eax
sub esi, dword [esp + 0x14]
jne 0x5ac845
mov esi, 1
push edi
call dword [sym.imp.WS2_32.dll_closesocket]
lea edx, [esp + 0x10c]
push edx
call fcn.005ab860
add esp, 4
test al, al
je 0x5ac7f4
lea ecx, [esp + 0xc4]
call fcn.00402ed7
lea ecx, [esp + 0xf0]
call fcn.00402ed7
mov eax, esi
jmp 0x5ac80e