Function at 0x50bbb0
Capabilities:
Check for time delay via gettickcount
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5fc548
mov eax, dword fs:[0]
push eax
sub esp, 0x28
mov eax, dword [0x6baac0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov ecx, dword [ebp + 0x28]
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0x20]
mov ebx, dword [ebp + 0x24]
mov dword [ebp - 0x24], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], eax
call fcn.004efd30
mov dword [edi], 0
cmp dword [esi + 0x294], 0xffffffff
jne 0x50bc1f
mov eax, dword [ebx]
mov ecx, ebx
push str.No_socket_exists_for_sending.
call dword [eax + 0x14]
xor al, al
jmp 0x50c130
cmp byte [esi + 0xd4], 0
lea eax, [esi + 0xd4]
je 0x50bc41
mov eax, dword [ebx]
mov ecx, ebx
push str.Another_thread_is_already_sending_on_this_socket.
call dword [eax + 0x14]
xor al, al
jmp 0x50c130
cmp byte [esi + 0xd6], 0
je 0x50bc5e
mov eax, dword [ebx]
mov ecx, ebx
push dword [0x6b1f30]
call dword [eax + 0x14]
xor al, al
jmp 0x50c130
xorps xmm0, xmm0
lea ecx, [ebp - 0x18]
push eax
movq qword [ebp - 0x18], xmm0
call fcn.00420670
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 4], 0
test eax, eax
jne 0x50bc8b
cmp byte [ebp + 0x18], al
mov ecx, 0x1499700
cmove eax, ecx
mov dword [ebp + 0x1c], eax
mov ecx, dword [ebp + 0x10]
test ecx, ecx
jne 0x50bc99
mov ecx, 0x41a0
jmp 0x50bca3
mov eax, 0x400
cmp ecx, eax
cmovb ecx, eax
cmp byte [ebp + 0x14], 0
mov dword [ebp + 0x10], ecx
je 0x50bcb9
mov eax, 0x41a0
cmp ecx, eax
cmova ecx, eax
mov dword [ebp + 0x10], ecx
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x2a0], 0
test eax, eax
je 0x50c124
nop
cmp ecx, eax
mov edi, ecx
cmova edi, eax
xor eax, eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x30], edi
test eax, eax
je 0x50bcf9
push ebx
mov ecx, eax
call fcn.00480960
test al, al
jne 0x50c04d
mov eax, dword [ebp - 0x1c]
push ebx
push eax
push edi
lea ecx, [esi + 0x170]
call fcn.0053b1d0
test al, al
jne 0x50c114
cmp byte [esi + 0xd6], al
jne 0x50c103
cmp byte [esi + 0x18], al
je 0x50be95
mov eax, dword [esi + 0x20]
or eax, dword [esi + 0x24]
jne 0x50bd34
call sub.KERNEL32.dll_GetTickCount
mov dword [esi + 0x28], eax
cmp byte [esi + 0x18], 0
je 0x50be95
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x20]
test ecx, ecx
jl 0x50be95
jg 0x50bdf2
cmp eax, 0x10000
jbe 0x50be95
test ecx, ecx
jg 0x50bdf2
jl 0x50bd72
cmp eax, 0x40000
ja 0x50bdf2
cmp dword [esi + 0xc4], 0
jne 0x50bdf2
cmp byte [esi + 0xc8], 0
je 0x50bdf2
call sub.KERNEL32.dll_GetTickCount
mov ecx, dword [esi + 0x28]
cmp eax, ecx
jb 0x50bde9
test ecx, ecx
je 0x50bde9
sub eax, ecx
je 0x50bdb1
push 0
push eax
push dword [esi + 0x24]
push dword [esi + 0x20]
call fcn.005ec5a0
cmp eax, 0x800
jbe 0x50be95
push 1
call fcn.004308f0
add esp, 4
call sub.KERNEL32.dll_GetTickCount
mov ecx, dword [esi + 0x28]
cmp eax, ecx
ja 0x50be95
sub eax, ecx
je 0x50bdb1
push 0
push eax
push dword [esi + 0x24]
push dword [esi + 0x20]
call fcn.005ec5a0
cmp eax, 0x800
ja 0x50bdb1
jmp 0x50be95
mov byte [esi + 0x18], 0
jmp 0x50be95
mov eax, dword [esi + 0xb8]
or eax, dword [esi + 0xbc]
je 0x50be95
cmp dword [esi + 0xc0], 0
jne 0x50be18
call sub.KERNEL32.dll_GetTickCount
mov dword [esi + 0xc0], eax
call sub.KERNEL32.dll_GetTickCount
mov dword [ebp - 0x2c], eax
cmp eax, dword [esi + 0xc0]
jae 0x50be2e
mov dword [esi + 0xc0], eax
sub eax, dword [esi + 0xc0]
cmp eax, 0x1388
jb 0x50be80
mov eax, dword [esi + 0xb8]
mov edi, eax
mov ecx, dword [esi + 0xbc]
mov edx, ecx
shld edx, edi, 4
push 0
shl edi, 4
sub edi, eax
push 0x3b
sbb edx, ecx
shld edx, edi, 2
shl edi, 2
push edx
push edi
call fcn.005ec5a0
mov edi, dword [ebp - 0x30]
mov dword [esi + 0xb8], eax
mov eax, dword [ebp - 0x2c]
mov dword [esi + 0xbc], edx
mov dword [esi + 0xc0], eax
push ebx
push dword [ebp - 0x1c]
lea ecx, [esi + 0x30]
push edi
call fcn.0053b1d0
test al, al
jne 0x50c060
push 0
push edi
push dword [ebp - 0x24]
mov dword [esi + 0x2a0], 0
push dword [esi + 0x294]
call dword [sym.imp.WS2_32.dll_send]
mov edi, eax
cmp edi, 0xffffffff
je 0x50bebc
test edi, edi
jns 0x50becd
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebp - 0x28], eax
mov dword [esi + 0x2a0], eax
jmp 0x50bed0
mov eax, dword [ebp - 0x28]
cmp edi, 0xffffffff
je 0x50bedd
test edi, edi
jns 0x50bfd0
cmp eax, 0x2733
jne 0x50c0cd
cmp byte [ebp + 0x18], 0
jne 0x50c0c2
mov al, byte [esi + 0x18]
inc dword [esi + 0x33c]
test al, al
je 0x50bf6f
inc dword [esi + 0xc4]
test al, al
je 0x50bf6f
cmp dword [esi + 0x24], 0
jl 0x50bf6f
jg 0x50bf1a
cmp dword [esi + 0x20], 0x10000
jb 0x50bf6f
call sub.KERNEL32.dll_GetTickCount
mov ecx, dword [esi + 0x28]
mov dword [ebp - 0x2c], eax
cmp eax, ecx
jb 0x50bf6b
test ecx, ecx
je 0x50bf6b
cmp eax, ecx
jbe 0x50bf6f
sub eax, ecx
je 0x50bf6f
push 0
push eax
push dword [esi + 0x24]
push dword [esi + 0x20]
call fcn.005ec5a0
cmp eax, 0x80
jbe 0x50bf6f
imul eax, eax, 0x3cc
mov dword [esi + 0xbc], 0
mov dword [esi + 0xb8], eax
mov eax, dword [ebp - 0x2c]
mov dword [esi + 0xc0], eax
jmp 0x50bf6f
mov byte [esi + 0x18], 0
push ebx
push dword [ebp - 0x20]
mov ecx, esi
push 0
push 0
push dword [ebp + 0x1c]
call fcn.0050c8d0
test al, al
je 0x50c086
mov ecx, dword [ebx + 0xa8]
test ecx, ecx
je 0x50bfce
push 0x2a
call fcn.00432030
mov eax, dword [ebx + 0xa8]
mov dword [eax + 0x410], 0
mov dword [eax + 0x414], 0
mov eax, dword [ebx + 0xa8]
mov dword [eax + 0x6c8], 0
mov dword [eax + 0x6cc], 0
test edi, edi
jle 0x50bff0
cmp byte [esi + 0x342], 0
je 0x50bfeb
push ebx
push dword [ebp - 0x1c]
lea ecx, [esi + 0x128]
push edi
call fcn.004e46d0
mov eax, dword [ebp - 0x34]
add dword [eax], edi
cmp byte [esi + 0x338], 0
je 0x50c013
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x50c013
test edi, edi
jle 0x50c02e
push ebx
mov eax, edi
cdq
push edx
push eax
call fcn.00480a20
test al, al
jne 0x50c073
test edi, edi
jle 0x50c02e
sub dword [ebp + 0xc], edi
add dword [ebp - 0x24], edi
cmp byte [esi + 0x18], 0
je 0x50c02c
mov eax, edi
cdq
add dword [esi + 0x20], eax
adc dword [esi + 0x24], edx
test edi, edi
jne 0x50c03a
push 1
call fcn.004308f0
add esp, 4
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x50c124
mov ecx, dword [ebp + 0x10]
jmp 0x50bcd0
mov eax, dword [ebx]
mov ecx, ebx
push str.Socket_SendBytes2_aborted_by_application.__1a_
call dword [eax + 0x14]
xor bl, bl
jmp 0x50c126
mov eax, dword [ebx]
mov ecx, ebx
push str.Aborted_by_application_while_upload_throttling__1c_
call dword [eax + 0x14]
xor bl, bl
jmp 0x50c126
mov eax, dword [ebx]
mov ecx, ebx
push str.Socket_send_aborted_by_application
call dword [eax + 0x14]
xor bl, bl
jmp 0x50c126
mov eax, dword [ebp - 0x20]
cmp byte [eax + 0x11], 0
jne 0x50c073
cmp byte [eax + 0x10], 0
mov ecx, ebx
je 0x50c0b4
push dword [ebp + 0x1c]
push str.idleTimeoutMs_wf
call fcn.00431470
mov eax, dword [ebx]
mov ecx, ebx
push str.Socket_send_idle_timeout
call dword [eax + 0x14]
xor bl, bl
jmp 0x50c126
mov eax, dword [ebx]
push str.Socket_send_failed.
call dword [eax + 0x14]
xor bl, bl
jmp 0x50c126
mov eax, dword [ebp - 0x20]
xor bl, bl
mov byte [eax + 0x14], 1
jmp 0x50c126
mov eax, dword [ebx]
mov ecx, ebx
push str.Error_sending_on_socket__1_
call dword [eax + 0x14]
mov eax, dword [ebp - 0x28]
push ebx
push dword [ebp - 0x20]
push eax
call fcn.0050abb0
add esp, 0xc
mov ecx, ebx
push dword [ebp - 0x30]
push str.send_size
call fcn.00431470
mov ecx, esi
call fcn.005098b0
xor bl, bl
jmp 0x50c126
mov eax, dword [ebx]
mov ecx, ebx
push dword [0x6b1f30]
call dword [eax + 0x14]
xor bl, bl
jmp 0x50c126
mov eax, dword [ebx]
mov ecx, ebx
push str.Aborted_by_application_while_upload_throttling__1b_
call dword [eax + 0x14]
xor bl, bl
jmp 0x50c126
mov bl, 1
lea ecx, [ebp - 0x18]
call fcn.00420770
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005ebe04
mov esp, ebp
pop ebp
ret 0x24