179228 000000000047ae20 <main.add>:
179229 ; func add(a, b int) int {
179230 47ae20: 49 3b 66 10 cmpq 16(%r14), %rsp
179231 47ae24: 76 5b jbe 0x47ae81 <main.add+0x61>
179232 47ae26: 55 pushq %rbp
179233 47ae27: 48 89 e5 movq %rsp, %rbp
179234 47ae2a: 48 83 ec 18 subq $24, %rsp
179235 47ae2e: 66 44 0f d6 7c 24 10 movq %xmm15, 16(%rsp)
179236 47ae35: c6 44 24 07 00 movb $0, 7(%rsp)
179237 47ae3a: 48 c7 44 24 08 00 00 00 00 movq $0, 8(%rsp)
179238 ; return a + b
179239 47ae43: 48 01 d8 addq %rbx, %rax
179240 ; defer func() {
179241 47ae46: 48 8d 0d 9b 06 02 00 leaq 132763(%rip), %rcx # 0x49b4e8 <go:func.*+0x220>
179242 47ae4d: 48 89 4c 24 10 movq %rcx, 16(%rsp)
179243 47ae52: c6 44 24 07 01 movb $1, 7(%rsp)
179244 ; return a + b
179245 47ae57: 48 89 44 24 08 movq %rax, 8(%rsp)
179246 47ae5c: c6 44 24 07 00 movb $0, 7(%rsp)
179247 47ae61: e8 7a 00 00 00 callq 0x47aee0 <main.add.func1>
179248 47ae66: 48 8b 44 24 08 movq 8(%rsp), %rax
179249 47ae6b: 48 83 c4 18 addq $24, %rsp
179250 47ae6f: 5d popq %rbp
179251 47ae70: c3 retq
According to my understanding:
1. `179241 47ae46: 48 8d 0d 9b 06 02 00 leaq 132763(%rip), %rcx # 0x49b4e8 <go:func.*+0x220>` want to load address of main.add.func1 to register rcx. Is this understanding correct?
2.1 rip 0x47ae4d, 0x47ae4d + 132763 = 0x49b4e8,
2.2 main.add.func1's address is 0x47b0c0
objdump -D -S main | grep "main.add.func1>:" -A 31
000000000047aee0 <main.add.func1>:
2.3 i just found 0x49b4e8 in rodata
2.4 So, What is stored at 0x49b4e8?