Function at 0x1400161a0
Capabilities:
Encode data using xor
Hash data using sha1

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r13
push r14
push r15
mov ebp, dword [rcx]
lea r15, [0x140116fcc]
mov edi, dword [rcx + 4]
lea r13, [0x1401170cc]
mov ebx, dword [rcx + 8]
mov r12, rcx
mov esi, dword [rcx + 0xc]
mov r14d, dword [rcx + 0x10]
nop dword [rax]
mov r10d, dword [r15 + 0x2c]
lea r9, [r15 + 0x20]
mov r11d, dword [r15 + 0x18]
mov ecx, dword [r15 - 8]
xor ecx, r10d
xor ecx, r11d
xor ecx, dword [r15]
rol ecx, 1
mov dword [r15 + 0x38], ecx
mov edx, dword [r15 - 4]
xor edx, dword [r15 + 4]
xor edx, dword [r15 + 0x1c]
xor edx, dword [r15 + 0x30]
rol edx, 1
mov dword [r15 + 0x3c], edx
mov r8d, dword [r15 + 0x34]
xor r8d, dword [r15]
xor r8d, dword [r15 + 8]
xor r8d, dword [r9]
rol r8d, 1
mov dword [r15 + 0x40], r8d
mov eax, dword [r15 + 0x24]
xor eax, dword [r15 + 4]
xor eax, dword [r15 + 0xc]
xor eax, ecx
rol eax, 1
mov dword [r15 + 0x44], eax
xor r11d, eax
mov ecx, dword [r15 + 0x28]
xor ecx, dword [r15 + 8]
xor ecx, edx
xor ecx, dword [r15 + 0x10]
rol ecx, 1
mov dword [r15 + 0x48], ecx
xor r10d, dword [r15 + 0x14]
xor r10d, dword [r15 + 0xc]
xor r10d, r8d
rol r10d, 1
mov dword [r15 + 0x4c], r10d
xor r11d, dword [r15 + 0x10]
xor r11d, dword [r15 + 0x30]
rol r11d, 1
mov dword [r15 + 0x50], r11d
mov eax, dword [r15 + 0x14]
xor eax, dword [r15 + 0x1c]
xor eax, dword [r15 + 0x34]
xor eax, ecx
rol eax, 1
mov dword [r15 + 0x54], eax
mov r15, r9
cmp r9, r13
jl 0x1400161e0
lea r9, [0x140116fc4]
lea r8, [0x140117014]
mov eax, ebx
mov ecx, edi
and eax, edi
not ecx
and ecx, esi
mov edx, ebp
or ecx, eax
rol edx, 5
lea eax, [r14 + 0x5a827999]
add edx, ecx
add edx, dword [r9]
mov r14d, esi
mov esi, ebx
add eax, edx
mov ebx, edi
add r9, 4
ror ebx, 2
mov edi, ebp
mov ebp, eax
cmp r9, r8
jl 0x1400162a4
lea r9, [0x140117064]
rol eax, 5
mov edx, esi
xor edx, ebx
xor edx, edi
lea ecx, [r14 + rax]
mov eax, dword [r8]
add eax, 0x6ed9eba1
add edx, ecx
add eax, edx
mov r14d, esi
mov esi, ebx
add r8, 4
mov ebx, edi
mov edi, ebp
ror ebx, 2
mov ebp, eax
cmp r8, r9
jl 0x1400162e1
lea r8, [0x1401170b4]
nop dword [rax + rax]
rol eax, 5
mov edx, ebx
or edx, edi
mov ecx, ebx
and edx, esi
and ecx, edi
add eax, 0x8f1bbcdc
or edx, ecx
add eax, dword [r9]
add edx, r14d
add eax, edx
mov r14d, esi
mov esi, ebx
add r9, 4
mov ebx, edi
mov edi, ebp
ror ebx, 2
mov ebp, eax
cmp r9, r8
jl 0x140016320
lea rdx, [0x140117104]
nop word [rax + rax]
rol eax, 5
mov ecx, esi
xor ecx, ebx
add eax, 0xca62c1d6
add eax, dword [r8]
xor ecx, edi
add ecx, r14d
add r8, 4
add eax, ecx
mov r14d, esi
mov esi, ebx
mov ebx, edi
ror ebx, 2
mov edi, ebp
mov ebp, eax
cmp r8, rdx
jl 0x140016360
mov edx, dword [r12]
mov rbp, qword [rsp + 0x30]
add edx, eax
mov dword [0x140116fc4], edx
mov ecx, dword [r12 + 4]
add ecx, edi
mov rdi, qword [rsp + 0x40]
mov dword [0x140116fc8], ecx
mov ecx, dword [r12 + 8]
add ecx, ebx
mov rbx, qword [rsp + 0x28]
mov dword [0x140116fcc], ecx
mov ecx, dword [r12 + 0xc]
add ecx, esi
mov rsi, qword [rsp + 0x38]
mov dword [0x140116fd0], ecx
mov ecx, dword [r12 + 0x10]
add ecx, r14d
mov dword [0x140116fd4], ecx
pop r15
pop r14
pop r13
pop r12
ret