Function at 0x140278190
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
push rbx
push rbp
push rsi
push rdi
push r12
push r13
sub rsp, 0x28
xor esi, esi
mov rbp, r9
mov r13, r8
mov rdi, rdx
mov rbx, rcx
test rdx, rdx
je 0x1402781eb
mov r10, r8
mov rcx, r9
sub r10, r9
nop dword [rax]
mov rdx, qword [rbx + 0x80]
cmp rdx, 0x40
jae 0x1402781eb
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 0x1402781c0
cmp rdi, 0x40
jb 0x14027859a
mov qword [rsp + 0x60], r14
mov rax, r13
sub rax, r9
mov qword [rsp + 0x20], r15
mov qword [rsp + 0x68], rax
lea r14, [r9 + 1]
mov rbp, qword [rsp + 0x68]
mov r15, rdi
shr r15, 6
add r14, rsi
imul rax, r15, 0xffffffffffffffc0
add rdi, rax
mov rax, r15
shl rax, 6
add rsi, rax
nop
lea rdx, [rbx + 0x40]
mov rcx, rbx
call fcn.140277cb0
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 r15, 1
jne 0x140278230
mov r15, qword [rsp + 0x20]
mov r14, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x78]
test rdi, rdi
je 0x1402785c9
lea rdx, [rbx + 0x40]
mov rcx, rbx
call fcn.140277cb0
inc dword [rbx + 0x30]
lea rdx, [rsi + r13]
lea rcx, [rsi + rbp]
mov r9, rdi
lea r8, [rbx + 0x40]
call fcn.140256910
mov qword [rbx + 0x80], rdi
xor eax, eax
add rsp, 0x28
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret