Function at 0x44bba0
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 0x723770
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x16c
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, ecx
push 0x766c28
push eax
mov dword [ebp - 0x14], edi
call fcn.0070e67e
mov esi, eax
add esp, 8
test esi, esi
mov dword [ebp - 0x30], esi
jne 0x44bbf3
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [edi + 0x58]
mov byte [ebp + 0xb], 0xa
test ecx, ecx
jne 0x44bc03
mov dword [ebp - 0x10], ecx
jmp 0x44bc0e
mov eax, dword [edi + 0x5c]
sub eax, ecx
sar eax, 4
mov dword [ebp - 0x10], eax
mov edi, dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
push 0
push 1
push 0
lea ecx, [ebp - 0x1c]
push 0x83752c
push ecx
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x44bc9f
call ebx
cmp eax, 0x80090016
jne 0x44bc9f
push 8
push 1
push 0
lea edx, [ebp - 0x1c]
push 0x83752c
push edx
call edi
test eax, eax
jne 0x44bc9f
call ebx
push eax
lea eax, [ebp - 0x178]
push str.CryptAcquireContext_Failed._Error_Code:__s_n
push eax
call fcn.0070dea8
lea edi, [ebp - 0x178]
or ecx, 0xffffffff
xor eax, eax
push esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
push ecx
lea ecx, [ebp - 0x178]
push ecx
call fcn.0070e514
push esi
call fcn.0070e497
add esp, 0x20
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x18]
push edx
push 0
push 0
push 0x8003
push eax
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x44bd18
call ebx
push eax
lea ecx, [ebp - 0x178]
push str.CryptCreateHash_Failed._Error_Code:__d_n
push ecx
call fcn.0070dea8
lea edi, [ebp - 0x178]
or ecx, 0xffffffff
xor eax, eax
push esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
lea edx, [ebp - 0x178]
push ecx
push edx
call fcn.0070e514
push esi
call fcn.0070e497
mov eax, dword [ebp - 0x1c]
add esp, 0x20
push 0
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
push 0x2f6
call fcn.0057ed70
mov cl, byte [ebp + 0xb]
add esp, 4
mov byte [ebp - 0x48], cl
lea ecx, [ebp - 0x48]
push 0
mov esi, eax
call fcn.00420210
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [ebp - 0x48]
push ebx
call fcn.004219f0
test al, al
je 0x44bd70
mov edi, dword [ebp - 0x44]
mov ecx, ebx
mov edx, ecx
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x48]
call fcn.004219d0
mov eax, dword [ebp - 0x10]
xor esi, esi
cmp eax, esi
mov dword [ebp - 4], esi
mov dword [ebp - 0x34], 0xa0d
jle 0x44bdf9
mov dword [ebp - 0x10], eax
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x58]
mov ecx, dword [esi + eax + 8]
mov eax, dword [esi + eax + 4]
test eax, eax
jne 0x44bd9d
mov eax, 0x7367f4
mov edi, dword [ebp - 0x30]
push edi
push 1
push ecx
push eax
call fcn.0070e514
push edi
push 1
lea ecx, [ebp + 0xb]
push 1
push ecx
call fcn.0070e514
mov eax, dword [ebx + 0x58]
add esp, 0x20
mov ecx, dword [esi + eax + 8]
mov eax, dword [esi + eax + 4]
test eax, eax
jne 0x44bdcf
mov eax, 0x7367f4
mov edx, dword [ebp - 0x18]
mov edi, dword [sym.imp.ADVAPI32.dll_CryptHashData]
push 0
push ecx
push eax
push edx
call edi
mov ecx, dword [ebp - 0x18]
push 0
lea eax, [ebp - 0x34]
push 2
push eax
push ecx
call edi
mov eax, dword [ebp - 0x10]
add esi, 0x10
dec eax
mov dword [ebp - 0x10], eax
jne 0x44bd86
mov ecx, dword [ebp - 0x18]
lea edx, [ebp - 0x38]
push 0
lea eax, [ebp - 0x78]
push edx
push eax
push 2
push ecx
mov dword [ebp - 0x38], 0x10
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
mov ecx, 7
mov eax, 0x30303030
lea edi, [ebp - 0x68]
mov dword [ebp - 0x14], 4
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
lea eax, [ebp - 0x76]
mov byte [ebp - 0x4c], 0
lea edi, [ebp - 0x68]
mov dword [ebp - 0x10], eax
xor ecx, ecx
xor edx, edx
mov ch, byte [eax + 1]
mov dh, byte [eax - 1]
mov cl, byte [eax]
and edx, 0xffff
shl ecx, 0x10
or ecx, edx
xor edx, edx
mov dl, byte [eax - 2]
mov esi, 0
or ecx, edx
je 0x44be90
mov eax, ecx
xor edx, edx
mov ebx, 0x24
div ebx
cmp edx, 0xa
mov al, dl
jge 0x44be75
add al, 0x30
jmp 0x44be77
add al, 0x37
mov byte [edi + esi], al
sub ecx, edx
mov eax, 0x38e38e39
mul ecx
shr edx, 3
mov ecx, edx
inc esi
test ecx, ecx
jne 0x44be5f
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
add eax, 4
add edi, 7
dec ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], ecx
jne 0x44be3a
mov cl, byte [ebp + 0xb]
xor eax, eax
mov byte [ebp - 0x2c], cl
mov edi, str.Key_value:
or ecx, 0xffffffff
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [ebp - 0x28], eax
mov ebx, ecx
lea ecx, [ebp - 0x2c]
push ebx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
call fcn.004219f0
test al, al
je 0x44bef2
mov edi, dword [ebp - 0x28]
mov ecx, ebx
mov edx, ecx
mov esi, str.Key_value:
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x2c]
call fcn.004219d0
lea edi, [ebp - 0x68]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [ebp - 0x24]
repne scasb al, byte es:[edi]
mov eax, dword [0x7367f0]
mov byte [ebp - 4], 1
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x44bf18
call fcn.0070103b
test esi, esi
jbe 0x44bf57
mov ecx, dword [ebp - 0x24]
push 0
lea ebx, [ecx + esi]
lea ecx, [ebp - 0x2c]
push ebx
call fcn.004219f0
test al, al
je 0x44bf57
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
mov ecx, esi
lea esi, [ebp - 0x68]
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x24], ebx
mov byte [eax + ebx], 0
mov eax, dword [ebp - 0x28]
xor edi, edi
cmp eax, edi
jne 0x44bf65
mov eax, 0x7367f4
mov esi, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x24]
push esi
push 1
push ecx
push eax
call fcn.0070e514
mov edx, dword [ebp - 0x1c]
add esp, 0x10
push edi
push edx
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov eax, dword [ebp - 0x18]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
push esi
call fcn.0070e497
mov ecx, dword [ebp - 0x28]
add esp, 4
cmp ecx, edi
je 0x44bfb9
mov al, byte [ecx - 1]
test al, al
je 0x44bfaf
cmp al, 0xff
je 0x44bfaf
dec al
mov byte [ecx - 1], al
jmp 0x44bfb9
dec ecx
push ecx
call fcn.006ffa16
add esp, 4
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x28], edi
cmp ecx, edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], edi
je 0x44bfe5
mov al, byte [ecx - 1]
test al, al
je 0x44bfdb
cmp al, 0xff
je 0x44bfdb
dec al
mov byte [ecx - 1], al
jmp 0x44bfe5
dec ecx
push ecx
call fcn.006ffa16
add esp, 4
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov eax, 1
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4