Based on the first impression of your code: Accessing properties of an UI control is always slow. Since you're iterating through files , in my opinion you don't have to set the texts etc to the controls, use variables instead. This also applies to textbox1 and ...2. Since textbox 2 is 'static in during your iteration, take the value from the Text property to a string variable and use that in your loop.
Also since you fill a list box in your code, don't add the items as you go but gather them into a collection and after the loop, use
ListBox.ObjectCollection.AddRange Method[
^]
Addition:
Most likely the code I wrote is wrong since I didn't know the whole idea for the code, but perhaps something like the following:
...
Dim text1 As String
Dim text2 As String
Dim diTop As New System.IO.DirectoryInfo(ComboBox1.SelectedItem)
Try
For Each di In diTop.EnumerateDirectories("*")
Try
For Each fi In di.EnumerateFiles("*", System.IO.SearchOption.AllDirectories)
text1 = getMd5Hash(fi.FullName)
If text2.Contains(text1) Then
itemList.Add(fi.FullName)
End If
Try
Catch UnAuthFile As UnauthorizedAccessException
Console.WriteLine("UnAuthFile: {0}",
UnAuthFile.Message)
End Try
Next
ListBox2.Items.AddRange(itemList.ToArray())
Catch UnAuthSubDir As UnauthorizedAccessException
...