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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
mov ebx, ecx
push esi
push edi
mov dword [ebp - 8], ebx
lea edi, [ebx + 0x64]
push edi
mov dword [ebp - 0xc], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebx + 0x58]
lea ecx, [ebx + 0x54]
push 0x400
mov dword [ebx + 0x5c], eax
call fcn.10002890
push edi
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call edi
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x10001f85
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1002e7c0]
mulsd xmm0, qword [0x1002e770]
addsd xmm0, qword [0x1002e778]
call fcn.100243b1
push eax
mov dword [ebp - 4], eax
call fcn.10012436
mov edi, eax
add esp, 4
test edi, edi
jne 0x10001e96
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push dword [ebp + 0xc]
lea eax, [ebp - 4]
push dword [ebp + 8]
push eax
push edi
call fcn.1000bf00
test eax, eax
je 0x10001ebf
push edi
call fcn.1001247d
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp - 4]
lea ecx, [ebx + 0x54]
add eax, 0xd
mov dword [ebp - 0xc], eax
lea eax, [ebx + 0xb0]
push 5
push eax
call fcn.100026a0
push 4
lea eax, [ebp - 0xc]
push eax
lea ecx, [ebx + 0x54]
call fcn.100026a0
push 4
lea eax, [ebp + 0xc]
push eax
lea ecx, [ebx + 0x54]
call fcn.100026a0
push dword [ebp - 4]
lea ecx, [ebx + 0x54]
push edi
call fcn.100026a0
push edi
call fcn.1001247d
mov ebx, dword [ebp + 0xc]
add esp, 4
push ebx
call fcn.10012436
add esp, 4
mov dword [ebp + 0xc], eax
push ebx
push dword [ebp + 8]
push eax
call fcn.10014120
mov edi, dword [ebp - 8]
add esp, 0xc
mov eax, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea esi, [edi + 0x8c]
push esi
call eax
mov eax, dword [edi + 0x80]
lea ecx, [edi + 0x7c]
push 0x400
mov dword [edi + 0x84], eax
call fcn.10002890
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp + 0xc]
lea ecx, [edi + 0x7c]
push ebx
push esi
call fcn.100026a0
test esi, esi
je 0x10001f71
push esi
call fcn.1001247d
add esp, 4
mov ebx, edi
mov edi, dword [ebx + 0x58]
test edi, edi
jne 0x10002070
xor ecx, ecx
jmp 0x10002075
lea eax, [ebx + 0x64]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call eax
mov ecx, dword [ebx + 0x58]
test ecx, ecx
jne 0x10001f9b
xor eax, eax
jmp 0x10001fa0
mov eax, dword [ebx + 0x5c]
sub eax, ecx
add eax, 5
lea ecx, [ebx + 0x54]
push eax
call fcn.100027b0
cmp eax, 0xffffffff
jne 0x10001fb6
push dword [ebp - 0xc]
jmp 0x10001fd2
mov ecx, dword [ebx + 0x5c]
mov eax, dword [ebx + 0xb0]
mov dword [ecx], eax
mov al, byte [ebx + 0xb4]
mov byte [ecx + 4], al
lea eax, [ebx + 0x64]
add dword [ebx + 0x5c], 5
push eax
call edi
lea eax, [ebx + 0x8c]
push eax
mov dword [ebp + 0xc], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebx + 0x80]
lea ecx, [ebx + 0x7c]
push 0x400
mov dword [ebx + 0x84], eax
call fcn.10002890
lea eax, [ebx + 0x8c]
push eax
call edi
lea eax, [ebx + 0x8c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebx + 0x80]
test ecx, ecx
jne 0x10002021
xor eax, eax
jmp 0x10002029
mov eax, dword [ebx + 0x84]
sub eax, ecx
add eax, 5
lea ecx, [ebx + 0x7c]
push eax
call fcn.100027b0
cmp eax, 0xffffffff
jne 0x10002044
push dword [ebp + 0xc]
call edi
jmp 0x10001f73
mov ecx, dword [ebx + 0x84]
mov eax, dword [ebx + 0xb0]
mov dword [ecx], eax
mov al, byte [ebx + 0xb4]
mov byte [ecx + 4], al
lea eax, [ebx + 0x8c]
add dword [ebx + 0x84], 5
push eax
call edi
jmp 0x10001f73
mov ecx, dword [ebx + 0x5c]
sub ecx, edi
xor esi, esi
mov dword [ebp - 8], ecx
mov eax, ecx
mov dword [ebp + 8], esi
cmp ecx, 0x2000
mov dword [ebp + 0xc], eax
mov ecx, dword [sym.imp.WS2_32.dll_send]
jb 0x100020e9
xor esi, esi
push 0
push 0x2000
push edi
push dword [ebx + 0xa8]
call ecx
test eax, eax
jg 0x100020b2
mov ecx, dword [sym.imp.WS2_32.dll_send]
inc esi
cmp esi, 0xf
jl 0x10002092
cmp esi, 0xf
je 0x10001eb3
mov esi, dword [ebp + 8]
add edi, 0x2000
add esi, eax
push 0xa
mov dword [ebp + 8], esi
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [ebp + 0xc]
mov ecx, dword [sym.imp.WS2_32.dll_send]
sub eax, 0x2000
mov dword [ebp + 0xc], eax
cmp eax, 0x2000
jae 0x10002090
test eax, eax
jle 0x1000211f
xor esi, esi
nop
push 0
push eax
push edi
push dword [ebx + 0xa8]
call ecx
mov edx, eax
test edx, edx
jg 0x10002111
mov ecx, dword [sym.imp.WS2_32.dll_send]
inc esi
mov eax, dword [ebp + 0xc]
cmp esi, 0xf
jl 0x100020f0
cmp esi, 0xf
je 0x10001eb3
mov esi, dword [ebp + 8]
add esi, edx
or eax, 0xffffffff
cmp esi, dword [ebp - 8]
pop edi
cmove eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8