Function at 0x1402855a0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], r9
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
cmp dword [rsp + 0xb8], 0
mov r11, r9
mov r12, rdx
mov r13, rcx
je 0x140285a65
mov rbx, qword [rsp + 0xb0]
mov r15, qword [rsp + 0xa8]
lea ebp, [r8 - 0x10]
movzx r10d, byte [rbx]
movzx eax, byte [rbx + 1]
movzx r11d, byte [rbx + 4]
movzx edi, byte [rbx + 8]
movzx esi, byte [rbx + 0xc]
shl eax, 0x10
shl r10d, 0x18
shl r11d, 0x18
shl edi, 0x18
or r10d, eax
movzx eax, byte [rbx + 2]
shl esi, 0x18
shl eax, 8
or r10d, eax
movzx eax, byte [rbx + 3]
or r10d, eax
movzx eax, byte [rbx + 5]
shl eax, 0x10
or r11d, eax
movzx eax, byte [rbx + 6]
shl eax, 8
or r11d, eax
movzx eax, byte [rbx + 7]
or r11d, eax
movzx eax, byte [rbx + 9]
shl eax, 0x10
or edi, eax
movzx eax, byte [rbx + 0xa]
shl eax, 8
or edi, eax
movzx eax, byte [rbx + 0xb]
or edi, eax
movzx eax, byte [rbx + 0xd]
shl eax, 0x10
or esi, eax
movzx eax, byte [rbx + 0xe]
shl eax, 8
or esi, eax
movzx eax, byte [rbx + 0xf]
or esi, eax
test ebp, ebp
js 0x140285812
lea r14d, [rbp + 0x10]
shr r14, 4
mov eax, r14d
neg eax
shl eax, 4
add ebp, eax
nop word [rax + rax]
movzx r9d, byte [r13]
movzx eax, byte [r13 + 1]
movzx edx, byte [r13 + 8]
movzx r8d, byte [r13 + 4]
movzx ecx, byte [r13 + 0xc]
shl eax, 0x10
shl r9d, 0x18
shl edx, 0x18
shl r8d, 0x18
or r9d, eax
movzx eax, byte [r13 + 2]
shl ecx, 0x18
shl eax, 8
add r13, 0x10
or r9d, eax
movzx eax, byte [r13 - 0xd]
or r9d, eax
movzx eax, byte [r13 - 0xb]
shl eax, 0x10
xor r9d, r10d
or r8d, eax
movzx eax, byte [r13 - 0xa]
mov dword [rsp + 0x38], r9d
shl eax, 8
or r8d, eax
movzx eax, byte [r13 - 9]
or r8d, eax
movzx eax, byte [r13 - 7]
shl eax, 0x10
xor r8d, r11d
or edx, eax
movzx eax, byte [r13 - 6]
mov dword [rsp + 0x3c], r8d
shl eax, 8
or edx, eax
movzx eax, byte [r13 - 5]
or edx, eax
movzx eax, byte [r13 - 3]
shl eax, 0x10
xor edx, edi
or ecx, eax
movzx eax, byte [r13 - 2]
mov dword [rsp + 0x40], edx
shl eax, 8
mov rdx, r15
or ecx, eax
movzx eax, byte [r13 - 1]
or ecx, eax
xor ecx, esi
mov dword [rsp + 0x44], ecx
lea rcx, [rsp + 0x38]
call fcn.140283740
mov r10d, dword [rsp + 0x38]
mov r11d, dword [rsp + 0x3c]
mov edi, dword [rsp + 0x40]
mov esi, dword [rsp + 0x44]
mov eax, r10d
shr eax, 0x18
mov byte [r12], al
mov eax, r10d
shr eax, 0x10
mov byte [r12 + 1], al
mov eax, r10d
shr eax, 8
mov byte [r12 + 2], al
movzx eax, r10b
mov byte [r12 + 3], al
mov eax, r11d
shr eax, 0x18
mov byte [r12 + 4], al
mov eax, r11d
shr eax, 0x10
mov byte [r12 + 5], al
mov eax, r11d
shr eax, 8
mov byte [r12 + 6], al
movzx eax, r11b
mov byte [r12 + 7], al
mov eax, edi
shr eax, 0x18
mov byte [r12 + 8], al
mov eax, edi
add r12, 0x10
shr eax, 0x10
mov byte [r12 - 7], al
mov eax, edi
shr eax, 8
mov byte [r12 - 6], al
movzx eax, dil
mov byte [r12 - 5], al
mov eax, esi
shr eax, 0x18
mov byte [r12 - 4], al
mov eax, esi
shr eax, 0x10
mov byte [r12 - 3], al
mov eax, esi
shr eax, 8
sub r14, 1
mov byte [r12 - 2], al
movzx eax, sil
mov byte [r12 - 1], al
jne 0x140285690
cmp ebp, 0xfffffff0
je 0x1402859eb
xor edx, edx
lea ecx, [rbp + 0x10]
movsxd rax, ecx
mov r8d, edx
mov r9d, edx
add r13, rax
dec ecx
mov ebp, edx
cmp ecx, 0xf
ja case.default.0x14028584d
movsxd rax, ecx
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x285f44]
add rax, rcx
jmp rax
movzx edx, byte [r13 - 1]
dec r13
movzx eax, byte [r13 - 1]
dec r13
shl eax, 8
or edx, eax
movzx eax, byte [r13 - 1]
dec r13
shl eax, 0x10
or edx, eax
movzx eax, byte [r13 - 1]
dec r13
shl eax, 0x18
or edx, eax
movzx r8d, byte [r13 - 1]
dec r13
movzx eax, byte [r13 - 1]
dec r13
shl eax, 8
or r8d, eax
movzx eax, byte [r13 - 1]
dec r13
shl eax, 0x10
or r8d, eax
movzx eax, byte [r13 - 1]
dec r13
shl eax, 0x18
or r8d, eax
movzx r9d, byte [r13 - 1]
dec r13
movzx eax, byte [r13 - 1]
dec r13
shl eax, 8
or r9d, eax
movzx eax, byte [r13 - 1]
dec r13
shl eax, 0x10
or r9d, eax
movzx eax, byte [r13 - 1]
dec r13
shl eax, 0x18
or r9d, eax
movzx ebp, byte [r13 - 1]
dec r13
movzx eax, byte [r13 - 1]
dec r13
shl eax, 8
or ebp, eax
movzx eax, byte [r13 - 1]
dec r13
shl eax, 0x10
or ebp, eax
movzx eax, byte [r13 - 1]
shl eax, 0x18
or ebp, eax
xor edx, esi
xor ebp, r10d
xor r9d, r11d
xor r8d, edi
mov dword [rsp + 0x44], edx
lea rcx, [rsp + 0x38]
mov rdx, r15
mov dword [rsp + 0x38], ebp
mov dword [rsp + 0x3c], r9d
mov dword [rsp + 0x40], r8d
call fcn.140283740
mov r10d, dword [rsp + 0x38]
mov r11d, dword [rsp + 0x3c]
mov edi, dword [rsp + 0x40]
mov esi, dword [rsp + 0x44]
mov eax, r10d
shr eax, 0x18
mov byte [r12], al
mov eax, r10d
shr eax, 0x10
mov byte [r12 + 1], al
mov eax, r10d
shr eax, 8
mov byte [r12 + 2], al
movzx eax, r10b
mov byte [r12 + 3], al
mov eax, r11d
shr eax, 0x18
mov byte [r12 + 4], al
mov eax, r11d
shr eax, 0x10
mov byte [r12 + 5], al
mov eax, r11d
shr eax, 8
mov byte [r12 + 6], al
movzx eax, r11b
mov byte [r12 + 7], al
mov eax, edi
shr eax, 0x18
mov byte [r12 + 8], al
mov eax, edi
shr eax, 0x10
mov byte [r12 + 9], al
mov eax, edi
shr eax, 8
mov byte [r12 + 0xa], al
movzx eax, dil
mov byte [r12 + 0xb], al
mov eax, esi
shr eax, 0x18
mov byte [r12 + 0xc], al
mov eax, esi
shr eax, 0x10
mov byte [r12 + 0xd], al
mov eax, esi
shr eax, 8
mov byte [r12 + 0xe], al
movzx eax, sil
mov byte [r12 + 0xf], al
mov eax, r10d
shr eax, 0x18
mov byte [rbx], al
mov eax, r10d
shr eax, 0x10
mov byte [rbx + 1], al
mov eax, r10d
shr eax, 8
mov byte [rbx + 2], al
mov byte [rbx + 3], r10b
mov eax, r11d
shr eax, 0x18
mov byte [rbx + 4], al
mov eax, r11d
shr eax, 0x10
mov byte [rbx + 5], al
mov eax, r11d
shr eax, 8
mov byte [rbx + 6], al
mov byte [rbx + 7], r11b
mov eax, edi
shr eax, 0x18
mov byte [rbx + 8], al
mov eax, edi
shr eax, 0x10
mov byte [rbx + 9], al
mov eax, edi
shr eax, 8
mov byte [rbx + 0xa], al
mov byte [rbx + 0xb], dil
mov eax, esi
shr eax, 0x18
mov byte [rbx + 0xc], al
mov eax, esi
shr eax, 0x10
mov byte [rbx + 0xd], al
mov eax, esi
shr eax, 8
mov byte [rbx + 0xe], al
mov byte [rbx + 0xf], sil
jmp 0x140285f2c
mov r14, qword [rsp + 0xb0]
lea ebp, [r8 - 0x10]
movzx r15d, byte [r14]
movzx eax, byte [r14 + 1]
movzx ebx, byte [r14 + 4]
movzx edi, byte [r14 + 8]
movzx esi, byte [r14 + 0xc]
shl eax, 0x10
shl r15d, 0x18
shl ebx, 0x18
shl edi, 0x18
or r15d, eax
movzx eax, byte [r14 + 2]
shl esi, 0x18
shl eax, 8
mov qword [rsp + 0x30], r14
or r15d, eax
movzx eax, byte [r14 + 3]
or r15d, eax
movzx eax, byte [r14 + 5]
shl eax, 0x10
or ebx, eax
movzx eax, byte [r14 + 6]
shl eax, 8
or ebx, eax
movzx eax, byte [r14 + 7]
or ebx, eax
movzx eax, byte [r14 + 9]
shl eax, 0x10
mov dword [rsp + 0xb8], ebx
or edi, eax
movzx eax, byte [r14 + 0xa]
shl eax, 8
or edi, eax
movzx eax, byte [r14 + 0xb]
or edi, eax
movzx eax, byte [r14 + 0xd]
shl eax, 0x10
mov dword [rsp + 0xa0], edi
or esi, eax
movzx eax, byte [r14 + 0xe]
shl eax, 8
or esi, eax
movzx eax, byte [r14 + 0xf]
or esi, eax
mov dword [rsp + 0x20], esi
test ebp, ebp
js 0x140285cde
lea ecx, [rbp + 0x10]
mov r14d, ebx
shr rcx, 4
mov eax, ecx
mov qword [rsp + 0x28], rcx
neg eax
shl eax, 4
add ebp, eax
mov dword [rsp + 0x24], ebp
nop dword [rax + rax]
movzx ebp, byte [r13]
movzx eax, byte [r13 + 1]
movzx esi, byte [r13 + 4]
movzx edi, byte [r13 + 8]
movzx ebx, byte [r13 + 0xc]
shl eax, 0x10
shl ebp, 0x18
shl esi, 0x18
shl edi, 0x18
or ebp, eax
movzx eax, byte [r13 + 2]
shl ebx, 0x18
shl eax, 8
lea rcx, [rsp + 0x38]
mov rdx, r11
or ebp, eax
movzx eax, byte [r13 + 3]
add r13, 0x10
or ebp, eax
movzx eax, byte [r13 - 0xb]
shl eax, 0x10
mov dword [rsp + 0x38], ebp
or esi, eax
movzx eax, byte [r13 - 0xa]
shl eax, 8
or esi, eax
movzx eax, byte [r13 - 9]
or esi, eax
movzx eax, byte [r13 - 7]
shl eax, 0x10
mov dword [rsp + 0x3c], esi
or edi, eax
movzx eax, byte [r13 - 6]
shl eax, 8
or edi, eax
movzx eax, byte [r13 - 5]
or edi, eax
movzx eax, byte [r13 - 3]
shl eax, 0x10
mov dword [rsp + 0x40], edi
or ebx, eax
movzx eax, byte [r13 - 2]
shl eax, 8
or ebx, eax
movzx eax, byte [r13 - 1]
or ebx, eax
mov dword [rsp + 0x44], ebx
call fcn.140284210
xor r15d, dword [rsp + 0x38]
xor r14d, dword [rsp + 0x3c]
mov ecx, dword [rsp + 0xa0]
mov edx, dword [rsp + 0x20]
xor ecx, dword [rsp + 0x40]
xor edx, dword [rsp + 0x44]
mov eax, r15d
shr eax, 0x18
mov byte [r12], al
mov eax, r15d
shr eax, 0x10
mov byte [r12 + 1], al
mov eax, r15d
shr eax, 8
mov byte [r12 + 2], al
mov byte [r12 + 3], r15b
mov eax, r14d
shr eax, 0x18
mov byte [r12 + 4], al
mov eax, r14d
shr eax, 0x10
mov byte [r12 + 5], al
mov eax, r14d
shr eax, 8
mov byte [r12 + 6], al
mov byte [r12 + 7], r14b
mov eax, ecx
shr eax, 0x18
mov byte [r12 + 8], al
mov eax, ecx
shr eax, 0x10
mov byte [r12 + 9], al
mov eax, ecx
mov r11, qword [rsp + 0xa8]
shr eax, 8
add r12, 0x10
mov byte [r12 - 6], al
mov byte [r12 - 5], cl
mov eax, edx
shr eax, 0x18
mov r14d, esi
mov r15d, ebp
mov byte [r12 - 4], al
mov eax, edx
mov dword [rsp + 0xa0], edi
shr eax, 0x10
mov esi, ebx
mov dword [rsp + 0x20], ebx
mov byte [r12 - 3], al
mov eax, edx
shr eax, 8
sub qword [rsp + 0x28], 1
mov byte [r12 - 2], al
mov byte [r12 - 1], dl
jne 0x140285b40
mov ebp, dword [rsp + 0x24]
mov dword [rsp + 0xb8], r14d
mov r14, qword [rsp + 0x30]
mov ebx, dword [rsp + 0xb8]
cmp ebp, 0xfffffff0
je 0x140285eae
movzx edx, byte [r13]
movzx eax, byte [r13 + 1]
movzx r8d, byte [r13 + 4]
movzx r9d, byte [r13 + 8]
movzx ecx, byte [r13 + 0xe]
movzx r10d, byte [r13 + 0xc]
shl eax, 0x10
shl edx, 0x18
shl r8d, 0x18
or edx, eax
movzx eax, byte [r13 + 2]
shl r9d, 0x18
shl eax, 8
shl r10d, 0x18
shl ecx, 8
or edx, eax
movzx eax, byte [r13 + 3]
or edx, eax
movzx eax, byte [r13 + 5]
shl eax, 0x10
mov dword [rsp + 0xb8], edx
mov dword [rsp + 0x38], edx
or r8d, eax
movzx eax, byte [r13 + 6]
mov rdx, r11
shl eax, 8
or r8d, eax
movzx eax, byte [r13 + 7]
or r8d, eax
movzx eax, byte [r13 + 9]
shl eax, 0x10
mov dword [rsp + 0xa0], r8d
mov dword [rsp + 0x3c], r8d
or r9d, eax
movzx eax, byte [r13 + 0xa]
shl eax, 8
or r9d, eax
movzx eax, byte [r13 + 0xb]
or r9d, eax
movzx eax, byte [r13 + 0xd]
shl eax, 0x10
mov dword [rsp + 0x24], r9d
mov dword [rsp + 0x40], r9d
or r10d, eax
movzx eax, byte [r13 + 0xf]
or ecx, eax
or r10d, ecx
lea rcx, [rsp + 0x38]
mov dword [rsp + 0x20], r10d
mov dword [rsp + 0x44], r10d
call fcn.140284210
xor r15d, dword [rsp + 0x38]
xor ebx, dword [rsp + 0x3c]
xor edi, dword [rsp + 0x40]
xor esi, dword [rsp + 0x44]
lea ecx, [rbp + 0x10]
movsxd rax, ecx
add r12, rax
dec ecx
cmp ecx, 0xf
ja case.default.0x140285df0
movsxd rax, ecx
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x285f84]
add rax, rcx
jmp rax
dec r12
mov byte [r12], sil
dec r12
mov eax, esi
shr eax, 8
mov byte [r12], al
dec r12
mov eax, esi
shr eax, 0x10
mov byte [r12], al
dec r12
shr esi, 0x18
mov byte [r12], sil
dec r12
mov byte [r12], dil
dec r12
mov eax, edi
shr eax, 8
mov byte [r12], al
dec r12
mov eax, edi
shr eax, 0x10
mov byte [r12], al
dec r12
shr edi, 0x18
mov byte [r12], dil
dec r12
mov byte [r12], bl
dec r12
mov eax, ebx
shr eax, 8
mov byte [r12], al
dec r12
mov eax, ebx
shr eax, 0x10
mov byte [r12], al
dec r12
shr ebx, 0x18
mov byte [r12], bl
dec r12
mov byte [r12], r15b
dec r12
mov eax, r15d
shr eax, 8
mov byte [r12], al
dec r12
mov eax, r15d
shr eax, 0x10
mov byte [r12], al
shr r15d, 0x18
mov byte [r12 - 1], r15b
mov r15d, dword [rsp + 0xb8]
mov ebx, dword [rsp + 0xa0]
mov edi, dword [rsp + 0x24]
mov esi, dword [rsp + 0x20]
mov eax, r15d
shr eax, 0x18
mov byte [r14], al
mov eax, r15d
shr eax, 0x10
mov byte [r14 + 1], al
mov eax, r15d
shr eax, 8
mov byte [r14 + 2], al
mov byte [r14 + 3], r15b
mov eax, ebx
shr eax, 0x18
mov byte [r14 + 4], al
mov eax, ebx
shr eax, 0x10
mov byte [r14 + 5], al
mov eax, ebx
shr eax, 8
mov byte [r14 + 6], al
mov byte [r14 + 7], bl
mov eax, edi
shr eax, 0x18
mov byte [r14 + 8], al
mov eax, edi
shr eax, 0x10
mov byte [r14 + 9], al
mov eax, edi
shr eax, 8
mov byte [r14 + 0xa], al
mov byte [r14 + 0xb], dil
mov eax, esi
shr eax, 0x18
mov byte [r14 + 0xc], al
mov eax, esi
shr eax, 0x10
mov byte [r14 + 0xd], al
mov eax, esi
shr eax, 8
mov byte [r14 + 0xe], al
mov byte [r14 + 0xf], sil
mov rbx, qword [rsp + 0x90]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret