Function at 0x1401227e0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
movdqa xmmword [rsp + 0x80], xmm6
mov r8, qword [rcx + 0x18]
cmp r8, 0xffffffffffffffff
je 0x140123122
mov rbp, qword [rcx + 8]
lea rsi, [rbp + 1]
mov rax, rsi
shr rax, 3
mov r9, rsi
and r9, 0xfffffffffffffff8
sub r9, rax
cmp rbp, 8
cmovb r9, rbp
movdqa xmm6, xmmword [rdx]
mov rax, r9
shr rax, 1
cmp r8, rax
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x28], r8
jae 0x140122876
mov qword [rsp + 0x58], r9
mov rbx, qword [rcx]
mov rcx, rsi
shr rcx, 4
xor eax, eax
test sil, 0xf
setne al
add rax, rcx
je 0x140122bba
cmp rax, 1
jne 0x140122b51
xor ecx, ecx
jmp 0x140122ba4
lea rax, [r8 + 1]
inc r9
cmp rax, r9
cmova r9, rax
cmp r9, 8
jae 0x14012289d
xor eax, eax
cmp r9, 4
setae al
lea rdi, [rax*4 + 4]
jmp 0x1401228e1
mov rax, r9
shr rax, 0x3d
jne 0x140123122
shl r9, 3
movabs rcx, 0x2492492492492493
mov rax, r9
mul rcx
sub r9, rdx
shr r9, 1
add r9, rdx
shr r9, 2
dec r9
bsr rcx, r9
not ecx
mov rdi, 0xffffffffffffffff
shr rdi, cl
inc rdi
mov ecx, 0x30
mov rax, rdi
mul rcx
jo 0x140123122
mov r15, rax
lea r12, [rdi + 0x10]
mov rbx, rax
add rbx, r12
jb 0x140123122
movabs rax, 0x7ffffffffffffff1
cmp rbx, rax
jae 0x140123122
mov qword [rsp + 0x40], rsi
movzx eax, byte [0x140198310]
xor ecx, ecx
mov rdx, rbx
call fcn.1400f22c0
test rax, rax
je 0x140123127
mov r13, rax
lea rsi, [rdi - 1]
mov rax, rdi
shr rax, 3
mov rcx, rdi
and rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rdi, 9
cmovb rcx, rsi
mov qword [rsp + 0x48], rcx
lea rbx, [r13 + r15]
mov rcx, rbx
mov dl, 0xff
mov r8, r12
call fcn.14011a0b0
mov rax, qword [rsp + 0x38]
mov rax, qword [rax]
mov qword [rsp + 0x30], rax
cmp qword [rsp + 0x28], 0
je 0x140122ae1
mov r14, qword [rsp + 0x30]
lea r9, [r14 - 0x30]
lea rax, [r15 + r13]
add rax, 0xffffffffffffffd0
mov qword [rsp + 0x50], rax
movdqa xmm0, xmmword [r14]
pmovmskb r13d, xmm0
not r13d
xor edi, edi
mov r15, qword [rsp + 0x28]
mov qword [rsp + 0x20], r9
jmp 0x140122a26
lea ecx, [r13 - 1]
and ecx, r13d
dec r15
shr rax, 0x39
lea r8, [rdx - 0x10]
and r8, rsi
mov byte [rbx + rdx], al
mov byte [rbx + r8 + 0x10], al
shl r12, 4
lea rax, [r12 + r12*2]
mov r8, r9
sub r8, rax
shl rdx, 4
lea rax, [rdx + rdx*2]
mov rdx, qword [rsp + 0x50]
sub rdx, rax
movdqu xmm0, xmmword [r8]
movdqu xmm1, xmmword [r8 + 0x10]
movdqu xmm2, xmmword [r8 + 0x20]
movdqu xmmword [rdx + 0x20], xmm2
movdqu xmmword [rdx + 0x10], xmm1
movdqu xmmword [rdx], xmm0
mov r13d, ecx
test r15, r15
je 0x140122ae1
test r13w, r13w
jne 0x140122a4f
nop dword [rax]
movdqa xmm0, xmmword [r14 + 0x10]
add r14, 0x10
pmovmskb r13d, xmm0
add rdi, 0x10
cmp r13d, 0xffff
je 0x140122a30
not r13d
tzcnt r12d, r13d
add r12, rdi
mov rax, r12
neg rax
lea rax, [rax + rax*2]
shl rax, 4
mov rdx, qword [r9 + rax + 8]
mov r8, qword [r9 + rax + 0x10]
movdqa xmmword [rsp + 0x70], xmm6
lea rcx, [rsp + 0x70]
call fcn.1400df5c0
mov rcx, rax
and rcx, rsi
movdqu xmm0, xmmword [rbx + rcx]
pmovmskb edx, xmm0
test edx, edx
jne 0x140122ab7
mov r8d, 0x10
nop dword [rax + rax]
add rcx, r8
and rcx, rsi
movdqu xmm0, xmmword [rbx + rcx]
pmovmskb edx, xmm0
add r8, 0x10
test edx, edx
je 0x140122aa0
mov r9, qword [rsp + 0x20]
tzcnt edx, edx
add rdx, rcx
and rdx, rsi
cmp byte [rbx + rdx], 0
js 0x1401229c0
movdqa xmm0, xmmword [rbx]
pmovmskb ecx, xmm0
tzcnt edx, ecx
jmp 0x1401229c0
mov rcx, qword [rsp + 0x48]
sub rcx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x38]
mov qword [rax], rbx
mov qword [rax + 8], rsi
mov qword [rax + 0x10], rcx
mov dword [rax + 0x10], ecx
movabs rdx, 0x1ffffffffffffffe
and rdx, rax
xor ecx, ecx
movdqa xmm0, xmmword [0x140127790]
nop dword [rax + rax]
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [rbx + rcx]
or esp, dword [rsi + 0xf]
jmp 0x140122b45
movdqa xmmword [rbx + rcx], xmm1
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [rbx + rcx + 0x10]
por xmm1, xmm0
movdqa xmmword [rbx + rcx + 0x10], xmm1
add rcx, 0x20
add rdx, 0xfffffffffffffffe
jne 0x140122b70
test al, 1
je 0x140122bba
pxor xmm0, xmm0
pcmpgtb xmm0, xmmword [rbx + rcx]
por xmm0, xmmword [0x140127790]
movdqa xmmword [rbx + rcx], xmm0
cmp rsi, 0x10
jae 0x140122c03
lea rcx, [rbx + 0x10]
mov rdx, rbx
mov r8, rsi
call fcn.140119a10
test rsi, rsi
jne 0x140122c0c
movdqu xmm0, xmmword [rbx]
movdqu xmmword [rbx + rsi], xmm0
jg 0x140122c0f
invalid
lea rax, [rbx - 0x30]
mov qword [rsp + 0x20], rax
call fcn.140023020
mov rcx, rbx
call fcn.140023060
int3