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

Disassembly:
push 0x23c
mov eax, 0x66240656
call fcn.6623ba81
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 0x662368b3
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 0x662368e3
push ebx
push edi
call fcn.661d7d78
push dword [ebp - 0x224]
lea eax, [ebp - 0x21c]
push eax
call fcn.66237b99
mov eax, dword [ebp - 0x220]
mov dword [ebp - 0x224], eax
push esi
lea eax, [ebp - 0x21c]
push eax
call fcn.661d1052
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 0x6623692f
push ebx
push edi
call fcn.661d7d78
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 0x66236961
push ebx
push edi
call fcn.661d7d78
cmp dword [ebp - 0x234], 4
je 0x66236971
push ebx
push edi
call fcn.661d7d78
lea eax, [ebp - 0x248]
push eax
call fcn.661def35
mov byte [ebp - 4], 1
push dword [ebp - 0x22c]
lea ebx, [ebp - 0x248]
call fcn.661db534
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 0x662369c2
push 0x80004005
push edi
call fcn.661d7d78
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 0x66236a04
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 0x66236a48
lea ecx, [ebp - 0x228]
call edi
mov byte [ebp - 4], 1
cmp dword [ebp - 0x230], ebx
je 0x66236a5c
lea ecx, [ebp - 0x230]
call edi
mov byte [ebp - 4], bl
lea eax, [ebp - 0x248]
push eax
call fcn.6621d9e9
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x220], ebx
je 0x66236a89
push dword [ebp - 0x220]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov dword [ebp - 0x220], ebx
mov eax, esi
call fcn.6623bb04
ret 8