Function at 0x1401f0990
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov rax, qword [rsp + 0xc0]
mov esi, dword [rax]
mov ebx, dword [rax + 4]
mov rdi, rdx
mov eax, r8d
mov edx, dword [rsp + 0xc8]
mov qword [rsp + 0xa0], rcx
sub eax, 8
mov dword [rsp + 0xb0], r8d
mov r15, r9
bswap esi
mov dword [rsp + 0x30], eax
bswap ebx
test edx, edx
je 0x1401f0b30
test eax, eax
js 0x1401f0eb0
shr eax, 3
mov r12, rcx
lea r13, [rsp + 0x48]
mov dword [rsp + 0x28], eax
add eax, 1
lea r14, [rax*8]
lea rbp, [rdi + r14]
nop word cs:[rax + rax]
mov edx, dword [r12]
mov eax, dword [r12 + 4]
mov rcx, r13
add rdi, 8
add r12, 8
bswap edx
xor edx, esi
bswap eax
xor eax, ebx
mov dword [rsp + 0x48], edx
mov rdx, r15
mov dword [rsp + 0x4c], eax
call fcn.1401eff40
mov ebx, dword [rsp + 0x4c]
mov esi, dword [rsp + 0x48]
mov r11d, ebx
movzx eax, bl
mov r10d, ebx
mov r9d, ebx
shr r11d, 8
shl rax, 8
mov r8d, esi
mov ecx, esi
shr r10d, 0x10
movzx r11d, r11b
shr r9d, 0x18
mov edx, esi
or rax, r11
movzx r10d, r10b
movzx r9d, r9b
shr r8d, 8
shl rax, 8
movzx r8d, r8b
shr ecx, 0x10
or rax, r10
movzx ecx, cl
shr edx, 0x18
shl rax, 8
movzx edx, dl
or rax, r9
movzx r9d, sil
shl rax, 8
or rax, r9
shl rax, 8
or rax, r8
shl rax, 8
or rax, rcx
shl rax, 8
or rax, rdx
mov qword [rdi - 8], rax
cmp rbp, rdi
jne 0x1401f0a10
mov eax, dword [rsp + 0x28]
mov ecx, dword [rsp + 0xb0]
add qword [rsp + 0xa0], r14
neg eax
shl eax, 3
lea edx, [rcx + rax - 0x10]
add eax, dword [rsp + 0x30]
mov dword [rsp + 0xb0], eax
cmp edx, 0xfffffff8
je 0x1401f0d0d
movsxd rax, dword [rsp + 0xb0]
add rax, qword [rsp + 0xa0]
cmp dword [rsp + 0xb0], 7
ja case.0x1401f0b28.0
mov edx, dword [rsp + 0xb0]
lea rcx, [0x140692920]
movsxd rdx, dword [rcx + rdx*4]
add rdx, rcx
jmp rdx
test eax, eax
js 0x1401f0ec0
shr eax, 3
mov rbp, rcx
lea r13, [rsp + 0x48]
mov dword [rsp + 0x34], eax
add eax, 1
shl rax, 3
mov qword [rsp + 0x38], rax
add rax, rdi
mov qword [rsp + 0x28], rax
nop dword [rax + rax]
mov r14d, ebx
mov r12d, esi
mov ebx, dword [rbp + 4]
mov esi, dword [rbp]
mov rdx, r15
mov rcx, r13
add rdi, 8
add rbp, 8
bswap esi
bswap ebx
movd xmm0, esi
movd xmm1, ebx
punpckldq xmm0, xmm1
movq qword [rsp + 0x48], xmm0
call fcn.1401eff40
mov eax, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
xor eax, r14d
xor edx, r12d
mov r14d, eax
mov r10d, eax
mov r11d, eax
movzx eax, al
shr r14d, 8
shl rax, 8
mov ecx, edx
mov r8d, edx
shr r11d, 0x10
movzx r14d, r14b
shr r10d, 0x18
mov r9d, edx
or rax, r14
movzx r11d, r11b
movzx r10d, r10b
movzx edx, dl
shl rax, 8
shr r9d, 8
shr r8d, 0x10
or rax, r11
movzx r9d, r9b
shr ecx, 0x18
shl rax, 8
movzx r8d, r8b
movzx ecx, cl
or rax, r10
shl rax, 8
or rax, rdx
shl rax, 8
or rax, r9
shl rax, 8
or rax, r8
shl rax, 8
or rax, rcx
mov qword [rdi - 8], rax
cmp qword [rsp + 0x28], rdi
jne 0x1401f0b60
mov rax, qword [rsp + 0x38]
add qword [rsp + 0xa0], rax
mov eax, dword [rsp + 0x34]
mov ecx, dword [rsp + 0xb0]
neg eax
shl eax, 3
lea edx, [rcx + rax - 0x10]
add eax, dword [rsp + 0x30]
mov dword [rsp + 0xb0], eax
cmp edx, 0xfffffff8
je 0x1401f0d0d
mov rax, qword [rsp + 0xa0]
mov rdx, r15
lea rcx, [rsp + 0x48]
mov ebp, dword [rax]
mov r12d, dword [rax + 4]
bswap ebp
bswap r12d
movd xmm0, ebp
movd xmm2, r12d
punpckldq xmm0, xmm2
movq qword [rsp + 0x48], xmm0
call fcn.1401eff40
xor esi, dword [rsp + 0x48]
xor ebx, dword [rsp + 0x4c]
movsxd rdx, dword [rsp + 0xb0]
add rdx, rdi
cmp dword [rsp + 0xb0], 7
ja case.0x1401f0cc6.0
mov eax, dword [rsp + 0xb0]
lea rcx, [0x140692940]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov byte [rdx - 1], bh
sub rdx, 1
mov eax, ebx
sub rdx, 1
shr eax, 0x10
mov byte [rdx], al
shr ebx, 0x18
lea rax, [rdx - 1]
mov byte [rdx - 1], bl
mov byte [rax - 1], sil
lea rdx, [rax - 1]
mov ecx, esi
lea rax, [rdx - 1]
mov byte [rdx - 1], ch
mov ecx, esi
lea rdx, [rax - 1]
shr ecx, 0x10
mov byte [rax - 1], cl
shr esi, 0x18
mov ebx, r12d
mov byte [rdx - 1], sil
mov esi, ebp
mov eax, esi
mov edx, esi
mov ecx, ebx
shr eax, 0x18
shr edx, 0x10
mov r8d, eax
mov eax, esi
shr ecx, 0x10
movzx eax, ah
mov r9d, eax
mov eax, ebx
shr eax, 0x18
mov r10d, eax
movzx eax, bh
mov r11d, eax
movzx ebx, bl
movzx r11d, r11b
movzx ecx, cl
movzx r10d, r10b
shl rbx, 8
movzx esi, sil
movzx r9d, r9b
movzx edx, dl
or rbx, r11
mov rax, qword [rsp + 0xc0]
movzx r8d, r8b
shl rbx, 8
or rbx, rcx
shl rbx, 8
or rbx, r10
shl rbx, 8
or rbx, rsi
shl rbx, 8
or rbx, r9
shl rbx, 8
or rbx, rdx
shl rbx, 8
or rbx, r8
mov qword [rax], rbx
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor ecx, ecx
movzx edx, byte [rax - 1]
sub rax, 1
shl edx, 0x10
or edx, ecx
lea rcx, [rax - 1]
movzx eax, byte [rax - 1]
shl eax, 0x18
or eax, edx
xor ebx, eax
movzx r8d, byte [rcx - 1]
lea rax, [rcx - 1]
movzx ecx, byte [rax - 1]
lea rdx, [rax - 1]
shl ecx, 8
or ecx, r8d
lea rax, [rdx - 1]
movzx edx, byte [rdx - 1]
shl edx, 0x10
or edx, ecx
movzx eax, byte [rax - 1]
shl eax, 0x18
or eax, edx
xor esi, eax
mov rdx, r15
lea rcx, [rsp + 0x48]
mov dword [rsp + 0x48], esi
mov dword [rsp + 0x4c], ebx
call fcn.1401eff40
mov ebp, dword [rsp + 0x48]
mov eax, ebp
mov esi, ebp
mov r12d, ebp
shr eax, 0x18
shr esi, 0x10
mov dword [rsp + 0x28], eax
mov r8d, eax
mov eax, dword [rsp + 0x4c]
mov edx, esi
mov dword [rsp + 0x30], esi
mov esi, ebp
movzx ebp, bpl
shr r12d, 8
mov r15d, eax
mov r13d, eax
mov r14d, eax
mov ebx, eax
shr r15d, 8
movzx eax, al
shr r14d, 0x10
mov r9d, r12d
mov r11d, r15d
shl rax, 8
movzx r15d, r15b
mov ecx, r14d
or rax, r15
movzx r14d, r14b
shr r13d, 0x18
movzx r12d, r12b
shl rax, 8
mov r10d, r13d
movzx r13d, r13b
or rax, r14
shl rax, 8
or rax, r13
shl rax, 8
or rax, rbp
movzx ebp, byte [rsp + 0x30]
shl rax, 8
or rax, r12
shl rax, 8
or rax, rbp
movzx ebp, byte [rsp + 0x28]
shl rax, 8
or rax, rbp
mov qword [rdi], rax
jmp 0x1401f0d35
mov edx, eax
jmp 0x1401f0aec
mov edx, eax
jmp 0x1401f0c54
xor edx, edx
jmp 0x1401f0de2
mov rdx, rax
xor ecx, ecx
jmp 0x1401f0dd5
xor r8d, r8d
jmp 0x1401f0dc7
mov rcx, rax
jmp 0x1401f0dbe
xor edx, edx
jmp 0x1401f0daf
movzx ecx, byte [rax - 1]
sub rax, 1
shl ecx, 8
jmp 0x1401f0da2
mov rax, rdx
jmp 0x1401f0cf5
mov rax, rdx
jmp 0x1401f0ce4
mov ebx, r12d
mov esi, ebp
jmp 0x1401f0d0d