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

Disassembly:
push 0x170
mov eax, 0x42f1db
call fcn.0042c599
mov edi, ecx
mov dword [ebp - 0xe8], edi
xor esi, esi
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xec], esi
xor eax, eax
push 0x4020ec
mov dword [ebp - 0xb8], 7
mov dword [ebp - 0xbc], esi
mov word [ebp - 0xcc], ax
call fcn.0040e64a
mov dword [ebp - 4], esi
lea ecx, [ebp - 0xd0]
mov eax, dword [edi + 0x10]
mov ebx, esi
mov dword [ebp - 0xdc], esi
mov dword [ebp - 0xd4], esi
mov dword [ebp - 0xd8], 0x10
mov eax, dword [eax + 0xc]
push 0xffffffffffffffff
push esi
add eax, 0x30
push eax
call fcn.0040e6ce
cmp dword [ebp - 0xb8], 8
mov eax, dword [ebp - 0xcc]
jae 0x41c4a8
lea eax, [ebp - 0xcc]
sub esp, 0xc
lea ecx, [ebp - 0x17c]
push eax
call fcn.0041c8a6
push 2
push ecx
lea ecx, [ebp - 0x17c]
mov byte [ebp - 4], 1
call fcn.0041c9a1
mov eax, dword [ebp - 0x17c]
mov eax, dword [eax + 4]
test byte [ebp + eax - 0x174], 6
jne 0x41c50b
mov edi, dword [ebp + eax - 0x154]
lea eax, [ebp - 0x2c]
push 1
push 1
push 0
mov esi, dword [edi]
push eax
mov ecx, dword [esi + 0x20]
call dword [0x437220]
mov ecx, edi
call dword [esi + 0x20]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0xe8]
jmp 0x41c513
or ecx, 0xffffffff
mov dword [ebp - 0x20], esi
mov eax, esi
mov dword [ebp - 0xe0], eax
lea esi, [eax + ecx]
mov dword [ebp - 0xe4], ecx
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x30]
and dword [ebp - 0x1c], 0
xor eax, eax
push 0x4020ec
mov dword [ebp - 0x18], 7
mov word [ebp - 0x2c], ax
call fcn.0040e64a
push 0xa
lea eax, [ebp - 0xb4]
mov dword [ebp - 0xec], 1
push eax
push esi
call dword [sym.imp.msvcrt.dll__itow]
add esp, 0xc
lea eax, [ebp - 0xb4]
lea ecx, [ebp - 0x30]
push eax
call fcn.0040e64a
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x30]
push eax
lea ecx, [edi + 0x58]
call fcn.0040e6ce
push 0
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 1
call fcn.0040e4cd
test esi, esi
je 0x41c610
push esi
call fcn.0042c06e
pop ecx
push 0
push ecx
lea ecx, [ebp - 0x17c]
mov ebx, eax
call fcn.0041c9a1
push esi
push ebx
lea ecx, [ebp - 0x17c]
call fcn.0041ca21
mov ecx, dword [ebp - 0x17c]
mov eax, dword [ecx + 4]
test byte [ebp + eax - 0x174], 6
je 0x41c661
and dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x30]
xor eax, eax
mov dword [ebp - 0x18], 7
push 0x40b1b8
mov word [ebp - 0x2c], ax
call fcn.0040e64a
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x30]
mov eax, dword [edi + 8]
push ecx
mov ecx, dword [eax + 0xc]
call fcn.00410972
push 0
push 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 1
call fcn.0040e4cd
lea ecx, [ebp - 0x17c]
call fcn.004146d6
test ebx, ebx
je 0x41c626
push ebx
call sub.msvcrt.dll_free
pop ecx
lea ecx, [ebp - 0x124]
call fcn.004147b0
lea eax, [ebp - 0x124]
mov byte [ebp - 4], 4
push eax
mov dword [ebp - 0x124], 0x4011ec
call fcn.0042ccde
pop ecx
push 0
push 1
lea ecx, [ebp - 0xd0]
call fcn.0040e4cd
call fcn.0042c548
ret
push 8
pop ecx
mov esi, 0x40b1e8
lea edi, [ebp - 0x34]
rep movsd dword es:[edi], dword [esi]
push 0xf0000000
push 1
push 0
push 0
lea eax, [ebp - 0xdc]
movsw word es:[edi], word [esi]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
je 0x41c610
lea eax, [ebp - 0xd4]
push eax
push 0
push 0
push 0x8003
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
je 0x41c610
mov eax, dword [ebp - 0xe0]
add eax, dword [ebp - 0xe4]
push 0
push eax
push ebx
push dword [ebp - 0xd4]
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x41c610
push 0
lea eax, [ebp - 0xd8]
push eax
lea eax, [ebp - 0x44]
push eax
push 2
push dword [ebp - 0xd4]
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
je 0x41c610
xor edx, edx
cmp dword [ebp - 0xd8], edx
jbe 0x41c740
mov esi, edx
cmp edx, 0x20
jae 0x41c73e
movzx ecx, byte [ebp + edx - 0x44]
mov eax, ecx
and ecx, 0xf
shr eax, 4
inc edx
mov ax, word [ebp + eax*2 - 0x34]
mov word [ebp + esi*2 - 0x84], ax
mov ax, word [ebp + ecx*2 - 0x34]
mov word [ebp + esi*2 - 0x82], ax
add esi, 2
cmp edx, dword [ebp - 0xd8]
jb 0x41c703
cmp edx, 0x20
ja 0x41c751
add edx, edx
cmp edx, 0x40
jae 0x41c785
xor eax, eax
mov word [ebp + edx - 0x84], ax
push dword [ebp - 0xd4]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
push 0
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov ecx, dword [ebp - 0xe8]
lea eax, [ebp - 0x84]
push eax
add ecx, 0x20
call fcn.0040e64a
jmp 0x41c610
call fcn.0042cbd7
int3