private int FindMatch(int search, out int matchPos, int searchDepth, int niceLength) {
int num = 0;
int num2 = 0;
int num3 = this.bufPos - 0x2000;
byte num4 = this.window[this.bufPos];
while (search > num3) {
if (this.window[search + num] == num4) {
int num5 = 0;
while (num5 < 0x102) {
if (this.window[this.bufPos + num5] != this.window[search + num5]) {
break;
}
num5++;
}
if (num5 > num) {
num = num5;
num2 = search;
if (num5 > 0x20) {
break;
}
num4 = this.window[this.bufPos + num5];
}
}
if (--searchDepth == 0) {
break;
}
search = this.prev[search & 0x1fff];
}
matchPos = (this.bufPos - num2) - 1;
if ((num == 3) && (matchPos >= 0x4000)) {
return 0;
}
return num;
}