We test submissions by running them through a set of unit tests which are written in standard C. Each unit test accepts a function pointer, which points to the being tested implementation. Thus, your function needs to work properly when called in a C program. While it's possible to use special compiler options or attributes to reduce code size, we won't use them in our unit tests. Moreover, if we replace the standard memset with your implementation existing C programs must still work.
Although you can give us an .asm file, it's best if you just give us some shellcode.
We have one hour to go, and the correct and shortest implementation that we've seen so far is 12-byte.