Function at 0x52f310
Capabilities:
Send data
Send data on socket

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x60f548
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xf0
mov eax, dword [0x7f206c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x9c], edi
mov dword [ebp - 0x48], 0
mov eax, dword fs:[0x2c]
mov edx, dword [eax]
mov eax, dword [0x8013f4]
cmp eax, dword [edx + 4]
jg 0x52f8e3
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x90]
mov esi, 1
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x48], esi
call fcn.004ffc90
mov edx, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x90]
shl edx, 4
add edx, ecx
mov dword [ebp - 0x54], ecx
add edx, dword [ebp - 0x88]
mov dword [ebp - 0xa4], edx
cmp ecx, edx
je 0x52f8a0
nop dword [eax]
push 0x801400
mov dword [ebp - 0x58], esi
call fcn.0051c920
test eax, eax
je 0x52f885
mov ecx, dword [ebp - 0x54]
lea eax, [edi + 0x138]
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x98]
push eax
call fcn.0051ca90
mov dword [ebp - 0x4c], eax
call fcn.005135b0
mov esi, eax
lea edi, [esi + 0x10]
push edi
mov dword [ebp - 0xc0], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, esi
mov byte [ebp - 4], 2
call fcn.005136c0
lea eax, [ebp - 0x94]
mov dword [ebp - 0x94], 0x7a4078
push eax
mov edx, esi
lea ecx, [ebp - 0x50]
call fcn.004fbb20
mov eax, dword [ebp - 0x40]
add esp, 4
or eax, 2
mov dword [ebp - 0x48], eax
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push dword [ebp - 0x4c]
mov esi, dword [ebp - 0x44]
lea eax, [ebp - 0x50]
push eax
mov ecx, esi
mov byte [ebp - 4], 3
call fcn.0050ae30
mov ecx, dword [ebp - 0x50]
add ecx, 0xfffffff8
cmp ecx, 0x7a1354
je 0x52f497
or eax, 0xffffffff
lock xadd dword [ecx], eax
test eax, eax
jne 0x52f497
push ecx
call fcn.004a8172
add esp, 4
mov ecx, dword [ebp - 0x98]
add ecx, 0xfffffff8
cmp ecx, 0x7a1354
je 0x52f4bc
or eax, 0xffffffff
lock xadd dword [ecx], eax
test eax, eax
jne 0x52f4bc
push ecx
call fcn.004a8172
add esp, 4
xorps xmm0, xmm0
mov byte [ebp - 0x2c], 0
movups xmmword [ebp - 0x3c], xmm0
mov dword [ebp - 0xbc], 0x7a135c
mov dword [ebp - 0xb8], 0x7a135c
mov dword [ebp - 0xb4], 0x7a135c
mov byte [ebp - 0xb0], 1
mov dword [ebp - 0xac], 0x3c
mov dword [ebp - 0xa8], 0x79cb70
lea eax, [ebp - 0xbc]
push eax
lea ecx, [ebp - 0xf0]
call fcn.00414cf0
mov dword [ebp - 0xdc], 0
mov eax, ecx
lea ecx, [ebp - 0xd8]
push eax
call fcn.00414cf0
mov byte [ebp - 0xcc], 0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x80]
push 0x7acbec
mov dword [ebp - 0x84], vtable.juce::OutputStream.0
call fcn.0041d340
add esp, 4
lea eax, [ebp - 0x78]
mov dword [ebp - 0x84], vtable.juce::MemoryOutputStream.0
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0
mov byte [ebp - 4], 9
push 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
call fcn.004c2bdc
add esp, 4
push 0x800
call fcn.004c2f64
add esp, 4
mov dword [ebp - 0x78], eax
test eax, eax
je 0x52f8c7
mov dword [ebp - 0x74], 0x800
lea eax, [ebp - 0xd8]
mov byte [ebp - 4], 0xa
push eax
lea eax, [ebp - 0x84]
mov ecx, esi
push eax
call fcn.0050b380
lea eax, [ebp - 0x5c]
push eax
lea ecx, [ebp - 0x84]
call fcn.0051a850
mov esi, dword [ebp - 0x58]
or esi, 6
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x48], esi
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x78]
mov ecx, dword [ebp - 0x7c]
mov dword [ebp - 0x84], vtable.juce::MemoryOutputStream.0
cmp ecx, eax
je 0x52f60f
test ecx, ecx
je 0x52f60f
push ecx
push dword [ebp - 0x68]
call fcn.0051eee0
push dword [ebp - 0x78]
call fcn.004c2bdc
mov ecx, dword [ebp - 0x80]
add esp, 4
add ecx, 0xfffffff8
mov dword [ebp - 0x84], vtable.juce::OutputStream.0
cmp ecx, 0x7a1354
je 0x52f646
or eax, 0xffffffff
lock xadd dword [ecx], eax
test eax, eax
jne 0x52f646
push ecx
call fcn.004a8172
add esp, 4
mov ecx, dword [ebp - 0xd0]
add ecx, 0xfffffff8
cmp ecx, 0x7a1354
je 0x52f66b
or eax, 0xffffffff
lock xadd dword [ecx], eax
test eax, eax
jne 0x52f66b
push ecx
call fcn.004a8172
add esp, 4
mov ecx, dword [ebp - 0xd4]
add ecx, 0xfffffff8
cmp ecx, 0x7a1354
je 0x52f690
or eax, 0xffffffff
lock xadd dword [ecx], eax
test eax, eax
jne 0x52f690
push ecx
call fcn.004a8172
add esp, 4
mov ecx, dword [ebp - 0xd8]
add ecx, 0xfffffff8
cmp ecx, 0x7a1354
je 0x52f6b5
or eax, 0xffffffff
lock xadd dword [ecx], eax
test eax, eax
jne 0x52f6b5
push ecx
call fcn.004a8172
add esp, 4
mov ecx, dword [ebp - 0xe8]
add ecx, 0xfffffff8
cmp ecx, 0x7a1354
je 0x52f6da
or eax, 0xffffffff
lock xadd dword [ecx], eax
test eax, eax
jne 0x52f6da
push ecx
call fcn.004a8172
add esp, 4
mov ecx, dword [ebp - 0xec]
add ecx, 0xfffffff8
cmp ecx, 0x7a1354
je 0x52f6ff
or eax, 0xffffffff
lock xadd dword [ecx], eax
test eax, eax
jne 0x52f6ff
push ecx
call fcn.004a8172
add esp, 4
mov ecx, dword [ebp - 0xf0]
add ecx, 0xfffffff8
cmp ecx, 0x7a1354
je 0x52f724
or eax, 0xffffffff
lock xadd dword [ecx], eax
test eax, eax
jne 0x52f724
push ecx
call fcn.004a8172
add esp, 4
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x5c]
push eax
mov dword [ebp - 0x60], eax
call fcn.0041dba0
mov edi, dword [ebp - 0x9c]
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x58], eax
add esp, 4
mov eax, dword [edi + 0x148]
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0xa0]
push eax
call fcn.0051ca90
mov edx, eax
mov dword [ebp - 0x4c], edx
mov byte [ebp - 4], 0xf
mov ecx, dword [edi + 0x158]
test ecx, ecx
js 0x52f831
mov esi, dword [edi + 0x16c]
test esi, esi
je 0x52f7ab
mov eax, dword [edx]
cmp eax, dword [edi + 0x164]
je 0x52f796
push dword [edi + 0x164]
push eax
call fcn.0041f150
add esp, 8
test eax, eax
jne 0x52f7a1
mov eax, dword [ebp - 0x44]
cmp eax, dword [edi + 0x168]
je 0x52f811
push esi
call dword [sym.imp.WS2_32.dll_freeaddrinfo]
mov edx, dword [ebp - 0x4c]
push dword [ebp - 0x44]
lea esi, [edi + 0x164]
call fcn.0051da40
add esp, 4
mov dword [edi + 0x16c], eax
test eax, eax
je 0x52f82e
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ecx]
lea edx, [eax - 8]
cmp edx, 0x7a1354
je 0x52f7e1
mov eax, 1
lock xadd dword [edx], eax
mov eax, dword [ecx]
xchg dword [esi], eax
lea ecx, [eax - 8]
cmp ecx, 0x7a1354
je 0x52f802
or eax, 0xffffffff
lock xadd dword [ecx], eax
test eax, eax
jne 0x52f802
push ecx
call fcn.004a8172
add esp, 4
mov eax, dword [ebp - 0x44]
mov dword [edi + 0x168], eax
mov esi, dword [edi + 0x16c]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x18]
mov edx, dword [edi + 0x158]
push eax
push ecx
push 0
push dword [ebp - 0x58]
push dword [ebp - 0x60]
push edx
call dword [sym.imp.WS2_32.dll_sendto]
mov esi, dword [ebp - 0x40]
mov ecx, dword [ebp - 0xa0]
add ecx, 0xfffffff8
cmp ecx, 0x7a1354
je 0x52f856
or eax, 0xffffffff
lock xadd dword [ecx], eax
test eax, eax
jne 0x52f856
push ecx
call fcn.004a8172
add esp, 4
mov byte [ebp - 4], 0
and esi, 0xfffffffb
mov ecx, dword [ebp - 0x5c]
add ecx, 0xfffffff8
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x48], esi
cmp ecx, 0x7a1354
je 0x52f885
or eax, 0xffffffff
lock xadd dword [ecx], eax
test eax, eax
jne 0x52f885
push ecx
call fcn.004a8172
add esp, 4
mov ecx, dword [ebp - 0x54]
add ecx, 0x11
mov dword [ebp - 0x54], ecx
cmp ecx, dword [ebp - 0xa4]
jne 0x52f3e0
mov ecx, dword [ebp - 0x90]
push ecx
call fcn.004c2bdc
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004a7e5e
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
lea ecx, [ebp - 0xfc]
call fcn.0040ed30
push 0x7dcc64
lea eax, [ebp - 0xfc]
push eax
call fcn.004bf6cd
push 0x8013f4
call fcn.004a8317
add esp, 4
cmp dword [0x8013f4], 0xffffffff
jne 0x52f379
xorps xmm0, xmm0
mov dword [ebp - 0x28], 0x100007f
movq qword [ebp - 0x24], xmm0
xor al, al
mov dword [ebp - 0x1c], 0
movups xmm0, xmmword [ebp - 0x28]
push 0x8013f4
mov byte [0x801410], al
movups xmmword [0x801400], xmm0
call fcn.004a82cd
add esp, 4
jmp 0x52f379