fill in the blanks below in its corresponding c source code

The following is the assembly code for a for loop.

loop:_x000D_
pushq  %rbp_x000D_
movq  %rsp, %rbp_x000D_
movq  %edi, -24(%rbp)_x000D_
movq  %esi, -32(%rbp)_x000D_
movq  $0 -8(%rbp)_x000D_
jmp  .L2_x000D_
.L3:_x000D_
subq  $1, -24(%rbp)_x000D_
addq  $1, -32(%rbp)_x000D_
addq $1, -8(%rbp)_x000D_
  .L2:_x000D_
movq  -24(%rbp), %rax_x000D_
cmpq -32(%rbp), %rax_x000D_
 jg .L3_x000D_
addq  $1, -8(%rbp)_x000D_
movq  -8(%rbp), %eax_x000D_
popq  %rbp                                           _x000D_
ret_x000D_
Based on the assembly code above, fill in the blanks below in its_x000D_
corresponding C source code.  (Note: you may only use the symbolic_x000D_
variables x, y, and result in your expressions below._x000D_
 (do not use register names.). _x000D_
______________________________________________________________x000D_
int loop(int x, int y){_x000D_
   int result;_x000D_
   for (______(1)_______; _____(2)______; result++ ) {_x000D_
      ____(3)______;_x000D_
      ____(4)______;_x000D_
   }_x000D_
   _____(5)____;_x000D_
   return result;_x000D_
}