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

Disassembly:
sub esp, 8
push ebx
mov ebx, dword [esp + 0x14]
push ebp
mov ebp, dword [esp + 0x14]
push esi
push edi
mov edi, dword [ebx + 0x58]
imul edi, edi, 0x58
add edi, dword [ebp + 0x74]
cmp dword [ebx + 0x60], 0
je 0x10015383
cmp dword [edi + 0x20], 0xffffffff
jne 0x10015210
mov ecx, ebp
call fcn.10015600
cmp eax, 0xffffffff
jne 0x10015210
cmp dword [ebp + 0x78], 1
jle 0x100151f7
mov eax, dword [ebx + 0x58]
mov ecx, dword [ebx + 0x5c]
mov dword [ecx + eax*8], 1
mov edx, dword [esp + 0x24]
push edx
mov ecx, ebx
mov edi, ebp
call fcn.10015120
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
push 0x14
call dword [0x10138fd4]
mov esi, eax
xor eax, eax
add esp, 4
cmp esi, eax
jne 0x1001523a
push eax
push eax
push 0xf
push ebx
mov eax, ebp
call fcn.10015eb0
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], eax
mov ecx, dword [ebx + 0x3c]
mov dword [esi], ecx
mov edx, dword [ebx + 0x40]
mov dword [esi + 4], edx
mov dword [esi + 8], ebx
mov dword [esi + 0x10], eax
mov ecx, dword [edi + 0x3c]
cmp ecx, eax
je 0x10015265
mov dword [ecx + 0x10], esi
jmp 0x10015286
mov ecx, dword [ebp + 0x91a0]
cmp ecx, eax
je 0x10015283
mov eax, dword [edi + 0x20]
mov edx, dword [ebp + 0x91a4]
push 1
push 1
push eax
push edx
call ecx
add esp, 0x10
mov dword [edi + 0x38], esi
mov edx, dword [edi + 0x40]
mov dword [edi + 0x3c], esi
mov eax, dword [ebx + 0x58]
mov ecx, dword [ebx + 0x5c]
mov dword [ecx + eax*8 + 4], edx
mov eax, dword [ebx + 0x54]
cdq
idiv dword [ebp + 0x78]
mov esi, dword [ebp + 4]
cmp eax, 0x1f
jg 0x100152b8
mov ecx, 0x1f
sub ecx, eax
mov edx, esi
sar edx, cl
test edx, edx
jne 0x100152b8
mov ecx, eax
shl esi, cl
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
mov dword [ebx + 4], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 8], edx
mov eax, 0x10624dd3
imul esi
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
add dword [ebx + 4], eax
imul eax, eax, 0x3e8
mov ecx, dword [ebx + 4]
sub esi, eax
imul esi, esi, 0x3e8
add dword [ebx + 8], esi
mov eax, dword [ebx + 8]
cmp eax, 0xf4240
jl 0x10015307
add ecx, 1
add eax, 0xfff0bdc0
mov dword [ebx + 4], ecx
mov dword [ebx + 8], eax
mov ecx, dword [ebx + 0x1c]
lea eax, [ebx + 0x18]
xor edx, edx
cmp ecx, edx
je 0x10015324
mov esi, dword [eax]
mov dword [esi + 4], ecx
mov ecx, dword [eax + 4]
mov esi, dword [eax]
mov dword [ecx], esi
mov dword [eax], edx
mov dword [eax + 4], edx
mov ecx, dword [ebx + 4]
and ecx, 0x800003ff
jns 0x10015337
dec ecx
or ecx, 0xfffffc00
inc ecx
lea ecx, [ecx + ecx*2]
lea ecx, [ebp + ecx*4 + 0x61a0]
mov dword [eax + 4], ecx
mov esi, dword [ecx]
mov dword [eax], esi
mov esi, dword [ecx]
mov dword [esi + 4], eax
mov dword [ecx], eax
mov ecx, dword [ebx + 0x28]
cmp ecx, edx
lea eax, [ebx + 0x24]
je 0x1001536a
mov esi, dword [eax]
mov dword [esi + 4], ecx
mov ecx, dword [eax + 4]
mov esi, dword [eax]
mov dword [ecx], esi
mov dword [eax], edx
mov dword [eax + 4], edx
lea ecx, [edi + 0x44]
mov dword [eax + 4], ecx
mov edx, dword [ecx]
pop edi
mov dword [eax], edx
mov edx, dword [ecx]
pop esi
pop ebp
mov dword [edx + 4], eax
mov dword [ecx], eax
pop ebx
add esp, 8
ret
cmp dword [edi + 0x1c], 0xffffffff
jne 0x1001539d
push edi
mov esi, ebp
call fcn.100158d0
add esp, 4
cmp eax, 0xffffffff
je 0x100151e4
mov eax, dword [ebp + 0x91b8]
test eax, eax
mov ecx, dword [ebx + 0x48]
mov edx, dword [ebx + 0x44]
mov esi, dword [edi + 0x1c]
je 0x100153d1
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 0x91bc]
push ecx
mov dword [esp + 0x14], edx
mov eax, dword [eax + 0x10]
push 1
lea edx, [esp + 0x18]
push edx
push esi
call eax
add esp, 0x10
jmp 0x100153dc
push 0
push ecx
push edx
push esi
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x10015296
cmp dword [ebp + 0x78], 1
jle 0x100153f8
mov ecx, dword [ebx + 0x58]
mov edx, dword [ebx + 0x5c]
mov dword [edx + ecx*8], 1
mov eax, dword [esp + 0x24]
push eax
mov ecx, ebx
mov edi, ebp
call fcn.10015120
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret