Function at 0x140027ea0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xf8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x60], xmm7
movaps xmmword [rbp + 0x50], xmm6
mov qword [rbp + 0x48], 0xfffffffffffffffe
mov rbx, r9
mov r12, r8
mov rsi, rdx
mov r14, rcx
cmp rdx, 0x21
mov qword [rbp + 0x20], r8
jb 0x1400284c6
mov rax, qword [rbp + 0xe8]
mov qword [rbp + 0x38], rax
mov eax, dword [rbp + 0xe0]
lea rcx, [r12 - 0x10]
mov qword [rbp + 0x18], rcx
mov qword [rbp + 0x10], rbx
mov qword [rbp + 0x40], r14
lea rcx, [r14 + 0x10]
mov qword [rbp + 8], rcx
mov r15, rsi
nop word cs:[rax + rax]
sub eax, 1
jb 0x14002849a
mov dword [rbp + 0x28], eax
mov r9, r15
shr r9, 3
mov rax, r9
shl rax, 6
mov rsi, qword [rbp + 0x40]
add rax, rsi
imul r8, r9, 0x70
add r8, rsi
cmp r15, 0x40
jae 0x140027f80
mov rcx, qword [rsi + 8]
mov rdx, qword [rax + 8]
cmp rdx, rcx
setb r9b
mov r10, qword [r8 + 8]
cmp r10, rcx
setb cl
xor cl, r9b
cmp r10, rdx
setb dl
xor dl, r9b
cmovne rax, r8
test cl, cl
cmovne rax, rsi
jmp 0x140027f8b
mov rcx, rsi
mov rdx, rax
call fcn.140019f20
mov r11, rax
sub r11, rsi
shr r11, 4
movups xmm0, xmmword [rax]
movaps xmmword [rbp - 0x40], xmm0
cmp qword [rbp + 0x38], 0
je 0x140027fb5
mov rax, qword [rax + 8]
mov rcx, qword [rbp + 0x38]
cmp rax, qword [rcx + 8]
jae 0x140028250
cmp r15, rbx
ja 0x140028993
mov rbx, r15
shl rbx, 4
lea rdi, [r12 + rbx]
mov rax, r11
shl rax, 4
mov r14, qword [rbp + 0x40]
add rax, r14
add rax, 8
xor esi, esi
mov rcx, r14
mov rdx, rdi
mov qword [rbp + 0x30], r11
mov r8, r11
nop word [rax + rax]
mov r10, r8
sub r10, 3
mov r9d, 0
cmovae r9, r10
shl r9, 4
add r9, r14
cmp rcx, r9
jae 0x1400280c6
nop word cs:[rax + rax]
mov r10, qword [rax]
lea r11, [rdx - 0x10]
xor r14d, r14d
cmp r10, qword [rcx + 8]
cmovb r11, r12
setb r14b
mov r10, rsi
shl r10, 4
lea r13, [rsi + r14]
mov r12, qword [rax]
shl r13, 4
cmp r12, qword [rcx + 0x18]
movups xmm0, xmmword [rcx]
lea r12, [rdx - 0x20]
cmovb r12, qword [rbp + 0x20]
movups xmmword [r11 + r10], xmm0
movups xmm0, xmmword [rcx + 0x10]
adc rsi, r14
movups xmmword [r12 + r13], xmm0
mov r12, qword [rbp + 0x20]
mov r10, qword [rax]
lea r11, [rdx - 0x30]
xor r14d, r14d
cmp r10, qword [rcx + 0x28]
cmovb r11, r12
setb r14b
mov r10, rsi
shl r10, 4
movups xmm0, xmmword [rcx + 0x20]
movups xmmword [r11 + r10], xmm0
lea r10, [rsi + r14]
mov r11, qword [rax]
add rdx, 0xffffffffffffffc0
shl r10, 4
cmp r11, qword [rcx + 0x38]
mov r11, rdx
cmovb r11, r12
movups xmm0, xmmword [rcx + 0x30]
movups xmmword [r11 + r10], xmm0
adc rsi, r14
add rcx, 0x40
cmp rcx, r9
jb 0x140028020
mov r9, r8
shl r9, 4
mov r14, qword [rbp + 0x40]
add r9, r14
cmp rcx, r9
jae 0x14002810e
nop dword [rax]
mov r10, qword [rax]
add rdx, 0xfffffffffffffff0
mov r11, rsi
shl r11, 4
cmp r10, qword [rcx + 8]
mov r10, rdx
cmovb r10, r12
movups xmm0, xmmword [rcx]
movups xmmword [r10 + r11], xmm0
adc rsi, 0
add rcx, 0x10
cmp rcx, r9
jb 0x1400280e0
cmp r8, r15
je 0x140028140
mov r8, rsi
shl r8, 4
movups xmm0, xmmword [rcx]
movups xmmword [rdx + r8 - 0x10], xmm0
add rdx, 0xfffffffffffffff0
add rcx, 0x10
mov r8, r15
jmp 0x140027ff0
mov rcx, r14
mov r14, rsi
shl r14, 4
mov rdx, r12
mov r8, r14
call sub.VCRUNTIME140.dll_memcpy
mov rdx, r15
sub rdx, rsi
movabs r10, 0xffffffffffffffe
mov r11, qword [rbp + 0x30]
je 0x1400281ef
lea rax, [rsi + 1]
cmp r15, rax
jne 0x140028180
xor eax, eax
jmp 0x1400281cc
mov rcx, rdx
and rcx, 0xfffffffffffffffe
mov rax, qword [rbp + 8]
lea r8, [rax + r14]
add rbx, qword [rbp + 0x18]
xor r9d, r9d
nop word cs:[rax + rax]
movups xmm0, xmmword [rbx]
movups xmmword [r8 - 0x10], xmm0
lea rax, [r9 + 2]
xor r9, r10
shl r9, 4
movups xmm0, xmmword [rdi + r9]
movups xmmword [r8], xmm0
add r8, 0x20
add rbx, 0xffffffffffffffe0
mov r9, rax
cmp rcx, rax
jne 0x1400281a0
test dl, 1
je 0x1400281ef
mov rcx, qword [rbp + 0x40]
add rcx, r14
mov r8, rax
not r8
shl r8, 4
shl rax, 4
movups xmm0, xmmword [rdi + r8]
movups xmmword [rcx + rax], xmm0
test rsi, rsi
mov rbx, qword [rbp + 0x10]
je 0x140028250
cmp r15, rsi
jb 0x14002894a
add r14, qword [rbp + 0x40]
mov rax, qword [rbp + 0xf0]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x40]
mov qword [rsp + 0x28], rax
mov r15d, dword [rbp + 0x28]
mov dword [rsp + 0x20], r15d
mov rcx, r14
mov r8, r12
mov r9, rbx
call fcn.140027ea0
mov eax, r15d
mov r15, rsi
cmp rsi, 0x21
jae 0x140027f20
jmp 0x1400284c2
cmp r15, rbx
ja 0x140028993
mov rax, r15
shl rax, 4
mov qword [rbp + 0x30], rax
lea rdi, [r12 + rax]
mov rax, r11
shl rax, 4
mov rcx, qword [rbp + 0x40]
add rax, rcx
add rax, 8
xor r14d, r14d
mov rdx, rdi
mov r13, r11
mov r9, r11
sub r9, 3
mov r8d, 0
cmovae r8, r9
shl r8, 4
add r8, qword [rbp + 0x40]
cmp rcx, r8
jae 0x14002834b
nop word cs:[rax + rax]
mov r9, qword [rcx + 8]
lea r10, [rdx - 0x10]
mov r11, r14
shl r11, 4
cmp r9, qword [rax]
cmovae r10, r12
sbb r14, 0xffffffffffffffff
mov r9, qword [rcx + 0x18]
mov rsi, r14
shl rsi, 4
cmp r9, qword [rax]
movups xmm0, xmmword [rcx]
lea r9, [rdx - 0x20]
cmovae r9, r12
movups xmmword [r10 + r11], xmm0
sbb r14, 0xffffffffffffffff
mov r10, qword [rcx + 0x28]
mov r11, r14
shl r11, 4
cmp r10, qword [rax]
movups xmm0, xmmword [rcx + 0x10]
lea r10, [rdx - 0x30]
cmovae r10, r12
movups xmmword [r9 + rsi], xmm0
movups xmm0, xmmword [rcx + 0x20]
sbb r14, 0xffffffffffffffff
movups xmmword [r10 + r11], xmm0
mov r9, qword [rcx + 0x38]
add rdx, 0xffffffffffffffc0
mov r10, r14
shl r10, 4
cmp r9, qword [rax]
mov r9, rdx
cmovae r9, r12
movups xmm0, xmmword [rcx + 0x30]
movups xmmword [r9 + r10], xmm0
sbb r14, 0xffffffffffffffff
add rcx, 0x40
cmp rcx, r8
jb 0x1400282b0
mov r8, r13
shl r8, 4
add r8, qword [rbp + 0x40]
cmp rcx, r8
jae 0x14002838e
nop dword [rax + rax]
mov r9, qword [rcx + 8]
add rdx, 0xfffffffffffffff0
mov r10, r14
shl r10, 4
cmp r9, qword [rax]
mov r9, rdx
cmovae r9, r12
movups xmm0, xmmword [rcx]
movups xmmword [r9 + r10], xmm0
sbb r14, 0xffffffffffffffff
add rcx, 0x10
cmp rcx, r8
jb 0x140028360
cmp r13, r15
je 0x1400283c0
add rdx, 0xfffffffffffffff0
mov r8, r14
shl r8, 4
movups xmm0, xmmword [rcx]
movups xmmword [r12 + r8], xmm0
inc r14
add rcx, 0x10
mov r11, r15
jmp 0x140028280
mov rbx, r14
shl rbx, 4
mov rcx, qword [rbp + 0x40]
mov rdx, r12
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
mov rsi, r15
sub rsi, r14
movabs r9, 0xffffffffffffffe
je 0x14002846e
lea rax, [r14 + 1]
cmp r15, rax
jne 0x1400283f9
xor eax, eax
jmp 0x14002844b
mov rcx, rsi
and rcx, 0xfffffffffffffffe
mov rax, qword [rbp + 0x40]
lea rdx, [rax + rbx]
add rdx, 0x10
mov r10, qword [rbp + 0x30]
add r10, qword [rbp + 0x18]
xor r8d, r8d
nop word [rax + rax]
movups xmm0, xmmword [r10]
movups xmmword [rdx - 0x10], xmm0
lea rax, [r8 + 2]
xor r8, r9
shl r8, 4
movups xmm0, xmmword [rdi + r8]
movups xmmword [rdx], xmm0
add rdx, 0x20
add r10, 0xffffffffffffffe0
mov r8, rax
cmp rcx, rax
jne 0x140028420
test sil, 1
je 0x14002846e
mov rcx, qword [rbp + 0x40]
add rcx, rbx
mov rdx, rax
not rdx
shl rdx, 4
shl rax, 4
movups xmm0, xmmword [rdi + rdx]
movups xmmword [rcx + rax], xmm0
cmp r15, r14
jb 0x14002897c
mov r14, qword [rbp + 0x40]
add r14, rbx
mov eax, 0
mov qword [rbp + 0x38], rax
cmp rsi, 0x21
mov rbx, qword [rbp + 0x10]
mov eax, dword [rbp + 0x28]
jae 0x140027f03
jmp 0x1400284c6
mov rax, qword [rbp + 0xf0]
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], 1
mov rcx, qword [rbp + 0x40]
mov rdx, r15
mov r8, r12
mov r9, rbx
call fcn.140019fd0
jmp 0x14002892e
mov r14, qword [rbp + 0x40]
cmp rsi, 2
jb 0x14002892e
lea rax, [rsi + 0x10]
cmp rax, rbx
ja 0x140028993
mov r15, rsi
shr r15, 1
cmp rsi, 0xf
mov qword [rbp + 0x40], r14
mov qword [rbp + 0x28], r15
jbe 0x14002852f
mov rbx, rsi
shl rbx, 4
lea r8, [r12 + rbx]
mov rcx, r14
mov rdx, r12
call fcn.1400278a0
mov rdx, r15
shl rdx, 4
lea rcx, [r14 + rdx]
add rdx, r12
lea r8, [r12 + rbx]
add r8, 0x80
call fcn.1400278a0
mov eax, 8
jmp 0x14002871e
cmp rsi, 7
jbe 0x1400286ff
mov rax, qword [r14 + 8]
mov rcx, qword [r14 + 0x28]
xor r9d, r9d
xor r10d, r10d
cmp rax, qword [r14 + 0x18]
setae r9b
setb r10b
xor r8d, r8d
cmp rcx, qword [r14 + 0x38]
setb r8b
shl r10d, 4
lea rcx, [r14 + r10]
shl r9d, 4
lea rdi, [r14 + r9]
mov r11d, r8d
shl r11d, 4
lea rdx, [r14 + r11]
add rdx, 0x20
xor r8d, 3
shl r8d, 4
mov r10, qword [r14 + r10 + 8]
mov r9, qword [r14 + r9 + 8]
mov rbx, qword [r14 + r8 + 8]
cmp r9, rbx
mov r14, rdi
cmovb r14, rdx
mov rax, qword [rbp + 0x40]
cmp r10, qword [rax + r11 + 0x28]
cmovb r14, rcx
cmovb rcx, rdx
mov qword [rbp + 0x30], rcx
mov rax, qword [rbp + 0x40]
lea r8, [rax + r8]
cmovb rdx, rdi
cmp r9, rbx
cmovae rdi, r8
cmovb rdx, r8
mov r8, qword [r14 + 8]
cmp r8, qword [rdx + 8]
mov rax, r14
cmovb rax, rdx
mov qword [rbp + 0x38], rax
cmovb rdx, r14
mov r8, r15
shl r8, 4
mov rax, qword [rbp + 0x40]
mov r10, qword [rax + r8 + 8]
mov rax, qword [rbp + 0x40]
mov rbx, qword [rax + r8 + 0x28]
xor r12d, r12d
xor r15d, r15d
mov rax, qword [rbp + 0x40]
cmp r10, qword [rax + r8 + 0x18]
setae r12b
setb r15b
xor r11d, r11d
mov rax, qword [rbp + 0x40]
cmp rbx, qword [rax + r8 + 0x38]
mov rax, qword [rbp + 0x40]
lea rbx, [rax + r8]
setb r11b
shl r15d, 4
shl r12d, 4
lea rax, [rbx + r12]
mov r13d, r11d
shl r13d, 4
lea r14, [rbx + r13]
add r14, 0x20
xor r11d, 3
shl r11d, 4
mov r12, qword [r12 + rbx + 8]
mov rcx, qword [r11 + rbx + 8]
cmp r12, rcx
mov r10, rax
cmovb r10, r14
mov r9, qword [r15 + rbx + 8]
cmp r9, qword [rbx + r13 + 0x28]
lea r9, [rbx + r15]
mov r15, qword [rbp + 0x28]
cmovb r10, r9
cmovb r9, r14
cmovb r14, rax
cmp r12, rcx
mov r12, qword [rbp + 0x20]
mov rcx, qword [rbp + 0x30]
movups xmm0, xmmword [rcx]
lea rcx, [rbx + r11]
cmovae rax, rcx
cmovb r14, rcx
mov rcx, qword [rbp + 0x38]
movups xmm1, xmmword [rcx]
mov rcx, qword [r10 + 8]
cmp rcx, qword [r14 + 8]
movups xmm2, xmmword [rdx]
mov rcx, r10
cmovb rcx, r14
movups xmm3, xmmword [rdi]
cmovb r14, r10
movups xmm4, xmmword [r9]
movups xmm5, xmmword [rcx]
movups xmm6, xmmword [r14]
mov r14, qword [rbp + 0x40]
movups xmm7, xmmword [rax]
movups xmmword [r12], xmm0
movups xmmword [r12 + 0x10], xmm1
movups xmmword [r12 + 0x20], xmm2
movups xmmword [r12 + 0x30], xmm3
movups xmmword [r12 + r8], xmm4
movups xmmword [r12 + r8 + 0x10], xmm5
movups xmmword [r12 + r8 + 0x20], xmm6
movups xmmword [r12 + r8 + 0x30], xmm7
mov eax, 4
jmp 0x14002871e
movups xmm0, xmmword [r14]
movups xmmword [r12], xmm0
mov rax, r15
shl rax, 4
movups xmm0, xmmword [r14 + rax]
movups xmmword [r12 + rax], xmm0
mov eax, 1
mov qword [rbp - 0x28], 0
mov qword [rbp - 0x20], r15
mov qword [rbp - 0x10], 2
mov rcx, rsi
sub rcx, r15
mov edx, eax
shl edx, 4
mov r10d, 2
xor r11d, r11d
jmp 0x140028769
mov r11, qword [rbp - 0x18]
mov r10, qword [rbp - 0x10]
mov r14, qword [rbp + 0x40]
mov r15, qword [rbp + 0x28]
cmp r10, r11
je 0x140028814
lea rdi, [r11 + 1]
mov qword [rbp - 0x18], rdi
mov r8, qword [rbp + r11*8 - 0x28]
test r8, r8
mov r9, rcx
cmove r9, r15
mov r11, rdi
cmp rax, r9
jae 0x140028760
shl r8, 4
lea r10, [r14 + r8]
add r8, r12
mov r11, rdx
mov rbx, rax
jmp 0x1400287bc
mov r12, r8
mov qword [r12], r15
mov qword [r12 + 8], r14
mov r12, qword [rbp + 0x20]
inc rbx
add r11, 0x10
cmp rbx, r9
je 0x140028750
mov r15, rbx
shl r15, 4
movups xmm0, xmmword [r10 + r15]
movups xmmword [r8 + r15], xmm0
mov r14, qword [r8 + r15 + 8]
cmp qword [r8 + r15 - 8], r14
jae 0x1400287b0
add r15, r8
mov r15, qword [r15]
mov r13, r11
nop word cs:[rax + rax]
movups xmm0, xmmword [r8 + r13 - 0x10]
movups xmmword [r8 + r13], xmm0
cmp r13, 0x10
je 0x1400287a0
lea r12, [r13 - 0x10]
cmp qword [r8 + r13 - 0x18], r14
mov r13, r12
jb 0x1400287f0
add r12, r8
jmp 0x1400287a3
mov rcx, r15
shl rcx, 4
lea rax, [r12 + rcx]
lea rdx, [r12 + rcx]
add rdx, 0xfffffffffffffff0
mov r8, rsi
shl r8, 4
lea rcx, [r12 + r8]
add rcx, 0xfffffffffffffff0
mov qword [rbp + 0x38], r8
lea r10, [r14 + r8]
add r10, 0xfffffffffffffff0
mov r8, r12
mov r9, r14
jmp 0x140028897
mov bl, r13b
mov edi, 0
sbb rdi, rdi
shl ebx, 4
add rax, rbx
movzx ebx, byte [rbp + 0x30]
mov r11b, bl
shl r11d, 4
add r8, r11
add r9, 0x10
movups xmm0, xmmword [r12]
movups xmmword [r10], xmm0
shl r14, 4
add rcx, r14
shl rdi, 4
add rdx, rdi
add r10, 0xfffffffffffffff0
mov r15, qword [rbp + 0x28]
dec r15
je 0x1400288e9
mov qword [rbp + 0x28], r15
mov r15, qword [r8 + 8]
xor r11d, r11d
xor ebx, ebx
mov r14, rax
cmp r15, qword [rax + 8]
setae byte [rbp + 0x30]
setb r13b
jb 0x1400288b8
mov r14, r8
movups xmm0, xmmword [r14]
movups xmmword [r9], xmm0
mov rdi, qword [rdx + 8]
mov r15, qword [rcx + 8]
cmp rdi, r15
mov r14d, 0
adc r14, 0xffffffffffffffff
mov r12, rdx
cmp rdi, r15
jb 0x140028850
mov r12, rcx
jmp 0x140028850
add rdx, 0x10
test sil, 1
je 0x140028920
xor r10d, r10d
xor r11d, r11d
cmp r8, rdx
setae r10b
setb r11b
mov rsi, rax
cmovb rsi, r8
movups xmm0, xmmword [rsi]
movups xmmword [r9], xmm0
shl r11d, 4
add r8, r11
shl r10d, 4
add rax, r10
cmp r8, rdx
jne 0x14002898e
add rcx, 0x10
cmp rax, rcx
jne 0x14002898e
movaps xmm6, xmmword [rbp + 0x50]
movaps xmm7, xmmword [rbp + 0x60]
add rsp, 0xf8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea rax, [0x14021e5c8]
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], 1
mov qword [rbp - 0x18], 8
xorps xmm0, xmm0
movups xmmword [rbp - 0x10], xmm0
lea rdx, [0x14021e5d8]
lea rcx, [rbp - 0x28]
call fcn.14021a2e0
lea r8, [0x14021e5f0]
mov rcx, r14
mov rdx, r15
call fcn.14021a740
call fcn.1402090c0
ud2