Function at 0x5a0fe0
Capabilities:
Initialize hashing via wincrypt

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d7751
mov eax, dword fs:[0]
push eax
sub esp, 0x328
mov eax, dword [0x6a7c78]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push str.msRsaSignHash
mov eax, dword [ebp + 0x18]
push eax
lea ecx, [ebp - 0x224]
call fcn.00505810
mov dword [ebp - 4], 0
mov ecx, dword [ebp + 0x14]
call fcn.004aed60
mov byte [ebp - 0x2a9], 0
mov ecx, dword [ebp + 0x18]
push ecx
mov ecx, dword [ebp + 8]
call fcn.005506c0
mov dword [ebp - 0x2a8], eax
cmp dword [ebp - 0x2a8], 0
jne 0x5a1086
push 0x67ddd4
mov edx, dword [ebp + 0x18]
mov eax, dword [edx]
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax + 0x14]
call edx
mov byte [ebp - 0x32d], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x224]
call fcn.005058c0
mov al, byte [ebp - 0x32d]
jmp 0x5a14ac
lea ecx, [ebp - 0x324]
call fcn.004d39d0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2a4]
call fcn.004d39d0
mov byte [ebp - 4], 2
mov eax, dword [ebp + 0x18]
push eax
lea ecx, [ebp - 0x324]
push ecx
mov ecx, dword [ebp - 0x2a8]
call fcn.00559250
lea edx, [ebp - 0x324]
push edx
push str.cert_key_container
mov ecx, dword [ebp + 0x18]
call fcn.00505490
mov eax, dword [ebp + 0x18]
push eax
lea ecx, [ebp - 0x2a4]
push ecx
mov ecx, dword [ebp - 0x2a8]
call fcn.005592a0
lea edx, [ebp - 0x2a4]
push edx
push 0x67de08
mov ecx, dword [ebp + 0x18]
call fcn.00505490
mov dword [ebp - 0x228], 0
movzx eax, byte [ebp + 0xc]
test eax, eax
je 0x5a113a
mov ecx, dword [ebp + 0x18]
push ecx
push 1
push 0
lea ecx, [ebp - 0x324]
call fcn.004aeda0
push eax
lea ecx, [ebp - 0x2a4]
call fcn.004aeda0
push eax
call fcn.005c1a30
add esp, 0x14
mov dword [ebp - 0x228], eax
jmp 0x5a1166
mov edx, dword [ebp + 0x18]
push edx
push 0
lea ecx, [ebp - 0x324]
call fcn.004aeda0
push eax
lea ecx, [ebp - 0x2a4]
call fcn.004aeda0
push eax
call fcn.005c19d0
add esp, 0x10
mov dword [ebp - 0x228], eax
cmp dword [ebp - 0x228], 0
jne 0x5a11c3
push str.Failed_to_acquire_CSP.
mov eax, dword [ebp + 0x18]
mov edx, dword [eax]
mov ecx, dword [ebp + 0x18]
mov eax, dword [edx + 0x14]
call eax
mov byte [ebp - 0x32e], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2a4]
call fcn.004d3b20
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x324]
call fcn.004d3b20
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x224]
call fcn.005058c0
mov al, byte [ebp - 0x32e]
jmp 0x5a14ac
mov ecx, dword [ebp - 0x228]
call fcn.004eff70
mov dword [ebp - 0x22c], eax
lea ecx, [ebp - 0x218]
push ecx
push 0
push 0
push 0x8008
mov edx, dword [ebp - 0x22c]
push edx
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x5a1260
mov ecx, dword [ebp + 0x18]
call fcn.00505610
mov eax, dword [ebp - 0x228]
push eax
call fcn.00504110
add esp, 4
push str.Failed_to_create_HCRYPTHASH
mov ecx, dword [ebp + 0x18]
mov edx, dword [ecx]
mov ecx, dword [ebp + 0x18]
mov eax, dword [edx + 0x14]
call eax
mov byte [ebp - 0x32f], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2a4]
call fcn.004d3b20
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x324]
call fcn.004d3b20
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x224]
call fcn.005058c0
mov al, byte [ebp - 0x32f]
jmp 0x5a14ac
push 0
mov ecx, dword [ebp + 0x10]
push ecx
push 2
mov edx, dword [ebp - 0x218]
push edx
call dword [sym.imp.ADVAPI32.dll_CryptSetHashParam]
test eax, eax
jne 0x5a12f1
mov ecx, dword [ebp + 0x18]
call fcn.00505610
mov eax, dword [ebp - 0x218]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov ecx, dword [ebp - 0x228]
push ecx
call fcn.00504110
add esp, 4
push str.Failed_to_CryptSetHashParam
mov edx, dword [ebp + 0x18]
mov eax, dword [edx]
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax + 0x14]
call edx
mov byte [ebp - 0x330], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2a4]
call fcn.004d3b20
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x324]
call fcn.004d3b20
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x224]
call fcn.005058c0
mov al, byte [ebp - 0x330]
jmp 0x5a14ac
mov dword [ebp - 0x328], 0x200
mov dword [ebp - 0x32c], 0
cmp dword [ebp - 0x32c], 0
jne 0x5a1335
lea eax, [ebp - 0x328]
push eax
lea ecx, [ebp - 0x214]
push ecx
push 0
push 0
push 1
mov edx, dword [ebp - 0x218]
push edx
call dword [sym.imp.ADVAPI32.dll_CryptSignHashA]
mov dword [ebp - 0x32c], eax
cmp dword [ebp - 0x32c], 0
jne 0x5a1358
mov ecx, dword [ebp + 0x18]
call fcn.00505610
push str.Failed_to_CryptSignHash_with_AT_KEYEXCHANGE_key.
mov eax, dword [ebp + 0x18]
mov edx, dword [eax]
mov ecx, dword [ebp + 0x18]
mov eax, dword [edx + 0x14]
call eax
cmp dword [ebp - 0x32c], 0
jne 0x5a140d
lea ecx, [ebp - 0x328]
push ecx
lea edx, [ebp - 0x214]
push edx
push 0
push 0
push 2
mov eax, dword [ebp - 0x218]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptSignHashA]
mov dword [ebp - 0x32c], eax
cmp dword [ebp - 0x32c], 0
jne 0x5a140d
mov ecx, dword [ebp + 0x18]
call fcn.00505610
mov ecx, dword [ebp - 0x218]
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov edx, dword [ebp - 0x228]
push edx
call fcn.00504110
add esp, 4
push str.Failed_to_CryptSignHash_with_AT_SIGNATURE_key
mov eax, dword [ebp + 0x18]
mov edx, dword [eax]
mov ecx, dword [ebp + 0x18]
mov eax, dword [edx + 0x14]
call eax
mov byte [ebp - 0x331], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2a4]
call fcn.004d3b20
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x324]
call fcn.004d3b20
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x224]
call fcn.005058c0
mov al, byte [ebp - 0x331]
jmp 0x5a14ac
mov ecx, dword [ebp + 0x18]
movzx edx, byte [ecx + 0x48]
test edx, edx
je 0x5a142c
mov eax, dword [ebp - 0x328]
push eax
push str.cryptSigSize
mov ecx, dword [ebp + 0x18]
call fcn.005054d0
mov ecx, dword [ebp - 0x328]
push ecx
lea edx, [ebp - 0x214]
push edx
mov ecx, dword [ebp + 0x14]
call fcn.004b1d20
mov ecx, dword [ebp + 0x14]
call fcn.004b0540
cmp dword [ebp - 0x218], 0
je 0x5a1460
mov eax, dword [ebp - 0x218]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov ecx, dword [ebp - 0x228]
push ecx
call fcn.00504110
add esp, 4
mov byte [ebp - 0x332], 1
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2a4]
call fcn.004d3b20
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x324]
call fcn.004d3b20
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x224]
call fcn.005058c0
mov al, byte [ebp - 0x332]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004adf6a
mov esp, ebp
pop ebp
ret