www.pudn.com > Kgensrcs.zip > NG219Ser.asm


 
model compact 
.data 
 
thirdpart db 'Stormingthepalace$' 
querystr db 'Enter your soon to be registered name: $' 
head db 'Newsgrabber 2.1.19 serial number generator!$' 
sernumstr db 'Your serial number is: $' 
creditstr db 'Cracked and brought to you by Lord Soth ICQ # 5178515$' 
zerostr db 'ERROR: Zero length string.$' 
serialnum db 16 DUP (0) 
username db 256 DUP (0)	 
quarters db 16 DUP (0) 
 
.code 
.startup 
.386C 
 
MOV AH,0 
MOV AL,3 
INT 10h					 
MOV AX,0625h				 
MOV BH,1Fh				 
MOV CX,0000			 
MOV DX,184Fh		 
INT 10h				 
 
push ds 
pop es 
mov ah,13h 
mov al,1 
mov bh,0 
mov bl,0eh 
mov cx,2bh 
mov dx,0 
mov ebp,offset es:head 
int 10h 
 
MOV Ah,3 
MOV BH,0 
INT 10h					 
 
ADD DH,2				 
MOV AH,2 
MOV DL,0 
PUSH DX 
MOV BH,0 
INT 10h					 
 
POP DX 
MOV AH,13h 
MOV AL,1 
MOV BX,1Fh 
MOV CX,27h				 
MOV EBP,offset ES:querystr	 
INT 10h					 
 
 
 
MOV CX,0FFh 
mov bx,0 
LEA DI,username 
 
KBread:	MOV AH,0 
	INT 16h				 
	MOV BX,CX 
	OR BX,0FF00h 
	NOT BX 
	CMP AH,1Ch			 
	JZ  CreateUserName 		 
	CMP AH,0Eh			 
	JNZ store 
	CALL delchar 
	JMP Kbread 
 
store:	MOV [DI+BX],AL 			 
	MOV AH,0Ah 
	MOV BX,0 
	PUSH CX				 
	MOV CX,1 
	INT 10h				 
	MOV AH,3 
	MOV BX,0 
	INT 10h			 
	INC DL			 
	MOV AH,2 
	MOV BH,0 
	INT 10h			 
	POP CX	 
	LOOP KBread			 
 
 
 
CreateUserName :  
 
NOT CL 
CMP CL,0 
JNZ  contuser 
JMP out_of_prog 
 
contuser: 
 
ADD DI,CX 				 
MOV WORD PTR [DI],5157h		 
LEA SI,username 
PUSH CX 
PUSH CX 				 
ADD DI,2 
CLD 
REP MOVSB				 
LEA SI,username 
MOV WORD PTR [DI],5741h	 
ADD DI,2 
POP CX 
CLD 
REP MOVSB			 
LEA SI,thirdpart 
MOV CX,13h			 
CLD	 
REP MOVSB			 
POP CX 
LEA SI,username 
ADD SI,CX				 
 
 
	MOV BX,0		 
	MOV EDI,22h 
initc:	XOR ecx,ecx    		 
	MOV EAX,0 
	MOV EDX,0 
calc:	MOVSX EAX,BYTE PTR [SI+BX]	 
	SUB EAX,41h			 
	ADD EDI,EAX			 
	INC BX 
	INC CX 
	CMP CX,4 
	JL calc				 
	PUSH EDI 
	MOV EAX,EDI 
	MOV ECX,03E8h  			 
	CDQ 
	IDIV ECX 			 
	LEA DI,quarters 
	MOV [DI+BX-4],DX		 
	POP EDX 
	MOV EDI,EDX 
	SHL EDX,4			 
	ADD EDI,EDX			 
	CMP BX,10h			 
	JNZ initc 
	 
 
 
	LEA SI,quarters 
	MOV BX,0 
	MOV CX,0 
get3dig:MOV AX,[SI+BX] 			 
	CALL num2str			 
	ADD BX,4 
	CMP BX,10h 
	JNZ get3dig 
		 
	MOV AH,3 
	MOV BX,0 
	INT 10h				 
	MOV DL,0 
	MOV AX,1301h 
	MOV BX,1Fh 
	MOV CX,17h			 
	MOV EBP,offset sernumstr 
	INT 10h 
	MOV AH,3 
	MOV BX,0 
	INT 10h				 
	MOV CX,10h 
	MOV AX,1301h 
	MOV BX,1Fh 
	MOV EBP,offset serialnum 
	INT 10h				 
	MOV AH,3 
	MOV BX,0 
	INT 10h				 
	ADD DH,3 
	MOV DL,0 
	MOV AX,1301h 
	MOV BX,1Fh 
	MOV CX,35h 
	MOV EBP,offset creditstr 
	INT 10h				 
	POP BP 
	MOV AX,4C00h 
	INT 21h			 
 
out_of_prog :  
	MOV AH,3 
	MOV BX,0 
	INT 10h				 
	MOV AX,1301h 
	MOV DL,0 
	ADD DH,3 
	MOV BX,1Fh 
	MOV CX,1Ah		 
	MOV EBP,offset ES:zerostr 
	INT 10h 
	POP BP 
	MOV AX,4C00h 
	INT 21h				 
 
delchar PROC near 
	PUSH CX 
	PUSH AX 
	CMP BX,0 
	JZ nochars 
	MOV BYTE PTR [DI+BX],0		 
	DEC BX 
	PUSH BX 
	MOV BH,0 
	MOV AH,3 
	INT 10h				 
	DEC DL 
	MOV AH,2 
	MOV BH,0 
	INT 10h				 
	MOV AX,0A20h			 
	MOV BX,0 
	MOV CX,1 
	INT 10H			 
	POP BX			 
	POP AX 
	POP CX 
	INC CX 
	RET				 
 
nochars:MOV BX,0 
	POP AX 
	POP CX 
	MOV CX,0FFh 
	RET 
delchar	ENDP 
 
num2str PROC near 
	PUSH BX 
	MOV BX,CX 
	LEA DI,serialnum 
	PUSH CX 
	MOV CX,64h			 
	CWD 
	IDIV CX 
	ADD AX,30h			 
	MOV [DI+BX],AL 
	SUB AX,30h			 
	INC BX 
	MOV CX,0Ah 
	MOV AX,DX 
	CWD 
	IDIV CX 
        ADD AX,30h 
	ADD DX,30h 
	MOV [DI+BX],AL 
	INC BX 
	MOV [DI+BX],DL 
	INC BX 
	POP CX 
	MOV CX,BX 
	POP BX 
	RET 
num2str	ENDP 
 
.exit 
END