Function at 0x1400284c0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rdi, qword [rcx + 0x18]
add rdx, rdi
jae 0x1400284e8
mov cl, 1
call fcn.1400219c0
mov r14, rax
jmp 0x14002893f
mov r8, rcx
mov rsi, qword [rcx + 8]
lea rbx, [rsi + 1]
mov rax, rbx
shr rax, 3
mov r14, rbx
and r14, 0xfffffffffffffff8
sub r14, rax
cmp rsi, 8
cmovb r14, rsi
mov rax, r14
shr rax, 1
cmp rdx, rax
jbe 0x14002853d
inc r14
cmp rdx, r14
cmova r14, rdx
cmp r14, 8
jae 0x140028568
xor eax, eax
cmp r14, 4
setae al
lea r15, [rax*4 + 4]
jmp 0x140028975
mov r15, qword [r8]
mov rcx, rbx
shr rcx, 4
xor eax, eax
test bl, 0xf
setne al
add rax, rcx
je 0x140028636
mov r9, r8
cmp rax, 1
jne 0x1400285c1
xor edx, edx
jmp 0x140028617
mov rax, r14
shr rax, 0x3d
jne 0x140028953
shl r14, 3
mov r15d, 1
cmp r14, 0xe
jb 0x140028975
movabs rcx, 0x2492492492492493
mov rax, r14
mul rcx
sub r14, rdx
shr r14, 1
add r14, rdx
shr r14, 2
dec r14
bsr rcx, r14
not ecx
mov r15, 0xffffffffffffffff
shr r15, cl
inc r15
jmp 0x140028975
movabs rcx, 0x1ffffffffffffffe
and rcx, rax
xor r8d, r8d
movdqa xmm0, xmmword [0x14005c220]
nop dword [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 0x1400285e0
test al, 1
mov r8, r9
je 0x140028636
pxor xmm0, xmm0
pcmpgtb xmm0, xmmword [r15 + rdx]
por xmm0, xmmword [0x14005c220]
movdqa xmmword [r15 + rdx], xmm0
cmp rbx, 0x10
jae 0x14002865f
lea rcx, [r15 + 0x10]
mov rdx, r15
mov r12, r8
mov r8, rbx
call sub.VCRUNTIME140.dll_memmove
mov r8, r12
cmp rsi, 0xffffffffffffffff
jne 0x14002866a
xor r14d, r14d
jmp 0x14002892e
movdqu xmm0, xmmword [r15]
movdqu xmmword [r15 + rbx], xmm0
mov qword [rsp + 0x20], r8
mov rax, qword [r8]
xor ecx, ecx
movabs rdx, 0x517cc1b727220a95
jmp 0x1400286a4
shr r10, 0x39
lea r8, [rcx - 0x10]
and r8, rsi
mov byte [r15 + rcx], r10b
mov byte [r8 + r15 + 0x10], r10b
lea r8, [rcx + 1]
cmp rcx, rsi
mov rcx, r8
je 0x140028929
cmp byte [r15 + rcx], 0x80
jne 0x140028694
lea r8, [rcx*8]
lea r9, [r8 + r8*2]
mov r8, r15
sub r8, r9
add r8, 0xffffffffffffffe8
mov r9, rcx
neg r9
mov r10, r15
nop word [rax + rax]
lea rbx, [r9 + r9*2]
mov r11, qword [r10 + rbx*8 - 0x18]
mov rbx, qword [r10 + rbx*8 - 0x10]
cmp rbx, 8
jb 0x140028700
lea r10, [rbx - 8]
mov r12, r10
shr r12, 3
inc r12
cmp r10, 0x18
jae 0x140028710
xor r10d, r10d
jmp 0x14002875d
xor r10d, r10d
jmp 0x14002878b
mov r13, r12
and r13, 0xfffffffffffffffc
xor r10d, r10d
nop word [rax + rax]
rol r10, 5
xor r10, qword [r11]
imul r10, rdx
rol r10, 5
xor r10, qword [r11 + 8]
imul r10, rdx
rol r10, 5
xor r10, qword [r11 + 0x10]
imul r10, rdx
rol r10, 5
xor r10, qword [r11 + 0x18]
imul r10, rdx
add rbx, 0xffffffffffffffe0
add r11, 0x20
add r13, 0xfffffffffffffffc
jne 0x140028720
and r12d, 3
je 0x14002878b
shl r12, 3
xor r13d, r13d
nop word [rax + rax]
rol r10, 5
xor r10, qword [r11 + r13]
imul r10, rdx
add r13, 8
cmp r12, r13
jne 0x140028770
add r11, r13
sub rbx, r13
cmp rbx, 3
ja 0x1400288b0
cmp rbx, 1
ja 0x1400288d0
test rbx, rbx
je 0x1400287b3
movzx r11d, byte [r11]
rol r10, 5
xor r10, r11
imul r10, rdx
rol r10, 5
xor r10, 0xff
imul r10, rdx
mov r11, r10
and r11, rsi
movdqu xmm0, xmmword [r15 + r11]
pmovmskb ebx, xmm0
mov r12, r11
test ebx, ebx
jne 0x140028808
mov r13d, 0x10
mov r12, r11
nop word cs:[rax + rax]
add r12, r13
and r12, rsi
movdqu xmm0, xmmword [r15 + r12]
pmovmskb ebx, xmm0
add r13, 0x10
test ebx, ebx
je 0x1400287f0
tzcnt ebx, ebx
add rbx, r12
and rbx, rsi
cmp byte [r15 + rbx], 0
js 0x140028826
movdqa xmm0, xmmword [r15]
pmovmskb ebx, xmm0
tzcnt ebx, ebx
mov r12, rcx
sub r12, r11
mov r13, rbx
sub r13, r11
xor r13, r12
and r13, rsi
cmp r13, 0x10
jb 0x140028680
lea r11, [rbx*8]
lea r11, [r11 + r11*2]
neg r11
add r11, r15
add r11, 0xffffffffffffffe8
movzx ebp, byte [r15 + rbx]
shr r10, 0x39
lea r12, [rbx - 0x10]
and r12, rsi
mov byte [r15 + rbx], r10b
mov byte [r12 + r15 + 0x10], r10b
cmp bpl, 0xff
je 0x140028900
mov r10, qword [r8]
mov rbx, qword [r11]
mov qword [r8], rbx
mov qword [r11], r10
mov r10, qword [r8 + 8]
mov rbx, qword [r11 + 8]
mov qword [r8 + 8], rbx
mov qword [r11 + 8], r10
mov r10, qword [r8 + 0x10]
mov rbx, qword [r11 + 0x10]
mov qword [r8 + 0x10], rbx
mov qword [r11 + 0x10], r10
mov r10, rax
jmp 0x1400286d0
mov r12d, dword [r11]
rol r10, 5
xor r10, r12
imul r10, rdx
add rbx, 0xfffffffffffffffc
add r11, 4
cmp rbx, 1
jbe 0x14002879f
movzx r12d, word [r11]
rol r10, 5
xor r10, r12
imul r10, rdx
add rbx, 0xfffffffffffffffe
add r11, 2
test rbx, rbx
jne 0x1400287a4
jmp 0x1400287b3
lea r9, [rcx - 0x10]
and r9, rsi
mov byte [r15 + rcx], 0xff
mov byte [r9 + r15 + 0x10], 0xff
mov r9, qword [r8 + 0x10]
mov qword [r11 + 0x10], r9
movdqu xmm0, xmmword [r8]
movdqu xmmword [r11], xmm0
jmp 0x140028694
mov r8, qword [rsp + 0x20]
sub r14, rdi
mov qword [r8 + 0x10], r14
movabs r14, 0x8000000000000001
mov rax, r14
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r12, r8
mov cl, 1
call fcn.1400219c0
mov r14, rax
movabs rax, 0x8000000000000001
cmp r14, rax
jne 0x14002893f
mov r15, rdx
mov r8, r12
mov ecx, 0x18
mov rax, r15
mul rcx
jo 0x1400284d9
mov r12, rax
add r12, 0xf
and r12, 0xfffffffffffffff0
lea r13, [r15 + 0x10]
mov rbp, r12
add rbp, r13
jb 0x1400284d9
movabs rax, 0x7ffffffffffffff1
cmp rbp, rax
jae 0x1400284d9
test rbp, rbp
mov qword [rsp + 0x20], r8
je 0x1400289f1
movzx eax, byte [0x1400693e1]
mov edx, 0x10
mov rcx, rbp
call fcn.140003420
mov r14, rax
test rax, rax
jne 0x1400289f7
mov edx, 0x10
mov cl, 1
mov r8, rbp
call fcn.140021a10
mov r14, rax
jmp 0x14002893f
mov r14d, 0x10
lea rbp, [r15 - 1]
mov rax, r15
shr rax, 3
and r15, 0xfffffffffffffff8
sub r15, rax
cmp rbp, 8
cmovb r15, rbp
add r14, r12
mov rcx, r14
mov dl, 0xff
mov r8, r13
call sub.VCRUNTIME140.dll_memset
sub r15, rdi
mov r13, qword [rsp + 0x20]
mov rcx, qword [r13]
cmp rsi, 0xffffffffffffffff
je 0x140028c6b
lea rax, [rcx - 0x18]
xor edx, edx
movabs r8, 0x517cc1b727220a95
jmp 0x140028aac
shr r9, 0x39
lea r10, [r11 - 0x10]
and r10, rbp
mov byte [r14 + r11], r9b
mov byte [r10 + r14 + 0x10], r9b
lea r9, [rdx*8]
lea r9, [r9 + r9*2]
mov r10, rcx
sub r10, r9
shl r11, 3
lea r9, [r11 + r11*2]
mov r11, r14
sub r11, r9
neg r9
movdqu xmm0, xmmword [r10 - 0x18]
movdqu xmmword [r14 + r9 - 0x18], xmm0
mov r9, qword [r10 - 8]
mov qword [r11 - 8], r9
lea r9, [rdx + 1]
cmp rdx, rsi
mov rdx, r9
je 0x140028c55
cmp byte [rcx + rdx], 0
js 0x140028a9c
mov r9, rdx
neg r9
lea r9, [r9 + r9*2]
mov r10, qword [rax + r9*8]
mov r11, qword [rax + r9*8 + 8]
cmp r11, 8
jb 0x140028af0
lea r9, [r11 - 8]
mov rdi, r9
shr rdi, 3
inc rdi
cmp r9, 0x18
jae 0x140028af5
xor r9d, r9d
jmp 0x140028b3d
xor r9d, r9d
jmp 0x140028b6b
mov r12, rdi
and r12, 0xfffffffffffffffc
xor r9d, r9d
nop
rol r9, 5
xor r9, qword [r10]
imul r9, r8
rol r9, 5
xor r9, qword [r10 + 8]
imul r9, r8
rol r9, 5
xor r9, qword [r10 + 0x10]
imul r9, r8
rol r9, 5
xor r9, qword [r10 + 0x18]
imul r9, r8
add r11, 0xffffffffffffffe0
add r10, 0x20
add r12, 0xfffffffffffffffc
jne 0x140028b00
and edi, 3
je 0x140028b6b
shl rdi, 3
xor r12d, r12d
nop dword [rax]
rol r9, 5
xor r9, qword [r10 + r12]
imul r9, r8
add r12, 8
cmp rdi, r12
jne 0x140028b50
add r10, r12
sub r11, r12
cmp r11, 3
ja 0x140028c10
cmp r11, 1
ja 0x140028c30
test r11, r11
je 0x140028b93
movzx r10d, byte [r10]
rol r9, 5
xor r9, r10
imul r9, r8
rol r9, 5
xor r9, 0xff
imul r9, r8
mov r10, r9
and r10, rbp
movdqu xmm0, xmmword [r14 + r10]
pmovmskb r11d, xmm0
test r11d, r11d
jne 0x140028bda
mov edi, 0x10
nop dword [rax]
add r10, rdi
and r10, rbp
movdqu xmm0, xmmword [r14 + r10]
pmovmskb r11d, xmm0
add rdi, 0x10
test r11d, r11d
je 0x140028bc0
tzcnt r11d, r11d
add r11, r10
and r11, rbp
cmp byte [r14 + r11], 0
js 0x140028a50
movdqa xmm0, xmmword [r14]
pmovmskb r10d, xmm0
tzcnt r11d, r10d
jmp 0x140028a50
mov edi, dword [r10]
rol r9, 5
xor r9, rdi
imul r9, r8
add r11, 0xfffffffffffffffc
add r10, 4
cmp r11, 1
jbe 0x140028b7f
movzx edi, word [r10]
rol r9, 5
xor r9, rdi
imul r9, r8
add r11, 0xfffffffffffffffe
add r10, 2
test r11, r11
jne 0x140028b84
jmp 0x140028b93
mov qword [r13], r14
mov qword [r13 + 8], rbp
mov qword [r13 + 0x10], r15
test rsi, rsi
jne 0x140028c77
jmp 0x140028935
mov qword [r13], r14
mov qword [r13 + 8], rbp
mov qword [r13 + 0x10], r15
mov edx, 0x18
mov rax, rbx
mul rdx
add rax, 0xf
and rax, 0xfffffffffffffff0
add rsi, rax
movabs r14, 0x8000000000000001
add rsi, 0x11
je 0x14002893f
sub rcx, rax
mov r8d, 0x10
mov rdx, rsi
call fcn.140003430
jmp 0x14002893f