Function at 0x52dc2c
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 0x52dc34
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 0x52e716
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 0x52dc88
mov eax, dword [ebp - 4]
mov edx, ebx
sub edx, dword [eax + 0x400]
cmp edx, 0x320
jbe 0x52dd50
push 0x52e730
lea edx, [ebp - 0x100]
xor eax, eax
mov al, byte [ebp - 0x6c]
call fcn.004093e0
push dword [ebp - 0x100]
push 0x52e74c
lea eax, [ebp - 0x104]
lea edx, [ebp - 0x6b]
mov ecx, 0x20
call fcn.00404cd8
push dword [ebp - 0x104]
push 0x52e760
lea eax, [ebp - 0x108]
lea edx, [ebp - 0x4b]
mov ecx, 0x10
call fcn.00404cd8
push dword [ebp - 0x108]
push 0x52e774
lea edx, [ebp - 0x10c]
movzx eax, word [ebp - 0x3a]
call fcn.004093e0
push dword [ebp - 0x10c]
push 0x52e780
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.004094cc
push dword [ebp - 0x110]
lea eax, [ebp - 0xfc]
mov edx, 0xa
call fcn.00404de8
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 0x52de1a
push 0x52e730
lea edx, [ebp - 0x118]
xor eax, eax
mov al, byte [ebp - 0x6c]
call fcn.004093e0
push dword [ebp - 0x118]
push 0x52e74c
lea eax, [ebp - 0x11c]
lea edx, [ebp - 0x6b]
mov ecx, 0x20
call fcn.00404cd8
push dword [ebp - 0x11c]
push 0x52e760
lea eax, [ebp - 0x120]
lea edx, [ebp - 0x4b]
mov ecx, 0x10
call fcn.00404cd8
push dword [ebp - 0x120]
push 0x52e774
lea edx, [ebp - 0x124]
movzx eax, word [ebp - 0x3a]
call fcn.004093e0
push dword [ebp - 0x124]
push 0x52e79c
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.004094cc
push dword [ebp - 0x128]
lea eax, [ebp - 0x114]
mov edx, 0xa
call fcn.00404de8
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 0x52e6eb
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.004730f8
mov eax, dword [ebp - 0x12c]
lea edx, [ebp - 0x10]
call fcn.00409a0c
lea eax, [ebp - 0x130]
mov ecx, 0x52e7c0
mov edx, dword [ebp - 0x10]
call fcn.00404d74
mov ecx, dword [ebp - 0x130]
mov dl, 1
mov eax, dword [0x432f70]
call fcn.00433020
mov ebx, eax
push 0x50
mov ecx, 0x52e7e0
mov edx, 0x52e7f4
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 8]
mov dword [ebp - 0x20], eax
push 0x13ba
mov ecx, 0x52e80c
mov edx, 0x52e824
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 8]
mov dword [ebp - 0x24], eax
mov eax, ebx
call fcn.00403c18
xor ebx, ebx
mov bl, byte [ebp - 0x3b]
dec ebx
cmp ebx, 7
jle 0x52dec0
or ebx, 0xffffffff
jmp 0x52e6eb
mov eax, ebx
dec eax
test eax, eax
jl 0x52df98
inc eax
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x38]
lea edx, [ebp - 0x96]
mov cx, word [eax]
cmp cx, 0xa
jbe 0x52dee9
mov word [edx], cx
jmp case.default.0x52def5
movzx ecx, cx
cmp ecx, 0xa
ja case.default.0x52def5
jmp dword [ecx*4 + 0x52defc]
mov cx, word [ebp - 0x20]
mov word [edx], cx
jmp case.default.0x52def5
mov cx, word [ebp - 0x24]
mov word [edx], cx
jmp case.default.0x52def5
mov cx, word [ebp - 0x24]
inc ecx
mov word [edx], cx
jmp case.default.0x52def5
cmp dword [ebp - 0x24], 0x13ba
jne 0x52df54
mov word [edx], 0x1a85
jmp case.default.0x52def5
mov cx, word [ebp - 0x24]
add cx, 0x2710
mov word [edx], cx
jmp case.default.0x52def5
mov cx, word [ebp - 0x24]
sub cx, 0xa
mov word [edx], cx
jmp case.default.0x52def5
mov cx, word [ebp - 0x24]
add cx, 0x7d0
mov word [edx], cx
jmp case.default.0x52def5
mov word [edx], 0
jmp case.default.0x52def5
mov word [edx], 0
add edx, 2
add eax, 2
dec dword [ebp - 0x2c]
jne 0x52ded8
dec ebx
test ebx, ebx
jl 0x52e6e9
inc ebx
mov dword [ebp - 0x2c], ebx
lea esi, [ebp - 0x96]
lea ebx, [ebp - 0x88]
cmp word [esi], 0
jne 0x52dfc0
mov dword [ebp - 0x28], 0xffffffff
jmp 0x52dfc5
xor eax, eax
mov dword [ebp - 0x28], eax
lea edx, [ebp - 0x138]
movzx eax, word [ebp - 0x36]
call fcn.004093e0
mov ecx, dword [ebp - 0x138]
lea eax, [ebp - 0x134]
mov edx, 0x52e840
call fcn.00404d74
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 0x52e307
push 0x11
push 2
push 2
call sub.wsock32.dll_socket
mov edi, eax
mov dword [ebx], edi
inc edi
jne 0x52e042
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34c]
mov eax, dword [eax + 0x220]
mov edx, 0x52e864
mov ecx, dword [eax]
call dword [ecx + 0x38]
or ebx, 0xffffffff
jmp 0x52e6eb
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 0x52e082
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34c]
mov eax, dword [eax + 0x220]
mov edx, 0x52e898
mov ecx, dword [eax]
call dword [ecx + 0x38]
or ebx, 0xffffffff
jmp 0x52e6eb
lea eax, [ebp - 0xa8]
mov edx, 0x10
call fcn.00407bcc
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.00407bcc
mov word [ebp - 0xa8], 2
lea eax, [ebp - 0x14]
mov edx, dword [0x538e18]
mov ecx, 0x10
call fcn.00404cd8
mov eax, dword [ebp - 0x14]
call fcn.00404f28
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 0x52e168
push 0x52e8d0
push dword [ebp - 0x14]
push 0x52e8f4
lea eax, [ebp - 0x13c]
mov edx, 3
call fcn.00404de8
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 0x52e307
push 0x52e8d0
push dword [ebp - 0x14]
push 0x52e91c
lea eax, [ebp - 0x140]
mov edx, 3
call fcn.00404de8
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 0x52e1d1
mov word [esi], di
lea edx, [ebp - 0x148]
movzx eax, di
call fcn.004093e0
mov ecx, dword [ebp - 0x148]
lea eax, [ebp - 0x144]
mov edx, 0x52e948
call fcn.00404d74
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.00407bcc
mov byte [ebp - 0xf8], 0x28
lea edx, [ebp - 0x6b]
lea eax, [ebp - 0xf7]
call fcn.00409bb8
lea edx, [ebp - 0x4b]
lea eax, [ebp - 0xd7]
call fcn.00409bb8
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.00407bc4
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 0x52e988
lea edx, [ebp - 0x150]
mov eax, edi
call fcn.004093e0
push dword [ebp - 0x150]
push 0x52e9ac
lea edx, [ebp - 0x154]
movzx eax, word [ebp - 0x36]
call fcn.004093e0
push dword [ebp - 0x154]
lea eax, [ebp - 0x14c]
mov edx, 4
call fcn.00404de8
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 0x52e33a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34c]
mov eax, dword [eax + 0x220]
mov edx, 0x52e9c0
mov ecx, dword [eax]
call dword [ecx + 0x38]
or ebx, 0xffffffff
jmp 0x52e6eb
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 0x52e37a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34c]
mov eax, dword [eax + 0x220]
mov edx, 0x52e9f4
mov ecx, dword [eax]
call dword [ecx + 0x38]
or ebx, 0xffffffff
jmp 0x52e6eb
lea eax, [ebp - 0xa8]
mov edx, 0x10
call fcn.00407bcc
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.00407bcc
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 0x52e4a0
call fcn.0040af20
add esp, 0xfffffff8
fstp qword [esp]
wait
lea edx, [ebp - 0x15c]
mov eax, 0x52ea30
call fcn.0040bbc8
push dword [ebp - 0x15c]
push 0x52ea44
lea edx, [ebp - 0x160]
mov eax, edi
call fcn.004093e0
push dword [ebp - 0x160]
push 0x52e760
lea eax, [ebp - 0x164]
lea edx, [ebp - 0x4b]
mov ecx, 0x10
call fcn.00404cd8
push dword [ebp - 0x164]
push 0x52e774
lea edx, [ebp - 0x168]
movzx eax, word [ebp - 0x3a]
call fcn.004093e0
push dword [ebp - 0x168]
lea eax, [ebp - 0x158]
mov edx, 7
call fcn.00404de8
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 0x52e6da
call fcn.0040af20
add esp, 0xfffffff8
fstp qword [esp]
wait
lea edx, [ebp - 0x170]
mov eax, 0x52ea30
call fcn.0040bbc8
push dword [ebp - 0x170]
push 0x52ea6c
push 0x52e760
lea eax, [ebp - 0x174]
lea edx, [ebp - 0x4b]
mov ecx, 0x10
call fcn.00404cd8
push dword [ebp - 0x174]
push 0x52e774
lea edx, [ebp - 0x178]
movzx eax, word [ebp - 0x3a]
call fcn.004093e0
push dword [ebp - 0x178]
lea eax, [ebp - 0x16c]
mov edx, 6
call fcn.00404de8
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.004093e0
mov ecx, dword [ebp - 0x180]
lea eax, [ebp - 0x17c]
mov edx, 0x52ea94
call fcn.00404d74
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.00407bcc
mov byte [ebp - 0xf8], 0x32
lea edx, [ebp - 0x6b]
lea eax, [ebp - 0xf7]
call fcn.00409bb8
push dword [ebp - 0xa4]
call sub.wsock32.dll_inet_ntoa
mov edx, eax
lea eax, [ebp - 0xd7]
call fcn.00409bb8
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.00407bc4
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.004093e0
mov ecx, dword [ebp - 0x188]
lea eax, [ebp - 0x184]
mov edx, 0x52eac8
call fcn.00404d74
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 0x52e6d2
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.004093e0
mov ecx, dword [ebp - 0x190]
lea eax, [ebp - 0x18c]
mov edx, 0x52eb00
call fcn.00404d74
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 0x52dfb1
xor ebx, ebx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x52e71d
lea eax, [ebp - 0x190]
mov edx, 0x26
call fcn.00404a8c
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.00404a8c
ret