#include <stdio.h>
+#include <stdint.h>
+#include "magicfunction.h"
+
+#define MAX 4194304/sizeof(uint64_t)
+
+uint64_t determine_start()
+{
+ return 0x567856785678;
+}
int main(void)
{
- printf("Ik snap hier nog even niks van...\n");
+ uint64_t filler = 0x123412341234;
+ uint64_t *p;
+ uint64_t *q;
+ uint64_t stack = 0;
+ /*Fill the stack with a filler value*/
+ for(p = &stack -1; p >= &stack - 1 - MAX; p--)
+ *p = filler;
+
+ /*Find the beginning of the function stack with the function*/
+ determine_start();
+ for(q = &stack -1; q>=&stack-1-MAX; q--)
+ if(*q == 0x567856785678)
+ break;
+
+ /*Run the function and find the last occurance of non stack filler */
+ magic_function();
+ for(p = &stack - 1 - MAX; p <= q; p++)
+ if(*p != filler)
+ break;
+
+ printf("%td byte stack size used\n", (char*)p-(char*)q);
return 0;
}