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

Disassembly:
push 0x238
mov eax, 0x6622f4dd
call fcn.6622a8c1
mov eax, dword [ebp + 8]
mov dword [ebp - 0x234], eax
mov eax, dword [ebp + 0xc]
xor esi, esi
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x21c], esi
mov dword [ebp - 4], esi
cmp dword [ebp - 0x21c], esi
je 0x66225d69
push dword [ebp - 0x21c]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov dword [ebp - 0x21c], esi
lea eax, [ebp - 0x21c]
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 0x66225d99
push ebx
push edi
call fcn.661c8172
push dword [ebp - 0x220]
lea eax, [ebp - 0x218]
push eax
call fcn.66226d09
mov eax, dword [ebp - 0x21c]
mov dword [ebp - 0x220], eax
push esi
lea eax, [ebp - 0x218]
push eax
call fcn.661c1052
add eax, eax
push eax
lea eax, [ebp - 0x218]
push eax
push dword [ebp - 0x220]
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
jne 0x66225de5
push ebx
push edi
call fcn.661c8172
push 4
pop eax
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
lea ecx, [ebp - 0x230]
push ecx
lea ecx, [ebp - 0x228]
push ecx
push eax
push dword [ebp - 0x21c]
mov dword [ebp - 0x230], eax
call esi
test eax, eax
jne 0x66225e17
push ebx
push edi
call fcn.661c8172
cmp dword [ebp - 0x230], 4
je 0x66225e27
push ebx
push edi
call fcn.661c8172
lea eax, [ebp - 0x244]
push eax
call fcn.661cf3eb
mov byte [ebp - 4], 1
push dword [ebp - 0x228]
lea ebx, [ebp - 0x244]
call fcn.6620ca4e
mov eax, dword [ebp - 0x244]
xor ebx, ebx
push ebx
lea ecx, [ebp - 0x228]
push ecx
push eax
push 2
push dword [ebp - 0x21c]
mov dword [ebp - 0x220], eax
call esi
test eax, eax
jne 0x66225e78
push 0x80004005
push edi
call fcn.661c8172
push 1
push dword [ebp - 0x228]
lea eax, [ebp - 0x220]
push dword [ebp - 0x220]
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 - 0x22c], eax
mov byte [ebp - 4], 2
mov dword [ebp - 0x224], ebx
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x22c]
cmp eax, ebx
jne 0x66225eba
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 - 0x224]
push str.Groove:FileWatermark:__s_
push eax
call dword [sym.imp.GrooveUtil.DLL_public:_long_int___cdecl_GCStr::Format_wchar_t_const__]
mov eax, dword [ebp - 0x224]
mov esi, dword [ebp - 0x234]
add esp, 0xc
mov dword [ebp - 0x224], ebx
mov dword [esi], eax
mov byte [ebp - 4], 2
cmp dword [ebp - 0x224], ebx
mov edi, dword [sym.imp.GrooveUtil.DLL_private:_void___thiscall_GCStr::_Release_void_]
je 0x66225efe
lea ecx, [ebp - 0x224]
call edi
mov byte [ebp - 4], 1
cmp dword [ebp - 0x22c], ebx
je 0x66225f12
lea ecx, [ebp - 0x22c]
call edi
mov byte [ebp - 4], bl
lea eax, [ebp - 0x244]
push eax
call fcn.661cf413
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x21c], ebx
je 0x66225f3f
push dword [ebp - 0x21c]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov dword [ebp - 0x21c], ebx
mov eax, esi
call fcn.6622a944
ret 8