Function at 0x40e6ac
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, 0x40
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 0x40e732
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 0x40e769
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x40e780
mov eax, 0x4788ac
jmp 0x40ecf4
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 0x40e7b5
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x40e805
cmp dword [ebp - 4], 0
je 0x40e7fb
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 0x40e7fb
push 6
call fcn.0043fb89
add esp, 4
mov eax, 0x4788ac
jmp 0x40ecf4
push 0x80000004
push 0
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebx]
test eax, eax
jne 0x40e81a
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 0x40e844
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 0x40e85b
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 0x40e886
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 0x40e8a6
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x40e923
cmp dword [ebp - 8], 0
je 0x40e8e0
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 0x40e8e0
push 6
call fcn.0043fb89
add esp, 4
cmp dword [ebp - 4], 0
je 0x40e919
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 0x40e919
push 6
call fcn.0043fb89
add esp, 4
mov eax, 0x4788ac
jmp 0x40ecf4
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 0x40e956
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x40e9d3
cmp dword [ebp - 8], 0
je 0x40e990
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 0x40e990
push 6
call fcn.0043fb89
add esp, 4
cmp dword [ebp - 4], 0
je 0x40e9c9
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 0x40e9c9
push 6
call fcn.0043fb89
add esp, 4
mov eax, 0x4788ac
jmp 0x40ecf4
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 0x40e9f6
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 0x40ea12
mov eax, 0x4788ac
push eax
push 1
mov ebx, 0x194
call fcn.00440100
add esp, 0x10
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
fstp qword [ebp - 0x30]
fld qword [ebp - 0x30]
fmul qword [0x743ab0]
fstp qword [ebp - 0x38]
fld qword [ebp - 0x38]
call fcn.004011c3
push 0x80000301
push 0
push eax
push 1
mov ebx, 0x1bc
call fcn.00441e80
add esp, 0x10
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
push eax
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x40ea73
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 0x40ea89
add eax, 8
push eax
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x40ea94
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyn]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40eab1
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 0x40eac8
add eax, 8
push eax
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
test eax, eax
je 0x40ead5
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyn]
nop
nop
nop
nop
cmp dword [ebp - 0x34], esp
je 0x40eaf2
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 0x40eb1d
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x2c], esp
push 0
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x40eb2f
add eax, 8
push eax
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x40eb3a
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyn]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40eb57
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x10]
fstp qword [ebp - 0x30]
fld qword [ebp - 0x30]
fmul qword [0x743ab0]
fstp qword [ebp - 0x38]
mov dword [ebp - 0x3c], esp
fld qword [ebp - 0x38]
call fcn.004011c3
push eax
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_CryptEncrypt]
nop
nop
nop
nop
cmp dword [ebp - 0x3c], esp
je 0x40ebad
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x40ec29
cmp dword [ebp - 4], 0
je 0x40ebf3
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 0x40ebf3
push 6
call fcn.0043fb89
add esp, 4
cmp dword [ebp - 0x14], 0
je 0x40ec1f
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 0x40ec1f
push 6
call fcn.0043fb89
add esp, 4
mov eax, 0x4788ac
jmp 0x40ecf4
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 0x40ec6c
push ebx
call fcn.0043fb83
add esp, 4
pop eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x14], 0
je 0x40ec9c
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 0x40ec9c
push 6
call fcn.0043fb89
add esp, 4
cmp dword [ebp - 4], 0
je 0x40ecd5
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 0x40ecd5
push 6
call fcn.0043fb89
add esp, 4
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x40ecef
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 0x40ecf4
push eax
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x40ed05
push ebx
call fcn.0043fb83
add esp, 4
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x40ed15
push ebx
call fcn.0043fb83
add esp, 4
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x40ed25
push ebx
call fcn.0043fb83
add esp, 4
pop eax
mov esp, ebp
pop ebp
ret 8