Function at 0x140040760
Capabilities:
Hash data using sha1

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x188
mov dword [rsp + 0x158], 0x5a827999
mov dword [rsp + 0x15c], 0x6ed9eba1
mov dword [rsp + 0x160], 0x8f1bbcdc
mov dword [rsp + 0x164], 0xca62c1d6
mov dword [rsp + 0x174], 0
jmp 0x1400407b6
mov eax, dword [rsp + 0x174]
add eax, 1
mov dword [rsp + 0x174], eax
cmp dword [rsp + 0x174], 0x10
jge 0x1400408a0
mov eax, dword [rsp + 0x174]
shl eax, 2
movsxd rcx, eax
mov rax, qword [rsp + 0x190]
movzx ecx, byte [rax + rcx + 0x1e]
shl ecx, 0x18
movsxd rax, dword [rsp + 0x174]
mov dword [rsp + rax*4 + 0x10], ecx
movsxd rdx, dword [rsp + 0x174]
mov eax, dword [rsp + 0x174]
lea eax, [rax*4 + 1]
movsxd rcx, eax
mov rax, qword [rsp + 0x190]
movzx eax, byte [rax + rcx + 0x1e]
shl eax, 0x10
mov ecx, dword [rsp + rdx*4 + 0x10]
or ecx, eax
movsxd rax, dword [rsp + 0x174]
mov dword [rsp + rax*4 + 0x10], ecx
movsxd rdx, dword [rsp + 0x174]
mov eax, dword [rsp + 0x174]
lea eax, [rax*4 + 2]
movsxd rcx, eax
mov rax, qword [rsp + 0x190]
movzx eax, byte [rax + rcx + 0x1e]
shl eax, 8
mov ecx, dword [rsp + rdx*4 + 0x10]
or ecx, eax
movsxd rax, dword [rsp + 0x174]
mov dword [rsp + rax*4 + 0x10], ecx
movsxd rdx, dword [rsp + 0x174]
mov eax, dword [rsp + 0x174]
lea eax, [rax*4 + 3]
movsxd rcx, eax
mov rax, qword [rsp + 0x190]
movzx eax, byte [rax + rcx + 0x1e]
mov ecx, dword [rsp + rdx*4 + 0x10]
or ecx, eax
movsxd rax, dword [rsp + 0x174]
mov dword [rsp + rax*4 + 0x10], ecx
jmp 0x1400407a5
mov dword [rsp + 0x174], 0x10
jmp 0x1400408be
mov eax, dword [rsp + 0x174]
add eax, 1
mov dword [rsp + 0x174], eax
cmp dword [rsp + 0x174], 0x50
jge 0x140040975
mov eax, dword [rsp + 0x174]
sub eax, 3
movsxd rcx, eax
mov eax, dword [rsp + 0x174]
sub eax, 8
cdqe
mov eax, dword [rsp + rax*4 + 0x10]
mov r8d, dword [rsp + rcx*4 + 0x10]
xor r8d, eax
mov eax, dword [rsp + 0x174]
sub eax, 0xe
cdqe
xor r8d, dword [rsp + rax*4 + 0x10]
mov eax, dword [rsp + 0x174]
sub eax, 0x10
cdqe
xor r8d, dword [rsp + rax*4 + 0x10]
shl r8d, 1
mov eax, dword [rsp + 0x174]
sub eax, 3
movsxd rcx, eax
mov eax, dword [rsp + 0x174]
sub eax, 8
cdqe
mov eax, dword [rsp + rax*4 + 0x10]
mov edx, dword [rsp + rcx*4 + 0x10]
xor edx, eax
mov eax, dword [rsp + 0x174]
sub eax, 0xe
cdqe
xor edx, dword [rsp + rax*4 + 0x10]
mov eax, dword [rsp + 0x174]
sub eax, 0x10
movsxd rcx, eax
mov eax, edx
xor eax, dword [rsp + rcx*4 + 0x10]
shr eax, 0x1f
mov ecx, r8d
or ecx, eax
movsxd rax, dword [rsp + 0x174]
mov dword [rsp + rax*4 + 0x10], ecx
jmp 0x1400408ad
mov rax, qword [rsp + 0x190]
mov eax, dword [rax]
mov dword [rsp + 0x16c], eax
mov rax, qword [rsp + 0x190]
mov eax, dword [rax + 4]
mov dword [rsp + 0x154], eax
mov rax, qword [rsp + 0x190]
mov eax, dword [rax + 8]
mov dword [rsp + 0x168], eax
mov rax, qword [rsp + 0x190]
mov eax, dword [rax + 0xc]
mov dword [rsp + 0x170], eax
mov rax, qword [rsp + 0x190]
mov eax, dword [rax + 0x10]
mov dword [rsp], eax
mov dword [rsp + 0x174], 0
jmp 0x1400409e8
mov eax, dword [rsp + 0x174]
add eax, 1
mov dword [rsp + 0x174], eax
cmp dword [rsp + 0x174], 0x14
jge 0x140040aa5
mov edx, dword [rsp + 0x16c]
shl edx, 5
mov eax, dword [rsp + 0x16c]
shr eax, 0x1b
or edx, eax
mov ecx, dword [rsp + 0x168]
mov eax, dword [rsp + 0x154]
and eax, ecx
mov ecx, dword [rsp + 0x154]
not ecx
and ecx, dword [rsp + 0x170]
xor eax, ecx
mov ecx, dword [rsp]
add ecx, edx
add eax, ecx
movsxd rcx, dword [rsp + 0x174]
add eax, dword [rsp + rcx*4 + 0x10]
add eax, dword [rsp + 0x158]
mov dword [rsp + 0x150], eax
mov eax, dword [rsp + 0x170]
mov dword [rsp], eax
mov eax, dword [rsp + 0x168]
mov dword [rsp + 0x170], eax
mov eax, dword [rsp + 0x154]
shl eax, 0x1e
mov ecx, dword [rsp + 0x154]
shr ecx, 2
or eax, ecx
mov dword [rsp + 0x168], eax
mov eax, dword [rsp + 0x16c]
mov dword [rsp + 0x154], eax
mov eax, dword [rsp + 0x150]
mov dword [rsp + 0x16c], eax
jmp 0x1400409d7
mov dword [rsp + 0x174], 0x14
jmp 0x140040ac3
mov eax, dword [rsp + 0x174]
add eax, 1
mov dword [rsp + 0x174], eax
cmp dword [rsp + 0x174], 0x28
jge 0x140040b75
mov edx, dword [rsp + 0x16c]
shl edx, 5
mov eax, dword [rsp + 0x16c]
shr eax, 0x1b
or edx, eax
mov ecx, dword [rsp + 0x168]
mov eax, dword [rsp + 0x154]
xor eax, ecx
xor eax, dword [rsp + 0x170]
mov ecx, dword [rsp]
add ecx, edx
add eax, ecx
movsxd rcx, dword [rsp + 0x174]
add eax, dword [rsp + rcx*4 + 0x10]
add eax, dword [rsp + 0x15c]
mov dword [rsp + 0x150], eax
mov eax, dword [rsp + 0x170]
mov dword [rsp], eax
mov eax, dword [rsp + 0x168]
mov dword [rsp + 0x170], eax
mov eax, dword [rsp + 0x154]
shl eax, 0x1e
mov ecx, dword [rsp + 0x154]
shr ecx, 2
or eax, ecx
mov dword [rsp + 0x168], eax
mov eax, dword [rsp + 0x16c]
mov dword [rsp + 0x154], eax
mov eax, dword [rsp + 0x150]
mov dword [rsp + 0x16c], eax
jmp 0x140040ab2
mov dword [rsp + 0x174], 0x28
jmp 0x140040b93
mov eax, dword [rsp + 0x174]
add eax, 1
mov dword [rsp + 0x174], eax
cmp dword [rsp + 0x174], 0x3c
jge 0x140040c68
mov r8d, dword [rsp + 0x16c]
shl r8d, 5
mov eax, dword [rsp + 0x16c]
shr eax, 0x1b
or r8d, eax
mov eax, dword [rsp + 0x168]
mov edx, dword [rsp + 0x154]
and edx, eax
mov ecx, dword [rsp + 0x170]
mov eax, dword [rsp + 0x154]
and eax, ecx
xor edx, eax
mov eax, dword [rsp + 0x170]
mov ecx, dword [rsp + 0x168]
and ecx, eax
mov eax, edx
xor eax, ecx
mov ecx, dword [rsp]
add ecx, r8d
add eax, ecx
movsxd rcx, dword [rsp + 0x174]
add eax, dword [rsp + rcx*4 + 0x10]
add eax, dword [rsp + 0x160]
mov dword [rsp + 0x150], eax
mov eax, dword [rsp + 0x170]
mov dword [rsp], eax
mov eax, dword [rsp + 0x168]
mov dword [rsp + 0x170], eax
mov eax, dword [rsp + 0x154]
shl eax, 0x1e
mov ecx, dword [rsp + 0x154]
shr ecx, 2
or eax, ecx
mov dword [rsp + 0x168], eax
mov eax, dword [rsp + 0x16c]
mov dword [rsp + 0x154], eax
mov eax, dword [rsp + 0x150]
mov dword [rsp + 0x16c], eax
jmp 0x140040b82
mov dword [rsp + 0x174], 0x3c
jmp 0x140040c86
mov eax, dword [rsp + 0x174]
add eax, 1
mov dword [rsp + 0x174], eax
cmp dword [rsp + 0x174], 0x50
jge 0x140040d38
mov edx, dword [rsp + 0x16c]
shl edx, 5
mov eax, dword [rsp + 0x16c]
shr eax, 0x1b
or edx, eax
mov ecx, dword [rsp + 0x168]
mov eax, dword [rsp + 0x154]
xor eax, ecx
xor eax, dword [rsp + 0x170]
mov ecx, dword [rsp]
add ecx, edx
add eax, ecx
movsxd rcx, dword [rsp + 0x174]
add eax, dword [rsp + rcx*4 + 0x10]
add eax, dword [rsp + 0x164]
mov dword [rsp + 0x150], eax
mov eax, dword [rsp + 0x170]
mov dword [rsp], eax
mov eax, dword [rsp + 0x168]
mov dword [rsp + 0x170], eax
mov eax, dword [rsp + 0x154]
shl eax, 0x1e
mov ecx, dword [rsp + 0x154]
shr ecx, 2
or eax, ecx
mov dword [rsp + 0x168], eax
mov eax, dword [rsp + 0x16c]
mov dword [rsp + 0x154], eax
mov eax, dword [rsp + 0x150]
mov dword [rsp + 0x16c], eax
jmp 0x140040c75
mov rax, qword [rsp + 0x190]
mov ecx, dword [rax]
add ecx, dword [rsp + 0x16c]
mov rax, qword [rsp + 0x190]
mov dword [rax], ecx
mov rax, qword [rsp + 0x190]
mov ecx, dword [rax + 4]
add ecx, dword [rsp + 0x154]
mov rax, qword [rsp + 0x190]
mov dword [rax + 4], ecx
mov rax, qword [rsp + 0x190]
mov ecx, dword [rax + 8]
add ecx, dword [rsp + 0x168]
mov rax, qword [rsp + 0x190]
mov dword [rax + 8], ecx
mov rax, qword [rsp + 0x190]
mov ecx, dword [rax + 0xc]
add ecx, dword [rsp + 0x170]
mov rax, qword [rsp + 0x190]
mov dword [rax + 0xc], ecx
mov rax, qword [rsp + 0x190]
mov ecx, dword [rax + 0x10]
add ecx, dword [rsp]
mov rax, qword [rsp + 0x190]
mov dword [rax + 0x10], ecx
xor ecx, ecx
mov rax, qword [rsp + 0x190]
mov word [rax + 0x1c], cx
add rsp, 0x188
ret