Function at 0x81f880
Capabilities:
Hash data with md5

Disassembly:
xor eax, eax
dec eax
jmp 0x81f76c
sub ecx, eax
jmp 0x81f851
mov ecx, 0x40
jmp 0x81f74f
test eax, eax
js 0x81fafc
cmp eax, 0x40
jae 0x81f9f1
jmp 0x81f912
pushal
mov esi, dword [esp + 0x24]
mov dword [esi], 0x67452301
mov dword [esi + 4], 0xefcdab89
mov dword [esi + 8], 0x98badcfe
mov dword [esi + 0xc], 0x10325476
mov eax, dword [esp + 0x2c]
push eax
xor edx, edx
mov ecx, 0x40
div ecx
inc eax
pop edx
sub esp, 0x40
mov ebx, esp
mov esi, dword [esp + 0x68]
xchg edx, eax
mov edi, ebx
dec edx
jne 0x81f78a
test eax, eax
js 0x81f746
mov byte [eax + ebx], 0x80
jmp 0x81f76c
add edi, eax
push eax
xor eax, eax
inc edi
dec ecx
rep stosb byte es:[edi], al
pop eax
test eax, eax
js 0x81f8a0
cmp eax, 0x38
jae 0x81f901
jmp 0x81f8a0
lea esp, [esp + 4]
jmp 0x81f7e4
push eax
mov eax, dword [esp + 0x70]
jmp 0x81f8c8
push edx
xor edx, edx
mov ecx, 8
mul ecx
mov dword [ebx + 0x38], eax
mov dword [ebx + 0x3c], edx
pop edx
pop eax
jmp 0x81f78a
inc edx
jmp 0x81f78a
mov ecx, eax
jmp 0x81f9d0
push ebx
push esi
jmp 0x81f97e
or edi, ebp
lea edx, [edx + edi - 0x173848aa]
add edx, dword [esi + 4]
jmp 0x81fa32
lea esi, [esp + 0x10]
mov edi, dword [esp + 0x74]
push edi
mov eax, dword [edi]
mov ebx, dword [edi + 4]
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0xc]
mov edi, ebx
mov ebp, ebx
and edi, ecx
not ebp
and ebp, edx
or edi, ebp
lea eax, [eax + edi - 0x28955b88]
add eax, dword [esi]
rol eax, 7
add eax, ebx
mov edi, eax
mov ebp, eax
and edi, ebx
not ebp
and ebp, ecx
jmp 0x81f957
mov edi, ebx
rep movsb byte es:[edi], byte [esi]
push eax
push edx
jmp 0x81f919
mov ecx, 0x40
jmp 0x81f9d0
and ebp, edx
or edi, ebp
lea eax, [eax + edi + 0x698098d8]
add eax, dword [esi + 0x20]
rol eax, 7
add eax, ebx
mov edi, eax
mov ebp, eax
and edi, ebx
not ebp
jmp 0x81fe1a
rol edx, 0xc
add edx, eax
mov edi, edx
mov ebp, edx
and edi, eax
not ebp
and ebp, ebx
or edi, ebp
lea ecx, [ecx + edi + 0x242070db]
add ecx, dword [esi + 8]
rol ecx, 0x11
add ecx, edx
mov edi, ecx
mov ebp, ecx
and edi, edx
not ebp
and ebp, eax
or edi, ebp
lea ebx, [ebx + edi - 0x3e423112]
add ebx, dword [esi + 0xc]
rol ebx, 0x16
add ebx, ecx
mov edi, ebx
mov ebp, ebx
and edi, ecx
not ebp
and ebp, edx
or edi, ebp
lea eax, [eax + edi - 0xa83f051]
add eax, dword [esi + 0x10]
rol eax, 7
add eax, ebx
mov edi, eax
mov ebp, eax
and edi, ebx
not ebp
and ebp, ecx
or edi, ebp
lea edx, [edx + edi + 0x4787c62a]
add edx, dword [esi + 0x14]
rol edx, 0xc
add edx, eax
mov edi, edx
mov ebp, edx
and edi, eax
not ebp
and ebp, ebx
or edi, ebp
lea ecx, [ecx + edi - 0x57cfb9ed]
add ecx, dword [esi + 0x18]
rol ecx, 0x11
add ecx, edx
mov edi, ecx
mov ebp, ecx
and edi, edx
not ebp
and ebp, eax
or edi, ebp
lea ebx, [ebx + edi - 0x2b96aff]
add ebx, dword [esi + 0x1c]
rol ebx, 0x16
add ebx, ecx
mov edi, ebx
mov ebp, ebx
and edi, ecx
not ebp
jmp 0x81f9fc
xor eax, eax
jmp 0x81f912
rol ebx, 0x17
add ebx, ecx
mov ebp, ebx
xor ebp, ecx
xor ebp, edx
lea eax, [eax + ebp + 0x289b7ec6]
jmp 0x81ff24
add ecx, edx
mov ebp, ecx
xor ebp, edx
xor ebp, eax
lea ebx, [ebx + ebp - 0x41404390]
add ebx, dword [esi + 0x28]
jmp 0x81fb03
rol edx, 0xb
add edx, eax
mov ebp, edx
xor ebp, eax
xor ebp, ebx
lea ecx, [ecx + ebp + 0x6d9d6122]
add ecx, dword [esi + 0x2c]
rol ecx, 0x10
add ecx, edx
mov ebp, ecx
xor ebp, edx
xor ebp, eax
lea ebx, [ebx + ebp - 0x21ac7f4]
add ebx, dword [esi + 0x38]
rol ebx, 0x17
add ebx, ecx
mov ebp, ebx
xor ebp, ecx
xor ebp, edx
lea eax, [eax + ebp - 0x5b4115bc]
add eax, dword [esi + 4]
rol eax, 4
add eax, ebx
mov ebp, eax
xor ebp, ebx
xor ebp, ecx
lea edx, [edx + ebp + 0x4bdecfa9]
add edx, dword [esi + 0x10]
rol edx, 0xb
add edx, eax
mov ebp, edx
xor ebp, eax
xor ebp, ebx
lea ecx, [ecx + ebp - 0x944b4a0]
add ecx, dword [esi + 0x1c]
rol ecx, 0x10
jmp 0x81fb30
not ebp
and ebp, ecx
or edi, ebp
lea edx, [edx + edi - 0x2678e6d]
add edx, dword [esi + 0x34]
rol edx, 0xc
add edx, eax
mov edi, edx
mov ebp, edx
and edi, eax
not ebp
and ebp, ebx
or edi, ebp
lea ecx, [ecx + edi - 0x5986bc72]
add ecx, dword [esi + 0x38]
rol ecx, 0x11
add ecx, edx
mov edi, ecx
mov ebp, ecx
and edi, edx
not ebp
and ebp, eax
or edi, ebp
lea ebx, [ebx + edi + 0x49b40821]
add ebx, dword [esi + 0x3c]
rol ebx, 0x16
add ebx, ecx
mov edi, edx
mov ebp, edx
and edi, ebx
not ebp
and ebp, ecx
or edi, ebp
lea eax, [eax + edi - 0x9e1da9e]
add eax, dword [esi + 4]
rol eax, 5
add eax, ebx
mov edi, ecx
mov ebp, ecx
and edi, eax
not ebp
and ebp, ebx
or edi, ebp
lea edx, [edx + edi - 0x3fbf4cc0]
add edx, dword [esi + 0x18]
rol edx, 9
add edx, eax
mov edi, ebx
mov ebp, ebx
and edi, edx
not ebp
and ebp, eax
or edi, ebp
lea ecx, [ecx + edi + 0x265e5a51]
add ecx, dword [esi + 0x2c]
rol ecx, 0xe
add ecx, edx
mov edi, eax
mov ebp, eax
and edi, ecx
not ebp
and ebp, edx
or edi, ebp
lea ebx, [ebx + edi - 0x16493856]
add ebx, dword [esi]
rol ebx, 0x14
add ebx, ecx
mov edi, edx
mov ebp, edx
and edi, ebx
not ebp
and ebp, ecx
or edi, ebp
lea eax, [eax + edi - 0x29d0efa3]
add eax, dword [esi + 0x14]
rol eax, 5
add eax, ebx
mov edi, ecx
mov ebp, ecx
and edi, eax
not ebp
and ebp, ebx
or edi, ebp
lea edx, [edx + edi + 0x2441453]
add edx, dword [esi + 0x28]
rol edx, 9
add edx, eax
mov edi, ebx
mov ebp, ebx
and edi, edx
not ebp
and ebp, eax
or edi, ebp
lea ecx, [ecx + edi - 0x275e197f]
add ecx, dword [esi + 0x3c]
rol ecx, 0xe
add ecx, edx
mov edi, eax
mov ebp, eax
and edi, ecx
not ebp
and ebp, edx
or edi, ebp
lea ebx, [ebx + edi - 0x182c0438]
add ebx, dword [esi + 0x10]
rol ebx, 0x14
add ebx, ecx
mov edi, edx
mov ebp, edx
and edi, ebx
not ebp
and ebp, ecx
or edi, ebp
lea eax, [eax + edi + 0x21e1cde6]
add eax, dword [esi + 0x24]
rol eax, 5
add eax, ebx
mov edi, ecx
mov ebp, ecx
and edi, eax
not ebp
and ebp, ebx
or edi, ebp
lea edx, [edx + edi - 0x3cc8f82a]
add edx, dword [esi + 0x38]
rol edx, 9
add edx, eax
mov edi, ebx
mov ebp, ebx
and edi, edx
not ebp
and ebp, eax
or edi, ebp
lea ecx, [ecx + edi - 0xb2af279]
add ecx, dword [esi + 0xc]
rol ecx, 0xe
add ecx, edx
mov edi, eax
mov ebp, eax
and edi, ecx
not ebp
and ebp, edx
or edi, ebp
lea ebx, [ebx + edi + 0x455a14ed]
add ebx, dword [esi + 0x20]
rol ebx, 0x14
add ebx, ecx
mov edi, edx
mov ebp, edx
and edi, ebx
not ebp
and ebp, ecx
or edi, ebp
lea eax, [eax + edi - 0x561c16fb]
add eax, dword [esi + 0x34]
rol eax, 5
add eax, ebx
mov edi, ecx
mov ebp, ecx
and edi, eax
not ebp
and ebp, ebx
or edi, ebp
lea edx, [edx + edi - 0x3105c08]
add edx, dword [esi + 8]
rol edx, 9
add edx, eax
mov edi, ebx
mov ebp, ebx
and edi, edx
not ebp
and ebp, eax
or edi, ebp
lea ecx, [ecx + edi + 0x676f02d9]
add ecx, dword [esi + 0x1c]
rol ecx, 0xe
add ecx, edx
mov edi, eax
mov ebp, eax
and edi, ecx
not ebp
and ebp, edx
or edi, ebp
lea ebx, [ebx + edi - 0x72d5b376]
add ebx, dword [esi + 0x30]
rol ebx, 0x14
add ebx, ecx
mov ebp, ebx
xor ebp, ecx
xor ebp, edx
lea eax, [eax + ebp - 0x5c6be]
add eax, dword [esi + 0x14]
rol eax, 4
add eax, ebx
mov ebp, eax
xor ebp, ebx
xor ebp, ecx
lea edx, [edx + ebp - 0x788e097f]
add edx, dword [esi + 0x20]
jmp 0x81fb5d
and ebp, ecx
or edi, ebp
lea edx, [edx + edi - 0x74bb0851]
add edx, dword [esi + 0x24]
rol edx, 0xc
add edx, eax
mov edi, edx
mov ebp, edx
and edi, eax
not ebp
and ebp, ebx
or edi, ebp
lea ecx, [ecx + edi - 0xa44f]
add ecx, dword [esi + 0x28]
rol ecx, 0x11
add ecx, edx
mov edi, ecx
mov ebp, ecx
and edi, edx
not ebp
and ebp, eax
or edi, ebp
lea ebx, [ebx + edi - 0x76a32842]
add ebx, dword [esi + 0x2c]
rol ebx, 0x16
add ebx, ecx
mov edi, ebx
mov ebp, ebx
and edi, ecx
not ebp
and ebp, edx
or edi, ebp
lea eax, [eax + edi + 0x6b901122]
add eax, dword [esi + 0x30]
rol eax, 7
add eax, ebx
mov edi, eax
mov ebp, eax
and edi, ebx
jmp 0x81fbe2
add eax, dword [esi + 0x34]
rol eax, 4
add eax, ebx
mov ebp, eax
xor ebp, ebx
xor ebp, ecx
lea edx, [edx + ebp - 0x155ed806]
add edx, dword [esi]
rol edx, 0xb
add edx, eax
mov ebp, edx
xor ebp, eax
xor ebp, ebx
lea ecx, [ecx + ebp - 0x2b10cf7b]
add ecx, dword [esi + 0xc]
rol ecx, 0x10
add ecx, edx
mov ebp, ecx
xor ebp, edx
xor ebp, eax
lea ebx, [ebx + ebp + 0x4881d05]
add ebx, dword [esi + 0x18]
rol ebx, 0x17
add ebx, ecx
mov ebp, ebx
xor ebp, ecx
xor ebp, edx
lea eax, [eax + ebp - 0x262b2fc7]
add eax, dword [esi + 0x24]
rol eax, 4
add eax, ebx
mov ebp, eax
xor ebp, ebx
xor ebp, ecx
lea edx, [edx + ebp - 0x1924661b]
add edx, dword [esi + 0x30]
rol edx, 0xb
add edx, eax
mov ebp, edx
xor ebp, eax
xor ebp, ebx
lea ecx, [ecx + ebp + 0x1fa27cf8]
add ecx, dword [esi + 0x3c]
rol ecx, 0x10
add ecx, edx
mov ebp, ecx
xor ebp, edx
xor ebp, eax
lea ebx, [ebx + ebp - 0x3b53a99b]
add ebx, dword [esi + 8]
rol ebx, 0x17
add ebx, ecx
mov ebp, edx
not ebp
or ebp, ebx
xor ebp, ecx
lea eax, [eax + ebp - 0xbd6ddbc]
add eax, dword [esi]
rol eax, 6
add eax, ebx
mov ebp, ecx
not ebp
or ebp, eax
xor ebp, ebx
lea edx, [edx + ebp + 0x432aff97]
add edx, dword [esi + 0x1c]
rol edx, 0xa
add edx, eax
mov ebp, ebx
not ebp
or ebp, edx
xor ebp, eax
lea ecx, [ecx + ebp - 0x546bdc59]
add ecx, dword [esi + 0x38]
rol ecx, 0xf
add ecx, edx
mov ebp, eax
not ebp
or ebp, ecx
xor ebp, edx
lea ebx, [ebx + ebp - 0x36c5fc7]
add ebx, dword [esi + 0x14]
rol ebx, 0x15
add ebx, ecx
mov ebp, edx
not ebp
or ebp, ebx
xor ebp, ecx
lea eax, [eax + ebp + 0x655b59c3]
add eax, dword [esi + 0x30]
rol eax, 6
add eax, ebx
mov ebp, ecx
not ebp
or ebp, eax
xor ebp, ebx
lea edx, [edx + ebp - 0x70f3336e]
add edx, dword [esi + 0xc]
rol edx, 0xa
add edx, eax
mov ebp, ebx
not ebp
or ebp, edx
xor ebp, eax
lea ecx, [ecx + ebp - 0x100b83]
add ecx, dword [esi + 0x28]
rol ecx, 0xf
add ecx, edx
mov ebp, eax
not ebp
or ebp, ecx
xor ebp, edx
lea ebx, [ebx + ebp - 0x7a7ba22f]
add ebx, dword [esi + 4]
rol ebx, 0x15
add ebx, ecx
mov ebp, edx
not ebp
or ebp, ebx
xor ebp, ecx
lea eax, [eax + ebp + 0x6fa87e4f]
add eax, dword [esi + 0x20]
rol eax, 6
add eax, ebx
mov ebp, ecx
not ebp
or ebp, eax
xor ebp, ebx
lea edx, [edx + ebp - 0x1d31920]
add edx, dword [esi + 0x3c]
rol edx, 0xa
add edx, eax
mov ebp, ebx
not ebp
or ebp, edx
xor ebp, eax
lea ecx, [ecx + ebp - 0x5cfebcec]
add ecx, dword [esi + 0x18]
rol ecx, 0xf
add ecx, edx
mov ebp, eax
not ebp
or ebp, ecx
xor ebp, edx
lea ebx, [ebx + ebp + 0x4e0811a1]
add ebx, dword [esi + 0x34]
rol ebx, 0x15
add ebx, ecx
mov ebp, edx
not ebp
or ebp, ebx
xor ebp, ecx
lea eax, [eax + ebp - 0x8ac817e]
add eax, dword [esi + 0x10]
rol eax, 6
add eax, ebx
mov ebp, ecx
not ebp
or ebp, eax
xor ebp, ebx
lea edx, [edx + ebp - 0x42c50dcb]
add edx, dword [esi + 0x2c]
rol edx, 0xa
add edx, eax
mov ebp, ebx
not ebp
or ebp, edx
xor ebp, eax
lea ecx, [ecx + ebp + 0x2ad7d2bb]
add ecx, dword [esi + 8]
rol ecx, 0xf
add ecx, edx
mov ebp, eax
not ebp
or ebp, ecx
xor ebp, edx
lea ebx, [ebx + ebp - 0x14792c6f]
add ebx, dword [esi + 0x24]
rol ebx, 0x15
add ebx, ecx
pop edi
add dword [edi], eax
add dword [edi + 4], ebx
add dword [edi + 8], ecx
add dword [edi + 0xc], edx
pop esi
pop ebx
pop edx
pop eax
sub eax, 0x40
test edx, edx
jne 0x81f81f
je 0x81feeb
invalid