if IsSc=0
format pe console
entry ShellCodeTest
else
use32
end if
include 'Win32AX.inc'
struc make_hash Args*
{
common local ..result, ..char, ..temp
virtual at 0
db Args
..result = 0x7C90EB94
..temp = 0
repeat $
load ..char byte from % - 1
if ..char = 0
break
end if
..temp = (..temp and 0xffffff00) or ..char
..temp = ..temp shl 25 or ..temp shr 7
..result = ..result xor ..temp
end repeat
end virtual
. dd (..result and 0xffffffff)
}
WinExec make_hash 'WinExec'
calc_exe db 'calc.exe',0