Function at 0x10001e70
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
lea edi, [ebx + 0x64]
push 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.10002980
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x100020fc
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1002e890]
mulsd xmm0, qword [0x1002e840]
addsd xmm0, qword [0x1002e848]
call fcn.10023f55
push eax
mov dword [ebp - 4], eax
call fcn.100126f6
add esp, 4
mov dword [ebp - 0xc], eax
lea ecx, [ebp - 4]
push dword [ebp + 0xc]
push dword [ebp + 8]
push ecx
push eax
call fcn.1000c1c0
test eax, eax
je 0x10001f0d
push dword [ebp - 0xc]
call fcn.1001273d
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp - 4]
add eax, 0xe
push edi
mov dword [ebp - 8], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebx + 0x58]
test ecx, ecx
jne 0x10001f28
xor eax, eax
jmp 0x10001f2d
mov eax, dword [ebx + 0x5c]
sub eax, ecx
add eax, 6
lea ecx, [ebx + 0x54]
push eax
call fcn.100028a0
push edi
cmp eax, 0xffffffff
je 0x10001f59
mov ecx, dword [ebx + 0x5c]
mov eax, dword [ebx + 0xb0]
mov dword [ecx], eax
mov ax, word [ebx + 0xb4]
mov word [ecx + 4], ax
add dword [ebx + 0x5c], 6
mov eax, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call eax
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebx + 0x58]
test ecx, ecx
jne 0x10001f72
xor eax, eax
jmp 0x10001f77
mov eax, dword [ebx + 0x5c]
sub eax, ecx
add eax, 4
lea ecx, [ebx + 0x54]
push eax
call fcn.100028a0
push edi
cmp eax, 0xffffffff
je 0x10001f95
mov eax, dword [ebx + 0x5c]
mov ecx, dword [ebp - 8]
mov dword [eax], ecx
add dword [ebx + 0x5c], 4
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebx + 0x58]
test ecx, ecx
jne 0x10001fad
xor eax, eax
jmp 0x10001fb2
mov eax, dword [ebx + 0x5c]
sub eax, ecx
add eax, 4
lea ecx, [ebx + 0x54]
push eax
call fcn.100028a0
push edi
cmp eax, 0xffffffff
je 0x10001fd0
mov eax, dword [ebx + 0x5c]
mov ecx, dword [ebp + 0xc]
mov dword [eax], ecx
add dword [ebx + 0x5c], 4
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 4]
push edi
mov dword [ebp - 8], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebx + 0x58]
test ecx, ecx
jne 0x10001fee
xor eax, eax
jmp 0x10001ff3
mov eax, dword [ebx + 0x5c]
sub eax, ecx
add eax, dword [ebp - 8]
lea ecx, [ebx + 0x54]
push eax
call fcn.100028a0
cmp eax, 0xffffffff
je 0x1000201b
push dword [ebp - 8]
push dword [ebp - 0xc]
push dword [ebx + 0x5c]
call fcn.100143a0
mov eax, dword [ebp - 8]
add esp, 0xc
add dword [ebx + 0x5c], eax
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push edi
call esi
push dword [ebp - 0xc]
call fcn.1001273d
mov edi, dword [ebp + 0xc]
add esp, 4
push edi
call fcn.100126f6
add esp, 4
mov dword [ebp - 0xc], eax
push edi
push dword [ebp + 8]
push eax
call fcn.100143a0
add esp, 0xc
lea eax, [ebx + 0x8c]
mov dword [ebp + 8], eax
push 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.10002980
lea eax, [ebx + 0x8c]
push eax
call esi
lea eax, [ebx + 0x8c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebx + 0x80]
test ecx, ecx
jne 0x10002098
xor eax, eax
jmp 0x100020a0
mov eax, dword [ebx + 0x84]
sub eax, ecx
add eax, dword [ebp + 0xc]
lea ecx, [ebx + 0x7c]
push eax
call fcn.100028a0
cmp eax, 0xffffffff
jne 0x100020c6
push dword [ebp + 8]
call esi
push dword [ebp - 0xc]
call fcn.1001273d
add esp, 4
jmp 0x100021db
push dword [ebp + 0xc]
push dword [ebp - 0xc]
push dword [ebx + 0x84]
call fcn.100143a0
mov eax, dword [ebp + 0xc]
add esp, 0xc
add dword [ebx + 0x84], eax
lea eax, [ebx + 0x8c]
push eax
call esi
push dword [ebp - 0xc]
call fcn.1001273d
add esp, 4
jmp 0x100021db
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebx + 0x58]
test ecx, ecx
jne 0x1000210e
xor eax, eax
jmp 0x10002113
mov eax, dword [ebx + 0x5c]
sub eax, ecx
add eax, 6
lea ecx, [ebx + 0x54]
push eax
call fcn.100028a0
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push edi
cmp eax, 0xffffffff
je 0x10002145
mov ecx, dword [ebx + 0x5c]
mov eax, dword [ebx + 0xb0]
mov dword [ecx], eax
mov ax, word [ebx + 0xb4]
mov word [ecx + 4], ax
add dword [ebx + 0x5c], 6
call esi
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.10002980
lea eax, [ebx + 0x8c]
push eax
call esi
lea eax, [ebx + 0x8c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebx + 0x80]
test ecx, ecx
jne 0x10002194
xor eax, eax
jmp 0x1000219c
mov eax, dword [ebx + 0x84]
sub eax, ecx
add eax, 6
lea ecx, [ebx + 0x7c]
push eax
call fcn.100028a0
cmp eax, 0xffffffff
jne 0x100021b2
push dword [ebp + 0xc]
jmp 0x100021d9
mov ecx, dword [ebx + 0x84]
mov eax, dword [ebx + 0xb0]
mov dword [ecx], eax
mov ax, word [ebx + 0xb4]
mov word [ecx + 4], ax
lea eax, [ebx + 0x8c]
add dword [ebx + 0x84], 6
push eax
call esi
mov ecx, dword [ebx + 0x58]
test ecx, ecx
jne 0x100021ed
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebx + 0x5c]
xor esi, esi
mov edx, dword [sym.imp.WS2_32.dll_send]
sub eax, ecx
mov dword [ebp + 8], eax
mov edi, ecx
mov dword [ebp + 0xc], esi
mov dword [ebp - 0xc], eax
cmp eax, 0x2000
jb 0x10002266
mov dword [ebp - 0xc], eax
nop
xor esi, esi
push 0
push 0x2000
push edi
push dword [ebx + 0xa8]
call edx
test eax, eax
jg 0x10002238
mov edx, dword [sym.imp.WS2_32.dll_send]
inc esi
cmp esi, 0xf
jl 0x10002212
je 0x10001f01
mov esi, dword [ebp + 0xc]
add edi, 0x2000
add esi, eax
push 0xa
mov dword [ebp + 0xc], esi
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [ebp + 8]
mov edx, dword [sym.imp.WS2_32.dll_send]
sub eax, 0x2000
mov dword [ebp + 8], eax
cmp eax, 0x2000
jae 0x10002210
test eax, eax
jle 0x100022a7
mov dword [ebp + 0xc], 0
push 0
push eax
push edi
push dword [ebx + 0xa8]
call edx
mov dword [ebp - 8], eax
test eax, eax
jg 0x100022a2
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
inc ecx
mov edx, dword [sym.imp.WS2_32.dll_send]
mov dword [ebp + 0xc], ecx
cmp ecx, 0xf
jl 0x10002271
je 0x10001f01
mov eax, dword [ebp - 8]
add esi, eax
mov dword [ebp + 0xc], esi
cmp esi, dword [ebp - 0xc]
jne 0x10001f01
mov eax, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8