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

Disassembly:
push rsi
push r14
sub rsp, 0x78
mov rax, qword [0x140164030]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov rsi, qword [rcx + 0x120]
mov r14, r9
test rsi, rsi
jne 0x140031c9e
movzx r8d, r8b
lea rcx, str._AsusSync_CommDev__SendBTRequest___send_nothing_due_to_connection_object_is_inexistent___d__d__n
movzx edx, dl
call fcn.140095ab0
jmp 0x140031e74
cmp qword [rsi + 0x28], 0xffffffffffffffff
jne 0x140031cbd
movzx r8d, r8b
lea rcx, str._AsusSync_CommDev__SendBTRequest___send_nothing_due_to_connection_is_not_made___d__d__n
movzx edx, dl
call fcn.140095ab0
jmp 0x140031e74
mov eax, dword [rcx + 0x1e0]
xorps xmm0, xmm0
mov dword [rsp + 0x24], eax
movzx eax, word [rcx + 0x1e4]
mov qword [rsp + 0x58], r15
mov r15d, dword [rsp + 0xb0]
mov word [rsp + 0x28], ax
movdqu xmmword [rsp + 0x30], xmm0
mov dword [rsp + 0x20], 0x10000
mov byte [rsp + 0x2a], dl
mov byte [rsp + 0x2b], r8b
mov dword [rsp + 0x2c], r15d
cmp qword [rsi + 0x28], 0xffffffffffffffff
je 0x140031e6f
mov qword [rsp + 0x70], rbx
xor ebx, ebx
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x60], rdi
call qword [sym.imp.api_ms_win_core_sysinfo_l1_1_0.dll_GetTickCount]
mov ebp, eax
mov r9d, ebx
test r9b, 1
je 0x140031d50
mov eax, r9d
lea rdx, [rsp + 0x20]
add rdx, rax
lea eax, [r9 - 1]
mov ecx, eax
movzx eax, byte [rsp + rax + 0x20]
movzx r8d, byte [rdx]
add r8b, r9b
mov byte [rdx], al
mov byte [rsp + rcx + 0x20], r8b
inc r9d
cmp r9d, 0x20
jb 0x140031d26
mov rax, qword [rsi + 0x28]
nop dword [rax]
xor r9d, r9d
lea rdx, [rsp + 0x20]
mov rcx, rax
lea r8d, [r9 + 0x20]
call qword [sym.imp.WS2_32.dll_send]
mov edi, eax
cmp eax, 0xffffffff
jne 0x140031dae
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebx, eax
cmp eax, 0x2733
je 0x140031d9f
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, eax
lea rcx, str._AsusSync_BTConnection__Send___send_header_fail__WSAGetLastError__d__r_n
call fcn.140095ab0
call qword [sym.imp.api_ms_win_core_sysinfo_l1_1_0.dll_GetTickCount]
sub eax, ebp
cmp eax, 0x7530
ja 0x140031dc7
mov rax, qword [rsi + 0x28]
cmp rax, 0xffffffffffffffff
je 0x140031dd3
cmp edi, 0xffffffff
jne 0x140031dd3
cmp ebx, 0x2733
je 0x140031d60
jmp 0x140031dd3
lea rcx, str._AsusSync_BTConnection__Send___too_long_to_send_payload__skip_it._n
call fcn.140095ab0
test r14, r14
je 0x140031e60
call qword [sym.imp.api_ms_win_core_sysinfo_l1_1_0.dll_GetTickCount]
sub eax, ebp
cmp eax, 0x7530
jae 0x140031e60
mov rax, qword [rsi + 0x28]
nop
xor r9d, r9d
mov r8d, r15d
mov rdx, r14
mov rcx, rax
call qword [sym.imp.WS2_32.dll_send]
mov edi, eax
cmp eax, 0xffffffff
jne 0x140031e3b
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebx, eax
cmp eax, 0x2733
je 0x140031e2c
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, eax
lea rcx, str._AsusSync_BTConnection__Send___send_payload_fail__WSAGetLastError__d__r_n
call fcn.140095ab0
call qword [sym.imp.api_ms_win_core_sysinfo_l1_1_0.dll_GetTickCount]
sub eax, ebp
cmp eax, 0x7530
ja 0x140031e54
mov rax, qword [rsi + 0x28]
cmp rax, 0xffffffffffffffff
je 0x140031e60
cmp edi, 0xffffffff
jne 0x140031e60
cmp ebx, 0x2733
je 0x140031df0
jmp 0x140031e60
lea rcx, str._AsusSync_BTConnection__Send___too_long_to_send_payload__skip_it._n
call fcn.140095ab0
mov rdi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x70]
mov r15, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.1400c2450
add rsp, 0x78
pop r14
pop rsi
ret