Function at 0x6e910210
Capabilities:
Create new key via cryptacquirecontext

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x98
mov eax, dword [ecx]
mov dword [ebp - 0x4c], 0
mov edx, dword [ecx + 4]
mov ebx, dword [ecx + 8]
mov dword [ebp - 0x40], eax
test eax, eax
mov dword [ebp - 0x3c], edx
lea edx, [ebp - 0x4c]
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x38], edx
je 0x6e910470
mov eax, dword [ebp - 0x68]
and eax, 0xffff6fde
mov dword [ebp - 0x5c], eax
jne 0x6e910360
lea eax, [ebp - 0x40]
mov edx, 2
mov dword [esp + 0xc], eax
mov eax, dword [0x6e946038]
mov dword [esp + 8], edx
mov edx, dword [0x6e94603c]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.6e925f00
sub esp, 0x10
test eax, eax
jne 0x6e91033e
mov dword [ebp - 0x48], 0
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x24], 0
mov edx, dword [0x6e94603c]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x34]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x28]
mov dword [esp + 0xc], eax
mov eax, 3
mov dword [esp + 8], eax
mov eax, dword [0x6e946038]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.6e925f00
sub esp, 0x10
cmp eax, 0xc0000023
je 0x6e9103a0
mov dword [ebp - 0x60], 0
xor eax, eax
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x5c]
mov dword [esp], eax
call sub.advapi32.dll_CryptReleaseContext
mov eax, dword [ebp - 0x60]
xor edx, edx
sub esp, 8
mov dword [esp + 4], edx
mov dword [esp], eax
call sym.crypt32.dll_CertCloseStore
mov eax, dword [ebp - 0x4c]
mov ecx, 5
mov edx, dword [0x6e94603c]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x28]
sub esp, 8
mov dword [esp + 0xc], eax
mov eax, dword [0x6e946038]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.6e925f00
sub esp, 0x10
mov dword [ebp - 0x60], 0
mov eax, dword [ebp - 0x60]
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0xc
test byte [0x6e928c20], 1
je 0x6e91033e
mov eax, dword [ebp - 0x68]
mov ecx, str.flags__08x_not_supported_n
mov ebx, str.PFXImportCertStore
mov dword [esp + 0xc], ecx
mov esi, 0x6e928c20
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp + 0x10], eax
mov dword [esp], 0
call fcn.6e910180
mov dword [ebp - 0x60], 0
jmp 0x6e910345
mov ebx, dword [ebp - 0x68]
and ebx, 0x20
mov eax, ebx
or eax, 8
mov dword [esp + 0x10], eax
mov eax, 1
mov dword [esp + 0xc], eax
mov eax, 0x6e93443c
mov dword [esp + 8], eax
xor eax, eax
mov dword [esp + 4], eax
lea eax, [ebp - 0x48]
mov dword [esp], eax
call sub.advapi32.dll_CryptAcquireContextW
sub esp, 0x14
test eax, eax
jne 0x6e910490
mov esi, dword fs:[0x18]
cmp dword [esi + 0x34], 0x8009000f
jne 0x6e9102df
mov dword [esp + 0x10], ebx
xor eax, eax
mov ebx, 1
mov dword [esp + 4], eax
lea eax, [ebp - 0x48]
mov edi, 0x6e93443c
mov dword [esp + 0xc], ebx
mov dword [esp + 8], edi
mov dword [esp], eax
call sub.advapi32.dll_CryptAcquireContextW
sub esp, 0x14
test eax, eax
jne 0x6e910490
test byte [0x6e928c20], 4
je 0x6e9102df
mov eax, dword [esi + 0x34]
mov edx, str.import_key
mov ecx, 0x6e928c20
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], 2
mov dword [esp + 0x10], eax
mov eax, str.CryptAcquireContextW_failed__08x_n
mov dword [esp + 0xc], eax
call fcn.6e910180
mov dword [ebp - 0x60], 0
jmp 0x6e9102e6
mov eax, dword fs:[0x18]
mov dword [ebp - 0x60], 0
mov dword [eax + 0x34], 0x57
jmp 0x6e910345
mov eax, dword [ebp - 0x34]
mov dword [esp], eax
mov eax, dword [sym.imp.ucrtbase.dll_malloc]
mov dword [ebp - 0x70], eax
call eax
mov edx, dword [0x6e94603c]
mov dword [esp + 4], edx
mov dword [ebp - 0x24], eax
mov ebx, eax
lea eax, [ebp - 0x28]
mov dword [esp + 0xc], eax
mov eax, 3
mov dword [esp + 8], eax
mov eax, dword [0x6e946038]
mov dword [esp], eax
call fcn.6e925f00
sub esp, 0x10
test eax, eax
je 0x6e910510
test byte [0x6e928c20], 4
jne 0x6e910886
mov eax, dword [ebp - 0x48]
xor esi, esi
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.advapi32.dll_CryptReleaseContext
sub esp, 8
mov dword [esp], ebx
call dword [sym.imp.ucrtbase.dll_free]
mov dword [ebp - 0x60], 0
jmp 0x6e9102e6
mov dword [esp + 4], ebx
lea eax, [ebp - 0x44]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x68]
and eax, 1
mov dword [esp + 0x10], eax
xor eax, eax
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x34]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x48]
mov dword [esp], eax
call sub.advapi32.dll_CryptImportKey
sub esp, 0x18
test eax, eax
je 0x6e9104d3
mov eax, dword [ebp - 0x44]
mov dword [esp], eax
call sub.advapi32.dll_CryptDestroyKey
mov eax, dword [sym.imp.ucrtbase.dll_free]
mov dword [ebp - 0x74], eax
sub esp, 4
mov dword [esp], ebx
call eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x64], eax
test eax, eax
je 0x6e910a9b
xor eax, eax
xor edx, edx
mov dword [esp + 0x10], eax
xor ecx, ecx
xor ebx, ebx
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp + 4], ebx
mov dword [esp], 2
call sym.crypt32.dll_CertOpenStore
mov dword [ebp - 0x60], eax
sub esp, 0x14
test eax, eax
jne 0x6e910614
jmp 0x6e910a16
mov dword [esp], ebx
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x34], 0xc
mov dword [ebp - 0x2c], 1
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x34]
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 8], eax
mov eax, 5
mov dword [esp + 4], eax
call sym.crypt32.dll_CertSetCertificateContextProperty
sub esp, 0x10
test eax, eax
je 0x6e9109d0
mov dword [esp + 4], ebx
xor eax, eax
mov dword [esp + 0xc], eax
mov eax, 4
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x60]
mov dword [esp], eax
call sym.crypt32.dll_CertAddCertificateContextToStore
sub esp, 0x10
test eax, eax
je 0x6e910988
mov dword [esp], ebx
call sym.crypt32.dll_CertFreeCertificateContext
inc dword [ebp - 0x5c]
sub esp, 4
mov dword [ebp - 0x20], 0
mov eax, dword [ebp - 0x4c]
mov edx, dword [0x6e94603c]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x5c]
mov dword [esp + 4], edx
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x50]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x28]
mov dword [esp + 0xc], eax
mov eax, 4
mov dword [esp + 8], eax
mov eax, dword [0x6e946038]
mov dword [esp], eax
call fcn.6e925f00
sub esp, 0x10
cmp eax, 0xc0000023
jne 0x6e910950
mov eax, dword [ebp - 0x50]
mov edi, 4
mov dword [esp], eax
mov eax, dword [ebp - 0x70]
call eax
mov edx, dword [0x6e94603c]
mov dword [esp + 8], edi
mov dword [esp + 4], edx
mov dword [ebp - 0x20], eax
mov esi, eax
lea eax, [ebp - 0x28]
mov dword [esp + 0xc], eax
mov eax, dword [0x6e946038]
mov dword [esp], eax
call fcn.6e925f00
sub esp, 0x10
test eax, eax
jne 0x6e9108c0
mov eax, dword [ebp - 0x50]
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x14], edx
mov ebx, 1
mov dword [esp + 0x10], ecx
mov dword [esp + 4], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
mov dword [esp], 1
call sym.crypt32.dll_CertCreateContext
sub esp, 0x18
mov ebx, eax
mov eax, dword [ebp - 0x74]
mov dword [esp], esi
call eax
test ebx, ebx
je 0x6e9108c8
mov esi, dword [ebp - 0x68]
and esi, 0x8000
jne 0x6e9105a0
mov eax, dword [ebp - 0x64]
lea ecx, [ebp - 0x44]
mov edx, 6
call fcn.6e910060
mov dword [ebp - 0x6c], eax
test eax, eax
je 0x6e910860
mov eax, dword [ebp - 0x64]
lea ecx, [ebp - 0x34]
mov edx, 4
call fcn.6e910060
test eax, eax
je 0x6e910910
mov dword [ebp - 0x78], eax
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x34]
add eax, edx
lea eax, [eax + eax + 0x1c]
mov dword [esp], eax
call sym.crypt32.dll_CryptMemAlloc
mov ecx, dword [ebp - 0x78]
sub esp, 4
test eax, eax
mov edi, eax
je 0x6e910928
mov dword [ebp - 0x7c], esi
mov esi, dword [ebp - 0x6c]
lea eax, [eax + 0x1c]
mov dword [ebp - 0x78], eax
mov dword [edi], eax
xor eax, eax
nop
movzx edx, word [esi + eax]
mov word [edi + eax + 0x1c], dx
add eax, 2
test edx, edx
jne 0x6e910760
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x78]
mov esi, dword [ebp - 0x7c]
lea edx, [edx + eax*2]
mov dword [edi + 4], edx
nop
movzx eax, word [ecx + esi]
mov word [edx + esi], ax
add esi, 2
test eax, eax
jne 0x6e910780
mov dword [ebp - 0x78], ecx
mov esi, 0x10
xor ecx, ecx
mov dword [esp + 4], esi
mov esi, dword [ebp - 0x64]
lea eax, [ebp - 0x48]
mov dword [esp + 0xc], eax
lea eax, [edi + 8]
mov dword [esp + 0x10], ecx
mov dword [esp + 8], eax
mov dword [esp], esi
mov dword [ebp - 0x48], 4
call sub.advapi32.dll_CryptGetProvParam
xor eax, eax
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
mov dword [ebp - 0x48], 4
sub esp, 0x14
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x48]
mov dword [esp + 0xc], eax
lea eax, [edi + 0x18]
mov dword [esp + 8], eax
mov eax, 0x27
mov dword [esp], esi
mov dword [esp + 4], eax
call sub.advapi32.dll_CryptGetProvParam
xor eax, eax
sub esp, 0x14
mov dword [esp + 8], eax
mov eax, 2
mov dword [esp + 0xc], edi
mov dword [esp + 4], eax
mov dword [esp], ebx
call sym.crypt32.dll_CertSetCertificateContextProperty
sub esp, 0x10
mov esi, eax
mov dword [esp], edi
call sym.crypt32.dll_CryptMemFree
mov ecx, dword [ebp - 0x78]
sub esp, 4
mov dword [esp], ecx
call sym.crypt32.dll_CryptMemFree
mov eax, dword [ebp - 0x6c]
sub esp, 4
mov dword [esp], eax
call sym.crypt32.dll_CryptMemFree
sub esp, 4
test esi, esi
jne 0x6e9105dd
mov esi, esi
lea edi, [edi]
test byte [0x6e928c20], 4
jne 0x6e910a62
lea esi, [esi]
mov dword [esp], ebx
call sym.crypt32.dll_CertFreeCertificateContext
sub esp, 4
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x5c], eax
jmp 0x6e9102e6
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov edi, str.CryptImportKey_failed__08x_n
mov dword [esp + 0xc], edi
mov dword [esp], 2
mov dword [esp + 0x10], eax
mov eax, str.import_key
mov dword [esp + 8], eax
mov eax, 0x6e928c20
mov dword [esp + 4], eax
call fcn.6e910180
jmp 0x6e9104e0
mov dword [esp], esi
mov eax, dword [ebp - 0x74]
call eax
test byte [0x6e928c20], 4
je 0x6e91087b
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp], 2
mov dword [esp + 0x10], eax
mov eax, str.CertCreateContext_failed__08x_n
mov dword [esp + 0xc], eax
mov eax, str.PFXImportCertStore
mov dword [esp + 8], eax
mov eax, 0x6e928c20
mov dword [esp + 4], eax
call fcn.6e910180
jmp 0x6e91087b
mov eax, dword [ebp - 0x6c]
mov dword [esp], eax
call sym.crypt32.dll_CryptMemFree
sub esp, 4
jmp 0x6e910860
mov dword [ebp - 0x5c], ecx
mov eax, dword [ebp - 0x6c]
mov dword [esp], eax
call sym.crypt32.dll_CryptMemFree
mov ecx, dword [ebp - 0x5c]
sub esp, 4
mov dword [esp], ecx
call sym.crypt32.dll_CryptMemFree
sub esp, 4
jmp 0x6e910860
mov eax, dword [ebp - 0x4c]
mov ebx, 5
mov dword [esp + 8], ebx
mov edx, dword [0x6e94603c]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x28]
mov dword [esp + 0xc], eax
mov eax, dword [0x6e946038]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.6e925f00
sub esp, 0x10
jmp 0x6e910345
test byte [0x6e928c20], 4
je 0x6e910870
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov esi, str.CertAddCertificateContextToStore_failed__08x_n
mov edi, str.PFXImportCertStore
mov dword [esp + 0xc], esi
mov dword [esp + 8], edi
mov dword [esp], 2
mov dword [esp + 0x10], eax
mov eax, 0x6e928c20
mov dword [esp + 4], eax
call fcn.6e910180
jmp 0x6e910870
test byte [0x6e928c20], 4
je 0x6e910870
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov ecx, str.failed_to_set_context_property__08x_n
mov esi, str.PFXImportCertStore
mov dword [esp + 0xc], ecx
mov edi, 0x6e928c20
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp + 0x10], eax
mov dword [esp], 2
call fcn.6e910180
jmp 0x6e910870
mov eax, dword [ebp - 0x64]
test byte [0x6e928c20], 4
mov dword [ebp - 0x5c], eax
je 0x6e9102e6
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp], 2
mov dword [esp + 0x10], eax
mov eax, str.CertOpenStore_failed__08x_n
mov dword [esp + 0xc], eax
mov eax, str.PFXImportCertStore
mov dword [esp + 8], eax
mov eax, 0x6e928c20
mov dword [esp + 4], eax
call fcn.6e910180
jmp 0x6e9102e6
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov edx, 0x6e928c20
mov dword [esp + 4], edx
mov dword [esp], 2
mov dword [esp + 0x10], eax
mov eax, str.failed_to_set_provider_info_property__08x_n
mov dword [esp + 0xc], eax
mov eax, str.PFXImportCertStore
mov dword [esp + 8], eax
call fcn.6e910180
jmp 0x6e910870
mov dword [ebp - 0x5c], 0
jmp 0x6e9102df