Function at 0x40c474
Capabilities:
Hash data with md5

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x7c
mov eax, dword [0x419074]
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, 0x419114
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 [0x41aea8]
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.004133d0
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x40], eax
mov eax, dword [0x41912c]
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 0x40c757
mov eax, dword [ebp - 0x4c]
mov ecx, esi
mov dword [ebp - 0x44], eax
sub ecx, edx
sub eax, edx
cmp eax, ecx
jb 0x40c51b
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 [0x41af0c], 0
je 0x40c544
mov ecx, dword [ebp - 0x3c]
mov edx, ebx
push esi
call fcn.00416e83
mov dword [ebp - 0x3c], eax
cmp dword [0x41af20], 0
je 0x40c558
push esi
mov edx, ebx
lea ecx, [ebp - 0x7c]
call fcn.00417628
cmp dword [0x41aed8], 0
je 0x40c573
cmp dword [ebx], 0x4643534d
jne 0x40c573
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.00417628
cmp dword [0x41aed8], 0
lea esi, [ebp - 0x20]
push 6
pop ecx
lea edi, [ebp - 0x38]
rep movsd dword es:[edi], dword [esi]
je 0x40c5a0
cmp dword [ebx], 0x4643534d
jne 0x40c5a0
mov eax, dword [ebp - 0x48]
mov dword [ebx + 0x36], eax
lea eax, [ebp - 0x48]
mov ecx, 0x419594
push eax
push dword [ebp - 0x5c]
lea edx, [ebp - 0x20]
call fcn.00412bb1
mov ecx, dword [ebp - 0x4c]
mov edx, eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x60], edx
cmp ecx, eax
jb 0x40c5c8
mov ecx, eax
mov dword [ebp - 0x44], ecx
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
test edx, edx
je 0x40c5ea
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.004168e0
jmp 0x40c5f9
and dword [ebp - 0x50], 0
mov edx, ecx
push esi
push edi
mov ecx, ebx
call fcn.00411bd0
add edi, dword [ebp - 0x44]
adc esi, 0
push esi
push edi
call fcn.0040c855
cmp dword [ebp - 0x40], 0
jne 0x40c6e9
mov ecx, dword [ebp - 0x64]
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x4c]
push eax
lea edx, [ebp - 0x58]
call fcn.004133d0
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x6c], eax
mov eax, dword [0x41912c]
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 0x40c654
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.00417628
cmp dword [0x41af0c], 0
je 0x40c68c
push dword [ebp - 0x44]
mov ecx, dword [ebp - 0x3c]
mov edx, ebx
call fcn.00416e83
mov dword [ebp - 0x3c], eax
cmp dword [0x41af20], 0
je 0x40c6a2
push dword [ebp - 0x44]
mov edx, ebx
lea ecx, [ebp - 0x7c]
call fcn.00417628
mov eax, dword [ebp - 0x44]
cmp dword [ebp - 0x40], eax
jae 0x40c6af
mov eax, dword [ebp - 0x40]
jmp 0x40c6b2
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x60], 0
je 0x40c6c7
sub esp, 0xc
mov edx, ebx
push eax
push esi
push edi
call fcn.004168e0
jmp 0x40c6d2
push esi
push edi
mov edx, eax
mov ecx, ebx
call fcn.00411bd0
add edi, dword [ebp - 0x40]
adc esi, 0
push esi
push edi
call fcn.0040c855
cmp dword [ebp - 0x6c], 0
je 0x40c610
mov ebx, dword [ebp - 0x5c]
lea eax, [ebp - 0x48]
push eax
push ebx
lea edx, [ebp - 0x38]
mov ecx, 0x41ace8
call fcn.00412bb1
cmp dword [ebp - 0x60], 0
je 0x40c72d
test eax, eax
je 0x40c71e
call fcn.00416a1a
mov edx, dword [ebp - 0x48]
mov ecx, ebx
mov edx, dword [edx + 0x20]
call fcn.0040c767
xor eax, eax
jmp 0x40c744
mov ecx, dword [ebp - 0x50]
mov edx, ebx
call fcn.0040a4e4
call fcn.004169b8
mov eax, dword [ebp - 0x3c]
lea esi, [ebp - 0x7c]
mov edi, 0x419114
mov dword [0x41aea8], 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.00417930
mov esp, ebp
pop ebp
ret 0x10
push 0x402624
push 0x216
call fcn.00412812
int3