Function at 0x140009ac0
Capabilities:
Encode data using xor

Disassembly:
mov r8d, r8d
jmp 0x140009ac0
push rbp
push rsi
sub rsp, 0x18
mov rbp, r8
mov rsi, rdx
test rdx, rdx
jne 0x140009adb
xor eax, eax
add rsp, 0x18
pop rsi
pop rbp
ret
mov qword [rsp + 0x30], rbx
lea rbx, [0x140000000]
not ecx
cmp r8, 0x17
jb 0x140009ea2
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x10], r13
mov qword [rsp + 8], r14
mov qword [rsp], r15
test sil, 3
je 0x140009b2e
movzx edx, byte [rsi]
mov eax, ecx
xor rdx, rax
inc rsi
shr eax, 8
movzx r8d, dl
mov ecx, dword [rbx + r8*4 + 0x28b30]
xor ecx, eax
sub rbp, 1
jne 0x140009b06
xor r15d, r15d
movabs rax, 0xcccccccccccccccd
mul rbp
mov r12d, r15d
mov r13d, r15d
mov r14, rdx
mov r11d, r15d
shr r14, 4
lea rax, [r14 + r14*4]
shl rax, 2
sub rbp, rax
sub r14, 1
je 0x140009d09
mov qword [rsp + 0x40], rdi
nop dword [rax + rax]
mov r9d, dword [rsi + 0xc]
mov r10d, dword [rsi + 0x10]
xor r9d, r13d
mov eax, dword [rsi]
xor r10d, r11d
xor eax, ecx
mov edx, dword [rsi + 4]
mov r11d, eax
xor edx, r15d
movzx eax, al
mov r8d, dword [rsi + 8]
add rsi, 0x14
xor r8d, r12d
mov edi, r8d
mov ecx, dword [rbx + rax*4 + 0x29330]
mov ebx, edx
movzx eax, dl
lea rdx, [0x140000000]
mov r15d, dword [rdx + rax*4 + 0x29330]
movzx eax, r8b
mov r12d, dword [rdx + rax*4 + 0x29330]
movzx eax, r9b
mov r13d, dword [rdx + rax*4 + 0x29330]
movzx eax, r10b
mov edx, dword [rdx + rax*4 + 0x29330]
mov eax, r11d
shr rax, 0x10
movzx r8d, al
mov eax, r11d
shr rax, 8
mov dword [rsp + 0x38], edx
movzx edx, al
lea rax, [0x140000000]
mov eax, dword [rax + r8*4 + 0x29b30]
lea r8, [0x140000000]
shr r11, 0x18
xor eax, dword [r8 + rdx*4 + 0x29730]
xor eax, dword [r8 + r11*4 + 0x29f30]
lea r11, [0x140000000]
xor ecx, eax
mov eax, ebx
shr rax, 0x10
movzx r8d, al
mov eax, ebx
shr rax, 8
movzx edx, al
shr rbx, 0x18
mov eax, dword [r11 + r8*4 + 0x29b30]
xor eax, dword [r11 + rdx*4 + 0x29730]
xor eax, dword [r11 + rbx*4 + 0x29f30]
lea rbx, [0x140000000]
xor r15d, eax
mov eax, edi
shr rax, 0x10
movzx r8d, al
mov eax, edi
shr rax, 8
movzx edx, al
shr rdi, 0x18
mov eax, dword [rbx + r8*4 + 0x29b30]
xor eax, dword [rbx + rdx*4 + 0x29730]
xor eax, dword [rbx + rdi*4 + 0x29f30]
xor r12d, eax
mov eax, r9d
shr rax, 0x10
movzx r8d, al
mov eax, r9d
shr rax, 8
movzx edx, al
shr r9, 0x18
mov eax, dword [rbx + r8*4 + 0x29b30]
xor eax, dword [rbx + rdx*4 + 0x29730]
xor eax, dword [rbx + r9*4 + 0x29f30]
xor r13d, eax
mov eax, r10d
shr rax, 0x10
movzx r8d, al
mov eax, r10d
shr rax, 8
movzx edx, al
mov eax, dword [rbx + r8*4 + 0x29b30]
xor eax, dword [rbx + rdx*4 + 0x29730]
mov r11d, dword [rsp + 0x38]
shr r10, 0x18
xor eax, dword [rbx + r10*4 + 0x29f30]
xor r11d, eax
sub r14, 1
jne 0x140009b70
mov rdi, qword [rsp + 0x40]
mov edx, dword [rsi]
xor edx, ecx
movzx ecx, dl
shr edx, 8
mov r8d, dword [rbx + rcx*4 + 0x28b30]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0x28b30]
xor edx, r8d
movzx ecx, dl
shr edx, 8
mov r8d, dword [rbx + rcx*4 + 0x28b30]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov eax, dword [rbx + rcx*4 + 0x28b30]
xor eax, r8d
mov r8d, dword [rsi + 4]
xor r8d, eax
xor r8d, r15d
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0x28b30]
xor edx, r8d
movzx ecx, dl
shr edx, 8
mov r8d, dword [rbx + rcx*4 + 0x28b30]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0x28b30]
xor edx, r8d
mov r8d, dword [rsi + 8]
movzx ecx, dl
shr edx, 8
mov eax, dword [rbx + rcx*4 + 0x28b30]
xor eax, edx
xor r8d, eax
xor r8d, r12d
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0x28b30]
xor edx, r8d
movzx ecx, dl
shr edx, 8
mov r8d, dword [rbx + rcx*4 + 0x28b30]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0x28b30]
xor edx, r8d
mov r8d, dword [rsi + 0xc]
movzx ecx, dl
shr edx, 8
mov eax, dword [rbx + rcx*4 + 0x28b30]
xor eax, edx
xor r8d, eax
xor r8d, r13d
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0x28b30]
xor edx, r8d
movzx ecx, dl
shr edx, 8
mov r8d, dword [rbx + rcx*4 + 0x28b30]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0x28b30]
xor edx, r8d
mov r8d, dword [rsi + 0x10]
movzx ecx, dl
shr edx, 8
mov eax, dword [rbx + rcx*4 + 0x28b30]
xor eax, edx
xor r8d, eax
xor r8d, r11d
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0x28b30]
mov r15, qword [rsp]
xor edx, r8d
mov r14, qword [rsp + 8]
mov r13, qword [rsp + 0x10]
mov r12, qword [rsp + 0x48]
movzx ecx, dl
shr edx, 8
mov r8d, dword [rbx + rcx*4 + 0x28b30]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0x28b30]
xor edx, r8d
movzx ecx, dl
shr edx, 8
mov ecx, dword [rbx + rcx*4 + 0x28b30]
xor ecx, edx
add rsi, 0x14
cmp rbp, 8
jb 0x140009f9c
mov r9, rbp
shr r9, 3
imul rax, r9, 0xfffffffffffffff8
add rbp, rax
nop word [rax + rax]
movzx edx, byte [rsi]
mov eax, ecx
xor rdx, rax
shr ecx, 8
movzx eax, dl
mov edx, dword [rbx + rax*4 + 0x28b30]
xor edx, ecx
movzx ecx, byte [rsi + 1]
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [rsi + 2]
mov r8d, dword [rbx + rax*4 + 0x28b30]
xor r8d, edx
mov eax, r8d
shr r8d, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [rsi + 3]
mov edx, dword [rbx + rax*4 + 0x28b30]
xor edx, r8d
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [rsi + 4]
mov r8d, dword [rbx + rax*4 + 0x28b30]
xor r8d, edx
mov eax, r8d
shr r8d, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [rsi + 5]
mov edx, dword [rbx + rax*4 + 0x28b30]
xor edx, r8d
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [rsi + 6]
mov r8d, dword [rbx + rax*4 + 0x28b30]
xor r8d, edx
mov eax, r8d
shr r8d, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [rsi + 7]
add rsi, 8
mov edx, dword [rbx + rax*4 + 0x28b30]
xor edx, r8d
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
mov ecx, dword [rbx + rax*4 + 0x28b30]
xor ecx, edx
sub r9, 1
jne 0x140009ec0
test rbp, rbp
je 0x140009fc4
movzx edx, byte [rsi]
lea rsi, [rsi + 1]
mov eax, ecx
xor rdx, rax
shr eax, 8
movzx r8d, dl
mov ecx, dword [rbx + r8*4 + 0x28b30]
xor ecx, eax
sub rbp, 1
jne 0x140009fa1
mov rbx, qword [rsp + 0x30]
not ecx
mov eax, ecx
add rsp, 0x18
pop rsi
pop rbp
ret