Function at 0x1000d983
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 0x100daf50
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 0x100f5318
mov eax, dword [ebp + 0x10]
push eax
call fcn.10026110
add esp, 8
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x1000da28
jmp 0x1000dc47
push 0x100f531c
mov ecx, dword [ebp + 0x14]
push ecx
call fcn.10026110
add esp, 8
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
jne 0x1000da47
jmp 0x1000dc47
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 0x1000dae0
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 0x1000dac3
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 0x1000dac1
xor eax, eax
test eax, eax
jne 0x1000dac1
push 0xa3c
push 0x100f5320
push 0x100f5368
call fcn.10025c90
add esp, 0xc
jmp 0x1000dae0
xor edx, edx
test edx, edx
jne 0x1000dae0
push 0xa40
push str.D:projectsNB_Live_Update___motherboardTest2.0EzULIBLiveUpdate.cpp
push 0x100f53b4
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 0x1000db09
jmp 0x1000dc47
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 0x1000db38
jmp 0x1000dc47
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 0x1000db66
jmp 0x1000dc47
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
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 0x1000dbad
jmp 0x1000dc47
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 0x1000dbd5
jmp 0x1000dc47
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0xc]
and ecx, 0x10
mov dword [ebp - 0x3c], ecx
mov esi, esp
lea edx, [ebp - 0x34]
push edx
mov eax, dword [ebp - 0x28]
push eax
push 0
mov ecx, dword [ebp - 0x3c]
push ecx
push 0
mov edx, dword [ebp - 0x44]
push edx
call dword [sym.imp.ADVAPI32.dll_CryptDecrypt]
cmp esi, esp
call fcn.10021b10
test eax, eax
jne 0x1000dc0a
jmp 0x1000dc47
mov eax, dword [ebp - 0x38]
push eax
mov ecx, dword [ebp - 0x34]
push ecx
push 1
mov edx, dword [ebp - 0x28]
push edx
call fcn.10025820
add esp, 0x10
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax + 0xc]
and ecx, 0x20
test ecx, ecx
je 0x1000dc2f
jmp 0x1000dc47
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + 0xc]
and eax, 0x10
test eax, eax
je 0x1000dbad
mov dword [ebp - 0x1c], 1
mov dword [ebp - 4], 0xffffffff
call fcn.1000dc58
jmp 0x1000dce2
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