Function at 0x140077c50
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x50
mov rax, qword [rcx + 0x170]
mov rdi, rcx
mov rbp, qword [rcx + 0x160]
mov rbx, r9
mov r14, qword [rsp + 0xa0]
mov rsi, r8
mov qword [rsp + 0x20], rax
mov rax, qword [rcx + 0x168]
mov rcx, qword [rcx + 0x38]
mov qword [rsp + 0x30], rax
add rcx, r14
movabs rax, 0xfffffffe0
cmp rcx, rax
ja 0x140077f60
cmp rcx, r14
jb 0x140077f60
mov qword [rdi + 0x38], rcx
lea r9, [rdi + 0x60]
cmp dword [rdi + 0x184], 0
lea r8, [rdi + 0x40]
mov qword [rsp + 0x48], r13
je 0x140077ce6
mov rdx, r9
mov rcx, r8
call rbp
lea r8, [rdi + 0x40]
mov dword [rdi + 0x184], 0
lea r9, [rdi + 0x60]
mov r13d, dword [rdi + 0x180]
mov dword [rsp + 0x80], r13d
test r13d, r13d
je 0x140077d3e
nop word [rax + rax]
test r14, r14
je 0x140077f44
movzx edx, byte [rsi]
dec r14
mov ecx, r13d
inc rsi
movzx eax, dl
xor al, byte [rcx + rdi + 0x10]
mov byte [rbx], al
inc rbx
xor byte [rcx + rdi + 0x40], dl
inc r13d
and r13d, 0xf
jne 0x140077d00
mov rdx, r9
mov rcx, r8
call rbp
mov dword [rsp + 0x80], r13d
mov qword [rsp + 0x90], r12
lea r12, [rdi + 0x10]
mov qword [rsp + 0x40], r15
mov r15d, dword [rdi + 0xc]
bswap r15d
cmp r14, 0xc00
jb 0x140077e2b
mov r13, qword [rsp + 0x88]
movabs rax, 0xaaaaaaaaaaaaaaab
mul r14
mov r12, rdx
shr r12, 0xb
imul rax, r12, 0xfffffffffffff400
mov qword [rsp + 0x28], r12
add r14, rax
mov qword [rsp + 0xa0], r14
mov r14, qword [rsp + 0x20]
nop dword [rax + rax]
mov r9d, 0xc00
lea rdx, [rdi + 0x60]
mov r8, rsi
lea rcx, [rdi + 0x40]
call qword [rsp + 0x30]
mov ebp, 0xc0
nop word [rax + rax]
mov r8, r13
lea rdx, [rdi + 0x10]
mov rcx, rdi
call r14
inc r15d
mov r9, rsi
mov eax, r15d
bswap eax
mov dword [rdi + 0xc], eax
xor eax, eax
sub r9, rbx
lea r8, [rax + rbx]
mov rcx, rax
mov rdx, qword [r9 + r8]
add rax, 8
shr rcx, 3
xor rdx, qword [rdi + rcx*8 + 0x10]
mov qword [r8], rdx
cmp rax, 0x10
jb 0x140077de0
add rbx, 0x10
add rsi, 0x10
sub rbp, 1
jne 0x140077dc0
sub qword [rsp + 0x28], 1
jne 0x140077da0
mov r14, qword [rsp + 0xa0]
lea r12, [rdi + 0x10]
mov r13d, dword [rsp + 0x80]
mov r9, r14
and r9, 0xfffffffffffffff0
je 0x140077edf
mov r8, rsi
lea rdx, [rdi + 0x60]
lea rcx, [rdi + 0x40]
call qword [rsp + 0x30]
cmp r14, 0x10
jb 0x140077edf
mov r13, qword [rsp + 0x88]
mov rbp, r14
shr rbp, 4
imul rax, rbp, 0xfffffffffffffff0
add r14, rax
mov qword [rsp + 0xa0], r14
mov r14, qword [rsp + 0x20]
mov r8, r13
mov rdx, r12
mov rcx, rdi
call r14
inc r15d
xor r8d, r8d
mov eax, r15d
mov r9, rsi
bswap eax
mov dword [rdi + 0xc], eax
sub r9, rbx
nop dword [rax]
nop dword [rax + rax]
lea rdx, [r8 + rbx]
mov rax, r8
mov rcx, qword [r9 + rdx]
add r8, 8
shr rax, 3
xor rcx, qword [rdi + rax*8 + 0x10]
mov qword [rdx], rcx
cmp r8, 0x10
jb 0x140077ea0
add rbx, 0x10
add rsi, 0x10
sub rbp, 1
jne 0x140077e74
mov r14, qword [rsp + 0xa0]
mov r13d, dword [rsp + 0x80]
test r14, r14
je 0x140077f1b
mov r8, qword [rsp + 0x88]
mov rdx, r12
mov rcx, rdi
call qword [rsp + 0x20]
lea eax, [r15 + 1]
bswap eax
mov dword [rdi + 0xc], eax
nop
mov ecx, r13d
inc r13d
movzx eax, byte [rcx + rsi]
xor byte [rcx + rdi + 0x40], al
xor al, byte [rcx + rdi + 0x10]
mov byte [rcx + rbx], al
sub r14, 1
jne 0x140077f00
mov r15, qword [rsp + 0x40]
mov eax, 1
mov r12, qword [rsp + 0x90]
mov dword [rdi + 0x180], r13d
mov r13, qword [rsp + 0x48]
add rsp, 0x50
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov dword [rdi + 0x180], r13d
mov eax, 1
mov r13, qword [rsp + 0x48]
add rsp, 0x50
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
xor eax, eax
add rsp, 0x50
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret