逆向-beginners之C++ 向量

#include
#include
#include
#include

struct vector_of_ints
{
    int * start;
    int * finish;
    int * end_of_storage;
};

void dump(struct vector_of_ints * in)
{
    printf("first=0x%p finish=0x%p end=0x%p\n", in->start, in->finish, in->end_of_storage);
    size_t size = (in->finish - in->start);
    size_t capacity = (in->end_of_storage - in->start);
    printf("size=%d capacity=%d\n", size, capacity);

    for (int i = 0; i < size; i++)
            printf("element %d : %d\n", i, in->start[i]);
}

int main()
{
    std::vector c;

    dump((struct vector_of_ints *)(void *) &c);
    c.push_back(1);
    dump((struct vector_of_ints *)(void *) &c);
    c.push_back(2);
    dump((struct vector_of_ints *)(void *) &c);
    c.push_back(3);
    dump((struct vector_of_ints *)(void *) &c);
    c.push_back(4);
    dump((struct vector_of_ints *)(void *) &c);
    c.push_back(5);
    dump((struct vector_of_ints *)(void *) &c);
    c.push_back(6);
    dump((struct vector_of_ints *)(void *) &c);

    printf("%d\n", c.at(5));    /* with bounds checking */
    printf("%d\n", c[8]);        /* operator[], without bounds checking */
}

#if 0
/*
 * intel
 */
00000000000012a9 <_Z4dumpP14vector_of_ints>:
    12a9:    f3 0f 1e fa              endbr64
    12ad:    55                       push   %rbp
    12ae:    48 89 e5                 mov    %rsp,%rbp
    12b1:    48 83 ec 30              sub    $0x30,%rsp
    12b5:    48 89 7d d8              mov    %rdi,-0x28(%rbp)
    12b9:    48 8b 45 d8              mov    -0x28(%rbp),%rax
    12bd:    48 8b 48 10              mov    0x10(%rax),%rcx
    12c1:    48 8b 45 d8              mov    -0x28(%rbp),%rax
    12c5:    48 8b 50 08              mov    0x8(%rax),%rdx
    12c9:    48 8b 45 d8              mov    -0x28(%rbp),%rax
    12cd:    48 8b 00                 mov    (%rax),%rax
    12d0:    48 89 c6                 mov    %rax,%rsi
    12d3:    48 8d 3d 36 1d 00 00     lea    0x1d36(%rip),%rdi        # 3010 <_ZStL6ignore+0x6>
    12da:    b8 00 00 00 00           mov    $0x0,%eax
    12df:    e8 1c fe ff ff           callq  1100
    12e4:    48 8b 45 d8              mov    -0x28(%rbp),%rax
    12e8:    48 8b 50 08              mov    0x8(%rax),%rdx
    12ec:    48 8b 45 d8              mov    -0x28(%rbp),%rax
    12f0:    48 8b 00                 mov    (%rax),%rax
    12f3:    48 29 c2                 sub    %rax,%rdx
    12f6:    48 89 d0                 mov    %rdx,%rax
    12f9:    48 c1 f8 02              sar    $0x2,%rax
    12fd:    48 89 45 f0              mov    %rax,-0x10(%rbp)
    1301:    48 8b 45 d8              mov    -0x28(%rbp),%rax
    1305:    48 8b 50 10              mov    0x10(%rax),%rdx
    1309:    48 8b 45 d8              mov    -0x28(%rbp),%rax
    130d:    48 8b 00                 mov    (%rax),%rax
    1310:    48 29 c2                 sub    %rax,%rdx
    1313:    48 89 d0                 mov    %rdx,%rax
    1316:    48 c1 f8 02              sar    $0x2,%rax
    131a:    48 89 45 f8              mov    %rax,-0x8(%rbp)
    131e:    48 8b 55 f8              mov    -0x8(%rbp),%rdx
    1322:    48 8b 45 f0              mov    -0x10(%rbp),%rax
    1326:    48 89 c6                 mov    %rax,%rsi
    1329:    48 8d 3d 01 1d 00 00     lea    0x1d01(%rip),%rdi        # 3031 <_ZStL6ignore+0x27>
    1330:    b8 00 00 00 00           mov    $0x0,%eax
    1335:    e8 c6 fd ff ff           callq  1100
    133a:    c7 45 ec 00 00 00 00     movl   $0x0,-0x14(%rbp)
    1341:    8b 45 ec                 mov    -0x14(%rbp),%eax
    1344:    48 98                    cltq   
    1346:    48 39 45 f0              cmp    %rax,-0x10(%rbp)
    134a:    76 32                    jbe    137e <_Z4dumpP14vector_of_ints+0xd5>
    134c:    48 8b 45 d8              mov    -0x28(%rbp),%rax
    1350:    48 8b 00                 mov    (%rax),%rax
    1353:    8b 55 ec                 mov    -0x14(%rbp),%edx
    1356:    48 63 d2                 movslq %edx,%rdx
    1359:    48 c1 e2 02              shl    $0x2,%rdx
    135d:    48 01 d0                 add    %rdx,%rax
    1360:    8b 10                    mov    (%rax),%edx
    1362:    8b 45 ec                 mov    -0x14(%rbp),%eax
    1365:    89 c6                    mov    %eax,%esi
    1367:    48 8d 3d d8 1c 00 00     lea    0x1cd8(%rip),%rdi        # 3046 <_ZStL6ignore+0x3c>
    136e:    b8 00 00 00 00           mov    $0x0,%eax
    1373:    e8 88 fd ff ff           callq  1100
    1378:    83 45 ec 01              addl   $0x1,-0x14(%rbp)
    137c:    eb c3                    jmp    1341 <_Z4dumpP14vector_of_ints+0x98>
    137e:    90                       nop
    137f:    c9                       leaveq
    1380:    c3                       retq   

0000000000001381

:
    1381:    f3 0f 1e fa              endbr64
    1385:    55                       push   %rbp
    1386:    48 89 e5                 mov    %rsp,%rbp
    1389:    53                       push   %rbx
    138a:    48 83 ec 38              sub    $0x38,%rsp
    138e:    64 48 8b 04 25 28 00     mov    %fs:0x28,%rax
    1395:    00 00
    1397:    48 89 45 e8              mov    %rax,-0x18(%rbp)
    139b:    31 c0                    xor    %eax,%eax
    139d:    48 8d 45 d0              lea    -0x30(%rbp),%rax
    13a1:    48 89 c7                 mov    %rax,%rdi
    13a4:    e8 df 01 00 00           callq  1588 <_ZNSt6vectorIiSaIiEEC1Ev>
    13a9:    48 8d 45 d0              lea    -0x30(%rbp),%rax
    13ad:    48 89 c7                 mov    %rax,%rdi
    13b0:    e8 f4 fe ff ff           callq  12a9 <_Z4dumpP14vector_of_ints>
    13b5:    c7 45 cc 01 00 00 00     movl   $0x1,-0x34(%rbp)
    13bc:    48 8d 55 cc              lea    -0x34(%rbp),%rdx
    13c0:    48 8d 45 d0              lea    -0x30(%rbp),%rax
    13c4:    48 89 d6                 mov    %rdx,%rsi
    13c7:    48 89 c7                 mov    %rax,%rdi
    13ca:    e8 bf 02 00 00           callq  168e <_ZNSt6vectorIiSaIiEE9push_backEOi>
    13cf:    48 8d 45 d0              lea    -0x30(%rbp),%rax
    13d3:    48 89 c7                 mov    %rax,%rdi
    13d6:    e8 ce fe ff ff           callq  12a9 <_Z4dumpP14vector_of_ints>
    13db:    c7 45 cc 02 00 00 00     movl   $0x2,-0x34(%rbp)
    13e2:    48 8d 55 cc              lea    -0x34(%rbp),%rdx
    13e6:    48 8d 45 d0              lea    -0x30(%rbp),%rax
    13ea:    48 89 d6                 mov    %rdx,%rsi
    13ed:    48 89 c7                 mov    %rax,%rdi
    13f0:    e8 99 02 00 00           callq  168e <_ZNSt6vectorIiSaIiEE9push_backEOi>
    13f5:    48 8d 45 d0              lea    -0x30(%rbp),%rax
    13f9:    48 89 c7                 mov    %rax,%rdi
    13fc:    e8 a8 fe ff ff           callq  12a9 <_Z4dumpP14vector_of_ints>
    1401:    c7 45 cc 03 00 00 00     movl   $0x3,-0x34(%rbp)
    1408:    48 8d 55 cc              lea    -0x34(%rbp),%rdx
    140c:    48 8d 45 d0              lea    -0x30(%rbp),%rax
    1410:    48 89 d6                 mov    %rdx,%rsi
    1413:    48 89 c7                 mov    %rax,%rdi
    1416:    e8 73 02 00 00           callq  168e <_ZNSt6vectorIiSaIiEE9push_backEOi>
    141b:    48 8d 45 d0              lea    -0x30(%rbp),%rax
    141f:    48 89 c7                 mov    %rax,%rdi
    1422:    e8 82 fe ff ff           callq  12a9 <_Z4dumpP14vector_of_ints>
    1427:    c7 45 cc 04 00 00 00     movl   $0x4,-0x34(%rbp)
    142e:    48 8d 55 cc              lea    -0x34(%rbp),%rdx
    1432:    48 8d 45 d0              lea    -0x30(%rbp),%rax
    1436:    48 89 d6                 mov    %rdx,%rsi
    1439:    48 89 c7                 mov    %rax,%rdi
    143c:    e8 4d 02 00 00           callq  168e <_ZNSt6vectorIiSaIiEE9push_backEOi>
    1441:    48 8d 45 d0              lea    -0x30(%rbp),%rax
    1445:    48 89 c7                 mov    %rax,%rdi
    1448:    e8 5c fe ff ff           callq  12a9 <_Z4dumpP14vector_of_ints>
    144d:    c7 45 cc 05 00 00 00     movl   $0x5,-0x34(%rbp)
    1454:    48 8d 55 cc              lea    -0x34(%rbp),%rdx
    1458:    48 8d 45 d0              lea    -0x30(%rbp),%rax
    145c:    48 89 d6                 mov    %rdx,%rsi
    145f:    48 89 c7                 mov    %rax,%rdi
    1462:    e8 27 02 00 00           callq  168e <_ZNSt6vectorIiSaIiEE9push_backEOi>
    1467:    48 8d 45 d0              lea    -0x30(%rbp),%rax
    146b:    48 89 c7                 mov    %rax,%rdi
    146e:    e8 36 fe ff ff           callq  12a9 <_Z4dumpP14vector_of_ints>
    1473:    c7 45 cc 06 00 00 00     movl   $0x6,-0x34(%rbp)
    147a:    48 8d 55 cc              lea    -0x34(%rbp),%rdx
    147e:    48 8d 45 d0              lea    -0x30(%rbp),%rax
    1482:    48 89 d6                 mov    %rdx,%rsi
    1485:    48 89 c7                 mov    %rax,%rdi
    1488:    e8 01 02 00 00           callq  168e <_ZNSt6vectorIiSaIiEE9push_backEOi>
    148d:    48 8d 45 d0              lea    -0x30(%rbp),%rax
    1491:    48 89 c7                 mov    %rax,%rdi
    1494:    e8 10 fe ff ff           callq  12a9 <_Z4dumpP14vector_of_ints>
    1499:    48 8d 45 d0              lea    -0x30(%rbp),%rax
    149d:    be 05 00 00 00           mov    $0x5,%esi
    14a2:    48 89 c7                 mov    %rax,%rdi
    14a5:    e8 1a 02 00 00           callq  16c4 <_ZNSt6vectorIiSaIiEE2atEm>
    14aa:    8b 00                    mov    (%rax),%eax
    14ac:    89 c6                    mov    %eax,%esi
    14ae:    48 8d 3d a2 1b 00 00     lea    0x1ba2(%rip),%rdi        # 3057 <_ZStL6ignore+0x4d>
    14b5:    b8 00 00 00 00           mov    $0x0,%eax
    14ba:    e8 41 fc ff ff           callq  1100
    14bf:    48 8d 45 d0              lea    -0x30(%rbp),%rax
    14c3:    be 08 00 00 00           mov    $0x8,%esi
    14c8:    48 89 c7                 mov    %rax,%rdi
    14cb:    e8 30 02 00 00           callq  1700 <_ZNSt6vectorIiSaIiEEixEm>
    14d0:    8b 00                    mov    (%rax),%eax
    14d2:    89 c6                    mov    %eax,%esi
    14d4:    48 8d 3d 7c 1b 00 00     lea    0x1b7c(%rip),%rdi        # 3057 <_ZStL6ignore+0x4d>
    14db:    b8 00 00 00 00           mov    $0x0,%eax
    14e0:    e8 1b fc ff ff           callq  1100
    14e5:    48 8d 45 d0              lea    -0x30(%rbp),%rax
    14e9:    48 89 c7                 mov    %rax,%rdi
    14ec:    e8 55 01 00 00           callq  1646 <_ZNSt6vectorIiSaIiEED1Ev>
    14f1:    b8 00 00 00 00           mov    $0x0,%eax
    14f6:    48 8b 4d e8              mov    -0x18(%rbp),%rcx
    14fa:    64 48 33 0c 25 28 00     xor    %fs:0x28,%rcx
    1501:    00 00
    1503:    74 25                    je     152a
    1505:    eb 1e                    jmp    1525
    1507:    f3 0f 1e fa              endbr64
    150b:    48 89 c3                 mov    %rax,%rbx
    150e:    48 8d 45 d0              lea    -0x30(%rbp),%rax
    1512:    48 89 c7                 mov    %rax,%rdi
    1515:    e8 2c 01 00 00           callq  1646 <_ZNSt6vectorIiSaIiEED1Ev>
    151a:    48 89 d8                 mov    %rbx,%rax
    151d:    48 89 c7                 mov    %rax,%rdi
    1520:    e8 8b fc ff ff           callq  11b0 <_Unwind_Resume@plt>
    1525:    e8 36 fc ff ff           callq  1160 <__stack_chk_fail@plt>
    152a:    48 83 c4 38              add    $0x38,%rsp
    152e:    5b                       pop    %rbx
    152f:    5d                       pop    %rbp
    1530:    c3                       retq   

0000000000001531 <_ZnwmPv>:
    1531:    f3 0f 1e fa              endbr64
    1535:    55                       push   %rbp
    1536:    48 89 e5                 mov    %rsp,%rbp
    1539:    48 89 7d f8              mov    %rdi,-0x8(%rbp)
    153d:    48 89 75 f0              mov    %rsi,-0x10(%rbp)
    1541:    48 8b 45 f0              mov    -0x10(%rbp),%rax
    1545:    5d                       pop    %rbp
    1546:    c3                       retq   
    1547:    90                       nop

0000000000001548 <_ZNSt12_Vector_baseIiSaIiEE12_Vector_implD1Ev>:
    1548:    f3 0f 1e fa              endbr64
    154c:    55                       push   %rbp
    154d:    48 89 e5                 mov    %rsp,%rbp
    1550:    48 83 ec 10              sub    $0x10,%rsp
    1554:    48 89 7d f8              mov    %rdi,-0x8(%rbp)
    1558:    48 8b 45 f8              mov    -0x8(%rbp),%rax
    155c:    48 89 c7                 mov    %rax,%rdi
    155f:    e8 70 00 00 00           callq  15d4 <_ZNSaIiED1Ev>
    1564:    90                       nop
    1565:    c9                       leaveq
    1566:    c3                       retq   
    1567:    90                       nop

0000000000001568 <_ZNSt12_Vector_baseIiSaIiEEC1Ev>:
    1568:    f3 0f 1e fa              endbr64
    156c:    55                       push   %rbp
    156d:    48 89 e5                 mov    %rsp,%rbp
    1570:    48 83 ec 10              sub    $0x10,%rsp
    1574:    48 89 7d f8              mov    %rdi,-0x8(%rbp)
    1578:    48 8b 45 f8              mov    -0x8(%rbp),%rax
    157c:    48 89 c7                 mov    %rax,%rdi
    157f:    e8 24 00 00 00           callq  15a8 <_ZNSt12_Vector_baseIiSaIiEE12_Vector_implC1Ev>
    1584:    90                       nop
    1585:    c9                       leaveq
    1586:    c3                       retq   
    1587:    90                       nop

0000000000001588 <_ZNSt6vectorIiSaIiEEC1Ev>:
    1588:    f3 0f 1e fa              endbr64
    158c:    55                       push   %rbp
    158d:    48 89 e5                 mov    %rsp,%rbp
    1590:    48 83 ec 10              sub    $0x10,%rsp
    1594:    48 89 7d f8              mov    %rdi,-0x8(%rbp)
    1598:    48 8b 45 f8              mov    -0x8(%rbp),%rax
    159c:    48 89 c7                 mov    %rax,%rdi
    159f:    e8 c4 ff ff ff           callq  1568 <_ZNSt12_Vector_baseIiSaIiEEC1Ev>
    15a4:    90                       nop
    15a5:    c9                       leaveq
    15a6:    c3                       retq   
    15a7:    90                       nop

00000000000015a8 <_ZNSt12_Vector_baseIiSaIiEE12_Vector_implC1Ev>:
    15a8:    f3 0f 1e fa              endbr64
    15ac:    55                       push   %rbp
    15ad:    48 89 e5                 mov    %rsp,%rbp
    15b0:    48 83 ec 10              sub    $0x10,%rsp
    15b4:    48 89 7d f8              mov    %rdi,-0x8(%rbp)
    15b8:    48 8b 45 f8              mov    -0x8(%rbp),%rax
    15bc:    48 89 c7                 mov    %rax,%rdi
    15bf:    e8 60 01 00 00           callq  1724 <_ZNSaIiEC1Ev>
    15c4:    48 8b 45 f8              mov    -0x8(%rbp),%rax
    15c8:    48 89 c7                 mov    %rax,%rdi
    15cb:    e8 74 01 00 00           callq  1744 <_ZNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataC1Ev>
    15d0:    90                       nop
    15d1:    c9                       leaveq
    15d2:    c3                       retq   
    15d3:    90                       nop

00000000000015d4 <_ZNSaIiED1Ev>:
    15d4:    f3 0f 1e fa              endbr64
    15d8:    55                       push   %rbp
    15d9:    48 89 e5                 mov    %rsp,%rbp
    15dc:    48 83 ec 10              sub    $0x10,%rsp
    15e0:    48 89 7d f8              mov    %rdi,-0x8(%rbp)
    15e4:    48 8b 45 f8              mov    -0x8(%rbp),%rax
    15e8:    48 89 c7                 mov    %rax,%rdi
    15eb:    e8 86 01 00 00           callq  1776 <_ZN9__gnu_cxx13new_allocatorIiED1Ev>
    15f0:    90                       nop
    15f1:    c9                       leaveq
    15f2:    c3                       retq   
    15f3:    90                       nop

00000000000015f4 <_ZNSt12_Vector_baseIiSaIiEED1Ev>:
    15f4:    f3 0f 1e fa              endbr64
    15f8:    55                       push   %rbp
    15f9:    48 89 e5                 mov    %rsp,%rbp
    15fc:    48 83 ec 10              sub    $0x10,%rsp
    1600:    48 89 7d f8              mov    %rdi,-0x8(%rbp)
    1604:    48 8b 45 f8              mov    -0x8(%rbp),%rax
    1608:    48 8b 50 10              mov    0x10(%rax),%rdx
    160c:    48 8b 45 f8              mov    -0x8(%rbp),%rax
    1610:    48 8b 00                 mov    (%rax),%rax
    1613:    48 29 c2                 sub    %rax,%rdx
    1616:    48 89 d0                 mov    %rdx,%rax
    1619:    48 c1 f8 02              sar    $0x2,%rax
    161d:    48 89 c2                 mov    %rax,%rdx
    1620:    48 8b 45 f8              mov    -0x8(%rbp),%rax
    1624:    48 8b 08                 mov    (%rax),%rcx
    1627:    48 8b 45 f8              mov    -0x8(%rbp),%rax
    162b:    48 89 ce                 mov    %rcx,%rsi
    162e:    48 89 c7                 mov    %rax,%rdi
    1631:    e8 50 01 00 00           callq  1786 <_ZNSt12_Vector_baseIiSaIiEE13_M_deallocateEPim>
    1636:    48 8b 45 f8              mov    -0x8(%rbp),%rax
    163a:    48 89 c7                 mov    %rax,%rdi
    163d:    e8 06 ff ff ff           callq  1548 <_ZNSt12_Vector_baseIiSaIiEE12_Vector_implD1Ev>
    1642:    90                       nop
    1643:    c9                       leaveq
    1644:    c3                       retq   
    1645:    90                       nop

0000000000001646 <_ZNSt6vectorIiSaIiEED1Ev>:
    1646:    f3 0f 1e fa              endbr64
    164a:    55                       push   %rbp
    164b:    48 89 e5                 mov    %rsp,%rbp
    164e:    48 83 ec 10              sub    $0x10,%rsp
    1652:    48 89 7d f8              mov    %rdi,-0x8(%rbp)
    1656:    48 8b 45 f8              mov    -0x8(%rbp),%rax
    165a:    48 89 c7                 mov    %rax,%rdi
    165d:    e8 5e 01 00 00           callq  17c0 <_ZNSt12_Vector_baseIiSaIiEE19_M_get_Tp_allocatorEv>
    1662:    48 89 c2                 mov    %rax,%rdx
    1665:    48 8b 45 f8              mov    -0x8(%rbp),%rax
    1669:    48 8b 48 08              mov    0x8(%rax),%rcx
    166d:    48 8b 45 f8              mov    -0x8(%rbp),%rax
    1671:    48 8b 00                 mov    (%rax),%rax
    1674:    48 89 ce                 mov    %rcx,%rsi
    1677:    48 89 c7                 mov    %rax,%rdi
    167a:    e8 53 01 00 00           callq  17d2 <_ZSt8_DestroyIPiiEvT_S1_RSaIT0_E>
    167f:    48 8b 45 f8              mov    -0x8(%rbp),%rax
    1683:    48 89 c7                 mov    %rax,%rdi
    1686:    e8 69 ff ff ff           callq  15f4 <_ZNSt12_Vector_baseIiSaIiEED1Ev>
    168b:    90                       nop
    168c:    c9                       leaveq
    168d:    c3                       retq   

000000000000168e <_ZNSt6vectorIiSaIiEE9push_backEOi>:
    168e:    f3 0f 1e fa              endbr64
    1692:    55                       push   %rbp
    1693:    48 89 e5                 mov    %rsp,%rbp
    1696:    48 83 ec 10              sub    $0x10,%rsp
    169a:    48 89 7d f8              mov    %rdi,-0x8(%rbp)
    169e:    48 89 75 f0              mov    %rsi,-0x10(%rbp)
    16a2:    48 8b 45 f0              mov    -0x10(%rbp),%rax
    16a6:    48 89 c7                 mov    %rax,%rdi
    16a9:    e8 52 01 00 00           callq  1800 <_ZSt4moveIRiEONSt16remove_referenceIT_E4typeEOS2_>
    16ae:    48 89 c2                 mov    %rax,%rdx
    16b1:    48 8b 45 f8              mov    -0x8(%rbp),%rax
    16b5:    48 89 d6                 mov    %rdx,%rsi
    16b8:    48 89 c7                 mov    %rax,%rdi
    16bb:    e8 52 01 00 00           callq  1812 <_ZNSt6vectorIiSaIiEE12emplace_backIJiEEEvDpOT_>
    16c0:    90                       nop
    16c1:    c9                       leaveq
    16c2:    c3                       retq   
    16c3:    90                       nop

00000000000016c4 <_ZNSt6vectorIiSaIiEE2atEm>:
    16c4:    f3 0f 1e fa              endbr64
    16c8:    55                       push   %rbp
    16c9:    48 89 e5                 mov    %rsp,%rbp
    16cc:    48 83 ec 10              sub    $0x10,%rsp
    16d0:    48 89 7d f8              mov    %rdi,-0x8(%rbp)
    16d4:    48 89 75 f0              mov    %rsi,-0x10(%rbp)
    16d8:    48 8b 55 f0              mov    -0x10(%rbp),%rdx
    16dc:    48 8b 45 f8              mov    -0x8(%rbp),%rax
    16e0:    48 89 d6                 mov    %rdx,%rsi
    16e3:    48 89 c7                 mov    %rax,%rdi
    16e6:    e8 c5 01 00 00           callq  18b0 <_ZNKSt6vectorIiSaIiEE14_M_range_checkEm>
    16eb:    48 8b 55 f0              mov    -0x10(%rbp),%rdx
    16ef:    48 8b 45 f8              mov    -0x8(%rbp),%rax
    16f3:    48 89 d6                 mov    %rdx,%rsi
    16f6:    48 89 c7                 mov    %rax,%rdi
    16f9:    e8 02 00 00 00           callq  1700 <_ZNSt6vectorIiSaIiEEixEm>
    16fe:    c9                       leaveq
    16ff:    c3                       retq   

0000000000001700 <_ZNSt6vectorIiSaIiEEixEm>:
    1700:    f3 0f 1e fa              endbr64
    1704:    55                       push   %rbp
    1705:    48 89 e5                 mov    %rsp,%rbp
    1708:    48 89 7d f8              mov    %rdi,-0x8(%rbp)
    170c:    48 89 75 f0              mov    %rsi,-0x10(%rbp)
    1710:    48 8b 45 f8              mov    -0x8(%rbp),%rax
    1714:    48 8b 00                 mov    (%rax),%rax
    1717:    48 8b 55 f0              mov    -0x10(%rbp),%rdx
    171b:    48 c1 e2 02              shl    $0x2,%rdx
    171f:    48 01 d0                 add    %rdx,%rax
    1722:    5d                       pop    %rbp
    1723:    c3                       retq   

0000000000001724 <_ZNSaIiEC1Ev>:
    1724:    f3 0f 1e fa              endbr64
    1728:    55                       push   %rbp
    1729:    48 89 e5                 mov    %rsp,%rbp
    172c:    48 83 ec 10              sub    $0x10,%rsp
    1730:    48 89 7d f8              mov    %rdi,-0x8(%rbp)
    1734:    48 8b 45 f8              mov    -0x8(%rbp),%rax
    1738:    48 89 c7                 mov    %rax,%rdi
    173b:    e8 c6 01 00 00           callq  1906 <_ZN9__gnu_cxx13new_allocatorIiEC1Ev>
    1740:    90                       nop
    1741:    c9                       leaveq
    1742:    c3                       retq   
    1743:    90                       nop

0000000000001744 <_ZNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataC1Ev>:
    1744:    f3 0f 1e fa              endbr64
    1748:    55                       push   %rbp
    1749:    48 89 e5                 mov    %rsp,%rbp
    174c:    48 89 7d f8              mov    %rdi,-0x8(%rbp)
    1750:    48 8b 45 f8              mov    -0x8(%rbp),%rax
    1754:    48 c7 00 00 00 00 00     movq   $0x0,(%rax)
    175b:    48 8b 45 f8              mov    -0x8(%rbp),%rax
    175f:    48 c7 40 08 00 00 00     movq   $0x0,0x8(%rax)
    1766:    00
    1767:    48 8b 45 f8              mov    -0x8(%rbp),%rax
    176b:    48 c7 40 10 00 00 00     movq   $0x0,0x10(%rax)
    1772:    00
    1773:    90                       nop
    1774:    5d                       pop    %rbp
    1775:    c3                       retq   

0000000000001776 <_ZN9__gnu_cxx13new_allocatorIiED1Ev>:
    1776:    f3 0f 1e fa              endbr64
    177a:    55                       push   %rbp
    177b:    48 89 e5                 mov    %rsp,%rbp
    177e:    48 89 7d f8              mov    %rdi,-0x8(%rbp)
    1782:    90                       nop
    1783:    5d                       pop    %rbp
    1784:    c3                       retq   
    1785:    90                       nop

0000000000001786 <_ZNSt12_Vector_baseIiSaIiEE13_M_deallocateEPim>:
    1786:    f3 0f 1e fa              endbr64
    178a:    55                       push   %rbp
    178b:    48 89 e5                 mov    %rsp,%rbp
    178e:    48 83 ec 20              sub    $0x20,%rsp
    1792:    48 89 7d f8              mov    %rdi,-0x8(%rbp)
    1796:    48 89 75 f0              mov    %rsi,-0x10(%rbp)
    179a:    48 89 55 e8              mov    %rdx,-0x18(%rbp)
    179e:    48 83 7d f0 00           cmpq   $0x0,-0x10(%rbp)
    17a3:    74 17                    je     17bc <_ZNSt12_Vector_baseIiSaIiEE13_M_deallocateEPim+0x36>
    17a5:    48 8b 45 f8              mov    -0x8(%rbp),%rax
    17a9:    48 8b 55 e8              mov    -0x18(%rbp),%rdx
    17ad:    48 8b 4d f0              mov    -0x10(%rbp),%rcx
    17b1:    48 89 ce                 mov    %rcx,%rsi
    17b4:    48 89 c7                 mov    %rax,%rdi
    17b7:    e8 59 01 00 00           callq  1915 <_ZNSt16allocator_traitsISaIiEE10deallocateERS0_Pim>
    17bc:    90                       nop
    17bd:    c9                       leaveq
    17be:    c3                       retq   
    17bf:    90                       nop

00000000000017c0 <_ZNSt12_Vector_baseIiSaIiEE19_M_get_Tp_allocatorEv>:
    17c0:    f3 0f 1e fa              endbr64
    17c4:    55                       push   %rbp
    17c5:    48 89 e5                 mov    %rsp,%rbp
    17c8:    48 89 7d f8              mov    %rdi,-0x8(%rbp)
    17cc:    48 8b 45 f8              mov    -0x8(%rbp),%rax
    17d0:    5d                       pop    %rbp
    17d1:    c3                       retq   

#endif

你可能感兴趣的:(Assembly,汇编)