Did you fix your compare algorithm yet? Here is a little pseudo code if not:
Code:
cmpString:
# regular function startup code
# default eax to 0
cmpLoop:
# compare esi to edi and if they differ, exit the loop and go to stringsNotEqual
# check string1 for a null. we know the strings match up to this point
# so if one ends, they both end and we can safely jump to the exit label
# increment esi and edi
# jump back to the top of cmpLoop
stringsNotEqual:
# set eax to 1
exit:
# do all your regular exit code
This way, we account for the length of different strings because the null in one string will compare not equal to whatever is in the other string, and we will exit the loop. We also avoid resetting eax to 1 then to 0 in every iteration of the loop.