Function at 0x14002c1d0
Capabilities:
Encode data using xor

Disassembly:
push rsi
sub rsp, 0x40
mov rsi, r8
mov r11, rdx
mov r9d, ecx
test rdx, rdx
jne 0x14002c1ec
xor eax, eax
add rsp, 0x40
pop rsi
ret
mov qword [rsp + 0x50], rbx
lea rbx, [0x140000000]
not r9d
cmp r8, 0x17
jb 0x14002c599
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 0x14002c24a
movzx ecx, byte [r11]
mov eax, r9d
xor rcx, rax
inc r11
shr eax, 8
movzx edx, cl
mov r9d, dword [rbx + rdx*4 + 0xe9d70]
xor r9d, eax
sub rsi, 1
jne 0x14002c220
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 0x14002c3fb
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 + 0xea570]
movzx eax, cl
mov edi, dword [rbx + rax*4 + 0xea570]
movzx eax, dl
lea rdx, [0x140000000]
mov ebp, dword [rbx + rax*4 + 0xea570]
mov eax, r8d
mov qword [rsp + 0x68], rax
mov r11, qword [rsp + 0x68]
movzx eax, r8b
mov r14d, dword [rbx + rax*4 + 0xea570]
mov eax, r10d
mov qword [rsp], rax
movzx eax, r10b
mov r10d, 0x100
mov r15d, dword [rbx + rax*4 + 0xea570]
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 + 0xea570]
mov rcx, r8
shr rax, cl
movzx ecx, al
mov rax, rsi
add rcx, r10
xor edi, dword [rdx + rcx*4 + 0xea570]
mov rcx, r8
shr rax, cl
movzx edx, al
lea rax, [0x140000000]
add rdx, r10
xor ebp, dword [rax + rdx*4 + 0xea570]
mov rax, r11
shr rax, cl
movzx edx, al
lea rax, [0x140000000]
add rdx, r10
xor r14d, dword [rax + rdx*4 + 0xea570]
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 + 0xea570]
cmp ebx, 4
jl 0x14002c330
sub qword [rsp + 0x58], 1
lea rbx, [0x140000000]
mov r11, qword [rsp + 8]
jne 0x14002c2a0
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 + 0xe9d70]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0xe9d70]
xor edx, r8d
movzx ecx, dl
shr edx, 8
mov r8d, dword [rbx + rcx*4 + 0xe9d70]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov eax, dword [rbx + rcx*4 + 0xe9d70]
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 + 0xe9d70]
xor edx, r8d
movzx ecx, dl
shr edx, 8
mov r8d, dword [rbx + rcx*4 + 0xe9d70]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0xe9d70]
xor edx, r8d
mov r8d, dword [r11 + 8]
movzx ecx, dl
shr edx, 8
mov eax, dword [rbx + rcx*4 + 0xe9d70]
xor eax, edx
xor r8d, eax
xor r8d, ebp
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0xe9d70]
xor edx, r8d
movzx ecx, dl
shr edx, 8
mov r8d, dword [rbx + rcx*4 + 0xe9d70]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0xe9d70]
xor edx, r8d
mov r8d, dword [r11 + 0xc]
movzx ecx, dl
shr edx, 8
mov eax, dword [rbx + rcx*4 + 0xe9d70]
xor eax, edx
xor r8d, eax
xor r8d, r14d
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0xe9d70]
xor edx, r8d
movzx ecx, dl
shr edx, 8
mov r8d, dword [rbx + rcx*4 + 0xe9d70]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0xe9d70]
xor edx, r8d
mov r8d, dword [r11 + 0x10]
movzx ecx, dl
shr edx, 8
mov eax, dword [rbx + rcx*4 + 0xe9d70]
xor eax, edx
xor r8d, eax
xor r8d, r15d
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0xe9d70]
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 + 0xe9d70]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0xe9d70]
xor edx, r8d
movzx ecx, dl
shr edx, 8
mov r9d, dword [rbx + rcx*4 + 0xe9d70]
xor r9d, edx
add r11, 0x14
cmp rsi, 8
jb 0x14002c69a
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 + 0xe9d70]
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 + 0xe9d70]
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 + 0xe9d70]
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 + 0xe9d70]
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 + 0xe9d70]
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 + 0xe9d70]
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 + 0xe9d70]
xor edx, r8d
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
mov r9d, dword [rbx + rax*4 + 0xe9d70]
xor r9d, edx
sub r10, 1
jne 0x14002c5b1
test rsi, rsi
je 0x14002c6c5
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 + 0xe9d70]
xor r9d, eax
sub rsi, 1
jne 0x14002c6a0
mov rbx, qword [rsp + 0x50]
not r9d
mov eax, r9d
add rsp, 0x40
pop rsi
ret