Function at 0x47d260
Capabilities:
Create new key via cryptacquirecontext

Disassembly:
push 0xffffffffffffffff
push 0x4add2c
mov eax, dword fs:[0]
push eax
sub esp, 0x3a4
mov eax, dword [0x4c75d0]
xor eax, esp
mov dword [esp + 0x3a0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4c75d0]
xor eax, esp
push eax
lea eax, [esp + 0x3b8]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x3c8]
push 0x80
xor ebx, ebx
lea eax, [esp + 0x38]
push ebx
push eax
call fcn.0042e03c
add esp, 0xc
push 0x100
lea ecx, [esp + 0xb8]
push ebx
push ecx
call fcn.0042e03c
add esp, 0xc
call fcn.004896c0
mov ecx, dword [0x4ee0bc]
cmp ecx, ebx
je 0x47d2ea
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov dword [0x4ee0bc], ebx
push 0x800
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x3c0], ebx
cmp eax, ebx
je 0x47d310
mov ecx, eax
call fcn.00412120
jmp 0x47d312
xor eax, eax
lea ecx, [esp + 0x30]
mov dword [esp + 0x3c0], 0xffffffff
push ecx
push ebp
mov dword [0x4ee0bc], eax
mov dword [0x4ed544], ebx
mov dword [esp + 0x38], ebx
call fcn.0040f110
add esp, 8
test eax, eax
je 0x47d4d3
cmp dword [esp + 0x30], ebx
jne 0x47d4dd
mov edx, dword [0x4ee004]
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], edx
lea eax, [esp + 0x1b4]
mov edx, str.Enter_password_to_open_XDF...
lea esi, [esp + 0x20]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 0x80
mov dword [esp + 0x24], edx
call fcn.0049ecf0
cmp eax, ebx
jge 0x47d395
mov dword [esp + 0x20], ebx
lea ebx, [esp + 0x18]
call fcn.00477520
test eax, eax
je 0x47d3da
mov edx, dword [esp + 0x1c]
mov eax, edx
lea esi, [eax + 2]
jmp 0x47d3b0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x47d3b0
push 0
push 0
push 0x80
sub eax, esi
sar eax, 1
lea ecx, [esp + 0x40]
push ecx
inc eax
push eax
push edx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
xor ebx, ebx
lea edi, [esp + 0x2c]
mov ecx, 0x80
lea edx, [esp + 0x34]
mov dword [esp + 0x2c], ebx
call fcn.0049ed30
xor edx, edx
cmp eax, ebx
setl dl
push 0x100
lea ecx, [esp + 0xb8]
push ecx
mov ecx, dword [0x4ee0bc]
lea eax, [edx - 1]
and eax, dword [esp + 0x34]
lea edx, [esp + 0x3c]
push eax
push edx
push ebp
call fcn.00410d80
mov esi, dword [sym.imp.USER32.dll_MessageBoxA]
test eax, eax
js 0x47d596
mov ecx, dword [0x4ee0bc]
mov edi, ebp
call fcn.0047c890
mov edx, ebp
mov eax, 0x104
mov ecx, 0x4de798
call fcn.004a0810
push ebx
push ebx
push 0x4de89c
push 0x4de798
call fcn.00475880
push 0x4de798
call fcn.0047f780
add esp, 0x14
call fcn.00489b30
mov eax, dword [0x4ee014]
push 0x4e7e
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
cmp eax, ebx
je 0x47d49a
mov ecx, dword [0x4ee0bc]
mov edx, dword [0x4dd1d8]
push ecx
push edx
push eax
call fcn.00488970
add esp, 0xc
mov eax, dword [0x4edfb4]
mov ecx, dword [0x4ee0bc]
mov edx, dword [0x4ee080]
mov dword [ecx + 0x7d4], eax
mov dword [ecx + 0x7d0], edx
mov ecx, dword [0x4ee0bc]
xor eax, eax
cmp dword [0x4dd258], ebx
sete al
mov dword [ecx + 0x7d8], eax
jmp 0x47d5e6
cmp dword [esp + 0x30], ebx
je 0x47d3dc
lea esi, [esp + 0x18]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
call fcn.004742b0
test eax, eax
js 0x47d54a
push ebx
push 1
push 0x4b99f8
mov edx, esi
mov esi, dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
push 0x4b99bc
push edx
call esi
test eax, eax
jne 0x47d54a
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x80090016
jne 0x47d54a
push 8
push 1
push str.Microsoft_Base_Cryptographic_Provider_v1.0
push 0x4b99bc
lea eax, [esp + 0x28]
push eax
call esi
test eax, eax
jne 0x47d54a
lea esi, [esp + 0x18]
call fcn.004742b0
jmp 0x47d67c
push 0x11
push 0x4ba75c
lea ecx, [esp + 0x1bc]
push 0x80
push ecx
call dword [sym.imp.MSVCR100.dll_strncpy_s]
add esp, 0x10
mov ecx, 0x80
lea esi, [esp + 0x1b4]
call fcn.004741e0
mov edx, esi
mov eax, 0x80
lea ecx, [esp + 0x34]
call fcn.004a0810
lea esi, [esp + 0x18]
call fcn.004742b0
jmp 0x47d3dc
cmp byte [esp + 0xb4], bl
je 0x47d5da
lea edx, [esp + 0xb4]
push edx
push ebp
push str.Failed_to_load__s_n_s
lea eax, [esp + 0x1c0]
push 0x200
push eax
call fcn.004010b0
mov edx, dword [0x4ee004]
add esp, 0x14
push 0x30
push str.Error_Opening_XDF
lea ecx, [esp + 0x1bc]
push ecx
push edx
call esi
mov byte [0x4de798], bl
mov byte [0x4de89c], bl
mov dword [0x4ed548], ebx
call fcn.0047f120
call fcn.0047f120
call fcn.00484a40
mov ecx, dword [0x4ee0bc]
cmp ecx, ebx
je 0x47d635
mov eax, dword [0x4ed560]
cmp eax, ebx
je 0x47d635
push eax
call fcn.00411570
test eax, eax
jne 0x47d635
cmp dword [esp + 0x3cc], ebx
je 0x47d635
mov eax, dword [0x4ee004]
push 0x40
push str.Mismatched_ADX_and_XDF_file
push str.The_current_ADX_doesnt_match_whats_specified_in_the_XDF
push eax
call esi
mov ecx, dword [0x4edfc4]
xor eax, eax
push 0x4edfc8
push 0x491e80
mov dword [0x4edfc8], eax
mov dword [0x4edfd0], eax
push ecx
mov dword [0x4edfcc], eax
mov dword [0x4edfd4], eax
mov dword [0x4edfd8], eax
mov dword [0x4edfdc], eax
mov dword [0x4edfd0], ebx
mov dword [0x4edfc8], 0x4edfbc
call dword [sym.imp.USER32.dll_EnumChildWindows]
mov ecx, dword [esp + 0x3b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x3a0]
xor ecx, esp
call fcn.0042dbe7
add esp, 0x3b0
ret