Function at 0x1000d5eb
Capabilities:
Create new key via cryptacquirecontext
Encrypt data using rc4 via winapi
Encrypt or decrypt via wincrypt
Hash data via wincrypt
Hash data with md5
Initialize hashing via wincrypt

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100daf40
push 0x10022c78
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
add esp, 0xffffffc0
push ebx
push esi
push edi
lea edi, [ebp - 0x50]
mov ecx, 0xe
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 4], 0
push 0x100f5278
mov eax, dword [ebp + 0x10]
push eax
call fcn.10026110
add esp, 8
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x1000d690
jmp 0x1000d8ca
push 0x100f527c
mov ecx, dword [ebp + 0x14]
push ecx
call fcn.10026110
add esp, 8
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
jne 0x1000d6af
jmp 0x1000d8ca
mov esi, esp
push 0
push 1
push 0
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 0x30]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
cmp esi, esp
call fcn.10021b10
test eax, eax
jne 0x1000d748
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call fcn.10021b10
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0x80090016
jne 0x1000d72b
mov esi, esp
push 8
push 1
push 0
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x30]
push edx
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
cmp esi, esp
call fcn.10021b10
test eax, eax
jne 0x1000d729
xor eax, eax
test eax, eax
jne 0x1000d729
push 0x9c8
push 0x100f5280
push 0x100f52c8
call fcn.10025c90
add esp, 0xc
jmp 0x1000d748
xor edx, edx
test edx, edx
jne 0x1000d748
push 0x9cc
push 0x100f52cc
push 0x100f5314
call fcn.10025c90
add esp, 0xc
mov esi, esp
lea ecx, [ebp - 0x40]
push ecx
push 0
push 0
push 0x8003
mov edx, dword [ebp - 0x30]
push edx
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
cmp esi, esp
call fcn.10021b10
test eax, eax
jne 0x1000d771
jmp 0x1000d8ca
mov esi, esp
push 0
mov eax, dword [ebp + 0xc]
push eax
call fcn.10022340
add esp, 4
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 0x40]
push edx
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
cmp esi, esp
call fcn.10021b10
test eax, eax
jne 0x1000d7a0
jmp 0x1000d8ca
mov esi, esp
lea eax, [ebp - 0x44]
push eax
push 0x800000
mov ecx, dword [ebp - 0x40]
push ecx
push 0x6801
mov edx, dword [ebp - 0x30]
push edx
call dword [sym.imp.ADVAPI32.dll_CryptDeriveKey]
cmp esi, esp
call fcn.10021b10
test eax, eax
jne 0x1000d7ce
jmp 0x1000d8ca
mov esi, esp
mov eax, dword [ebp - 0x40]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp esi, esp
call fcn.10021b10
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x2c], 0x3e8
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x24], ecx
xor edx, edx
test edx, edx
je 0x1000d806
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x24], eax
jmp 0x1000d80c
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x24]
push edx
call fcn.1006b3a0
add esp, 4
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
jne 0x1000d82c
jmp 0x1000d8ca
mov ecx, dword [ebp - 0x20]
push ecx
mov edx, dword [ebp - 0x2c]
push edx
push 1
mov eax, dword [ebp - 0x28]
push eax
call fcn.10025a80
add esp, 0x10
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x20]
mov edx, dword [ecx + 0xc]
and edx, 0x20
test edx, edx
je 0x1000d854
jmp 0x1000d8ca
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0xc]
and ecx, 0x10
mov dword [ebp - 0x3c], ecx
mov esi, esp
mov edx, dword [ebp - 0x24]
push edx
lea eax, [ebp - 0x34]
push eax
mov ecx, dword [ebp - 0x28]
push ecx
push 0
mov edx, dword [ebp - 0x3c]
push edx
push 0
mov eax, dword [ebp - 0x44]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptEncrypt]
cmp esi, esp
call fcn.10021b10
test eax, eax
jne 0x1000d88d
jmp 0x1000d8ca
mov ecx, dword [ebp - 0x38]
push ecx
mov edx, dword [ebp - 0x34]
push edx
push 1
mov eax, dword [ebp - 0x28]
push eax
call fcn.10025820
add esp, 0x10
mov ecx, dword [ebp - 0x38]
mov edx, dword [ecx + 0xc]
and edx, 0x20
test edx, edx
je 0x1000d8b2
jmp 0x1000d8ca
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0xc]
and ecx, 0x10
test ecx, ecx
je 0x1000d82c
mov dword [ebp - 0x1c], 1
mov dword [ebp - 4], 0xffffffff
call fcn.1000d8db
jmp 0x1000d965
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
add esp, 0x50
cmp ebp, esp
call fcn.10021b10
mov esp, ebp
pop ebp
ret