fac: testq %rdi, %rdi pushq %rbx movl $1, %eax movq %rdi, %rbx jne .L6 popq %rbx ret .L6: leaq -1(%rdi), %rdi call fac imulq %rbx, %rax popq %rbx ret