Function at 0x401da0
Capabilities:
Create new key via cryptacquirecontext
Encrypt data using aes via winapi
Encrypt or decrypt via wincrypt

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47cad5
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x78
mov eax, dword [0x4b4200]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x64], edx
mov edi, ecx
mov dword [ebp - 0x68], edi
mov eax, dword [ebx + 8]
mov dword [ebp - 0x70], eax
test edi, edi
jne 0x401dfa
mov dword [ebp - 0x54], ecx
xor al, al
jmp 0x40215b
xor esi, esi
cmp word [edi], si
je 0x401e09
inc esi
cmp word [edi + esi*2], 0
jne 0x401e01
mov dword [ebp - 0x54], esi
cmp esi, 0x10
jae 0x401e18
xor al, al
jmp 0x40215b
xor eax, eax
xorps xmm0, xmm0
movlpd qword [ebp - 0x24], xmm0
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], eax
cmp dword [edx], eax
jne 0x401e4c
push 2
call fcn.0046a3df
mov edx, dword [ebp - 0x64]
add esp, 4
xor ecx, ecx
mov dword [edx], eax
mov word [eax], cx
mov esi, dword [ebp - 0x54]
mov dword [edx + 4], ecx
mov eax, dword [edx]
mov byte [edx + 8], 1
cmp edi, eax
jne 0x401e65
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], 0xffffffff
jmp 0x401e78
test eax, eax
je 0x401e78
push eax
call fcn.00469dd3
mov esi, dword [ebp - 0x54]
add esp, 4
mov edx, dword [ebp - 0x64]
mov edi, dword [ebp - 0x64]
mov ecx, edx
mov dword [ebp - 0x1c], edi
mov al, 1
mov dword [ebp - 0x18], 8
mov edi, 4
mov dword [ecx], 0
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + edi], 0
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x68]
mov byte [edx + ecx], al
cmp word [edi], 0x30
jne 0x401ec6
movzx eax, word [edi + 2]
mov ecx, eax
cmp eax, 0x78
je 0x401ebd
cmp ecx, 0x58
jne 0x401ec6
add edi, 4
sub esi, 2
mov dword [ebp - 0x54], esi
xorps xmm0, xmm0
add esi, 2
push esi
movlpd qword [ebp - 0x5c], xmm0
call fcn.0046a3df
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], esi
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x54]
add ecx, 2
push ecx
push 0
push eax
call fcn.0046ba40
add esp, 0x10
test edi, edi
je 0x402132
xor esi, esi
cmp word [edi], si
je 0x401f0a
inc esi
cmp word [edi + esi*2], 0
jne 0x401f02
mov eax, esi
and eax, 0x80000001
jns 0x401f18
dec eax
or eax, 0xfffffffe
inc eax
sub esi, eax
je 0x402132
mov eax, esi
cdq
sub eax, edx
sar eax, 1
cmp word [edi], 0x30
mov dword [ebp - 0x68], eax
jne 0x401f4a
movzx ecx, word [edi + 2]
mov edx, ecx
cmp ecx, 0x78
je 0x401f40
cmp edx, 0x58
jne 0x401f4a
dec eax
add edi, 4
mov dword [ebp - 0x68], eax
sub esi, 2
mov ecx, dword [ebp - 0x54]
cmp ecx, eax
jl 0x402132
mov eax, dword [0x49ee30]
movups xmm0, xmmword [str.0123456789ABCDEFabcdef]
mov dword [ebp - 0x78], eax
mov ax, word [0x49ee34]
push ecx
mov word [ebp - 0x74], ax
mov al, byte [0x49ee36]
push 0
push dword [ebp - 0x5c]
movups xmmword [ebp - 0x88], xmm0
mov byte [ebp - 0x72], al
call fcn.0046ba40
xor eax, eax
add esp, 0xc
mov dword [ebp - 0x18], eax
test esi, esi
jle 0x402001
nop dword [eax]
nop dword [eax + eax]
movzx edx, word [edi + eax*2]
xor ecx, ecx
nop word [eax + eax]
movsx eax, byte [ebp + ecx - 0x88]
cmp edx, eax
je 0x401fc4
inc ecx
cmp ecx, 0x16
jl 0x401fb0
jmp 0x401ff6
mov eax, dword [ebp - 0x18]
shr eax, 1
add eax, dword [ebp - 0x5c]
cmp ecx, 0xf
mov dword [ebp - 0x1c], eax
lea eax, [ecx - 6]
movzx edx, al
movzx eax, cl
cmovle edx, eax
test byte [ebp - 0x18], 1
mov eax, dword [ebp - 0x1c]
mov cl, byte [eax]
je 0x401fef
or cl, dl
mov byte [eax], cl
jmp 0x401ff6
shl dl, 4
or dl, cl
mov byte [eax], dl
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, esi
jl 0x401fa0
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x54], eax
test eax, eax
je 0x402139
mov esi, dword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
lea eax, [ebp - 0x1c]
push 0xf0000000
push 0x18
push str.Microsoft_Enhanced_RSA_and_AES_Cryptographic_Provider
push 0
push eax
mov dword [ebp - 0x1c], 0
call esi
test eax, eax
jne 0x402047
push 0xf0000000
push 0x18
push str.Microsoft_Enhanced_RSA_and_AES_Cryptographic_Provider__Prototype_
push eax
lea eax, [ebp - 0x1c]
push eax
call esi
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x402139
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x5d], 0
test ecx, ecx
je 0x4020f7
xor eax, eax
cmp byte [ecx], al
je 0x4020f7
inc eax
cmp byte [ecx + eax], 0
jne 0x402072
cmp eax, 0x20
jne 0x4020f7
movups xmm0, xmmword [ecx]
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x18]
push eax
push 0
push 0
push 0x2c
movups xmmword [ebp - 0x44], xmm0
lea eax, [ebp - 0x50]
mov dword [ebp - 0x50], 0x208
movups xmm0, xmmword [ecx + 0x10]
push eax
push esi
mov dword [ebp - 0x4c], 0x6610
movups xmmword [ebp - 0x34], xmm0
call dword [sym.imp.ADVAPI32.dll_CryptImportKey]
test eax, eax
je 0x4020e9
push 0
push str.1234567890123456
push 1
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_CryptSetKeyParam]
test eax, eax
je 0x4020e9
lea eax, [ebp - 0x54]
push eax
push dword [ebp - 0x5c]
push 0
push 1
push 0
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_CryptDecrypt]
test eax, eax
setne byte [ebp - 0x5d]
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x4020f7
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
push 0
push esi
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp byte [ebp - 0x5d], 0
je 0x402139
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x54]
push 0xfde9
push ecx
mov byte [ecx + eax], 0
mov eax, dword [ebp - 0x54]
mov byte [ecx + eax + 1], 0
push dword [ebp - 0x54]
push ecx
mov ecx, dword [ebp - 0x64]
call fcn.004070a0
mov al, byte [eax + 8]
mov byte [ebp - 0x5d], al
jmp 0x40213d
mov dword [ebp - 0x54], 0
mov byte [ebp - 0x5d], 0
push dword [ebp - 0x5c]
call fcn.00469dd3
mov eax, dword [ebp - 0x6c]
add esp, 4
test eax, eax
je 0x402158
push eax
call fcn.00469dd3
add esp, 4
mov al, byte [ebp - 0x5d]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00469dc5
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0xc