...and its Disassembly
add_squares:
push rbp ; prologue: save old frame ptr
mov rbp, rsp ; new frame base
mov [rbp-0x14], edi ; store param a
mov [rbp-0x18], esi ; store param b
mov eax, [rbp-0x14]
imul eax, eax ; a * a
mov [rbp-0x4], eax ; x = a*a
mov eax, [rbp-0x18]
imul eax, eax ; b * b
mov [rbp-0x8], eax ; y = b*b
mov edx, [rbp-0x4]
mov eax, [rbp-0x8]
add eax, edx ; x + y -> return value in eax
pop rbp ; epilogue
ret