Function at 0x5ab194
Capabilities:
Hash data using sha1

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
push ebx
push esi
push edi
mov dword [ebp - 4], edx
mov esi, eax
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], ecx
mov dword [esi + 4], 0x67452301
mov dword [esi + 8], 0xefcdab89
mov dword [esi + 0xc], 0x98badcfe
mov dword [esi + 0x10], 0x10325476
mov dword [esi + 0x14], 0xc3d2e1f0
jmp 0x5ab22a
xor ebx, ebx
xor eax, eax
mov dword [esi + ebx*4 + 0x18], eax
inc ebx
cmp ebx, 0x10
jne 0x5ab1d7
xor ebx, ebx
mov eax, ebx
and eax, 3
mov edx, 3
sub edx, eax
mov eax, edx
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x18], eax
mov edi, ebx
shr edi, 2
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xc]
add eax, ebx
add eax, dword [ebp - 0x10]
mov edx, dword [ebp - 4]
movzx eax, byte [edx + eax]
shl eax, cl
add dword [esi + edi*4 + 0x18], eax
inc ebx
cmp ebx, 0x40
jne 0x5ab1e5
mov eax, esi
call fcn.005ab0b0
add dword [ebp - 0x10], 0x40
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 0x10]
cmp eax, 0x40
jae 0x5ab1d5
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 0x10]
cmp eax, 0x37
ja 0x5ab2e5
xor eax, eax
xor edx, edx
mov dword [esi + eax*4 + 0x18], edx
inc eax
cmp eax, 0x10
jne 0x5ab246
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 8]
dec edx
sub edx, eax
jb 0x5ab29f
inc edx
mov edi, eax
sub edi, dword [ebp - 0x10]
shr edi, 2
mov ecx, eax
sub ecx, dword [ebp - 0x10]
and ecx, 3
mov ebx, 3
sub ebx, ecx
mov ecx, ebx
add ecx, ecx
add ecx, ecx
add ecx, ecx
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0xc]
add ecx, eax
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0x14]
movzx ebx, byte [ecx + ebx]
mov ecx, dword [ebp - 0x18]
shl ebx, cl
add dword [esi + edi*4 + 0x18], ebx
inc eax
dec edx
jne 0x5ab25e
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 0x10]
mov edi, eax
shr edi, 2
and eax, 3
mov edx, 3
sub edx, eax
mov eax, edx
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
mov eax, 0x80
shl eax, cl
add dword [esi + edi*4 + 0x18], eax
mov eax, dword [ebp - 8]
add eax, eax
add eax, eax
add eax, eax
mov dword [esi + 0x54], eax
mov eax, esi
call fcn.005ab0b0
jmp 0x5ab390
xor eax, eax
xor edx, edx
mov dword [esi + eax*4 + 0x18], edx
inc eax
cmp eax, 0x10
jne 0x5ab2e7
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 8]
dec edx
sub edx, eax
jb 0x5ab33a
inc edx
mov edi, eax
sub edi, dword [ebp - 0x10]
shr edi, 2
mov ecx, eax
sub ecx, dword [ebp - 0x10]
and ecx, 3
mov ebx, 3
sub ebx, ecx
mov ecx, ebx
add ecx, ecx
add ecx, ecx
add ecx, ecx
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0xc]
add ecx, eax
mov ebx, dword [ebp - 4]
movzx ebx, byte [ebx + ecx]
mov ecx, dword [ebp - 0x18]
shl ebx, cl
add dword [esi + edi*4 + 0x18], ebx
inc eax
dec edx
jne 0x5ab2ff
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 0x10]
mov edi, eax
shr edi, 2
and eax, 3
mov edx, 3
sub edx, eax
mov eax, edx
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
mov eax, 0x80
shl eax, cl
add dword [esi + edi*4 + 0x18], eax
mov eax, esi
call fcn.005ab0b0
xor eax, eax
xor edx, edx
mov dword [esi + eax*4 + 0x18], edx
inc eax
cmp eax, 0x10
jne 0x5ab371
mov eax, dword [ebp - 8]
add eax, eax
add eax, eax
add eax, eax
mov dword [esi + 0x54], eax
mov eax, esi
call fcn.005ab0b0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4