// File: killwing[P]underscore/test.cpp
// Function: test_pluck()
void
test_pluck() {
    Tracer::suit_ = "pluck";

    {
        Tracer t("C-style array");
        Data data[10];
        auto result = _::pluck(data, &Data::i_);
        for (auto& i : result) {
            assert(i == 0);
        }
    }

    {
        Tracer t("array");
        array<Data, 10> data;
        auto result = _::pluck(data, &Data::i_);
        for (auto& i : result) {
            assert(i == 0);
        }
    }

    {
        Tracer t("string", false);
    }

    {
        Tracer t("vector");
        vector<Data> data(10);
        auto result = _::pluck(data, &Data::i_);
        for (auto& i : result) {
            assert(i == 0);
        }
    }

    {
        Tracer t("deque");
        deque<Data> data(10);
        auto result = _::pluck<deque>(data, &Data::i_);
        for (auto& i : result) {
            assert(i == 0);
        }
    }

    {
        Tracer t("list");
        list<Data> data(10);
        auto result = _::pluck<list>(data, &Data::i_);
        for (auto& i : result) {
            assert(i == 0);
        }
    }

    {
        Tracer t("forward_list");
        forward_list<Data> data(10);
        auto result = _::pluck<forward_list>(data, &Data::i_);
        for (auto& i : result) {
            assert(i == 0);
        }
    }

    {
        Tracer t("set");
        set<Data> data { Data(), Data(), Data(), Data() };
        auto result = _::pluck<set>(data, &Data::i_);
        for (auto& i : result) {
            assert(i == 0);
        }
    }

    {
        Tracer t("multiset");
        multiset<Data> data { Data(1), Data(1), Data(1), Data(1) };
        auto result = _::pluck<multiset>(data, &Data::i_);
        for (auto& i : result) {
            assert(i == 1);
        }
    }

    {
        Tracer t("unordered_set");
        unordered_set<Data> data { Data(2), Data(2), Data(2), Data(2) };
        auto result = _::pluck<unordered_set>(data, &Data::i_);
        for (auto& i : result) {
            assert(i == 2);
        }
    }

    {
        Tracer t("unordered_multiset");
        unordered_multiset<Data> data { Data(3), Data(3), Data(3), Data(3) };
        auto result = _::pluck<unordered_multiset>(data, &Data::i_);
        for (auto& i : result) {
            assert(i == 3);
        }
    }

    {
        Tracer t("map", false);
    }

    {
        Tracer t("multimap", false);
    }

    {
        Tracer t("unordered_map", false);
    }

    {
        Tracer t("unordered_multimap", false);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb00, %rsp            # imm = 0xB00
leaq 0x953d6(%rip), %rdi     # 0xc0278
leaq 0x654c9(%rip), %rsi     # 0x90372
callq 0x3380
leaq -0x49(%rbp), %rdi
movq %rdi, -0xa30(%rbp)
callq 0x3450
movq -0xa30(%rbp), %rdx
leaq 0x651a5(%rip), %rsi     # 0x90071
leaq -0x48(%rbp), %rdi
callq 0x52000
jmp 0x2aed7
leaq -0x28(%rbp), %rdi
leaq -0x48(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x2aeeb
leaq -0x48(%rbp), %rdi
callq 0x34a8
leaq -0x49(%rbp), %rdi
callq 0x32d0
leaq -0x90(%rbp), %rax
movq %rax, %rcx
addq $0x28, %rcx
movq %rcx, -0xa40(%rbp)
movq %rax, -0xa38(%rbp)
movq -0xa38(%rbp), %rdi
movq %rdi, -0xa48(%rbp)
xorl %esi, %esi
callq 0x54540
jmp 0x2af30
movq -0xa40(%rbp), %rcx
movq -0xa48(%rbp), %rax
addq $0x4, %rax
cmpq %rcx, %rax
movq %rax, -0xa38(%rbp)
jne 0x2af19
xorl %eax, %eax
movl %eax, %edx
leaq -0xa8(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x56430
jmp 0x2af67
leaq -0xa8(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0xb0(%rbp), %rdi
callq 0x547a0
movq %rax, -0xb8(%rbp)
movq -0xb0(%rbp), %rdi
callq 0x547d0
movq %rax, -0xc0(%rbp)
leaq -0xb8(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x54800
testb $0x1, %al
jne 0x2afb7
jmp 0x2b055
leaq -0xb8(%rbp), %rdi
callq 0x53cf0
movq %rax, -0xc8(%rbp)
movq -0xc8(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x2afd8
jmp 0x2b042
leaq 0x65377(%rip), %rdi     # 0x90356
leaq 0x650ae(%rip), %rsi     # 0x90094
movl $0x65b, %edx            # imm = 0x65B
leaq 0x65386(%rip), %rcx     # 0x90378
callq 0x3170
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2b01a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x34a8
leaq -0x49(%rbp), %rdi
callq 0x32d0
jmp 0x2c74a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x52180
jmp 0x2c74a
jmp 0x2b044
leaq -0xb8(%rbp), %rdi
callq 0x54840
jmp 0x2af9b
leaq -0xa8(%rbp), %rdi
callq 0x52430
leaq -0x28(%rbp), %rdi
callq 0x52180
leaq -0x111(%rbp), %rdi
movq %rdi, -0xa50(%rbp)
callq 0x3450
movq -0xa50(%rbp), %rdx
leaq 0x64fee(%rip), %rsi     # 0x90079
leaq -0x110(%rbp), %rdi
callq 0x52000
jmp 0x2b099
leaq -0xf0(%rbp), %rdi
leaq -0x110(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x2b0b3
leaq -0x110(%rbp), %rdi
callq 0x34a8
leaq -0x111(%rbp), %rdi
callq 0x32d0
leaq -0x13c(%rbp), %rdi
callq 0x54860
jmp 0x2b0d9
xorl %eax, %eax
movl %eax, %edx
leaq -0x158(%rbp), %rdi
leaq -0x13c(%rbp), %rsi
callq 0x564f0
jmp 0x2b0f2
leaq -0x158(%rbp), %rax
movq %rax, -0x160(%rbp)
movq -0x160(%rbp), %rdi
callq 0x547a0
movq %rax, -0x168(%rbp)
movq -0x160(%rbp), %rdi
callq 0x547d0
movq %rax, -0x170(%rbp)
leaq -0x168(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x54800
testb $0x1, %al
jne 0x2b142
jmp 0x2b1e9
leaq -0x168(%rbp), %rdi
callq 0x53cf0
movq %rax, -0x178(%rbp)
movq -0x178(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x2b163
jmp 0x2b1d6
leaq 0x651ec(%rip), %rdi     # 0x90356
leaq 0x64f23(%rip), %rsi     # 0x90094
movl $0x664, %edx            # imm = 0x664
leaq 0x651fb(%rip), %rcx     # 0x90378
callq 0x3170
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2b1a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x34a8
leaq -0x111(%rbp), %rdi
callq 0x32d0
jmp 0x2c74a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x52180
jmp 0x2c74a
jmp 0x2b1d8
leaq -0x168(%rbp), %rdi
callq 0x54840
jmp 0x2b126
leaq -0x158(%rbp), %rdi
callq 0x52430
leaq -0xf0(%rbp), %rdi
callq 0x52180
leaq -0x1c1(%rbp), %rdi
movq %rdi, -0xa58(%rbp)
callq 0x3450
movq -0xa58(%rbp), %rdx
leaq 0x64e9b(%rip), %rsi     # 0x900bd
leaq -0x1c0(%rbp), %rdi
callq 0x52000
jmp 0x2b230
leaq -0x1a0(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
xorl %edx, %edx
callq 0x520b0
jmp 0x2b247
leaq -0x1c0(%rbp), %rdi
callq 0x34a8
leaq -0x1c1(%rbp), %rdi
callq 0x32d0
leaq -0x1a0(%rbp), %rdi
callq 0x52180
leaq -0x211(%rbp), %rdi
movq %rdi, -0xa60(%rbp)
callq 0x3450
movq -0xa60(%rbp), %rdx
leaq 0x64e52(%rip), %rsi     # 0x900de
leaq -0x210(%rbp), %rdi
callq 0x52000
jmp 0x2b29a
leaq -0x1f0(%rbp), %rdi
leaq -0x210(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x2b2b4
leaq -0x210(%rbp), %rdi
callq 0x34a8
leaq -0x211(%rbp), %rdi
callq 0x32d0
leaq -0x231(%rbp), %rdi
movq %rdi, -0xa68(%rbp)
callq 0x54ae0
movq -0xa68(%rbp), %rdx
leaq -0x230(%rbp), %rdi
movl $0xa, %esi
callq 0x54b00
jmp 0x2b2f9
leaq -0x231(%rbp), %rdi
callq 0x54b70
xorl %eax, %eax
movl %eax, %edx
leaq -0x250(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0x565b0
jmp 0x2b31e
leaq -0x250(%rbp), %rax
movq %rax, -0x258(%rbp)
movq -0x258(%rbp), %rdi
callq 0x547a0
movq %rax, -0x260(%rbp)
movq -0x258(%rbp), %rdi
callq 0x547d0
movq %rax, -0x268(%rbp)
leaq -0x260(%rbp), %rdi
leaq -0x268(%rbp), %rsi
callq 0x54800
testb $0x1, %al
jne 0x2b36e
jmp 0x2b46c
leaq -0x260(%rbp), %rdi
callq 0x53cf0
movq %rax, -0x270(%rbp)
movq -0x270(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x2b392
jmp 0x2b459
leaq 0x64fbd(%rip), %rdi     # 0x90356
leaq 0x64cf4(%rip), %rsi     # 0x90094
movl $0x671, %edx            # imm = 0x671
leaq 0x64fcc(%rip), %rcx     # 0x90378
callq 0x3170
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2b3d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x1c0(%rbp), %rdi
callq 0x34a8
leaq -0x1c1(%rbp), %rdi
callq 0x32d0
jmp 0x2c74a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2b40e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x210(%rbp), %rdi
callq 0x34a8
leaq -0x211(%rbp), %rdi
callq 0x32d0
jmp 0x2c74a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x231(%rbp), %rdi
callq 0x54b70
jmp 0x2b5d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x230(%rbp), %rdi
callq 0x54dc0
jmp 0x2b5d6
jmp 0x2b45b
leaq -0x260(%rbp), %rdi
callq 0x54840
jmp 0x2b352
leaq -0x250(%rbp), %rdi
callq 0x52430
leaq -0x230(%rbp), %rdi
callq 0x54dc0
leaq -0x1f0(%rbp), %rdi
callq 0x52180
leaq -0x2b9(%rbp), %rdi
movq %rdi, -0xa70(%rbp)
callq 0x3450
movq -0xa70(%rbp), %rdx
leaq 0x64c34(%rip), %rsi     # 0x900e5
leaq -0x2b8(%rbp), %rdi
callq 0x52000
jmp 0x2b4bf
leaq -0x298(%rbp), %rdi
leaq -0x2b8(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x2b4d9
leaq -0x2b8(%rbp), %rdi
callq 0x34a8
leaq -0x2b9(%rbp), %rdi
callq 0x32d0
leaq -0x311(%rbp), %rdi
movq %rdi, -0xa78(%rbp)
callq 0x54ae0
movq -0xa78(%rbp), %rdx
leaq -0x310(%rbp), %rdi
movl $0xa, %esi
callq 0x54e20
jmp 0x2b51e
leaq -0x311(%rbp), %rdi
callq 0x54b70
xorl %eax, %eax
movl %eax, %edx
leaq -0x368(%rbp), %rdi
leaq -0x310(%rbp), %rsi
callq 0x56680
jmp 0x2b543
leaq -0x368(%rbp), %rax
movq %rax, -0x370(%rbp)
movq -0x370(%rbp), %rsi
leaq -0x390(%rbp), %rdi
callq 0x55120
movq -0x370(%rbp), %rsi
leaq -0x3b0(%rbp), %rdi
callq 0x55150
leaq -0x390(%rbp), %rdi
leaq -0x3b0(%rbp), %rsi
callq 0x55180
testb $0x1, %al
jne 0x2b593
jmp 0x2b66b
leaq -0x390(%rbp), %rdi
callq 0x53d10
movq %rax, -0x3b8(%rbp)
movq -0x3b8(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x2b5b7
jmp 0x2b658
leaq 0x64d98(%rip), %rdi     # 0x90356
leaq 0x64acf(%rip), %rsi     # 0x90094
movl $0x67a, %edx            # imm = 0x67A
leaq 0x64da7(%rip), %rcx     # 0x90378
callq 0x3170
leaq -0x1f0(%rbp), %rdi
callq 0x52180
jmp 0x2c74a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2b60d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x2b8(%rbp), %rdi
callq 0x34a8
leaq -0x2b9(%rbp), %rdi
callq 0x32d0
jmp 0x2c74a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x311(%rbp), %rdi
callq 0x54b70
jmp 0x2b7d5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x310(%rbp), %rdi
callq 0x55200
jmp 0x2b7d5
jmp 0x2b65a
leaq -0x390(%rbp), %rdi
callq 0x551b0
jmp 0x2b577
leaq -0x368(%rbp), %rdi
callq 0x525a0
leaq -0x310(%rbp), %rdi
callq 0x55200
leaq -0x298(%rbp), %rdi
callq 0x52180
leaq -0x401(%rbp), %rdi
movq %rdi, -0xa80(%rbp)
callq 0x3450
movq -0xa80(%rbp), %rdx
leaq 0x64a43(%rip), %rsi     # 0x900f3
leaq -0x400(%rbp), %rdi
callq 0x52000
jmp 0x2b6be
leaq -0x3e0(%rbp), %rdi
leaq -0x400(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x2b6d8
leaq -0x400(%rbp), %rdi
callq 0x34a8
leaq -0x401(%rbp), %rdi
callq 0x32d0
leaq -0x421(%rbp), %rdi
movq %rdi, -0xa88(%rbp)
callq 0x54ae0
movq -0xa88(%rbp), %rdx
leaq -0x420(%rbp), %rdi
movl $0xa, %esi
callq 0x55270
jmp 0x2b71d
leaq -0x421(%rbp), %rdi
callq 0x54b70
xorl %eax, %eax
movl %eax, %edx
leaq -0x440(%rbp), %rdi
leaq -0x420(%rbp), %rsi
callq 0x56770
jmp 0x2b742
leaq -0x440(%rbp), %rax
movq %rax, -0x448(%rbp)
movq -0x448(%rbp), %rdi
callq 0x55530
movq %rax, -0x450(%rbp)
movq -0x448(%rbp), %rdi
callq 0x55560
movq %rax, -0x458(%rbp)
leaq -0x450(%rbp), %rdi
leaq -0x458(%rbp), %rsi
callq 0x55590
testb $0x1, %al
jne 0x2b792
jmp 0x2b86a
leaq -0x450(%rbp), %rdi
callq 0x53d30
movq %rax, -0x460(%rbp)
movq -0x460(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x2b7b6
jmp 0x2b857
leaq 0x64b99(%rip), %rdi     # 0x90356
leaq 0x648d0(%rip), %rsi     # 0x90094
movl $0x683, %edx            # imm = 0x683
leaq 0x64ba8(%rip), %rcx     # 0x90378
callq 0x3170
leaq -0x298(%rbp), %rdi
callq 0x52180
jmp 0x2c74a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2b80c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x400(%rbp), %rdi
callq 0x34a8
leaq -0x401(%rbp), %rdi
callq 0x32d0
jmp 0x2c74a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x421(%rbp), %rdi
callq 0x54b70
jmp 0x2b9d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x420(%rbp), %rdi
callq 0x555e0
jmp 0x2b9d4
jmp 0x2b859
leaq -0x450(%rbp), %rdi
callq 0x555c0
jmp 0x2b776
leaq -0x440(%rbp), %rdi
callq 0x527f0
leaq -0x420(%rbp), %rdi
callq 0x555e0
leaq -0x3e0(%rbp), %rdi
callq 0x52180
leaq -0x4a9(%rbp), %rdi
movq %rdi, -0xa90(%rbp)
callq 0x3450
movq -0xa90(%rbp), %rdx
leaq 0x6483c(%rip), %rsi     # 0x900eb
leaq -0x4a8(%rbp), %rdi
callq 0x52000
jmp 0x2b8bd
leaq -0x488(%rbp), %rdi
leaq -0x4a8(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x2b8d7
leaq -0x4a8(%rbp), %rdi
callq 0x34a8
leaq -0x4a9(%rbp), %rdi
callq 0x32d0
leaq -0x4b9(%rbp), %rdi
movq %rdi, -0xa98(%rbp)
callq 0x54ae0
movq -0xa98(%rbp), %rdx
leaq -0x4b8(%rbp), %rdi
movl $0xa, %esi
callq 0x55600
jmp 0x2b91c
leaq -0x4b9(%rbp), %rdi
callq 0x54b70
xorl %eax, %eax
movl %eax, %edx
leaq -0x4c8(%rbp), %rdi
leaq -0x4b8(%rbp), %rsi
callq 0x56840
jmp 0x2b941
leaq -0x4c8(%rbp), %rax
movq %rax, -0x4d0(%rbp)
movq -0x4d0(%rbp), %rdi
callq 0x558c0
movq %rax, -0x4d8(%rbp)
movq -0x4d0(%rbp), %rdi
callq 0x558f0
movq %rax, -0x4e0(%rbp)
leaq -0x4d8(%rbp), %rdi
leaq -0x4e0(%rbp), %rsi
callq 0x55920
testb $0x1, %al
jne 0x2b991
jmp 0x2ba69
leaq -0x4d8(%rbp), %rdi
callq 0x53d50
movq %rax, -0x4e8(%rbp)
movq -0x4e8(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x2b9b5
jmp 0x2ba56
leaq 0x6499a(%rip), %rdi     # 0x90356
leaq 0x646d1(%rip), %rsi     # 0x90094
movl $0x68c, %edx            # imm = 0x68C
leaq 0x649a9(%rip), %rcx     # 0x90378
callq 0x3170
leaq -0x3e0(%rbp), %rdi
callq 0x52180
jmp 0x2c74a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2ba0b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x4a8(%rbp), %rdi
callq 0x34a8
leaq -0x4a9(%rbp), %rdi
callq 0x32d0
jmp 0x2c74a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x4b9(%rbp), %rdi
callq 0x54b70
jmp 0x2bc3c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x4b8(%rbp), %rdi
callq 0x55970
jmp 0x2bc3c
jmp 0x2ba58
leaq -0x4d8(%rbp), %rdi
callq 0x55950
jmp 0x2b975
leaq -0x4c8(%rbp), %rdi
callq 0x529e0
leaq -0x4b8(%rbp), %rdi
callq 0x55970
leaq -0x488(%rbp), %rdi
callq 0x52180
leaq -0x531(%rbp), %rdi
movq %rdi, -0xaa0(%rbp)
callq 0x3450
movq -0xaa0(%rbp), %rdx
leaq 0x64665(%rip), %rsi     # 0x90113
leaq -0x530(%rbp), %rdi
callq 0x52000
jmp 0x2babc
leaq -0x510(%rbp), %rdi
leaq -0x530(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x2bad6
leaq -0x530(%rbp), %rdi
callq 0x34a8
leaq -0x531(%rbp), %rdi
callq 0x32d0
leaq -0x588(%rbp), %rdi
xorl %esi, %esi
callq 0x54540
jmp 0x2bafe
leaq -0x584(%rbp), %rdi
xorl %esi, %esi
callq 0x54540
jmp 0x2bb0e
leaq -0x580(%rbp), %rdi
xorl %esi, %esi
callq 0x54540
jmp 0x2bb1e
leaq -0x57c(%rbp), %rdi
xorl %esi, %esi
callq 0x54540
jmp 0x2bb2e
leaq -0x588(%rbp), %rax
movq %rax, -0x578(%rbp)
movq $0x4, -0x570(%rbp)
leaq -0x58a(%rbp), %rdi
movq %rdi, -0xaa8(%rbp)
callq 0x54ae0
movq -0xaa8(%rbp), %r8
movq -0x578(%rbp), %rsi
movq -0x570(%rbp), %rdx
leaq -0x568(%rbp), %rdi
leaq -0x589(%rbp), %rcx
callq 0x55990
jmp 0x2bb84
leaq -0x58a(%rbp), %rdi
callq 0x54b70
xorl %eax, %eax
movl %eax, %edx
leaq -0x5c0(%rbp), %rdi
leaq -0x568(%rbp), %rsi
callq 0x56910
jmp 0x2bba9
leaq -0x5c0(%rbp), %rax
movq %rax, -0x5c8(%rbp)
movq -0x5c8(%rbp), %rdi
callq 0x55bc0
movq %rax, -0x5d0(%rbp)
movq -0x5c8(%rbp), %rdi
callq 0x55bf0
movq %rax, -0x5d8(%rbp)
leaq -0x5d0(%rbp), %rdi
leaq -0x5d8(%rbp), %rsi
callq 0x55c20
testb $0x1, %al
jne 0x2bbf9
jmp 0x2bce2
leaq -0x5d0(%rbp), %rdi
callq 0x53d70
movq %rax, -0x5e0(%rbp)
movq -0x5e0(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x2bc1d
jmp 0x2bccf
leaq 0x64732(%rip), %rdi     # 0x90356
leaq 0x64469(%rip), %rsi     # 0x90094
movl $0x695, %edx            # imm = 0x695
leaq 0x64741(%rip), %rcx     # 0x90378
callq 0x3170
leaq -0x488(%rbp), %rdi
callq 0x52180
jmp 0x2c74a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2bc73
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x530(%rbp), %rdi
callq 0x34a8
leaq -0x531(%rbp), %rdi
callq 0x32d0
jmp 0x2c74a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2bec1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x58a(%rbp), %rdi
callq 0x54b70
jmp 0x2bec1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x568(%rbp), %rdi
callq 0x55c80
jmp 0x2bec1
jmp 0x2bcd1
leaq -0x5d0(%rbp), %rdi
callq 0x55c50
jmp 0x2bbdd
leaq -0x5c0(%rbp), %rdi
callq 0x52af0
leaq -0x568(%rbp), %rdi
callq 0x55c80
leaq -0x510(%rbp), %rdi
callq 0x52180
leaq -0x629(%rbp), %rdi
movq %rdi, -0xab0(%rbp)
callq 0x3450
movq -0xab0(%rbp), %rdx
leaq 0x643fa(%rip), %rsi     # 0x90121
leaq -0x628(%rbp), %rdi
callq 0x52000
jmp 0x2bd35
leaq -0x608(%rbp), %rdi
leaq -0x628(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x2bd4f
leaq -0x628(%rbp), %rdi
callq 0x34a8
leaq -0x629(%rbp), %rdi
callq 0x32d0
leaq -0x680(%rbp), %rdi
movl $0x1, %esi
callq 0x54540
jmp 0x2bd7a
leaq -0x67c(%rbp), %rdi
movl $0x1, %esi
callq 0x54540
jmp 0x2bd8d
leaq -0x678(%rbp), %rdi
movl $0x1, %esi
callq 0x54540
jmp 0x2bda0
leaq -0x674(%rbp), %rdi
movl $0x1, %esi
callq 0x54540
jmp 0x2bdb3
leaq -0x680(%rbp), %rax
movq %rax, -0x670(%rbp)
movq $0x4, -0x668(%rbp)
leaq -0x682(%rbp), %rdi
movq %rdi, -0xab8(%rbp)
callq 0x54ae0
movq -0xab8(%rbp), %r8
movq -0x670(%rbp), %rsi
movq -0x668(%rbp), %rdx
leaq -0x660(%rbp), %rdi
leaq -0x681(%rbp), %rcx
callq 0x55ca0
jmp 0x2be09
leaq -0x682(%rbp), %rdi
callq 0x54b70
xorl %eax, %eax
movl %eax, %edx
leaq -0x6b8(%rbp), %rdi
leaq -0x660(%rbp), %rsi
callq 0x569e0
jmp 0x2be2e
leaq -0x6b8(%rbp), %rax
movq %rax, -0x6c0(%rbp)
movq -0x6c0(%rbp), %rdi
callq 0x55ed0
movq %rax, -0x6c8(%rbp)
movq -0x6c0(%rbp), %rdi
callq 0x55f00
movq %rax, -0x6d0(%rbp)
leaq -0x6c8(%rbp), %rdi
leaq -0x6d0(%rbp), %rsi
callq 0x55c20
testb $0x1, %al
jne 0x2be7e
jmp 0x2bf67
leaq -0x6c8(%rbp), %rdi
callq 0x53d70
movq %rax, -0x6d8(%rbp)
movq -0x6d8(%rbp), %rax
cmpl $0x1, (%rax)
jne 0x2bea2
jmp 0x2bf54
leaq 0x644b4(%rip), %rdi     # 0x9035d
leaq 0x641e4(%rip), %rsi     # 0x90094
movl $0x69e, %edx            # imm = 0x69E
leaq 0x644bc(%rip), %rcx     # 0x90378
callq 0x3170
leaq -0x510(%rbp), %rdi
callq 0x52180
jmp 0x2c74a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2bef8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x628(%rbp), %rdi
callq 0x34a8
leaq -0x629(%rbp), %rdi
callq 0x32d0
jmp 0x2c74a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2c157
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x682(%rbp), %rdi
callq 0x54b70
jmp 0x2c157
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x660(%rbp), %rdi
callq 0x55f30
jmp 0x2c157
jmp 0x2bf56
leaq -0x6c8(%rbp), %rdi
callq 0x55c50
jmp 0x2be62
leaq -0x6b8(%rbp), %rdi
callq 0x52be0
leaq -0x660(%rbp), %rdi
callq 0x55f30
leaq -0x608(%rbp), %rdi
callq 0x52180
leaq -0x721(%rbp), %rdi
movq %rdi, -0xac0(%rbp)
callq 0x3450
movq -0xac0(%rbp), %rdx
leaq 0x6415d(%rip), %rsi     # 0x90109
leaq -0x720(%rbp), %rdi
callq 0x52000
jmp 0x2bfba
leaq -0x700(%rbp), %rdi
leaq -0x720(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x2bfd4
leaq -0x720(%rbp), %rdi
callq 0x34a8
leaq -0x721(%rbp), %rdi
callq 0x32d0
leaq -0x780(%rbp), %rdi
movl $0x2, %esi
callq 0x54540
jmp 0x2bfff
leaq -0x77c(%rbp), %rdi
movl $0x2, %esi
callq 0x54540
jmp 0x2c012
leaq -0x778(%rbp), %rdi
movl $0x2, %esi
callq 0x54540
jmp 0x2c025
leaq -0x774(%rbp), %rdi
movl $0x2, %esi
callq 0x54540
jmp 0x2c038
leaq -0x780(%rbp), %rax
movq %rax, -0x770(%rbp)
movq $0x4, -0x768(%rbp)
leaq -0x783(%rbp), %rdi
movq %rdi, -0xac8(%rbp)
callq 0x54ae0
movq -0xac8(%rbp), %rcx
movq -0x770(%rbp), %rsi
movq -0x768(%rbp), %rdx
movq %rsp, %rax
movq %rcx, (%rax)
xorl %eax, %eax
movl %eax, %ecx
leaq -0x760(%rbp), %rdi
leaq -0x781(%rbp), %r8
leaq -0x782(%rbp), %r9
callq 0x55f50
jmp 0x2c09f
leaq -0x783(%rbp), %rdi
callq 0x54b70
xorl %eax, %eax
movl %eax, %edx
leaq -0x7c0(%rbp), %rdi
leaq -0x760(%rbp), %rsi
callq 0x56ab0
jmp 0x2c0c4
leaq -0x7c0(%rbp), %rax
movq %rax, -0x7c8(%rbp)
movq -0x7c8(%rbp), %rdi
callq 0x56110
movq %rax, -0x7d0(%rbp)
movq -0x7c8(%rbp), %rdi
callq 0x56140
movq %rax, -0x7d8(%rbp)
leaq -0x7d0(%rbp), %rdi
leaq -0x7d8(%rbp), %rsi
callq 0x56170
testb $0x1, %al
jne 0x2c114
jmp 0x2c1fd
leaq -0x7d0(%rbp), %rdi
callq 0x53d90
movq %rax, -0x7e0(%rbp)
movq -0x7e0(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x2c138
jmp 0x2c1ea
leaq 0x64225(%rip), %rdi     # 0x90364
leaq 0x63f4e(%rip), %rsi     # 0x90094
movl $0x6a7, %edx            # imm = 0x6A7
leaq 0x64226(%rip), %rcx     # 0x90378
callq 0x3170
leaq -0x608(%rbp), %rdi
callq 0x52180
jmp 0x2c74a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2c18e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x720(%rbp), %rdi
callq 0x34a8
leaq -0x721(%rbp), %rdi
callq 0x32d0
jmp 0x2c74a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2c3ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x783(%rbp), %rdi
callq 0x54b70
jmp 0x2c3ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x760(%rbp), %rdi
callq 0x561d0
jmp 0x2c3ed
jmp 0x2c1ec
leaq -0x7d0(%rbp), %rdi
callq 0x561a0
jmp 0x2c0f8
leaq -0x7c0(%rbp), %rdi
callq 0x52c60
leaq -0x760(%rbp), %rdi
callq 0x561d0
leaq -0x700(%rbp), %rdi
callq 0x52180
leaq -0x829(%rbp), %rdi
movq %rdi, -0xad0(%rbp)
callq 0x3450
movq -0xad0(%rbp), %rdx
leaq 0x63ed5(%rip), %rsi     # 0x90117
leaq -0x828(%rbp), %rdi
callq 0x52000
jmp 0x2c250
leaq -0x808(%rbp), %rdi
leaq -0x828(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x2c26a
leaq -0x828(%rbp), %rdi
callq 0x34a8
leaq -0x829(%rbp), %rdi
callq 0x32d0
leaq -0x888(%rbp), %rdi
movl $0x3, %esi
callq 0x54540
jmp 0x2c295
leaq -0x884(%rbp), %rdi
movl $0x3, %esi
callq 0x54540
jmp 0x2c2a8
leaq -0x880(%rbp), %rdi
movl $0x3, %esi
callq 0x54540
jmp 0x2c2bb
leaq -0x87c(%rbp), %rdi
movl $0x3, %esi
callq 0x54540
jmp 0x2c2ce
leaq -0x888(%rbp), %rax
movq %rax, -0x878(%rbp)
movq $0x4, -0x870(%rbp)
leaq -0x88b(%rbp), %rdi
movq %rdi, -0xad8(%rbp)
callq 0x54ae0
movq -0xad8(%rbp), %rcx
movq -0x878(%rbp), %rsi
movq -0x870(%rbp), %rdx
movq %rsp, %rax
movq %rcx, (%rax)
xorl %eax, %eax
movl %eax, %ecx
leaq -0x868(%rbp), %rdi
leaq -0x889(%rbp), %r8
leaq -0x88a(%rbp), %r9
callq 0x561f0
jmp 0x2c335
leaq -0x88b(%rbp), %rdi
callq 0x54b70
xorl %eax, %eax
movl %eax, %edx
leaq -0x8c8(%rbp), %rdi
leaq -0x868(%rbp), %rsi
callq 0x56b80
jmp 0x2c35a
leaq -0x8c8(%rbp), %rax
movq %rax, -0x8d0(%rbp)
movq -0x8d0(%rbp), %rdi
callq 0x563b0
movq %rax, -0x8d8(%rbp)
movq -0x8d0(%rbp), %rdi
callq 0x563e0
movq %rax, -0x8e0(%rbp)
leaq -0x8d8(%rbp), %rdi
leaq -0x8e0(%rbp), %rsi
callq 0x56170
testb $0x1, %al
jne 0x2c3aa
jmp 0x2c493
leaq -0x8d8(%rbp), %rdi
callq 0x53d90
movq %rax, -0x8e8(%rbp)
movq -0x8e8(%rbp), %rax
cmpl $0x3, (%rax)
jne 0x2c3ce
jmp 0x2c480
leaq 0x63f96(%rip), %rdi     # 0x9036b
leaq 0x63cb8(%rip), %rsi     # 0x90094
movl $0x6b0, %edx            # imm = 0x6B0
leaq 0x63f90(%rip), %rcx     # 0x90378
callq 0x3170
leaq -0x700(%rbp), %rdi
callq 0x52180
jmp 0x2c74a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2c424
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x828(%rbp), %rdi
callq 0x34a8
leaq -0x829(%rbp), %rdi
callq 0x32d0
jmp 0x2c74a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2c668
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x88b(%rbp), %rdi
callq 0x54b70
jmp 0x2c668
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x868(%rbp), %rdi
callq 0x56410
jmp 0x2c668
jmp 0x2c482
leaq -0x8d8(%rbp), %rdi
callq 0x561a0
jmp 0x2c38e
leaq -0x8c8(%rbp), %rdi
callq 0x52ce0
leaq -0x868(%rbp), %rdi
callq 0x56410
leaq -0x808(%rbp), %rdi
callq 0x52180
leaq -0x931(%rbp), %rdi
movq %rdi, -0xae0(%rbp)
callq 0x3450
movq -0xae0(%rbp), %rdx
leaq 0x63c6e(%rip), %rsi     # 0x90146
leaq -0x930(%rbp), %rdi
callq 0x52000
jmp 0x2c4e6
leaq -0x910(%rbp), %rdi
leaq -0x930(%rbp), %rsi
xorl %edx, %edx
callq 0x520b0
jmp 0x2c4fd
leaq -0x930(%rbp), %rdi
callq 0x34a8
leaq -0x931(%rbp), %rdi
callq 0x32d0
leaq -0x910(%rbp), %rdi
callq 0x52180
leaq -0x981(%rbp), %rdi
movq %rdi, -0xae8(%rbp)
callq 0x3450
movq -0xae8(%rbp), %rdx
leaq 0x63c12(%rip), %rsi     # 0x90154
leaq -0x980(%rbp), %rdi
callq 0x52000
jmp 0x2c550
leaq -0x960(%rbp), %rdi
leaq -0x980(%rbp), %rsi
xorl %edx, %edx
callq 0x520b0
jmp 0x2c567
leaq -0x980(%rbp), %rdi
callq 0x34a8
leaq -0x981(%rbp), %rdi
callq 0x32d0
leaq -0x960(%rbp), %rdi
callq 0x52180
leaq -0x9d1(%rbp), %rdi
movq %rdi, -0xaf0(%rbp)
callq 0x3450
movq -0xaf0(%rbp), %rdx
leaq 0x63b90(%rip), %rsi     # 0x9013c
leaq -0x9d0(%rbp), %rdi
callq 0x52000
jmp 0x2c5ba
leaq -0x9b0(%rbp), %rdi
leaq -0x9d0(%rbp), %rsi
xorl %edx, %edx
callq 0x520b0
jmp 0x2c5d1
leaq -0x9d0(%rbp), %rdi
callq 0x34a8
leaq -0x9d1(%rbp), %rdi
callq 0x32d0
leaq -0x9b0(%rbp), %rdi
callq 0x52180
leaq -0xa21(%rbp), %rdi
movq %rdi, -0xaf8(%rbp)
callq 0x3450
movq -0xaf8(%rbp), %rdx
leaq 0x63b34(%rip), %rsi     # 0x9014a
leaq -0xa20(%rbp), %rdi
callq 0x52000
jmp 0x2c624
leaq -0xa00(%rbp), %rdi
leaq -0xa20(%rbp), %rsi
xorl %edx, %edx
callq 0x520b0
jmp 0x2c63b
leaq -0xa20(%rbp), %rdi
callq 0x34a8
leaq -0xa21(%rbp), %rdi
callq 0x32d0
leaq -0xa00(%rbp), %rdi
callq 0x52180
addq $0xb00, %rsp            # imm = 0xB00
popq %rbp
retq
leaq -0x808(%rbp), %rdi
callq 0x52180
jmp 0x2c74a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2c69f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x930(%rbp), %rdi
callq 0x34a8
leaq -0x931(%rbp), %rdi
callq 0x32d0
jmp 0x2c74a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2c6d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x980(%rbp), %rdi
callq 0x34a8
leaq -0x981(%rbp), %rdi
callq 0x32d0
jmp 0x2c74a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2c70a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x9d0(%rbp), %rdi
callq 0x34a8
leaq -0x9d1(%rbp), %rdi
callq 0x32d0
jmp 0x2c74a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2c73e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xa20(%rbp), %rdi
callq 0x34a8
leaq -0xa21(%rbp), %rdi
callq 0x32d0
movq -0x58(%rbp), %rdi
callq 0x3440
nopw %cs:(%rax,%rax)