Function at 0x140009750
Capabilities:
Encode data using xor

Disassembly:
mov r8d, r8d
jmp 0x140009750
push rsi
sub rsp, 0x40
mov rsi, r8
mov r11, rdx
mov r9d, ecx
test rdx, rdx
jne 0x14000976c
xor eax, eax
add rsp, 0x40
pop rsi
ret
mov qword [rsp + 0x50], rbx
lea rbx, [0x140000000]
not r9d
cmp r8, 0x17
jb 0x140009b19
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x18], r14
mov qword [rsp + 0x10], r15
nop dword [rax]
test r11b, 3
je 0x1400097ca
movzx ecx, byte [r11]
mov eax, r9d
xor rcx, rax
inc r11
shr eax, 8
movzx edx, cl
mov r9d, dword [rbx + rdx*4 + 0x28ed0]
xor r9d, eax
sub rsi, 1
jne 0x1400097a0
xor edi, edi
movabs rax, 0xcccccccccccccccd
mul rsi
mov ebp, edi
mov r14d, edi
mov rcx, rdx
mov r15d, edi
shr rcx, 4
lea rax, [rcx + rcx*4]
shl rax, 2
sub rsi, rax
sub rcx, 1
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x58], rcx
je 0x14000997b
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r13
nop dword [rax]
nop word [rax + rax]
mov eax, dword [r11]
mov edx, dword [r11 + 8]
xor eax, r9d
mov r10d, dword [r11 + 0x10]
xor edx, ebp
mov ecx, dword [r11 + 4]
xor r10d, r15d
mov r8d, dword [r11 + 0xc]
xor ecx, edi
mov r12d, eax
xor r8d, r14d
movzx eax, al
add r11, 0x14
mov qword [rsp + 8], r11
mov esi, edx
mov r13d, ecx
mov r9d, dword [rbx + rax*4 + 0x296d0]
movzx eax, cl
mov edi, dword [rbx + rax*4 + 0x296d0]
movzx eax, dl
lea rdx, [0x140000000]
mov ebp, dword [rbx + rax*4 + 0x296d0]
mov eax, r8d
mov qword [rsp + 0x68], rax
mov r11, qword [rsp + 0x68]
movzx eax, r8b
mov r14d, dword [rbx + rax*4 + 0x296d0]
mov eax, r10d
mov qword [rsp], rax
movzx eax, r10b
mov r10d, 0x100
mov r15d, dword [rbx + rax*4 + 0x296d0]
mov ebx, 1
nop
lea eax, [rbx*8]
inc ebx
movsxd r8, eax
mov rax, r12
mov rcx, r8
shr rax, cl
movzx ecx, al
mov rax, r13
add rcx, r10
xor r9d, dword [rdx + rcx*4 + 0x296d0]
mov rcx, r8
shr rax, cl
movzx ecx, al
mov rax, rsi
add rcx, r10
xor edi, dword [rdx + rcx*4 + 0x296d0]
mov rcx, r8
shr rax, cl
movzx edx, al
lea rax, [0x140000000]
add rdx, r10
xor ebp, dword [rax + rdx*4 + 0x296d0]
mov rax, r11
shr rax, cl
movzx edx, al
lea rax, [0x140000000]
add rdx, r10
xor r14d, dword [rax + rdx*4 + 0x296d0]
lea rdx, [0x140000000]
mov rax, qword [rsp]
shr rax, cl
movzx ecx, al
add rcx, r10
add r10, 0x100
xor r15d, dword [rdx + rcx*4 + 0x296d0]
cmp ebx, 4
jl 0x1400098b0
sub qword [rsp + 0x58], 1
lea rbx, [0x140000000]
mov r11, qword [rsp + 8]
jne 0x140009820
mov rsi, qword [rsp + 0x60]
lea rbx, [0x140000000]
mov r13, qword [rsp + 0x20]
mov r12, qword [rsp + 0x28]
mov edx, dword [r11]
xor edx, r9d
movzx ecx, dl
shr edx, 8
mov r8d, dword [rbx + rcx*4 + 0x28ed0]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0x28ed0]
xor edx, r8d
movzx ecx, dl
shr edx, 8
mov r8d, dword [rbx + rcx*4 + 0x28ed0]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov eax, dword [rbx + rcx*4 + 0x28ed0]
xor eax, r8d
mov r8d, dword [r11 + 4]
xor r8d, eax
xor r8d, edi
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0x28ed0]
xor edx, r8d
movzx ecx, dl
shr edx, 8
mov r8d, dword [rbx + rcx*4 + 0x28ed0]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0x28ed0]
xor edx, r8d
mov r8d, dword [r11 + 8]
movzx ecx, dl
shr edx, 8
mov eax, dword [rbx + rcx*4 + 0x28ed0]
xor eax, edx
xor r8d, eax
xor r8d, ebp
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0x28ed0]
xor edx, r8d
movzx ecx, dl
shr edx, 8
mov r8d, dword [rbx + rcx*4 + 0x28ed0]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0x28ed0]
xor edx, r8d
mov r8d, dword [r11 + 0xc]
movzx ecx, dl
shr edx, 8
mov eax, dword [rbx + rcx*4 + 0x28ed0]
xor eax, edx
xor r8d, eax
xor r8d, r14d
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0x28ed0]
xor edx, r8d
movzx ecx, dl
shr edx, 8
mov r8d, dword [rbx + rcx*4 + 0x28ed0]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0x28ed0]
xor edx, r8d
mov r8d, dword [r11 + 0x10]
movzx ecx, dl
shr edx, 8
mov eax, dword [rbx + rcx*4 + 0x28ed0]
xor eax, edx
xor r8d, eax
xor r8d, r15d
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0x28ed0]
mov r15, qword [rsp + 0x10]
xor edx, r8d
mov r14, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
movzx ecx, dl
shr edx, 8
mov r8d, dword [rbx + rcx*4 + 0x28ed0]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0x28ed0]
xor edx, r8d
movzx ecx, dl
shr edx, 8
mov r9d, dword [rbx + rcx*4 + 0x28ed0]
xor r9d, edx
add r11, 0x14
cmp rsi, 8
jb 0x140009c1a
mov r10, rsi
shr r10, 3
imul rax, r10, 0xfffffffffffffff8
add rsi, rax
movzx ecx, byte [r11]
mov eax, r9d
xor rcx, rax
shr r9d, 8
movzx eax, cl
movzx ecx, byte [r11 + 1]
mov edx, dword [rbx + rax*4 + 0x28ed0]
xor edx, r9d
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [r11 + 2]
mov r8d, dword [rbx + rax*4 + 0x28ed0]
xor r8d, edx
mov eax, r8d
shr r8d, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [r11 + 3]
mov edx, dword [rbx + rax*4 + 0x28ed0]
xor edx, r8d
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [r11 + 4]
mov r8d, dword [rbx + rax*4 + 0x28ed0]
xor r8d, edx
mov eax, r8d
shr r8d, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [r11 + 5]
mov edx, dword [rbx + rax*4 + 0x28ed0]
xor edx, r8d
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [r11 + 6]
mov r8d, dword [rbx + rax*4 + 0x28ed0]
xor r8d, edx
mov eax, r8d
shr r8d, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [r11 + 7]
add r11, 8
mov edx, dword [rbx + rax*4 + 0x28ed0]
xor edx, r8d
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
mov r9d, dword [rbx + rax*4 + 0x28ed0]
xor r9d, edx
sub r10, 1
jne 0x140009b31
test rsi, rsi
je 0x140009c45
nop
movzx ecx, byte [r11]
lea r11, [r11 + 1]
mov eax, r9d
xor rcx, rax
shr eax, 8
movzx edx, cl
mov r9d, dword [rbx + rdx*4 + 0x28ed0]
xor r9d, eax
sub rsi, 1
jne 0x140009c20
mov rbx, qword [rsp + 0x50]
not r9d
mov eax, r9d
add rsp, 0x40
pop rsi
ret