Function at 0x14001dd20
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push r14
lea rbp, [rsp - 0x338]
sub rsp, 0x438
mov rax, qword [0x1400f3e08]
xor rax, rsp
mov qword [rbp + 0x320], rax
movzx eax, byte [r8]
mov r14, rdx
mov rsi, rcx
mov qword [rsp + 0x430], r15
mov rcx, qword [rdx + 0x38]
mov rbx, r8
test byte [r14 + 0x5c], 4
movzx edx, byte [rcx]
je 0x14001dd6d
and al, 0x1f
jmp 0x14001dd6f
and al, 0xf
mov qword [rsp + 0x470], rdi
lea r11, [r14 + 0x52]
xor al, dl
mov qword [rsp + 0x478], r12
mov byte [rcx], al
xor r9b, r9b
mov rax, qword [r14 + 0x38]
movzx r10d, byte [rax]
and r10b, 3
add r10b, 1
je 0x14001de01
nop dword [rax]
movzx edx, word [r11]
mov rax, qword [r14 + 0x38]
movzx r8d, r9b
inc r9b
add edx, r8d
movzx ecx, byte [r8 + rbx + 1]
xor byte [rdx + rax], cl
cmp r9b, r10b
jb 0x14001dda0
movzx ebx, word [r11]
xor edi, edi
mov r12, qword [r14 + 0x38]
xor dl, dl
mov qword [rsp + 0x30], rdi
movzx r9d, r10b
lea r8, [r12 + rbx]
nop dword [rax]
movzx ecx, dl
mov rax, r9
sub rax, rcx
inc dl
movzx eax, byte [rax + r8 - 1]
mov byte [rsp + rcx + 0x30], al
cmp dl, r10b
jb 0x14001dde0
mov r15, qword [rsp + 0x30]
jmp 0x14001de14
mov r12, qword [r14 + 0x38]
xor edi, edi
movzx ebx, word [r14 + 0x52]
mov r15d, edi
mov qword [rsp + 0x30], rdi
movzx ecx, r10b
movzx edx, r10b
lea eax, [rbx + rcx]
mov word [r11], ax
movzx eax, word [r14 + 0x54]
sub ax, cx
mov ecx, dword [r14 + 0x58]
mov word [r14 + 0x54], ax
movzx r11d, ax
test ecx, ecx
je 0x14001de56
sub ecx, 1
je 0x14001de46
cmp ecx, 1
je 0x14001de4e
mov r8d, 2
jmp 0x14001de59
mov r8d, 1
jmp 0x14001de59
mov r8d, edi
mov eax, r8d
mov rbx, 0xffffffffffffffff
mov rcx, qword [rsi + rax*8 + 0xad0]
mov r10, qword [rcx + 8]
lea ecx, [rdx*8]
mov rdx, rbx
shl rdx, cl
mov r9, rdx
and rdx, r10
or rdx, r15
neg r9
mov r15, qword [rsp + 0x430]
cmp rdx, r10
jae 0x14001deae
sub r10, rdx
lea rax, [rdx + r9]
mov rcx, r9
sub rcx, r10
cmp rcx, r10
cmovae rax, rdx
mov rdx, rax
jmp 0x14001dec7
mov rcx, rdx
mov rax, r9
sub rcx, r10
sub rax, rcx
cmp rax, rcx
ja 0x14001dec7
cmp rdx, r9
jb 0x14001dec7
sub rdx, r9
movzx eax, byte [r14 + 0x5c]
movabs r9, 0x3fffffffffffffff
movzx ecx, al
mov qword [r14 + 0x28], rdx
or cl, 0x20
mov byte [r14 + 0x5c], cl
cmp rdx, r9
jbe 0x14001e071
test cl, 1
je 0x14001df94
lock inc qword [rsi + 0xee8]
test byte [0x1400f8b3b], 2
je 0x14001e05d
mov rcx, qword [r14 + 8]
lea rax, [rsp + 0x38]
mov qword [rbp + 0x10], rax
lea rdx, [0x1400d07e8]
lea rax, [rsp + 0x70]
mov byte [rsp + 0x78], 0x1c
mov qword [rbp + 0x20], rax
lea rax, [rcx + 0x24]
mov byte [rsp + 0x70], 0x1c
mov qword [rbp + 0x30], rax
lea rax, [rsp + 0x78]
mov qword [rbp + 0x40], rax
lea rax, [rcx + 8]
mov qword [rbp + 0x50], rax
lea rax, str.Packet_number_too_big
mov qword [rbp + 0x60], rax
lea rax, [rbp]
mov qword [rsp + 0x38], rsi
mov qword [rbp + 0x18], 8
mov qword [rbp + 0x28], 1
mov qword [rbp + 0x38], 0x1c
mov qword [rbp + 0x48], 1
mov qword [rbp + 0x58], 0x1c
mov qword [rbp + 0x68], reloc.WS2_32.dll_shutdown
jmp 0x14001e04d
lock inc qword [rsi + 0x128]
test byte [0x1400f8b3d], 0x10
je 0x14001e05d
mov rcx, qword [r14 + 8]
lea rax, [rsp + 0x40]
mov qword [rbp + 0x80], rax
lea rax, [rbp - 0x80]
mov qword [rbp + 0x90], rax
mov byte [rbp - 0x78], 0x1c
lea rax, [rcx + 0x24]
mov byte [rbp - 0x80], 0x1c
mov qword [rbp + 0xa0], rax
lea rax, [rbp - 0x78]
mov qword [rbp + 0xb0], rax
lea rax, [rcx + 8]
mov qword [rbp + 0xc0], rax
lea rax, str.Packet_number_too_big
mov qword [rbp + 0xd0], rax
lea rax, [rbp + 0x70]
mov qword [rsp + 0x40], rsi
mov qword [rbp + 0x88], 8
mov qword [rbp + 0x98], 1
mov qword [rbp + 0xa8], 0x1c
mov qword [rbp + 0xb8], 1
mov qword [rbp + 0xc8], 0x1c
mov qword [rbp + 0xd8], reloc.WS2_32.dll_shutdown
lea rdx, [0x1400d0748]
mov r9d, 7
mov qword [rsp + 0x20], rax
call fcn.140001460
call fcn.140001640
lock inc qword [rax + 0x128]
xor al, al
jmp 0x14001e4e7
test al, 0x40
je 0x14001e203
cmp r11w, 0x10
jae 0x14001e203
test al, 1
je 0x14001e149
lock inc qword [rsi + 0xee8]
test byte [0x1400f8b3b], 2
je 0x14001e05d
mov rcx, qword [r14 + 8]
lea rax, [rsp + 0x48]
mov qword [rbp + 0xf0], rax
lea rdx, [0x1400d07e8]
lea rax, [rbp - 0x70]
mov byte [rbp - 0x68], 0x1c
mov qword [rbp + 0x100], rax
lea rax, [rcx + 0x24]
mov byte [rbp - 0x70], 0x1c
mov qword [rbp + 0x110], rax
lea rax, [rbp - 0x68]
mov qword [rbp + 0x120], rax
lea rax, [rcx + 8]
mov qword [rbp + 0x130], rax
lea rax, str.Payload_length_less_than_encryption_tag
mov qword [rbp + 0x140], rax
lea rax, [rbp + 0xe0]
mov qword [rsp + 0x48], rsi
mov qword [rbp + 0xf8], 8
mov qword [rbp + 0x108], 1
mov qword [rbp + 0x118], 0x1c
mov qword [rbp + 0x128], 1
mov qword [rbp + 0x138], 0x1c
mov qword [rbp + 0x148], 0x28
jmp 0x14001e04d
lock inc qword [rsi + 0x128]
test byte [0x1400f8b3d], 0x10
je 0x14001e05d
mov rcx, qword [r14 + 8]
lea rax, [rsp + 0x50]
mov qword [rbp + 0x160], rax
lea rax, [rbp - 0x60]
mov qword [rbp + 0x170], rax
mov byte [rbp - 0x58], 0x1c
lea rax, [rcx + 0x24]
mov byte [rbp - 0x60], 0x1c
mov qword [rbp + 0x180], rax
lea rax, [rbp - 0x58]
mov qword [rbp + 0x190], rax
lea rax, [rcx + 8]
mov qword [rbp + 0x1a0], rax
lea rax, str.Payload_length_less_than_encryption_tag
mov qword [rbp + 0x1b0], rax
lea rax, [rbp + 0x150]
mov qword [rsp + 0x50], rsi
mov qword [rbp + 0x168], 8
mov qword [rbp + 0x178], 1
mov qword [rbp + 0x188], 0x1c
mov qword [rbp + 0x198], 1
mov qword [rbp + 0x1a8], 0x1c
mov qword [rbp + 0x1b8], 0x28
jmp 0x14001e046
test al, 4
je 0x14001e4e5
cmp r8d, 2
jne 0x14001e4e5
mov rcx, qword [rsi + 0xae0]
movzx eax, byte [r12]
shr al, 2
xor al, byte [rcx + 0x1a8]
test al, 1
je 0x14001e4e5
cmp rdx, qword [rcx + 0x198]
jae 0x14001e2c4
test byte [0x1400f8b3c], 1
je 0x14001e2b7
lea r9, str.Using_old_key_to_decrypt
mov r8, rbx
mov edx, 0x80
lea rcx, [rbp + 0x2a0]
call fcn.1400015d0
lea rax, [rsp + 0x30]
mov qword [rsp + 0x30], rsi
mov qword [rbp - 0x20], rax
lea rax, [rbp + 0x2a0]
mov qword [rbp - 0x18], 8
inc rbx
cmp byte [rax + rbx], 0
jne 0x14001e280
lea rax, [rbp + 0x2a0]
mov dword [rbp - 4], edi
mov qword [rbp - 0x10], rax
lea rdx, [0x1400d0190]
lea rax, [rbp - 0x30]
inc ebx
mov r9d, 3
mov qword [rsp + 0x20], rax
mov dword [rbp - 8], ebx
call fcn.140001460
mov dword [r14 + 0x58], 4
jmp 0x14001e4e5
test byte [0x1400f8b3c], 1
je 0x14001e347
mov qword [rsp + 0x20], rdx
lea r9, str.Possible_peer_initiated_key_update__packet__llu_
mov edx, 0x80
lea rcx, [rbp + 0x2a0]
mov r8, rbx
call fcn.1400015d0
lea rax, [rsp + 0x58]
mov qword [rsp + 0x58], rsi
mov qword [rbp - 0x20], rax
lea rax, [rbp + 0x2a0]
mov qword [rbp - 0x18], 8
nop word [rax + rax]
inc rbx
cmp byte [rax + rbx], 0
jne 0x14001e310
lea rax, [rbp + 0x2a0]
mov dword [rbp - 4], edi
mov qword [rbp - 0x10], rax
lea rdx, [0x1400d0190]
lea rax, [rbp - 0x30]
inc ebx
mov r9d, 3
mov qword [rsp + 0x20], rax
mov dword [rbp - 8], ebx
call fcn.140001460
mov rcx, rsi
call fcn.14003a300
test eax, eax
jns 0x14001e4dd
test byte [r14 + 0x5c], 1
je 0x14001e423
lock inc qword [rsi + 0xee8]
test byte [0x1400f8b3b], 2
je 0x14001e05d
mov rcx, qword [r14 + 8]
lea rax, [rsp + 0x60]
mov qword [rbp + 0x1d0], rax
lea rdx, [0x1400d07e8]
lea rax, [rbp - 0x50]
mov byte [rbp - 0x48], 0x1c
mov qword [rbp + 0x1e0], rax
lea rax, [rcx + 0x24]
mov byte [rbp - 0x50], 0x1c
mov qword [rbp + 0x1f0], rax
lea rax, [rbp - 0x48]
mov qword [rbp + 0x200], rax
lea rax, [rcx + 8]
mov qword [rbp + 0x210], rax
lea rax, str.Generate_new_packet_keys
mov qword [rbp + 0x220], rax
lea rax, [rbp + 0x1c0]
mov qword [rsp + 0x60], rsi
mov qword [rbp + 0x1d8], 8
mov qword [rbp + 0x1e8], 1
mov qword [rbp + 0x1f8], 0x1c
mov qword [rbp + 0x208], 1
mov qword [rbp + 0x218], 0x1c
mov qword [rbp + 0x228], 0x19
jmp 0x14001e04d
lock inc qword [rsi + 0x128]
test byte [0x1400f8b3d], 0x10
je 0x14001e05d
mov rcx, qword [r14 + 8]
lea rax, [rsp + 0x68]
mov qword [rbp + 0x240], rax
lea rax, [rbp - 0x40]
mov qword [rbp + 0x250], rax
mov byte [rbp - 0x38], 0x1c
lea rax, [rcx + 0x24]
mov byte [rbp - 0x40], 0x1c
mov qword [rbp + 0x260], rax
lea rax, [rbp - 0x38]
mov qword [rbp + 0x270], rax
lea rax, [rcx + 8]
mov qword [rbp + 0x280], rax
lea rax, str.Generate_new_packet_keys
mov qword [rbp + 0x290], rax
lea rax, [rbp + 0x230]
mov qword [rsp + 0x68], rsi
mov qword [rbp + 0x248], 8
mov qword [rbp + 0x258], 1
mov qword [rbp + 0x268], 0x1c
mov qword [rbp + 0x278], 1
mov qword [rbp + 0x288], 0x1c
mov qword [rbp + 0x298], 0x19
jmp 0x14001e046
mov dword [r14 + 0x58], 5
mov al, 1
mov r12, qword [rsp + 0x478]
mov rdi, qword [rsp + 0x470]
mov rcx, qword [rbp + 0x320]
xor rcx, rsp
call fcn.14007f5b0
add rsp, 0x438
pop r14
pop rsi
pop rbx
pop rbp
ret