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

Disassembly:
push rbp
sub rsp, 0x180
mov rbp, rsp
mov qword [rbp + 0x190], rcx
lea rcx, [rbp + 0x28]
mov rdx, qword [rbp + 0x190]
add rdx, 0x50
call fcn.005f01f0
mov rax, qword [rbp + 0x190]
mov eax, dword [rax]
mov dword [rbp + 0x178], eax
mov rax, qword [rbp + 0x190]
mov eax, dword [rax + 4]
mov dword [rbp + 0x174], eax
mov rax, qword [rbp + 0x190]
mov eax, dword [rax + 8]
mov dword [rbp + 0x170], eax
mov rax, qword [rbp + 0x190]
mov eax, dword [rax + 0xc]
mov dword [rbp + 0x16c], eax
mov rax, qword [rbp + 0x190]
mov eax, dword [rax + 0x10]
mov dword [rbp + 0x168], eax
mov dword [rbp + 0x17c], 0
cmp dword [rbp + 0x17c], 0x14
jge 0x5f0557
mov eax, dword [rbp + 0x178]
shl eax, 5
mov ecx, dword [rbp + 0x178]
shr ecx, 0x1b
or eax, ecx
mov ecx, dword [rbp + 0x170]
xor ecx, dword [rbp + 0x16c]
mov edx, dword [rbp + 0x174]
and edx, ecx
mov ecx, dword [rbp + 0x16c]
xor ecx, edx
add eax, ecx
movsxd rcx, dword [rbp + 0x17c]
add eax, dword [rbp + rcx*4 + 0x28]
mov ecx, dword [rbp + 0x168]
add ecx, eax
add ecx, 0x5a827999
mov dword [rbp + 0x168], ecx
mov eax, dword [rbp + 0x174]
shr eax, 2
mov ecx, dword [rbp + 0x174]
shl ecx, 0x1e
or eax, ecx
mov dword [rbp + 0x174], eax
mov eax, dword [rbp + 0x168]
shl eax, 5
mov ecx, dword [rbp + 0x168]
shr ecx, 0x1b
or eax, ecx
mov ecx, dword [rbp + 0x174]
xor ecx, dword [rbp + 0x170]
mov edx, dword [rbp + 0x178]
and edx, ecx
mov ecx, dword [rbp + 0x170]
xor ecx, edx
add eax, ecx
movsxd rcx, dword [rbp + 0x17c]
add eax, dword [rbp + rcx*4 + 0x2c]
mov ecx, dword [rbp + 0x16c]
add ecx, eax
add ecx, 0x5a827999
mov dword [rbp + 0x16c], ecx
mov eax, dword [rbp + 0x178]
shr eax, 2
mov ecx, dword [rbp + 0x178]
shl ecx, 0x1e
or eax, ecx
mov dword [rbp + 0x178], eax
mov eax, dword [rbp + 0x16c]
shl eax, 5
mov ecx, dword [rbp + 0x16c]
shr ecx, 0x1b
or eax, ecx
mov ecx, dword [rbp + 0x178]
xor ecx, dword [rbp + 0x174]
mov edx, dword [rbp + 0x168]
and edx, ecx
mov ecx, dword [rbp + 0x174]
xor ecx, edx
add eax, ecx
movsxd rcx, dword [rbp + 0x17c]
add eax, dword [rbp + rcx*4 + 0x30]
mov ecx, dword [rbp + 0x170]
add ecx, eax
add ecx, 0x5a827999
mov dword [rbp + 0x170], ecx
mov eax, dword [rbp + 0x168]
shr eax, 2
mov ecx, dword [rbp + 0x168]
shl ecx, 0x1e
or eax, ecx
mov dword [rbp + 0x168], eax
mov eax, dword [rbp + 0x170]
shl eax, 5
mov ecx, dword [rbp + 0x170]
shr ecx, 0x1b
or eax, ecx
mov ecx, dword [rbp + 0x168]
xor ecx, dword [rbp + 0x178]
mov edx, dword [rbp + 0x16c]
and edx, ecx
mov ecx, dword [rbp + 0x178]
xor ecx, edx
add eax, ecx
movsxd rcx, dword [rbp + 0x17c]
add eax, dword [rbp + rcx*4 + 0x34]
mov ecx, dword [rbp + 0x174]
add ecx, eax
add ecx, 0x5a827999
mov dword [rbp + 0x174], ecx
mov eax, dword [rbp + 0x16c]
shr eax, 2
mov ecx, dword [rbp + 0x16c]
shl ecx, 0x1e
or eax, ecx
mov dword [rbp + 0x16c], eax
mov eax, dword [rbp + 0x174]
shl eax, 5
mov ecx, dword [rbp + 0x174]
shr ecx, 0x1b
or eax, ecx
mov ecx, dword [rbp + 0x16c]
xor ecx, dword [rbp + 0x168]
mov edx, dword [rbp + 0x170]
and edx, ecx
mov ecx, dword [rbp + 0x168]
xor ecx, edx
add eax, ecx
movsxd rcx, dword [rbp + 0x17c]
add eax, dword [rbp + rcx*4 + 0x38]
mov ecx, dword [rbp + 0x178]
add ecx, eax
add ecx, 0x5a827999
mov dword [rbp + 0x178], ecx
mov eax, dword [rbp + 0x170]
shr eax, 2
mov ecx, dword [rbp + 0x170]
shl ecx, 0x1e
or eax, ecx
mov dword [rbp + 0x170], eax
add dword [rbp + 0x17c], 5
cmp dword [rbp + 0x17c], 0x14
jl 0x5f032c
nop
cmp dword [rbp + 0x17c], 0x28
jge 0x5f075e
mov eax, dword [rbp + 0x178]
shl eax, 5
mov ecx, dword [rbp + 0x178]
shr ecx, 0x1b
or eax, ecx
mov ecx, dword [rbp + 0x16c]
xor ecx, dword [rbp + 0x174]
xor ecx, dword [rbp + 0x170]
add eax, ecx
movsxd rcx, dword [rbp + 0x17c]
add eax, dword [rbp + rcx*4 + 0x28]
mov ecx, dword [rbp + 0x168]
add ecx, eax
add ecx, 0x6ed9eba1
mov dword [rbp + 0x168], ecx
mov eax, dword [rbp + 0x174]
shr eax, 2
mov ecx, dword [rbp + 0x174]
shl ecx, 0x1e
or eax, ecx
mov dword [rbp + 0x174], eax
mov eax, dword [rbp + 0x168]
shl eax, 5
mov ecx, dword [rbp + 0x168]
shr ecx, 0x1b
or eax, ecx
mov ecx, dword [rbp + 0x170]
xor ecx, dword [rbp + 0x178]
xor ecx, dword [rbp + 0x174]
add eax, ecx
movsxd rcx, dword [rbp + 0x17c]
add eax, dword [rbp + rcx*4 + 0x2c]
mov ecx, dword [rbp + 0x16c]
add ecx, eax
add ecx, 0x6ed9eba1
mov dword [rbp + 0x16c], ecx
mov eax, dword [rbp + 0x178]
shr eax, 2
mov ecx, dword [rbp + 0x178]
shl ecx, 0x1e
or eax, ecx
mov dword [rbp + 0x178], eax
mov eax, dword [rbp + 0x16c]
shl eax, 5
mov ecx, dword [rbp + 0x16c]
shr ecx, 0x1b
or eax, ecx
mov ecx, dword [rbp + 0x174]
xor ecx, dword [rbp + 0x168]
xor ecx, dword [rbp + 0x178]
add eax, ecx
movsxd rcx, dword [rbp + 0x17c]
add eax, dword [rbp + rcx*4 + 0x30]
mov ecx, dword [rbp + 0x170]
add ecx, eax
add ecx, 0x6ed9eba1
mov dword [rbp + 0x170], ecx
mov eax, dword [rbp + 0x168]
shr eax, 2
mov ecx, dword [rbp + 0x168]
shl ecx, 0x1e
or eax, ecx
mov dword [rbp + 0x168], eax
mov eax, dword [rbp + 0x170]
shl eax, 5
mov ecx, dword [rbp + 0x170]
shr ecx, 0x1b
or eax, ecx
mov ecx, dword [rbp + 0x178]
xor ecx, dword [rbp + 0x16c]
xor ecx, dword [rbp + 0x168]
add eax, ecx
movsxd rcx, dword [rbp + 0x17c]
add eax, dword [rbp + rcx*4 + 0x34]
mov ecx, dword [rbp + 0x174]
add ecx, eax
add ecx, 0x6ed9eba1
mov dword [rbp + 0x174], ecx
mov eax, dword [rbp + 0x16c]
shr eax, 2
mov ecx, dword [rbp + 0x16c]
shl ecx, 0x1e
or eax, ecx
mov dword [rbp + 0x16c], eax
mov eax, dword [rbp + 0x174]
shl eax, 5
mov ecx, dword [rbp + 0x174]
shr ecx, 0x1b
or eax, ecx
mov ecx, dword [rbp + 0x168]
xor ecx, dword [rbp + 0x170]
xor ecx, dword [rbp + 0x16c]
add eax, ecx
movsxd rcx, dword [rbp + 0x17c]
add eax, dword [rbp + rcx*4 + 0x38]
mov ecx, dword [rbp + 0x178]
add ecx, eax
add ecx, 0x6ed9eba1
mov dword [rbp + 0x178], ecx
mov eax, dword [rbp + 0x170]
shr eax, 2
mov ecx, dword [rbp + 0x170]
shl ecx, 0x1e
or eax, ecx
mov dword [rbp + 0x170], eax
add dword [rbp + 0x17c], 5
cmp dword [rbp + 0x17c], 0x28
jl 0x5f0565
nop
cmp dword [rbp + 0x17c], 0x3c
jge 0x5f09c4
mov eax, dword [rbp + 0x178]
shl eax, 5
mov ecx, dword [rbp + 0x178]
shr ecx, 0x1b
or eax, ecx
mov ecx, dword [rbp + 0x174]
and ecx, dword [rbp + 0x170]
mov edx, dword [rbp + 0x174]
or edx, dword [rbp + 0x170]
mov r8d, dword [rbp + 0x16c]
and r8d, edx
or ecx, r8d
add eax, ecx
movsxd rcx, dword [rbp + 0x17c]
add eax, dword [rbp + rcx*4 + 0x28]
mov ecx, dword [rbp + 0x168]
add ecx, eax
add ecx, 0x8f1bbcdc
mov dword [rbp + 0x168], ecx
mov eax, dword [rbp + 0x174]
shr eax, 2
mov ecx, dword [rbp + 0x174]
shl ecx, 0x1e
or eax, ecx
mov dword [rbp + 0x174], eax
mov eax, dword [rbp + 0x168]
shl eax, 5
mov ecx, dword [rbp + 0x168]
shr ecx, 0x1b
or eax, ecx
mov ecx, dword [rbp + 0x178]
and ecx, dword [rbp + 0x174]
mov edx, dword [rbp + 0x178]
or edx, dword [rbp + 0x174]
mov r8d, dword [rbp + 0x170]
and r8d, edx
or ecx, r8d
add eax, ecx
movsxd rcx, dword [rbp + 0x17c]
add eax, dword [rbp + rcx*4 + 0x2c]
mov ecx, dword [rbp + 0x16c]
add ecx, eax
add ecx, 0x8f1bbcdc
mov dword [rbp + 0x16c], ecx
mov eax, dword [rbp + 0x178]
shr eax, 2
mov ecx, dword [rbp + 0x178]
shl ecx, 0x1e
or eax, ecx
mov dword [rbp + 0x178], eax
mov eax, dword [rbp + 0x16c]
shl eax, 5
mov ecx, dword [rbp + 0x16c]
shr ecx, 0x1b
or eax, ecx
mov ecx, dword [rbp + 0x168]
and ecx, dword [rbp + 0x178]
mov edx, dword [rbp + 0x168]
or edx, dword [rbp + 0x178]
mov r8d, dword [rbp + 0x174]
and r8d, edx
or ecx, r8d
add eax, ecx
movsxd rcx, dword [rbp + 0x17c]
add eax, dword [rbp + rcx*4 + 0x30]
mov ecx, dword [rbp + 0x170]
add ecx, eax
add ecx, 0x8f1bbcdc
mov dword [rbp + 0x170], ecx
mov eax, dword [rbp + 0x168]
shr eax, 2
mov ecx, dword [rbp + 0x168]
shl ecx, 0x1e
or eax, ecx
mov dword [rbp + 0x168], eax
mov eax, dword [rbp + 0x170]
shl eax, 5
mov ecx, dword [rbp + 0x170]
shr ecx, 0x1b
or eax, ecx
mov ecx, dword [rbp + 0x16c]
and ecx, dword [rbp + 0x168]
mov edx, dword [rbp + 0x16c]
or edx, dword [rbp + 0x168]
mov r8d, dword [rbp + 0x178]
and r8d, edx
or ecx, r8d
add eax, ecx
movsxd rcx, dword [rbp + 0x17c]
add eax, dword [rbp + rcx*4 + 0x34]
mov ecx, dword [rbp + 0x174]
add ecx, eax
add ecx, 0x8f1bbcdc
mov dword [rbp + 0x174], ecx
mov eax, dword [rbp + 0x16c]
shr eax, 2
mov ecx, dword [rbp + 0x16c]
shl ecx, 0x1e
or eax, ecx
mov dword [rbp + 0x16c], eax
mov eax, dword [rbp + 0x174]
shl eax, 5
mov ecx, dword [rbp + 0x174]
shr ecx, 0x1b
or eax, ecx
mov ecx, dword [rbp + 0x170]
and ecx, dword [rbp + 0x16c]
mov edx, dword [rbp + 0x170]
or edx, dword [rbp + 0x16c]
mov r8d, dword [rbp + 0x168]
and r8d, edx
or ecx, r8d
add eax, ecx
movsxd rcx, dword [rbp + 0x17c]
add eax, dword [rbp + rcx*4 + 0x38]
mov ecx, dword [rbp + 0x178]
add ecx, eax
add ecx, 0x8f1bbcdc
mov dword [rbp + 0x178], ecx
mov eax, dword [rbp + 0x170]
shr eax, 2
mov ecx, dword [rbp + 0x170]
shl ecx, 0x1e
or eax, ecx
mov dword [rbp + 0x170], eax
add dword [rbp + 0x17c], 5
cmp dword [rbp + 0x17c], 0x3c
jl 0x5f076c
nop
cmp dword [rbp + 0x17c], 0x50
jge 0x5f0bcb
mov eax, dword [rbp + 0x178]
shl eax, 5
mov ecx, dword [rbp + 0x178]
shr ecx, 0x1b
or eax, ecx
mov ecx, dword [rbp + 0x16c]
xor ecx, dword [rbp + 0x174]
xor ecx, dword [rbp + 0x170]
add eax, ecx
movsxd rcx, dword [rbp + 0x17c]
add eax, dword [rbp + rcx*4 + 0x28]
mov ecx, dword [rbp + 0x168]
add ecx, eax
add ecx, 0xca62c1d6
mov dword [rbp + 0x168], ecx
mov eax, dword [rbp + 0x174]
shr eax, 2
mov ecx, dword [rbp + 0x174]
shl ecx, 0x1e
or eax, ecx
mov dword [rbp + 0x174], eax
mov eax, dword [rbp + 0x168]
shl eax, 5
mov ecx, dword [rbp + 0x168]
shr ecx, 0x1b
or eax, ecx
mov ecx, dword [rbp + 0x170]
xor ecx, dword [rbp + 0x178]
xor ecx, dword [rbp + 0x174]
add eax, ecx
movsxd rcx, dword [rbp + 0x17c]
add eax, dword [rbp + rcx*4 + 0x2c]
mov ecx, dword [rbp + 0x16c]
add ecx, eax
add ecx, 0xca62c1d6
mov dword [rbp + 0x16c], ecx
mov eax, dword [rbp + 0x178]
shr eax, 2
mov ecx, dword [rbp + 0x178]
shl ecx, 0x1e
or eax, ecx
mov dword [rbp + 0x178], eax
mov eax, dword [rbp + 0x16c]
shl eax, 5
mov ecx, dword [rbp + 0x16c]
shr ecx, 0x1b
or eax, ecx
mov ecx, dword [rbp + 0x174]
xor ecx, dword [rbp + 0x168]
xor ecx, dword [rbp + 0x178]
add eax, ecx
movsxd rcx, dword [rbp + 0x17c]
add eax, dword [rbp + rcx*4 + 0x30]
mov ecx, dword [rbp + 0x170]
add ecx, eax
add ecx, 0xca62c1d6
mov dword [rbp + 0x170], ecx
mov eax, dword [rbp + 0x168]
shr eax, 2
mov ecx, dword [rbp + 0x168]
shl ecx, 0x1e
or eax, ecx
mov dword [rbp + 0x168], eax
mov eax, dword [rbp + 0x170]
shl eax, 5
mov ecx, dword [rbp + 0x170]
shr ecx, 0x1b
or eax, ecx
mov ecx, dword [rbp + 0x178]
xor ecx, dword [rbp + 0x16c]
xor ecx, dword [rbp + 0x168]
add eax, ecx
movsxd rcx, dword [rbp + 0x17c]
add eax, dword [rbp + rcx*4 + 0x34]
mov ecx, dword [rbp + 0x174]
add ecx, eax
add ecx, 0xca62c1d6
mov dword [rbp + 0x174], ecx
mov eax, dword [rbp + 0x16c]
shr eax, 2
mov ecx, dword [rbp + 0x16c]
shl ecx, 0x1e
or eax, ecx
mov dword [rbp + 0x16c], eax
mov eax, dword [rbp + 0x174]
shl eax, 5
mov ecx, dword [rbp + 0x174]
shr ecx, 0x1b
or eax, ecx
mov ecx, dword [rbp + 0x168]
xor ecx, dword [rbp + 0x170]
xor ecx, dword [rbp + 0x16c]
add eax, ecx
movsxd rcx, dword [rbp + 0x17c]
add eax, dword [rbp + rcx*4 + 0x38]
mov ecx, dword [rbp + 0x178]
add ecx, eax
add ecx, 0xca62c1d6
mov dword [rbp + 0x178], ecx
mov eax, dword [rbp + 0x170]
shr eax, 2
mov ecx, dword [rbp + 0x170]
shl ecx, 0x1e
or eax, ecx
mov dword [rbp + 0x170], eax
add dword [rbp + 0x17c], 5
cmp dword [rbp + 0x17c], 0x50
jl 0x5f09d2
nop
mov rax, qword [rbp + 0x190]
mov ecx, dword [rbp + 0x178]
add dword [rax], ecx
mov rax, qword [rbp + 0x190]
add rax, 4
mov ecx, dword [rbp + 0x174]
add dword [rax], ecx
mov rax, qword [rbp + 0x190]
add rax, 8
mov ecx, dword [rbp + 0x170]
add dword [rax], ecx
mov rax, qword [rbp + 0x190]
add rax, 0xc
mov ecx, dword [rbp + 0x16c]
add dword [rax], ecx
mov rax, qword [rbp + 0x190]
add rax, 0x10
mov ecx, dword [rbp + 0x168]
add dword [rax], ecx
lea rsp, [rbp + 0x180]
pop rbp
ret