Function at 0x1400c3150
Capabilities:
Check for time delay via gettickcount

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x20
xor r14d, r14d
mov rbx, rcx
mov dword [rcx + 0x54], r14d
mov ebp, r14d
mov rcx, qword [rcx + 0x18]
call fcn.1400bb210
test eax, eax
je 0x1400c320b
mov rcx, qword [rbx + 0x18]
lea edx, [r14 + 0x46]
call fcn.1400bb020
test eax, eax
js 0x1400c320b
nop dword [rax]
cmp eax, 0x18
je 0x1400c357a
cmp eax, 0x2a
je 0x1400c357a
add eax, 0xffffffef
test eax, 0xfffffffd
je 0x1400c31f9
mov eax, dword [rbx + 0x54]
lea edx, [rax + 1]
mov dword [rbx + 0x54], edx
cmp eax, 0x64
jg 0x1400c3364
mov ecx, edx
and ecx, 0x8000000f
jge 0x1400c31df
dec ecx
or ecx, 0xfffffff0
inc ecx
lea eax, [rdx + 1]
mov dword [rbx + 0x54], eax
cmp ecx, 1
jne 0x1400c31f9
lea rdx, str.BackChannel:_garbage_detected
mov rcx, rbx
call fcn.1400c13a0
mov rcx, qword [rbx + 0x18]
mov edx, 0x46
call fcn.1400bb020
test eax, eax
jns 0x1400c31a0
mov rcx, qword [rbx + 0x28]
lea r8, [rbx + 0x68]
mov dl, 0xa
movzx eax, byte [rcx + 0x48]
mov byte [r8], al
mov eax, dword [rcx + 0x48]
shr eax, 8
mov byte [rbx + 0x69], al
movzx eax, byte [rcx + 0x4a]
mov byte [rbx + 0x6a], al
movzx eax, byte [rcx + 0x4b]
mov rcx, rbx
mov byte [rbx + 0x6b], al
mov dword [rbx + 0x64], r14d
call fcn.1400c6660
mov rax, qword [rbx + 0x28]
cmp dword [rax + 0x4c], ebp
jl 0x1400c33ce
mov esi, dword [rax + 0x48]
mov rcx, rbx
call fcn.1400c10b0
test eax, eax
jne 0x1400c33ce
lea r15d, [rax + 1]
lea r12d, [rax + 0x6b]
nop word [rax + rax]
mov edi, r14d
cmp dword [rbx + 0x88], r14d
je 0x1400c32b0
mov rcx, qword [rbx + 0x28]
mov edx, dword [rcx + 0x48]
mov eax, edx
sub eax, esi
cmp eax, dword [rbx + 0x8c]
je 0x1400c32b0
test ebp, ebp
je 0x1400c3408
test eax, eax
je 0x1400c3408
cmp edx, dword [rcx + 0x2c]
jb 0x1400c3408
nop dword [rax + rax]
mov rcx, qword [rbx + 0x18]
call fcn.1400bb210
test eax, eax
je 0x1400c3335
mov rcx, qword [rbx + 0x18]
mov edx, 0x46
call fcn.1400bb020
test eax, eax
js 0x1400c3335
nop
cmp eax, 0x18
je 0x1400c3370
cmp eax, 0x2a
je 0x1400c3370
add eax, 0xffffffef
test eax, 0xfffffffd
je 0x1400c3323
mov eax, dword [rbx + 0x54]
lea ecx, [rax + 1]
mov dword [rbx + 0x54], ecx
cmp eax, 0x64
jg 0x1400c3364
mov eax, ecx
and eax, 0x8000000f
jge 0x1400c330a
dec eax
or eax, 0xfffffff0
inc eax
inc ecx
mov dword [rbx + 0x54], ecx
cmp eax, r15d
jne 0x1400c3323
lea rdx, str.BackChannel:_garbage_detected
mov rcx, rbx
call fcn.1400c13a0
mov rcx, qword [rbx + 0x18]
mov edx, 0x46
call fcn.1400bb020
test eax, eax
jns 0x1400c32d0
cmp dword [rbx + 0x88], edi
je 0x1400c33fc
mov rcx, qword [rbx + 0x28]
mov eax, dword [rcx + 0x48]
cmp eax, dword [rcx + 0x2c]
jb 0x1400c33fc
cmp eax, esi
jbe 0x1400c33ce
sub eax, dword [rcx + 0x3c]
cmp eax, esi
je 0x1400c33ce
mov edi, r15d
jmp 0x1400c3408
lea rdx, str.BackChannel:_exceeded_garbage_count
jmp 0x1400c3581
mov rax, qword [rbx + 0x28]
cmp dword [rax + 0x4c], edi
jl 0x1400c33ce
mov rcx, rbx
call fcn.1400c10b0
test eax, eax
jne 0x1400c33ce
cmp dword [rbx + 0x88], edi
je 0x1400c356a
xor edx, edx
mov rcx, rbx
call fcn.1400c6230
cmp eax, 3
jne 0x1400c33d0
mov rcx, qword [rbx + 0x28]
mov eax, dword [rcx + 0x48]
cmp eax, dword [rcx + 0x2c]
jb 0x1400c33ef
sub eax, dword [rcx + 0x3c]
cmp eax, esi
je 0x1400c3560
add esi, dword [rbx + 0xa0]
mov dword [rcx + 0x54], r14d
mov rax, qword [rbx + 0x28]
cmp dword [rax + 0x4c], edi
jge 0x1400c32b0
xor eax, eax
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r14
pop r12
ret
mov edx, dword [rcx + 0x3c]
sub eax, edx
cmp eax, esi
jne 0x1400c33b7
add esi, edx
jmp 0x1400c33bd
mov rcx, rbx
call fcn.1400c10b0
test eax, eax
jne 0x1400c33ce
cmp dword [rbx + 0x88], r14d
je 0x1400c34d0
mov rcx, qword [rbx + 0x28]
mov r8d, dword [rcx + 0x48]
mov eax, r8d
sub eax, esi
cmp eax, dword [rbx + 0x8c]
jae 0x1400c3464
cmp r8d, dword [rcx + 0x2c]
jae 0x1400c3464
test edi, edi
jne 0x1400c3464
lea rdx, str.SendDataFrame:_sending___ld
mov rcx, rbx
call fcn.1400c13a0
mov rcx, rbx
call fcn.1400c3040
cmp dword [rbx + 0x5c], r14d
mov ebp, eax
cmovne ebp, r15d
test ebp, ebp
setne r8b
add r8b, 0x6a
jmp 0x1400c350f
call sub.KERNEL32.dll_GetTickCount
mov rcx, qword [rbx + 0x18]
lea edi, [rax + 0x5dc]
call fcn.1400bb210
test eax, eax
jne 0x1400c351e
mov rcx, rbx
call fcn.1400c10b0
test eax, eax
jne 0x1400c33ce
call sub.KERNEL32.dll_GetTickCount
cmp edi, eax
jg 0x1400c34c1
mov rax, qword [rbx + 0x28]
inc dword [rax + 0x50]
mov rax, qword [rbx + 0x28]
inc dword [rax + 0x54]
mov eax, dword [rax + 0x54]
cmp eax, dword [rbx + 0x9c]
jge 0x1400c359b
call sub.KERNEL32.dll_GetTickCount
lea edi, [rax + 0x5dc]
mov rcx, qword [rbx + 0x18]
call fcn.1400bb210
test eax, eax
je 0x1400c3480
jmp 0x1400c351e
test edi, edi
jne 0x1400c351e
mov rax, qword [rbx + 0x28]
mov r8d, dword [rax + 0x48]
cmp r8d, dword [rax + 0x2c]
jae 0x1400c351e
lea rdx, str.SendDataFrame:_sending___ld
mov rcx, rbx
call fcn.1400c13a0
mov rcx, rbx
call fcn.1400c3040
cmp dword [rbx + 0x5c], r14d
mov ebp, eax
mov r8d, 0x69
cmovne ebp, r15d
test ebp, ebp
cmovne r8d, r12d
mov rdx, qword [rbx + 0x28]
mov rcx, rbx
mov edx, dword [rdx + 0x3c]
call fcn.1400c6830
mov rcx, qword [rbx + 0x28]
cmp dword [rcx + 0x4c], r14d
jl 0x1400c33ce
mov eax, dword [rcx + 0x2c]
cmp dword [rcx + 0x48], eax
jae 0x1400c3537
inc dword [rcx + 0x38]
test ebp, ebp
je 0x1400c354b
mov rcx, qword [rbx + 0x28]
mov eax, dword [rcx + 0x2c]
cmp dword [rcx + 0x48], eax
jb 0x1400c33ce
mov rcx, rbx
call fcn.1400c10b0
test eax, eax
je 0x1400c3270
jmp 0x1400c33ce
mov eax, 3
jmp 0x1400c33d0
mov rcx, qword [rbx + 0x28]
mov eax, dword [rcx + 0x2c]
cmp dword [rcx + 0x48], eax
jae 0x1400c33ce
lea rdx, str.BackChannel:_backtalk_ZCAN_ZPAD
mov rcx, rbx
call fcn.1400c13a0
mov r8b, 0x68
xor edx, edx
mov rcx, rbx
call fcn.1400c6830
jmp 0x1400c33ce
mov rax, qword [rbx + 0x28]
mov dword [rax + 0x4c], 0xfffffc75
mov rax, qword [rbx + 0x28]
mov eax, dword [rax + 0x4c]
jmp 0x1400c33d0