Function at 0x140071ee6
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 rdi, qword [rcx + 0x18]
mov rax, rdi
inc rax
je 0x140072521
mov rsi, rcx
mov rbp, qword [rcx + 8]
lea r12, [rbp + 1]
mov r10, r12
shr r10, 3
mov ecx, r10d
not ecx
mov rdx, r10
and rdx, 0xfffffffffffffff8
and ecx, 7
imul rcx, rdx
mov edx, r10d
and edx, 7
or r10, 7
imul r10, rdx
add r10, rcx
cmp rbp, 8
cmovb r10, rbp
mov rcx, r10
shr rcx, 1
cmp rdi, rcx
jae 0x140071ff2
mov rcx, r12
shr rcx, 4
mov rdx, r12
xor rdx, 0xfffffffffffffff0
mov r8, r12
or r8, 0xf
xor eax, eax
test r8, rdx
setne al
mov r15, qword [rsi]
add rax, rcx
je 0x140071fc4
movabs rcx, 0x3f9a97510f6dae69
xor edx, edx
mov r8, rcx
not r8
movdqa xmm0, xmmword [0x140075650]
mov r9, r15
add rdx, 0x10
add rax, rcx
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [r9]
por xmm1, xmm0
movdqa xmmword [r9], xmm1
add r9, 0x10
add rax, r8
jne 0x140071fa2
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], rsi
cmp r12, 0x10
jae 0x14007201c
lea rcx, [r15 + 0x10]
mov rdx, r15
mov r8, r12
call fcn.140070050
test r12, r12
jne 0x140072027
jmp 0x140072210
inc r10
cmp rax, r10
cmova r10, rax
cmp r10, 8
jae 0x140072232
xor eax, eax
cmp r10, 4
setae al
lea r8, [rax*4 + 4]
jmp 0x140072276
movdqu xmm0, xmmword [r15]
movdqu xmmword [r15 + r12], xmm0
lea rax, [r15 - 0x10]
mov qword [rsp + 0x38], rax
movabs r13, 0x7656e51db12b4905
movabs r12, 0x663bf9938407907d
xor esi, esi
movabs r14, 0x7ffffffffffffff0
cmp byte [r15 + rsi], 0x80
jne 0x140072200
mov rax, rsi
shl rax, 4
not rax
lea rdi, [rax + r15]
add rdi, 0xfffffffffffffff1
movabs rax, 0x7036e7a206018b5d
mov rbx, rax
sub rbx, rsi
sub rbx, rax
shl rbx, 4
add rbx, qword [rsp + 0x38]
mov r8b, byte [rbx]
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
call fcn.1400315dd
mov rdx, rax
and rdx, rbp
movdqu xmm0, xmmword [r15 + rdx]
pmovmskb r9d, xmm0
mov rcx, rdx
test r9d, r9d
jne 0x1400720de
mov r8d, 0x10
mov rcx, rdx
xor r10d, r10d
add r10, 0x10
add rcx, r8
and rcx, rbp
movdqu xmm0, xmmword [r15 + rcx]
pmovmskb r9d, xmm0
add r8, 0x10
test r9d, r9d
je 0x1400720c0
bsf r8d, r9d
sub rcx, r13
add rcx, r13
add rcx, r8
mov r8, rcx
xor r8, rbp
not r8
or rcx, rbp
and rcx, r8
cmp byte [r15 + rcx], 0
js 0x14007210d
movdqa xmm0, xmmword [r15]
pmovmskb ecx, xmm0
bsf ecx, ecx
mov r8, rsi
sub r8, rdx
mov r9, rcx
sub r9, r12
sub r9, rdx
add r9, r12
not r9
not r8
mov rdx, r9
or rdx, r8
not rdx
and r8, r9
or r8, rdx
mov rdx, r8
or rdx, rbp
sub rdx, r8
cmp rdx, 0x10
jb 0x1400721b3
mov rdx, rcx
shl rdx, 4
neg rdx
add rdx, r15
add rdx, 0xfffffffffffffff0
mov r9b, byte [r15 + rcx]
shr rax, 0x39
mov r8, rcx
and r8, r14
mov r10, rcx
xor r10, 0xfffffffffffffff0
lea r10, [r10 + r8*2]
not r10
mov r8, rbp
not r8
or r10, r8
not r10
mov byte [r15 + rcx], al
mov byte [r15 + r10 + 0x10], al
cmp r9b, 0xff
je 0x1400721e0
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
xor rax, 1
lea rax, [rax + rcx*2]
cmp rax, 0x10
jne 0x14007218d
jmp 0x140072089
shr rax, 0x39
lea rcx, [rsi - 0x10]
not rcx
mov rdx, rbp
not rdx
or rdx, rcx
not rdx
mov ecx, edx
and ecx, 0x10
or rdx, 0x10
add rdx, rcx
mov byte [r15 + rsi], al
mov byte [r15 + rdx], al
jmp 0x140072200
lea rax, [rsi - 0x10]
not rax
or rax, r8
not rax
mov cl, 0xff
mov byte [r15 + rsi], cl
mov byte [rax + r15 + 0x10], cl
movdqu xmm0, xmmword [rdi]
movdqu xmmword [rdx], xmm0
lea rax, [rsi + 1]
cmp rsi, rbp
mov rsi, rax
jne 0x140072050
movabs r15, 0x8000000000000001
mov rcx, qword [rsp + 0x30]
sub rcx, qword [rsp + 0x20]
mov rax, qword [rsp + 0x28]
mov qword [rax + 0x10], rcx
jmp 0x14007250a
mov rax, r10
shr rax, 0x3d
jne 0x140072521
shl r10, 3
movabs rcx, 0x2492492492492493
mov rax, r10
mul rcx
sub r10, rdx
shr r10, 1
add r10, rdx
shr r10, 2
dec r10
bsr rcx, r10
not ecx
mov r8, 0xffffffffffffffff
shr r8, cl
inc r8
lea r15, [rsp + 0x88]
mov edx, 0x10
mov rcx, r15
call fcn.140031999
mov r14, qword [r15]
mov r15, qword [r15 + 8]
test r14, r14
je 0x14007250a
mov qword [rsp + 0x28], rsi
mov rbx, qword [rsp + 0x98]
mov rsi, qword [rsp + 0xa0]
lea r8, [r15 + 0x11]
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 + 0x30], rbx
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x20], rdi
test rdi, rdi
je 0x14007246a
mov rax, qword [rsp + 0x28]
mov rsi, qword [rax]
lea rax, [rsi - 0x10]
mov qword [rsp + 0x38], rax
movdqa xmm0, xmmword [rsi]
pmovmskb eax, xmm0
lea r12d, [rax + rax]
not r12d
add r12d, eax
xor ebp, ebp
mov r13, qword [rsp + 0x20]
mov rbx, rsi
test r12w, r12w
jne 0x14007234c
movdqa xmm0, xmmword [rsi + 0x10]
add rsi, 0x10
pmovmskb r12d, xmm0
mov eax, ebp
and eax, 0x10
xor rbp, 0x10
lea rbp, [rbp + rax*2]
cmp r12d, 0xffff
je 0x140072324
not r12d
bsf edi, r12d
add rdi, rbp
mov rax, rdi
shl rax, 4
mov rcx, qword [rsp + 0x38]
sub rcx, rax
mov r8b, byte [rcx]
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
call fcn.1400315dd
mov rcx, rax
not rcx
or rcx, r15
lea r8, [rax + rcx]
lea rdx, [rax + rcx]
inc rdx
movdqu xmm0, xmmword [r14 + r8 + 1]
pmovmskb r9d, xmm0
test r9d, r9d
jne 0x1400723da
mov ecx, 0x10
xor r8d, r8d
add r8, 0x10
mov r9, rcx
and r9, rdx
xor rdx, rcx
lea rdx, [rdx + r9*2]
mov r9, rdx
not r9
or r9, r15
lea r10, [rdx + r9]
add rdx, r9
inc rdx
movdqu xmm0, xmmword [r14 + r10 + 1]
pmovmskb r9d, xmm0
add rcx, 0x10
test r9d, r9d
je 0x1400723a1
bsf ecx, r9d
add rcx, rdx
mov rdx, rcx
xor rdx, r15
not rdx
or rcx, r15
and rcx, rdx
cmp byte [r14 + rcx], 0
js 0x140072403
movdqa xmm0, xmmword [r14]
pmovmskb ecx, xmm0
bsf ecx, ecx
mov edx, r12d
neg edx
not r12d
or r12d, edx
not r12d
dec r13
shr rax, 0x39
mov rdx, rcx
and rdx, 0xfffffffffffffff0
mov r8, rcx
or r8, 0xfffffffffffffff0
add r8, rdx
mov rdx, r15
xor rdx, r8
not rdx
and rdx, r8
mov byte [r14 + rcx], al
mov byte [rdx + r14 + 0x10], al
not rdi
mov rax, rdi
shl rax, 4
shl rdi, 5
sub rdi, rax
not rcx
shl rcx, 4
movdqu xmm0, xmmword [rbx + rdi]
movdqu xmmword [rcx + r14], xmm0
test r13, r13
jne 0x14007231e
mov r8, qword [rsp + 0x30]
mov rax, r8
not rax
mov rdx, qword [rsp + 0x20]
and rax, rdx
mov rcx, rdx
not rcx
and rcx, r8
sub rcx, rax
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x80], rdx
xor eax, eax
mov rbx, qword [rsp + 0x28]
mov rcx, qword [rbx + rax*8]
mov rdx, qword [rsp + rax*8 + 0x68]
mov qword [rbx + rax*8], rdx
mov qword [rsp + rax*8 + 0x68], rcx
inc rax
cmp rax, 4
jne 0x14007249d
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x140072500
mov rax, rcx
shl rax, 4
add rcx, rax
cmp rcx, 0xffffffffffffffdf
je 0x140072500
movabs rcx, 0x47be4e486ee81bf1
mov r8, 0xfffffffffffffff0
add r8, rcx
sub r8, rax
sub r8, rcx
add r8, qword [rsp + 0x68]
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