Function at 0x549f00
Capabilities:
Initialize hashing via wincrypt

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5bd757
mov eax, dword fs:[0]
push eax
sub esp, 0x440
mov eax, dword [0x68683c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp + 0x1c]
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
push str.msCalcSslCertVerify
push esi
lea ecx, [ebp - 0x434]
mov dword [ebp - 0x440], edi
mov dword [ebp - 0x424], eax
call fcn.0045a1b0
mov dword [ebp - 4], 0
test edi, edi
je 0x54a00b
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x54a00b
cmp eax, 0x80
ja 0x54a00b
cmp byte [esi + 0x125], 0
je 0x549fc9
lea ecx, [ebp - 0x304]
call fcn.0044f8c0
mov edx, dword [ebp + 0x14]
lea ecx, [ebp - 0x304]
push ecx
push edx
mov byte [ebp - 4], 1
call fcn.0047bd90
add esp, 8
lea eax, [ebp - 0x304]
push eax
push str.hashAlg
mov ecx, esi
call fcn.00459a60
lea ecx, [ebp - 0x304]
mov byte [ebp - 4], 0
call fcn.0044f980
push esi
call fcn.0058da40
mov ecx, dword [ebp - 0x424]
add esp, 4
test al, al
jne 0x549fea
mov edx, dword [ebp + 0x10]
push esi
push ecx
push 1
push edx
push edi
jmp 0x54a3d6
call fcn.0041b6b0
push esi
mov ecx, ebx
call fcn.004f2b30
mov edi, eax
test edi, edi
jne 0x54a024
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Failed_to_get_MsCertificate.
mov ecx, esi
call eax
lea ecx, [ebp - 0x434]
mov dword [ebp - 4], 0xffffffff
call fcn.0045a240
xor al, al
jmp 0x54a3f9
push esi
lea ecx, [ebp - 0x428]
push ecx
mov ecx, edi
mov dword [ebp - 0x428], 0
call fcn.0054c710
mov edx, dword [ebp - 0x428]
push esi
push edx
mov dword [ebp - 0x43c], eax
call fcn.00549ea0
add esp, 8
cmp dword [ebp - 0x43c], 0
je 0x54a3c1
cmp dword [ebp - 0x428], 0xffffffff
je 0x54a3c1
lea ecx, [ebp - 0x41c]
call fcn.00412fd0
push esi
lea eax, [ebp - 0x41c]
push eax
mov ecx, ebx
mov byte [ebp - 4], 2
call fcn.004f12c0
test al, al
je 0x54a16b
add edi, 0x18
push edi
lea ecx, [ebp - 0x41c]
call fcn.00414bf0
test al, al
jne 0x54a16b
push str.setSmartCardPin6
push esi
lea ecx, [ebp - 0x44c]
call fcn.0045a1b0
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
push str.setting_smart_card_pin..
mov ecx, esi
mov byte [ebp - 4], 3
call eax
lea ecx, [ebp - 0x41c]
call fcn.00413d50
mov ecx, dword [ebp - 0x43c]
push esi
push 0
push eax
push 0x21
push ecx
call fcn.0058d9d0
add esp, 0x14
test eax, eax
jne 0x54a14e
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.CryptSetProvParam_failed.
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Failed_to_set_the_smartcard_PIN.__4_
mov ecx, esi
call eax
mov ecx, esi
call fcn.00459fd0
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
push str.Incorrect_Smartcard_PIN
mov ecx, esi
call eax
cmp byte [ebx + 0x150], 0
je 0x54a14e
lea ecx, [ebp - 0x44c]
mov byte [ebp - 4], 2
call fcn.0045a240
lea ecx, [ebp - 0x41c]
mov byte [ebp - 4], 0
call fcn.00413060
jmp 0x54a00b
lea ecx, [ebp - 0x41c]
push ecx
mov ecx, edi
call fcn.004136e0
lea ecx, [ebp - 0x44c]
mov byte [ebp - 4], 2
call fcn.0045a240
mov eax, dword [ebp + 0x14]
cmp eax, 0x10
jne 0x54a17a
mov edi, 0x8008
jmp 0x54a1ac
cmp eax, 7
jne 0x54a186
mov edi, 0x800c
jmp 0x54a1ac
cmp eax, 2
jne 0x54a192
mov edi, 0x800d
jmp 0x54a1ac
cmp eax, 3
jne 0x54a19e
mov edi, 0x800e
jmp 0x54a1ac
xor edx, edx
cmp eax, 5
setne dl
lea edi, [edx + 0x8003]
cmp dword [ebp + 0x10], 0x24
jne 0x54a1b9
mov edi, 0x8008
jmp 0x54a232
test edi, edi
jne 0x54a232
push esi
mov ecx, ebx
call fcn.004f2b30
mov ebx, eax
test ebx, ebx
jne 0x54a1ec
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Failed_to_get_MS_Certificate.
mov ecx, esi
call edx
lea ecx, [ebp - 0x41c]
mov byte [ebp - 4], bl
call fcn.00413060
jmp 0x54a00b
lea ecx, [ebp - 0x304]
call fcn.0044f8c0
push esi
lea eax, [ebp - 0x304]
push eax
mov ecx, ebx
mov byte [ebp - 4], 4
call fcn.0054c400
push str.VinRCSP
lea ecx, [ebp - 0x304]
call fcn.00451b00
test al, al
je 0x54a223
mov edi, 0x800c
lea ecx, [ebp - 0x304]
mov byte [ebp - 4], 2
call fcn.0044f980
mov edx, dword [ebp - 0x43c]
lea ecx, [ebp - 0x420]
push ecx
push 0
push 0
push edi
push edx
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x54a295
mov eax, dword [ebp + 0x14]
push eax
push str.hashAlg
mov ecx, esi
call fcn.00459e10
push edi
push str.algId
mov ecx, esi
call fcn.00459e10
mov ecx, esi
call fcn.00459fd0
push str.Failed_to_create_HCRYPTHASH
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
mov ecx, esi
call eax
lea ecx, [ebp - 0x41c]
mov byte [ebp - 4], 0
call fcn.00413060
jmp 0x54a00b
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x440]
push ecx
push edx
lea eax, [ebp - 0x90]
push eax
call fcn.00421f50
mov edx, dword [ebp - 0x420]
add esp, 0xc
push 0
lea ecx, [ebp - 0x90]
push ecx
push 2
push edx
call dword [sym.imp.ADVAPI32.dll_CryptSetHashParam]
test eax, eax
jne 0x54a2e6
mov ecx, esi
call fcn.00459fd0
mov eax, dword [ebp - 0x420]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
push str.Failed_to_CryptSetHashParam
jmp 0x54a278
xor eax, eax
mov dword [ebp - 0x438], 0x200
cmp dword [ebp + 0x14], eax
jne 0x54a2fc
mov eax, 1
lea ecx, [ebp - 0x438]
push ecx
mov ecx, dword [ebp - 0x420]
lea edx, [ebp - 0x290]
push edx
push eax
mov eax, dword [ebp - 0x428]
push 0
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptSignHashA]
test eax, eax
jne 0x54a34d
mov ecx, esi
call fcn.00459fd0
mov edx, dword [ebp - 0x420]
push edx
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
lea ecx, [ebp - 0x41c]
mov byte [ebp - 4], 0
call fcn.00413060
jmp 0x54a00b
cmp byte [esi + 0x125], 0
je 0x54a369
mov eax, dword [ebp - 0x438]
push eax
push str.cryptSigSize
mov ecx, esi
call fcn.00459e10
mov ecx, dword [ebp - 0x438]
mov esi, dword [ebp - 0x424]
push ecx
lea edx, [ebp - 0x290]
push edx
mov ecx, esi
call fcn.0041ca10
mov ecx, esi
call fcn.0041bc60
mov eax, dword [ebp - 0x420]
test eax, eax
je 0x54a39c
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
lea ecx, [ebp - 0x41c]
mov byte [ebp - 4], 0
call fcn.00413060
lea ecx, [ebp - 0x434]
mov dword [ebp - 4], 0xffffffff
call fcn.0045a240
mov al, 1
jmp 0x54a3f9
mov eax, dword [ebp - 0x424]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x440]
push esi
push eax
push 1
push ecx
push edx
mov eax, dword [ebp + 0x14]
push eax
push ebx
call fcn.005493d0
add esp, 0x1c
lea ecx, [ebp - 0x434]
mov bl, al
mov dword [ebp - 4], 0xffffffff
call fcn.0045a240
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005a6cf8
mov esp, ebp
pop ebp
ret