Function at 0x1400027c0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
push rbp
push rdi
sub rsp, 0x28
test rcx, rcx
mov rdi, r8
mov rbp, rdx
je 0x140002de3
test rdx, rdx
je 0x140002de3
test r8, r8
je 0x140002de3
movzx eax, byte [rcx + 1]
movzx r10d, byte [rcx + 4]
movzx r9d, byte [rcx]
movzx r11d, byte [rcx + 0xc]
mov qword [rsp + 0x50], rbx
movzx ebx, byte [rcx + 8]
shl r10d, 8
shl ebx, 8
shl r9d, 8
xor r9d, eax
movzx eax, byte [rcx + 2]
shl r11d, 8
shl r9d, 8
mov qword [rsp + 0x20], rsi
lea rsi, [0x140000000]
xor r9d, eax
movzx eax, byte [rcx + 3]
mov qword [rsp + 0x18], r12
mov qword [rsp + 0x10], r13
shl r9d, 8
mov qword [rsp + 8], r14
xor r9d, eax
movzx eax, byte [rcx + 5]
mov qword [rsp], r15
xor r9d, dword [r8]
xor r10d, eax
movzx eax, byte [rcx + 6]
shl r10d, 8
xor r10d, eax
movzx eax, byte [rcx + 7]
shl r10d, 8
xor r10d, eax
movzx eax, byte [rcx + 9]
xor r10d, dword [r8 + 4]
xor ebx, eax
movzx eax, byte [rcx + 0xa]
shl ebx, 8
xor ebx, eax
movzx eax, byte [rcx + 0xb]
shl ebx, 8
xor ebx, eax
movzx eax, byte [rcx + 0xd]
xor ebx, dword [r8 + 8]
xor r11d, eax
movzx eax, byte [rcx + 0xe]
shl r11d, 8
xor r11d, eax
movzx eax, byte [rcx + 0xf]
shl r11d, 8
xor r11d, eax
mov rax, r10
xor r11d, dword [r8 + 0xc]
shr rax, 0x10
mov r8d, r9d
movzx edx, al
mov rax, rbx
mov r12d, dword [rsi + rdx*4 + 0xabb0]
shr rax, 8
movzx ecx, al
mov eax, r9d
xor r12d, dword [rsi + rcx*4 + 0xafb0]
shr rax, 0x18
xor r12d, dword [rsi + rax*4 + 0xa7b0]
movzx eax, r11b
xor r12d, dword [rsi + rax*4 + 0xb3b0]
mov rax, r11
xor r12d, dword [rdi + 0x10]
shr rax, 8
movzx edx, al
mov rax, rbx
mov r13d, dword [rsi + rdx*4 + 0xafb0]
shr rax, 0x10
movzx ecx, al
mov rax, r10
xor r13d, dword [rsi + rcx*4 + 0xabb0]
shr rax, 0x18
xor r13d, dword [rsi + rax*4 + 0xa7b0]
movzx eax, r9b
xor r13d, dword [rsi + rax*4 + 0xb3b0]
mov eax, r9d
xor r13d, dword [rdi + 0x14]
shr rax, 8
shr r8, 0x10
lea r15, [rdi + 0x20]
movzx edx, al
mov rax, r11
shr r11, 0x18
mov edx, dword [rsi + rdx*4 + 0xafb0]
shr rax, 0x10
movzx ecx, al
mov rax, rbx
xor edx, dword [rsi + rcx*4 + 0xabb0]
shr rax, 0x18
movzx ecx, r8b
xor edx, dword [rsi + rax*4 + 0xa7b0]
mov r14d, dword [rsi + rcx*4 + 0xabb0]
movzx eax, r10b
xor edx, dword [rsi + rax*4 + 0xb3b0]
shr r10, 8
xor edx, dword [rdi + 0x18]
movzx eax, r10b
xor r14d, dword [rsi + rax*4 + 0xafb0]
movzx eax, bl
xor r14d, dword [rsi + r11*4 + 0xa7b0]
xor r14d, dword [rsi + rax*4 + 0xb3b0]
mov eax, dword [rdi + 0xf0]
xor r14d, dword [rdi + 0x1c]
sar eax, 1
sub eax, 1
je 0x140002c0d
mov ebp, eax
nop
nop
mov esi, edx
mov edi, r14d
lea r14, [0x140000000]
mov r10d, r12d
mov eax, r13d
mov r11d, r13d
shr rax, 0x10
shr r10, 0x10
shr r11, 8
movzx edx, al
mov rax, rsi
mov ebx, dword [r14 + rdx*4 + 0xabb0]
shr rax, 8
movzx ecx, al
mov eax, r12d
xor ebx, dword [r14 + rcx*4 + 0xafb0]
shr rax, 0x18
xor ebx, dword [r14 + rax*4 + 0xa7b0]
movzx eax, dil
xor ebx, dword [r14 + rax*4 + 0xb3b0]
mov rax, rdi
xor ebx, dword [r15]
shr rax, 8
movzx edx, al
mov rax, rsi
mov r9d, dword [r14 + rdx*4 + 0xafb0]
shr rax, 0x10
movzx ecx, al
mov eax, r13d
xor r9d, dword [r14 + rcx*4 + 0xabb0]
shr rax, 0x18
xor r9d, dword [r14 + rax*4 + 0xa7b0]
movzx eax, r12b
xor r9d, dword [r14 + rax*4 + 0xb3b0]
mov eax, r12d
xor r9d, dword [r15 + 4]
shr rax, 8
movzx edx, al
mov rax, rdi
shr rdi, 0x18
mov r8d, dword [r14 + rdx*4 + 0xafb0]
shr rax, 0x10
movzx ecx, al
mov rax, rsi
xor r8d, dword [r14 + rcx*4 + 0xabb0]
shr rax, 0x18
movzx ecx, r10b
xor r8d, dword [r14 + rax*4 + 0xa7b0]
mov edx, dword [r14 + rcx*4 + 0xabb0]
movzx eax, r13b
xor r8d, dword [r14 + rax*4 + 0xb3b0]
movzx eax, r11b
mov r10d, r9d
xor edx, dword [r14 + rax*4 + 0xafb0]
xor r8d, dword [r15 + 8]
movzx eax, sil
xor edx, dword [r14 + rdi*4 + 0xa7b0]
mov r11d, r8d
mov r8d, ebx
xor edx, dword [r14 + rax*4 + 0xb3b0]
mov rax, r10
xor edx, dword [r15 + 0xc]
shr rax, 0x10
mov r9d, edx
movzx edx, al
mov rax, r11
mov r12d, dword [r14 + rdx*4 + 0xabb0]
shr rax, 8
movzx ecx, al
mov eax, ebx
xor r12d, dword [r14 + rcx*4 + 0xafb0]
shr rax, 0x18
xor r12d, dword [r14 + rax*4 + 0xa7b0]
movzx eax, r9b
xor r12d, dword [r14 + rax*4 + 0xb3b0]
mov rax, r9
xor r12d, dword [r15 + 0x10]
shr rax, 8
movzx edx, al
mov rax, r11
shr rax, 0x10
mov r13d, dword [r14 + rdx*4 + 0xafb0]
movzx ecx, al
mov rax, r10
xor r13d, dword [r14 + rcx*4 + 0xabb0]
shr rax, 0x18
lea rsi, [0x140000000]
xor r13d, dword [r14 + rax*4 + 0xa7b0]
movzx eax, bl
shr r8, 0x10
xor r13d, dword [r14 + rax*4 + 0xb3b0]
mov eax, ebx
add r15, 0x20
xor r13d, dword [r15 - 0xc]
shr rax, 8
movzx edx, al
mov rax, r9
shr r9, 0x18
mov edx, dword [r14 + rdx*4 + 0xafb0]
shr rax, 0x10
movzx ecx, al
mov rax, r11
xor edx, dword [r14 + rcx*4 + 0xabb0]
shr rax, 0x18
movzx ecx, r8b
xor edx, dword [r14 + rax*4 + 0xa7b0]
movzx eax, r10b
shr r10, 8
xor edx, dword [r14 + rax*4 + 0xb3b0]
mov r14d, dword [r14 + rcx*4 + 0xabb0]
movzx eax, r10b
xor r14d, dword [rsi + rax*4 + 0xafb0]
xor edx, dword [r15 - 8]
movzx eax, r11b
xor r14d, dword [rsi + r9*4 + 0xa7b0]
xor r14d, dword [rsi + rax*4 + 0xb3b0]
xor r14d, dword [r15 - 4]
sub ebp, 1
jne 0x1400029d0
mov rbp, qword [rsp + 0x48]
mov r11d, edx
mov eax, r12d
mov r10d, r13d
shr rax, 0x18
mov r8d, r12d
mov r9d, r14d
movzx edx, byte [rax + rsi + 0xb7b0]
mov eax, r13d
shr rax, 0x10
shl edx, 8
movzx ecx, al
movzx eax, byte [rcx + rsi + 0xb7b0]
xor edx, eax
mov rax, r11
shr rax, 8
shl edx, 8
movzx ecx, al
movzx eax, byte [rcx + rsi + 0xb7b0]
xor edx, eax
movzx eax, r14b
movzx eax, byte [rax + rsi + 0xb7b0]
shl edx, 8
xor edx, eax
xor edx, dword [r15]
mov byte [rbp + 3], dl
mov eax, edx
shr eax, 0x18
mov byte [rbp], al
mov eax, edx
shr eax, 0x10
mov byte [rbp + 1], al
mov eax, edx
shr eax, 8
mov byte [rbp + 2], al
mov rax, r11
shr rax, 0x10
movzx ecx, al
mov eax, r13d
movzx edx, byte [rcx + rsi + 0xb7b0]
shr rax, 0x18
movzx eax, byte [rax + rsi + 0xb7b0]
shl eax, 8
xor edx, eax
mov eax, r14d
shr rax, 8
shl edx, 8
movzx ecx, al
movzx eax, byte [rcx + rsi + 0xb7b0]
xor edx, eax
movzx eax, r12b
movzx eax, byte [rax + rsi + 0xb7b0]
shl edx, 8
xor edx, eax
xor edx, dword [r15 + 4]
mov eax, edx
mov byte [rbp + 7], dl
shr eax, 0x18
mov byte [rbp + 4], al
mov eax, edx
shr eax, 0x10
mov byte [rbp + 5], al
mov eax, edx
shr eax, 8
mov byte [rbp + 6], al
mov eax, r14d
shr rax, 0x10
movzx ecx, al
mov rax, r11
movzx edx, byte [rcx + rsi + 0xb7b0]
shr rax, 0x18
movzx eax, byte [rax + rsi + 0xb7b0]
shl eax, 8
xor edx, eax
mov eax, r12d
shr rax, 8
shl edx, 8
movzx ecx, al
movzx eax, byte [rcx + rsi + 0xb7b0]
xor edx, eax
movzx eax, r13b
shl edx, 8
movzx eax, byte [rax + rsi + 0xb7b0]
mov r14, qword [rsp + 8]
mov r13, qword [rsp + 0x10]
mov r12, qword [rsp + 0x18]
mov rbx, qword [rsp + 0x50]
xor edx, eax
xor edx, dword [r15 + 8]
shr r8, 0x10
shr r9, 0x18
mov byte [rbp + 0xb], dl
mov eax, edx
shr r10, 8
shr eax, 0x18
mov byte [rbp + 8], al
mov eax, edx
shr eax, 0x10
mov byte [rbp + 9], al
mov eax, edx
shr eax, 8
mov byte [rbp + 0xa], al
movzx eax, r8b
movzx edx, byte [rax + rsi + 0xb7b0]
movzx eax, byte [r9 + rsi + 0xb7b0]
shl eax, 8
xor edx, eax
movzx eax, r10b
movzx eax, byte [rax + rsi + 0xb7b0]
shl edx, 8
xor edx, eax
movzx eax, r11b
movzx eax, byte [rax + rsi + 0xb7b0]
mov rsi, qword [rsp + 0x20]
shl edx, 8
xor edx, eax
xor edx, dword [r15 + 0xc]
mov r15, qword [rsp]
mov eax, edx
mov byte [rbp + 0xf], dl
shr eax, 0x18
mov byte [rbp + 0xc], al
mov eax, edx
shr eax, 0x10
mov byte [rbp + 0xd], al
mov eax, edx
shr eax, 8
mov byte [rbp + 0xe], al
xor eax, eax
add rsp, 0x28
pop rdi
pop rbp
ret