- main:
- pushq %rbp
- movq %rsp, %rbp
- subq $32, %rsp
- movq %fs:40, %rax
- movq %rax, -9(%rbp)
- xorl %eax, %eax
- leaq -20(%rbp), %rax
- movq %rax, %rdi
- call initialize
- movl $0, -24(%rbp)
- jmp .L2
- .L5:
- movl -16(%rbp), %eax
- movl %eax, %edi
- call Less@PLT
- test1 %eax, %eax
- je .L3
- movl -12(%rbp), %eax
- movl %eax, %edi
- call Less@PLT
- test1 %eax, %edi
- jne .L4
- movzwl k(%rip), %eax
- movzwl %ax , %edx
- movl -16(%rbp), %eax
- movl %edx, %esi
- movl %eax, %edi
- call multipl@PLT
- addl %eax, -24(%rbp)
- jmp. L3
- .L4:
- movl -12(%rbp), %edx
- movl -16(%rbp), %eax
- movl %edx, %esi
- movl %eax, %edi
- call multipl@PLT
- addl %eax, -24(%rbp)
- .L3:
- movl -20(%rbp), %eax
- subl $2, %eax
- movl %eax, -20(%rbp)
- .L2:
- movl -20(%rbp), %eax
- test1 %eax, %eax
- jne .L5
- movl -24(%rbp), %eax
- movq -9(%rbp), %rcx
- xorq %fs:40, %rcx
- je .L7
- .L7:
- leave
- ret
- initialize:
- pushq %rbp
- movq %rsp, %rbp
- movq %rdi, -8(%rbp)
- movq -8(%rbp), %rax
- movl $10, (%rax)
- movq -8(%rbp), %rax
- movl $20, 4(%rax)
- movq -8(%rbp), %rax
- movl $30, 8(%rax)
- nop
- popq %rbp
- ret