Function at 0x4028fb
Capabilities:
Create new key via cryptacquirecontext
Hash data via wincrypt
Initialize hashing via wincrypt

Disassembly:
push 0xdc
mov eax, 0x565b46
call fcn.0053daaf
mov eax, dword [ebp + 0xc]
mov edi, ecx
xor esi, esi
mov ebx, edx
mov dword [ebp - 0xd4], eax
cmp edi, esi
je 0x402d4a
cmp ebx, esi
je 0x402d4a
cmp dword [ebp + 8], esi
je 0x402d4a
cmp eax, esi
je 0x402d4a
push 0xf0000000
push 0x18
push esi
push esi
lea eax, [ebp - 0xcc]
push eax
mov byte [ebp - 0xbd], 0
mov dword [ebp - 0xcc], esi
mov dword [ebp - 0xd0], esi
mov dword [ebp - 0xc4], esi
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
jne 0x402a2c
push 0x2f
mov esi, str...COMMONHash256.cpp
push esi
call fcn.005392c0
pop ecx
pop ecx
test eax, eax
je 0x402988
push 0x2f
jmp 0x402998
push 0x5c
push esi
call fcn.005392c0
pop ecx
pop ecx
test eax, eax
je 0x4029a3
push 0x5c
push esi
call fcn.005392c0
pop ecx
pop ecx
inc eax
jmp 0x4029a5
mov eax, esi
push 4
push 0x34
push eax
lea esi, [ebp - 0x6c]
call fcn.00404b01
mov esi, eax
and dword [ebp - 4], 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str._Error_in_AcquireContext_0x_08x__n
push 0
mov ecx, esi
call fcn.00404bdf
mov edi, eax
call fcn.00402776
or dword [ebp - 4], 0xffffffff
pop ecx
pop ecx
lea ecx, [ebp - 0x6c]
call fcn.00404b6d
xor esi, esi
cmp dword [ebp - 0xc4], esi
je 0x4029f8
push dword [ebp - 0xc4]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp dword [ebp - 0xd0], esi
je 0x402a0c
push dword [ebp - 0xd0]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
cmp dword [ebp - 0xcc], esi
je 0x402a21
push esi
push dword [ebp - 0xcc]
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov al, byte [ebp - 0xbd]
jmp 0x402d4c
push 0x1c
mov dword [ebp - 0xc8], esi
mov dword [ebp - 4], 1
call fcn.004385d5
pop ecx
mov esi, eax
push 0x10
pop eax
push eax
mov dword [esi + 8], eax
lea eax, [esi + 0xc]
push edi
push eax
mov dword [ebp - 0xc8], esi
mov dword [esi], 0x208
mov dword [esi + 4], 0x6602
call fcn.005387a0
add esp, 0xc
lea eax, [ebp - 0xd0]
push eax
push 0x100
push 0
push 0x1c
push esi
push dword [ebp - 0xcc]
call dword [sym.imp.ADVAPI32.dll_CryptImportKey]
push esi
mov edi, eax
call fcn.004385e0
xor esi, esi
pop ecx
cmp edi, esi
jne 0x402b00
push 0x2f
mov esi, str...COMMONHash256.cpp
push esi
call fcn.005392c0
pop ecx
pop ecx
test eax, eax
je 0x402aad
push 0x2f
jmp 0x402abd
push 0x5c
push esi
call fcn.005392c0
pop ecx
pop ecx
test eax, eax
je 0x402ac8
push 0x5c
push esi
call fcn.005392c0
pop ecx
pop ecx
inc eax
jmp 0x402aca
mov eax, esi
push 4
push 0x58
push eax
lea esi, [ebp - 0x6c]
call fcn.00404b01
push 0
mov ecx, eax
mov byte [ebp - 4], 2
call fcn.00404bdf
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_in_CryptImportKey_0x_08x__n
call fcn.00402776
mov byte [ebp - 4], 1
jmp 0x4029d8
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0xc4]
push eax
push esi
push dword [ebp - 0xd0]
push 0x8009
push dword [ebp - 0xcc]
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x402b80
push 0x2f
mov esi, str...COMMONHash256.cpp
push esi
call fcn.005392c0
pop ecx
pop ecx
test eax, eax
je 0x402b3e
push 0x2f
jmp 0x402b4e
push 0x5c
push esi
call fcn.005392c0
pop ecx
pop ecx
test eax, eax
je 0x402b59
push 0x5c
push esi
call fcn.005392c0
pop ecx
pop ecx
inc eax
jmp 0x402b5b
mov eax, esi
push 4
pop edi
push edi
push 0x66
push eax
lea esi, [ebp - 0x6c]
call fcn.00404b01
mov esi, eax
mov dword [ebp - 4], edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_in_CryptCreateHash_0x_08x__n
jmp 0x4029c4
push 0x14
lea eax, [ebp - 0xe8]
push esi
push eax
call fcn.00539100
add esp, 0xc
push esi
lea eax, [ebp - 0xe8]
push eax
push 5
pop edi
push edi
push dword [ebp - 0xc4]
mov dword [ebp - 0xe8], 0x800c
call dword [sym.imp.ADVAPI32.dll_CryptSetHashParam]
test eax, eax
jne 0x402c0f
push 0x2f
mov esi, str...COMMONHash256.cpp
push esi
call fcn.005392c0
pop ecx
pop ecx
test eax, eax
je 0x402bcf
push 0x2f
jmp 0x402bdf
push 0x5c
push esi
call fcn.005392c0
pop ecx
pop ecx
test eax, eax
je 0x402bea
push 0x5c
push esi
call fcn.005392c0
pop ecx
pop ecx
inc eax
jmp 0x402bec
mov eax, esi
push 4
push 0x6f
push eax
lea esi, [ebp - 0x6c]
call fcn.00404b01
mov esi, eax
mov dword [ebp - 4], edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_in_CryptSetHashParam_0x_08x__n
jmp 0x4029c4
push esi
push dword [ebp + 8]
push ebx
push dword [ebp - 0xc4]
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
jne 0x402c7f
push 0x2f
mov esi, str...COMMONHash256.cpp
push esi
call fcn.005392c0
pop ecx
pop ecx
test eax, eax
je 0x402c3b
push 0x2f
jmp 0x402c4b
push 0x5c
push esi
call fcn.005392c0
pop ecx
pop ecx
test eax, eax
je 0x402c56
push 0x5c
push esi
call fcn.005392c0
pop ecx
pop ecx
inc eax
jmp 0x402c58
mov eax, esi
push 4
push 0x74
push eax
lea esi, [ebp - 0x6c]
call fcn.00404b01
mov esi, eax
mov dword [ebp - 4], 6
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_in_CryptHashData_0x_08x__n
jmp 0x4029c4
push esi
lea eax, [ebp - 0xc8]
push eax
push dword [ebp - 0xd4]
mov dword [ebp - 0xc8], 0x20
push 2
push dword [ebp - 0xc4]
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
jne 0x402d23
push 0x2f
mov esi, str...COMMONHash256.cpp
push esi
call fcn.005392c0
pop ecx
pop ecx
test eax, eax
je 0x402cc0
push 0x2f
jmp 0x402cd0
push 0x5c
push esi
call fcn.005392c0
pop ecx
pop ecx
test eax, eax
je 0x402cdb
push 0x5c
push esi
call fcn.005392c0
pop ecx
pop ecx
inc eax
jmp 0x402cdd
mov eax, esi
push 4
push 0x7e
push eax
lea esi, [ebp - 0xbc]
call fcn.00404b01
mov esi, eax
mov dword [ebp - 4], 7
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_in_CryptGetHashParam_0x_08x__n
push 0
mov ecx, esi
call fcn.00404bdf
mov edi, eax
call fcn.00402776
or dword [ebp - 4], 0xffffffff
pop ecx
pop ecx
lea ecx, [ebp - 0xbc]
jmp 0x4029dd
mov byte [ebp - 0xbd], 1
jmp 0x4029e2
xor al, al
call fcn.0053db0b
ret 8