Function at 0x140005aec
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x20], rsi
mov qword [rax + 0x18], r8
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
cmp byte [rcx + 8], 0
mov r12, r8
mov rbp, rcx
je 0x140005ef9
movzx ebx, byte [rdx]
lea r15, [0x140000000]
movsxd r14, dword [rbp + 0x3d4]
mov r9d, 1
add rdx, r9
shl ebx, 0x18
movzx eax, byte [rdx]
add rdx, r9
shl eax, 0x10
or ebx, eax
movzx eax, byte [rdx]
add rdx, r9
shl eax, 8
or ebx, eax
movzx eax, byte [rdx]
add rdx, r9
or ebx, eax
xor ebx, dword [rcx + 0xc]
movzx edi, byte [rdx]
add rdx, r9
shl edi, 0x18
movzx eax, byte [rdx]
add rdx, r9
shl eax, 0x10
or edi, eax
movzx eax, byte [rdx]
add rdx, r9
shl eax, 8
or edi, eax
movzx eax, byte [rdx]
add rdx, r9
or edi, eax
xor edi, dword [rcx + 0x10]
movzx esi, byte [rdx]
add rdx, r9
shl esi, 0x18
movzx eax, byte [rdx]
add rdx, r9
shl eax, 0x10
or esi, eax
movzx eax, byte [rdx]
add rdx, r9
shl eax, 8
or esi, eax
movzx eax, byte [rdx]
add rdx, r9
or esi, eax
xor esi, dword [rcx + 0x14]
movzx ecx, byte [rdx]
add rdx, r9
shl ecx, 0x18
movzx eax, byte [rdx]
movzx r8d, byte [rdx + r9]
shl r8d, 8
shl eax, 0x10
or ecx, eax
movzx eax, byte [rdx + r9 + 1]
or r8d, eax
or r8d, ecx
xor r8d, dword [rbp + 0x18]
cmp r14, r9
jle 0x140005d2a
lea r15, [rbp + 0x34]
lea r13, [r14 - 1]
lea r12, [0x140000000]
movsxd r10, r8d
movsxd r8, ebx
movsxd r9, edi
mov rax, r8
sar rax, 0x18
movzx edx, al
mov rax, r9
sar rax, 0x10
movzx ecx, al
movsxd r11, esi
mov ebx, dword [r12 + rdx*4 + 0xb2400]
mov rax, r11
sar rax, 8
xor ebx, dword [r12 + rcx*4 + 0xb2800]
movzx ecx, al
movzx eax, r10b
xor ebx, dword [r12 + rcx*4 + 0xb2c00]
xor ebx, dword [r12 + rax*4 + 0xb3000]
mov rax, r9
xor ebx, dword [r15 - 8]
sar rax, 0x18
movzx edx, al
mov rax, r11
sar rax, 0x10
movzx ecx, al
mov rax, r10
sar rax, 8
mov edi, dword [r12 + rdx*4 + 0xb2400]
xor edi, dword [r12 + rcx*4 + 0xb2800]
movzx ecx, al
movzx eax, r8b
xor edi, dword [r12 + rcx*4 + 0xb2c00]
xor edi, dword [r12 + rax*4 + 0xb3000]
mov rax, r8
xor edi, dword [r15 - 4]
sar rax, 8
movzx edx, al
mov rax, r11
sar rax, 0x18
movzx ecx, al
mov rax, r10
sar r8, 0x10
mov esi, dword [r12 + rdx*4 + 0xb2c00]
sar rax, 0x10
xor esi, dword [r12 + rcx*4 + 0xb2400]
movzx ecx, al
movzx eax, r9b
sar r9, 8
sar r10, 0x18
xor esi, dword [r12 + rcx*4 + 0xb2800]
xor esi, dword [r12 + rax*4 + 0xb3000]
xor esi, dword [r15]
lea r15, [r15 + 0x20]
movzx ecx, r8b
movzx eax, r9b
mov r8d, dword [r12 + rcx*4 + 0xb2800]
xor r8d, dword [r12 + rax*4 + 0xb2c00]
movzx eax, r10b
xor r8d, dword [r12 + rax*4 + 0xb2400]
movzx eax, r11b
xor r8d, dword [r12 + rax*4 + 0xb3000]
xor r8d, dword [r15 - 0x1c]
sub r13, 1
jne 0x140005bf0
mov r12, qword [rsp + 0x80]
lea r15, [0x140000000]
shl r14, 5
movsxd r11, ebx
movsxd r10, edi
mov rax, r11
sar rax, 0x18
mov edx, dword [r14 + rbp + 0xc]
movzx ecx, al
mov eax, edx
sar eax, 0x18
movsxd r9, esi
movsxd r8, r8d
xor al, byte [rcx + r15 + 0xb2200]
mov byte [r12], al
mov rax, r10
sar rax, 0x10
movzx ecx, al
mov eax, edx
sar eax, 0x10
xor al, byte [rcx + r15 + 0xb2200]
mov byte [r12 + 1], al
mov rax, r9
sar rax, 8
movzx ecx, al
mov eax, edx
sar eax, 8
xor al, byte [rcx + r15 + 0xb2200]
mov byte [r12 + 2], al
movzx eax, r8b
xor dl, byte [rax + r15 + 0xb2200]
mov rax, r10
sar rax, 0x18
movzx ecx, al
mov byte [r12 + 3], dl
mov edx, dword [r14 + rbp + 0x10]
mov eax, edx
sar eax, 0x18
xor al, byte [rcx + r15 + 0xb2200]
mov byte [r12 + 4], al
mov rax, r9
sar rax, 0x10
movzx ecx, al
mov eax, edx
sar eax, 0x10
xor al, byte [rcx + r15 + 0xb2200]
mov byte [r12 + 5], al
mov rax, r8
sar rax, 8
movzx ecx, al
mov eax, edx
sar eax, 8
xor al, byte [rcx + r15 + 0xb2200]
mov byte [r12 + 6], al
movzx eax, r11b
xor dl, byte [rax + r15 + 0xb2200]
mov rax, r9
sar rax, 0x18
movzx ecx, al
mov byte [r12 + 7], dl
mov edx, dword [r14 + rbp + 0x14]
mov eax, edx
sar eax, 0x18
xor al, byte [rcx + r15 + 0xb2200]
mov byte [r12 + 8], al
mov rax, r8
sar rax, 0x10
movzx ecx, al
mov eax, edx
sar eax, 0x10
xor al, byte [rcx + r15 + 0xb2200]
mov byte [r12 + 9], al
mov rax, r11
sar rax, 8
movzx ecx, al
mov eax, edx
sar eax, 8
xor al, byte [rcx + r15 + 0xb2200]
mov byte [r12 + 0xa], al
movzx eax, r10b
xor dl, byte [rax + r15 + 0xb2200]
mov byte [r12 + 0xb], dl
mov edx, dword [r14 + rbp + 0x18]
mov eax, edx
sar r11, 0x10
sar eax, 0x18
sar r8, 0x18
movzx ecx, r8b
sar r10, 8
xor al, byte [rcx + r15 + 0xb2200]
mov byte [r12 + 0xc], al
mov eax, edx
sar eax, 0x10
movzx ecx, r11b
lea r11, [rsp + 0x40]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x48]
xor al, byte [rcx + r15 + 0xb2200]
mov byte [r12 + 0xd], al
mov eax, edx
sar eax, 8
movzx ecx, r10b
xor al, byte [rcx + r15 + 0xb2200]
mov byte [r12 + 0xe], al
movzx eax, r9b
xor dl, byte [rax + r15 + 0xb2200]
mov byte [r12 + 0xf], dl
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov rdx, qword [0x1400d3878]
lea rcx, [rsp + 0x20]
call fcn.140016eb4
lea rdx, [0x1400cafe8]
lea rcx, [rsp + 0x20]
call fcn.14001a0f8
int3