Function at 0x6e8cdc30
Capabilities:
Create new key via cryptacquirecontext
Generate random numbers via winapi

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
xor edx, edx
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov ebx, ecx
push ecx
sub esp, 0x128
mov eax, dword [ecx + 8]
test byte [0x6e926040], 8
mov dword [ebp - 0xd0], edx
mov edi, dword [ecx + 4]
mov esi, dword [ecx + 0xc]
mov dword [ebp - 0xec], eax
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0xe4], eax
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0xe8], eax
mov eax, dword [ecx + 0x18]
mov dword [ebp - 0xf0], eax
mov eax, dword [ecx + 0x1c]
mov dword [ebp - 0xe0], eax
jne 0x6e8cdda8
test edi, edi
je 0x6e8ce4b8
test esi, esi
mov eax, dword [ebx]
je 0x6e8cde10
mov edx, dword [esi + 0x18]
test eax, eax
mov dword [ebp - 0xdc], edx
jne 0x6e8cde23
mov eax, dword [esi + 0xc]
test al, 1
jne 0x6e8ce2e0
mov dword [esp + 0x10], eax
xor edx, edx
mov dword [ebp - 0x88], edx
mov eax, dword [esi + 8]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 4]
mov dword [esp + 8], eax
mov eax, dword [esi]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.advapi32.dll_CryptAcquireContextW
sub esp, 0x14
test eax, eax
jne 0x6e8cdd2e
mov eax, dword fs:[0x18]
cmp dword [eax + 0x34], 0x80090016
jne 0x6e8cdd90
mov eax, dword [esi + 0xc]
or eax, 8
mov dword [esp + 0x10], eax
mov eax, dword [esi + 8]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 4]
mov dword [esp + 8], eax
mov eax, dword [esi]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.advapi32.dll_CryptAcquireContextW
sub esp, 0x14
test eax, eax
je 0x6e8cdd90
mov eax, dword [ebp - 0xdc]
lea ecx, [ebp - 0x88]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [ebx]
mov dword [esp], eax
call sub.advapi32.dll_CryptGetUserKey
lea ecx, [ebp - 0x88]
sub esp, 0xc
test eax, eax
jne 0x6e8cded0
mov eax, dword fs:[0x18]
cmp dword [eax + 0x34], 0x8009000d
mov edx, dword [ebx]
je 0x6e8ce4d0
mov dword [esp], edx
xor eax, eax
mov dword [esp + 4], eax
call sub.advapi32.dll_CryptReleaseContext
mov eax, dword fs:[0x18]
mov dword [eax + 0x34], 0x80090016
sub esp, 8
xor edi, edi
lea esp, [ebp - 0x10]
mov eax, edi
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x20
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
mov eax, dword [ebp - 0xe8]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x24], eax
mov eax, dword [ebp - 0xe4]
mov dword [esp + 0x20], eax
mov eax, dword [ebp - 0xec]
mov dword [esp + 0x18], eax
mov eax, dword [ecx]
mov dword [esp], 3
mov dword [esp + 0x10], eax
mov eax, str.__08lx___p___08x___p___p___p___p___p__n
mov dword [esp + 0xc], eax
mov eax, str.CertCreateSelfSignCertificate
mov dword [esp + 8], eax
mov eax, 0x6e926040
mov dword [esp + 4], eax
call fcn.6e8c5b50
jmp 0x6e8cdc91
test eax, eax
je 0x6e8ce300
mov edx, 2
mov dword [ebp - 0xdc], edx
mov dword [esp], eax
lea edx, [ebp - 0xd0]
xor ecx, ecx
mov dword [esp + 0x10], edx
mov edx, 1
mov dword [esp + 8], edx
mov edx, dword [ebp - 0xdc]
mov dword [esp + 0xc], ecx
mov dword [esp + 4], edx
call sym.crypt32.dll_CryptExportPublicKeyInfo
sub esp, 0x14
test eax, eax
je 0x6e8cdd90
mov eax, dword [ebp - 0xd0]
mov dword [esp], eax
call sym.crypt32.dll_CryptMemAlloc
sub esp, 4
test eax, eax
mov ecx, eax
je 0x6e8cdd90
mov dword [esp + 0xc], ecx
lea eax, [ebp - 0xd0]
mov dword [esp + 0x10], eax
mov eax, 1
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0xf4], ecx
mov dword [esp + 4], eax
mov eax, dword [ebx]
mov dword [esp], eax
call sym.crypt32.dll_CryptExportPublicKeyInfo
mov ecx, dword [ebp - 0xf4]
sub esp, 0x14
test eax, eax
jne 0x6e8ceb7c
mov dword [esp], ecx
call sym.crypt32.dll_CryptMemFree
sub esp, 4
jmp 0x6e8cdd90
mov eax, dword [ebp - 0x88]
mov dword [esp], eax
call sub.advapi32.dll_CryptDestroyKey
mov eax, dword [ebx]
sub esp, 4
mov dword [esp], eax
lea edx, [ebp - 0xd0]
xor ecx, ecx
mov dword [esp + 0x10], edx
mov edx, 1
mov dword [esp + 8], edx
mov edx, dword [ebp - 0xdc]
mov dword [esp + 0xc], ecx
mov dword [esp + 4], edx
call sym.crypt32.dll_CryptExportPublicKeyInfo
sub esp, 0x14
test eax, eax
jne 0x6e8cdf40
xor edi, edi
xor eax, eax
mov dword [esp + 4], eax
mov eax, dword [ebx]
mov dword [esp], eax
call sub.advapi32.dll_CryptReleaseContext
mov eax, edi
sub esp, 8
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x20
mov eax, dword [ebp - 0xd0]
mov dword [esp], eax
call sym.crypt32.dll_CryptMemAlloc
sub esp, 4
test eax, eax
mov ecx, eax
je 0x6e8cdf15
mov dword [esp + 0xc], ecx
lea eax, [ebp - 0xd0]
mov edx, 1
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0xdc]
mov dword [esp + 8], edx
mov dword [ebp - 0xf4], ecx
mov dword [esp + 4], eax
mov eax, dword [ebx]
mov dword [esp], eax
call sym.crypt32.dll_CryptExportPublicKeyInfo
mov ecx, dword [ebp - 0xf4]
sub esp, 0x14
test eax, eax
je 0x6e8ceb6e
mov eax, 1
mov dword [ebp - 0xf4], eax
xor edx, edx
xor eax, eax
mov dword [ebp + eax - 0x88], edx
mov dword [ebp + eax - 0x84], edx
add eax, 8
cmp eax, 0x70
jb 0x6e8cdfa8
mov dword [ebp - 0xfc], ecx
xor eax, eax
mov edx, 0x10
mov dword [ebp - 0xc0], eax
xor eax, eax
mov dword [ebp - 0xbc], eax
lea eax, [ebp - 0xb8]
mov dword [ebp - 0xf8], eax
mov dword [esp + 8], eax
mov eax, dword [ebx]
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.advapi32.dll_CryptGenRandom
mov eax, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xfc]
sub esp, 0xc
test eax, eax
je 0x6e8ce5a2
mov eax, dword [eax]
mov edx, 2
test eax, eax
cmovne eax, edx
mov dword [ebp - 0x88], eax
mov edx, dword [ebp - 0xe4]
mov eax, 0x10
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0xf8]
test edx, edx
mov dword [ebp - 0x80], eax
je 0x6e8ce588
mov eax, dword [edx]
mov dword [ebp - 0x7c], eax
mov eax, dword [edx + 4]
mov dword [ebp - 0x78], eax
mov eax, dword [edx + 8]
mov dword [ebp - 0x74], eax
mov eax, dword [edi]
lea edx, [ebp - 0x68]
mov dword [ebp - 0x70], eax
mov eax, dword [edi + 4]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0xe8]
mov dword [ebp - 0xe8], ecx
test eax, eax
je 0x6e8ce560
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [ebp - 0xe4], edx
call dword [sym.imp.kernel32.dll_SystemTimeToFileTime]
mov edx, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xe8]
sub esp, 8
mov dword [ebp - 0xe4], ecx
mov eax, dword [ebp - 0xf0]
test eax, eax
je 0x6e8ce510
lea eax, [ebp - 0x60]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xf0]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_SystemTimeToFileTime]
mov ecx, dword [ebp - 0xe4]
sub esp, 8
mov eax, dword [edi]
mov dword [ebp - 0x58], eax
mov eax, dword [edi + 4]
mov dword [ebp - 0x54], eax
xor eax, eax
mov edx, dword [ecx + eax]
mov dword [ebp + eax - 0x50], edx
add eax, 4
cmp eax, 0x18
jb 0x6e8ce0d7
mov edi, dword [ebp - 0xe0]
test edi, edi
je 0x6e8ce500
mov eax, dword [edi]
mov edi, dword [edi + 4]
mov dword [ebp - 0xe0], edi
mov dword [ebp - 0x20], eax
mov edi, dword [ebp - 0xe0]
lea eax, [ebp - 0xc0]
mov dword [esp + 0x18], eax
lea eax, [ebp - 0xbc]
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x88]
mov dword [ebp - 0xe4], ecx
xor ecx, ecx
mov dword [ebp - 0x1c], edi
mov edi, 0x8000
mov dword [esp + 8], eax
mov eax, 2
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], edi
xor edi, edi
mov dword [esp + 4], eax
mov dword [esp], 1
call sym.crypt32.dll_CryptEncodeObjectEx
mov ecx, dword [ebp - 0xe4]
sub esp, 0x1c
test eax, eax
je 0x6e8ce2b4
mov eax, dword [ebp - 0xc0]
test byte [ebp - 0xec], 1
mov edx, dword [ebp - 0xbc]
mov dword [ebp - 0xe0], eax
jne 0x6e8ce5b0
mov dword [esp + 0xc], edx
xor eax, eax
mov ecx, dword [ebx]
mov dword [ebp - 0xcc], eax
lea eax, [ebp - 0xcc]
mov edx, 1
mov dword [esp + 0x20], eax
xor eax, eax
mov dword [esp + 0x1c], eax
xor eax, eax
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x7c]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0xe0]
mov dword [esp], ecx
mov dword [esp + 8], edx
mov dword [ebp - 0xe8], ecx
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0xdc]
mov dword [esp + 4], eax
call sym.crypt32.dll_CryptSignCertificate
mov ecx, dword [ebp - 0xe4]
sub esp, 0x24
test eax, eax
je 0x6e8ce65d
mov dword [ebp - 0xe4], ecx
mov eax, dword [ebp - 0xcc]
mov dword [esp], eax
call sym.crypt32.dll_CryptMemAlloc
sub esp, 4
mov edx, eax
mov dword [esp + 0x1c], edx
lea eax, [ebp - 0xcc]
mov dword [esp + 0x20], eax
xor eax, eax
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x7c]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0xe0], edx
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0xbc]
mov dword [esp + 0xc], eax
mov eax, 1
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xdc]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xe8]
mov dword [esp], eax
call sym.crypt32.dll_CryptSignCertificate
mov edx, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xe4]
sub esp, 0x24
test eax, eax
jne 0x6e8ce66d
mov dword [esp], edx
mov dword [ebp - 0xdc], ecx
call sym.crypt32.dll_CryptMemFree
mov eax, dword [sym.imp.kernel32.dll_LocalFree]
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xe0], eax
sub esp, 4
mov dword [ebp - 0xdc], ecx
mov eax, dword [ebp - 0xbc]
mov dword [esp], eax
mov eax, dword [ebp - 0xe0]
call eax
mov ecx, dword [ebp - 0xdc]
sub esp, 4
mov dword [esp], ecx
call sym.crypt32.dll_CryptMemFree
mov eax, dword [ebp - 0xf4]
sub esp, 4
test eax, eax
jne 0x6e8cdf17
lea esp, [ebp - 0x10]
mov eax, edi
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x20
mov eax, dword fs:[0x18]
mov dword [eax + 0x34], 0x80090009
lea esp, [ebp - 0x10]
xor edi, edi
pop ecx
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x20
mov dword [esp], str.rpcrt4
xor eax, eax
mov dword [ebp - 0xc0], eax
call dword [sym.imp.kernel32.dll_LoadLibraryW]
sub esp, 4
test eax, eax
mov ecx, eax
je 0x6e8ce49c
mov dword [esp], ecx
mov edx, dword [sym.imp.kernel32.dll_GetProcAddress]
mov eax, str.UuidCreate
mov dword [esp + 4], eax
mov dword [ebp - 0xf8], ecx
mov dword [ebp - 0xf4], edx
call edx
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ebp - 0xf4]
mov dword [ebp - 0xfc], edx
mov dword [ebp - 0xdc], eax
sub esp, 8
mov eax, str.UuidToStringA
mov dword [esp], ecx
mov dword [esp + 4], eax
call edx
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ebp - 0xfc]
mov dword [ebp - 0xf4], eax
sub esp, 8
mov eax, str.RpcStringFreeA
mov dword [esp], ecx
mov dword [esp + 4], eax
call edx
mov ecx, dword [ebp - 0xf4]
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0xdc]
sub esp, 8
test eax, eax
setne dl
test ecx, ecx
mov ecx, dword [ebp - 0xf8]
setne al
test dl, al
je 0x6e8ce490
mov eax, dword [ebp - 0xfc]
test eax, eax
je 0x6e8ce490
lea edx, [ebp - 0x88]
mov dword [esp], edx
mov edx, dword [ebp - 0xdc]
call edx
mov ecx, dword [ebp - 0xf8]
lea edx, [ebp - 0x88]
sub esp, 4
test eax, eax
je 0x6e8ce3f8
cmp eax, 0x720
jne 0x6e8ce490
mov dword [ebp - 0xdc], ecx
lea eax, [ebp - 0xb8]
mov dword [ebp - 0xf8], eax
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xf4]
mov dword [esp], edx
call eax
mov ecx, dword [ebp - 0xdc]
sub esp, 8
test eax, eax
jne 0x6e8ce490
mov eax, 8
mov edx, str.Microsoft_Base_Cryptographic_Provider_v1.0
mov dword [esp + 0x10], eax
mov eax, 1
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xb8]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
lea eax, [ebp - 0xc0]
mov dword [esp], eax
call sub.advapi32.dll_CryptAcquireContextA
mov ecx, dword [ebp - 0xdc]
sub esp, 0x14
test eax, eax
jne 0x6e8ce8d4
mov dword [ebp - 0xdc], ecx
mov eax, dword [ebp - 0xf8]
mov dword [esp], eax
mov eax, dword [ebp - 0xfc]
call eax
mov ecx, dword [ebp - 0xdc]
sub esp, 4
lea esi, [esi]
mov dword [esp], ecx
call dword [sym.imp.kernel32.dll_FreeLibrary]
sub esp, 4
mov eax, dword [ebp - 0xc0]
mov ecx, 2
mov dword [ebp - 0xdc], ecx
mov dword [ebx], eax
jmp 0x6e8cdee3
mov eax, dword fs:[0x18]
mov dword [eax + 0x34], 0x57
jmp 0x6e8cdd92
mov dword [esp + 0xc], ecx
xor eax, eax
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xdc]
mov dword [esp], edx
mov dword [esp + 4], eax
call sub.advapi32.dll_CryptGenKey
sub esp, 0x10
test eax, eax
jne 0x6e8cded0
mov edx, dword [ebx]
jmp 0x6e8cdd72
xor eax, eax
jmp 0x6e8ce0ff
mov dword [esp], edx
lea eax, [ebp - 0xa8]
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_FileTimeToSystemTime]
mov ecx, dword [ebp - 0xe4]
sub esp, 8
test eax, eax
je 0x6e8ce0ca
lea eax, [ebp - 0x60]
mov dword [esp + 4], eax
lea eax, [ebp - 0xa8]
mov dword [esp], eax
inc word [ebp - 0xa8]
call dword [sym.imp.kernel32.dll_SystemTimeToFileTime]
mov ecx, dword [ebp - 0xe4]
sub esp, 8
jmp 0x6e8ce0ca
mov dword [esp], edx
mov dword [ebp - 0xe4], edx
call dword [sym.imp.kernel32.dll_GetSystemTimeAsFileTime]
mov ecx, dword [ebp - 0xe8]
mov edx, dword [ebp - 0xe4]
sub esp, 4
jmp 0x6e8ce097
mov dword [ebp - 0x7c], 0x6e926028
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0
jmp 0x6e8ce053
xor eax, eax
jmp 0x6e8ce01a
mov dword [esp + 4], edx
mov eax, dword [ebp - 0xe0]
mov dword [esp], 1
mov dword [ebp - 0xdc], ecx
mov dword [esp + 8], eax
call sym.crypt32.dll_CertCreateCertificateContext
mov ecx, dword [ebp - 0xdc]
mov edi, eax
mov eax, dword [sym.imp.kernel32.dll_LocalFree]
sub esp, 0xc
mov dword [ebp - 0xe0], eax
test edi, edi
je 0x6e8ce294
test byte [ebp - 0xec], 2
jne 0x6e8ce294
mov eax, dword [ebx]
xor edx, edx
mov dword [ebp - 0xdc], eax
xor eax, eax
mov dword [ebp + eax - 0xa8], edx
mov dword [ebp + eax - 0xa4], edx
add eax, 8
cmp eax, 0x18
jb 0x6e8ce607
xor edx, edx
test esi, esi
mov dword [ebp + eax - 0xa8], edx
je 0x6e8ce791
mov dword [ebp - 0xdc], ecx
xor ecx, ecx
mov dword [esp + 0xc], esi
mov esi, 2
mov dword [esp + 8], ecx
mov dword [esp + 4], esi
mov dword [esp], edi
call sym.crypt32.dll_CertSetCertificateContextProperty
mov ecx, dword [ebp - 0xdc]
sub esp, 0x10
jmp 0x6e8ce294
mov eax, dword [sym.imp.kernel32.dll_LocalFree]
mov dword [ebp - 0xe0], eax
jmp 0x6e8ce294
mov dword [ebp - 0xe0], ecx
xor eax, eax
mov ecx, 1
mov dword [ebp - 0xc8], eax
xor eax, eax
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x90], edx
mov dword [ebp - 0xdc], edx
mov edx, 0x8000
mov dword [esp + 0xc], edx
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0xbc]
mov dword [esp + 4], ecx
mov dword [esp], 1
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x94], eax
xor eax, eax
mov dword [ebp - 0x8c], eax
lea eax, [ebp - 0xc4]
mov dword [esp + 0x18], eax
lea eax, [ebp - 0xc8]
mov dword [esp + 0x14], eax
xor eax, eax
mov dword [esp + 0x10], eax
lea eax, [ebp - 0xa8]
mov dword [esp + 8], eax
call sym.crypt32.dll_CryptEncodeObjectEx
mov edx, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xe0]
sub esp, 0x1c
test eax, eax
je 0x6e8ce272
mov dword [esp], 1
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xe4], ecx
mov dword [ebp - 0xdc], edx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xc8]
mov dword [esp + 4], eax
call sym.crypt32.dll_CertCreateCertificateContext
mov edi, eax
mov eax, dword [ebp - 0xc8]
sub esp, 0xc
mov dword [esp], eax
mov eax, dword [sym.imp.kernel32.dll_LocalFree]
mov dword [ebp - 0xe0], eax
call eax
mov edx, dword [ebp - 0xdc]
push ecx
mov dword [esp], edx
call sym.crypt32.dll_CryptMemFree
mov ecx, dword [ebp - 0xe4]
push eax
jmp 0x6e8ce5e6
mov dword [ebp - 0xe4], ecx
lea eax, [ebp - 0xc4]
xor esi, esi
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 8], eax
mov eax, 6
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xdc]
mov dword [esp + 0x10], esi
mov dword [esp], eax
call sub.advapi32.dll_CryptGetProvParam
mov ecx, dword [ebp - 0xe4]
sub esp, 0x14
test eax, eax
jne 0x6e8ce99c
mov dword [ebp - 0xe4], ecx
lea eax, [ebp - 0xc4]
xor esi, esi
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 8], eax
mov eax, 4
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xdc]
mov dword [esp + 0x10], esi
mov dword [esp], eax
call sub.advapi32.dll_CryptGetProvParam
mov ecx, dword [ebp - 0xe4]
sub esp, 0x14
test eax, eax
jne 0x6e8ce926
mov dword [ebp - 0xe4], ecx
mov eax, 2
xor ecx, ecx
mov dword [ebp - 0x90], eax
lea eax, [ebp - 0xc4]
mov esi, 0x10
mov dword [esp + 0xc], eax
lea eax, [ebp - 0xa0]
mov edx, 4
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xdc]
mov dword [esp + 0x10], ecx
mov dword [esp + 4], esi
mov dword [ebp - 0xc4], edx
mov dword [esp], eax
call sub.advapi32.dll_CryptGetProvParam
mov ecx, dword [ebp - 0xe4]
sub esp, 0x14
test eax, eax
jne 0x6e8ce87d
mov dword [ebp - 0xa0], 1
mov dword [esp], edi
lea eax, [ebp - 0xa8]
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 8], eax
mov eax, 2
mov dword [esp + 4], eax
mov dword [ebp - 0xdc], ecx
call sym.crypt32.dll_CertSetCertificateContextProperty
mov eax, dword [ebp - 0xa8]
sub esp, 0x10
mov dword [esp], eax
call sym.crypt32.dll_CryptMemFree
mov eax, dword [ebp - 0xa4]
sub esp, 4
mov dword [esp], eax
call sym.crypt32.dll_CryptMemFree
mov ecx, dword [ebp - 0xdc]
sub esp, 4
jmp 0x6e8ce294
lea eax, [ebp - 0xa8]
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 8], eax
mov eax, 2
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc0]
mov dword [esp], eax
call sub.advapi32.dll_CryptGenKey
mov ecx, dword [ebp - 0xdc]
sub esp, 0x10
test eax, eax
je 0x6e8ce46a
mov eax, dword [ebp - 0xa8]
mov dword [esp], eax
call sub.advapi32.dll_CryptDestroyKey
mov ecx, dword [ebp - 0xdc]
push eax
jmp 0x6e8ce46a
mov eax, dword [ebp - 0xc4]
mov dword [esp], eax
call sym.crypt32.dll_CryptMemAlloc
test eax, eax
mov esi, eax
push ecx
mov ecx, dword [ebp - 0xe4]
je 0x6e8ce819
lea eax, [ebp - 0xc4]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xdc]
mov dword [esp + 0x10], 0
mov dword [esp + 8], esi
mov dword [esp + 4], 4
mov dword [esp], eax
call sub.advapi32.dll_CryptGetProvParam
mov ecx, dword [ebp - 0xe4]
sub esp, 0x14
test eax, eax
jne 0x6e8cea12
mov dword [esp], esi
mov dword [ebp - 0xe4], ecx
call sym.crypt32.dll_CryptMemFree
mov ecx, dword [ebp - 0xe4]
push eax
jmp 0x6e8ce819
mov eax, dword [ebp - 0xc4]
mov dword [esp], eax
call sym.crypt32.dll_CryptMemAlloc
test eax, eax
mov esi, eax
push ecx
mov ecx, dword [ebp - 0xe4]
je 0x6e8ce7d5
lea eax, [ebp - 0xc4]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xdc]
mov dword [esp + 0x10], 0
mov dword [esp + 8], esi
mov dword [esp + 4], 6
mov dword [esp], eax
call sub.advapi32.dll_CryptGetProvParam
mov ecx, dword [ebp - 0xe4]
sub esp, 0x14
test eax, eax
jne 0x6e8ceac0
mov dword [esp], esi
mov dword [ebp - 0xe4], ecx
call sym.crypt32.dll_CryptMemFree
mov ecx, dword [ebp - 0xe4]
push eax
jmp 0x6e8ce7d5
mov dword [esp + 0x14], 0
mov eax, dword [sym.imp.kernel32.dll_MultiByteToWideChar]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0xe8], ecx
mov dword [ebp - 0xe4], eax
call eax
mov ecx, dword [ebp - 0xe8]
sub esp, 0x18
test eax, eax
mov edx, eax
je 0x6e8ce982
mov dword [ebp - 0xec], ecx
lea eax, [eax + eax]
mov dword [esp], eax
mov dword [ebp - 0xe8], edx
call sym.crypt32.dll_CryptMemAlloc
push edx
mov edx, dword [ebp - 0xe8]
mov dword [ebp - 0xa4], eax
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0xe4]
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov dword [esp], 0
call eax
mov ecx, dword [ebp - 0xec]
sub esp, 0x18
jmp 0x6e8ce982
mov dword [esp + 0x14], 0
mov eax, dword [sym.imp.kernel32.dll_MultiByteToWideChar]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0xe8], ecx
mov dword [ebp - 0xe4], eax
call eax
mov ecx, dword [ebp - 0xe8]
sub esp, 0x18
test eax, eax
mov edx, eax
je 0x6e8ce9f8
mov dword [ebp - 0xec], ecx
lea eax, [eax + eax]
mov dword [esp], eax
mov dword [ebp - 0xe8], edx
call sym.crypt32.dll_CryptMemAlloc
push edx
mov edx, dword [ebp - 0xe8]
mov dword [ebp - 0xa8], eax
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0xe4]
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov dword [esp], 0
call eax
mov ecx, dword [ebp - 0xec]
sub esp, 0x18
jmp 0x6e8ce9f8
mov dword [esp], ecx
call sym.crypt32.dll_CryptMemFree
push ecx
jmp 0x6e8cdf15
mov dword [ebp - 0xf4], 0
jmp 0x6e8cdfa4