blob: 79d2d2d0e04732077d3dc4bf23f997ad81338ef3 [file] [log] [blame]
// NOTE NOTE NOTE NOTE THIS IS A GENERATED FILE!!
// Any edits will be deleted!
// Instead, change gen-x86-prologues.rb and re-generate.
//
void pattern_1 (void);
void func_under_pattern_1 (void);
void pattern_2 (void);
void func_under_pattern_2 (void);
void pattern_3 (void);
void func_under_pattern_3 (void);
void pattern_4 (void);
void func_under_pattern_4 (void);
void pattern_5 (void);
void func_under_pattern_5 (void);
void pattern_6 (void);
void func_under_pattern_6 (void);
void pattern_7 (void);
void func_under_pattern_7 (void);
void pattern_8 (void);
void func_under_pattern_8 (void);
void pattern_9 (void);
void func_under_pattern_9 (void);
void pattern_10 (void);
void func_under_pattern_10 (void);
void pattern_11 (void);
void func_under_pattern_11 (void);
void pattern_12 (void);
void func_under_pattern_12 (void);
void pattern_13 (void);
void func_under_pattern_13 (void);
void pattern_14 (void);
void func_under_pattern_14 (void);
void pattern_15 (void);
void func_under_pattern_15 (void);
void pattern_16 (void);
void func_under_pattern_16 (void);
void pattern_17 (void);
void func_under_pattern_17 (void);
void pattern_18 (void);
void func_under_pattern_18 (void);
void pattern_19 (void);
void func_under_pattern_19 (void);
void pattern_20 (void);
void func_under_pattern_20 (void);
void pattern_21 (void);
void func_under_pattern_21 (void);
void pattern_22 (void);
void func_under_pattern_22 (void);
void pattern_23 (void);
void func_under_pattern_23 (void);
void pattern_24 (void);
void func_under_pattern_24 (void);
void pattern_25 (void);
void func_under_pattern_25 (void);
void pattern_26 (void);
void func_under_pattern_26 (void);
void pattern_27 (void);
void func_under_pattern_27 (void);
void pattern_28 (void);
void func_under_pattern_28 (void);
void pattern_29 (void);
void func_under_pattern_29 (void);
void pattern_30 (void);
void func_under_pattern_30 (void);
void pattern_31 (void);
void func_under_pattern_31 (void);
void pattern_32 (void);
void func_under_pattern_32 (void);
void pattern_33 (void);
void func_under_pattern_33 (void);
void pattern_34 (void);
void func_under_pattern_34 (void);
void pattern_35 (void);
void func_under_pattern_35 (void);
static int word_of_writable_memory;
main (int argc, char **argv, char **envp)
{
pattern_1 ();
pattern_2 ();
pattern_3 ();
pattern_4 ();
pattern_5 ();
pattern_6 ();
pattern_7 ();
pattern_8 ();
pattern_9 ();
pattern_10 ();
pattern_11 ();
pattern_12 ();
pattern_13 ();
pattern_14 ();
pattern_15 ();
pattern_16 ();
pattern_17 ();
pattern_18 ();
pattern_19 ();
pattern_20 ();
pattern_21 ();
pattern_22 ();
pattern_23 ();
pattern_24 ();
pattern_25 ();
pattern_26 ();
pattern_27 ();
pattern_28 ();
pattern_29 ();
pattern_30 ();
pattern_31 ();
pattern_32 ();
pattern_33 ();
pattern_34 ();
pattern_35 ();
}
asm (" .text\n"
" .align 8\n"
"_pattern_1:\n"
" push %ebp\n"
" or $0xffffffff, %ecx # [ 0x83 0xc9 0xff ]\n"
" mov %esp,%ebp\n"
" sub $0x8, %esp\n"
" test %edx,%edx\n"
" call _func_under_pattern_1\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_1 (void)
{
puts ("I am the function under pattern_1");
}
asm (" .text\n"
" .align 8\n"
"_pattern_2:\n"
" call L1 # [ 0xe0 0x00 0x00 000 0x00 ]\n"
"L1:\n"
" pop %ecx # [ 0x59 ]\n"
" push %ebp\n"
" mov %esp, %ebp\n"
" sub $0x18, %esp\n"
" call _func_under_pattern_2\n"
" add $0x18, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_2 (void)
{
puts ("I am the function under pattern_2");
}
asm (" .text\n"
" .align 8\n"
"_pattern_3:\n"
" push %ebp\n"
" add %edx, %eax # [ 0x01 0xd0 ]\n"
" mov %esp, %ebp\n"
" push %ecx\n"
" push %ecx\n"
" call _func_under_pattern_3\n"
" pop %ecx\n"
" pop %ecx\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_3 (void)
{
puts ("I am the function under pattern_3");
}
asm (" .text\n"
" .align 8\n"
"_pattern_4:\n"
" push %ebp\n"
" movzwl %ax,%eax # [ 0x0f 0xb7 0xc0 ]\n"
" mov %esp, %ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_4\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_4 (void)
{
puts ("I am the function under pattern_4");
}
asm (" .text\n"
" .align 8\n"
"_pattern_5:\n"
" push %ebp\n"
" movzwl %dx,%edx # [ 0x0f 0xb7 0xd2 ]\n"
" mov %esp, %ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_5\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_5 (void)
{
puts ("I am the function under pattern_5");
}
asm (" .text\n"
" .align 8\n"
"_pattern_6:\n"
" push %ebp\n"
" test %eax, %eax # [ 0x85 0xc0 ]\n"
" mov %esp, %ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_6\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_6 (void)
{
puts ("I am the function under pattern_6");
}
asm (" .text\n"
" .align 8\n"
"_pattern_7:\n"
" push %ebp\n"
" test %edx,%edx # [ 0x85 0xd2 ]\n"
" mov %esp,%ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_7\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_7 (void)
{
puts ("I am the function under pattern_7");
}
asm (" .text\n"
" .align 8\n"
"_pattern_8:\n"
" push %ebp\n"
" test $0xffffff80,%eax # [ 0xa9 0x80 0xff 0xff 0xff ]\n"
" mov %esp,%ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_8\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_8 (void)
{
puts ("I am the function under pattern_8");
}
asm (" .text\n"
" .align 8\n"
"_pattern_9:\n"
" push %ebp\n"
" inc %eax # [ 0x40 ]\n"
" mov %esp,%ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_9\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_9 (void)
{
puts ("I am the function under pattern_9");
}
asm (" .text\n"
" .align 8\n"
"_pattern_10:\n"
" push %ebp\n"
" add $0x3, %ecx # [ 0x83 0xc1 0x03 ]\n"
" mov %esp,%ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_10\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_10 (void)
{
puts ("I am the function under pattern_10");
}
asm (" .text\n"
" .align 8\n"
"_pattern_11:\n"
" push %ebp\n"
" mov %eax,%ecx # [ 0x89 0xc1 ]\n"
" mov %esp,%ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_11\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_11 (void)
{
puts ("I am the function under pattern_11");
}
asm (" .text\n"
" .align 8\n"
"_pattern_12:\n"
" push %ebp\n"
" cld # [ 0xfc ]\n"
" xor %eax,%eax\n"
" mov %esp, %ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_12\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_12 (void)
{
puts ("I am the function under pattern_12");
}
asm (" .text\n"
" .align 8\n"
"_pattern_13:\n"
" push %ebp\n"
" dec %edx # [ 0x4a ]\n"
" mov %esp, %ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_13\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_13 (void)
{
puts ("I am the function under pattern_13");
}
asm (" .text\n"
" .align 8\n"
"_pattern_14:\n"
" mov %eax, %ecx # [ 0x89 0xc1 ]\n"
" mov %edx, %eax # [ 0x89 0xd0 ]\n"
" xor %edx, %edx # [ 0x31 0xd2 ]\n"
" div %ecx # [ 0xf7 0xf1 ]\n"
" push %ebp\n"
" mov %esp, %ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_14\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_14 (void)
{
puts ("I am the function under pattern_14");
}
asm (" .text\n"
" .align 8\n"
"_pattern_15:\n"
" push %ebp\n"
" fldz # [ 0xd9 0xee ]\n"
" mov %esp, %ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_15\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_15 (void)
{
puts ("I am the function under pattern_15");
}
asm (" .text\n"
" .align 8\n"
"_pattern_16:\n"
" and $0x3d, %eax # [ 0x83 0xe0 0x3d ]\n"
" push %ebp\n"
" sub $0x8, %eax # [ 0x83 0xe8 0x08 ]\n"
" mov %esp, %ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_16\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_16 (void)
{
puts ("I am the function under pattern_16");
}
asm (" .text\n"
" .align 8\n"
"_pattern_17:\n"
" push %ebp\n"
" cmpl $0x0,_main # From mach_kernel: [ 0x83 0x3d 0x54 0x42 0x3a 0xc0 0x00 ]\n"
" mov %esp, %ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_17\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_17 (void)
{
puts ("I am the function under pattern_17");
}
asm (" .text\n"
" .align 8\n"
"_pattern_18:\n"
" push %ebp\n"
" mov $0xffffffce, %eax # [ 0xb8 0xce 0xff 0xff 0xff ]\n"
" mov %esp, %ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_18\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_18 (void)
{
puts ("I am the function under pattern_18");
}
asm (" .text\n"
" .align 8\n"
"_pattern_19:\n"
" push %ebp\n"
" mov $0x18, %dx # [ 0x66 0xba 0x18 0x00 ]\n"
" mov %esp, %ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_19\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_19 (void)
{
puts ("I am the function under pattern_19");
}
asm (" .text\n"
" .align 8\n"
"_pattern_20:\n"
" nop # [ 0x90 ]\n"
" nop\n"
" nop\n"
" nop\n"
" nop\n"
" nop\n"
" push %ebp\n"
" mov %esp, %ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_20\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_20 (void)
{
puts ("I am the function under pattern_20");
}
asm (" .text\n"
" .align 8\n"
"_pattern_21:\n"
" push %ebp\n"
" movzbl %al, %eax # [ 0x0f 0xb6 0xc0 ]\n"
" mov %esp, %ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_21\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_21 (void)
{
puts ("I am the function under pattern_21");
}
asm (" .text\n"
" .align 8\n"
"_pattern_22:\n"
" push %ebp\n"
" mov %eax, %edx # [ 0x89 0xc2 ]\n"
" sar $0x8, %eax # [ 0xc1 0xf8 0x08 ]\n"
" mov %esp, %ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_22\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_22 (void)
{
puts ("I am the function under pattern_22");
}
asm (" .text\n"
" .align 8\n"
"_pattern_23:\n"
" push %ebp\n"
" and $0xffffff, %eax # [ 0x25 0xff 0xff 0xff 0x00 ]\n"
" mov %esp, %ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_23\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_23 (void)
{
puts ("I am the function under pattern_23");
}
asm (" .text\n"
" .align 8\n"
"_pattern_24:\n"
" push %ebp\n"
" xorps %xmm4, %xmm4 # [ 0x0f 0x57 0xe4 ]\n"
" mov %esp, %ebp\n"
" sub $0x28, %esp\n"
" call _func_under_pattern_24\n"
" add $0x28, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_24 (void)
{
puts ("I am the function under pattern_24");
}
asm (" .text\n"
" .align 8\n"
"_pattern_25:\n"
" push %ebp\n"
" mov $_main, %edx # Added instruction so edx has a valid addr\n"
" mov 0x18(%edx), %eax # [ 0x8b 0x42 0x18 ]\n"
" mov %esp, %ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_25\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_25 (void)
{
puts ("I am the function under pattern_25");
}
asm (" .text\n"
" .align 8\n"
"_pattern_26:\n"
" push %ebp\n"
" and $0x7fffffff,%edx # [ 0x81 0xe2 0xff 0xff 0xff 0x7f ]\n"
" mov %esp, %ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_26\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_26 (void)
{
puts ("I am the function under pattern_26");
}
asm (" .text\n"
" .align 8\n"
"_pattern_27:\n"
" push %ebp\n"
" mov $_main, %eax\n"
" lea 0x4(%eax), %ecx # [ 0x8d 0x48 0x04 ]\n"
" mov %esp, %ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_27\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_27 (void)
{
puts ("I am the function under pattern_27");
}
asm (" .text\n"
" .align 8\n"
"_pattern_28:\n"
" add $0x628df, %ecx # [ 0x81 0xc1 0xdf 0x28 0x06 0x00 ]\n"
" push %ebp\n"
" mov %esp, %ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_28\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_28 (void)
{
puts ("I am the function under pattern_28");
}
asm (" .text\n"
" .align 8\n"
"_pattern_29:\n"
" push %ebp\n"
" mov $_main, %ecx\n"
" mov 0x100(%ecx), %edx # [ 0x8b 0x91 0x00 0x01 0x00 0x00 ]\n"
" mov %esp, %ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_29\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_29 (void)
{
puts ("I am the function under pattern_29");
}
asm (" .text\n"
" .align 8\n"
"_pattern_30:\n"
" push %ebp\n"
" mov $_main, %ecx\n"
" lea 0x100(%ecx), %edx # [ 0x8d 0x91 0x00 0x01 0x00 0x00 ]\n"
" mov %esp, %ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_30\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_30 (void)
{
puts ("I am the function under pattern_30");
}
asm (" .text\n"
" .align 8\n"
"_pattern_31:\n"
" push %ebp\n"
" mov $_main, %eax\n"
" cmpb $0x0, (%eax) # [ 0x80 0x38 0x00 ]\n"
" mov %esp, %ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_31\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_31 (void)
{
puts ("I am the function under pattern_31");
}
asm (" .text\n"
" .align 8\n"
"_pattern_32:\n"
" push %ebp\n"
" mov $_word_of_writable_memory, %eax\n"
" mov %edx, (%eax) # [ 0x89 0x10 ]\n"
" mov %esp, %ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_32\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_32 (void)
{
puts ("I am the function under pattern_32");
}
asm (" .text\n"
" .align 8\n"
"_pattern_33:\n"
" push %ebp\n"
" mov $_word_of_writable_memory, %edx\n"
" mov %eax, (%edx) # [ 0x89 0x02 ]\n"
" mov %esp, %ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_33\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_33 (void)
{
puts ("I am the function under pattern_33");
}
asm (" .text\n"
" .align 8\n"
"_pattern_34:\n"
" push %ebp\n"
" mov $_word_of_writable_memory, %eax\n"
" movb $0x1, (%eax) # [ 0xc6 0x00 0x01 ]\n"
" mov %esp, %ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_34\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_34 (void)
{
puts ("I am the function under pattern_34");
}
asm (" .text\n"
" .align 8\n"
"_pattern_35:\n"
" push %ebp\n"
" shl $0x5, %ecx # [ 0xc1 0xe1 0x05 ]\n"
" mov %esp, %ebp\n"
" sub $0x8, %esp\n"
" call _func_under_pattern_35\n"
" add $0x8, %esp\n"
" pop %ebp\n"
" ret\n"
);
void func_under_pattern_35 (void)
{
puts ("I am the function under pattern_35");
}