Given the following code snippet and assembly instructions, align the code with the corresponding assembly:
__Z3fooii:
100000f60: 55 pushq %rbp
100000f61: 48 89 e5 movq %rsp, %rbp
100000f64: 89 7d fc movl %edi, -4(%rbp)
int foo(int num1, int num2) {
100000f67: 89 75 f8 movl %esi, -8(%rbp)
100000f6a: c7 45 f4 02 00 00 00 movl $2, -12(%rbp)
100000f71: 6b 75 fc 03 imull $3, -4(%rbp), %esi
100000f75: 89 75 f0 movl %esi, -16(%rbp)
100000f78: 8b 75 f8 movl -8(%rbp), %esi
100000f7b: 03 75 f4 addl -12(%rbp), %esi
100000f7e: 89 75 ec movl %esi, -20(%rbp)
100000f81: 8b 75 f4 movl -12(%rbp), %esi
100000f84: 2b 75 f0 subl -16(%rbp), %esi
100000f87: 89 75 e8 movl %esi, -24(%rbp)
100000f8a: 8b 45 e8 movl -24(%rbp), %eax
100000f8d: 5d popq %rbp
100000f8e: c3 retq