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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x13f8
call fcn.005fec20
mov eax, dword [0x708c34]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0xc]
push edi
mov dword [ebp - 0x13f8], eax
mov dword [ebp - 0x14], 0xe8e6f2da
lea edi, [esi - 3]
mov dword [ebp - 0x10], 0xe4bec6d2
push edi
push str.Decrypting_Salt__Encrypted_Password_of_size__d
mov dword [ebp - 0xc], 0xd0e8f2d0
mov word [ebp - 8], 0xe6da
call fcn.00449974
pop ecx
pop ecx
push edi
cmp esi, 0xb
jae 0x40e3a5
push str.Invalid_enc_password_size__d
call fcn.00449974
pop ecx
pop ecx
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.005fe955
leave
ret
lea eax, [ebx + 3]
push eax
lea eax, [ebp - 0x3fc]
push eax
call fcn.006269d0
push 8
pop ecx
xor eax, eax
mov byte [ebp - 0x13b0], cl
mov word [ebp - 0x13ae], ax
lea eax, [ebp - 0x14]
push ecx
push eax
lea eax, [ebp - 0x13a4]
mov byte [ebp - 0x13af], 2
push eax
mov dword [ebp - 0x13ac], 0x6601
mov dword [ebp - 0x13a8], ecx
call fcn.006269d0
add esp, 0x18
lea eax, [ebp - 0x13e8]
xor ebx, ebx
push 0xf0000000
push 0x18
push ebx
push ebx
push eax
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
jne 0x40e42c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.DecryptWebDrivePassword
push str._s:_CryptAcquireContext_failed__Error0x_.8x
call fcn.00449974
add esp, 0xc
jmp 0x40e394
lea eax, [ebp - 0x13e4]
push eax
push ebx
push ebx
push 0x14
lea eax, [ebp - 0x13b0]
push eax
push dword [ebp - 0x13e8]
call dword [sym.imp.ADVAPI32.dll_CryptImportKey]
test eax, eax
jne 0x40e479
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.DecryptWebDrivePassword
push str._s:_CryptImportKey_failed__Error0x_.8x
call fcn.00449974
add esp, 0xc
push ebx
push dword [ebp - 0x13e8]
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
jmp 0x40e394
push ebx
lea eax, [ebp - 0x13f0]
mov dword [ebp - 0x13f0], 2
push eax
push 4
push dword [ebp - 0x13e4]
call dword [sym.imp.ADVAPI32.dll_CryptSetKeyParam]
test eax, eax
jne 0x40e4c4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.DecryptWebDrivePassword
push str._s:_CryptSetKeyParam_failed_to_set_mode__Error0x_.8x
call fcn.00449974
add esp, 0xc
push dword [ebp - 0x13e4]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
jmp 0x40e467
push edi
push str._n_Decrypting_password_of_size__d
call fcn.00449974
mov esi, edi
mov dword [ebp - 0x13ec], ebx
shr esi, 3
pop ecx
pop ecx
test esi, esi
je 0x40e523
lea ebx, [ebp - 0x3fc]
lea eax, [ebp - 0x13e0]
mov dword [ebp - 0x13e0], 8
push eax
push ebx
xor eax, eax
push eax
push eax
push eax
push dword [ebp - 0x13e4]
call dword [sym.imp.ADVAPI32.dll_CryptDecrypt]
test eax, eax
je 0x40e58c
mov eax, dword [ebp - 0x13ec]
add ebx, 8
inc eax
mov dword [ebp - 0x13ec], eax
cmp eax, esi
jb 0x40e4e6
xor ebx, ebx
push dword [ebp - 0x13e4]
mov esi, dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
call esi
push ebx
push dword [ebp - 0x13e8]
mov ebx, dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
call ebx
push edi
push str._n_Successfully_decryped__salt__encryped_password___output_size_d
call fcn.00449974
pop ecx
pop ecx
cmp edi, 0x3e8
jae 0x40e83d
lea eax, [ebp - 0xfb4]
mov byte [ebp + edi - 0x3fc], 0
push eax
lea eax, [ebp - 0x3fc]
push eax
call fcn.00449e5f
shr edi, 1
pop ecx
pop ecx
cmp edi, 8
jae 0x40e5b8
push str.This_decoded_password_size_is_less_than_8
call fcn.00449974
jmp 0x40e393
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.DecryptWebDrivePassword
push str._s:_CryptDecrypt_failed__Error0x_.8x
call fcn.00449974
add esp, 0xc
push dword [ebp - 0x13e4]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
push 0
jmp 0x40e468
push 0x3e8
lea eax, [ebp - 0x7e4]
push 0
push eax
call fcn.00626f50
push 0x3e8
lea eax, [ebp - 0xbcc]
push 0
push eax
call fcn.00626f50
and dword [ebp - 0x13ec], 0
lea eax, [ebp - 0x13f4]
and dword [ebp - 0x13f4], 0
push eax
lea eax, [ebp - 0xbcc]
push eax
lea eax, [ebp - 0x13ec]
push eax
lea eax, [ebp - 0x7e4]
push eax
lea eax, [ebp - 0xfb4]
push edi
push eax
call fcn.00443659
add esp, 0x30
test eax, eax
jne 0x40e62b
push str.DecryptWebDrivePassword
push str._s:_Failed_to_generate_final_key__iv_from_decoded_pass
jmp 0x40e38d
push dword [ebp - 0x13ec]
lea eax, [ebp - 0x7e4]
mov dword [ebp - 0x13d4], 0x208
push eax
lea eax, [ebp - 0x13c8]
mov dword [ebp - 0x13d0], 0x6603
push eax
mov dword [ebp - 0x13cc], 0x18
call fcn.006269d0
add esp, 0xc
lea eax, [ebp - 0x13dc]
push 0xf0000000
push 0x18
push 0
push 0
push eax
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
je 0x40e40e
lea eax, [ebp - 0x13d8]
push eax
push 0
push 0
push 0x24
lea eax, [ebp - 0x13d4]
push eax
push dword [ebp - 0x13dc]
call dword [sym.imp.ADVAPI32.dll_CryptImportKey]
test eax, eax
jne 0x40e6d1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.DecryptWebDrivePassword
push str._s:_CryptImportKey_failed__Error0x_.8x
call fcn.00449974
add esp, 0xc
push 0
push dword [ebp - 0x13dc]
call ebx
jmp 0x40e394
push 0
lea eax, [ebp - 0xbcc]
push eax
push 1
push dword [ebp - 0x13d8]
call dword [sym.imp.ADVAPI32.dll_CryptSetKeyParam]
test eax, eax
jne 0x40e70f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.DecryptWebDrivePassword
push str._s:_CryptSetKeyParam_failed_to_set_IV__Error0x_.8x
call fcn.00449974
add esp, 0xc
push dword [ebp - 0x13d8]
call esi
jmp 0x40e6c2
push 0
lea eax, [ebp - 0x13f0]
mov dword [ebp - 0x13f0], 1
push eax
push 4
push dword [ebp - 0x13d8]
call dword [sym.imp.ADVAPI32.dll_CryptSetKeyParam]
test eax, eax
jne 0x40e747
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.DecryptWebDrivePassword
push str._s:_CryptSetKeyParam_failed_to_set_mode__Error0x_.8x
jmp 0x40e6fd
lea esi, [edi - 8]
push esi
push str._n_Decrypting_Final_password_of_size__d
call fcn.00449974
push esi
lea eax, [ebp - 0xfac]
mov dword [ebp - 0x13e0], esi
push eax
lea eax, [ebp - 0x139c]
push eax
call fcn.006269d0
add esp, 0x14
lea eax, [ebp - 0x13e0]
push eax
lea eax, [ebp - 0x139c]
push eax
push 0
push 1
push 0
push dword [ebp - 0x13d8]
call dword [sym.imp.ADVAPI32.dll_CryptDecrypt]
test eax, eax
jne 0x40e7c0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.DecryptWebDrivePassword
push str._s:_CryptDecrypt_failed__Error0x_.8x
call fcn.00449974
add esp, 0xc
push dword [ebp - 0x13d8]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
jmp 0x40e6c2
push dword [ebp - 0x13d8]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
push 0
push dword [ebp - 0x13dc]
call ebx
push dword [ebp - 0x13e0]
push str._n_Successfully_decryped__output_size_d
call fcn.00449974
mov eax, dword [ebp - 0x13e0]
pop ecx
pop ecx
cmp eax, 8
ja 0x40e803
push eax
push str.DecryptWebDrivePassword
push str._s:_Decrypted_data_does_not_have_password_data__size_d___8_
jmp 0x40e41f
mov esi, dword [ebp - 0x13f8]
add eax, 0xfffffff8
push eax
lea eax, [ebp - 0x1394]
push eax
push dword [ebp + 0x14]
push esi
call fcn.00631360
mov ecx, dword [ebp - 0x13e0]
push esi
add ecx, 0xfffffff8
push ecx
push str._n__Final_Password___d_____s_
call fcn.00449974
xor eax, eax
add esp, 0x1c
inc eax
jmp 0x40e396
call fcn.005fe87a
int3