Function at 0x14007c580
Capabilities:
Encode data using xor

Disassembly:
mov dl, 0x27
jmp 0x14007c580
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov ebx, edx
mov r12, rcx
mov rsi, qword [rcx]
shl rsi, 4
lea r15, [rsi + 1]
mov edx, 1
mov rcx, r15
xor r8d, r8d
call fcn.14003f680
mov byte [rax + rsi], 0
mov qword [rsp + 0x20], rsi
test rsi, rsi
je 0x14007c60d
movzx edx, bl
xor ebx, ebx
mov rsi, qword [rsp + 0x20]
xor edi, edi
nop word [rax + rax]
mov rcx, rdi
shr rcx, 4
mov rbp, qword [r12 + 8]
mov rbp, qword [rbp + rcx*8]
mov ecx, ebx
and cl, 0x3c
shr rbp, cl
and ebp, 0xf
lea ecx, [rbp + 6]
shr ecx, 4
neg ecx
and ecx, edx
add ecx, ebp
add cl, 0x30
mov byte [rax + rsi - 1], cl
add rdi, 1
add rbx, 4
add rsi, 0xffffffffffffffff
jne 0x14007c5d0
mov rcx, qword [rsp + 0x20]
lea r14, [rcx - 1]
add rcx, 0xfffffffffffffffe
mov edx, 3
nop
cmp byte [rax + rcx], 0x30
cmovne r14, rcx
add rcx, 0xffffffffffffffff
add rdx, 0xffffffffffffffff
jne 0x14007c620
add rcx, 0xfffffffffffffffd
nop word cs:[rax + rax]
cmp byte [rax + rcx + 3], 0x30
lea rdx, [rcx + 3]
cmove rdx, r14
lea rbp, [rcx + 2]
cmp byte [rax + rcx + 2], 0x30
cmove rbp, rdx
lea r14, [rcx + 1]
cmp byte [rax + rcx + 1], 0x30
cmove r14, rbp
cmp byte [rax + rcx], 0x30
cmovne r14, rcx
add rcx, 0xfffffffffffffffc
cmp rcx, 0xfffffffffffffffc
jne 0x14007c640
lea rdi, [rax + r15]
or qword [rsp + 0x20], 1
lea rcx, [rax + 0x10]
mov qword [rsp + 0x30], rcx
xor ecx, ecx
mov qword [rsp + 0x28], rdi
jmp 0x14007c6b3
add rcx, 1
mov rdx, r15
shr rdx, cl
test rdx, rdx
je 0x14007c8ac
mov r10, r14
shr r10, cl
mov r11d, 1
shl r11, cl
mov r12, r15
sub r12, r11
jbe 0x14007c6a0
and r10b, 1
neg r10b
cmp r12, 8
jb 0x14007c6eb
cmp rax, rdi
jae 0x14007c720
mov rdx, rdi
sub rdx, r11
lea rbp, [rax + r11]
cmp rbp, rdx
jae 0x14007c720
mov r9, r11
xor esi, esi
movzx edx, byte [rax + rsi]
movzx r8d, byte [rax + r9]
mov ebx, r8d
xor bl, dl
and bl, r10b
xor dl, bl
mov byte [rax + rsi], dl
xor bl, r8b
mov byte [rax + r9], bl
lea r9, [rsi + r11]
add r9, 1
add rsi, 1
cmp r12, rsi
jne 0x14007c6f0
jmp 0x14007c6a0
movzx edi, r10b
cmp r12, 0x10
jae 0x14007c731
xor esi, esi
jmp 0x14007c829
mov rsi, r12
and rsi, 0xfffffffffffffff0
movd xmm0, edi
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea rdx, [rsi - 0x10]
mov r13, rdx
shr r13, 4
add r13, 1
test rdx, rdx
je 0x14007c7d4
mov rbp, r13
and rbp, 0xfffffffffffffffe
mov rdx, qword [rsp + 0x30]
lea r8, [rdx + r11]
xor ebx, ebx
movdqu xmm1, xmmword [rax + rbx]
movdqu xmm2, xmmword [r8 + rbx - 0x10]
movdqa xmm3, xmm2
pxor xmm3, xmm1
pand xmm3, xmm0
pxor xmm1, xmm3
movdqu xmmword [rax + rbx], xmm1
pxor xmm3, xmm2
movdqu xmmword [r8 + rbx - 0x10], xmm3
movdqu xmm1, xmmword [rax + rbx + 0x10]
movdqu xmm2, xmmword [r8 + rbx]
movdqa xmm3, xmm2
pxor xmm3, xmm1
pand xmm3, xmm0
pxor xmm1, xmm3
movdqu xmmword [rax + rbx + 0x10], xmm1
pxor xmm3, xmm2
movdqu xmmword [r8 + rbx], xmm3
add rbx, 0x20
add rbp, 0xfffffffffffffffe
jne 0x14007c770
jmp 0x14007c7d6
xor ebx, ebx
mov ebp, edi
test r13b, 1
je 0x14007c80a
lea rdx, [r11 + rbx]
movdqu xmm1, xmmword [rax + rbx]
movdqu xmm2, xmmword [rax + rdx]
movdqa xmm3, xmm2
pxor xmm3, xmm1
pand xmm3, xmm0
pxor xmm1, xmm3
movdqu xmmword [rax + rbx], xmm1
pxor xmm3, xmm2
movdqu xmmword [rax + rdx], xmm3
cmp r12, rsi
mov rdi, qword [rsp + 0x28]
je 0x14007c6a0
test r12b, 8
jne 0x14007c827
lea r9, [r11 + rsi]
jmp 0x14007c6f0
mov edi, ebp
mov r8, rsi
mov r13, qword [rsp + 0x20]
sub r13, r11
mov rsi, r13
and rsi, 0xfffffffffffffff8
lea r9, [r11 + rsi]
movd xmm0, edi
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
lea rdx, [rax + r8]
sub r8, rsi
nop word cs:[rax + rax]
nop dword [rax]
mov rdi, qword [rdx]
movq xmm1, rdi
mov rbp, qword [rdx + r11]
movq xmm2, rbp
xor rbp, rdi
movq xmm3, rbp
pand xmm3, xmm0
pxor xmm1, xmm3
movq qword [rdx], xmm1
pxor xmm3, xmm2
movq qword [rdx + r11], xmm3
add rdx, 8
add r8, 8
jne 0x14007c860
cmp r13, rsi
mov rdi, qword [rsp + 0x28]
jne 0x14007c6f0
jmp 0x14007c6a0
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret