sum:  # Label
	endbr64               # Indirect Branch target (No effect on code's logic)
	pushq %rbp            # Preserve caller stack frame
	movq  %rsp, %rbp      # Set up new stack frame
	movl  %edi, -20(%rbp) # Arg1 register -> stack
	movl  %esi, -24(%rbp) # Arg2 register -> stack
	movl  -20(%rbp), %edx # stack[Arg1] -> gp register
	movl  -24(%rbp), %eax # stack[Arg2] -> gp register
	addl  %edx, %eax      # Add Arg1 + Arg2 -> gp register
	movl  %eax, -4(%rbp)  # result -> stack
	movl  -4(%rbp), %eax  # stack[result] -> return register
	popq  %rbp            # Restore caller stack frame
	ret                   # jump back to caller
