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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x490
mov eax, dword [0x708c34]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov eax, dword [ebp + 0xc]
lea edi, [ebp - 0x68]
push 8
pop ecx
mov ebx, dword [ebp + 8]
mov esi, str.d2a9debf721159a509e68458ae391702
rep movsd dword es:[edi], dword [esi]
push 0x43
mov dword [ebp - 0x490], eax
lea eax, [ebp - 0x47]
push 0
push eax
movsb byte es:[edi], byte [esi]
call fcn.00626f50
push 0x3e8
lea eax, [ebp - 0x450]
push eax
push ebx
call fcn.00445e29
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x40bb4f
push ebx
push str.DecryptMaxthonPassword
push str._s:_DecodeBase64Data_failed_to_decode_input_data__s
call fcn.00449974
add esp, 0xc
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.005fe955
leave
ret
push esi
push ebx
mov edi, str.DecryptMaxthonPassword
push edi
push str._s:_DecodeBase64Data_Success___Input_data__s_Decoded_Length_d
call fcn.00449974
push 0x20
pop eax
push eax
mov dword [ebp - 0x474], eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x470]
mov dword [ebp - 0x47c], 0x208
push eax
mov dword [ebp - 0x478], 0x6610
call fcn.006269d0
add esp, 0x1c
lea eax, [ebp - 0x488]
xor ebx, ebx
push 0xf0000000
push 0x18
push ebx
push ebx
push eax
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
jne 0x40bbc0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
push str._s:_CryptAcquireContext_failed__Error0x_.8x
jmp 0x40bb36
lea eax, [ebp - 0x484]
push eax
push ebx
push ebx
push 0x2c
lea eax, [ebp - 0x47c]
push eax
push dword [ebp - 0x488]
call dword [sym.imp.ADVAPI32.dll_CryptImportKey]
test eax, eax
jne 0x40bbf4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
push str._s:_CryptImportKey_failed__Error0x_.8x
jmp 0x40bb36
push ebx
lea eax, [ebp - 0x48c]
mov dword [ebp - 0x48c], 2
push eax
push 4
push dword [ebp - 0x484]
call dword [sym.imp.ADVAPI32.dll_CryptSetKeyParam]
test eax, eax
jne 0x40bc2a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
push str._s:_CryptSetKeyParam_failed__Error0x_.8x
jmp 0x40bb36
lea eax, [ebp - 0x480]
mov dword [ebp - 0x480], esi
push eax
lea eax, [ebp - 0x450]
push eax
push ebx
push 1
push ebx
push dword [ebp - 0x484]
call dword [sym.imp.ADVAPI32.dll_CryptDecrypt]
test eax, eax
jne 0x40bc64
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
push str._s:_CryptDecrypt_failed__Error0x_.8x
jmp 0x40bb36
push dword [ebp - 0x480]
push edi
push str._n_s:__decrypted_the_password_of_size__d__password_is_n
call fcn.00449974
mov eax, dword [ebp - 0x480]
add esp, 0xc
cmp eax, 0x3e8
jae 0x40bce8
mov esi, dword [ebp - 0x490]
mov byte [ebp + eax - 0x450], bl
lea eax, [ebp - 0x450]
push eax
push dword [ebp + 0x10]
push esi
call fcn.006311ec
push esi
push dword [ebp - 0x480]
push edi
push str._s:_Successfully_decrypted_the_password_of_size__d__password_is___s__n_n
call fcn.00449974
add esp, 0x1c
cmp dword [ebp - 0x484], ebx
je 0x40bccb
push dword [ebp - 0x484]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
cmp dword [ebp - 0x488], ebx
je 0x40bce0
push ebx
push dword [ebp - 0x488]
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
xor eax, eax
inc eax
jmp 0x40bb40
call fcn.005fe87a
int3