Function at 0x140087e80
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov rbx, qword [rcx + 0x10]
mov r10, rdx
mov edx, dword [rcx + 0x18]
sub edx, 2
je 0x14008815f
sub edx, 1
je 0x14008802a
cmp edx, 1
jne 0x140088244
xor r11d, r11d
lea rax, [0x140000000]
add rbx, 8
nop dword [rax + rax]
movzx ecx, byte [r10 + 0xc]
lea rbx, [rbx + 0x10]
movzx r9d, r11b
inc r11d
movzx edx, byte [r9 + rax + 0x1361a0]
xor rdx, rcx
movzx ecx, byte [r10 + 8]
movzx edx, byte [rdx + rax + 0x1361a0]
xor rdx, rcx
movzx ecx, byte [r10 + 4]
movzx r8d, byte [rdx + rax + 0x1360a0]
xor r8, rcx
movzx ecx, byte [r10]
movzx edx, byte [r8 + rax + 0x1360a0]
xor rdx, rcx
mov ecx, dword [rax + rdx*4 + 0x1350a0]
mov dword [rbx - 0x18], ecx
mov ecx, dword [r10 + 0xc]
shr ecx, 8
movzx edx, cl
movzx ecx, byte [r9 + rax + 0x1360a0]
xor rdx, rcx
mov ecx, dword [r10 + 8]
shr ecx, 8
movzx ecx, cl
movzx r8d, byte [rdx + rax + 0x1361a0]
xor r8, rcx
mov ecx, dword [r10 + 4]
shr ecx, 8
movzx ecx, cl
movzx edx, byte [r8 + rax + 0x1361a0]
xor rdx, rcx
mov ecx, dword [r10]
shr ecx, 8
movzx ecx, cl
movzx r8d, byte [rdx + rax + 0x1360a0]
xor r8, rcx
mov ecx, dword [rax + r8*4 + 0x1354a0]
mov dword [rbx - 0x14], ecx
movzx ecx, byte [r9 + rax + 0x1360a0]
movzx edx, byte [r10 + 0xe]
xor rdx, rcx
movzx ecx, byte [r10 + 0xa]
movzx r8d, byte [rdx + rax + 0x1360a0]
xor r8, rcx
movzx ecx, byte [r10 + 6]
movzx edx, byte [r8 + rax + 0x1360a0]
xor rdx, rcx
movzx ecx, byte [r10 + 2]
movzx r8d, byte [rdx + rax + 0x1361a0]
xor r8, rcx
mov ecx, dword [rax + r8*4 + 0x1358a0]
mov dword [rbx - 0x10], ecx
movzx ecx, byte [r9 + rax + 0x1361a0]
movzx edx, byte [r10 + 0xf]
xor rdx, rcx
movzx ecx, byte [r10 + 0xb]
movzx r8d, byte [rdx + rax + 0x1360a0]
xor r8, rcx
movzx ecx, byte [r10 + 7]
movzx edx, byte [r8 + rax + 0x1361a0]
xor rdx, rcx
movzx ecx, byte [r10 + 3]
movzx r8d, byte [rdx + rax + 0x1361a0]
xor r8, rcx
mov ecx, dword [rax + r8*4 + 0x135ca0]
mov dword [rbx - 0xc], ecx
cmp r11d, 0x100
jb 0x140087ec0
mov rbx, qword [rsp + 8]
ret
xor r11d, r11d
lea rax, [0x140000000]
add rbx, 8
nop dword [rax + rax]
movzx edx, byte [r10 + 8]
lea rbx, [rbx + 0x10]
movzx r9d, r11b
inc r11d
movzx ecx, byte [r9 + rax + 0x1361a0]
xor rdx, rcx
movzx ecx, byte [r10 + 4]
movzx r8d, byte [rdx + rax + 0x1360a0]
xor r8, rcx
movzx ecx, byte [r10]
movzx edx, byte [r8 + rax + 0x1360a0]
xor rdx, rcx
mov ecx, dword [rax + rdx*4 + 0x1350a0]
mov dword [rbx - 0x18], ecx
mov ecx, dword [r10 + 8]
shr ecx, 8
movzx edx, cl
movzx ecx, byte [r9 + rax + 0x1361a0]
xor rdx, rcx
mov ecx, dword [r10 + 4]
shr ecx, 8
movzx ecx, cl
movzx r8d, byte [rdx + rax + 0x1361a0]
xor r8, rcx
mov ecx, dword [r10]
shr ecx, 8
movzx ecx, cl
movzx edx, byte [r8 + rax + 0x1360a0]
xor rdx, rcx
mov ecx, dword [rax + rdx*4 + 0x1354a0]
mov dword [rbx - 0x14], ecx
movzx ecx, byte [r9 + rax + 0x1360a0]
movzx edx, byte [r10 + 0xa]
xor rdx, rcx
movzx ecx, byte [r10 + 6]
movzx r8d, byte [rdx + rax + 0x1360a0]
xor r8, rcx
movzx ecx, byte [r10 + 2]
movzx edx, byte [r8 + rax + 0x1361a0]
xor rdx, rcx
mov ecx, dword [rax + rdx*4 + 0x1358a0]
mov dword [rbx - 0x10], ecx
movzx ecx, byte [r9 + rax + 0x1360a0]
movzx edx, byte [r10 + 0xb]
xor rdx, rcx
movzx ecx, byte [r10 + 7]
movzx r8d, byte [rdx + rax + 0x1361a0]
xor r8, rcx
movzx ecx, byte [r10 + 3]
movzx edx, byte [r8 + rax + 0x1361a0]
xor rdx, rcx
mov ecx, dword [rax + rdx*4 + 0x135ca0]
mov dword [rbx - 0xc], ecx
cmp r11d, 0x100
jb 0x140088040
mov rbx, qword [rsp + 8]
ret
xor r11d, r11d
lea rax, [0x140000000]
add rbx, 8
nop dword [rax]
movzx edx, byte [r10 + 4]
lea rbx, [rbx + 0x10]
movzx r9d, r11b
inc r11d
movzx ecx, byte [r9 + rax + 0x1360a0]
xor rdx, rcx
movzx ecx, byte [r10]
movzx r8d, byte [rdx + rax + 0x1360a0]
xor r8, rcx
mov ecx, dword [rax + r8*4 + 0x1350a0]
mov dword [rbx - 0x18], ecx
mov ecx, dword [r10 + 4]
shr ecx, 8
movzx edx, cl
movzx ecx, byte [r9 + rax + 0x1361a0]
xor rdx, rcx
mov ecx, dword [r10]
shr ecx, 8
movzx ecx, cl
movzx r8d, byte [rdx + rax + 0x1360a0]
xor r8, rcx
mov ecx, dword [rax + r8*4 + 0x1354a0]
mov dword [rbx - 0x14], ecx
movzx ecx, byte [r9 + rax + 0x1360a0]
movzx edx, byte [r10 + 6]
xor rdx, rcx
movzx ecx, byte [r10 + 2]
movzx r8d, byte [rdx + rax + 0x1361a0]
xor r8, rcx
mov ecx, dword [rax + r8*4 + 0x1358a0]
mov dword [rbx - 0x10], ecx
movzx ecx, byte [r9 + rax + 0x1361a0]
movzx edx, byte [r10 + 7]
xor rdx, rcx
movzx ecx, byte [r10 + 3]
movzx r8d, byte [rdx + rax + 0x1361a0]
xor r8, rcx
mov ecx, dword [rax + r8*4 + 0x135ca0]
mov dword [rbx - 0xc], ecx
cmp r11d, 0x100
jb 0x140088170
mov rbx, qword [rsp + 8]
ret