Function at 0x1401f8340
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 + 0xd0]
mov rdi, qword [rsp + 0xc0]
mov ebx, dword [rax]
mov qword [rsp + 0xa0], rcx
mov rbp, rdx
mov qword [rsp + 0xb0], r8
mov qword [rsp + 0xb8], r9
test ebx, ebx
je 0x1401f83d6
test r8, r8
je 0x1401f83d6
mov rdx, rcx
mov rcx, r8
mov r8, qword [rsp + 0xc8]
jmp 0x1401f83a5
test rcx, rcx
je 0x1401f83c6
mov eax, ebx
add rdx, 1
add rbp, 1
add ebx, 1
movzx eax, byte [r8 + rax]
xor al, byte [rdx - 1]
sub rcx, 1
mov byte [rbp - 1], al
and ebx, 0xf
jne 0x1401f83a0
mov qword [rsp + 0xa0], rdx
mov qword [rsp + 0xb0], rcx
cmp qword [rsp + 0xb0], 0xf
jbe 0x1401f89c7
mov rax, qword [rsp + 0xb0]
mov r12, qword [rsp + 0xa0]
mov r13, qword [rsp + 0xc8]
sub rax, 0x10
and rax, 0xfffffffffffffff0
add rax, 0x10
mov qword [rsp + 0x48], rax
add rax, rbp
mov qword [rsp + 0x40], rax
nop word cs:[rax + rax]
mov r8, qword [rsp + 0xb8]
mov rdx, r13
mov rcx, rdi
call qword [rsp + 0xd8]
movzx eax, byte [rdi + 0xf]
movzx r8d, byte [rdi + 0xe]
movzx ecx, byte [rdi + 0xd]
movzx edx, byte [rdi + 0xc]
add eax, 1
shr eax, 8
add r8d, eax
mov eax, r8d
movzx r8d, r8b
shr eax, 8
add ecx, eax
mov eax, ecx
movzx ecx, cl
shr eax, 8
add eax, edx
movzx edx, byte [rdi + 0xb]
mov dword [rsp + 0x20], eax
shr eax, 8
lea esi, [rdx + rax]
movzx edx, byte [rdi + 0xa]
movzx eax, byte [rdi + 7]
mov ebx, esi
mov dword [rsp + 0x30], esi
movzx esi, byte [rdi + 5]
shr ebx, 8
add edx, ebx
movzx ebx, byte [rdi + 4]
mov dword [rsp + 0x34], edx
mov r15d, edx
movzx edx, byte [rdi + 9]
shr r15d, 8
lea r10d, [rdx + r15]
movzx edx, byte [rdi + 8]
mov r11d, r10d
mov dword [rsp + 0x38], r10d
movzx r10d, byte [rdi + 2]
shr r11d, 8
lea r14d, [rdx + r11]
movzx r11d, byte [rdi + 3]
mov r9d, r14d
mov dword [rsp + 0x3c], r14d
movzx r14d, byte [rdi + 6]
shr r9d, 8
add eax, r9d
movzx r9d, byte [rdi + 1]
mov edx, eax
movzx eax, al
shr edx, 8
shl rax, 8
add r14d, edx
mov edx, r14d
movzx r14d, r14b
shr edx, 8
or rax, r14
add esi, edx
mov edx, esi
movzx esi, sil
shr edx, 8
add ebx, edx
mov edx, ebx
movzx ebx, bl
shr edx, 8
add r11d, edx
mov edx, r11d
movzx r11d, r11b
shr edx, 8
add r10d, edx
mov edx, r10d
movzx r10d, r10b
shr edx, 8
add r9d, edx
movzx edx, byte [rdi + 0xf]
mov r15d, r9d
movzx r9d, r9b
add edx, 1
shr r15d, 8
add r15b, byte [rdi]
movzx edx, dl
shl rax, 8
movzx r15d, r15b
add rbp, 0x10
shl rdx, 8
or rax, rsi
add r12, 0x10
or rdx, r8
shl rax, 8
shl rdx, 8
or rax, rbx
or rdx, rcx
movzx ecx, byte [rsp + 0x20]
shl rax, 8
shl rdx, 8
or rax, r11
or rdx, rcx
movzx ecx, byte [rsp + 0x30]
shl rax, 8
shl rdx, 8
or rax, r10
or rdx, rcx
movzx ecx, byte [rsp + 0x34]
shl rax, 8
shl rdx, 8
or rax, r9
or rdx, rcx
movzx ecx, byte [rsp + 0x38]
shl rax, 8
shl rdx, 8
or rax, r15
or rdx, rcx
movzx ecx, byte [rsp + 0x3c]
mov qword [rsp + 0x20], rax
shl rdx, 8
or rdx, rcx
mov qword [rsp + 0x28], rdx
movdqa xmm0, xmmword [rsp + 0x20]
movups xmmword [rdi], xmm0
mov rax, qword [r12 - 0x10]
xor rax, qword [r13]
mov qword [rbp - 0x10], rax
mov rax, qword [r12 - 8]
xor rax, qword [r13 + 8]
mov qword [rbp - 8], rax
cmp rbp, qword [rsp + 0x40]
jne 0x1401f8420
and qword [rsp + 0xb0], 0xf
mov rax, qword [rsp + 0x48]
xor ebx, ebx
add qword [rsp + 0xa0], rax
cmp qword [rsp + 0xb0], 0
je 0x1401f89ac
mov rdx, qword [rsp + 0xc8]
mov rcx, rdi
mov r8, qword [rsp + 0xb8]
call qword [rsp + 0xd8]
movzx edx, byte [rdi + 0xf]
mov eax, edx
add edx, 1
add eax, 1
shr edx, 8
mov byte [rdi + 0xf], al
movzx eax, byte [rdi + 0xe]
add eax, edx
mov byte [rdi + 0xe], al
shr eax, 8
mov edx, eax
movzx eax, byte [rdi + 0xd]
add eax, edx
mov byte [rdi + 0xd], al
shr eax, 8
mov edx, eax
movzx eax, byte [rdi + 0xc]
add eax, edx
mov byte [rdi + 0xc], al
shr eax, 8
mov edx, eax
movzx eax, byte [rdi + 0xb]
add eax, edx
mov byte [rdi + 0xb], al
shr eax, 8
mov edx, eax
movzx eax, byte [rdi + 0xa]
add eax, edx
mov byte [rdi + 0xa], al
shr eax, 8
mov edx, eax
movzx eax, byte [rdi + 9]
add eax, edx
mov byte [rdi + 9], al
shr eax, 8
mov edx, eax
movzx eax, byte [rdi + 8]
add eax, edx
mov byte [rdi + 8], al
shr eax, 8
mov edx, eax
movzx eax, byte [rdi + 7]
add eax, edx
mov byte [rdi + 7], al
shr eax, 8
mov edx, eax
movzx eax, byte [rdi + 6]
add eax, edx
mov byte [rdi + 6], al
shr eax, 8
mov edx, eax
movzx eax, byte [rdi + 5]
add eax, edx
mov byte [rdi + 5], al
shr eax, 8
mov edx, eax
movzx eax, byte [rdi + 4]
add eax, edx
mov byte [rdi + 4], al
shr eax, 8
mov edx, eax
movzx eax, byte [rdi + 3]
add eax, edx
mov byte [rdi + 3], al
shr eax, 8
mov edx, eax
movzx eax, byte [rdi + 2]
add eax, edx
mov byte [rdi + 2], al
shr eax, 8
mov edx, eax
movzx eax, byte [rdi + 1]
add eax, edx
mov byte [rdi + 1], al
shr eax, 8
add byte [rdi], al
mov rsi, qword [rsp + 0xc8]
mov eax, ebx
mov rcx, qword [rsp + 0xb0]
movzx edx, byte [rsi + rax]
mov rsi, qword [rsp + 0xa0]
xor dl, byte [rsi + rax]
mov rsi, qword [rsp + 0x40]
mov byte [rsi + rax], dl
lea edx, [rbx + 1]
sub rcx, 1
je 0x1401f89a9
mov rdi, qword [rsp + 0xc8]
mov eax, edx
movzx r8d, byte [rdi + rax]
mov rdi, qword [rsp + 0xa0]
xor r8b, byte [rdi + rax]
cmp qword [rsp + 0xb0], 2
mov byte [rsi + rax], r8b
lea eax, [rbx + 2]
je 0x1401f89a9
mov rdi, qword [rsp + 0xc8]
movzx r8d, byte [rdi + rax]
mov rdi, qword [rsp + 0xa0]
xor r8b, byte [rdi + rax]
cmp qword [rsp + 0xb0], 3
mov byte [rsi + rax], r8b
lea eax, [rbx + 3]
je 0x1401f89a9
movzx r8d, byte [rdi + rax]
mov rdi, qword [rsp + 0xc8]
xor r8b, byte [rdi + rax]
cmp qword [rsp + 0xb0], 4
mov byte [rsi + rax], r8b
lea eax, [rbx + 4]
je 0x1401f89a9
mov rdi, qword [rsp + 0xa0]
movzx r8d, byte [rdi + rax]
mov rdi, qword [rsp + 0xc8]
xor r8b, byte [rdi + rax]
cmp qword [rsp + 0xb0], 5
mov byte [rsi + rax], r8b
lea eax, [rbx + 5]
je 0x1401f89a9
mov rdi, qword [rsp + 0xa0]
movzx r8d, byte [rdi + rax]
mov rdi, qword [rsp + 0xc8]
xor r8b, byte [rdi + rax]
cmp qword [rsp + 0xb0], 6
mov byte [rsi + rax], r8b
lea eax, [rbx + 6]
je 0x1401f89a9
mov rdi, qword [rsp + 0xa0]
movzx r8d, byte [rdi + rax]
mov rdi, qword [rsp + 0xc8]
xor r8b, byte [rdi + rax]
cmp qword [rsp + 0xb0], 7
mov byte [rsi + rax], r8b
lea eax, [rbx + 7]
je 0x1401f89a9
mov rdi, qword [rsp + 0xa0]
movzx r8d, byte [rdi + rax]
mov rdi, qword [rsp + 0xc8]
xor r8b, byte [rdi + rax]
cmp qword [rsp + 0xb0], 8
mov byte [rsi + rax], r8b
lea eax, [rbx + 8]
je 0x1401f89a9
mov rdi, qword [rsp + 0xa0]
movzx r8d, byte [rdi + rax]
mov rdi, qword [rsp + 0xc8]
xor r8b, byte [rdi + rax]
cmp qword [rsp + 0xb0], 9
mov byte [rsi + rax], r8b
lea eax, [rbx + 9]
je 0x1401f89a9
mov rdi, qword [rsp + 0xa0]
movzx r8d, byte [rdi + rax]
mov rdi, qword [rsp + 0xc8]
xor r8b, byte [rdi + rax]
cmp qword [rsp + 0xb0], 0xa
mov byte [rsi + rax], r8b
lea eax, [rbx + 0xa]
je 0x1401f89a9
mov rdi, qword [rsp + 0xa0]
movzx r8d, byte [rdi + rax]
mov rdi, qword [rsp + 0xc8]
xor r8b, byte [rdi + rax]
cmp qword [rsp + 0xb0], 0xb
mov byte [rsi + rax], r8b
lea eax, [rbx + 0xb]
je 0x1401f89a9
mov rdi, qword [rsp + 0xa0]
movzx r8d, byte [rdi + rax]
mov rdi, qword [rsp + 0xc8]
xor r8b, byte [rdi + rax]
cmp qword [rsp + 0xb0], 0xc
mov byte [rsi + rax], r8b
lea eax, [rbx + 0xc]
je 0x1401f89a9
mov rdi, qword [rsp + 0xa0]
movzx r8d, byte [rdi + rax]
mov rdi, qword [rsp + 0xc8]
xor r8b, byte [rdi + rax]
cmp qword [rsp + 0xb0], 0xd
mov byte [rsi + rax], r8b
lea eax, [rbx + 0xd]
je 0x1401f89a9
mov rdi, qword [rsp + 0xa0]
movzx r8d, byte [rdi + rax]
mov rdi, qword [rsp + 0xc8]
xor r8b, byte [rdi + rax]
cmp qword [rsp + 0xb0], 0xe
mov byte [rsi + rax], r8b
lea eax, [rbx + 0xe]
je 0x1401f89a9
mov rbx, qword [rsp + 0xa0]
movzx r8d, byte [rbx + rax]
xor r8b, byte [rdi + rax]
mov byte [rsi + rax], r8b
lea ebx, [rdx + rcx]
mov rax, qword [rsp + 0xd0]
mov dword [rax], ebx
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x40], rbp
jmp 0x1401f860e