Function at 0x140285920
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 0x14028597c
mov r10, r8
mov rcx, r9
sub r10, r9
mov rdx, qword [rbx + 0x80]
cmp rdx, 0x40
jae 0x14028597c
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 0x140285951
cmp rdi, 0x40
jb 0x140285d1c
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.140285440
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 0x1402859b2
mov r14, qword [rsp + 0x58]
mov r12, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x60]
test rdi, rdi
je 0x140285d4b
lea rdx, [rbx + 0x40]
mov rcx, rbx
call fcn.140285440
inc dword [rbx + 0x30]
lea rdx, [rsi + rbp]
lea rcx, [rsi + r15]
mov r9, rdi
lea r8, [rbx + 0x40]
call fcn.140264230
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