Function at 0x140003af0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
mov r8d, dword [rdx + 0x14]
mov rdi, rcx
xor r8d, 0x1081000
mov rbx, rdx
shr r8d, 0xc
movzx r9d, r8b
shr r8d, 4
and r9d, 0xf
movzx r11d, r8b
shr r8d, 4
and r11d, 0xf
movzx eax, r8b
and eax, 0xf
shr r8d, 4
mov edx, r8d
shr r8d, 4
and edx, 0xf
cmp eax, 0xb
sbb r10d, r10d
and r10d, 0x100
neg eax
sbb eax, eax
and eax, 0x100
and r10d, eax
cmp r8d, 0xb
sbb ecx, ecx
and ecx, 0x40
neg r8d
sbb eax, eax
and eax, 0x40
and ecx, eax
or r10d, ecx
cmp edx, 0xb
sbb ecx, ecx
and ecx, 0x80
neg edx
sbb eax, eax
and eax, 0x80
and ecx, eax
or r10d, ecx
cmp r9d, 0xb
sbb ecx, ecx
and ecx, 0x400
neg r9d
sbb eax, eax
and eax, 0x400
and ecx, eax
or r10d, ecx
cmp r11d, 0xb
sbb ecx, ecx
and ecx, 0x200
neg r11d
sbb eax, eax
and eax, 0x200
and ecx, eax
or r10d, ecx
shr r10d, 6
movzx eax, r10b
mov byte [rbx + 0x13], al
shl eax, 6
or eax, 0x1f
xor r9d, r9d
mov dword [rbx + 0xf], eax
lea r11d, [r9 + 0xd]
nop word [rax + rax]
movzx r9d, byte [r9 + rdi]
mov r8d, dword [rbx + 0xf]
mov edx, r9d
and edx, 0x1f
movzx ecx, dl
mov eax, edx
shr rax, 2
not cl
and eax, 0xfe
and ecx, 7
movzx r10d, byte [rax + rbx + 2]
mov eax, edx
shr eax, 3
shr r10d, cl
and r10d, 1
mov ecx, r10d
xor ecx, 1
and ecx, eax
mov eax, r8d
shr eax, 3
xor eax, r8d
shr eax, 3
xor eax, edx
shr eax, 4
xor ecx, eax
xor ecx, edx
test r9b, 2
je 0x14000391f
mov eax, r8d
shr eax, 5
xor ecx, eax
test r9b, 4
je 0x14000392d
mov eax, r8d
shr eax, 8
xor ecx, eax
and ecx, 1
and r9d, 1
shl r9d, 2
xor r9d, r8d
add r9d, r9d
or r9d, ecx
mov dword [rbx + 0xf], r9d
mov r8d, dword [rdi]
mov edx, r8d
and edx, 1
shr r9d, 0xb
xor r9d, r10d
shr r8d, 1
and r9d, 1
mov eax, r8d
xor eax, 0x80500062
lea ecx, [rdx + rdx]
or ecx, r9d
cmp edx, r9d
cmovne r8d, eax
mov dword [rdi], r8d
movzx r9d, byte [rcx + rdi]
mov r8d, dword [rbx + 0xf]
mov edx, r9d
and edx, 0x1f
movzx ecx, dl
mov eax, edx
shr rax, 2
not cl
and eax, 0xfe
and ecx, 7
movzx r10d, byte [rax + rbx + 2]
mov eax, edx
shr eax, 3
shr r10d, cl
and r10d, 1
mov ecx, r10d
xor ecx, 1
and ecx, eax
mov eax, r8d
shr eax, 3
xor eax, r8d
shr eax, 3
xor eax, edx
shr eax, 4
xor ecx, eax
xor ecx, edx
test r9b, 2
je 0x1400039d3
mov eax, r8d
shr eax, 5
xor ecx, eax
test r9b, 4
je 0x1400039e1
mov eax, r8d
shr eax, 8
xor ecx, eax
and ecx, 1
and r9d, 1
shl r9d, 2
xor r9d, r8d
add r9d, r9d
or r9d, ecx
mov dword [rbx + 0xf], r9d
mov r8d, dword [rdi]
mov edx, r8d
shr r8d, 1
and edx, 1
mov eax, r8d
shr r9d, 0xb
xor r9d, r10d
xor eax, 0x80500062
and r9d, 1
lea ecx, [rdx + rdx]
or ecx, r9d
cmp edx, r9d
cmovne r8d, eax
mov dword [rdi], r8d
movzx eax, byte [rcx + rdi]
mov r9d, dword [rbx + 0xf]
mov edx, eax
and edx, 0x1f
mov ecx, edx
shr rcx, 2
and ecx, 0xfe
movzx r10d, byte [rcx + rbx + 2]
movzx ecx, dl
not cl
and ecx, 7
shr r10d, cl
mov ecx, edx
shr ecx, 3
and r10d, 1
mov r8d, r10d
xor r8d, 1
and r8d, ecx
mov ecx, r9d
shr ecx, 3
xor ecx, r9d
shr ecx, 3
xor ecx, edx
shr ecx, 4
xor r8d, ecx
xor r8d, edx
test al, 2
je 0x140003a89
mov ecx, r9d
shr ecx, 5
xor r8d, ecx
test al, 4
je 0x140003a96
mov ecx, r9d
shr ecx, 8
xor r8d, ecx
and eax, 1
and r8d, 1
shl eax, 2
xor eax, r9d
add eax, eax
or eax, r8d
mov dword [rbx + 0xf], eax
mov r8d, dword [rdi]
mov edx, r8d
shr eax, 0xb
and edx, 1
shr r8d, 1
xor eax, r10d
and eax, 1
mov ecx, r8d
xor ecx, 0x80500062
lea r9d, [rdx + rdx]
or r9d, eax
cmp edx, eax
cmovne r8d, ecx
mov dword [rdi], r8d
sub r11, 1
jne 0x1400038c0
mov rbx, qword [rsp + 8]
mov rdi, qword [rsp + 0x10]
ret
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x20
cmp dword [rdx + 0x14], 0
mov rbx, rdx
mov rdi, rcx
je 0x140003b15
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
jmp 0x1400037d0
mov rcx, rbx
mov qword [rsp + 0x30], rsi
call fcn.14000a840
xor r9d, r9d
lea esi, [r9 + 0x27]
nop dword [rax]
movzx ecx, byte [r9 + rdi]
mov rdx, rbx
call fcn.14000aac0
mov r8d, dword [rdi]
mov edx, r8d
shr r8d, 1
and edx, 1
mov ecx, r8d
xor ecx, 0x80500062
lea r9d, [rdx + rdx]
or r9d, eax
cmp edx, eax
cmovne r8d, ecx
mov dword [rdi], r8d
sub rsi, 1
jne 0x140003b30
mov rsi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret