Function at 0x50ca60
Capabilities:
Encode data using xor
Hash data using sha512

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0x100]
nop dword [rax + rax]
cmp rax, qword [rcx + 0x10]
jbe 0x50cecb
sub rsp, 0x180
mov qword [rsp + 0x178], rbp
lea rbp, [rsp + 0x178]
mov qword [rsp + 0x98], 0
lea rdi, [rsp + 0xa0]
xorps xmm0, xmm0
lea rdi, [rdi - 0x30]
nop dword [rax]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.0046ce4f
mov rbp, qword [rbp]
mov rax, qword [rsp + 0x188]
mov rcx, qword [rax]
mov qword [rsp + 0x98], rcx
lea rsi, [rax + 8]
lea rdi, [rsp + 0xa0]
nop word [rax + rax]
nop dword [rax + rax]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.0046d16a
mov rbp, qword [rbp]
lea rax, [rsp + 0x98]
mov qword [rsp], rax
nop
call fcn.0050cee0
movups xmm1, xmmword [rsp + 8]
movups xmmword [rsp + 0x58], xmm1
movups xmm1, xmmword [rsp + 0x18]
movups xmmword [rsp + 0x68], xmm1
movups xmm1, xmmword [rsp + 0x28]
movups xmmword [rsp + 0x78], xmm1
movups xmm1, xmmword [rsp + 0x38]
movups xmmword [rsp + 0x88], xmm1
mov rax, qword [rsp + 0x168]
nop dword [rax + rax]
cmp rax, 6
jne 0x50cc40
mov rax, qword [rsp + 0x198]
lea rcx, [rax + 0x30]
mov qword [rsp + 0x50], rcx
mov rdx, qword [rsp + 0x1a0]
cmp rcx, rdx
ja 0x50cbf6
mov rbx, qword [rsp + 0x190]
mov qword [rsp + 0x170], rbx
mov qword [rsp + 0x48], rdx
add rax, rbx
mov qword [rsp], rax
lea rax, [rsp + 0x58]
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], 0x30
call fcn.0046d4e0
mov rax, qword [rsp + 0x170]
mov qword [rsp + 0x1a8], rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x1b0], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x1b8], rax
mov rbp, qword [rsp + 0x178]
add rsp, 0x180
ret
lea rbx, [0x0064f680]
mov qword [rsp], rbx
mov rbx, qword [rsp + 0x190]
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rax
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], rcx
nop dword [rax]
call fcn.0044ddc0
mov rbx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x198]
jmp 0x50cb90
cmp rax, 0xe
jne 0x50cd20
mov rax, qword [rsp + 0x198]
lea rcx, [rax + 0x1c]
mov qword [rsp + 0x50], rcx
mov rdx, qword [rsp + 0x1a0]
cmp rcx, rdx
ja 0x50ccd6
mov rbx, qword [rsp + 0x190]
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x170], rbx
add rax, rbx
mov qword [rsp], rax
lea rax, [rsp + 0x58]
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], 0x1c
call fcn.0046d4e0
mov rax, qword [rsp + 0x170]
mov qword [rsp + 0x1a8], rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x1b0], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x1b8], rax
mov rbp, qword [rsp + 0x178]
add rsp, 0x180
ret
lea rbx, [0x0064f680]
mov qword [rsp], rbx
mov rbx, qword [rsp + 0x190]
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rax
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], rcx
nop dword [rax]
call fcn.0044ddc0
mov rbx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x198]
jmp 0x50cc70
cmp rax, 0xf
jne 0x50cdfc
mov rax, qword [rsp + 0x198]
lea rcx, [rax + 0x20]
mov qword [rsp + 0x50], rcx
mov rdx, qword [rsp + 0x1a0]
cmp rcx, rdx
ja 0x50cdb6
mov rbx, qword [rsp + 0x190]
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x170], rbx
add rax, rbx
mov qword [rsp], rax
lea rax, [rsp + 0x58]
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], 0x20
call fcn.0046d4e0
mov rax, qword [rsp + 0x170]
mov qword [rsp + 0x1a8], rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x1b0], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x1b8], rax
mov rbp, qword [rsp + 0x178]
add rsp, 0x180
ret
lea rbx, [0x0064f680]
mov qword [rsp], rbx
mov rbx, qword [rsp + 0x190]
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rax
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], rcx
nop dword [rax]
call fcn.0044ddc0
mov rbx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x198]
jmp 0x50cd50
mov rax, qword [rsp + 0x198]
lea rcx, [rax + 0x40]
mov qword [rsp + 0x50], rcx
mov rdx, qword [rsp + 0x1a0]
cmp rcx, rdx
ja 0x50ce88
mov rbx, qword [rsp + 0x190]
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x170], rbx
add rax, rbx
mov qword [rsp], rax
lea rax, [rsp + 0x58]
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], 0x40
call fcn.0046d4e0
mov rax, qword [rsp + 0x170]
mov qword [rsp + 0x1a8], rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x1b0], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x1b8], rax
mov rbp, qword [rsp + 0x178]
add rsp, 0x180
ret
lea rbx, [0x0064f680]
mov qword [rsp], rbx
mov rbx, qword [rsp + 0x190]
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rax
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], rcx
call fcn.0044ddc0
mov rbx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x198]
jmp 0x50ce22
call fcn.0046aa00
jmp fcn.0050ca60