Function at 0x180079310
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
cmp dword [rsp + 0x90], 0
mov rbp, r9
mov r12, qword [rsp + 0x88]
mov rdi, r8
mov rsi, rdx
mov r14, rcx
mov ebx, dword [r12]
je 0x180079450
mov r13, qword [rsp + 0x80]
test ebx, ebx
je 0x180079386
nop
test rdi, rdi
je 0x180079386
movzx eax, byte [r14]
dec rdi
mov ecx, ebx
inc r14
xor byte [rcx + r13], al
movzx eax, byte [rcx + r13]
mov byte [rsi], al
inc rsi
inc ebx
and ebx, 7
jne 0x180079360
cmp rdi, 8
jb 0x180079416
mov r15, rsi
mov rcx, rdi
shr rcx, 3
mov r12, r14
imul rax, rcx, 0xfffffffffffffff8
sub r15, r13
sub r12, r13
add rdi, rax
lea rax, [rcx*8]
add rsi, rax
mov qword [rsp + 0x68], rsi
add r14, rax
mov rsi, rcx
mov rdx, rbp
mov rcx, r13
call fcn.18007ab30
cmp ebx, 8
jae 0x1800793f9
mov edx, 7
mov eax, ebx
sub edx, ebx
add rax, r13
shr edx, 3
inc edx
mov rcx, qword [r12 + rax]
xor qword [rax], rcx
mov rcx, qword [rax]
mov qword [r15 + rax], rcx
lea rax, [rax + 8]
sub rdx, 1
jne 0x1800793e1
add r15, 8
add r12, 8
xor ebx, ebx
sub rsi, 1
jne 0x1800793c0
mov rsi, qword [rsp + 0x68]
mov r12, qword [rsp + 0x88]
test rdi, rdi
je 0x1800795bd
mov rdx, rbp
mov rcx, r13
call fcn.18007ab30
nop word [rax + rax]
mov ecx, ebx
inc ebx
movzx eax, byte [rcx + r14]
xor byte [rcx + r13], al
movzx eax, byte [rcx + r13]
mov byte [rcx + rsi], al
sub rdi, 1
jne 0x180079430
jmp 0x1800795bd
mov r15, qword [rsp + 0x80]
test ebx, ebx
je 0x180079488
nop dword [rax]
test rdi, rdi
je 0x180079488
movzx edx, byte [r14]
dec rdi
mov ecx, ebx
inc r14
movzx eax, byte [rcx + r15]
xor al, dl
mov byte [rsi], al
inc rsi
inc ebx
mov byte [rcx + r15], dl
and ebx, 7
jne 0x180079460
cmp rdi, 8
jb 0x180079551
mov r13, rdi
mov r12, rsi
shr r13, 3
sub r12, r15
imul rax, r13, 0xfffffffffffffff8
add rdi, rax
test byte [rbp + 0x1024], 1
je 0x1800794db
cmp dword [rbp + 0x1020], 0x400
jne 0x1800794db
mov rcx, rbp
call fcn.18007b4f0
mov r8, rbp
mov rdx, r15
mov rcx, r15
call fcn.18007a200
mov dword [rbp + 0x1020], 0
mov r8, rbp
mov rdx, r15
mov rcx, r15
call fcn.18007a200
add dword [rbp + 0x1020], 8
cmp ebx, 8
jae 0x180079531
mov r9d, 7
mov r8d, ebx
sub r9d, ebx
mov r10, r14
shr r9d, 3
add r8, r15
sub r10, rsi
inc r9d
lea rcx, [r12 + r8]
mov rdx, qword [rcx + r10]
lea r8, [r8 + 8]
mov rax, rdx
xor rax, qword [r8 - 8]
mov qword [rcx], rax
mov qword [r8 - 8], rdx
sub r9, 1
jne 0x180079511
add rsi, 8
add r12, 8
add r14, 8
xor ebx, ebx
sub r13, 1
jne 0x1800794a6
mov r12, qword [rsp + 0x88]
test rdi, rdi
je 0x1800795bd
test byte [rbp + 0x1024], 1
je 0x18007958b
cmp dword [rbp + 0x1020], 0x400
jne 0x18007958b
mov rcx, rbp
call fcn.18007b4f0
mov r8, rbp
mov rdx, r15
mov rcx, r15
call fcn.18007a200
mov dword [rbp + 0x1020], 0
mov r8, rbp
mov rdx, r15
mov rcx, r15
call fcn.18007a200
add dword [rbp + 0x1020], 8
mov ecx, ebx
inc ebx
movzx edx, byte [rcx + r14]
movzx eax, byte [rcx + r15]
xor al, dl
mov byte [rcx + rsi], al
mov byte [rcx + r15], dl
sub rdi, 1
jne 0x1800795a0
mov dword [r12], ebx
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
ret