Function at 0x140091e60
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 0x140091ebc
mov r10, r8
mov rcx, r9
sub r10, r9
mov rdx, qword [rbx + 0x80]
cmp rdx, 0x40
jae 0x140091ebc
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 0x140091e91
cmp rdi, 0x40
jb 0x14009225c
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.140091940
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 0x140091ef2
mov r14, qword [rsp + 0x58]
mov r12, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x60]
test rdi, rdi
je 0x14009228b
lea rdx, [rbx + 0x40]
mov rcx, rbx
call fcn.140091940
inc dword [rbx + 0x30]
lea rdx, [rsi + rbp]
lea rcx, [rsi + r15]
mov r9, rdi
lea r8, [rbx + 0x40]
call fcn.14006dc40
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