Function at 0x48b51e
Capabilities:
Hash data via wincrypt
Initialize hashing via wincrypt

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
push ebx
xor ebx, ebx
cmp dword [ebp + 0x14], 0xffffcfc7
push esi
push edi
mov dword [ebp - 0xc], ebx
jne 0x48b6c3
mov ecx, dword [ebp + 0x18]
push 0xffffffffffffffff
push 0x4ba58c
call fcn.0043fcd5
xor eax, eax
inc eax
push 0x1c00
lea ecx, [ebp - 0x10]
mov dword [ebp + 0x14], ebx
mov dword [ebp - 0x38], 0x400
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x24], eax
call fcn.0043fc43
mov eax, dword [ebp - 0x10]
mov esi, dword [sym.imp.ADVAPI32.dll_CryptEnumProviderTypesW]
lea ecx, [eax + 0x1000]
lea edi, [eax + 0x1400]
add eax, 0x1800
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x14]
push eax
push ebx
lea eax, [ebp - 0x18]
push eax
push ebx
push ebx
mov dword [ebp - 0x34], ecx
push ebx
jmp 0x48b5b9
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x34]
lea eax, [ebp - 0x18]
push eax
push ebx
push ebx
push dword [ebp + 0x14]
call esi
inc dword [ebp + 0x14]
lea eax, [ebp - 0x14]
push eax
push ebx
lea eax, [ebp - 0x18]
push eax
push ebx
push ebx
push dword [ebp + 0x14]
call esi
test eax, eax
jne 0x48b596
push ebx
push 1
push ebx
push ebx
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
jne 0x48b5da
xor ebx, ebx
inc ebx
jmp 0x48b6b4
push dword [ebp - 0x1c]
lea eax, [ebp - 0x38]
push eax
push edi
push 1
push dword [ebp - 0x28]
call dword [sym.imp.ADVAPI32.dll_CryptGetProvParam]
test eax, eax
je 0x48b69e
mov eax, dword [edi]
mov dword [ebp + 0x14], eax
lea eax, [edi + 4]
mov ecx, dword [eax]
add eax, 4
mov esi, dword [eax]
push 0x63
mov dword [ebp - 0x34], ecx
pop ecx
add eax, 4
cmp esi, ecx
mov dword [ebp - 0x1c], ebx
jae 0x48b616
mov ecx, esi
push ecx
push eax
push dword [ebp - 0x20]
call fcn.0049d1a0
add esp, 0xc
push 0x63
pop eax
cmp esi, eax
jae 0x48b62c
mov eax, esi
mov ecx, dword [ebp - 0x20]
mov byte [eax + ecx], bl
mov eax, dword [ebp + 0x14]
and eax, 0xe000
cmp eax, 0x2000
je 0x48b672
cmp eax, 0x6000
je 0x48b66b
cmp eax, 0x8000
je 0x48b664
cmp eax, 0xa000
je 0x48b65d
mov eax, 0x4ba584
jmp 0x48b677
mov eax, 0x4ba57c
jmp 0x48b677
mov eax, 0x4ba574
jmp 0x48b677
mov eax, 0x4ba56c
jmp 0x48b677
mov eax, 0x4ba564
push ecx
push esi
push eax
push dword [ebp - 0x34]
push dword [ebp + 0x14]
push str._8.8xh___4d___4s___4d___s_r_n
push dword [ebp - 0x10]
call dword [sym.imp.USER32.dll_wsprintfA]
mov ecx, dword [ebp + 0x18]
add esp, 0x1c
push dword [ebp - 0x10]
call fcn.0043fc8c
jmp 0x48b6a1
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], ebx
jne 0x48b5da
push ebx
push dword [ebp - 0x28]
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
lea ecx, [ebp - 0x10]
call fcn.00439cfd
mov eax, ebx
jmp 0x48b7d4
push 4
pop esi
push 0xf0000000
push 1
push str.Microsoft_Base_Cryptographic_Provider_v1.0
push ebx
lea eax, [ebp - 0xc]
push eax
mov dword [ebp - 4], esi
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
jne 0x48b6ef
call dword [sym.imp.KERNEL32.DLL_GetLastError]
jmp 0x48b7d4
lea eax, [ebp - 8]
push eax
push ebx
push ebx
push dword [ebp + 0x14]
push dword [ebp - 0xc]
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x48b70f
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
jmp 0x48b734
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
jne 0x48b745
call dword [sym.imp.KERNEL32.DLL_GetLastError]
push dword [ebp - 8]
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
push ebx
push dword [ebp - 0xc]
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov eax, esi
jmp 0x48b7d4
push ebx
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x2c]
push eax
push esi
push dword [ebp - 8]
mov dword [ebp - 4], esi
mov esi, dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
call esi
push dword [ebp - 0x2c]
lea ecx, [ebp - 0x30]
call fcn.0043fc43
mov eax, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x30]
push ebx
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
push edi
push 2
push dword [ebp - 8]
call esi
mov esi, dword [ebp + 0x18]
push 0x4af60a
push esi
call dword [sym.imp.KERNEL32.DLL_lstrcpyA]
mov dword [ebp + 0x14], esi
xor esi, esi
cmp dword [ebp - 4], ebx
jbe 0x48b7b7
movzx eax, byte [esi + edi]
push eax
push str._02X
push dword [ebp + 0x14]
call dword [sym.imp.USER32.dll_wsprintfA]
add dword [ebp + 0x14], 2
add esp, 0xc
inc esi
cmp esi, dword [ebp - 4]
jb 0x48b797
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
push ebx
push dword [ebp - 0xc]
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
lea ecx, [ebp - 0x30]
call fcn.00439cfd
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret