Function at 0x14013afb0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x50
mov rdi, r9
mov ebx, r8d
mov rsi, rcx
mov eax, r8d
and eax, 0xf
cmp eax, 4
jb 0x14013b02e
cmp eax, 7
jae 0x14013b075
cmp eax, 6
je 0x14013b166
cmp eax, 4
jne 0x14013b186
nop
inc qword [rsi + 8]
mov rax, qword [rsi]
mov rcx, qword [rdx]
mov qword [rdi + 8], rcx
mov rcx, qword [rdx]
cmp rcx, rax
je 0x14013b29c
lea r8, [rdi + 8]
cmp dword [rdx + 8], 0
je 0x14013b33c
nop
mov qword [rcx], rdi
mov rcx, qword [rdx]
cmp rcx, qword [rax]
mov rcx, rax
jne 0x14013b352
jmp 0x14013b34e
cmp eax, 3
je 0x14013b0fe
cmp eax, 1
je 0x14013b09a
test eax, eax
jne 0x14013b117
nop
mov rax, qword [rdi + 0x10]
movzx edx, byte [rax + 0x19]
test dl, dl
je 0x14013b232
nop
mov rcx, qword [rdi + 8]
cmp byte [rcx + 0x19], 0
je 0x14013b2bc
add eax, 0xfffffff9
nop
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x30], rsi
cmp rdx, rsi
jb 0x14013b836
test rdi, rdi
je 0x14013b8db
mov rax, rdi
nop word cs:[rax + rax]
test bl, 0x10
jne 0x14013b327
nop
mov rcx, qword [rsp + 0x30]
mov rdx, rax
dec rdx
movzx ecx, byte [rcx + rax - 1]
mov r8, qword [rsp + 0x28]
mov byte [r8 + rax - 1], cl
mov rax, rdx
jne 0x14013b0d0
jmp 0x14013b8db
lea rcx, [0x14078fff8]
mov r8d, 0x75b5d213
call fcn.1401366f0
xor edi, edi
jmp 0x14013bb0c
nop
inc qword [rdi + 8]
mov rax, qword [rdi]
mov rcx, qword [rdx]
mov qword [rsi + 8], rcx
mov rcx, qword [rdx]
cmp rcx, rax
je 0x14013b252
nop
cmp dword [rdx + 8], 0
je 0x14013b2e0
nop
mov qword [rcx], rsi
cmp byte [0x140790280], 0
mov rcx, rax
jne 0x14013b300
nop
mov rcx, qword [rax]
cmp qword [rdx], rcx
mov rcx, rax
jne 0x14013b304
jmp 0x14013b300
nop
mov r9, qword [rdi + 8]
test r9, r9
sete r8b
movzx eax, byte [0x1407196a2]
cmp al, 0x6c
je 0x14013bdc0
jmp 0x14013bdae
mov r14, rdx
call fcn.1401366a0
movzx ebp, byte [0x140790280]
mov rcx, qword [0x14071d678]
mov edx, dword [0x14071d660]
mov r15d, 0xffffffd3
sub r15d, eax
sub eax, ebp
add eax, edx
add eax, 0x2d
cdqe
add rax, rcx
mov r12, r14
mov rcx, r14
call qword [0x140704440]
mov rcx, qword [0x14071d670]
mov eax, dword [0x14071d668]
add byte [rcx], cl
invalid
sub eax, r15d
clc
mov r8, rax
nop word cs:[rax + rax]
mov rcx, r8
mov r8, qword [r8]
cmp byte [r8 + 0x19], 0
je 0x14013b240
jmp 0x14013b37d
nop
mov qword [rax], rsi
mov qword [rax + 8], rsi
mov qword [rax + 0x10], rsi
mov rax, rsi
jmp 0x14013baf8
test bl, 0x40
jne 0x14013b2b5
nop
mov qword [rax], rdi
mov qword [rax + 8], rdi
mov qword [rax + 0x10], rdi
mov rax, rdi
jmp 0x14013bb07
mov r8, rdi
nop
mov r9, r8
mov r8, rcx
cmp r9, qword [rcx + 0x10]
jne 0x14013b37a
nop
mov rcx, qword [r8 + 8]
cmp byte [rcx + 0x19], 0
je 0x14013b2c0
jmp 0x14013b37d
nop
mov qword [rcx + 0x10], rsi
lea rcx, [rax + 0x10]
cmp byte [0x140790280], 0
jne 0x14013b300
nop
mov r8, qword [rax + 0x10]
cmp qword [rdx], r8
jne 0x14013b223
nop
mov qword [rcx], rsi
nop
mov qword [rsp + 0x48], rdi
lea r9, [rsp + 0x28]
mov r8b, 1
xor eax, eax
jmp 0x14013bdbc
nop
mov qword [rcx + 0x10], rdi
mov rcx, qword [rdx]
cmp rcx, qword [rax + 0x10]
jne 0x14013b352
lea rcx, [rax + 0x10]
nop
mov qword [rcx], rdi
nop
mov rdx, qword [r8]
lea r9, [rdx + 0x18]
cmp byte [0x140790280], 0
jne 0x14013b49a
nop
cmp byte [rdx + 0x18], 0
mov rcx, rdi
jne 0x14013bb02
jmp 0x14013bb1e
mov rcx, r8
nop
mov r8, qword [rdi]
movzx r9d, byte [r8 + 0x19]
test r9b, r9b
cmove rax, r8
or dl, r9b
je 0x14013b438
nop
mov rax, qword [rcx + 0x10]
cmp rcx, rdi
je 0x14013b396
nop
mov qword [r8 + 8], rcx
mov rdx, qword [rdi]
mov qword [rcx], rdx
cmp rcx, qword [rdi + 0x10]
mov rdx, rcx
je 0x14013b47e
nop
mov rdx, qword [rcx + 8]
cmp byte [rax + 0x19], 0
jne 0x14013b46a
nop
mov qword [rax + 8], rdx
nop
mov qword [rdx], rax
mov r8, qword [rdi + 0x10]
mov qword [rcx + 0x10], r8
mov r8, qword [rdi + 0x10]
mov qword [r8 + 8], rcx
nop
mov r8, qword [rsi]
cmp qword [r8 + 8], rdi
je 0x14013b4a2
nop
mov r9, qword [rdi + 8]
lea r8, [r9 + 0x10]
cmp qword [r9], rdi
cmove r8, r9
jmp 0x14013b4a6
mov rcx, rdi
jmp 0x14013bb1e
add r8, 8
nop
mov qword [r8], rcx
mov r8, qword [rdi + 8]
mov qword [rcx + 8], r8
movzx r8d, byte [rcx + 0x18]
movzx r9d, byte [rdi + 0x18]
mov byte [rcx + 0x18], r9b
mov byte [rdi + 0x18], r8b
nop
mov rax, qword [rax + 8]
nop
mov byte [rax + 0x18], 1
nop
mov r11, qword [rdx + 8]
mov r10, qword [r11]
cmp rdx, r10
je 0x14013bb6c
nop
cmp byte [r10 + 0x18], 0
je 0x14013bc3f
nop
mov r10, qword [rdx]
cmp rcx, r10
jne 0x14013bcd0
lea r11, [rdx + 8]
lea r14, [r10 + 0x10]
mov rcx, qword [r10 + 0x10]
mov qword [rdx], rcx
mov rcx, qword [r10 + 0x10]
cmp byte [rcx + 0x19], 0
je 0x14013bc81
xor r8d, r8d
mov r9, r10
jmp 0x14013bc95
nop
mov r10, qword [r11 + 0x10]
cmp byte [r10 + 0x18], 0
je 0x14013bc60
nop
mov r8, qword [rdx + 0x10]
cmp rcx, r8
jne 0x14013bbd0
nop
mov rcx, qword [r8]
mov qword [rdx + 0x10], rcx
mov rcx, qword [r8]
cmp byte [rcx + 0x19], 0
jne 0x14013bb9c
nop
mov qword [rcx + 8], rdx
nop
mov rcx, qword [rdx + 8]
mov qword [r8 + 8], rcx
mov r9, qword [rsi]
lea rcx, [r9 + 8]
cmp qword [r9 + 8], rdx
je 0x14013bbc2
nop
mov r9, qword [rdx + 8]
lea rcx, [r9 + 0x10]
cmp qword [r9], rdx
cmove rcx, r9
nop
mov qword [rcx], r8
mov qword [r8], rdx
mov qword [rdx + 8], r8
mov rcx, rdx
nop
mov rdx, qword [rcx + 8]
mov byte [rdx + 0x18], 1
mov rdx, qword [rcx + 8]
mov rdx, qword [rdx + 8]
mov byte [rdx + 0x18], 0
mov rdx, qword [rcx + 8]
mov rdx, qword [rdx + 8]
mov r8, qword [rdx]
mov r9, qword [r8 + 0x10]
mov qword [rdx], r9
mov r9, qword [r8 + 0x10]
cmp byte [r9 + 0x19], 0
jne 0x14013bc07
nop
mov qword [r9 + 8], rdx
nop
mov r9, qword [rdx + 8]
mov qword [r8 + 8], r9
mov r10, qword [rsi]
lea r9, [r10 + 8]
cmp qword [r10 + 8], rdx
je 0x14013bc2e
nop
mov r10, qword [rdx + 8]
lea r9, [r10 + 0x10]
cmp qword [r10 + 0x10], rdx
cmovne r9, r10
nop
mov qword [r9], r8
mov qword [r8 + 0x10], rdx
mov qword [rdx + 8], r8
jmp 0x14013bd38
nop
mov byte [r9], 1
mov byte [r10 + 0x18], 1
mov rcx, qword [r8]
mov rcx, qword [rcx + 8]
mov byte [rcx + 0x18], 0
mov rcx, qword [r8]
mov rcx, qword [rcx + 8]
jmp 0x14013bd38
nop
mov byte [r9], 1
mov byte [r10 + 0x18], 1
mov rcx, qword [r8]
mov rcx, qword [rcx + 8]
mov byte [rcx + 0x18], 0
mov rcx, qword [r8]
mov rcx, qword [rcx + 8]
jmp 0x14013bd38
test bl, 0x10
jne 0x14013bc90
nop
mov qword [rcx + 8], rdx
mov rcx, rdx
jmp 0x14013bca1
jmp 0x14013b81b
mov rcx, rdx
test bl, 0x20
jne 0x14013bd53
nop
mov rdx, qword [r11]
mov qword [r10 + 8], rdx
mov r8, qword [rsi]
lea rdx, [r8 + 8]
cmp qword [r8 + 8], rcx
je 0x14013bcc6
nop
mov r8, qword [r11]
lea rdx, [r8 + 0x10]
cmp qword [r8 + 0x10], rcx
cmovne rdx, r8
nop
mov qword [rdx], r10
mov qword [r14], rcx
mov qword [r11], r10
nop
mov rdx, qword [rcx + 8]
mov byte [rdx + 0x18], 1
mov rdx, qword [rcx + 8]
mov rdx, qword [rdx + 8]
mov byte [rdx + 0x18], 0
mov rdx, qword [rcx + 8]
mov rdx, qword [rdx + 8]
mov r8, qword [rdx + 0x10]
mov r9, qword [r8]
mov qword [rdx + 0x10], r9
mov r9, qword [r8]
cmp byte [r9 + 0x19], 0
jne 0x14013bd07
nop
mov qword [r9 + 8], rdx
nop
mov r9, qword [rdx + 8]
mov qword [r8 + 8], r9
mov r10, qword [rsi]
lea r9, [r10 + 8]
cmp qword [r10 + 8], rdx
je 0x14013bd2d
nop
mov r10, qword [rdx + 8]
lea r9, [r10 + 0x10]
cmp qword [r10], rdx
cmove r9, r10
nop
mov qword [r9], r8
mov qword [r8], rdx
mov qword [rdx + 8], r8
lea r8, [rcx + 8]
mov rdx, qword [rcx + 8]
lea r9, [rdx + 0x18]
cmp byte [rdx + 0x18], 0
je 0x14013bb1e
jmp 0x14013bb02
xor eax, eax
lea rcx, [0x140719690]
lea rdx, [0x1405ec480]
nop word cs:[rax + rax]
lea r10d, [rax - 1]
and r10d, 0xf
movzx r10d, byte [r10 + rdx]
xor r10b, 0x87
add byte [rax + rcx], r10b
mov r10d, eax
and r10d, 0xe
movzx r10d, byte [r10 + rdx]
xor r10b, 0x87
add byte [rax + rcx + 1], r10b
add rax, 2
cmp rax, 0x12
jne 0x14013bd70
mov al, 0x6c
xchg byte [0x1407196a2], al
jmp 0x14013bdc0
mov cl, 0xa5
mov al, 0x3f
lock cmpxchg byte [0x1407196a2], cl
je 0x14013bdd4
cmp al, 0x6c
jne 0x14013bdae
lea rdi, [0x140719690]
test r8b, 1
cmove rdi, r9
jmp 0x14013bb0c
lea rax, [rsp + 0x38]
lea rdx, [rsp + 0x28]
lea r11, [rsp + 0x38]
lea r10, [rsp + 0x30]
lea r14, [rsp + 0x40]
jmp 0x14013bc95