Function at 0x140285930
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r13
push r15
sub rsp, 0x20
xor esi, esi
mov r15, r9
mov rbp, r8
mov rdi, rdx
mov rbx, rcx
test rdx, rdx
je 0x14028598c
mov r10, r8
mov rcx, r9
sub r10, r9
mov rdx, qword [rbx + 0x80]
cmp rdx, 0x40
jae 0x14028598c
movzx eax, byte [r10 + rcx]
inc rsi
xor al, byte [rdx + rbx + 0x40]
mov byte [rcx], al
inc rcx
inc qword [rbx + 0x80]
sub rdi, 1
jne 0x140285961
cmp rdi, 0x40
jb 0x140285d2c
mov qword [rsp + 0x50], r12
sub rbp, r15
mov r12, rdi
mov qword [rsp + 0x58], r14
shr r12, 6
lea r14, [r9 + 1]
imul rax, r12, 0xffffffffffffffc0
add r14, rsi
add rdi, rax
mov rax, r12
shl rax, 6
add rsi, rax
lea rdx, [rbx + 0x40]
mov rcx, rbx
call fcn.140285450
inc dword [rbx + 0x30]
movzx eax, byte [r14 + rbp - 1]
xor al, byte [rbx + 0x40]
mov byte [r14 - 1], al
movzx eax, byte [r14 + rbp]
xor al, byte [rbx + 0x41]
mov byte [r14], al
movzx eax, byte [r14 + rbp + 1]
xor al, byte [rbx + 0x42]
mov byte [r14 + 1], al
movzx eax, byte [r14 + rbp + 2]
xor al, byte [rbx + 0x43]
mov byte [r14 + 2], al
movzx eax, byte [r14 + rbp + 3]
xor al, byte [rbx + 0x44]
mov byte [r14 + 3], al
movzx eax, byte [r14 + rbp + 4]
xor al, byte [rbx + 0x45]
mov byte [r14 + 4], al
movzx eax, byte [r14 + rbp + 5]
xor al, byte [rbx + 0x46]
mov byte [r14 + 5], al
movzx eax, byte [r14 + rbp + 6]
xor al, byte [rbx + 0x47]
mov byte [r14 + 6], al
movzx eax, byte [r14 + rbp + 7]
xor al, byte [rbx + 0x48]
mov byte [r14 + 7], al
movzx eax, byte [r14 + rbp + 8]
xor al, byte [rbx + 0x49]
mov byte [r14 + 8], al
movzx eax, byte [r14 + rbp + 9]
xor al, byte [rbx + 0x4a]
mov byte [r14 + 9], al
movzx eax, byte [r14 + rbp + 0xa]
xor al, byte [rbx + 0x4b]
mov byte [r14 + 0xa], al
movzx eax, byte [r14 + rbp + 0xb]
xor al, byte [rbx + 0x4c]
mov byte [r14 + 0xb], al
movzx eax, byte [r14 + rbp + 0xc]
xor al, byte [rbx + 0x4d]
mov byte [r14 + 0xc], al
movzx eax, byte [r14 + rbp + 0xd]
xor al, byte [rbx + 0x4e]
mov byte [r14 + 0xd], al
movzx eax, byte [r14 + rbp + 0xe]
xor al, byte [rbx + 0x4f]
mov byte [r14 + 0xe], al
movzx eax, byte [r14 + rbp + 0xf]
xor al, byte [rbx + 0x50]
mov byte [r14 + 0xf], al
movzx eax, byte [r14 + rbp + 0x10]
xor al, byte [rbx + 0x51]
mov byte [r14 + 0x10], al
movzx eax, byte [r14 + rbp + 0x11]
xor al, byte [rbx + 0x52]
mov byte [r14 + 0x11], al
movzx eax, byte [r14 + rbp + 0x12]
xor al, byte [rbx + 0x53]
mov byte [r14 + 0x12], al
movzx eax, byte [r14 + rbp + 0x13]
xor al, byte [rbx + 0x54]
mov byte [r14 + 0x13], al
movzx eax, byte [r14 + rbp + 0x14]
xor al, byte [rbx + 0x55]
mov byte [r14 + 0x14], al
movzx eax, byte [r14 + rbp + 0x15]
xor al, byte [rbx + 0x56]
mov byte [r14 + 0x15], al
movzx eax, byte [r14 + rbp + 0x16]
xor al, byte [rbx + 0x57]
mov byte [r14 + 0x16], al
movzx eax, byte [r14 + rbp + 0x17]
xor al, byte [rbx + 0x58]
mov byte [r14 + 0x17], al
movzx eax, byte [r14 + rbp + 0x18]
xor al, byte [rbx + 0x59]
mov byte [r14 + 0x18], al
movzx eax, byte [r14 + rbp + 0x19]
xor al, byte [rbx + 0x5a]
mov byte [r14 + 0x19], al
movzx eax, byte [r14 + rbp + 0x1a]
xor al, byte [rbx + 0x5b]
mov byte [r14 + 0x1a], al
movzx eax, byte [r14 + rbp + 0x1b]
xor al, byte [rbx + 0x5c]
mov byte [r14 + 0x1b], al
movzx eax, byte [r14 + rbp + 0x1c]
xor al, byte [rbx + 0x5d]
mov byte [r14 + 0x1c], al
movzx eax, byte [r14 + rbp + 0x1d]
xor al, byte [rbx + 0x5e]
mov byte [r14 + 0x1d], al
movzx eax, byte [r14 + rbp + 0x1e]
xor al, byte [rbx + 0x5f]
mov byte [r14 + 0x1e], al
movzx eax, byte [r14 + rbp + 0x1f]
xor al, byte [rbx + 0x60]
mov byte [r14 + 0x1f], al
movzx eax, byte [r14 + rbp + 0x20]
xor al, byte [rbx + 0x61]
mov byte [r14 + 0x20], al
movzx eax, byte [r14 + rbp + 0x21]
xor al, byte [rbx + 0x62]
mov byte [r14 + 0x21], al
movzx eax, byte [r14 + rbp + 0x22]
xor al, byte [rbx + 0x63]
mov byte [r14 + 0x22], al
movzx eax, byte [r14 + rbp + 0x23]
xor al, byte [rbx + 0x64]
mov byte [r14 + 0x23], al
movzx eax, byte [r14 + rbp + 0x24]
xor al, byte [rbx + 0x65]
mov byte [r14 + 0x24], al
movzx eax, byte [r14 + rbp + 0x25]
xor al, byte [rbx + 0x66]
mov byte [r14 + 0x25], al
movzx eax, byte [r14 + rbp + 0x26]
xor al, byte [rbx + 0x67]
mov byte [r14 + 0x26], al
movzx eax, byte [r14 + rbp + 0x27]
xor al, byte [rbx + 0x68]
mov byte [r14 + 0x27], al
movzx eax, byte [r14 + rbp + 0x28]
xor al, byte [rbx + 0x69]
mov byte [r14 + 0x28], al
movzx eax, byte [r14 + rbp + 0x29]
xor al, byte [rbx + 0x6a]
mov byte [r14 + 0x29], al
movzx eax, byte [r14 + rbp + 0x2a]
xor al, byte [rbx + 0x6b]
mov byte [r14 + 0x2a], al
movzx eax, byte [r14 + rbp + 0x2b]
xor al, byte [rbx + 0x6c]
mov byte [r14 + 0x2b], al
movzx eax, byte [r14 + rbp + 0x2c]
xor al, byte [rbx + 0x6d]
mov byte [r14 + 0x2c], al
movzx eax, byte [r14 + rbp + 0x2d]
xor al, byte [rbx + 0x6e]
mov byte [r14 + 0x2d], al
movzx eax, byte [r14 + rbp + 0x2e]
xor al, byte [rbx + 0x6f]
mov byte [r14 + 0x2e], al
movzx eax, byte [r14 + rbp + 0x2f]
xor al, byte [rbx + 0x70]
mov byte [r14 + 0x2f], al
movzx eax, byte [r14 + rbp + 0x30]
xor al, byte [rbx + 0x71]
mov byte [r14 + 0x30], al
movzx eax, byte [r14 + rbp + 0x31]
xor al, byte [rbx + 0x72]
mov byte [r14 + 0x31], al
movzx eax, byte [r14 + rbp + 0x32]
xor al, byte [rbx + 0x73]
mov byte [r14 + 0x32], al
movzx eax, byte [r14 + rbp + 0x33]
xor al, byte [rbx + 0x74]
mov byte [r14 + 0x33], al
movzx eax, byte [r14 + rbp + 0x34]
lea r14, [r14 + 0x40]
xor al, byte [rbx + 0x75]
mov byte [r14 - 0xc], al
movzx eax, byte [r14 + rbp - 0xb]
xor al, byte [rbx + 0x76]
mov byte [r14 - 0xb], al
movzx eax, byte [r14 + rbp - 0xa]
xor al, byte [rbx + 0x77]
mov byte [r14 - 0xa], al
movzx eax, byte [r14 + rbp - 9]
xor al, byte [rbx + 0x78]
mov byte [r14 - 9], al
movzx eax, byte [r14 + rbp - 8]
xor al, byte [rbx + 0x79]
mov byte [r14 - 8], al
movzx eax, byte [r14 + rbp - 7]
xor al, byte [rbx + 0x7a]
mov byte [r14 - 7], al
movzx eax, byte [r14 + rbp - 6]
xor al, byte [rbx + 0x7b]
mov byte [r14 - 6], al
movzx eax, byte [r14 + rbp - 5]
xor al, byte [rbx + 0x7c]
mov byte [r14 - 5], al
movzx eax, byte [r14 + rbp - 4]
xor al, byte [rbx + 0x7d]
mov byte [r14 - 4], al
movzx eax, byte [r14 + rbp - 3]
xor al, byte [rbx + 0x7e]
mov byte [r14 - 3], al
movzx eax, byte [r14 + rbp - 2]
xor al, byte [rbx + 0x7f]
mov byte [r14 - 2], al
sub r12, 1
jne 0x1402859c2
mov r14, qword [rsp + 0x58]
mov r12, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x60]
test rdi, rdi
je 0x140285d5b
lea rdx, [rbx + 0x40]
mov rcx, rbx
call fcn.140285450
inc dword [rbx + 0x30]
lea rdx, [rsi + rbp]
lea rcx, [rsi + r15]
mov r9, rdi
lea r8, [rbx + 0x40]
call fcn.140264240
mov qword [rbx + 0x80], rdi
mov rbx, qword [rsp + 0x68]
xor eax, eax
add rsp, 0x20
pop r15
pop r13
pop rdi
pop rsi
pop rbp
ret