Function at 0x401200
Capabilities:
Hash data via bcrypt

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x41c798
push 0x4027e0
mov eax, dword fs:[0]
push eax
sub esp, 0x884
mov eax, dword [section..data]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x1c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov edi, edx
mov eax, ecx
mov dword [ebp - 0x860], eax
mov dword [ebp - 0x890], 0
mov dword [ebp - 0x85c], 0
xor esi, esi
mov dword [ebp - 0x894], esi
mov dword [ebp - 0x854], esi
mov dword [ebp - 0x888], esi
mov dword [ebp - 0x864], esi
mov dword [ebp - 0x88c], esi
mov dword [ebp - 0x880], esi
mov dword [ebp - 0x884], esi
mov dword [ebp - 0x87c], edi
mov dword [ebp - 4], esi
test eax, eax
je 0x4012da
push edi
push str.Test_hash__S_r_n
call fcn.00401c30
add esp, 8
lea eax, [ebp - 0x86c]
push eax
lea eax, [ebp - 0x870]
push eax
lea eax, [ebp - 0x854]
push eax
push esi
push 0x40000
push dword [ebp - 0x860]
call dword [sym.imp.CRYPT32.dll_CryptAcquireCertificatePrivateKey]
test eax, eax
jne 0x40130a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.error_CryptAcquireCertificatePrivateKey_0x_08X_r_n
call fcn.00401c30
add esp, 8
mov edi, dword [ebp - 0x890]
mov dword [ebp - 4], 0xfffffffe
call fcn.0040173b
mov eax, edi
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.00401c5e
mov esp, ebp
pop ebp
ret
push 0
test edi, edi
je 0x4015b8
push 0
push edi
lea eax, [ebp - 0x888]
push eax
call dword [sym.imp.bcrypt.dll_BCryptOpenAlgorithmProvider]
test eax, eax
je 0x401330
push eax
push str.error_BCryptOpenAlgorithmProvider_0x_08X_r_n
jmp 0x4012d2
mov dword [ebp - 0x85c], 4
push 0
lea eax, [ebp - 0x85c]
push eax
push 4
lea eax, [ebp - 0x864]
push eax
push str.ObjectLength
push dword [ebp - 0x888]
mov edi, dword [sym.imp.bcrypt.dll_BCryptGetProperty]
call edi
test eax, eax
jne 0x401328
mov dword [ebp - 0x85c], 4
push eax
lea eax, [ebp - 0x85c]
push eax
push 4
lea eax, [ebp - 0x858]
push eax
push str.HashDigestLength
push dword [ebp - 0x888]
call edi
test eax, eax
je 0x40139a
push eax
push str.error_BCryptGetProperty_0x_08X_r_n
jmp 0x4012d2
push 0
push 0
push 0
push dword [ebp - 0x864]
lea eax, [ebp - 0x850]
push eax
lea eax, [ebp - 0x88c]
push eax
push dword [ebp - 0x888]
call dword [sym.imp.bcrypt.dll_BCryptCreateHash]
test eax, eax
je 0x4013cf
push eax
push str.error_BCryptCreateHash_0x_08X_r_n
jmp 0x4012d2
push 0
push 0x14
push str.b_srklhg_nslgnsklgeglseklngeklsnglsenge
push dword [ebp - 0x88c]
call dword [sym.imp.bcrypt.dll_BCryptHashData]
test eax, eax
je 0x4013f3
push eax
push str.error_BCryptHashData_0x_08X_r_n
jmp 0x4012d2
push 0
push dword [ebp - 0x858]
lea eax, [ebp - 0x80]
push eax
push dword [ebp - 0x88c]
call dword [sym.imp.bcrypt.dll_BCryptFinishHash]
test eax, eax
je 0x40141a
push eax
push str.error_BCryptFinishHash_0x_08X_r_n
jmp 0x4012d2
mov dword [ebp - 0x874], 0
push 2
lea eax, [ebp - 0x874]
push eax
push 0
push 0
push dword [ebp - 0x858]
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x87c]
push eax
push dword [ebp - 0x854]
mov edi, dword [sym.imp.ncrypt.dll_NCryptSignHash]
call edi
test eax, eax
je 0x40145f
push eax
push str.error_NCryptSignHash_0x_08X_r_n
jmp 0x4012d2
push dword [ebp - 0x874]
call fcn.00408c23
add esp, 4
mov esi, eax
mov dword [ebp - 0x894], esi
test esi, esi
jne 0x401485
push 0xe
push str.error_malloc_0x_08X_r_n
jmp 0x4012d2
push 2
lea eax, [ebp - 0x874]
push eax
push dword [ebp - 0x874]
push esi
push dword [ebp - 0x858]
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x87c]
push eax
push dword [ebp - 0x854]
call edi
test eax, eax
jne 0x401454
push 2
push dword [ebp - 0x874]
push esi
push dword [ebp - 0x858]
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x87c]
push eax
push dword [ebp - 0x854]
call dword [sym.imp.ncrypt.dll_NCryptVerifySignature]
test eax, eax
je 0x4014e7
push eax
push str.error_NCryptVerifySignature_0x_08X_r_n
jmp 0x4012d2
mov dword [ebp - 0x868], 0x3e8
push 0
lea eax, [ebp - 0x868]
push eax
push 0x3e8
lea eax, [ebp - 0x468]
push eax
push 0
push str.RSAPUBLICBLOB
push 0
push dword [ebp - 0x854]
call dword [sym.imp.ncrypt.dll_NCryptExportKey]
test eax, eax
je 0x40152a
push eax
push str.error_NCryptExportKey_0x_08X_r_n
jmp 0x4012d2
push 0
push 0
push 0x41bdb0
lea eax, [ebp - 0x884]
push eax
call dword [sym.imp.bcrypt.dll_BCryptOpenAlgorithmProvider]
test eax, eax
jne 0x401328
push eax
push dword [ebp - 0x868]
lea eax, [ebp - 0x468]
push eax
lea eax, [ebp - 0x880]
push eax
push str.RSAPUBLICBLOB
push 0
push dword [ebp - 0x884]
call dword [sym.imp.bcrypt.dll_BCryptImportKeyPair]
test eax, eax
je 0x40157f
push eax
push str.error_BCryptImportKeyPair_0x_08X_r_n
jmp 0x4012d2
push 2
push dword [ebp - 0x874]
push esi
push dword [ebp - 0x858]
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x87c]
push eax
push dword [ebp - 0x880]
call dword [sym.imp.bcrypt.dll_BCryptVerifySignature]
test eax, eax
je 0x40171f
push eax
push str.error_BCryptVerifySignature_0x_08X_r_n
jmp 0x4012d2
movups xmm0, xmmword [str.gnesjogseonbsdo_bosdbnsdbsdklnblsdn_hesjgvslegpgesoeskseg_glse_vl_sel_evl_slev_ls_lvle]
movups xmmword [ebp - 0x80], xmm0
movups xmm0, xmmword [0x41be18]
movups xmmword [ebp - 0x70], xmm0
mov eax, dword [0x41be28]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x858], 0x24
mov dword [ebp - 0x878], 0
lea eax, [ebp - 0x878]
push eax
push 0
push 0
push 0x24
lea eax, [ebp - 0x80]
push eax
push 0
push dword [ebp - 0x854]
mov edi, dword [sym.imp.ncrypt.dll_NCryptSignHash]
call edi
test eax, eax
jne 0x401454
push dword [ebp - 0x878]
call fcn.00408c23
add esp, 4
mov esi, eax
mov dword [ebp - 0x894], esi
test esi, esi
je 0x401479
push 0
lea eax, [ebp - 0x878]
push eax
push dword [ebp - 0x878]
push esi
push dword [ebp - 0x858]
lea eax, [ebp - 0x80]
push eax
push 0
push dword [ebp - 0x854]
call edi
test eax, eax
jne 0x401454
push 2
push dword [ebp - 0x878]
push esi
push dword [ebp - 0x858]
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x87c]
push eax
push dword [ebp - 0x854]
call dword [sym.imp.ncrypt.dll_NCryptVerifySignature]
test eax, eax
jne 0x4014dc
mov dword [ebp - 0x860], 0x3e8
push eax
lea eax, [ebp - 0x860]
push eax
push 0x3e8
lea eax, [ebp - 0x468]
push eax
push 0
push str.RSAPUBLICBLOB
push 0
push dword [ebp - 0x854]
call dword [sym.imp.ncrypt.dll_NCryptExportKey]
test eax, eax
jne 0x40151f
push eax
push eax
push 0x41bdb0
lea eax, [ebp - 0x884]
push eax
call dword [sym.imp.bcrypt.dll_BCryptOpenAlgorithmProvider]
test eax, eax
jne 0x401328
push eax
push dword [ebp - 0x860]
lea eax, [ebp - 0x468]
push eax
lea eax, [ebp - 0x880]
push eax
push str.RSAPUBLICBLOB
push 0
push dword [ebp - 0x884]
call dword [sym.imp.bcrypt.dll_BCryptImportKeyPair]
test eax, eax
jne 0x401574
push 2
push dword [ebp - 0x878]
jmp 0x401587
mov edi, 1
mov dword [ebp - 0x890], edi
jmp 0x4012e0