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

Disassembly:
push 0xdc
mov eax, 0x565837
call fcn.0053d77f
mov eax, dword [ebp + 0xc]
mov edi, ecx
xor esi, esi
mov ebx, edx
mov dword [ebp - 0xd4], eax
cmp edi, esi
je 0x40307a
cmp ebx, esi
je 0x40307a
cmp dword [ebp + 8], esi
je 0x40307a
cmp eax, esi
je 0x40307a
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 0x402d5c
push 0x2f
mov esi, str...COMMONHash256.cpp
push esi
call fcn.00538fb0
pop ecx
pop ecx
test eax, eax
je 0x402cb8
push 0x2f
jmp 0x402cc8
push 0x5c
push esi
call fcn.00538fb0
pop ecx
pop ecx
test eax, eax
je 0x402cd3
push 0x5c
push esi
call fcn.00538fb0
pop ecx
pop ecx
inc eax
jmp 0x402cd5
mov eax, esi
push 4
push 0x34
push eax
lea esi, [ebp - 0x6c]
call fcn.00404e75
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.00404f53
mov esi, eax
call fcn.00402aa4
or dword [ebp - 4], 0xffffffff
pop ecx
pop ecx
lea ecx, [ebp - 0x6c]
call fcn.00404ee1
xor esi, esi
cmp dword [ebp - 0xc4], esi
je 0x402d28
push dword [ebp - 0xc4]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp dword [ebp - 0xd0], esi
je 0x402d3c
push dword [ebp - 0xd0]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
cmp dword [ebp - 0xcc], esi
je 0x402d51
push esi
push dword [ebp - 0xcc]
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov al, byte [ebp - 0xbd]
jmp 0x40307c
push 0x1c
mov dword [ebp - 0xc8], esi
mov dword [ebp - 4], 1
call fcn.004382b7
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.00538480
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.004382c2
xor esi, esi
pop ecx
cmp edi, esi
jne 0x402e30
push 0x2f
mov esi, str...COMMONHash256.cpp
push esi
call fcn.00538fb0
pop ecx
pop ecx
test eax, eax
je 0x402ddd
push 0x2f
jmp 0x402ded
push 0x5c
push esi
call fcn.00538fb0
pop ecx
pop ecx
test eax, eax
je 0x402df8
push 0x5c
push esi
call fcn.00538fb0
pop ecx
pop ecx
inc eax
jmp 0x402dfa
mov eax, esi
push 4
push 0x58
push eax
lea esi, [ebp - 0x6c]
call fcn.00404e75
push 0
mov ecx, eax
mov byte [ebp - 4], 2
call fcn.00404f53
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_in_CryptImportKey_0x_08x__n
call fcn.00402aa4
mov byte [ebp - 4], 1
jmp 0x402d08
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 0x402eb0
push 0x2f
mov esi, str...COMMONHash256.cpp
push esi
call fcn.00538fb0
pop ecx
pop ecx
test eax, eax
je 0x402e6e
push 0x2f
jmp 0x402e7e
push 0x5c
push esi
call fcn.00538fb0
pop ecx
pop ecx
test eax, eax
je 0x402e89
push 0x5c
push esi
call fcn.00538fb0
pop ecx
pop ecx
inc eax
jmp 0x402e8b
mov eax, esi
push 4
pop edi
push edi
push 0x66
push eax
lea esi, [ebp - 0x6c]
call fcn.00404e75
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 0x402cf4
push 0x14
lea eax, [ebp - 0xe8]
push esi
push eax
call fcn.00538860
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 0x402f3f
push 0x2f
mov esi, str...COMMONHash256.cpp
push esi
call fcn.00538fb0
pop ecx
pop ecx
test eax, eax
je 0x402eff
push 0x2f
jmp 0x402f0f
push 0x5c
push esi
call fcn.00538fb0
pop ecx
pop ecx
test eax, eax
je 0x402f1a
push 0x5c
push esi
call fcn.00538fb0
pop ecx
pop ecx
inc eax
jmp 0x402f1c
mov eax, esi
push 4
push 0x6f
push eax
lea esi, [ebp - 0x6c]
call fcn.00404e75
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 0x402cf4
push esi
push dword [ebp + 8]
push ebx
push dword [ebp - 0xc4]
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
jne 0x402faf
push 0x2f
mov esi, str...COMMONHash256.cpp
push esi
call fcn.00538fb0
pop ecx
pop ecx
test eax, eax
je 0x402f6b
push 0x2f
jmp 0x402f7b
push 0x5c
push esi
call fcn.00538fb0
pop ecx
pop ecx
test eax, eax
je 0x402f86
push 0x5c
push esi
call fcn.00538fb0
pop ecx
pop ecx
inc eax
jmp 0x402f88
mov eax, esi
push 4
push 0x74
push eax
lea esi, [ebp - 0x6c]
call fcn.00404e75
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 0x402cf4
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 0x403053
push 0x2f
mov esi, str...COMMONHash256.cpp
push esi
call fcn.00538fb0
pop ecx
pop ecx
test eax, eax
je 0x402ff0
push 0x2f
jmp 0x403000
push 0x5c
push esi
call fcn.00538fb0
pop ecx
pop ecx
test eax, eax
je 0x40300b
push 0x5c
push esi
call fcn.00538fb0
pop ecx
pop ecx
inc eax
jmp 0x40300d
mov eax, esi
push 4
push 0x7e
push eax
lea esi, [ebp - 0xbc]
call fcn.00404e75
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.00404f53
mov esi, eax
call fcn.00402aa4
or dword [ebp - 4], 0xffffffff
pop ecx
pop ecx
lea ecx, [ebp - 0xbc]
jmp 0x402d0d
mov byte [ebp - 0xbd], 1
jmp 0x402d12
xor al, al
call fcn.0053d7db
ret 8