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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xc38]
sub rsp, 0xd38
mov qword [rsp + 0x68], 0xfffffffffffffffe
mov rax, qword [0x14026be10]
xor rax, rsp
mov qword [rbp + 0xc20], rax
mov rdi, r9
mov qword [rsp + 0x48], r9
mov rbx, r8
mov r14, rdx
mov r13, rcx
mov r12, qword [rbp + 0xca0]
mov rax, qword [rbp + 0xca8]
mov qword [rsp + 0x60], rax
mov rsi, qword [rbp + 0xcb0]
mov qword [rsp + 0x50], rsi
mov rax, qword [rax + 8]
mov qword [rsp + 0x58], rax
xor r15d, r15d
mov dword [r12], r15d
cmp byte [rcx + 0x118], r15b
je 0x14012feaa
test rbx, rbx
je 0x14012fe94
xor edx, edx
mov r8d, 0x90
lea rcx, [rbp - 0x80]
call fcn.14016c710
lea rcx, [rbp - 0x80]
call fcn.14002b840
nop
mov r8, rbx
lea rdx, [0x1401d76b8]
lea rcx, [rbp - 0x80]
call fcn.14002b970
lea rdx, [0x140218da4]
lea rcx, [rbp - 0x80]
call fcn.14002e540
test al, al
jne 0x14012fe6a
lea rdx, [0x140218da4]
lea rcx, [rbp - 0x80]
call fcn.14002bc30
lea rcx, [rbp - 0x80]
call fcn.14002ed10
mov r9, rax
mov r8, r14
lea rdx, [0x1401fe708]
mov rcx, r13
call fcn.140131430
nop
lea rcx, [rbp - 0x80]
call fcn.14002b890
jmp 0x14012feaa
lea r9, [0x140218da4]
mov r8, r14
lea rdx, [0x1401fe708]
call fcn.140131430
call sub.KERNEL32.dll_GetTickCount
mov dword [r13 + 0x53c], eax
inc dword [r13 + 0x548]
lea rbx, [r13 + 0x6d0]
mov rcx, rbx
call fcn.140035e00
cmp dword [r13 + 0xe9c], 0
je 0x14012ff7c
cmp byte [r13 + 0x630], 0
je 0x14012fefe
lea rcx, [r13 + 0x638]
mov r8, rsi
mov rdx, rbx
call fcn.140132540
mov byte [r13 + 0x630], 0
xor r14b, r14b
mov eax, dword [r13 + 0x7f0]
test eax, eax
je 0x14012ff18
mov r14b, 1
dec eax
mov dword [r13 + 0x7f0], eax
lea rcx, [r13 + 0x638]
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rsi
mov r9, rbx
movzx r8d, r14b
mov rdx, rdi
call fcn.1401323d0
mov rcx, rdi
call fcn.1400372d0
mov edi, eax
test r14b, r14b
jne 0x14012ff6d
cmp eax, 0x40
jbe 0x14012ff6d
mov rcx, rbx
call fcn.1400372d0
mov ecx, edi
shr ecx, 3
add eax, ecx
mov ecx, reloc.WS2_32.dll_recv
cmp eax, edi
jbe 0x14012ff72
mov dword [r13 + 0x7f0], ecx
jmp 0x14012ff72
mov ecx, reloc.WS2_32.dll_recv
mov rdi, rbx
mov qword [rsp + 0x48], rbx
jmp 0x14012ff81
mov ecx, reloc.WS2_32.dll_recv
mov eax, dword [r13 + 0xec4]
dec eax
test eax, 0xfffffff4
mov r14d, 8
cmove r14d, ecx
mov rcx, rdi
call fcn.1400372d0
mov dword [rsp + 0x70], eax
mov r8d, dword [r13 + 0xec4]
mov ecx, r15d
mov edx, 4
cmp r8d, 0xd
cmove ecx, edx
lea r9d, [rax + 5]
mov eax, r9d
sub eax, ecx
add eax, edx
xor edx, edx
div r14d
mov eax, r14d
sub eax, edx
xor edx, edx
div r14d
lea ebx, [rdx + 4]
mov dword [rsp + 0x40], ebx
lea r15d, [r9 + rbx]
cmp r15d, 0x10
jae 0x14012fff6
cmp r8d, 0xd
je 0x14012fff6
add ebx, r14d
mov dword [rsp + 0x40], ebx
add r15d, r14d
lea r14d, [r15 - 4]
mov dword [rsp + 0x44], r14d
mov dword [r12], r15d
lea r12, [r13 + 0x730]
mov rcx, r12
call fcn.140035e00
mov eax, dword [r13 + 0xec4]
cmp eax, 0xd
jne 0x1401300fc
lea edx, [r15 + 0x10]
mov rcx, r12
call fcn.140036ee0
mov r14, rax
mov eax, dword [rsp + 0x44]
mov ecx, eax
shr ecx, 0x18
mov byte [r14], cl
mov ecx, eax
shr ecx, 0x10
mov byte [r14 + 1], cl
mov ecx, eax
shr ecx, 8
mov byte [r14 + 2], cl
mov byte [r14 + 3], al
mov ecx, dword [r13 + 0x888]
mov dword [rsp + 0x20], ecx
mov r9d, 4
mov r8, r14
lea rdx, [r13 + 0x21d30]
mov rcx, r13
call fcn.140125e10
lea rdi, [r14 + 4]
mov byte [rdi], bl
mov ebx, dword [rsp + 0x70]
mov rcx, qword [rsp + 0x48]
call fcn.140036f60
mov rdx, rax
lea rcx, [r14 + 5]
mov r8d, ebx
call fcn.14016a920
mov edx, dword [rsp + 0x70]
add edx, 5
add rdx, r14
mov ecx, dword [rsp + 0x40]
call fcn.140040e30
lea rcx, [r13 + 0x21db4]
mov ebx, dword [rsp + 0x44]
mov r8d, ebx
mov rdx, rdi
call fcn.140125a20
lea r8d, [rbx + 4]
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov r9d, dword [r13 + 0x888]
mov rdx, r14
lea rcx, [r13 + 0x21d30]
call fcn.140124d30
lea edx, [r15 + 0x10]
mov rcx, r12
call fcn.140034830
mov rsi, qword [rsp + 0x50]
jmp 0x140130243
mov rdx, r12
mov ecx, r14d
test eax, eax
je 0x14013021e
call fcn.140160fb0
movzx edx, bl
mov rcx, r12
call fcn.140034b40
mov rdx, rdi
mov rcx, r12
call fcn.1400348f0
mov rdx, r12
mov ecx, ebx
call fcn.140040dd0
lea rdi, [r13 + 0x700]
mov rcx, rdi
call fcn.140035e00
cmp qword [r13 + 0xee0], 0
jne 0x14013015f
mov rax, qword [rsi]
lea rdx, str.No_output_encryptor_
mov rcx, rsi
call qword [rax + 0x28]
xor al, al
jmp 0x140130483
mov rcx, r12
call fcn.1400372d0
mov ebx, eax
mov rcx, r12
call fcn.140036f60
mov r9, rax
lea r8, [r13 + 0xfe0]
lea rdx, [r13 + 0x11630]
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], ebx
mov rcx, qword [r13 + 0xee0]
call fcn.1400db5b0
mov rcx, rdi
call fcn.1400372d0
mov ebx, eax
mov rcx, r12
call fcn.1400372d0
cmp ebx, eax
je 0x140130243
mov rax, qword [rsi]
lea rdx, str.Size_of_encrypted_data_changed_
mov rcx, rsi
call qword [rax + 0x28]
mov rcx, r12
call fcn.1400372d0
mov r8d, eax
lea rdx, str.unencryptedPacketSize
mov rcx, rsi
call fcn.1400717d0
mov rcx, rdi
call fcn.1400372d0
mov r8d, eax
lea rdx, str.encryptedPacketSize
mov rcx, rsi
call fcn.1400717d0
lea r9, [0x140218da4]
lea r8, str.Failed_to_encrypt.
lea rdx, str.TRAN
mov rcx, r13
call fcn.140131430
xor al, al
jmp 0x140130483
call fcn.140160fb0
movzx edx, bl
mov rcx, r12
call fcn.140034b40
mov rdx, rdi
mov rcx, r12
call fcn.1400348f0
mov rdx, r12
mov ecx, ebx
call fcn.140040dd0
cmp dword [r13 + 0xec4], 0xd
je 0x14013037c
lea r14, [r13 + 0x6a0]
mov rcx, r14
call fcn.140035e00
cmp dword [r13 + 0xea8], 0
je 0x140130335
movzx eax, byte [r13 + 0x88b]
mov byte [rsp + 0x70], al
movzx eax, byte [r13 + 0x88a]
mov byte [rsp + 0x71], al
movzx eax, byte [r13 + 0x889]
mov byte [rsp + 0x72], al
movzx eax, byte [r13 + 0x888]
mov byte [rsp + 0x73], al
lea rcx, [rbp + 0x10]
call fcn.1400343d0
nop
mov dword [rbp + 0xc18], 3
mov qword [rbp + 0x18], 0
mov dword [rbp + 0x818], 0
lea rax, [rsp + 0x70]
mov qword [rbp + 0x20], rax
mov dword [rbp + 0x81c], 4
mov rcx, r12
call fcn.140036f60
mov qword [rbp + 0x28], rax
mov rcx, r12
call fcn.1400372d0
mov dword [rbp + 0x820], eax
lea rcx, [r13 + 0x21fc8]
call fcn.1400372d0
mov edi, eax
lea rcx, [r13 + 0x21fc8]
call fcn.140036f60
mov rdx, rax
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], r14
mov r9d, dword [r13 + 0x21f90]
mov r8d, edi
lea rcx, [rbp + 0x10]
call fcn.1400cda20
nop
lea rcx, [rbp + 0x10]
call fcn.1400345b0
cmp dword [r13 + 0xec4], 0
je 0x14013034e
lea rdx, [r13 + 0x700]
mov rcx, r12
call fcn.140038d50
mov rcx, r14
call fcn.1400372d0
test eax, eax
je 0x14013037c
cmp dword [r13 + 0xea8], 6
jne 0x140130371
mov edx, 8
mov rcx, r14
call fcn.140038b60
mov rdx, r14
mov rcx, r12
call fcn.1400348f0
mov ebx, dword [r13 + 0x890]
lea eax, [rbx - 1]
mov ecx, 0xbb8
cmp eax, 0xbb6
cmovbe ebx, ecx
mov r14, qword [rsp + 0x58]
test r14, r14
je 0x1401303a5
mov byte [r14 + 0xdc], 1
mov dword [rsp + 0x74], 0
lea rcx, [r13 + 0x550]
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rsi
lea rax, [rsp + 0x74]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ebx
xor r9d, r9d
mov r8d, 0x1000
mov rdx, r12
call fcn.140122d90
movzx edi, al
test al, al
jne 0x140130449
cmp dword [rsp + 0x74], 0
jbe 0x140130439
mov rcx, r12
call fcn.1400372d0
mov r8d, eax
lea rdx, str.packetSize
mov rcx, rsi
call fcn.1400717d0
mov r8d, dword [rsp + 0x74]
lea rdx, str.numBytesSent
mov rcx, rsi
call fcn.1400717d0
mov r8d, ebx
lea rdx, str.idleTimeoutMs
mov rcx, rsi
call fcn.1400717d0
lea rdx, str.Failed_to_send_entire_SSH_packet.
jmp 0x140130440
lea rdx, str.SSH_SendBytes_failed.
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x28]
test r14, r14
je 0x140130456
mov byte [r14 + 0xdc], 0
inc dword [r13 + 0x888]
test dil, dil
jne 0x14013047f
lea r9, [0x140218da4]
lea r8, str.Failed_to_send.
lea rdx, str.TRAN
mov rcx, r13
call fcn.140131430
movzx eax, dil
mov rcx, qword [rbp + 0xc20]
xor rcx, rsp
call fcn.140168e10
add rsp, 0xd38
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret