Function at 0x14007102a
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x40], rdx
mov rbx, qword [rcx + 0x18]
mov rax, rbx
inc rax
je 0x14007173a
mov rdi, rcx
mov r13, qword [rcx + 8]
movabs rax, 0x64f8863a607ed8e5
mov rcx, r13
sub rcx, rax
lea r8, [rcx + rax]
inc r8
mov rsi, r8
shr rsi, 3
mov eax, esi
not eax
and eax, 7
mov rcx, rsi
and rcx, 0xfffffffffffffff8
imul rcx, rax
mov eax, esi
and eax, 7
or rsi, 7
imul rsi, rax
add rsi, rcx
cmp r13, 8
cmovb rsi, r13
mov rax, rsi
shr rax, 1
cmp rbx, rax
jae 0x14007111f
mov rcx, r8
shr rcx, 4
mov rdx, r8
xor rdx, 0xfffffffffffffff0
xor eax, eax
test rdx, r8
setne al
mov r15, qword [rdi]
add rax, rcx
je 0x140071100
xor ecx, ecx
movdqa xmm0, xmmword [0x140075650]
mov rdx, rcx
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [r15 + rcx]
por xmm1, xmm0
movdqa xmmword [r15 + rcx], xmm1
and ecx, 0x10
xor rdx, 0x10
lea rcx, [rdx + rcx*2]
dec rax
jne 0x1400710d9
cmp r8, 0x10
jae 0x140071158
lea rcx, [r15 + 0x10]
mov rdx, r15
call fcn.140070050
cmp r13, 0xffffffffffffffff
jne 0x140071163
xor ecx, ecx
jmp 0x1400713f5
mov eax, ebx
and eax, 1
mov rcx, rbx
or rcx, 1
add rcx, rax
inc rsi
cmp rcx, rsi
cmova rsi, rcx
cmp rsi, 8
jae 0x14007141b
xor eax, eax
cmp rsi, 4
setae al
lea r8, [rax*4 + 4]
jmp 0x140071472
movdqu xmm0, xmmword [r15]
movdqu xmmword [r15 + r8], xmm0
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], rdi
movabs rbp, 0x7d35c2ff681e7278
movabs r12, 0x1c605d45a9212a6f
movabs rsi, 0x1c5b49a2059a7e0c
xor r14d, r14d
cmp byte [r15 + r14], 0x80
jne 0x1400713c9
lea rdi, [r14 + r14]
not rdi
add rdi, r14
mov eax, edi
not eax
mov rcx, rdi
and rcx, 0xffffffffffffffc7
and eax, 0x38
imul rax, rcx
mov ecx, edi
and ecx, 0x38
or rdi, 0x38
imul rdi, rcx
add rdi, r15
add rdi, rax
mov rax, r14
neg rax
imul rbx, rax, 0x38
add rbx, r15
mov r8, qword [rbx - 0x30]
mov r9, qword [rbx - 0x28]
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
call fcn.14000351c
mov rcx, r13
xor rcx, rax
not rcx
mov rdx, r13
or rdx, rax
and rdx, rcx
movdqu xmm0, xmmword [r15 + rdx]
pmovmskb r10d, xmm0
mov r9, rdx
test r10d, r10d
jne 0x140071254
mov rcx, 0xffffffffffffffef
mov r8d, 0x10
mov r9, rdx
xor r11d, r11d
add r11, 0x10
mov r10, rcx
sub r10, r9
not r10
mov r9, r10
and r9, r13
movdqu xmm0, xmmword [r15 + r9]
pmovmskb r10d, xmm0
add rcx, 0xfffffffffffffff0
add r8, 0x10
test r10d, r10d
je 0x140071229
bsf ecx, r10d
sub r9, rsi
add r9, rsi
add r9, rcx
mov r8, r9
not r8
mov rcx, r13
not rcx
or r8, rcx
and r9, r13
not r8
or r8, r9
cmp byte [r15 + r8], 0
js 0x14007128e
movdqa xmm0, xmmword [r15]
pmovmskb r8d, xmm0
bsf r8d, r8d
mov r9, r14
sub r9, r12
sub r9, rdx
add r9, r12
mov r10, r8
sub r10, rbp
sub r10, rdx
add r10, rbp
mov rdx, r9
xor rdx, r9
not rdx
and rdx, r10
xor rdx, r9
not rdx
or rdx, rcx
cmp rdx, 0xffffffffffffffef
ja 0x14007134e
mov rdx, r8
not rdx
mov r9, rdx
and r9, 0xffffffffffffffc7
mov r10d, r8d
and r10d, 0x38
imul r10, r9
mov r9d, edx
and r9d, 0x38
or rdx, 0x38
imul rdx, r9
add rdx, r10
add rdx, r15
mov r9b, byte [r15 + r8]
shr rax, 0x39
lea r10, [r8 - 0x10]
mov r11, r13
xor r11, r10
not r11
and r11, r10
mov r10d, r11d
and r10d, 0x10
xor r11, 0x10
lea r10, [r11 + r10*2]
mov byte [r15 + r8], al
mov byte [r15 + r10], al
cmp r9b, 0xff
je 0x140071383
xor eax, eax
mov cl, byte [rdi + rax]
mov r8b, byte [rdx + rax]
mov byte [rdi + rax], r8b
mov byte [rdx + rax], cl
mov ecx, eax
and ecx, 1
or rax, 1
add rax, rcx
cmp rax, 0x38
jne 0x140071329
jmp 0x1400711da
shr rax, 0x39
mov rcx, r14
and rcx, 0xfffffffffffffff0
mov rdx, r14
or rdx, 0xfffffffffffffff0
add rdx, rcx
xor rdx, r13
not rdx
and rdx, r13
mov ecx, edx
and ecx, 0x10
xor rdx, 0x10
lea rcx, [rdx + rcx*2]
mov byte [r15 + r14], al
mov byte [r15 + rcx], al
jmp 0x1400713c9
lea rax, [r14 - 0x10]
or rcx, rax
lea rax, [rcx + r13]
inc rax
mov ecx, eax
and ecx, 0x10
or rax, 0x10
add rax, rcx
mov cl, 0xff
mov byte [r15 + r14], cl
mov byte [r15 + rax], cl
mov rax, qword [rdi + 0x30]
mov qword [rdx + 0x30], rax
movdqu xmm0, xmmword [rdi]
movdqu xmm1, xmmword [rdi + 0x10]
movups xmm2, xmmword [rdi + 0x20]
movups xmmword [rdx + 0x20], xmm2
movdqu xmmword [rdx + 0x10], xmm1
movdqu xmmword [rdx], xmm0
mov eax, r14d
and eax, 1
mov rcx, r14
xor rcx, 1
lea rax, [rcx + rax*2]
cmp r14, r13
mov r14, rax
jne 0x140071193
mov rdi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
movabs r15, 0x8000000000000001
movabs rax, 0xfbcf17241836dd88
sub rcx, rax
sub rcx, rbx
add rcx, rax
mov qword [rdi + 0x10], rcx
jmp 0x140071723
mov rax, rsi
shr rax, 0x3d
jne 0x14007173a
shl rsi, 3
movabs rcx, 0x2492492492492493
mov rax, rsi
mul rcx
sub rsi, rdx
shr rsi, 1
add rsi, rdx
shr rsi, 2
movabs rax, 0xfe572ea27eff8afe
mov rcx, rax
not rcx
add rcx, rax
add rcx, rsi
bsr rcx, rcx
not ecx
mov r8, 0xffffffffffffffff
shr r8, cl
inc r8
lea r15, [rsp + 0x88]
mov edx, 0x38
mov rcx, r15
call fcn.140031999
mov r14, qword [r15]
mov r15, qword [r15 + 8]
test r14, r14
je 0x140071723
mov r12, qword [rsp + 0x98]
mov rsi, qword [rsp + 0xa0]
mov eax, r15d
and eax, 0x11
mov r8, r15
or r8, 0x11
add r8, rax
mov rcx, r14
mov dl, 0xff
call fcn.1400706f0
mov qword [rsp + 0x60], 0x10
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x70], r15
mov qword [rsp + 0x78], r12
mov qword [rsp + 0x80], rsi
test rbx, rbx
je 0x14007168f
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x38], rdi
mov rdi, qword [rdi]
movdqa xmm0, xmmword [rdi]
pmovmskb esi, xmm0
not esi
xor r12d, r12d
mov qword [rsp + 0x30], rbx
mov r13, rbx
mov rbp, rdi
test si, si
jne 0x14007153c
movdqa xmm0, xmmword [rbp + 0x10]
add rbp, 0x10
pmovmskb eax, xmm0
mov ecx, r12d
and ecx, 0x10
or r12, 0x10
add r12, rcx
cmp eax, 0xffff
je 0x140071514
lea esi, [rax + rax]
not esi
add esi, eax
bsf ebx, esi
add rbx, r12
mov rax, rbx
neg rax
imul rax, rax, 0x38
mov r8, qword [rdi + rax - 0x30]
mov r9, qword [rdi + rax - 0x28]
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
call fcn.14000351c
mov rdx, rax
and rdx, r15
movdqu xmm0, xmmword [r14 + rdx]
pmovmskb r8d, xmm0
test r8d, r8d
jne 0x1400715ab
mov ecx, 0x10
xor r9d, r9d
add r9, 0x10
mov r8, rcx
and r8, rdx
xor rdx, rcx
lea rdx, [rdx + r8*2]
and rdx, r15
movdqu xmm0, xmmword [r14 + rdx]
pmovmskb r8d, xmm0
add rcx, 0x10
test r8d, r8d
je 0x140071583
bsf ecx, r8d
add rcx, rdx
and rcx, r15
cmp byte [r14 + rcx], 0
js 0x1400715c8
movdqa xmm0, xmmword [r14]
pmovmskb ecx, xmm0
bsf ecx, ecx
lea edx, [rsi - 1]
xor esi, edx
not esi
and esi, edx
dec r13
shr rax, 0x39
lea rdx, [rcx - 0x10]
not rdx
mov r8, r15
not r8
or r8, rdx
not r8
mov edx, r8d
and edx, 0x10
or r8, 0x10
add r8, rdx
mov byte [r14 + rcx], al
mov byte [r14 + r8], al
mov rax, rbx
not rax
mov rdx, rax
and rdx, 0xffffffffffffffc7
and ebx, 0x38
imul rbx, rdx
mov edx, eax
and edx, 0x38
or rax, 0x38
imul rax, rdx
add rax, rbx
mov rdx, rcx
not rdx
and ecx, 0x38
mov r8, rdx
and r8, 0xffffffffffffffc7
imul r8, rcx
mov ecx, edx
and ecx, 0x38
or rdx, 0x38
imul rdx, rcx
add rdx, r8
mov rcx, qword [rdi + rax + 0x30]
mov qword [r14 + rdx + 0x30], rcx
movdqu xmm0, xmmword [rdi + rax]
movdqu xmm1, xmmword [rdi + rax + 0x10]
movups xmm2, xmmword [rdi + rax + 0x20]
movups xmmword [r14 + rdx + 0x20], xmm2
movdqu xmmword [r14 + rdx + 0x10], xmm1
movdqu xmmword [r14 + rdx], xmm0
test r13, r13
jne 0x14007150f
mov rdi, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
mov r12, qword [rsp + 0x28]
jmp 0x140071691
xor edx, edx
mov rax, r12
not rax
and rax, rdx
mov rcx, rdx
not rcx
and rcx, r12
sub rcx, rax
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x80], rdx
xor eax, eax
mov rcx, qword [rdi + rax*8]
mov rdx, qword [rsp + rax*8 + 0x68]
mov qword [rdi + rax*8], rdx
mov qword [rsp + rax*8 + 0x68], rcx
inc rax
cmp rax, 4
jne 0x1400716b5
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x140071719
mov edx, ecx
and edx, 1
mov rax, rcx
or rax, 1
add rax, rdx
mov edx, 0x38
mul rdx
add rax, 0xf
and rax, 0xfffffffffffffff0
add rcx, rax
cmp rcx, 0xffffffffffffffef
je 0x140071719
mov r8, qword [rsp + 0x68]
sub r8, rax
mov rcx, qword [0x14008fb30]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
movabs r15, 0x8000000000000001
mov rax, r15
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2