Function at 0x14001c840
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x10
mov rbp, r8
mov rdi, rdx
mov esi, ecx
test rdx, rdx
jne 0x14001c31f
xor eax, eax
add rsp, 0x10
pop rdi
pop rsi
pop rbp
ret
not esi
lea r11, [0x140000000]
cmp r8, 0x17
jb 0x14001c6f9
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x48], r13
mov qword [rsp + 8], r14
mov qword [rsp], r15
test r8, r8
je 0x14001c376
nop word [rax + rax]
test dil, 3
je 0x14001c376
movzx ecx, byte [rdi]
mov eax, esi
inc rdi
xor rcx, rax
shr eax, 8
movzx edx, cl
mov esi, dword [r11 + rdx*4 + 0x2ab50]
xor esi, eax
dec rbp
jne 0x14001c350
xor r13d, r13d
movabs rax, 0xcccccccccccccccd
mov r14d, r13d
mov r15d, r13d
mov r10d, r13d
mul rbp
mov r12, rdx
shr r12, 4
lea rax, [r12 + r12*4]
shl rax, 2
sub rbp, rax
dec r12
je 0x14001c552
mov qword [rsp + 0x30], rbx
nop
mov r8d, dword [rdi + 0xc]
mov r9d, dword [rdi + 0x10]
mov eax, dword [rdi]
mov ecx, dword [rdi + 4]
mov edx, dword [rdi + 8]
xor eax, esi
xor edx, r14d
xor ecx, r13d
xor r9d, r10d
mov r10d, eax
movzx eax, al
mov ebx, edx
mov esi, dword [r11 + rax*4 + 0x2b350]
mov r11d, ecx
movzx eax, cl
xor r8d, r15d
lea rcx, [0x140000000]
add rdi, 0x14
mov r13d, dword [rcx + rax*4 + 0x2b350]
movzx eax, dl
mov r14d, dword [rcx + rax*4 + 0x2b350]
movzx eax, r8b
mov r15d, dword [rcx + rax*4 + 0x2b350]
movzx eax, r9b
mov ecx, dword [rcx + rax*4 + 0x2b350]
mov eax, r10d
shr rax, 0x18
mov dword [rsp + 0x38], ecx
movzx edx, al
mov eax, r10d
shr r10, 8
shr rax, 0x10
movzx ecx, al
lea rax, [0x140000000]
mov edx, dword [rax + rdx*4 + 0x2bf50]
xor edx, dword [rax + rcx*4 + 0x2bb50]
movzx eax, r10b
lea r10, [0x140000000]
xor edx, dword [r10 + rax*4 + 0x2b750]
mov eax, r11d
shr rax, 0x18
xor esi, edx
movzx edx, al
mov eax, r11d
shr r11, 8
mov edx, dword [r10 + rdx*4 + 0x2bf50]
shr rax, 0x10
movzx ecx, al
movzx eax, r11b
lea r11, [0x140000000]
xor edx, dword [r10 + rcx*4 + 0x2bb50]
xor edx, dword [r11 + rax*4 + 0x2b750]
mov eax, ebx
shr rax, 0x18
xor r13d, edx
movzx edx, al
mov eax, ebx
shr rbx, 8
mov edx, dword [r11 + rdx*4 + 0x2bf50]
shr rax, 0x10
movzx ecx, al
movzx eax, bl
xor edx, dword [r11 + rcx*4 + 0x2bb50]
xor edx, dword [r11 + rax*4 + 0x2b750]
mov eax, r8d
shr rax, 0x18
xor r14d, edx
movzx edx, al
mov eax, r8d
shr r8, 8
mov edx, dword [r11 + rdx*4 + 0x2bf50]
shr rax, 0x10
movzx ecx, al
movzx eax, r8b
xor edx, dword [r11 + rcx*4 + 0x2bb50]
xor edx, dword [r11 + rax*4 + 0x2b750]
mov eax, r9d
xor r15d, edx
shr rax, 0x18
movzx edx, al
mov eax, r9d
mov edx, dword [r11 + rdx*4 + 0x2bf50]
mov r10d, dword [rsp + 0x38]
shr rax, 0x10
movzx ecx, al
shr r9, 8
xor edx, dword [r11 + rcx*4 + 0x2bb50]
movzx eax, r9b
xor edx, dword [r11 + rax*4 + 0x2b750]
xor r10d, edx
dec r12
jne 0x14001c3b0
mov rbx, qword [rsp + 0x30]
mov edx, dword [rdi]
xor edx, esi
movzx ecx, dl
shr edx, 8
mov r8d, dword [r11 + rcx*4 + 0x2ab50]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov edx, dword [r11 + rcx*4 + 0x2ab50]
xor edx, r8d
movzx ecx, dl
shr edx, 8
mov r8d, dword [r11 + rcx*4 + 0x2ab50]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov eax, dword [r11 + rcx*4 + 0x2ab50]
xor eax, r8d
mov r8d, dword [rdi + 4]
xor r8d, eax
xor r8d, r13d
movzx ecx, r8b
shr r8d, 8
mov edx, dword [r11 + rcx*4 + 0x2ab50]
xor edx, r8d
movzx ecx, dl
shr edx, 8
mov r8d, dword [r11 + rcx*4 + 0x2ab50]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov edx, dword [r11 + rcx*4 + 0x2ab50]
xor edx, r8d
mov r8d, dword [rdi + 8]
movzx ecx, dl
shr edx, 8
mov eax, dword [r11 + rcx*4 + 0x2ab50]
xor eax, edx
xor r8d, eax
xor r8d, r14d
movzx ecx, r8b
shr r8d, 8
mov edx, dword [r11 + rcx*4 + 0x2ab50]
xor edx, r8d
movzx ecx, dl
shr edx, 8
mov r8d, dword [r11 + rcx*4 + 0x2ab50]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov edx, dword [r11 + rcx*4 + 0x2ab50]
xor edx, r8d
mov r8d, dword [rdi + 0xc]
movzx ecx, dl
shr edx, 8
mov eax, dword [r11 + rcx*4 + 0x2ab50]
xor eax, edx
xor r8d, eax
xor r8d, r15d
movzx ecx, r8b
shr r8d, 8
mov edx, dword [r11 + rcx*4 + 0x2ab50]
xor edx, r8d
movzx ecx, dl
shr edx, 8
mov r8d, dword [r11 + rcx*4 + 0x2ab50]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov edx, dword [r11 + rcx*4 + 0x2ab50]
xor edx, r8d
mov r8d, dword [rdi + 0x10]
movzx ecx, dl
shr edx, 8
mov eax, dword [r11 + rcx*4 + 0x2ab50]
xor eax, edx
xor r8d, eax
xor r8d, r10d
movzx ecx, r8b
shr r8d, 8
mov edx, dword [r11 + rcx*4 + 0x2ab50]
mov r15, qword [rsp]
mov r14, qword [rsp + 8]
mov r13, qword [rsp + 0x48]
mov r12, qword [rsp + 0x40]
xor edx, r8d
movzx ecx, dl
shr edx, 8
mov r8d, dword [r11 + rcx*4 + 0x2ab50]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov edx, dword [r11 + rcx*4 + 0x2ab50]
xor edx, r8d
movzx ecx, dl
shr edx, 8
mov esi, dword [r11 + rcx*4 + 0x2ab50]
xor esi, edx
add rdi, 0x14
cmp rbp, 8
jb 0x14001c800
mov r9, rbp
shr r9, 3
mov rax, r9
imul rax, rax, 0xfffffffffffffff8
add rbp, rax
nop word [rax + rax]
movzx ecx, byte [rdi]
mov eax, esi
shr esi, 8
xor rcx, rax
add rdi, 8
movzx eax, cl
movzx ecx, byte [rdi - 7]
mov edx, dword [r11 + rax*4 + 0x2ab50]
xor edx, esi
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [rdi - 6]
mov r8d, dword [r11 + rax*4 + 0x2ab50]
xor r8d, edx
mov eax, r8d
shr r8d, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [rdi - 5]
mov edx, dword [r11 + rax*4 + 0x2ab50]
xor edx, r8d
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [rdi - 4]
mov r8d, dword [r11 + rax*4 + 0x2ab50]
xor r8d, edx
mov eax, r8d
shr r8d, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [rdi - 3]
mov edx, dword [r11 + rax*4 + 0x2ab50]
xor edx, r8d
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [rdi - 2]
mov r8d, dword [r11 + rax*4 + 0x2ab50]
xor r8d, edx
mov eax, r8d
shr r8d, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [rdi - 1]
mov edx, dword [r11 + rax*4 + 0x2ab50]
xor edx, r8d
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
mov esi, dword [r11 + rax*4 + 0x2ab50]
xor esi, edx
dec r9
jne 0x14001c720
test rbp, rbp
je 0x14001c830
nop word [rax + rax]
movzx ecx, byte [rdi]
mov eax, esi
inc rdi
xor rcx, rax
shr eax, 8
movzx edx, cl
mov esi, dword [r11 + rdx*4 + 0x2ab50]
xor esi, eax
dec rbp
jne 0x14001c810
not esi
mov eax, esi
add rsp, 0x10
pop rdi
pop rsi
pop rbp
ret
mov r8d, r8d
jmp 0x14001c300