Function at 0x100ad94b
Capabilities:
Hash data with md5

Disassembly:
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]
sub esp, 0x54
mov dword [esp + 0x50], 0xe1ed0f16
add esp, 0x50
and dword [esp], eax
or dword [esp], 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
sub edi, edi
xor edi, ebx
dec edx
jne 0x100adab9
test eax, eax
js 0x100ad9bb
mov byte [ebx + eax], 0x80
jmp 0x100ad9be
xor eax, eax
dec eax
mov ecx, 0x40
sub ecx, eax
add edi, eax
push eax
xor eax, eax
inc edi
dec ecx
or ecx, ecx
je 0x100ad9de
mov byte [edi], al
inc edi
dec ecx
jne 0x100ad9d4
or eax, edx
xor eax, eax
xor eax, dword [esp]
add esp, 4
test eax, eax
js 0x100ad9f9
cmp eax, 0x38
jae 0x100adab8
push eax
mov eax, dword [esp + 0x70]
lea esp, [esp - 0x5e]
mov dword [esp + 0x5a], 0x9c00cee3
lea esp, [esp + 0x5a]
mov dword [esp], edx
xor edx, edx
push 8
sub esp, 0x58
xor dword [esp + 0x58], ecx
xor ecx, dword [esp + 0x58]
xor dword [esp + 0x58], ecx
mov dword [esp + 0x58], ecx
add esp, 0x5c
mul ecx
lea esp, [esp - 4]
mov dword [esp], eax
pop dword [ebx + 0x38]
and dword [ebx + 0x3c], edx
or dword [ebx + 0x3c], edx
or edx, 0xffffffff
inc edx
add edx, esp
lea esp, [esp - 0x10]
mov dword [esp + 0xc], ecx
lea esp, [esp + 0xc]
push 0x943ad8d8
lea esp, [esp - 0x2f]
xchg dword [esp + 0x2f], ecx
mov dword [esp + 0x2f], ecx
lea esp, [esp + 0x33]
sub ecx, 0x67197e63
xchg dword [esp], ecx
xor dword [esp], 0x2d215a1d
sub edx, dword [esp]
lea esp, [esp + 4]
mov edx, dword [edx + 0x33]
or edx, 0xffffffff
not edx
add edx, dword [esp]
add esp, 4
sub esp, 0x1b
xor dword [esp + 0x1b], eax
xor eax, dword [esp + 0x1b]
xor dword [esp + 0x1b], eax
mov dword [esp + 0x1b], eax
add esp, 0x1f
jmp 0x100adab9
inc edx
test eax, eax
js 0x100adad4
cmp eax, 0x40
jae 0x100adaee
jmp 0x100adad6
xor eax, eax
and ecx, 0
xor ecx, eax
jmp 0x100adaf8
sub ecx, ecx
not ecx
and ecx, 0x40
lea edi, [ebx]
rep movsb byte es:[edi], byte [esi]
push 0xffffffffffffffff
and dword [esp], eax
push edx
push ebx
push esi
lea esi, [esp + 0x10]
mov edi, dword [esp + 0x74]
lea esp, [esp - 0x1e]
mov dword [esp + 0x1a], 0x6d26028d
lea esp, [esp + 0x1a]
mov dword [esp], edi
mov eax, dword [edi]
push edi
add edi, 4
mov ebx, dword [edi]
pop edi
push 0
xor dword [esp], ecx
xor ecx, dword [esp]
xor dword [esp], ecx
mov dword [esp], ecx
add esp, 4
add ecx, 0x87640395
xor ecx, 0x8764039d
add ecx, edi
mov ecx, dword [ecx]
push 0
xchg dword [esp], edx
mov dword [esp], edx
add esp, 4
or edx, dword [edi + 0xc]
push ebx
not edi
and edi, 0
xor edi, dword [esp]
add esp, 4
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
xor edi, edi
sub edi, eax
dec edi
not edi
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
sub ebp, ebp
add 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
xor ebp, ebp
sub ebp, ecx
dec ebp
not ebp
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
lea edi, [eax]
shr ebp, 3
shr ebp, 0x1d
sub ebp, eax
dec ebp
not ebp
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
shr edi, 9
shr edi, 0x17
sub edi, edx
dec edi
not edi
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
shl edi, 9
shl edi, 0x17
or 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
shr edi, 9
shr edi, 0x17
xor edi, eax
shr ebp, 5
shr ebp, 0x1b
or 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
push 0
lea ebp, [esi]
sub ebp, ebp
xor ebp, dword [esp]
add esp, 4
or 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
xchg edi, ebx
add ebx, ecx
mov ebx, edi
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
shl edi, 0xb
shl edi, 0x15
or edi, eax
lea 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
lea ebp, [edi + ebx*8 + 0x16514d89]
and ebp, edx
or 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
xchg edi, ecx
lea ecx, [ebx + eax + 0xd321431]
mov ecx, edi
shr ebp, 0xf
shr ebp, 0x11
add 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
shr edi, 0x11
shr edi, 0xf
sub edi, edx
dec edi
not edi
and ebp, 0x85ef5df4
and ebp, edx
or 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
push 0
lea esp, [esp - 0x4c]
xchg dword [esp + 0x4c], ebp
mov dword [esp + 0x4c], ebp
lea esp, [esp + 0x50]
or 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
lea 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
push 0
lea esp, [esp - 0x5f]
mov edi, dword [esp + 0x5f]
lea esp, [esp + 0x63]
add edi, eax
push 0
and ebp, edx
sub ebp, ebp
xor ebp, dword [esp]
add esp, 4
sub ebp, eax
dec ebp
not ebp
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
push 0
mov edi, dword [esp]
add esp, 4
or edi, edx
lea esp, [esp - 4]
xchg dword [esp], edx
mov edx, dword [esp]
lea esp, [esp + 4]
lea esp, [esp - 4]
lea esp, [esp - 0x56]
xchg dword [esp + 0x56], ebp
mov dword [esp + 0x56], ebp
lea esp, [esp + 0x5a]
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
xchg edi, ecx
mov ecx, edi
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
xchg ebp, ebx
call 0x100ade88
aaa
movsb byte es:[edi], byte [esi]
or eax, 0xe3c1d933
xadd ebx, esp
adc dword [ebx], ecx
sbb al, 0x24
add esp, 4
mov ebx, ebp
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
shr edi, 0xf
shr edi, 0x11
xor edi, eax
xchg ebp, eax
lea eax, [edx]
mov eax, ebp
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
not edi
and edi, edx
or edi, edx
lea ebp, [ecx + 0x25cfab07]
and ebp, edx
or 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
sub esp, 4
mov dword [esp], ecx
xchg dword [esp], edi
mov dword [esp], edi
add esp, 4
or ebp, 0xffffffff
inc ebp
sub ebp, ecx
dec ebp
not ebp
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
xchg edi, eax
inc eax
mov eax, edi
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
or edi, 0xffffffff
not edi
or edi, edx
or ebp, 0xffffffff
inc ebp
or 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
xchg ebp, ecx
xor ecx, esi
mov ecx, ebp
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
or edi, 0xffffffff
not edi
add edi, ebx
lea 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
shl ebp, 9
shl ebp, 0x17
or 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
or ebp, 0xffffffff
not ebp
or 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
lea esp, [esp - 0x66]
xchg dword [esp + 0x62], edx
mov edx, dword [esp + 0x62]
lea esp, [esp + 0x62]
or ebp, 0xffffffff
not ebp
add ebp, 0xffffffff
sub esp, 0x2c
and ebp, dword [esp + 0x2c]
add esp, 0x30
xor ebp, eax
xor ebp, ebx
lea ecx, [ecx + ebp + 0x6d9d6122]
add ecx, dword [esi + 0x2c]
rol ecx, 0x10
add ecx, edx
or ebp, 0x18579cb9
and ebp, ecx
or ebp, ecx
xor ebp, edx
xor ebp, eax
lea ebx, [ebx + ebp - 0x21ac7f4]
add ebx, dword [esi + 0x38]
rol ebx, 0x17
add ebx, ecx
sub ebp, ebp
or 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
xchg ebp, edx
and edx, eax
mov edx, ebp
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
inc ebp
and ebp, ecx
or ebp, ecx
xor ebp, edx
xor ebp, eax
lea ebx, [ebx + ebp + 0x4881d05]
add ebx, dword [esi + 0x18]
rol ebx, 0x17
add ebx, ecx
and ebp, 0x49e42aa9
and ebp, ebx
or 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
and ebp, 0
or 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
lea 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
lea 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
or ebp, 0xffffffff
inc ebp
xor 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
xchg ebp, ecx
sub ecx, eax
mov ecx, ebp
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
sub esp, 0x31
xor dword [esp + 0x2d], edx
xor edx, dword [esp + 0x2d]
xor dword [esp + 0x2d], edx
mov edx, dword [esp + 0x2d]
add esp, 0x2d
sub esp, 0xd
xor dword [esp + 0xd], ebp
xor ebp, dword [esp + 0xd]
xor dword [esp + 0xd], ebp
mov dword [esp + 0xd], ebp
add esp, 0x11
not ebp
or ebp, ebx
xor ebp, ecx
lea eax, [eax + ebp + 0x6fa87e4f]
add eax, dword [esi + 0x20]
rol eax, 6
add eax, ebx
push 0
lea esp, [esp - 0x3c]
mov ebp, dword [esp + 0x3c]
lea esp, [esp + 0x40]
sub ebp, ecx
dec ebp
not ebp
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
push 0
add ebp, eax
shr ebp, 0xd
shr ebp, 0x13
xor ebp, dword [esp]
add esp, 4
or 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
lea 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
push 0
mov ebp, dword [esp]
add esp, 4
sub ebp, eax
dec ebp
not ebp
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
lea esp, [esp - 0x3d]
xchg dword [esp + 0x3d], esi
mov dword [esp + 0x3d], esi
lea esp, [esp + 0x41]
mov ebx, dword [esp]
add esp, 4
or edx, 0xffffffff
not edx
or edx, 0xffffffff
sub esp, 0x40
and edx, dword [esp + 0x40]
add esp, 0x44
xchg dword [esp], eax
mov dword [esp], eax
lea esp, [esp + 4]
sub eax, 0x40
test edx, edx
jne 0x100ad998
add esp, 0x40
popal
ret 0xc