Function at 0x44ba40
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 0x727700
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 0x76ac30
push eax
mov dword [ebp - 0x14], edi
call fcn.007125fe
mov esi, eax
add esp, 8
test esi, esi
mov dword [ebp - 0x30], esi
jne 0x44ba93
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 0x44baa3
mov dword [ebp - 0x10], ecx
jmp 0x44baae
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 0x83b93c
push ecx
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x44bb3f
call ebx
cmp eax, 0x80090016
jne 0x44bb3f
push 8
push 1
push 0
lea edx, [ebp - 0x1c]
push 0x83b93c
push edx
call edi
test eax, eax
jne 0x44bb3f
call ebx
push eax
lea eax, [ebp - 0x178]
push 0x76ac68
push eax
call fcn.00711e28
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.00712494
push esi
call fcn.00712417
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 0x44bbb8
call ebx
push eax
lea ecx, [ebp - 0x178]
push 0x76ac40
push ecx
call fcn.00711e28
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.00712494
push esi
call fcn.00712417
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.00581bb0
mov cl, byte [ebp + 0xb]
add esp, 4
mov byte [ebp - 0x48], cl
lea ecx, [ebp - 0x48]
push 0
mov esi, eax
call fcn.00420200
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.004219e0
test al, al
je 0x44bc10
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.004219c0
mov eax, dword [ebp - 0x10]
xor esi, esi
cmp eax, esi
mov dword [ebp - 4], esi
mov dword [ebp - 0x34], 0xa0d
jle 0x44bc99
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 0x44bc3d
mov eax, 0x73a7f4
mov edi, dword [ebp - 0x30]
push edi
push 1
push ecx
push eax
call fcn.00712494
push edi
push 1
lea ecx, [ebp + 0xb]
push 1
push ecx
call fcn.00712494
mov eax, dword [ebx + 0x58]
add esp, 0x20
mov ecx, dword [esi + eax + 8]
mov eax, dword [esi + eax + 4]
test eax, eax
jne 0x44bc6f
mov eax, 0x73a7f4
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 0x44bc26
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 0x44bd30
mov eax, ecx
xor edx, edx
mov ebx, 0x24
div ebx
cmp edx, 0xa
mov al, dl
jge 0x44bd15
add al, 0x30
jmp 0x44bd17
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 0x44bcff
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 0x44bcda
mov cl, byte [ebp + 0xb]
xor eax, eax
mov byte [ebp - 0x2c], cl
mov edi, 0x76ac34
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.004219e0
test al, al
je 0x44bd92
mov edi, dword [ebp - 0x28]
mov ecx, ebx
mov edx, ecx
mov esi, 0x76ac34
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.004219c0
lea edi, [ebp - 0x68]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [ebp - 0x24]
repne scasb al, byte es:[edi]
mov eax, dword [0x73a7f0]
mov byte [ebp - 4], 1
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x44bdb8
call fcn.00704fbb
test esi, esi
jbe 0x44bdf7
mov ecx, dword [ebp - 0x24]
push 0
lea ebx, [ecx + esi]
lea ecx, [ebp - 0x2c]
push ebx
call fcn.004219e0
test al, al
je 0x44bdf7
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 0x44be05
mov eax, 0x73a7f4
mov esi, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x24]
push esi
push 1
push ecx
push eax
call fcn.00712494
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.00712417
mov ecx, dword [ebp - 0x28]
add esp, 4
cmp ecx, edi
je 0x44be59
mov al, byte [ecx - 1]
test al, al
je 0x44be4f
cmp al, 0xff
je 0x44be4f
dec al
mov byte [ecx - 1], al
jmp 0x44be59
dec ecx
push ecx
call fcn.00703996
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 0x44be85
mov al, byte [ecx - 1]
test al, al
je 0x44be7b
cmp al, 0xff
je 0x44be7b
dec al
mov byte [ecx - 1], al
jmp 0x44be85
dec ecx
push ecx
call fcn.00703996
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