Function at 0x10006ad0
Capabilities:
Create new key via cryptacquirecontext
Hash data via wincrypt
Hash data with md5
Initialize hashing via wincrypt

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1013ae30
mov eax, dword fs:[0]
push eax
sub esp, 0x38
mov eax, dword [0x1019b120]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, edx
mov dword [ebp - 0x3c], ecx
mov edi, dword [ebp + 8]
mov ecx, 1
mov dl, byte [esi]
mov dword [ebp - 0x40], 0
cmp edi, ecx
jle 0x10006b29
cmp byte [esi + ecx], dl
jne 0x10006b21
inc ecx
cmp ecx, edi
jl 0x10006b15
jmp 0x10006b29
mov al, byte [esi + ecx]
mov byte [esi], al
mov byte [esi + ecx], dl
mov ebx, dword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
lea eax, [ebp - 0x38]
push 0xf0000000
push 1
push 0
push 0
push eax
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
call ebx
test eax, eax
jne 0x10006b88
push 8
push 1
push eax
push str.Nitro5Container
lea eax, [ebp - 0x38]
push eax
call ebx
test eax, eax
jne 0x10006b88
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x8009000f
jne 0x10006b9e
push 0
push 1
push 0
push str.Nitro5Container
lea eax, [ebp - 0x38]
push eax
call ebx
test eax, eax
je 0x10006b9e
lea eax, [ebp - 0x34]
push eax
push 0
push 0
push 0x8003
push dword [ebp - 0x38]
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
push 0
push edi
push esi
mov dword [ebp - 4], 0
push dword [ebp - 0x34]
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
push 0
lea eax, [ebp - 0x30]
mov byte [ebp - 0x2c], 0
push eax
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x23], 0
push eax
push 2
push dword [ebp - 0x34]
xorps xmm0, xmm0
mov word [ebp - 0x1f], 0
movq qword [ebp - 0x2b], xmm0
mov byte [ebp - 0x1d], 0
mov dword [ebp - 0x30], 0x10
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
mov edi, dword [ebp - 0x30]
or ebx, 0xffffffff
test eax, eax
cmove edi, ebx
call fcn.1000c3bc
mov ecx, eax
xor eax, eax
test ecx, ecx
setne al
test eax, eax
jne 0x10006c12
push 0x80004005
call fcn.100032c0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x30], eax
xor esi, esi
mov byte [ebp - 4], 1
test edi, edi
je 0x10006c74
jmp 0x10006c30
movzx eax, byte [ebp + esi - 0x2c]
push eax
push 0x1017cc9c
lea eax, [ebp - 0x1c]
push 3
push eax
call fcn.10122b96
lea eax, [ebp - 0x1c]
add esp, 0x10
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x10006c50
sub eax, edx
lea ecx, [ebp - 0x30]
sar eax, 1
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.10002930
inc esi
cmp esi, edi
jb 0x10006c30
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax - 0x10]
lea esi, [eax - 0x10]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
mov ecx, eax
jl 0x10006c9b
cmp ecx, dword [esi]
jne 0x10006c9b
mov edi, esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x10006cd8
mov eax, dword [ecx]
push 2
push dword [esi + 4]
call dword [eax]
mov edi, eax
test edi, edi
jne 0x10006caf
call fcn.100031c0
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov ecx, dword [esi + 4]
lea eax, [ecx*2 + 2]
push eax
lea eax, [esi + 0x10]
push eax
lea eax, [ecx*2 + 2]
push eax
lea eax, [edi + 0x10]
push eax
call fcn.10121fef
add esp, 0x10
lea eax, [edi + 0x10]
mov byte [ebp - 4], 0
mov edi, dword [ebp - 0x3c]
mov dword [edi], eax
lea eax, [esi + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x10006cf8
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x10006d0d
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov dword [ebp - 0x34], 0
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x10006d1d
push 0
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.10121948
mov esp, ebp
pop ebp
ret