VB Code:
  1. Public Function Sisic4(pStr As Long, pFind As Long, lenStr As Long, lenFind As Long) As Long
  2.  
  3.     Dim i As Long
  4.     Dim j As Long
  5.     Dim Flag As Long
  6.    
  7.     CopyMemory BufStr(0), ByVal pStr, lenStr
  8.     CopyMemory BufFind(0), ByVal pFind, lenFind
  9.    
  10.     i = lenStr - 1
  11.    
  12.     If lenFind = 2 Then
  13.         Do Until i < lenFind
  14.             If BufStr(i - 1) = BufFind(0) Then
  15.                 Sisic4 = Sisic4 + 1
  16.             End If
  17.             i = i - 2
  18.         Loop
  19.     Else
  20.         Do Until i < lenFind
  21.             Flag = 0
  22.             j = lenFind - 1
  23.             Do Until j < 0
  24.                 If Not (BufStr(i - (lenFind - j)) = BufFind(j - 1)) Then
  25.                     Flag = -1
  26.                     Exit Do
  27.                 End If
  28.                 j = j - 2
  29.             Loop
  30.             If Flag = 0 Then
  31.                 Sisic4 = Sisic4 + 1
  32.             End If
  33.             i = i - 2
  34.         Loop
  35.     End If
  36.    
  37. End Function

Removing the for/loops makes it go faster!!
Sisic3=469, Sisic4=438