Function at 0x1400a6380
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov rdx, qword [rcx + 0x18]
mov rax, rdx
inc rax
jne 0x1400a63ab
mov cl, 1
call fcn.14008c420
mov r14, rax
jmp 0x1400a68c1
mov r9, rcx
mov rsi, qword [rcx + 8]
lea rdi, [rsi + 1]
mov rcx, rdi
shr rcx, 3
mov r8, rdi
and r8, 0xfffffffffffffff8
sub r8, rcx
cmp rsi, 8
cmovb r8, rsi
mov rcx, r8
shr rcx, 1
cmp rax, rcx
jbe 0x1400a6403
inc r8
cmp rax, r8
cmova r8, rax
cmp r8, 8
jae 0x1400a6436
mov rbx, rdx
xor eax, eax
cmp r8, 4
setae al
lea r10, [rax*4 + 4]
jmp 0x1400a6900
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x38], rdx
mov rcx, rdi
shr rcx, 4
xor eax, eax
test dil, 0xf
setne al
mov r15, qword [r9]
add rax, rcx
je 0x1400a6503
cmp rax, 1
jne 0x1400a6492
xor edx, edx
jmp 0x1400a64e7
mov rax, r8
shr rax, 0x3d
jne 0x1400a68d5
mov rbx, rdx
shl r8, 3
mov r10d, 1
cmp r8, 0xe
jb 0x1400a6900
movabs rcx, 0x2492492492492493
mov rax, r8
mul rcx
sub r8, rdx
shr r8, 1
add r8, rdx
shr r8, 2
dec r8
bsr rcx, r8
not ecx
mov r10, 0xffffffffffffffff
shr r10, cl
inc r10
jmp 0x1400a6900
movabs rcx, 0x1ffffffffffffffe
and rcx, rax
xor r8d, r8d
movdqa xmm0, xmmword [0x1400ac080]
nop word [rax + rax]
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [r15 + r8]
por xmm1, xmm0
movdqa xmmword [r15 + r8], xmm1
lea rdx, [r8 + 0x20]
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [r15 + r8 + 0x10]
por xmm1, xmm0
movdqa xmmword [r15 + r8 + 0x10], xmm1
mov r8, rdx
add rcx, 0xfffffffffffffffe
jne 0x1400a64b0
test al, 1
je 0x1400a6503
pxor xmm0, xmm0
pcmpgtb xmm0, xmmword [r15 + rdx]
por xmm0, xmmword [0x1400ac080]
movdqa xmmword [r15 + rdx], xmm0
cmp rdi, 0x10
mov qword [rsp + 0x28], r9
jae 0x1400a652a
lea rcx, [r15 + 0x10]
mov rdx, r15
mov r8, rdi
call sub.VCRUNTIME140.dll_memmove
cmp rsi, 0xffffffffffffffff
jne 0x1400a6535
xor ecx, ecx
jmp 0x1400a68a9
movdqu xmm0, xmmword [r15]
movdqu xmmword [r15 + rdi], xmm0
lea rax, [r15 - 0x2e]
xor edx, edx
movabs rcx, 0x517cc1b727220a95
mov r8, rax
jmp 0x1400a6578
shr r12, 0x39
lea r9, [rdx - 0x10]
and r9, rsi
mov byte [r15 + rdx], r12b
mov byte [r9 + r15 + 0x10], r12b
lea r9, [rdx + 1]
add r8, 0xffffffffffffffd0
cmp rdx, rsi
mov rdx, r9
je 0x1400a68a4
cmp byte [r15 + rdx], 0x80
jne 0x1400a6564
mov r9, rdx
shl r9, 4
lea r9, [r9 + r9*2]
mov r10, r15
sub r10, r9
neg r9
lea r11, [r15 + r9]
add r11, 0xffffffffffffffd0
mov r9, rdx
not r9
lea r9, [r9 + r9*2]
shl r9, 4
add r9, r15
mov rdi, rdx
neg rdi
lea rbx, [rdi + rdi*2]
shl rbx, 4
add rbx, r15
jmp 0x1400a65f6
movups xmm0, xmmword [r9]
movups xmm1, xmmword [rdi]
movups xmmword [r9], xmm1
movups xmmword [rdi], xmm0
movups xmm0, xmmword [r9 + 0x10]
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [r9 + 0x10], xmm1
movups xmmword [rdi + 0x10], xmm0
movdqu xmm0, xmmword [r9 + 0x20]
movdqu xmm1, xmmword [rdi + 0x20]
movdqu xmmword [r9 + 0x20], xmm1
movdqu xmmword [rdi + 0x20], xmm0
mov r13, qword [rbx - 0x28]
mov rbp, qword [rbx - 0x20]
cmp rbp, 8
jb 0x1400a6620
lea rdi, [rbp - 8]
mov r14, rdi
shr r14, 3
inc r14
cmp rdi, 0x18
jae 0x1400a6630
xor r12d, r12d
jmp 0x1400a667e
xor r12d, r12d
jmp 0x1400a66ac
mov rdi, r14
and rdi, 0xfffffffffffffffc
xor r12d, r12d
nop word [rax + rax]
rol r12, 5
xor r12, qword [r13]
imul r12, rcx
rol r12, 5
xor r12, qword [r13 + 8]
imul r12, rcx
rol r12, 5
xor r12, qword [r13 + 0x10]
imul r12, rcx
rol r12, 5
xor r12, qword [r13 + 0x18]
imul r12, rcx
add rbp, 0xffffffffffffffe0
add r13, 0x20
add rdi, 0xfffffffffffffffc
jne 0x1400a6640
and r14d, 3
je 0x1400a66ac
shl r14, 3
xor edi, edi
nop word [rax + rax]
rol r12, 5
xor r12, qword [r13 + rdi]
imul r12, rcx
add rdi, 8
cmp r14, rdi
jne 0x1400a6690
sub rbp, rdi
add r13, rdi
cmp rbp, 3
ja 0x1400a6820
cmp rbp, 2
jae 0x1400a6841
test rbp, rbp
je 0x1400a66d5
movzx edi, byte [r13]
rol r12, 5
xor r12, rdi
imul r12, rcx
rol r12, 5
xor r12, 0xff
imul r12, rcx
mov rdi, r12
and rdi, rsi
movdqu xmm0, xmmword [r15 + rdi]
pmovmskb ebp, xmm0
mov r13, rdi
test ebp, ebp
jne 0x1400a6728
mov r14d, 0x10
mov r13, rdi
nop word cs:[rax + rax]
add r13, r14
and r13, rsi
movdqu xmm0, xmmword [r15 + r13]
pmovmskb ebp, xmm0
add r14, 0x10
test ebp, ebp
je 0x1400a6710
tzcnt r14d, ebp
add r14, r13
and r14, rsi
cmp byte [r15 + r14], 0
js 0x1400a6748
movdqa xmm0, xmmword [r15]
pmovmskb ebp, xmm0
tzcnt r14d, ebp
mov r13, rdx
sub r13, rdi
mov rbp, r14
sub rbp, rdi
xor rbp, r13
and rbp, rsi
cmp rbp, 0x10
jb 0x1400a6550
mov rdi, r14
not rdi
lea rdi, [rdi + rdi*2]
shl rdi, 4
add rdi, r15
movzx ebp, byte [r15 + r14]
shr r12, 0x39
lea r13, [r14 - 0x10]
and r13, rsi
mov byte [r15 + r14], r12b
mov byte [r13 + r15 + 0x10], r12b
cmp bpl, 0xff
je 0x1400a6870
shl r14, 4
lea r14, [r14 + r14*2]
mov r12, r15
sub r12, r14
cmp r11, r12
jae 0x1400a65c0
cmp rdi, r10
jae 0x1400a65c0
mov rdi, rax
sub rdi, r14
xor r14d, r14d
nop word cs:[rax + rax]
movzx ebp, byte [r8 + r14 - 2]
movzx r12d, byte [rdi + r14 - 2]
mov byte [r8 + r14 - 2], r12b
mov byte [rdi + r14 - 2], bpl
movzx ebp, byte [r8 + r14 - 1]
movzx r12d, byte [rdi + r14 - 1]
mov byte [r8 + r14 - 1], r12b
mov byte [rdi + r14 - 1], bpl
movzx ebp, byte [r8 + r14]
movzx r12d, byte [rdi + r14]
mov byte [r8 + r14], r12b
mov byte [rdi + r14], bpl
add r14, 3
cmp r14, 0x30
jne 0x1400a67d0
jmp 0x1400a65f6
mov edi, dword [r13]
rol r12, 5
xor r12, rdi
imul r12, rcx
add rbp, 0xfffffffffffffffc
add r13, 4
cmp rbp, 2
jb 0x1400a66c0
movzx edi, word [r13]
rol r12, 5
xor r12, rdi
imul r12, rcx
add rbp, 0xfffffffffffffffe
add r13, 2
test rbp, rbp
jne 0x1400a66c5
jmp 0x1400a66d5
lea r10, [rdx - 0x10]
and r10, rsi
mov byte [r15 + rdx], 0xff
mov byte [r10 + r15 + 0x10], 0xff
movdqu xmm0, xmmword [r9]
movdqu xmm1, xmmword [r9 + 0x10]
movups xmm2, xmmword [r9 + 0x20]
movups xmmword [rdi + 0x20], xmm2
movdqu xmmword [rdi + 0x10], xmm1
movdqu xmmword [rdi], xmm0
jmp 0x1400a6564
mov rcx, qword [rsp + 0x30]
sub rcx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x28]
mov qword [rax + 0x10], rcx
movabs r14, 0x8000000000000001
mov rax, r14
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r15, rdi
mov rbx, rdx
mov rdi, r9
mov cl, 1
call fcn.14008c420
mov r14, rax
movabs rax, 0x8000000000000001
cmp r14, rax
jne 0x1400a68c1
mov r10, rdx
mov r9, rdi
mov rdi, r15
mov ecx, 0x30
mov rax, r10
mul rcx
jo 0x1400a639c
mov r14, rax
lea r12, [r10 + 0x10]
mov r13, rax
add r13, r12
jb 0x1400a639c
movabs rax, 0x7ffffffffffffff1
cmp r13, rax
jae 0x1400a639c
test r13, r13
mov qword [rsp + 0x28], r9
je 0x1400a6977
movzx eax, byte [0x1400df209]
mov edx, 0x10
mov rcx, r13
mov r15, r10
call fcn.140002d70
mov r10, r15
test rax, rax
jne 0x1400a697c
mov edx, 0x10
mov cl, 1
mov r8, r13
call fcn.140055310
mov r14, rax
jmp 0x1400a68c1
mov eax, 0x10
lea r13, [r10 - 1]
mov rcx, r10
shr rcx, 3
and r10, 0xfffffffffffffff8
sub r10, rcx
cmp r13, 8
cmovb r10, r13
mov qword [rsp + 0x30], r10
add r14, rax
mov rcx, r14
mov dl, 0xff
mov r8, r12
call sub.VCRUNTIME140.dll_memset
test rbx, rbx
je 0x1400a6c36
mov qword [rsp + 0x40], rdi
mov rax, qword [rsp + 0x28]
mov rcx, qword [rax]
movdqa xmm0, xmmword [rcx]
pmovmskb r10d, xmm0
not r10d
xor eax, eax
mov r8, rbx
movabs rdx, 0x517cc1b727220a95
mov qword [rsp + 0x38], rbx
mov r9, rcx
jmp 0x1400a6a56
lea edi, [r10 - 1]
and edi, r10d
dec r8
shr r12, 0x39
lea r10, [rbx - 0x10]
and r10, r13
mov byte [r14 + rbx], r12b
mov byte [r10 + r14 + 0x10], r12b
not r11
lea r10, [r11 + r11*2]
shl r10, 4
not rbx
lea r11, [rbx + rbx*2]
shl r11, 4
movdqu xmm0, xmmword [rcx + r10]
movdqu xmm1, xmmword [rcx + r10 + 0x10]
movups xmm2, xmmword [rcx + r10 + 0x20]
movups xmmword [r14 + r11 + 0x20], xmm2
movdqu xmmword [r14 + r11 + 0x10], xmm1
movdqu xmmword [r14 + r11], xmm0
mov r10d, edi
test r8, r8
je 0x1400a6c25
test r10w, r10w
jne 0x1400a6a7f
nop dword [rax]
movdqa xmm0, xmmword [r9 + 0x10]
add r9, 0x10
pmovmskb r10d, xmm0
add rax, 0x10
cmp r10d, 0xffff
je 0x1400a6a60
not r10d
tzcnt r11d, r10d
add r11, rax
mov rdi, r11
neg rdi
lea rdi, [rdi + rdi*2]
shl rdi, 4
mov rbp, qword [rcx + rdi - 0x28]
mov r15, qword [rcx + rdi - 0x20]
cmp r15, 8
jb 0x1400a6ac0
lea rdi, [r15 - 8]
mov rbx, rdi
shr rbx, 3
inc rbx
cmp rdi, 0x18
jae 0x1400a6ad0
xor r12d, r12d
jmp 0x1400a6b1e
xor r12d, r12d
jmp 0x1400a6b4c
mov rdi, rbx
and rdi, 0xfffffffffffffffc
xor r12d, r12d
nop word [rax + rax]
rol r12, 5
xor r12, qword [rbp]
imul r12, rdx
rol r12, 5
xor r12, qword [rbp + 8]
imul r12, rdx
rol r12, 5
xor r12, qword [rbp + 0x10]
imul r12, rdx
rol r12, 5
xor r12, qword [rbp + 0x18]
imul r12, rdx
add r15, 0xffffffffffffffe0
add rbp, 0x20
add rdi, 0xfffffffffffffffc
jne 0x1400a6ae0
and ebx, 3
je 0x1400a6b4c
shl rbx, 3
xor edi, edi
nop dword [rax]
rol r12, 5
xor r12, qword [rbp + rdi]
imul r12, rdx
add rdi, 8
cmp rbx, rdi
jne 0x1400a6b30
sub r15, rdi
add rbp, rdi
cmp r15, 3
ja 0x1400a6be0
cmp r15, 2
jae 0x1400a6c00
test r15, r15
je 0x1400a6b74
movzx edi, byte [rbp]
rol r12, 5
xor r12, rdi
imul r12, rdx
rol r12, 5
xor r12, 0xff
imul r12, rdx
mov rdi, r12
and rdi, r13
movdqu xmm0, xmmword [r14 + rdi]
pmovmskb ebx, xmm0
test ebx, ebx
jne 0x1400a6bb8
mov r15d, 0x10
nop dword [rax]
add rdi, r15
and rdi, r13
movdqu xmm0, xmmword [r14 + rdi]
pmovmskb ebx, xmm0
add r15, 0x10
test ebx, ebx
je 0x1400a6ba0
tzcnt ebx, ebx
add rbx, rdi
and rbx, r13
cmp byte [r14 + rbx], 0
js 0x1400a69f0
movdqa xmm0, xmmword [r14]
pmovmskb edi, xmm0
tzcnt ebx, edi
jmp 0x1400a69f0
mov edi, dword [rbp]
rol r12, 5
xor r12, rdi
imul r12, rdx
add r15, 0xfffffffffffffffc
add rbp, 4
cmp r15, 2
jb 0x1400a6b60
movzx edi, word [rbp]
rol r12, 5
xor r12, rdi
imul r12, rdx
add r15, 0xfffffffffffffffe
add rbp, 2
test r15, r15
jne 0x1400a6b65
jmp 0x1400a6b74
mov rax, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
jmp 0x1400a6c3e
mov rax, qword [rsp + 0x28]
mov rcx, qword [rax]
mov rdx, qword [rsp + 0x30]
sub rdx, rbx
mov qword [rax], r14
mov qword [rax + 8], r13
mov qword [rax + 0x10], rdx
movabs r14, 0x8000000000000001
test rsi, rsi
je 0x1400a68c1
mov edx, 0x30
mov rax, rdi
mul rdx
add rsi, rax
add rsi, 0x11
je 0x1400a68c1
sub rcx, rax
mov r8d, 0x10
mov rdx, rsi
call fcn.140002d90
jmp 0x1400a68c1