Function at 0x40cb6e
Capabilities:
Create new key via cryptacquirecontext
Encrypt data using des via winapi
Encrypt or decrypt via wincrypt
Hash data using sha1
Hash data using sha1 via wincrypt
Hash data via wincrypt
Initialize hashing via wincrypt

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x2c], esp
push 0x10
push 1
push str.Microsoft_Strong_Cryptographic_Provider
push 0x743927
lea eax, [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40cbf4
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x2c], esp
push 8
push 1
push str.Microsoft_Strong_Cryptographic_Provider
push 0x743927
lea eax, [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40cc2b
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x40cc42
mov eax, 0x4788ac
jmp 0x40d183
mov dword [ebp - 0x2c], esp
lea eax, [ebp - 8]
push eax
push 0
push 0
push 0x8004
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40cc77
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x40ccc7
cmp dword [ebp - 4], 0
je 0x40ccbd
mov dword [ebp - 0x2c], esp
mov eax, 0
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40ccbd
push 6
call fcn.0043fb89
add esp, 4
mov eax, 0x4788ac
jmp 0x40d183
push 0x80000004
push 0
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebx]
test eax, eax
jne 0x40ccdc
mov eax, 0x478de2
push eax
push 1
mov ebx, 0x198
call fcn.004419f0
add esp, 0x10
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
push eax
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x40cd06
push ebx
call fcn.0043fb83
add esp, 4
pop eax
mov dword [ebp - 0xc], eax
push 0x80000005
push 0
mov eax, dword [ebp - 0xc]
test eax, eax
jne 0x40cd1d
mov eax, 0x4788ac
push eax
push 1
mov ebx, 0x194
call fcn.00440100
add esp, 0x10
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x2c], esp
push 0
push dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x40cd48
add eax, 8
push eax
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40cd68
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x40cde5
cmp dword [ebp - 8], 0
je 0x40cda2
mov dword [ebp - 0x2c], esp
lea eax, [ebp - 8]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40cda2
push 6
call fcn.0043fb89
add esp, 4
cmp dword [ebp - 4], 0
je 0x40cddb
mov dword [ebp - 0x2c], esp
mov eax, 0
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40cddb
push 6
call fcn.0043fb89
add esp, 4
mov eax, 0x4788ac
jmp 0x40d183
mov dword [ebp - 0x2c], esp
lea eax, [ebp - 0x14]
push eax
push 4
push dword [ebp - 8]
push 0x6601
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_CryptDeriveKey]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40ce18
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x40ce95
cmp dword [ebp - 8], 0
je 0x40ce52
mov dword [ebp - 0x2c], esp
lea eax, [ebp - 8]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40ce52
push 6
call fcn.0043fb89
add esp, 4
cmp dword [ebp - 4], 0
je 0x40ce8b
mov dword [ebp - 0x2c], esp
mov eax, 0
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40ce8b
push 6
call fcn.0043fb89
add esp, 4
mov eax, 0x4788ac
jmp 0x40d183
mov dword [ebp - 0x2c], esp
lea eax, [ebp - 8]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40ceb8
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 8], 0
push 0x80000005
push 0
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
test eax, eax
jne 0x40ced4
mov eax, 0x4788ac
push eax
push 1
mov ebx, 0x194
call fcn.00440100
add esp, 0x10
mov dword [ebp - 0x10], eax
push 0x80000301
push 0
push dword [ebp - 0x10]
push 1
mov ebx, 0x1bc
call fcn.00441e80
add esp, 0x10
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
push eax
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x40cf1d
push ebx
call fcn.0043fb83
add esp, 4
pop eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x2c], esp
push 0
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x40cf33
add eax, 8
push eax
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x40cf3e
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyn]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40cf5b
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x34], esp
push 0
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
test eax, eax
je 0x40cf72
add eax, 8
push eax
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
test eax, eax
je 0x40cf7f
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyn]
nop
nop
nop
nop
cmp dword [ebp - 0x34], esp
je 0x40cf9c
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x3c], esp
push dword [ebp - 0x10]
push dword [ebp - 0x38]
push dword [ebp - 0x30]
call dword [sym.imp.KERNEL32.dll_RtlMoveMemory]
nop
nop
nop
nop
cmp dword [ebp - 0x3c], esp
je 0x40cfc7
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x2c], esp
push 0
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x40cfd9
add eax, 8
push eax
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x40cfe4
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyn]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40d001
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x2c], esp
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x1c]
push 0
push 1
push 0
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_CryptDecrypt]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40d03c
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x40d0b8
cmp dword [ebp - 4], 0
je 0x40d082
mov dword [ebp - 0x2c], esp
mov eax, 0
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40d082
push 6
call fcn.0043fb89
add esp, 4
cmp dword [ebp - 0x14], 0
je 0x40d0ae
mov dword [ebp - 0x2c], esp
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40d0ae
push 6
call fcn.0043fb89
add esp, 4
mov eax, 0x4788ac
jmp 0x40d183
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x24], eax
push 0x80000301
push 0
push dword [ebp - 0x24]
push 0x80000301
push 0
push dword [ebp - 0x1c]
push 2
mov ebx, 0x910
call fcn.00441eb0
add esp, 0x1c
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
push eax
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x40d0fb
push ebx
call fcn.0043fb83
add esp, 4
pop eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x14], 0
je 0x40d12b
mov dword [ebp - 0x2c], esp
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40d12b
push 6
call fcn.0043fb89
add esp, 4
cmp dword [ebp - 4], 0
je 0x40d164
mov dword [ebp - 0x2c], esp
mov eax, 0
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40d164
push 6
call fcn.0043fb89
add esp, 4
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x40d17e
push eax
mov eax, dword [eax + 4]
add eax, 8
push eax
call fcn.0043fb7d
pop ecx
pop esi
mov edi, eax
rep movsb byte es:[edi], byte [esi]
jmp 0x40d183
push eax
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x40d194
push ebx
call fcn.0043fb83
add esp, 4
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x40d1a4
push ebx
call fcn.0043fb83
add esp, 4
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x40d1b4
push ebx
call fcn.0043fb83
add esp, 4
pop eax
mov esp, ebp
pop ebp
ret 8