Function at 0x1000cfa0
Capabilities:
Hash data via wincrypt
Hash data with md5
Initialize hashing via wincrypt

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x15c
mov eax, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov eax, esp
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x100109e0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
lea ecx, [ebp - 0x28]
call fcn.100045c0
lea ecx, [ebp - 0x34]
call fcn.100045c0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x3c], 0
lea eax, [ebp - 0x38]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0xf0000000
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
sub esp, 0x14
cmp eax, 0
jne 0x1000d077
mov eax, esp
mov dword [eax], str.Failed_to_acquire_cryptographic_context.
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x108], ecx
call fcn.1000ced0
sub esp, 4
mov ecx, dword [ebp - 0x108]
mov dword [ebp - 0x10], 1
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x101e84f0
call fcn.101698b1
jmp 0x1000d788
mov eax, dword [ebp + 0x18]
add eax, dword [ebp + 0x1c]
mov dword [ebp - 0x4c], eax
lea ecx, [ebp - 0x58]
call fcn.100045c0
lea ecx, [ebp - 0x64]
call fcn.100045c0
lea ecx, [ebp - 0x58]
call fcn.1000d810
cmp eax, dword [ebp - 0x4c]
jge 0x1000d5e1
mov ecx, dword [ebp - 0x38]
xor eax, eax
lea eax, [ebp - 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], 0x8003
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
sub esp, 0x14
cmp eax, 0
jne 0x1000d12d
mov ecx, dword [ebp - 0x38]
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0
mov eax, dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
call eax
sub esp, 8
mov eax, esp
mov dword [eax], str.Failed_to_create_hash_object.
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x10c], ecx
call fcn.1000ced0
sub esp, 4
mov ecx, dword [ebp - 0x10c]
mov dword [ebp - 0x10], 3
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x101e84f0
call fcn.101698b1
jmp 0x1000d788
lea ecx, [ebp - 0x64]
call fcn.100043a0
test al, 1
jne 0x1000d1f0
lea ecx, [ebp - 0x64]
call fcn.1000d810
mov dword [ebp - 0x110], eax
lea ecx, [ebp - 0x64]
call fcn.1000cf60
mov ecx, eax
mov eax, dword [ebp - 0x110]
mov edx, dword [ebp - 0x3c]
xor esi, esi
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
sub esp, 0x10
cmp eax, 0
jne 0x1000d1e9
mov ecx, dword [ebp - 0x3c]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
call eax
sub esp, 4
mov ecx, dword [ebp - 0x38]
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0
mov eax, dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
call eax
sub esp, 8
mov eax, esp
mov dword [eax], str.Failed_to_hash_data.
lea ecx, [ebp - 0x7c]
mov dword [ebp - 0x114], ecx
call fcn.1000ced0
sub esp, 4
mov ecx, dword [ebp - 0x114]
mov dword [ebp - 0x10], 3
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x101e84f0
call fcn.101698b1
jmp 0x1000d788
mov dword [ebp - 0x10], 3
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x118], ecx
call fcn.100033d0
mov ecx, dword [ebp + 0xc]
mov eax, esp
lea edx, [ebp - 0x80]
mov dword [eax], edx
call fcn.1000d920
sub esp, 4
mov ecx, dword [ebp + 0xc]
mov eax, esp
lea edx, [ebp - 0x84]
mov dword [eax], edx
call fcn.1000d970
sub esp, 4
mov ecx, dword [ebp - 0x118]
mov eax, esp
lea edx, [ebp - 0x8c]
mov dword [eax], edx
call fcn.1000d9c0
sub esp, 4
mov ecx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x88], eax
mov edx, dword [ebp - 0x88]
mov esi, dword [ebp - 0x84]
mov edi, dword [ebp - 0x80]
mov dword [ebp - 0x10], 3
mov eax, esp
mov dword [eax + 0xc], edi
mov dword [eax + 8], esi
mov dword [eax + 4], edx
lea edx, [ebp - 0x90]
mov dword [eax], edx
call fcn.1000d840
sub esp, 0x10
jmp 0x1000d285
mov ecx, dword [ebp + 8]
call fcn.100043a0
test al, 1
jne 0x1000d323
mov ecx, dword [ebp + 8]
mov eax, esp
lea edx, [ebp - 0x94]
mov dword [eax], edx
call fcn.10003c40
sub esp, 4
mov ecx, dword [ebp + 8]
mov eax, esp
lea edx, [ebp - 0x98]
mov dword [eax], edx
call fcn.10003c00
sub esp, 4
mov eax, esp
lea ecx, [ebp - 0xa0]
mov dword [eax], ecx
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x11c], ecx
call fcn.1000d9c0
sub esp, 4
mov ecx, dword [ebp - 0x11c]
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x9c], eax
mov edx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov eax, esp
mov dword [eax + 0xc], edi
mov dword [eax + 8], esi
mov dword [eax + 4], edx
lea edx, [ebp - 0xa4]
mov dword [eax], edx
call fcn.1000da00
sub esp, 0x10
jmp 0x1000d31e
jmp 0x1000d323
lea ecx, [ebp - 0x28]
call fcn.1000d810
mov dword [ebp - 0x120], eax
lea ecx, [ebp - 0x28]
call fcn.1000cf60
mov ecx, eax
mov eax, dword [ebp - 0x120]
mov edx, dword [ebp - 0x3c]
xor esi, esi
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
sub esp, 0x10
cmp eax, 0
jne 0x1000d3cb
mov ecx, dword [ebp - 0x3c]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
call eax
sub esp, 4
mov ecx, dword [ebp - 0x38]
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0
mov eax, dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
call eax
sub esp, 8
mov eax, esp
mov dword [eax], str.Failed_to_hash_data.
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0x124], ecx
call fcn.1000ced0
sub esp, 4
mov ecx, dword [ebp - 0x124]
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x101e84f0
call fcn.101698b1
jmp 0x1000d788
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb8], 4
mov edx, dword [ebp - 0x3c]
lea ecx, [ebp - 0xb4]
lea eax, [ebp - 0xb8]
xor esi, esi
mov dword [esp], edx
mov dword [esp + 4], 4
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
sub esp, 0x14
cmp eax, 0
jne 0x1000d47d
mov ecx, dword [ebp - 0x3c]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
call eax
sub esp, 4
mov ecx, dword [ebp - 0x38]
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0
mov eax, dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
call eax
sub esp, 8
mov eax, esp
mov dword [eax], str.Failed_to_get_hash_length.
lea ecx, [ebp - 0xc4]
mov dword [ebp - 0x128], ecx
call fcn.1000ced0
sub esp, 4
mov ecx, dword [ebp - 0x128]
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x101e84f0
call fcn.101698b1
jmp 0x1000d788
mov ecx, dword [ebp - 0xb4]
mov eax, esp
mov dword [eax], ecx
lea ecx, [ebp - 0x64]
call fcn.1000dae0
sub esp, 4
jmp 0x1000d497
lea ecx, [ebp - 0x64]
call fcn.1000cf60
mov ecx, eax
mov edx, dword [ebp - 0x3c]
lea eax, [ebp - 0xb4]
xor esi, esi
mov dword [esp], edx
mov dword [esp + 4], 2
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
sub esp, 0x14
cmp eax, 0
jne 0x1000d539
mov ecx, dword [ebp - 0x3c]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
call eax
sub esp, 4
mov ecx, dword [ebp - 0x38]
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0
mov eax, dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
call eax
sub esp, 8
mov eax, esp
mov dword [eax], str.Failed_to_get_hash_value.
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0x12c], ecx
call fcn.1000ced0
sub esp, 4
mov ecx, dword [ebp - 0x12c]
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x101e84f0
call fcn.101698b1
jmp 0x1000d788
mov ecx, dword [ebp - 0x3c]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
call eax
sub esp, 4
mov eax, esp
lea ecx, [ebp - 0xd4]
mov dword [eax], ecx
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x134], ecx
call fcn.1000d9c0
sub esp, 4
mov ecx, dword [ebp - 0x134]
mov eax, esp
lea edx, [ebp - 0xd8]
mov dword [eax], edx
call fcn.1000dc00
sub esp, 4
mov eax, esp
lea ecx, [ebp - 0xe0]
mov dword [eax], ecx
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x130], ecx
call fcn.1000d9c0
sub esp, 4
mov ecx, dword [ebp - 0x130]
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0xdc], eax
mov edx, dword [ebp - 0xdc]
mov esi, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xd4]
mov eax, esp
mov dword [eax + 0xc], edi
mov dword [eax + 8], esi
mov dword [eax + 4], edx
lea edx, [ebp - 0xe4]
mov dword [eax], edx
call fcn.1000db10
sub esp, 0x10
jmp 0x1000d5dc
jmp 0x1000d090
mov ecx, dword [ebp - 0x38]
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0
mov eax, dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
call eax
sub esp, 8
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x138], eax
mov eax, esp
lea ecx, [ebp - 0xec]
mov dword [ebp - 0x140], ecx
mov dword [eax], ecx
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x13c], ecx
call fcn.1000dc00
sub esp, 4
mov ecx, dword [ebp - 0x140]
mov edx, dword [ebp + 0x18]
mov eax, esp
mov dword [eax + 4], edx
lea edx, [ebp - 0xe8]
mov dword [eax], edx
call fcn.1000dcd0
sub esp, 8
mov ecx, dword [ebp - 0x13c]
mov eax, esp
lea edx, [ebp - 0xf0]
mov dword [eax], edx
call fcn.1000dc00
sub esp, 4
mov ecx, dword [ebp - 0x138]
mov edx, dword [ebp - 0xf0]
mov esi, dword [ebp - 0xe8]
mov dword [ebp - 0x10], 3
mov eax, esp
mov dword [eax + 4], esi
mov dword [eax], edx
call fcn.1000dc40
sub esp, 8
jmp 0x1000d686
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x144], eax
mov eax, esp
lea ecx, [ebp - 0xfc]
mov dword [ebp - 0x154], ecx
mov dword [eax], ecx
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x14c], ecx
call fcn.1000dc00
sub esp, 4
mov ecx, dword [ebp - 0x154]
mov edx, dword [ebp + 0x18]
mov eax, esp
mov dword [eax + 4], edx
lea edx, [ebp - 0xf8]
mov dword [ebp - 0x150], edx
mov dword [eax], edx
call fcn.1000dcd0
sub esp, 8
mov ecx, dword [ebp - 0x150]
mov edx, dword [ebp + 0x1c]
mov eax, esp
mov dword [eax + 4], edx
lea edx, [ebp - 0xf4]
mov dword [eax], edx
call fcn.1000dcd0
sub esp, 8
mov ecx, dword [ebp - 0x14c]
mov eax, esp
lea edx, [ebp - 0x104]
mov dword [ebp - 0x148], edx
mov dword [eax], edx
call fcn.1000dc00
sub esp, 4
mov ecx, dword [ebp - 0x148]
mov edx, dword [ebp + 0x18]
mov eax, esp
mov dword [eax + 4], edx
lea edx, [ebp - 0x100]
mov dword [eax], edx
call fcn.1000dcd0
sub esp, 8
mov ecx, dword [ebp - 0x144]
mov edx, dword [ebp - 0x100]
mov esi, dword [ebp - 0xf4]
mov eax, esp
mov dword [eax + 4], esi
mov dword [eax], edx
call fcn.1000dc40
sub esp, 8
jmp 0x1000d754
lea ecx, [ebp - 0x64]
call fcn.1000cf80
lea ecx, [ebp - 0x58]
call fcn.1000cf80
lea ecx, [ebp - 0x34]
call fcn.1000cf80
lea ecx, [ebp - 0x28]
call fcn.1000cf80
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
add esp, 0x15c
pop esi
pop edi
pop ebx
pop ebp
ret
nop dword [eax + eax]
push ebp
sub esp, 0x14
add ebp, 0xc
lea ecx, [ebp - 0x64]
call fcn.1000cf80
add esp, 0x14
pop ebp
ret