Hey all, I was doing a bit of reading and ran into the following code (this is a function prologue for a main function, if you need more code or the actual C code let me know): push ebp mov ebp, esp sub esp, 0x18 and esp, 0xfffffff0 mov eax, 0x0 sub esp, eax So I understand the first three lines. first save the base pointer to the stack, second assign the base pointer and lastly set the new stack pointer with enough space for the local variables. What I don't understand are the last three lines. I know what the and, mov and sub opcodes do but I can't get the general picture. Also what exactly is eax used for? Is it a gpr? Those last three lines dont appear in regular functions, so I am guessing it has something to do with the main function. Any help will be much appreciated, thank you.