Function at 0x40c482
Capabilities:
Hash data with md5

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x7c
mov eax, dword [0x418074]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
and dword [ebp - 0x48], 0
push ebx
push esi
push edi
mov esi, 0x418114
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x14]
lea edi, [ebp - 0x7c]
mov dword [ebp - 0xc], eax
mov ebx, edx
mov eax, dword [0x419ea8]
lea edx, [ebp - 0x58]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x5c], ecx
movsd dword es:[edi], dword [esi]
mov ecx, ebx
push eax
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x20], 0x67452301
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x1c], 0xefcdab89
mov dword [ebp - 0x18], 0x98badcfe
mov dword [ebp - 0x14], 0x10325476
movsd dword es:[edi], dword [esi]
call fcn.004131a4
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x40], eax
mov eax, dword [0x41812c]
lea edi, [edx + 0x3f]
lea esi, [edx - 1]
and edi, 0xffffffc0
add esi, eax
dec eax
not eax
and esi, eax
mov dword [ebp - 0x50], esi
cmp esi, edx
jb 0x40c763
mov eax, dword [ebp - 0x4c]
mov ecx, esi
mov dword [ebp - 0x44], eax
sub ecx, edx
sub eax, edx
cmp eax, ecx
jb 0x40c529
mov eax, ecx
mov ebx, dword [ebp - 0x58]
push eax
push 0
lea eax, [ebx + edx]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
cmp dword [0x419f0c], 0
je 0x40c552
mov ecx, dword [ebp - 0x3c]
mov edx, ebx
push esi
call fcn.00416be5
mov dword [ebp - 0x3c], eax
cmp dword [0x419f20], 0
je 0x40c566
push esi
mov edx, ebx
lea ecx, [ebp - 0x7c]
call fcn.00417386
cmp dword [0x419ed8], 0
je 0x40c581
cmp dword [ebx], 0x4643534d
jne 0x40c581
mov eax, dword [ebx + 0x36]
and dword [ebx + 0x36], 0
mov dword [ebp - 0x48], eax
push edi
mov edx, ebx
lea ecx, [ebp - 0x20]
call fcn.00417386
cmp dword [0x419ed8], 0
lea esi, [ebp - 0x20]
push 6
pop ecx
lea edi, [ebp - 0x38]
rep movsd dword es:[edi], dword [esi]
je 0x40c5ae
cmp dword [ebx], 0x4643534d
jne 0x40c5ae
mov eax, dword [ebp - 0x48]
mov dword [ebx + 0x36], eax
lea eax, [ebp - 0x48]
mov ecx, 0x418594
push eax
push dword [ebp - 0x5c]
lea edx, [ebp - 0x20]
call fcn.00412a01
mov ecx, dword [ebp - 0x4c]
mov edx, eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x60], edx
cmp ecx, eax
jb 0x40c5d6
mov ecx, eax
mov dword [ebp - 0x44], ecx
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
test edx, edx
je 0x40c5f8
mov eax, dword [ebp - 0x48]
sub esp, 0xc
mov edx, ebx
mov eax, dword [eax + 0x20]
push ecx
push esi
push edi
mov dword [ebp - 0x50], eax
call fcn.0041662e
jmp 0x40c607
and dword [ebp - 0x50], 0
mov edx, ecx
push esi
push edi
mov ecx, ebx
call fcn.00411a6e
add edi, dword [ebp - 0x44]
adc esi, 0
push esi
push edi
call fcn.0040c861
cmp dword [ebp - 0x40], 0
jne 0x40c6f7
mov ecx, dword [ebp - 0x64]
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x4c]
push eax
lea edx, [ebp - 0x58]
call fcn.004131a4
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x6c], eax
mov eax, dword [0x41812c]
lea ecx, [edx - 1]
add ecx, eax
dec eax
not eax
and ecx, eax
lea eax, [edx + 0x3f]
and eax, 0xffffffc0
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x68], eax
sub ecx, edx
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x40], eax
sub eax, edx
cmp eax, ecx
jb 0x40c662
mov eax, ecx
mov ebx, dword [ebp - 0x58]
push eax
push 0
lea eax, [ebx + edx]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x38]
mov edx, ebx
push dword [ebp - 0x68]
call fcn.00417386
cmp dword [0x419f0c], 0
je 0x40c69a
push dword [ebp - 0x44]
mov ecx, dword [ebp - 0x3c]
mov edx, ebx
call fcn.00416be5
mov dword [ebp - 0x3c], eax
cmp dword [0x419f20], 0
je 0x40c6b0
push dword [ebp - 0x44]
mov edx, ebx
lea ecx, [ebp - 0x7c]
call fcn.00417386
mov eax, dword [ebp - 0x44]
cmp dword [ebp - 0x40], eax
jae 0x40c6bd
mov eax, dword [ebp - 0x40]
jmp 0x40c6c0
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x60], 0
je 0x40c6d5
sub esp, 0xc
mov edx, ebx
push eax
push esi
push edi
call fcn.0041662e
jmp 0x40c6e0
push esi
push edi
mov edx, eax
mov ecx, ebx
call fcn.00411a6e
add edi, dword [ebp - 0x40]
adc esi, 0
push esi
push edi
call fcn.0040c861
cmp dword [ebp - 0x6c], 0
je 0x40c61e
mov ebx, dword [ebp - 0x5c]
lea eax, [ebp - 0x48]
push eax
push ebx
lea edx, [ebp - 0x38]
mov ecx, 0x419ce8
call fcn.00412a01
cmp dword [ebp - 0x60], 0
je 0x40c73b
test eax, eax
je 0x40c72c
call fcn.00416764
mov edx, dword [ebp - 0x48]
mov ecx, ebx
mov edx, dword [edx + 0x20]
call fcn.0040c773
xor eax, eax
jmp 0x40c752
mov ecx, dword [ebp - 0x50]
mov edx, ebx
call fcn.0040a512
call fcn.00416704
mov eax, dword [ebp - 0x3c]
lea esi, [ebp - 0x7c]
mov edi, 0x418114
mov dword [0x419ea8], eax
xor eax, eax
inc eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00417690
leave
ret 0x10
push 0x402634
push 0x216
call fcn.00412682
int3