Function at 0x140020550
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
mov rax, qword [0x140065ec0]
mov qword [rsp + 0x48], rax
cmp dword [r9], 0
mov rbx, r9
mov rbp, r8
mov rdi, rcx
je 0x140020586
mov eax, 0xfffffffb
jmp 0x1400208a9
mov r8d, dword [r9 + 4]
cmp r8d, 2
je 0x1400205a1
cmp dword [r9 + 8], 0
jne 0x1400205a1
mov eax, 0xfffffffa
jmp 0x1400208a9
test rcx, rcx
je 0x1400208a7
test edx, edx
jle 0x1400208a7
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
test r8d, r8d
mov esi, eax
mov dword [rsp + 0x20], eax
je 0x14002087b
dec r8d
je 0x1400207f0
dec r8d
je 0x1400205e4
mov eax, 0xffffffff
jmp 0x1400208a9
test esi, esi
mov eax, dword [r9 + 0xc]
mov r12d, esi
mov dword [rsp + 0x28], eax
mov eax, dword [r9 + 0x10]
mov dword [rsp + 0x2c], eax
mov eax, dword [r9 + 0x14]
mov dword [rsp + 0x30], eax
mov eax, dword [r9 + 0x18]
mov dword [rsp + 0x34], eax
jle 0x1400208a0
mov r14b, byte [rsp + 0x37]
mov r15b, byte [rsp + 0x36]
xor r13d, r13d
mov eax, dword [rsp + 0x28]
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x38]
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x2c]
mov r8, rbx
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x44], eax
call fcn.140020bd0
mov r8b, byte [rsp + 0x2a]
mov dl, byte [rsp + 0x2b]
mov r10b, byte [rsp + 0x29]
mov al, byte [rsp + 0x28]
add al, al
mov cl, r10b
shr cl, 7
or cl, al
mov al, r10b
mov byte [rsp + 0x28], cl
add al, al
mov cl, r8b
shr cl, 7
or cl, al
mov al, r8b
mov r8b, byte [rsp + 0x2c]
mov byte [rsp + 0x29], cl
add al, al
mov cl, dl
shr cl, 7
or cl, al
mov al, dl
mov dl, byte [rsp + 0x2d]
mov byte [rsp + 0x2a], cl
add al, al
mov cl, r8b
shr cl, 7
or cl, al
mov al, r8b
mov r8b, byte [rsp + 0x2e]
mov byte [rsp + 0x2b], cl
add al, al
mov cl, dl
shr cl, 7
or cl, al
mov al, dl
mov dl, byte [rsp + 0x2f]
mov byte [rsp + 0x2c], cl
add al, al
mov cl, r8b
shr cl, 7
or cl, al
mov al, r8b
mov r8b, byte [rsp + 0x30]
mov byte [rsp + 0x2d], cl
add al, al
mov cl, dl
shr cl, 7
or cl, al
mov al, dl
mov dl, byte [rsp + 0x31]
mov byte [rsp + 0x2e], cl
add al, al
mov cl, r8b
shr cl, 7
or cl, al
mov al, r8b
mov r8b, byte [rsp + 0x32]
mov byte [rsp + 0x2f], cl
add al, al
mov cl, dl
shr cl, 7
or cl, al
mov al, dl
mov byte [rsp + 0x30], cl
mov cl, r8b
add al, al
shr cl, 7
or cl, al
mov dl, byte [rsp + 0x33]
mov byte [rsp + 0x31], cl
mov al, r8b
mov r8b, byte [rsp + 0x34]
add al, al
mov cl, dl
shr cl, 7
mov r10b, r15b
mov r9d, r13d
or cl, al
mov al, dl
mov dl, byte [rsp + 0x35]
add al, al
mov byte [rsp + 0x32], cl
mov r11b, dl
mov cl, r8b
shr r11b, 7
and r9d, 7
shr cl, 7
shr r10b, 7
or cl, al
mov al, r8b
add al, al
mov byte [rsp + 0x33], cl
mov cl, r14b
or r11b, al
mov al, dl
shr cl, 7
add al, al
mov byte [rsp + 0x34], r11b
or r10b, al
mov al, r15b
mov r15b, cl
add al, al
mov ecx, 7
mov byte [rsp + 0x35], r10b
or r15b, al
sub cl, r9b
mov eax, r13d
cdq
inc r13d
mov byte [rsp + 0x36], r15b
and edx, 7
add eax, edx
sar eax, 3
movsxd r8, eax
mov al, r14b
mov dl, byte [r8 + rdi]
add al, al
shr dl, cl
mov cl, r9b
and dl, 1
mov r14b, dl
or r14b, al
mov al, byte [rsp + 0x38]
and al, 0x80
mov byte [rsp + 0x37], r14b
shr al, cl
xor byte [r8 + rbp], al
cmp r13d, 0x80
jl 0x14002061c
dec r12d
test r12d, r12d
jg 0x140020619
jmp 0x1400208a0
test esi, esi
mov r13d, dword [r9 + 0xc]
mov r14d, dword [r9 + 0x10]
mov r15d, dword [r9 + 0x14]
mov eax, dword [r9 + 0x18]
mov r12d, esi
jle 0x1400208a0
mov esi, eax
lea rdx, [rsp + 0x38]
mov r8, rbx
mov rcx, rdi
call fcn.140021030
mov r11d, dword [rsp + 0x38]
mov edx, dword [rsp + 0x3c]
mov ecx, dword [rsp + 0x40]
mov eax, dword [rsp + 0x44]
xor r11d, r13d
mov r13d, dword [rdi]
xor edx, r14d
mov dword [rbp], r11d
mov r14d, dword [rdi + 4]
xor ecx, r15d
xor eax, esi
mov dword [rbp + 4], edx
mov r15d, dword [rdi + 8]
mov dword [rbp + 8], ecx
mov esi, dword [rdi + 0xc]
dec r12d
mov dword [rbp + 0xc], eax
add rbp, 0x10
add rdi, 0x10
test r12d, r12d
mov dword [rsp + 0x38], r11d
mov dword [rsp + 0x3c], edx
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x44], eax
jg 0x14002080d
mov esi, dword [rsp + 0x20]
jmp 0x1400208a0
test eax, eax
mov r12d, eax
jle 0x1400208a0
mov r8, rbx
mov rdx, rbp
mov rcx, rdi
call fcn.140021030
dec r12d
add rdi, 0x10
add rbp, 0x10
test r12d, r12d
jg 0x140020882
shl esi, 7
mov eax, esi
jmp 0x1400208a9
xor eax, eax
mov rcx, qword [rsp + 0x48]
call fcn.1400274a0
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret