int main() { 400bba: 55 push %rbp 400bbb: 48 89 e5 mov %rsp,%rbp 400bbe: 53 push %rbx 400bbf: 48 83 ec 18 sub $0x18,%rsp auto ptr = std::shared_ptr(new int); 400bc3: bf 04 00 00 00 mov $0x4,%edi 400bc8: e8 33 fe ff ff callq 400a00 <_Znwm@plt> 400bcd: 48 89 c2 mov %rax,%rdx 400bd0: 48 8d 45 e0 lea -0x20(%rbp),%rax 400bd4: 48 89 d6 mov %rdx,%rsi 400bd7: 48 89 c7 mov %rax,%rdi 400bda: e8 ff 00 00 00 callq 400cde <_ZNSt10shared_ptrIiEC1IiEEPT_> *ptr = 100; 400bdf: 48 8d 45 e0 lea -0x20(%rbp),%rax 400be3: 48 89 c7 mov %rax,%rdi 400be6: e8 43 01 00 00 callq 400d2e <_ZNKSt12__shared_ptrIiLN9__gnu_cxx12_Lock_policyE2EEdeEv> 400beb: c7 00 64 00 00 00 movl $0x64,(%rax) std::cout << *ptr << std::endl; 400bf1: 48 8d 45 e0 lea -0x20(%rbp),%rax 400bf5: 48 89 c7 mov %rax,%rdi 400bf8: e8 31 01 00 00 callq 400d2e <_ZNKSt12__shared_ptrIiLN9__gnu_cxx12_Lock_policyE2EEdeEv> 400bfd: 8b 00 mov (%rax),%eax 400bff: 89 c6 mov %eax,%esi 400c01: bf a0 20 60 00 mov $0x6020a0,%edi 400c06: e8 35 fd ff ff callq 400940 <_ZNSolsEi@plt> 400c0b: be d0 09 40 00 mov $0x4009d0,%esi 400c10: 48 89 c7 mov %rax,%rdi 400c13: e8 98 fd ff ff callq 4009b0 <_ZNSolsEPFRSoS_E@plt> return 0; 400c18: bb 00 00 00 00 mov $0x0,%ebx auto ptr = std::shared_ptr(new int); 400c1d: 48 8d 45 e0 lea -0x20(%rbp),%rax 400c21: 48 89 c7 mov %rax,%rdi 400c24: e8 99 00 00 00 callq 400cc2 <_ZNSt10shared_ptrIiED1Ev> 400c29: 89 d8 mov %ebx,%eax 400c2b: eb 1a jmp 400c47 400c2d: 48 89 c3 mov %rax,%rbx 400c30: 48 8d 45 e0 lea -0x20(%rbp),%rax 400c34: 48 89 c7 mov %rax,%rdi 400c37: e8 86 00 00 00 callq 400cc2 <_ZNSt10shared_ptrIiED1Ev> 400c3c: 48 89 d8 mov %rbx,%rax 400c3f: 48 89 c7 mov %rax,%rdi 400c42: e8 c9 fd ff ff callq 400a10 <_Unwind_Resume@plt> } 400c47: 48 83 c4 18 add $0x18,%rsp 400c4b: 5b pop %rbx 400c4c: 5d pop %rbp 400c4d: c3 retq