Function at 0x52d0e8
Capabilities:
Connect socket
Connect udp socket
Create udp socket
Get local ipv4 addresses
Get socket information
Receive data
Receive data on socket
Send data
Send data on socket
Send http request
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x32
push 0
push 0
dec ecx
jne 0x52d0f0
push ebx
push esi
push edi
mov esi, edx
lea edi, [ebp - 0x6c]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x52dbd2
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.kernel32.dll_GetTickCount_1
mov ebx, eax
movzx eax, word [ebp - 0x3a]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x404]
jne 0x52d144
mov eax, dword [ebp - 4]
mov edx, ebx
sub edx, dword [eax + 0x400]
cmp edx, 0x320
jbe 0x52d20c
push 0x52dbec
lea edx, [ebp - 0x100]
xor eax, eax
mov al, byte [ebp - 0x6c]
call fcn.00408e38
push dword [ebp - 0x100]
push 0x52dc08
lea eax, [ebp - 0x104]
lea edx, [ebp - 0x6b]
mov ecx, 0x20
call fcn.00404880
push dword [ebp - 0x104]
push 0x52dc1c
lea eax, [ebp - 0x108]
lea edx, [ebp - 0x4b]
mov ecx, 0x10
call fcn.00404880
push dword [ebp - 0x108]
push 0x52dc30
lea edx, [ebp - 0x10c]
movzx eax, word [ebp - 0x3a]
call fcn.00408e38
push dword [ebp - 0x10c]
push 0x52dc3c
mov eax, dword [ebp - 4]
push dword [eax + 0x400]
mov eax, ebx
pop edx
sub eax, edx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x110]
call fcn.00408f24
push dword [ebp - 0x110]
lea eax, [ebp - 0xfc]
mov edx, 0xa
call fcn.00404990
mov edx, dword [ebp - 0xfc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp 0x52d2d6
push 0x52dbec
lea edx, [ebp - 0x118]
xor eax, eax
mov al, byte [ebp - 0x6c]
call fcn.00408e38
push dword [ebp - 0x118]
push 0x52dc08
lea eax, [ebp - 0x11c]
lea edx, [ebp - 0x6b]
mov ecx, 0x20
call fcn.00404880
push dword [ebp - 0x11c]
push 0x52dc1c
lea eax, [ebp - 0x120]
lea edx, [ebp - 0x4b]
mov ecx, 0x10
call fcn.00404880
push dword [ebp - 0x120]
push 0x52dc30
lea edx, [ebp - 0x124]
movzx eax, word [ebp - 0x3a]
call fcn.00408e38
push dword [ebp - 0x124]
push 0x52dc58
mov eax, dword [ebp - 4]
push dword [eax + 0x400]
mov eax, ebx
pop edx
sub eax, edx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x128]
call fcn.00408f24
push dword [ebp - 0x128]
lea eax, [ebp - 0x114]
mov edx, 0xa
call fcn.00404990
mov edx, dword [ebp - 0x114]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
xor ebx, ebx
jmp 0x52dba7
mov eax, dword [ebp - 4]
mov dword [eax + 0x400], ebx
movzx eax, word [ebp - 0x3a]
mov edx, dword [ebp - 4]
mov dword [edx + 0x404], eax
lea edx, [ebp - 0x12c]
mov eax, dword [0x538c6c]
mov eax, dword [eax]
call fcn.00472750
mov eax, dword [ebp - 0x12c]
lea edx, [ebp - 0x10]
call fcn.0040945c
lea eax, [ebp - 0x130]
mov ecx, 0x52dc7c
mov edx, dword [ebp - 0x10]
call fcn.0040491c
mov ecx, dword [ebp - 0x130]
mov dl, 1
mov eax, dword [0x4327d0]
call fcn.00432880
mov ebx, eax
push 0x50
mov ecx, 0x52dc9c
mov edx, 0x52dcb0
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 8]
mov dword [ebp - 0x20], eax
push 0x13ba
mov ecx, 0x52dcc8
mov edx, 0x52dce0
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 8]
mov dword [ebp - 0x24], eax
mov eax, ebx
call fcn.004037fc
xor ebx, ebx
mov bl, byte [ebp - 0x3b]
dec ebx
cmp ebx, 7
jle 0x52d37c
or ebx, 0xffffffff
jmp 0x52dba7
mov eax, ebx
dec eax
test eax, eax
jl 0x52d454
inc eax
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x38]
lea edx, [ebp - 0x96]
mov cx, word [eax]
cmp cx, 0xa
jbe 0x52d3a5
mov word [edx], cx
jmp case.default.0x52d3b1
movzx ecx, cx
cmp ecx, 0xa
ja case.default.0x52d3b1
jmp dword [ecx*4 + 0x52d3b8]
mov cx, word [ebp - 0x20]
mov word [edx], cx
jmp case.default.0x52d3b1
mov cx, word [ebp - 0x24]
mov word [edx], cx
jmp case.default.0x52d3b1
mov cx, word [ebp - 0x24]
inc ecx
mov word [edx], cx
jmp case.default.0x52d3b1
cmp dword [ebp - 0x24], 0x13ba
jne 0x52d410
mov word [edx], 0x1a85
jmp case.default.0x52d3b1
mov cx, word [ebp - 0x24]
add cx, 0x2710
mov word [edx], cx
jmp case.default.0x52d3b1
mov cx, word [ebp - 0x24]
sub cx, 0xa
mov word [edx], cx
jmp case.default.0x52d3b1
mov cx, word [ebp - 0x24]
add cx, 0x7d0
mov word [edx], cx
jmp case.default.0x52d3b1
mov word [edx], 0
jmp case.default.0x52d3b1
mov word [edx], 0
add edx, 2
add eax, 2
dec dword [ebp - 0x2c]
jne 0x52d394
dec ebx
test ebx, ebx
jl 0x52dba5
inc ebx
mov dword [ebp - 0x2c], ebx
lea esi, [ebp - 0x96]
lea ebx, [ebp - 0x88]
cmp word [esi], 0
jne 0x52d47c
mov dword [ebp - 0x28], 0xffffffff
jmp 0x52d481
xor eax, eax
mov dword [ebp - 0x28], eax
lea edx, [ebp - 0x138]
movzx eax, word [ebp - 0x36]
call fcn.00408e38
mov ecx, dword [ebp - 0x138]
lea eax, [ebp - 0x134]
mov edx, 0x52dcfc
call fcn.0040491c
mov edx, dword [ebp - 0x134]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
cmp word [ebp - 0x36], 0x32
je 0x52d7c3
push 0x11
push 2
push 2
call sub.wsock32.dll_socket
mov edi, eax
mov dword [ebx], edi
inc edi
jne 0x52d4fe
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34c]
mov eax, dword [eax + 0x220]
mov edx, 0x52dd20
mov ecx, dword [eax]
call dword [ecx + 0x38]
or ebx, 0xffffffff
jmp 0x52dba7
mov dword [ebp - 0x18], 1
push 4
lea eax, [ebp - 0x18]
push eax
push 4
push 0xffff
mov eax, dword [ebx]
push eax
call sub.wsock32.dll_setsockopt
inc eax
jne 0x52d53e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34c]
mov eax, dword [eax + 0x220]
mov edx, 0x52dd54
mov ecx, dword [eax]
call dword [ecx + 0x38]
or ebx, 0xffffffff
jmp 0x52dba7
lea eax, [ebp - 0xa8]
mov edx, 0x10
call fcn.0040769c
mov word [ebp - 0xa8], 2
xor eax, eax
mov dword [ebp - 0xa4], eax
mov di, word [esi]
push edi
call sub.wsock32.dll_htons
mov word [ebp - 0xa6], ax
push 0x10
lea eax, [ebp - 0xa8]
push eax
mov eax, dword [ebx]
push eax
call sub.wsock32.dll_bind
lea eax, [ebp - 0xa8]
mov edx, 0x10
call fcn.0040769c
mov word [ebp - 0xa8], 2
lea eax, [ebp - 0x14]
mov edx, dword [0x538e18]
mov ecx, 0x10
call fcn.00404880
mov eax, dword [ebp - 0x14]
call fcn.00404ad0
push eax
call sub.wsock32.dll_inet_addr
mov dword [ebp - 0xa4], eax
push 0x53c
call sub.wsock32.dll_htons
mov word [ebp - 0xa6], ax
push 0x10
lea eax, [ebp - 0xa8]
push eax
mov eax, dword [ebx]
push eax
call sub.wsock32.dll_connect
mov edi, eax
test edi, edi
je 0x52d624
push 0x52dd8c
push dword [ebp - 0x14]
push 0x52ddb0
lea eax, [ebp - 0x13c]
mov edx, 3
call fcn.00404990
mov edx, dword [ebp - 0x13c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp 0x52d7c3
push 0x52dd8c
push dword [ebp - 0x14]
push 0x52ddd8
lea eax, [ebp - 0x140]
mov edx, 3
call fcn.00404990
mov edx, dword [ebp - 0x140]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov dword [ebp - 0x1c], 0x10
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0xa8]
push eax
mov eax, dword [ebx]
push eax
call sub.wsock32.dll_getsockname
mov ax, word [ebp - 0xa6]
push eax
call sub.wsock32.dll_ntohs
mov edi, eax
cmp word [esi], 0
jne 0x52d68d
mov word [esi], di
lea edx, [ebp - 0x148]
movzx eax, di
call fcn.00408e38
mov ecx, dword [ebp - 0x148]
lea eax, [ebp - 0x144]
mov edx, 0x52de04
call fcn.0040491c
mov edx, dword [ebp - 0x144]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0xf8]
mov edx, 0x40
call fcn.0040769c
mov byte [ebp - 0xf8], 0x28
lea edx, [ebp - 0x6b]
lea eax, [ebp - 0xf7]
call fcn.004095fc
lea edx, [ebp - 0x4b]
lea eax, [ebp - 0xd7]
call fcn.004095fc
mov byte [ebp - 0xc7], 1
mov ax, word [ebp - 0x3a]
mov word [ebp - 0xc6], ax
mov dx, word [esi]
mov word [ebp - 0xc4], dx
mov word [ebp - 0xc2], ax
lea eax, [ebp - 0x4b]
push eax
call sub.wsock32.dll_inet_addr
mov dword [ebp - 0xc], eax
lea edx, [ebp - 0xc]
lea eax, [ebp - 0xc0]
mov ecx, 4
call fcn.00407694
push 0
push 0x40
lea eax, [ebp - 0xf8]
push eax
mov eax, dword [ebx]
push eax
call sub.wsock32.dll_send
mov edi, eax
push 0x52de44
lea edx, [ebp - 0x150]
mov eax, edi
call fcn.00408e38
push dword [ebp - 0x150]
push 0x52de68
lea edx, [ebp - 0x154]
movzx eax, word [ebp - 0x36]
call fcn.00408e38
push dword [ebp - 0x154]
lea eax, [ebp - 0x14c]
mov edx, 4
call fcn.00404990
mov edx, dword [ebp - 0x14c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 2
mov eax, dword [ebx]
push eax
call sub.wsock32.dll_shutdown
mov eax, dword [ebx]
push eax
call sub.wsock32.dll_closesocket
push 0x11
push 2
push 2
call sub.wsock32.dll_socket
mov edi, eax
mov dword [ebx], edi
inc edi
jne 0x52d7f6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34c]
mov eax, dword [eax + 0x220]
mov edx, 0x52de7c
mov ecx, dword [eax]
call dword [ecx + 0x38]
or ebx, 0xffffffff
jmp 0x52dba7
mov dword [ebp - 0x18], 1
push 4
lea eax, [ebp - 0x18]
push eax
push 4
push 0xffff
mov eax, dword [ebx]
push eax
call sub.wsock32.dll_setsockopt
inc eax
jne 0x52d836
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34c]
mov eax, dword [eax + 0x220]
mov edx, 0x52deb0
mov ecx, dword [eax]
call dword [ecx + 0x38]
or ebx, 0xffffffff
jmp 0x52dba7
lea eax, [ebp - 0xa8]
mov edx, 0x10
call fcn.0040769c
mov word [ebp - 0xa8], 2
xor eax, eax
mov dword [ebp - 0xa4], eax
mov di, word [esi]
push edi
call sub.wsock32.dll_htons
mov word [ebp - 0xa6], ax
push 0x10
lea eax, [ebp - 0xa8]
push eax
mov eax, dword [ebx]
push eax
call sub.wsock32.dll_bind
lea eax, [ebp - 0xb8]
mov edx, 0x10
call fcn.0040769c
mov word [ebp - 0xb8], 2
lea eax, [ebp - 0x4b]
push eax
call sub.wsock32.dll_inet_addr
mov dword [ebp - 0xb4], eax
mov ax, word [ebp - 0x3a]
push eax
call sub.wsock32.dll_htons
mov word [ebp - 0xb6], ax
xor edi, edi
test edi, edi
je 0x52d95c
call fcn.0040a90c
add esp, 0xfffffff8
fstp qword [esp]
wait
lea edx, [ebp - 0x15c]
mov eax, 0x52deec
call fcn.0040b588
push dword [ebp - 0x15c]
push 0x52df00
lea edx, [ebp - 0x160]
mov eax, edi
call fcn.00408e38
push dword [ebp - 0x160]
push 0x52dc1c
lea eax, [ebp - 0x164]
lea edx, [ebp - 0x4b]
mov ecx, 0x10
call fcn.00404880
push dword [ebp - 0x164]
push 0x52dc30
lea edx, [ebp - 0x168]
movzx eax, word [ebp - 0x3a]
call fcn.00408e38
push dword [ebp - 0x168]
lea eax, [ebp - 0x158]
mov edx, 7
call fcn.00404990
mov edx, dword [ebp - 0x158]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp 0x52db96
call fcn.0040a90c
add esp, 0xfffffff8
fstp qword [esp]
wait
lea edx, [ebp - 0x170]
mov eax, 0x52deec
call fcn.0040b588
push dword [ebp - 0x170]
push 0x52df28
push 0x52dc1c
lea eax, [ebp - 0x174]
lea edx, [ebp - 0x4b]
mov ecx, 0x10
call fcn.00404880
push dword [ebp - 0x174]
push 0x52dc30
lea edx, [ebp - 0x178]
movzx eax, word [ebp - 0x3a]
call fcn.00408e38
push dword [ebp - 0x178]
lea eax, [ebp - 0x16c]
mov edx, 6
call fcn.00404990
mov edx, dword [ebp - 0x16c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov dword [ebp - 0x1c], 0x10
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0xa8]
push eax
mov eax, dword [ebx]
push eax
call sub.wsock32.dll_getsockname
mov ax, word [ebp - 0xa6]
push eax
call sub.wsock32.dll_ntohs
mov edi, eax
lea edx, [ebp - 0x180]
movzx eax, di
call fcn.00408e38
mov ecx, dword [ebp - 0x180]
lea eax, [ebp - 0x17c]
mov edx, 0x52df50
call fcn.0040491c
mov edx, dword [ebp - 0x17c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0xf8]
mov edx, 0x40
call fcn.0040769c
mov byte [ebp - 0xf8], 0x32
lea edx, [ebp - 0x6b]
lea eax, [ebp - 0xf7]
call fcn.004095fc
push dword [ebp - 0xa4]
call sub.wsock32.dll_inet_ntoa
mov edx, eax
lea eax, [ebp - 0xd7]
call fcn.004095fc
mov byte [ebp - 0xc7], 1
mov word [ebp - 0xc6], di
mov ax, word [ebp - 0x3a]
mov word [ebp - 0xc4], ax
lea eax, [ebp - 0x4b]
push eax
call sub.wsock32.dll_inet_addr
mov dword [ebp - 0xc], eax
lea edx, [ebp - 0xc]
lea eax, [ebp - 0xc2]
mov ecx, 4
call fcn.00407694
push 0x10
lea eax, [ebp - 0xb8]
push eax
push 0
push 0x40
lea eax, [ebp - 0xf8]
push eax
mov eax, dword [ebx]
push eax
call sub.wsock32.dll_sendto
mov edi, eax
lea edx, [ebp - 0x188]
mov eax, edi
call fcn.00408e38
mov ecx, dword [ebp - 0x188]
lea eax, [ebp - 0x184]
mov edx, 0x52df84
call fcn.0040491c
mov edx, dword [ebp - 0x184]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
cmp dword [ebp - 0x28], 1
sbb eax, eax
inc eax
cmp al, 1
jne 0x52db8e
push 0x12c
call sub.kernel32.dll_Sleep_1
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xa8]
push eax
push 0
push 0x40
lea eax, [ebp - 0xf8]
push eax
mov eax, dword [ebx]
push eax
call sub.wsock32.dll_recvfrom
mov edi, eax
lea edx, [ebp - 0x190]
mov eax, edi
call fcn.00408e38
mov ecx, dword [ebp - 0x190]
lea eax, [ebp - 0x18c]
mov edx, 0x52dfbc
call fcn.0040491c
mov edx, dword [ebp - 0x18c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34c]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebx]
push eax
call sub.wsock32.dll_closesocket
add ebx, 4
add esi, 2
dec dword [ebp - 0x2c]
jne 0x52d46d
xor ebx, ebx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x52dbd9
lea eax, [ebp - 0x190]
mov edx, 0x26
call fcn.00404634
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.00404634
ret