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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x438
mov eax, dword [0x708c34]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
push edi
push esi
mov dword [ebp - 0x1c], 0x57e907ba
mov dword [ebp - 0x18], 0x980b4c57
mov dword [ebp - 0x14], 0xb0da26f2
mov dword [ebp - 0x10], 0xa4d30754
mov dword [ebp - 0xc], 0x9da83179
mov dword [ebp - 8], 0x9e46133e
call fcn.00631510
pop ecx
and eax, 3
push 4
pop edi
sub edi, eax
mov eax, 0x3e8
cmp edi, 1
jne 0x40da0d
push 0x67a124
jmp 0x40da23
cmp edi, 2
jne 0x40da19
push 0x67a128
jmp 0x40da23
cmp edi, 3
jne 0x40da2d
push 0x67a12c
push eax
push esi
call fcn.00631246
add esp, 0xc
push esi
push esi
call fcn.00631510
pop ecx
push eax
push edi
push str.DecryptSparkIMPasword
push str._s:___Added_extra_padding__d___Final_encoded_data___d___s
call fcn.00449974
push 0x3e8
lea eax, [ebp - 0x404]
push eax
push esi
call fcn.00445e29
mov edi, eax
add esp, 0x20
test edi, edi
jne 0x40da85
push esi
push str.DecryptSparkIMPasword
push str._s:_DecodeBase64Data_failed_decoded_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 0x18
pop eax
push eax
mov dword [ebp - 0x420], eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x41c]
mov dword [ebp - 0x428], 0x208
push eax
mov dword [ebp - 0x424], 0x6603
call fcn.006269d0
add esp, 0xc
xor eax, eax
push eax
push 1
push eax
push eax
lea eax, [ebp - 0x434]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
jne 0x40dae1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.DecryptSparkIMPasword
push str._s:_CryptAcquireContext_failed__Error0x_.8x
jmp 0x40da6c
lea eax, [ebp - 0x430]
push eax
push 0
push 0
push 0x24
lea eax, [ebp - 0x428]
push eax
push dword [ebp - 0x434]
call dword [sym.imp.ADVAPI32.dll_CryptImportKey]
test eax, eax
jne 0x40db1b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.DecryptSparkIMPasword
push str._s:_CryptImportKey_failed__Error0x_.8x
jmp 0x40da6c
push 0
lea eax, [ebp - 0x438]
mov dword [ebp - 0x438], 2
push eax
push 4
push dword [ebp - 0x430]
call dword [sym.imp.ADVAPI32.dll_CryptSetKeyParam]
test eax, eax
jne 0x40db56
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.DecryptSparkIMPasword
push str._s:_CryptSetKeyParam_failed__Error0x_.8x
jmp 0x40da6c
lea eax, [ebp - 0x42c]
mov dword [ebp - 0x42c], edi
push eax
lea eax, [ebp - 0x404]
push eax
push 0
push 1
push 0
push dword [ebp - 0x430]
call dword [sym.imp.ADVAPI32.dll_CryptDecrypt]
test eax, eax
jne 0x40db96
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.DecryptSparkIMPasword
push str._s:_CryptDecrypt_failed__Error0x_.8x
jmp 0x40da6c
push dword [ebp - 0x42c]
push str.DecryptSparkIMPasword
push str._n_s:__decrypted_the_password_of_size__d__n
call fcn.00449974
mov eax, dword [ebp - 0x42c]
add esp, 0xc
cmp eax, 0x3e8
jae 0x40dbf4
mov byte [ebp + eax - 0x404], 0
lea eax, [ebp - 0x404]
push eax
push dword [ebp + 0x10]
push ebx
call fcn.006311ec
push ebx
push dword [ebp - 0x42c]
push str.DecryptSparkIMPasword
push str._n_n_s:_Successfully_decrypted_the_password_of_size__d__password_is__s_n_n
call fcn.00449974
xor eax, eax
add esp, 0x1c
inc eax
jmp 0x40da76
call fcn.005fe87a
int3