Function at 0x40a1a2
Capabilities:
Create new key via cryptacquirecontext
Encrypt data using rc4 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 0x743a96
lea eax, [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40a228
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x2c], esp
push 8
push 1
push str.Microsoft_Strong_Cryptographic_Provider
push 0x743a96
lea eax, [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40a25f
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x40a276
mov eax, 0x4788ac
jmp 0x40a7ea
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 0x40a2ab
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x40a2fb
cmp dword [ebp - 4], 0
je 0x40a2f1
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 0x40a2f1
push 6
call fcn.0043fb89
add esp, 4
mov eax, 0x4788ac
jmp 0x40a7ea
push 0x80000004
push 0
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebx]
test eax, eax
jne 0x40a310
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 0x40a33a
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 0x40a351
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 0x40a37c
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 0x40a39c
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x40a419
cmp dword [ebp - 8], 0
je 0x40a3d6
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 0x40a3d6
push 6
call fcn.0043fb89
add esp, 4
cmp dword [ebp - 4], 0
je 0x40a40f
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 0x40a40f
push 6
call fcn.0043fb89
add esp, 4
mov eax, 0x4788ac
jmp 0x40a7ea
mov dword [ebp - 0x2c], esp
lea eax, [ebp - 0x14]
push eax
push 4
push dword [ebp - 8]
push 0x6801
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_CryptDeriveKey]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40a44c
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x40a4c9
cmp dword [ebp - 8], 0
je 0x40a486
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 0x40a486
push 6
call fcn.0043fb89
add esp, 4
cmp dword [ebp - 4], 0
je 0x40a4bf
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 0x40a4bf
push 6
call fcn.0043fb89
add esp, 4
mov eax, 0x4788ac
jmp 0x40a7ea
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 0x40a4ec
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 0x40a508
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]
fadd qword [0x743a9a]
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 0x40a569
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 0x40a57f
add eax, 8
push eax
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x40a58a
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyn]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40a5a7
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 0x40a5be
add eax, 8
push eax
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
test eax, eax
je 0x40a5cb
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyn]
nop
nop
nop
nop
cmp dword [ebp - 0x34], esp
je 0x40a5e8
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 0x40a613
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x2c], esp
push 0
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x40a625
add eax, 8
push eax
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x40a630
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyn]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x40a64d
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]
fadd qword [0x743a9a]
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 0x40a6a3
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x40a71f
cmp dword [ebp - 4], 0
je 0x40a6e9
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 0x40a6e9
push 6
call fcn.0043fb89
add esp, 4
cmp dword [ebp - 0x14], 0
je 0x40a715
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 0x40a715
push 6
call fcn.0043fb89
add esp, 4
mov eax, 0x4788ac
jmp 0x40a7ea
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 0x40a762
push ebx
call fcn.0043fb83
add esp, 4
pop eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x14], 0
je 0x40a792
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 0x40a792
push 6
call fcn.0043fb89
add esp, 4
cmp dword [ebp - 4], 0
je 0x40a7cb
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 0x40a7cb
push 6
call fcn.0043fb89
add esp, 4
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x40a7e5
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 0x40a7ea
push eax
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x40a7fb
push ebx
call fcn.0043fb83
add esp, 4
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x40a80b
push ebx
call fcn.0043fb83
add esp, 4
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x40a81b
push ebx
call fcn.0043fb83
add esp, 4
pop eax
mov esp, ebp
pop ebp
ret 8