Apparently this procedure was not very well tested in year 2005, I think.
Must be :file_tree proc lpcb:DWORD,upatn:DWORD,flag:DWORD
* * *
.if flag > 1 ; flag controlled tail recursion
; <<<< original say "flag > 0"
chdir ".." ; drop back to next lower directory
.endif
ret
file_tree endp
Regards, HSE.