invoke lstrlenA, addr namebuffer MOV EDX,EAX XOR ECX,ECX XOR EBX,EBX L001: MOVZX EAX,BYTE PTR DS:[ECX+namebuffer] XOR EAX,31337h ADD EAX,12345678h IMUL EAX,EAX,59h SUB EAX,1BADBAB3h SHL EAX,3 XOR EAX,0D34DC0DEh ADD EBX,EAX INC ECX CMP EDX,ECX JNZ L001 MOV EDX,EAX XOR ECX,ECX XOR EBX,EBX L002: MOVZX EAX,BYTE PTR DS:[ECX+namebuffer] XOR EAX,31337h ADD EAX,0DEADBEEFh IMUL EAX,EAX,666h SUB EAX,1BADBAB3h SHL EAX,3 XOR EAX,0D34DC0DEh ADD EBX,EAX INC ECX CMP EDX,ECX JNZ L002 XOR EBX,ECX invoke wsprintfA, addr tempbuffer, addr decimalformat, ebx invoke lstrcpyA, addr genedserial, addr tempbuffer