.386 
.model flat,stdcall 
option casemap:none 

include			windows.inc 
include			kernel32.inc 
include			user32.inc 
includelib		kernel32.lib
includelib		user32.lib 

.data? 
StartupInfo		STARTUPINFO		<>
ProcessInfo		PROCESS_INFORMATION 	<>
BytesWritten 		dd			?

.data 
TargetName		db			"SuperCleaner.exe",0
ProcError		db			"Error starting target process.",0
WriteError		db			"Error writing to target process",0
PatchByte		db			0EBh
PatchVA			dd			0042374Fh

.code
start:
	invoke CreateProcess,addr TargetName,0,0,0,0,CREATE_SUSPENDED,0,0,addr StartupInfo,addr ProcessInfo
	.if eax==0 
		invoke MessageBox,NULL,addr ProcError,NULL,MB_ICONERROR
	.else
		invoke WriteProcessMemory,ProcessInfo.hProcess,PatchVA,addr PatchByte,1,addr BytesWritten
		.if BytesWritten!=1
			invoke MessageBox,NULL,addr WriteError,NULL,MB_ICONERROR
			invoke TerminateProcess,ProcessInfo.hProcess,0
		.else
			invoke ResumeThread,ProcessInfo.hThread
		.endif	
	.endif
	invoke ExitProcess,NULL
end start