Function at 0x408620
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 0x4086a6
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 0x4086dd
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x4086f4
mov eax, 0x4788ac
jmp 0x408c68
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 0x408729
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x408779
cmp dword [ebp - 4], 0
je 0x40876f
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 0x40876f
push 6
call fcn.0043fb89
add esp, 4
mov eax, 0x4788ac
jmp 0x408c68
push 0x80000004
push 0
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebx]
test eax, eax
jne 0x40878e
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 0x4087b8
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 0x4087cf
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 0x4087fa
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 0x40881a
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x408897
cmp dword [ebp - 8], 0
je 0x408854
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 0x408854
push 6
call fcn.0043fb89
add esp, 4
cmp dword [ebp - 4], 0
je 0x40888d
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 0x40888d
push 6
call fcn.0043fb89
add esp, 4
mov eax, 0x4788ac
jmp 0x408c68
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 0x4088ca
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x408947
cmp dword [ebp - 8], 0
je 0x408904
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 0x408904
push 6
call fcn.0043fb89
add esp, 4
cmp dword [ebp - 4], 0
je 0x40893d
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 0x40893d
push 6
call fcn.0043fb89
add esp, 4
mov eax, 0x4788ac
jmp 0x408c68
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 0x40896a
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 0x408986
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 0x4089e7
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 0x4089fd
add eax, 8
push eax
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x408a08
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyn]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x408a25
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 0x408a3c
add eax, 8
push eax
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
test eax, eax
je 0x408a49
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyn]
nop
nop
nop
nop
cmp dword [ebp - 0x34], esp
je 0x408a66
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 0x408a91
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x2c], esp
push 0
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x408aa3
add eax, 8
push eax
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x408aae
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyn]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x408acb
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 0x408b21
push 6
call fcn.0043fb89
add esp, 4
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x408b9d
cmp dword [ebp - 4], 0
je 0x408b67
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 0x408b67
push 6
call fcn.0043fb89
add esp, 4
cmp dword [ebp - 0x14], 0
je 0x408b93
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 0x408b93
push 6
call fcn.0043fb89
add esp, 4
mov eax, 0x4788ac
jmp 0x408c68
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 0x408be0
push ebx
call fcn.0043fb83
add esp, 4
pop eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x14], 0
je 0x408c10
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 0x408c10
push 6
call fcn.0043fb89
add esp, 4
cmp dword [ebp - 4], 0
je 0x408c49
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 0x408c49
push 6
call fcn.0043fb89
add esp, 4
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x408c63
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 0x408c68
push eax
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x408c79
push ebx
call fcn.0043fb83
add esp, 4
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x408c89
push ebx
call fcn.0043fb83
add esp, 4
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x408c99
push ebx
call fcn.0043fb83
add esp, 4
pop eax
mov esp, ebp
pop ebp
ret 8