; Crackme's are Lame
; So why did I write on? Because I'm a lamer!
; POINT IS: it's easy to make good protection even with small means.
; BTW: the possibility for possible complexity expands geometrically with 
; the number of chars you use... Write an algorithm in the spirit of this one
; with 10 chars and you might aswell forget about finding a key
;
; > (Unless you reverse the algorithm :-)   -acpizer.
;
;
; (BTW the rules are: No patching.. only Keys!)
; While this algorithm because of only one letter used is fully reversible
; algorithms of this type with multiple letters are not!
; Btw.. it takes some 120 binary calculations to reverse engeneer this :)
;
;
;
; answer for the older crackme is 'K'  cracked by acpizza :)
;
;
; now i modded this crack me just a LITTLE bit, and the lamer who cracks it
; will be forced to REVERSE the routine, not just BRUTE one letter :)
; and this version is only *1* byte longer than the old one, <g>.




model tiny
.Code					; Code starts
Org      100h				; COM!

 Start:
.386
	mov dx, offset intro
	call write
	mov dx, offset input
	mov ax,0a00h
	int 21h
	mov dx, offset string1

	mov eax, 'STEN'			; Keycheck
	mov ecx, dword ptr [offset input+2]
loopme:					
	rol eax,6
	xor ah,al
	add al, cl
	dec ecx
        jnz loopme  ; looooooong loop :)

	cmp eax, 0A4C536E8h
	je done

	mov dx, offset string2
done:
	call write

	ret			; Terminat0r

write PROC
	mov ah,9h
	int 21h
	ret
write ENDP

intro	     db 'Type yer attempt: $'
string1      db 10,13,'kewl!$'
string2      db 10,13,'lame!$'
input        db 5,0,0,0,0,0

End Start