Function at 0x408fd0
Capabilities:
Create new key via cryptacquirecontext

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x248
mov eax, dword [sym.imp.advapi32.dll_CryptAcquireContextA]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.winetest
mov dword [esp], 0
mov dword [ebp - 0x22c], eax
call eax
sub esp, 0x14
mov ebx, eax
call fcn.00412e10
mov dword [eax], 0x41605d
mov dword [eax + 4], 0xc8d
xor eax, eax
mov edx, dword fs:[0x18]
mov ecx, dword [edx + 0x34]
test ebx, ebx
jne 0x409042
xor eax, eax
cmp ecx, 0x80090014
sete al
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], str.Expected_NTE_BAD_PROV_TYPE__got__08lx_n
call fcn.00401ac0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.winetest
mov dword [esp], 0
mov eax, dword [ebp - 0x22c]
call eax
sub esp, 0x14
mov ebx, eax
call fcn.00412e10
mov dword [eax], 0x41605d
mov dword [eax + 4], 0xc90
xor eax, eax
mov edx, dword fs:[0x18]
mov ecx, dword [edx + 0x34]
test ebx, ebx
jne 0x4090c1
mov eax, 1
cmp ecx, 0x57
je 0x4090c1
xor eax, eax
cmp ecx, 0x80090016
sete al
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], str.Expected_ERROR_INVALID_PARAMETER_or_NTE_BAD_KEYSET__got__08lx_n
call fcn.00401ac0
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.winetest
mov dword [esp], 0
mov eax, dword [ebp - 0x22c]
call eax
sub esp, 0x14
mov ebx, eax
call fcn.00412e10
mov dword [eax], 0x41605d
mov dword [eax + 4], 0xc94
xor eax, eax
mov edx, dword fs:[0x18]
mov ecx, dword [edx + 0x34]
test ebx, ebx
jne 0x409140
mov eax, 1
cmp ecx, 0x57
je 0x409140
xor eax, eax
cmp ecx, 0x80090016
sete al
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], str.Expected_ERROR_INVALID_PARAMETER_or_NTE_BAD_KEYSET__got__08lx_n
call fcn.00401ac0
lea eax, [ebp - 0x228]
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.winetest
mov dword [esp], eax
mov eax, dword [ebp - 0x22c]
call eax
sub esp, 0x14
mov ebx, eax
call fcn.00412e10
mov dword [eax], 0x41605d
mov dword [eax + 4], 0xc98
xor eax, eax
mov edx, dword fs:[0x18]
mov ecx, dword [edx + 0x34]
test ebx, ebx
jne 0x4091b7
xor eax, eax
cmp ecx, 0x80090016
sete al
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], str.Expected_NTE_BAD_KEYSET__got__08lx_n
call fcn.00401ac0
lea eax, [ebp - 0x228]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.winetest
mov dword [esp], eax
mov eax, dword [ebp - 0x22c]
call eax
sub esp, 0x14
mov ebx, eax
call fcn.00412e10
mov dword [eax], 0x41605d
mov dword [eax + 4], 0xc9b
xor eax, eax
mov edx, dword fs:[0x18]
mov ecx, dword [edx + 0x34]
test ebx, ebx
jne 0x40922e
xor eax, eax
cmp ecx, 0x80090016
sete al
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], str.Expected_NTE_BAD_KEYSET__got__08lx_n
call fcn.00401ac0
lea eax, [ebp - 0x228]
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
mov edi, dword [ebp - 0x22c]
call edi
lea eax, [ebp - 0x228]
sub esp, 0x14
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call edi
sub esp, 0x14
mov ebx, eax
call fcn.00412e10
mov dword [eax], 0x41605d
mov dword [eax + 4], 0xca4
xor eax, eax
mov edx, dword fs:[0x18]
mov ecx, dword [edx + 0x34]
test ebx, ebx
jne 0x4092d3
xor eax, eax
cmp ecx, 0x80090016
sete al
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], str.Expected_NTE_BAD_KEYSET__got__08lx_n
call fcn.00401ac0
lea eax, [ebp - 0x228]
mov dword [esp + 0x10], 0xf0000000
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [ebp - 0x22c]
call eax
sub esp, 0x14
mov ebx, eax
call fcn.00412e10
mov dword [eax], 0x41605d
mov dword [eax + 4], 0xca9
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 4], str.CryptAcquireContextA_failed:__08lx_n
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.00401ac0
test ebx, ebx
jne 0x409360
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [ebp - 0x220]
lea edi, [ebp - 0x21c]
mov dword [ebp - 0x21c], 4
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
mov dword [esp + 4], 0x27
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov eax, dword [sym.imp.advapi32.dll_CryptGetProvParam]
mov dword [ebp - 0x238], eax
call eax
sub esp, 0x14
test eax, eax
jne 0x40a6c8
lea eax, [ebp - 0x224]
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov eax, dword [sym.imp.advapi32.dll_CryptGetUserKey]
mov dword [ebp - 0x230], eax
call eax
sub esp, 0xc
mov ebx, eax
mov eax, 0xcb4
call fcn.00401310
xor eax, eax
mov edx, dword fs:[0x18]
mov ecx, dword [edx + 0x34]
test ebx, ebx
jne 0x409401
xor eax, eax
cmp ecx, 0x8009000d
sete al
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], str.Expected_NTE_NO_KEY__got__08lx_n
call fcn.00401ac0
lea eax, [ebp - 0x224]
mov dword [esp + 4], 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov eax, dword [ebp - 0x230]
call eax
sub esp, 0xc
mov ebx, eax
mov eax, 0xcb7
call fcn.00401310
xor eax, eax
mov edx, dword fs:[0x18]
mov ecx, dword [edx + 0x34]
test ebx, ebx
jne 0x409462
xor eax, eax
cmp ecx, 0x8009000d
sete al
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], str.Expected_NTE_NO_KEY__got__08lx_n
mov ebx, dword fs:[0x18]
call fcn.00401ac0
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov eax, dword [sym.imp.advapi32.dll_CryptReleaseContext]
mov dword [ebp - 0x234], eax
call eax
sub esp, 8
mov esi, eax
mov eax, 0xcba
call fcn.00401310
mov eax, dword [ebx + 0x34]
mov dword [esp], esi
mov dword [esp + 4], str.CryptReleaseContext_failed:__08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
lea eax, [ebp - 0x228]
mov dword [esp + 0x10], 8
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [ebp - 0x22c]
call eax
sub esp, 0x14
mov esi, eax
mov eax, 0xcbe
call fcn.00401310
mov eax, dword [ebx + 0x34]
mov dword [esp], esi
mov dword [esp + 4], str.CryptAcquireContextA_failed:__08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
lea eax, [ebp - 0x224]
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov eax, dword [ebp - 0x230]
call eax
sub esp, 0xc
mov esi, eax
mov eax, 0xcc1
call fcn.00401310
mov edx, dword [ebx + 0x34]
xor eax, eax
test esi, esi
jne 0x40955e
xor eax, eax
cmp edx, 0x8009000d
sete al
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 4], str.Expected_NTE_NO_KEY__got__08lx_n
call fcn.00401ac0
lea eax, [ebp - 0x224]
mov dword [esp + 4], 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov eax, dword [ebp - 0x230]
call eax
sub esp, 0xc
mov ebx, eax
mov eax, 0xcc4
call fcn.00401310
xor eax, eax
mov edx, dword fs:[0x18]
mov ecx, dword [edx + 0x34]
test ebx, ebx
jne 0x4095bf
xor eax, eax
cmp ecx, 0x8009000d
sete al
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], str.Expected_NTE_NO_KEY__got__08lx_n
call fcn.00401ac0
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov eax, dword [ebp - 0x234]
call eax
lea eax, [ebp - 0x228]
sub esp, 8
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
mov esi, dword [ebp - 0x22c]
call esi
lea eax, [ebp - 0x228]
sub esp, 0x14
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.winetest
mov dword [esp], eax
call esi
lea eax, [ebp - 0x228]
sub esp, 0x14
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.winetest
mov dword [esp], eax
call esi
sub esp, 0x14
mov ebx, eax
mov eax, 0xccc
call fcn.00401310
xor eax, eax
mov edx, dword fs:[0x18]
mov ecx, dword [edx + 0x34]
test ebx, ebx
jne 0x4096a6
xor eax, eax
cmp ecx, 0x80090016
sete al
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], str.Expected_NTE_BAD_KEYSET__got__08lx_n
call fcn.00401ac0
lea eax, [ebp - 0x228]
mov dword [esp + 0x10], 0xf0000000
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.winetest
mov dword [esp], eax
mov eax, dword [ebp - 0x22c]
call eax
sub esp, 0x14
mov ebx, eax
mov eax, 0xcd0
call fcn.00401310
xor eax, eax
mov edx, dword fs:[0x18]
mov ecx, dword [edx + 0x34]
test ebx, ebx
jne 0x409715
xor eax, eax
cmp ecx, 0x80090009
sete al
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], str.Expected_NTE_BAD_FLAGS__got__08lx_n
call fcn.00401ac0
lea eax, [ebp - 0x228]
mov dword [esp + 0x10], 8
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.winetest
mov dword [esp], eax
mov eax, dword [ebp - 0x22c]
call eax
sub esp, 0x14
mov ebx, eax
mov eax, 0xcd4
call fcn.00401310
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 4], str.CryptAcquireContextA_failed:__08lx_n
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.00401ac0
test ebx, ebx
je 0x409350
mov dword [ebp - 0x21c], 4
lea ebx, [ebp - 0x218]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edi
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x10
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov eax, dword [ebp - 0x238]
call eax
sub esp, 0x14
mov esi, eax
mov eax, 0xcd9
call fcn.00401310
mov edx, dword [ebp - 0x218]
test esi, esi
je 0x4097f6
cmp dword [ebp - 0x21c], 4
sete cl
xor eax, eax
cmp edx, 1
sete al
and eax, ecx
mov esi, eax
mov dword [esp + 8], edx
mov dword [esp], esi
mov dword [esp + 4], str.Expected_PROV_RSA_FULL__got_0x_08lX_n
call fcn.00401ac0
mov dword [ebp - 0x21c], 4
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edi
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x1b
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov eax, dword [ebp - 0x238]
call eax
sub esp, 0x14
mov esi, eax
mov eax, 0xcdd
call fcn.00401310
mov edx, dword [ebp - 0x218]
test esi, esi
je 0x40986b
cmp dword [ebp - 0x21c], 4
sete cl
xor eax, eax
test edx, edx
sete al
and eax, ecx
mov esi, eax
mov dword [esp + 8], edx
mov dword [esp + 4], str.Expected_0__got_0x_08lX_n
mov dword [esp], esi
call fcn.00401ac0
mov dword [ebp - 0x21c], 4
mov dword [esp + 8], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edi
mov dword [esp + 4], 0x11
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov eax, dword [ebp - 0x238]
call eax
sub esp, 0x14
mov ebx, eax
mov eax, 0xce1
call fcn.00401310
mov eax, dword [ebp - 0x218]
test ebx, ebx
je 0x4098da
xor ebx, ebx
cmp dword [ebp - 0x21c], 4
je 0x40a700
mov dword [esp + 8], eax
mov dword [esp], ebx
mov dword [esp + 4], str.Expected_CRYPT_SEC_DESCR_to_be_set__got_0x_08lX_n
mov esi, dword fs:[0x18]
call fcn.00401ac0
lea eax, [ebp - 0x220]
mov dword [ebp - 0x21c], 4
mov dword [esi + 0x34], 0xdeadbeef
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
mov dword [esp + 4], 0x27
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov eax, dword [ebp - 0x238]
call eax
sub esp, 0x14
mov ebx, eax
test eax, eax
jne 0x40a6a8
cmp dword [esi + 0x34], 0x8009000a
je 0x40a750
mov eax, 0xce9
call fcn.00401310
mov eax, dword [ebp - 0x220]
mov dword [esp + 8], eax
mov dword [esp + 4], str.Expected_AT_KEYEXCHANGE__AT_SIGNATURE__got__08lx_n
mov dword [esp], ebx
call fcn.00401ac0
mov dword [ebp - 0x21c], 0x104
lea ebx, [ebp - 0x214]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edi
mov dword [esp + 8], ebx
mov dword [esp + 4], 6
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov eax, dword [ebp - 0x238]
call eax
sub esp, 0x14
mov esi, eax
mov eax, 0xcee
call fcn.00401310
mov edx, dword [ebp - 0x21c]
mov eax, dword fs:[0x18]
mov ecx, dword [eax + 0x34]
mov eax, str.FALSE
test esi, esi
je 0x4099e3
mov eax, str.TRUE
xor esi, esi
cmp edx, 9
je 0x40a710
mov dword [esp + 0x10], edx
mov dword [esp + 8], eax
mov dword [esp], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 4], str.failed_getting_PP_CONTAINER._result___s._Error_0x_08lX._returned_length___ld_n
call fcn.00401ac0
mov dword [ebp - 0x21c], 0x104
mov edx, dword fs:[0x18]
mov dword [edx + 0x34], 0xdeadbeef
mov dword [ebp - 0x23c], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edi
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x24
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov eax, dword [ebp - 0x238]
call eax
sub esp, 0x14
mov esi, eax
test eax, eax
jne 0x409a62
mov edx, dword [ebp - 0x23c]
cmp dword [edx + 0x34], 0x8009000a
je 0x40a730
mov eax, 0xcfd
call fcn.00401310
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp], esi
lea esi, [ebp - 0x110]
mov dword [esp + 4], str.failed_getting_PP_UNIQUE_CONTAINER_:_0x_08lX_n
mov dword [esp + 8], eax
call fcn.00401ac0
mov eax, esi
call fcn.00401150
mov edi, dword [0x42b050]
call fcn.00412e10
mov ecx, dword [eax + 0x10]
mov dword [eax + 0x14], 1
lea edx, [ecx + ecx]
xor ecx, ecx
test edi, edi
setne cl
or edx, ecx
mov dword [eax + 0x10], edx
jmp 0x409b78
call fcn.00412e10
mov dword [eax], 0x41605d
mov edi, dword [ebp - 0x21c]
mov dword [eax + 4], 0xd01
mov dword [esp], esi
call dword [sym.imp.msvcrt.dll_strlen]
mov edx, 1
add eax, 1
cmp edi, eax
je 0x409b01
mov eax, dword [0x42b050]
test eax, eax
sete al
xor edx, edx
cmp edi, 9
sete dl
and edx, eax
mov dword [esp], edx
mov dword [esp + 8], edi
mov dword [esp + 4], str.Expected_a_param_length_of_70__got__ld_n
call fcn.00401ac0
call fcn.00412e10
mov dword [eax], 0x41605d
mov dword [eax + 4], 0xd04
mov dword [esp + 4], ebx
mov dword [esp], esi
call dword [sym.imp.msvcrt.dll_strcmp]
mov edx, eax
mov eax, 1
test edx, edx
je 0x409b5c
mov dword [esp + 4], str.winetest
mov dword [esp], ebx
call dword [sym.imp.msvcrt.dll_strcmp]
or eax, dword [0x42b050]
sete al
movzx eax, al
mov dword [esp], eax
mov dword [esp + 8], ebx
mov dword [esp + 4], str.Wrong_container_name_:__s_n
call fcn.00401ac0
call fcn.00412e10
shr dword [eax + 0x10], 1
call fcn.00412e10
mov edx, dword [eax + 0x14]
mov dword [eax + 0x14], 0
test edx, edx
jne 0x409ac0
lea eax, [ebp - 0x224]
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov eax, dword [ebp - 0x230]
call eax
sub esp, 0xc
mov ebx, eax
mov eax, 0xd0a
call fcn.00401310
xor eax, eax
mov edx, dword fs:[0x18]
mov ecx, dword [edx + 0x34]
test ebx, ebx
jne 0x409bdc
xor eax, eax
cmp ecx, 0x8009000d
sete al
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], str.Expected_NTE_NO_KEY__got__08lx_n
call fcn.00401ac0
lea eax, [ebp - 0x224]
mov dword [esp + 4], 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov eax, dword [ebp - 0x230]
call eax
sub esp, 0xc
mov ebx, eax
mov eax, 0xd0d
call fcn.00401310
xor eax, eax
mov edx, dword fs:[0x18]
mov ecx, dword [edx + 0x34]
test ebx, ebx
jne 0x409c3d
xor eax, eax
cmp ecx, 0x8009000d
sete al
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], str.Expected_NTE_NO_KEY__got__08lx_n
mov ebx, dword fs:[0x18]
call fcn.00401ac0
lea eax, [ebp - 0x224]
mov dword [esp + 0x10], 0
mov edi, dword [sym.imp.advapi32.dll_CryptImportKey]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x254
mov dword [esp + 4], 0x414cc0
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
call edi
sub esp, 0x18
mov esi, eax
mov eax, 0xd13
call fcn.00401310
mov eax, dword [ebx + 0x34]
mov dword [esp], esi
mov dword [esp + 4], str.CryptImportKey_failed:__08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
mov eax, dword [ebp - 0x224]
mov dword [esp], eax
mov eax, dword [sym.imp.advapi32.dll_CryptDestroyKey]
mov dword [ebp - 0x238], eax
call eax
lea ecx, [ebp - 0x224]
sub esp, 4
mov dword [esp + 8], ecx
mov dword [esp + 4], 1
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov ecx, dword [ebp - 0x230]
call ecx
sub esp, 0xc
mov esi, eax
mov eax, 0xd17
call fcn.00401310
mov eax, dword [ebx + 0x34]
mov dword [esp], esi
mov dword [esp + 4], str.CryptGetUserKey_failed:__08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
mov eax, dword [ebp - 0x224]
mov dword [esp], eax
mov eax, dword [ebp - 0x238]
call eax
lea eax, [ebp - 0x224]
sub esp, 4
mov dword [esp + 8], eax
mov dword [esp + 4], 2
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov ecx, dword [ebp - 0x230]
call ecx
sub esp, 0xc
mov esi, eax
mov eax, 0xd1b
call fcn.00401310
mov edx, dword [ebx + 0x34]
xor eax, eax
test esi, esi
jne 0x409d75
xor eax, eax
cmp edx, 0x8009000d
sete al
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 4], str.Expected_NTE_NO_KEY__got__08lx_n
call fcn.00401ac0
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov eax, dword [ebp - 0x234]
call eax
lea eax, [ebp - 0x228]
sub esp, 8
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.winetest
mov dword [esp], eax
mov esi, dword [ebp - 0x22c]
call esi
lea eax, [ebp - 0x228]
sub esp, 0x14
mov dword [esp + 0x10], 8
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.winetest
mov dword [esp], eax
call esi
sub esp, 0x14
mov ebx, eax
mov eax, 0xd24
call fcn.00401310
mov esi, dword fs:[0x18]
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.CryptAcquireContextA_failed:__08lx_n
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.00401ac0
test ebx, ebx
je 0x409350
lea eax, [ebp - 0x224]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x134
mov dword [esp + 4], 0x414b80
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
call edi
sub esp, 0x18
mov ebx, eax
mov eax, 0xd27
call fcn.00401310
mov eax, dword [esi + 0x34]
mov dword [esp], ebx
mov dword [esp + 4], str.CryptImportKey_failed:__08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
mov eax, dword [ebp - 0x224]
mov dword [esp], eax
mov eax, dword [ebp - 0x238]
call eax
lea eax, [ebp - 0x224]
sub esp, 4
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov eax, dword [ebp - 0x230]
call eax
sub esp, 0xc
mov ebx, eax
mov eax, 0xd2b
call fcn.00401310
mov edx, dword [esi + 0x34]
xor eax, eax
test ebx, ebx
jne 0x409eee
xor eax, eax
cmp edx, 0x8009000d
sete al
mov dword [esp + 8], edx
lea edi, [ebp - 0x228]
mov dword [esp], eax
mov dword [esp + 4], str.Expected_NTE_NO_KEY__got__08lx_n
mov ebx, dword fs:[0x18]
call fcn.00401ac0
lea eax, [ebp - 0x224]
mov dword [esp + 4], 2
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov eax, dword [ebp - 0x230]
call eax
sub esp, 0xc
mov esi, eax
mov eax, 0xd2f
call fcn.00401310
mov eax, dword [ebx + 0x34]
mov dword [esp], esi
mov dword [esp + 4], str.CryptGetUserKey_failed:__08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
mov eax, dword [ebp - 0x224]
mov dword [esp], eax
mov eax, dword [ebp - 0x238]
call eax
sub esp, 4
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov ecx, dword [ebp - 0x234]
call ecx
sub esp, 8
mov dword [esp], edi
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.winetest
mov esi, dword [ebp - 0x22c]
call esi
sub esp, 0x14
mov dword [esp], edi
lea edi, [ebp - 0x224]
mov dword [esp + 0x10], 8
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.winetest
mov dword [ebp - 0x22c], esi
call esi
sub esp, 0x14
mov esi, eax
mov eax, 0xd39
call fcn.00401310
mov eax, dword [ebx + 0x34]
mov dword [esp], esi
mov dword [esp + 4], str.CryptAcquireContextA_failed:__08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
mov dword [esp + 0xc], edi
mov edi, dword [sym.imp.advapi32.dll_CryptGenKey]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x2400
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
call edi
sub esp, 0x10
mov esi, eax
mov eax, 0xd3b
call fcn.00401310
mov eax, dword [ebx + 0x34]
mov dword [esp], esi
mov dword [esp + 4], str.CryptGenKey_with_CALG_RSA_SIGN_failed_with_error__08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
mov eax, dword [ebp - 0x224]
mov dword [esp], eax
mov eax, dword [ebp - 0x238]
call eax
lea edx, [ebp - 0x224]
sub esp, 4
mov dword [esp + 8], edx
mov dword [esp + 4], 1
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov edx, dword [ebp - 0x230]
call edx
sub esp, 0xc
mov esi, eax
mov eax, 0xd3e
call fcn.00401310
xor eax, eax
test esi, esi
mov dword [esp + 4], str.expected_CryptGetUserKey_to_fail_n
sete al
mov dword [esp], eax
call fcn.00401ac0
lea ecx, [ebp - 0x224]
mov dword [esp + 4], 2
mov dword [esp + 8], ecx
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov edx, dword [ebp - 0x230]
call edx
sub esp, 0xc
mov esi, eax
mov eax, 0xd40
call fcn.00401310
mov eax, dword [ebx + 0x34]
mov dword [esp], esi
mov dword [esp + 4], str.CryptGetUserKey_with_AT_SIGNATURE_failed:__08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
mov eax, dword [ebp - 0x224]
mov dword [esp], eax
mov eax, dword [ebp - 0x238]
call eax
sub esp, 4
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov ecx, dword [ebp - 0x234]
call ecx
lea ecx, [ebp - 0x228]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.winetest
mov esi, dword [ebp - 0x22c]
call esi
lea ecx, [ebp - 0x228]
sub esp, 0x14
mov dword [esp], ecx
mov dword [esp + 0x10], 8
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.winetest
mov dword [ebp - 0x22c], esi
call esi
sub esp, 0x14
mov esi, eax
mov eax, 0xd4a
call fcn.00401310
mov eax, dword [ebx + 0x34]
mov dword [esp], esi
mov dword [esp + 4], str.CryptAcquireContextA_failed:__08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
lea ecx, [ebp - 0x224]
mov dword [esp + 8], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 4], 0xa400
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
call edi
sub esp, 0x10
mov esi, eax
mov eax, 0xd4c
call fcn.00401310
mov eax, dword [ebx + 0x34]
mov dword [esp], esi
mov dword [esp + 4], str.CryptGenKey_with_CALG_RSA_KEYX_failed_with_error__08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
mov eax, dword [ebp - 0x224]
mov dword [esp], eax
mov eax, dword [ebp - 0x238]
call eax
lea ecx, [ebp - 0x224]
sub esp, 4
mov dword [esp + 8], ecx
mov dword [esp + 4], 1
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov edx, dword [ebp - 0x230]
call edx
sub esp, 0xc
mov esi, eax
mov eax, 0xd4f
call fcn.00401310
mov eax, dword [ebx + 0x34]
mov dword [esp], esi
mov dword [esp + 4], str.CryptGetUserKey_with_AT_KEYEXCHANGE_failed:__08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
mov eax, dword [ebp - 0x224]
mov dword [esp], eax
mov eax, dword [ebp - 0x238]
call eax
lea ecx, [ebp - 0x224]
sub esp, 4
mov dword [esp + 8], ecx
mov dword [esp + 4], 2
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov edx, dword [ebp - 0x230]
call edx
sub esp, 0xc
mov esi, eax
mov eax, 0xd52
call fcn.00401310
xor eax, eax
test esi, esi
mov dword [esp + 4], str.expected_CryptGetUserKey_to_fail_n
sete al
mov dword [esp], eax
call fcn.00401ac0
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov ecx, dword [ebp - 0x234]
call ecx
lea ecx, [ebp - 0x228]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.winetest
mov esi, dword [ebp - 0x22c]
call esi
lea ecx, [ebp - 0x228]
sub esp, 0x14
mov dword [esp], ecx
mov dword [esp + 0x10], 8
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.winetest
mov dword [ebp - 0x22c], esi
call esi
sub esp, 0x14
mov esi, eax
mov eax, 0xd5c
call fcn.00401310
mov eax, dword [ebx + 0x34]
mov dword [esp], esi
lea esi, [ebp - 0x224]
mov dword [esp + 4], str.CryptAcquireContextA_failed:__08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
call edi
lea edi, [ebp - 0x228]
sub esp, 0x10
mov esi, eax
mov eax, 0xd5e
call fcn.00401310
mov eax, dword [ebx + 0x34]
mov dword [esp], esi
mov dword [esp + 4], str.CryptGenKey_with_AT_KEYEXCHANGE_failed_with_error__08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
mov eax, dword [ebp - 0x224]
mov dword [esp], eax
mov eax, dword [ebp - 0x238]
call eax
sub esp, 4
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov ecx, dword [ebp - 0x234]
call ecx
sub esp, 8
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.winetest
mov dword [esp], edi
mov edi, dword [ebp - 0x22c]
call edi
sub esp, 0x14
mov esi, eax
mov eax, 0xd62
call fcn.00401310
mov eax, dword [ebx + 0x34]
mov dword [esp], esi
lea esi, [ebp - 0x224]
mov dword [esp + 4], str.CryptAcquireContextA_failed:_0x_08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
mov dword [esp + 8], esi
mov dword [esp + 4], 1
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov edx, dword [ebp - 0x230]
call edx
sub esp, 0xc
mov esi, eax
mov eax, 0xd64
call fcn.00401310
mov eax, dword [ebx + 0x34]
mov dword [esp], esi
mov dword [esp + 4], str.CryptGetUserKey_failed_with_error__08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
mov eax, dword [ebp - 0x224]
mov dword [esp], eax
mov eax, dword [ebp - 0x238]
call eax
sub esp, 4
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov ecx, dword [ebp - 0x234]
call ecx
lea eax, [ebp - 0x228]
sub esp, 8
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.winetest
mov dword [esp], eax
call edi
lea eax, [ebp - 0x228]
sub esp, 0x14
mov dword [esp + 0x10], 0x30
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.winetest
mov dword [esp], eax
call edi
lea eax, [ebp - 0x228]
sub esp, 0x14
mov dword [esp + 0x10], 0x28
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.winetest
mov dword [esp], eax
call edi
sub esp, 0x14
mov esi, eax
mov eax, 0xd70
call fcn.00401310
mov eax, dword [ebx + 0x34]
mov dword [esp], esi
mov dword [esp + 4], str.CryptAcquireContextA_with_CRYPT_MACHINE_KEYSET_failed:__08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov ecx, dword [ebp - 0x234]
call ecx
lea eax, [ebp - 0x228]
sub esp, 8
mov dword [esp + 0x10], 0x20
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.winetest
mov dword [esp], eax
call edi
sub esp, 0x14
mov esi, eax
mov eax, 0xd74
call fcn.00401310
mov eax, dword [ebx + 0x34]
mov dword [esp], esi
mov dword [esp + 4], str.CryptAcquireContextA_with_CRYPT_MACHINE_KEYSET_failed:__08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov ecx, dword [ebp - 0x234]
call ecx
lea eax, [ebp - 0x228]
sub esp, 8
mov dword [esp + 0x10], 0x30
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.winetest
mov dword [esp], eax
call edi
sub esp, 0x14
mov esi, eax
mov eax, 0xd78
call fcn.00401310
mov eax, dword [ebx + 0x34]
mov dword [esp], esi
mov dword [esp + 4], str.CryptAcquireContextA_with_CRYPT_DELETEKEYSETCRYPT_MACHINE_KEYSET_failed:__08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
lea eax, [ebp - 0x228]
mov dword [esp + 0x10], 0x20
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.winetest
mov dword [esp], eax
call edi
sub esp, 0x14
mov esi, eax
mov eax, 0xd7c
call fcn.00401310
mov edx, dword [ebx + 0x34]
xor eax, eax
test esi, esi
jne 0x40a685
xor eax, eax
cmp edx, 0x80090016
sete al
mov dword [esp + 8], edx
mov dword [esp + 4], str.Expected_NTE_BAD_KEYSET__got__08lx_n
mov dword [esp], eax
call fcn.00401ac0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 0xce9
xor ebx, ebx
call fcn.00401310
mov eax, dword [ebp - 0x220]
cmp eax, 3
sete bl
jmp 0x40995f
mov eax, 0xcae
call fcn.00401310
mov eax, dword [ebp - 0x220]
mov dword [esp + 4], str.Expected_AT_KEYEXCHANGE__AT_SIGNATURE__got__08lx_n
cmp eax, 3
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401ac0
jmp 0x4093af
mov ebx, eax
and ebx, 1
jmp 0x4098da
cmp dword [ebp - 0x214], 0x656e6977
je 0x40a76b
mov esi, 1
xor esi, 1
mov eax, str.TRUE
jmp 0x4099e3
mov eax, 0xcf7
call fcn.00401310
mov dword [esp], str.PP_UNIQUE_CONTAINER_is_not_supported__win9x_or_NT__n
call fcn.00401430
jmp 0x409b8f
mov eax, 0xce7
call fcn.00401310
mov dword [esp], str.PP_KEYSPEC_is_not_supported__win9x_or_NT__n
call fcn.00401430
jmp 0x409973
cmp dword [ebp - 0x210], 0x74736574
jne 0x40a71c
cmp byte [ebp - 0x20c], 0
je 0x40a721
jmp 0x40a71c