Function at 0x50f44c
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 0x50f4e2
xor ebx, ebx
xor eax, eax
mov dword [esi + ebx*4 + 0x18], eax
inc ebx
cmp ebx, 0x10
jne 0x50f48f
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 0x50f49d
mov eax, esi
call fcn.0050f368
add dword [ebp - 0x10], 0x40
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 0x10]
cmp eax, 0x40
jae 0x50f48d
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 0x10]
cmp eax, 0x37
ja 0x50f59d
xor eax, eax
xor edx, edx
mov dword [esi + eax*4 + 0x18], edx
inc eax
cmp eax, 0x10
jne 0x50f4fe
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 8]
dec edx
sub edx, eax
jb 0x50f557
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 0x50f516
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.0050f368
jmp 0x50f648
xor eax, eax
xor edx, edx
mov dword [esi + eax*4 + 0x18], edx
inc eax
cmp eax, 0x10
jne 0x50f59f
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 8]
dec edx
sub edx, eax
jb 0x50f5f2
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 0x50f5b7
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.0050f368
xor eax, eax
xor edx, edx
mov dword [esi + eax*4 + 0x18], edx
inc eax
cmp eax, 0x10
jne 0x50f629
mov eax, dword [ebp - 8]
add eax, eax
add eax, eax
add eax, eax
mov dword [esi + 0x54], eax
mov eax, esi
call fcn.0050f368
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4