Function at 0x66225afd
Capabilities:
Hash data using sha1
Hash data using sha1 via wincrypt
Hash data via wincrypt
Initialize hashing via wincrypt

Disassembly:
push 0x23c
mov eax, 0x6622f533
call fcn.6622a8c1
mov eax, dword [ebp + 8]
mov dword [ebp - 0x238], eax
mov eax, dword [ebp + 0xc]
xor esi, esi
mov dword [ebp - 0x224], eax
mov dword [ebp - 0x220], esi
mov dword [ebp - 4], esi
cmp dword [ebp - 0x220], esi
je 0x66225b43
push dword [ebp - 0x220]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov dword [ebp - 0x220], esi
lea eax, [ebp - 0x220]
push eax
push esi
push esi
push 0x8004
call dword [sym.imp.GrooveUtil.DLL_public:_static_unsigned_long_int___stdcall_GCStdCryptProv::GetHandle_void_]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
mov edi, 0x2e6b3474
mov ebx, 0x80004005
jne 0x66225b73
push ebx
push edi
call fcn.661c8172
push dword [ebp - 0x224]
lea eax, [ebp - 0x21c]
push eax
call fcn.66226d09
mov eax, dword [ebp - 0x220]
mov dword [ebp - 0x224], eax
push esi
lea eax, [ebp - 0x21c]
push eax
call fcn.661c1052
add eax, eax
push eax
lea eax, [ebp - 0x21c]
push eax
push dword [ebp - 0x224]
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
jne 0x66225bbf
push ebx
push edi
call fcn.661c8172
push 4
pop eax
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
lea ecx, [ebp - 0x234]
push ecx
lea ecx, [ebp - 0x22c]
push ecx
push eax
push dword [ebp - 0x220]
mov dword [ebp - 0x234], eax
call esi
test eax, eax
jne 0x66225bf1
push ebx
push edi
call fcn.661c8172
cmp dword [ebp - 0x234], 4
je 0x66225c01
push ebx
push edi
call fcn.661c8172
lea eax, [ebp - 0x248]
push eax
call fcn.661cf3eb
mov byte [ebp - 4], 1
push dword [ebp - 0x22c]
lea ebx, [ebp - 0x248]
call fcn.6620ca4e
mov eax, dword [ebp - 0x248]
xor ebx, ebx
push ebx
lea ecx, [ebp - 0x22c]
push ecx
push eax
push 2
push dword [ebp - 0x220]
mov dword [ebp - 0x224], eax
call esi
test eax, eax
jne 0x66225c52
push 0x80004005
push edi
call fcn.661c8172
push 1
push dword [ebp - 0x22c]
lea eax, [ebp - 0x224]
push dword [ebp - 0x224]
push eax
call dword [sym.imp.GrooveUtil.DLL_public:_static_class_GCStrRetVal___stdcall_GCBase64Coder::Encode_unsigned_char_const___unsigned_long_int__bool_]
mov eax, dword [eax]
mov dword [ebp - 0x230], eax
mov byte [ebp - 4], 2
mov dword [ebp - 0x228], ebx
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x230]
cmp eax, ebx
jne 0x66225c94
mov eax, dword [sym.imp.GrooveUtil.DLL_wchar_t_const__const_raw_GCStr::SAFE_EMPTY_STRING_CBSTR]
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x228]
push str.Groove:PathMutex:__s_
push eax
call dword [sym.imp.GrooveUtil.DLL_public:_long_int___cdecl_GCStr::Format_wchar_t_const__]
mov eax, dword [ebp - 0x228]
mov esi, dword [ebp - 0x238]
add esp, 0xc
mov dword [ebp - 0x228], ebx
mov dword [esi], eax
mov byte [ebp - 4], 2
cmp dword [ebp - 0x228], ebx
mov edi, dword [sym.imp.GrooveUtil.DLL_private:_void___thiscall_GCStr::_Release_void_]
je 0x66225cd8
lea ecx, [ebp - 0x228]
call edi
mov byte [ebp - 4], 1
cmp dword [ebp - 0x230], ebx
je 0x66225cec
lea ecx, [ebp - 0x230]
call edi
mov byte [ebp - 4], bl
lea eax, [ebp - 0x248]
push eax
call fcn.661cf413
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x220], ebx
je 0x66225d19
push dword [ebp - 0x220]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov dword [ebp - 0x220], ebx
mov eax, esi
call fcn.6622a944
ret 8