Function at 0x14013cc60
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov rax, rcx
dec rcx
mov rdx, qword [rax - 1]
shr edx, 0xc
cmp rdx, 0x18
jle 0x14013cce5
cmp edx, 0x19
je 0x14013cd07
cmp edx, 0x5e
je 0x14013cd22
cmp edx, 0x5d
jne 0x14013cd67
mov rdx, qword [rcx]
shr rdx, 0x20
jne 0x14013d186
mov rdx, qword [rcx + 8]
sar rdx, 1
mov r8, qword [rcx]
and r8d, 0xfffff000
cmp r8d, 0x5d000
jne 0x14013cd90
test rdx, rdx
jle 0x14013cdb9
add rax, 0xf
mov r8d, edx
and r8d, 3
cmp rdx, 4
jae 0x14013cfa3
xor r9d, r9d
jmp 0x14013d039
cmp edx, 0x17
je 0x14013ccef
cmp edx, 0x18
jne 0x14013cd67
mov rdx, qword [rcx]
mov rdi, qword [rcx + 8]
lea rsi, [rdi + rcx]
add rsi, 0x10
add rdi, 0x10
jmp 0x14013d19c
mov edi, dword [rax + 7]
shr edi, 2
lea rsi, [rcx + rdi]
add rsi, 0xc
add rdi, 0xc
mov rdx, qword [rax - 1]
jmp 0x14013d19c
mov rdx, qword [rcx]
shr rdx, 0x20
jne 0x14013cf96
mov rdx, qword [rcx + 8]
sar rdx, 1
mov r8, qword [rcx]
and r8d, 0xfffff000
cmp r8d, 0x5d000
jne 0x14013cd6e
test rdx, rdx
jle 0x14013cdb2
add rax, 0xf
mov r8d, edx
and r8d, 3
cmp rdx, 4
jae 0x14013cdc0
xor r9d, r9d
jmp 0x14013ce49
add rsp, 0x28
pop rdi
pop rsi
ret
test rdx, rdx
jle 0x14013cdb2
add rax, 0xf
mov r8d, edx
and r8d, 3
cmp rdx, 4
jae 0x14013ce89
xor r9d, r9d
jmp 0x14013cf19
test rdx, rdx
jle 0x14013cdb9
add rax, 0xf
mov r8d, edx
and r8d, 3
cmp rdx, 4
jae 0x14013d079
xor r9d, r9d
jmp 0x14013d109
xor edx, edx
jmp 0x14013cf48
xor edx, edx
jmp 0x14013d138
movabs r9, 0x7ffffffffffffffc
and rdx, r9
xor r9d, r9d
movzx r10d, byte [rax]
add r10d, r9d
mov r9d, r10d
shl r9d, 0xa
add r9d, r10d
mov r10d, r9d
shr r10d, 6
xor r10d, r9d
movzx r9d, byte [rax + 1]
add r9d, r10d
mov r10d, r9d
shl r10d, 0xa
add r10d, r9d
mov r9d, r10d
shr r9d, 6
xor r9d, r10d
movzx r10d, byte [rax + 2]
add r10d, r9d
mov r9d, r10d
shl r9d, 0xa
add r9d, r10d
mov r10d, r9d
shr r10d, 6
xor r10d, r9d
movzx r9d, byte [rax + 3]
add r9d, r10d
mov r10d, r9d
shl r10d, 0xa
add r10d, r9d
mov r9d, r10d
shr r9d, 6
xor r9d, r10d
add rax, 4
add rdx, 0xfffffffffffffffc
jne 0x14013cdd0
test r8, r8
je 0x14013cf44
xor edx, edx
nop word cs:[rax + rax]
movzx r10d, byte [rax + rdx]
add r10d, r9d
mov r11d, r10d
shl r11d, 0xa
add r11d, r10d
mov r9d, r11d
shr r9d, 6
xor r9d, r11d
inc rdx
cmp r8, rdx
jne 0x14013ce60
jmp 0x14013cf44
movabs r9, 0x7ffffffffffffffc
and rdx, r9
xor r9d, r9d
nop dword [rax]
movzx r10d, word [rax]
add r10d, r9d
mov r9d, r10d
shl r9d, 0xa
add r9d, r10d
mov r10d, r9d
shr r10d, 6
xor r10d, r9d
movzx r9d, word [rax + 2]
add r9d, r10d
mov r10d, r9d
shl r10d, 0xa
add r10d, r9d
mov r9d, r10d
shr r9d, 6
xor r9d, r10d
movzx r10d, word [rax + 4]
add r10d, r9d
mov r9d, r10d
shl r9d, 0xa
add r9d, r10d
mov r10d, r9d
shr r10d, 6
xor r10d, r9d
movzx r9d, word [rax + 6]
add r9d, r10d
mov r10d, r9d
shl r10d, 0xa
add r10d, r9d
mov r9d, r10d
shr r9d, 6
xor r9d, r10d
add rax, 8
add rdx, 0xfffffffffffffffc
jne 0x14013cea0
test r8, r8
je 0x14013cf44
xor edx, edx
movzx r10d, word [rax + rdx*2]
add r10d, r9d
mov r11d, r10d
shl r11d, 0xa
add r11d, r10d
mov r9d, r11d
shr r9d, 6
xor r9d, r11d
inc rdx
cmp r8, rdx
jne 0x14013cf20
lea edx, [r9 + r9*8]
mov rax, qword [rcx]
mov r8, rax
shr r8, 0x20
jne 0x14013cf96
mov r8d, edx
shr r8d, 0xb
xor r8d, edx
mov edx, r8d
shl edx, 0xf
add edx, r8d
and edx, 0x3fffffff
cmp edx, 1
adc edx, 0
shl rdx, 0x20
nop word [rax + rax]
mov r8, rax
or r8, rdx
lock cmpxchg qword [rcx], r8
je 0x14013cf96
mov r8, rax
shr r8, 0x20
je 0x14013cf80
mov rdi, qword [rcx + 8]
and rdi, 0xfffffffffffffffe
jmp 0x14013d18d
movabs r9, 0x7ffffffffffffffc
and rdx, r9
xor r9d, r9d
nop word cs:[rax + rax]
movzx r10d, byte [rax]
add r10d, r9d
mov r9d, r10d
shl r9d, 0xa
add r9d, r10d
mov r10d, r9d
shr r10d, 6
xor r10d, r9d
movzx r9d, byte [rax + 1]
add r9d, r10d
mov r10d, r9d
shl r10d, 0xa
add r10d, r9d
mov r9d, r10d
shr r9d, 6
xor r9d, r10d
movzx r10d, byte [rax + 2]
add r10d, r9d
mov r9d, r10d
shl r9d, 0xa
add r9d, r10d
mov r10d, r9d
shr r10d, 6
xor r10d, r9d
movzx r9d, byte [rax + 3]
add r9d, r10d
mov r10d, r9d
shl r10d, 0xa
add r10d, r9d
mov r9d, r10d
shr r9d, 6
xor r9d, r10d
add rax, 4
add rdx, 0xfffffffffffffffc
jne 0x14013cfc0
test r8, r8
je 0x14013d134
xor edx, edx
nop word cs:[rax + rax]
movzx r10d, byte [rax + rdx]
add r10d, r9d
mov r11d, r10d
shl r11d, 0xa
add r11d, r10d
mov r9d, r11d
shr r9d, 6
xor r9d, r11d
inc rdx
cmp r8, rdx
jne 0x14013d050
jmp 0x14013d134
movabs r9, 0x7ffffffffffffffc
and rdx, r9
xor r9d, r9d
nop dword [rax]
movzx r10d, word [rax]
add r10d, r9d
mov r9d, r10d
shl r9d, 0xa
add r9d, r10d
mov r10d, r9d
shr r10d, 6
xor r10d, r9d
movzx r9d, word [rax + 2]
add r9d, r10d
mov r10d, r9d
shl r10d, 0xa
add r10d, r9d
mov r9d, r10d
shr r9d, 6
xor r9d, r10d
movzx r10d, word [rax + 4]
add r10d, r9d
mov r9d, r10d
shl r9d, 0xa
add r9d, r10d
mov r10d, r9d
shr r10d, 6
xor r10d, r9d
movzx r9d, word [rax + 6]
add r9d, r10d
mov r10d, r9d
shl r10d, 0xa
add r10d, r9d
mov r9d, r10d
shr r9d, 6
xor r9d, r10d
add rax, 8
add rdx, 0xfffffffffffffffc
jne 0x14013d090
test r8, r8
je 0x14013d134
xor edx, edx
movzx r10d, word [rax + rdx*2]
add r10d, r9d
mov r11d, r10d
shl r11d, 0xa
add r11d, r10d
mov r9d, r11d
shr r9d, 6
xor r9d, r11d
inc rdx
cmp r8, rdx
jne 0x14013d110
lea edx, [r9 + r9*8]
mov rax, qword [rcx]
mov r8, rax
shr r8, 0x20
jne 0x14013d186
mov r8d, edx
shr r8d, 0xb
xor r8d, edx
mov edx, r8d
shl edx, 0xf
add edx, r8d
and edx, 0x3fffffff
cmp edx, 1
adc edx, 0
shl rdx, 0x20
nop word [rax + rax]
mov r8, rax
or r8, rdx
lock cmpxchg qword [rcx], r8
je 0x14013d186
mov r8, rax
shr r8, 0x20
je 0x14013d170
mov rdi, qword [rcx + 8]
sar rdi, 1
lea rsi, [rdi + rcx]
add rsi, 0x10
add rdi, 0x10
mov rdx, qword [rcx]
mov r8d, edx
shr r8d, 4
and r8d, 0xf0
jne 0x14013d1b4
call fcn.140185e70
mov r8, rax
sub r8, rdi
mov rcx, rsi
xor edx, edx
add rsp, 0x28
pop rdi
pop rsi
jmp fcn.14025d290