Function at 0x670a50
Capabilities:
Hash data using sha1

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8fc
cmp byte [ebp + 0xc], 0
push ebx
push esi
mov esi, eax
mov ebx, ecx
jne 0x670a77
push esi
call fcn.006703c0
test al, al
jne 0x670a77
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea eax, [ebp - 0x58]
push edi
push eax
call fcn.0066aca0
mov edi, eax
call fcn.0066b070
push eax
mov eax, 0x40
call fcn.0066eab0
lea ecx, [ebp - 4]
push ecx
lea edx, [ebp - 0xbc]
push edx
push eax
lea eax, [ebp - 0x58]
push eax
mov dword [ebp - 4], 0x40
call fcn.0066d090
mov ecx, dword [ebp - 4]
add esp, 0x10
xor eax, eax
push 4
lea edx, [ebp - 4]
push edx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x78], eax
mov byte [ebp - 0x7c], al
push 0x10
mov eax, esi
mov byte [ebp + ecx - 0xbc], 0
mov dword [ebp - 0x2c], 0x67452301
mov dword [ebp - 0x28], 0xefcdab89
mov dword [ebp - 0x24], 0x98badcfe
mov dword [ebp - 0x20], 0x10325476
mov dword [ebp - 0x1c], 0xc3d2e1f0
call fcn.0066ce00
test al, al
je 0x670b06
mov edi, dword [ebp - 4]
jmp 0x670b09
or edi, 0xffffffff
push 4
lea eax, [ebp - 4]
push eax
push 0xc
mov eax, esi
call fcn.0066ce00
test al, al
je 0x670b21
mov eax, dword [ebp - 4]
jmp 0x670b24
or eax, 0xffffffff
push edi
push eax
push esi
lea esi, [ebp - 0x7c]
call fcn.0066d310
cmp byte [ebp - 0x7c], 0
jne 0x670b3a
call fcn.0066d860
mov ecx, dword [ebp - 0x2c]
movzx eax, word [ebp - 0x2c]
shr ecx, 0x10
rol cx, 8
rol ax, 8
movzx edx, cx
movzx ecx, ax
shl ecx, 0x10
or edx, ecx
movzx ecx, word [ebp - 0x28]
mov dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x28]
shr edx, 0x10
rol dx, 8
rol cx, 8
movzx eax, dx
movzx edx, cx
shl edx, 0x10
or eax, edx
mov dx, word [ebp - 0x24]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x24]
shr eax, 0x10
rol ax, 8
rol dx, 8
movzx ecx, ax
movzx eax, dx
shl eax, 0x10
or ecx, eax
movzx eax, word [ebp - 0x20]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x20]
shr ecx, 0x10
rol cx, 8
rol ax, 8
movzx edx, cx
movzx ecx, ax
shl ecx, 0x10
or edx, ecx
movzx ecx, word [ebp - 0x1c]
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x1c]
shr edx, 0x10
rol dx, 8
movzx eax, dx
rol cx, 8
movzx edx, cx
shl edx, 0x10
or eax, edx
mov dword [ebp - 8], eax
lea eax, [ebp - 4]
push eax
lea ecx, [ebp - 0xfc]
push ecx
lea edx, [ebp - 0x18]
push 0x14
push edx
mov dword [ebp - 4], 0x40
call fcn.0066d090
mov eax, dword [ebp - 4]
add esp, 0x10
cmp byte [ebp + 0xc], 0
mov byte [ebp + eax - 0xfc], 0
mov eax, 0x68735c
jne 0x670c15
mov eax, 0x687374
push 0
push eax
mov edi, ebx
call fcn.006708d0
mov ecx, dword [ebp + 8]
push 1
push ecx
call fcn.006708d0
push 0
push 0x68738c
call fcn.006708d0
push 1
lea edx, [ebp - 0xbc]
push edx
call fcn.006708d0
push 0
push 0x687394
call fcn.006708d0
push 1
lea eax, [ebp - 0xfc]
push eax
call fcn.006708d0
cmp byte [ebp + 0xc], 0
pop edi
je 0x670cb6
lea esi, [ebx + 4]
push esi
lea ecx, [ebp - 0x8fc]
push 0x800
push ecx
call fcn.0067827c
lea eax, [ebp - 0x8fc]
add esp, 0xc
mov dword [ebp + 0xc], 0x800
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x670c90
sub eax, edx
lea edx, [ebp + 0xc]
push edx
push esi
push eax
lea eax, [ebp - 0x8fc]
push eax
call fcn.0066d090
mov ecx, dword [ebp + 0xc]
add esp, 0x10
mov byte [ecx + ebx + 4], 0
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret 8