; ====================================================================================== ; = WinAmp v2.x Keygenerator - (C) 1999 Teraphy / Phrozen Crew - http://teraphy.cjb.net ; ====================================================================================== .486 .model flat, stdcall ; -------- Include Files and Libraries ------------------------------------------------- include windows.inc include elib32.inc includelib elib32.lib include kernel32.inc includelib kernel32.lib include user32.inc includelib user32.lib ; -------- UnInitialised Data ---------------------------------------------------------- .data? szName db 32 dup (?) ; -------- Program Code ---------------------------------------------------------------- .code Start: ; Print Message PrintM "WinAmp v2.x *Keygen*",CrLf, \ "(C) 1999 Teraphy",CrLf, \ "Name : " ; Read Name invoke Input, addr szName, 30 ; Check user input .IF eax == 0 PrintM "Error : Name too short" Exit -1 .ENDIF ; Calculate Serial# mov esi,offset szName add eax,esi mov byte ptr [eax+1],0 mov byte ptr [eax+2],0 xor edi,edi xor ebx,ebx @@: movsx eax,byte ptr [esi+2] movsx ecx,byte ptr [esi] xor eax,ecx movsx ecx,byte ptr [esi+3] not ecx not eax movsx edx,byte ptr [esi+1] xor ecx,edx add eax,ecx mov ecx,edi and ecx,0Fh shl eax,cl test eax,eax jl LabelA add ebx,eax jmp LabelB LabelA: sub ebx,eax LabelB: inc edi inc edi inc esi cmp byte ptr [esi],0 jnz @B mov eax,ebx mov ecx,0F4240h imul eax,25h cdq idiv ecx mov ecx,edx mov esi,edx imul ecx,64h xor edi,edi LabelD: test esi,esi je LabelC mov eax,esi cdq mov ebx,64h idiv ebx mov eax,esi push ebx pop esi add edi,edx cdq idiv esi mov esi,eax jmp LabelD LabelC: lea eax, [edi+2*edi] cdq mov esi,4 idiv esi mov esi,64h cdq idiv esi add edx,ecx ; Print Serial PrintFM <"Serial: %lu">, edx ; Exit Exit 0 end Start |