Function at 0x409c74
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc0
push ebx
push esi
push edi
mov esi, 0x67452301
mov edi, 0xefcdab89
mov edx, 0x98badcfe
mov ebx, 0x10325476
push esi
push edi
xor ecx, ecx
mov esi, dword [ebp + 0xc]
lea edi, [ebp - 0x40]
mov eax, dword [ecx + esi]
mov dword [ecx + edi], eax
add ecx, 4
cmp ecx, 0x40
jb 0x409c9b
pop edi
pop esi
mov eax, edi
and eax, edx
mov ecx, edi
not ecx
and ecx, ebx
or ecx, eax
lea esi, [esi + ecx - 0x28955b88]
add esi, dword [ebp - 0x40]
rol esi, 7
add esi, edi
mov eax, esi
and eax, edi
mov ecx, esi
not ecx
and ecx, edx
or ecx, eax
lea ebx, [ebx + ecx - 0x173848aa]
add ebx, dword [ebp - 0x3c]
rol ebx, 0xc
add ebx, esi
mov eax, ebx
and eax, esi
mov ecx, ebx
not ecx
and ecx, edi
or ecx, eax
lea edx, [edx + ecx + 0x242070db]
add edx, dword [ebp - 0x38]
rol edx, 0x11
add edx, ebx
mov eax, edx
and eax, ebx
mov ecx, edx
not ecx
and ecx, esi
or ecx, eax
lea edi, [edi + ecx - 0x3e423112]
add edi, dword [ebp - 0x34]
rol edi, 0x16
add edi, edx
mov eax, edi
and eax, edx
mov ecx, edi
not ecx
and ecx, ebx
or ecx, eax
lea esi, [esi + ecx - 0xa83f051]
add esi, dword [ebp - 0x30]
rol esi, 7
add esi, edi
mov eax, esi
and eax, edi
mov ecx, esi
not ecx
and ecx, edx
or ecx, eax
lea ebx, [ebx + ecx + 0x4787c62a]
add ebx, dword [ebp - 0x2c]
rol ebx, 0xc
add ebx, esi
mov eax, ebx
and eax, esi
mov ecx, ebx
not ecx
and ecx, edi
or ecx, eax
lea edx, [edx + ecx - 0x57cfb9ed]
add edx, dword [ebp - 0x28]
rol edx, 0x11
add edx, ebx
mov eax, edx
and eax, ebx
mov ecx, edx
not ecx
and ecx, esi
or ecx, eax
lea edi, [edi + ecx - 0x2b96aff]
add edi, dword [ebp - 0x24]
rol edi, 0x16
add edi, edx
mov eax, edi
and eax, edx
mov ecx, edi
not ecx
and ecx, ebx
or ecx, eax
lea esi, [esi + ecx + 0x698098d8]
add esi, dword [ebp - 0x20]
rol esi, 7
add esi, edi
mov eax, esi
and eax, edi
mov ecx, esi
not ecx
and ecx, edx
or ecx, eax
lea ebx, [ebx + ecx - 0x74bb0851]
add ebx, dword [ebp - 0x1c]
rol ebx, 0xc
add ebx, esi
mov eax, ebx
and eax, esi
mov ecx, ebx
not ecx
and ecx, edi
or ecx, eax
lea edx, [edx + ecx - 0xa44f]
add edx, dword [ebp - 0x18]
rol edx, 0x11
add edx, ebx
mov eax, edx
and eax, ebx
mov ecx, edx
not ecx
and ecx, esi
or ecx, eax
lea edi, [edi + ecx - 0x76a32842]
add edi, dword [ebp - 0x14]
rol edi, 0x16
add edi, edx
mov eax, edi
and eax, edx
mov ecx, edi
not ecx
and ecx, ebx
or ecx, eax
lea esi, [esi + ecx + 0x6b901122]
add esi, dword [ebp - 0x10]
rol esi, 7
add esi, edi
mov eax, esi
and eax, edi
mov ecx, esi
not ecx
and ecx, edx
or ecx, eax
lea ebx, [ebx + ecx - 0x2678e6d]
add ebx, dword [ebp - 0xc]
rol ebx, 0xc
add ebx, esi
mov eax, ebx
and eax, esi
mov ecx, ebx
not ecx
and ecx, edi
or ecx, eax
lea edx, [edx + ecx - 0x5986bc72]
add edx, dword [ebp - 8]
rol edx, 0x11
add edx, ebx
mov eax, edx
and eax, ebx
mov ecx, edx
not ecx
and ecx, esi
or ecx, eax
lea edi, [edi + ecx + 0x49b40821]
add edi, dword [ebp - 4]
rol edi, 0x16
add edi, edx
mov eax, edi
and eax, ebx
mov ecx, ebx
not ecx
and ecx, edx
or ecx, eax
lea esi, [esi + ecx - 0x9e1da9e]
add esi, dword [ebp - 0x3c]
rol esi, 5
add esi, edi
mov eax, esi
and eax, edx
mov ecx, edx
not ecx
and ecx, edi
or ecx, eax
lea ebx, [ebx + ecx - 0x3fbf4cc0]
add ebx, dword [ebp - 0x28]
rol ebx, 9
add ebx, esi
mov eax, ebx
and eax, edi
mov ecx, edi
not ecx
and ecx, esi
or ecx, eax
lea edx, [edx + ecx + 0x265e5a51]
add edx, dword [ebp - 0x14]
rol edx, 0xe
add edx, ebx
mov eax, edx
and eax, esi
mov ecx, esi
not ecx
and ecx, ebx
or ecx, eax
lea edi, [edi + ecx - 0x16493856]
add edi, dword [ebp - 0x40]
rol edi, 0x14
add edi, edx
mov eax, edi
and eax, ebx
mov ecx, ebx
not ecx
and ecx, edx
or ecx, eax
lea esi, [esi + ecx - 0x29d0efa3]
add esi, dword [ebp - 0x2c]
rol esi, 5
add esi, edi
mov eax, esi
and eax, edx
mov ecx, edx
not ecx
and ecx, edi
or ecx, eax
lea ebx, [ebx + ecx + 0x2441453]
add ebx, dword [ebp - 0x18]
rol ebx, 9
add ebx, esi
mov eax, ebx
and eax, edi
mov ecx, edi
not ecx
and ecx, esi
or ecx, eax
lea edx, [edx + ecx - 0x275e197f]
add edx, dword [ebp - 4]
rol edx, 0xe
add edx, ebx
mov eax, edx
and eax, esi
mov ecx, esi
not ecx
and ecx, ebx
or ecx, eax
lea edi, [edi + ecx - 0x182c0438]
add edi, dword [ebp - 0x30]
rol edi, 0x14
add edi, edx
mov eax, edi
and eax, ebx
mov ecx, ebx
not ecx
and ecx, edx
or ecx, eax
lea esi, [esi + ecx + 0x21e1cde6]
add esi, dword [ebp - 0x1c]
rol esi, 5
add esi, edi
mov eax, esi
and eax, edx
mov ecx, edx
not ecx
and ecx, edi
or ecx, eax
lea ebx, [ebx + ecx - 0x3cc8f82a]
add ebx, dword [ebp - 8]
rol ebx, 9
add ebx, esi
mov eax, ebx
and eax, edi
mov ecx, edi
not ecx
and ecx, esi
or ecx, eax
lea edx, [edx + ecx - 0xb2af279]
add edx, dword [ebp - 0x34]
rol edx, 0xe
add edx, ebx
mov eax, edx
and eax, esi
mov ecx, esi
not ecx
and ecx, ebx
or ecx, eax
lea edi, [edi + ecx + 0x455a14ed]
add edi, dword [ebp - 0x20]
rol edi, 0x14
add edi, edx
mov eax, edi
and eax, ebx
mov ecx, ebx
not ecx
and ecx, edx
or ecx, eax
lea esi, [esi + ecx - 0x561c16fb]
add esi, dword [ebp - 0xc]
rol esi, 5
add esi, edi
mov eax, esi
and eax, edx
mov ecx, edx
not ecx
and ecx, edi
or ecx, eax
lea ebx, [ebx + ecx - 0x3105c08]
add ebx, dword [ebp - 0x38]
rol ebx, 9
add ebx, esi
mov eax, ebx
and eax, edi
mov ecx, edi
not ecx
and ecx, esi
or ecx, eax
lea edx, [edx + ecx + 0x676f02d9]
add edx, dword [ebp - 0x24]
rol edx, 0xe
add edx, ebx
mov eax, edx
and eax, esi
mov ecx, esi
not ecx
and ecx, ebx
or ecx, eax
lea edi, [edi + ecx - 0x72d5b376]
add edi, dword [ebp - 0x10]
rol edi, 0x14
add edi, edx
mov ecx, edi
xor ecx, edx
xor ecx, ebx
lea esi, [esi + ecx - 0x5c6be]
add esi, dword [ebp - 0x2c]
rol esi, 4
add esi, edi
mov ecx, esi
xor ecx, edi
xor ecx, edx
lea ebx, [ebx + ecx - 0x788e097f]
add ebx, dword [ebp - 0x20]
rol ebx, 0xb
add ebx, esi
mov ecx, ebx
xor ecx, esi
xor ecx, edi
lea edx, [edx + ecx + 0x6d9d6122]
add edx, dword [ebp - 0x14]
rol edx, 0x10
add edx, ebx
mov ecx, edx
xor ecx, ebx
xor ecx, esi
lea edi, [edi + ecx - 0x21ac7f4]
add edi, dword [ebp - 8]
rol edi, 0x17
add edi, edx
mov ecx, edi
xor ecx, edx
xor ecx, ebx
lea esi, [esi + ecx - 0x5b4115bc]
add esi, dword [ebp - 0x3c]
rol esi, 4
add esi, edi
mov ecx, esi
xor ecx, edi
xor ecx, edx
lea ebx, [ebx + ecx + 0x4bdecfa9]
add ebx, dword [ebp - 0x30]
rol ebx, 0xb
add ebx, esi
mov ecx, ebx
xor ecx, esi
xor ecx, edi
lea edx, [edx + ecx - 0x944b4a0]
add edx, dword [ebp - 0x24]
rol edx, 0x10
add edx, ebx
mov ecx, edx
xor ecx, ebx
xor ecx, esi
lea edi, [edi + ecx - 0x41404390]
add edi, dword [ebp - 0x18]
rol edi, 0x17
add edi, edx
mov ecx, edi
xor ecx, edx
xor ecx, ebx
lea esi, [esi + ecx + 0x289b7ec6]
add esi, dword [ebp - 0xc]
rol esi, 4
add esi, edi
mov ecx, esi
xor ecx, edi
xor ecx, edx
lea ebx, [ebx + ecx - 0x155ed806]
add ebx, dword [ebp - 0x40]
rol ebx, 0xb
add ebx, esi
mov ecx, ebx
xor ecx, esi
xor ecx, edi
lea edx, [edx + ecx - 0x2b10cf7b]
add edx, dword [ebp - 0x34]
rol edx, 0x10
add edx, ebx
mov ecx, edx
xor ecx, ebx
xor ecx, esi
lea edi, [edi + ecx + 0x4881d05]
add edi, dword [ebp - 0x28]
rol edi, 0x17
add edi, edx
mov ecx, edi
xor ecx, edx
xor ecx, ebx
lea esi, [esi + ecx - 0x262b2fc7]
add esi, dword [ebp - 0x1c]
rol esi, 4
add esi, edi
mov ecx, esi
xor ecx, edi
xor ecx, edx
lea ebx, [ebx + ecx - 0x1924661b]
add ebx, dword [ebp - 0x10]
rol ebx, 0xb
add ebx, esi
mov ecx, ebx
xor ecx, esi
xor ecx, edi
lea edx, [edx + ecx + 0x1fa27cf8]
add edx, dword [ebp - 4]
rol edx, 0x10
add edx, ebx
mov ecx, edx
xor ecx, ebx
xor ecx, esi
lea edi, [edi + ecx - 0x3b53a99b]
add edi, dword [ebp - 0x38]
rol edi, 0x17
add edi, edx
mov ecx, ebx
not ecx
or ecx, edi
xor ecx, edx
lea esi, [esi + ecx - 0xbd6ddbc]
add esi, dword [ebp - 0x40]
rol esi, 6
add esi, edi
mov ecx, edx
not ecx
or ecx, esi
xor ecx, edi
lea ebx, [ebx + ecx + 0x432aff97]
add ebx, dword [ebp - 0x24]
rol ebx, 0xa
add ebx, esi
mov ecx, edi
not ecx
or ecx, ebx
xor ecx, esi
lea edx, [edx + ecx - 0x546bdc59]
add edx, dword [ebp - 8]
rol edx, 0xf
add edx, ebx
mov ecx, esi
not ecx
or ecx, edx
xor ecx, ebx
lea edi, [edi + ecx - 0x36c5fc7]
add edi, dword [ebp - 0x2c]
rol edi, 0x15
add edi, edx
mov ecx, ebx
not ecx
or ecx, edi
xor ecx, edx
lea esi, [esi + ecx + 0x655b59c3]
add esi, dword [ebp - 0x10]
rol esi, 6
add esi, edi
mov ecx, edx
not ecx
or ecx, esi
xor ecx, edi
lea ebx, [ebx + ecx - 0x70f3336e]
add ebx, dword [ebp - 0x34]
rol ebx, 0xa
add ebx, esi
mov ecx, edi
not ecx
or ecx, ebx
xor ecx, esi
lea edx, [edx + ecx - 0x100b83]
add edx, dword [ebp - 0x18]
rol edx, 0xf
add edx, ebx
mov ecx, esi
not ecx
or ecx, edx
xor ecx, ebx
lea edi, [edi + ecx - 0x7a7ba22f]
add edi, dword [ebp - 0x3c]
rol edi, 0x15
add edi, edx
mov ecx, ebx
not ecx
or ecx, edi
xor ecx, edx
lea esi, [esi + ecx + 0x6fa87e4f]
add esi, dword [ebp - 0x20]
rol esi, 6
add esi, edi
mov ecx, edx
not ecx
or ecx, esi
xor ecx, edi
lea ebx, [ebx + ecx - 0x1d31920]
add ebx, dword [ebp - 4]
rol ebx, 0xa
add ebx, esi
mov ecx, edi
not ecx
or ecx, ebx
xor ecx, esi
lea edx, [edx + ecx - 0x5cfebcec]
add edx, dword [ebp - 0x28]
rol edx, 0xf
add edx, ebx
mov ecx, esi
not ecx
or ecx, edx
xor ecx, ebx
lea edi, [edi + ecx + 0x4e0811a1]
add edi, dword [ebp - 0xc]
rol edi, 0x15
add edi, edx
mov ecx, ebx
not ecx
or ecx, edi
xor ecx, edx
lea esi, [esi + ecx - 0x8ac817e]
add esi, dword [ebp - 0x30]
rol esi, 6
add esi, edi
mov ecx, edx
not ecx
or ecx, esi
xor ecx, edi
lea ebx, [ebx + ecx - 0x42c50dcb]
add ebx, dword [ebp - 0x14]
rol ebx, 0xa
add ebx, esi
mov ecx, edi
not ecx
or ecx, ebx
xor ecx, esi
lea edx, [edx + ecx + 0x2ad7d2bb]
add edx, dword [ebp - 0x38]
rol edx, 0xf
add edx, ebx
mov ecx, esi
not ecx
or ecx, edx
xor ecx, ebx
lea edi, [edi + ecx - 0x14792c6f]
add edi, dword [ebp - 0x1c]
rol edi, 0x15
add edi, edx
mov eax, dword [ebp + 8]
add dword [eax], esi
add dword [eax + 4], edi
add dword [eax + 8], edx
add dword [eax + 0xc], ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret