Function at 0x5863de
Capabilities:
Hash data with md5

Disassembly:
lea esp, [esp + 4]
jmp 0x586412
pushal
mov esi, dword [esp + 0x24]
mov dword [esi], 0x67452301
mov dword [esi + 4], 0xefcdab89
jmp 0x5864dc
xor eax, eax
jmp 0x586612
test eax, eax
js 0x586564
cmp eax, 0x40
jae 0x5865b3
jmp 0x5865d2
mov ecx, 0x40
sub ecx, eax
add edi, eax
push eax
xor eax, eax
inc edi
dec ecx
rep stosb byte es:[edi], al
pop eax
test eax, eax
js 0x586589
jns 0x58655a
mov dl, 0x36
movsb byte es:[edi], byte [esi]
ret
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 0x586475
test eax, eax
js 0x586458
mov byte [eax + ebx], 0x80
jmp 0x5864ac
inc edx
jmp 0x586475
cmp eax, 0x38
jae 0x58653b
jmp 0x586589
xor eax, eax
jmp 0x5865d2
mov edi, ebx
rep movsb byte es:[edi], byte [esi]
push eax
jmp 0x58671c
push eax
mov eax, dword [esp + 0x70]
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 0x586475
mov ecx, 0x40
jmp 0x586569
mov ecx, eax
jmp 0x586569
dec eax
jmp 0x5864ac
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
jmp 0x5869a0
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
jmp 0x58661b
push edx
push ebx
push esi
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
or edi, ebp
lea edx, [edx + edi - 0x173848aa]
add edx, dword [esi + 4]
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
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
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
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]
jmp 0x586652
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
jmp 0x5873d9
xor ebp, ebx
lea ecx, [ecx + ebp + 0x1fa27cf8]
jmp 0x586948
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]
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
add ecx, edx
mov ebp, ecx
xor ebp, edx
xor ebp, eax
lea ebx, [ebx + ebp - 0x41404390]
add ebx, dword [esi + 0x28]
rol ebx, 0x17
add ebx, ecx
mov ebp, ebx
xor ebp, ecx
xor ebp, edx
lea eax, [eax + ebp + 0x289b7ec6]
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
jmp 0x586981
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 0x586505
add esp, 0x40
popal
ret 0xc