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

    {
        Tracer t("C-style array", false);
    }

    {
        Tracer t("array");
        array<Data, 6> data   = { Data(4), Data(1), Data(3), Data(2), Data(0), Data(5) };
        array<Data, 6> expect = { Data(0), Data(1), Data(2), Data(3), Data(4), Data(5) };
        auto result = _::sortBy(data, [](const Data& v) {
            return v.i_;
        });
        assert(result == expect);
    }

    {
        Tracer t("string");
        string data("hello world!");
        string expect(" !dehllloorw");
        auto result = _::sortBy(data, [](char v) {
            return v;
        });
        assert(result == expect);
    }

    {
        Tracer t("vector");
        vector<int> data   = { 9, 1, 0, 3, 2, 5, 6, 4, 8, 7 };
        vector<int> expect = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
        auto result = _::sortBy(data, [](int v) {
            return v;
        });
        assert(result == expect);
    }

    {
        Tracer t("deque");
        deque<int> data   = { 9, 1, 0, 3, 2, 5, 6, 4, 8, 7 };
        deque<int> expect = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
        auto result = _::sortBy(data, [](int v) {
            return v;
        });
        assert(result == expect);
    }

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

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

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

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

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

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

    {
        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 $0x8a0, %rsp            # imm = 0x8A0
leaq 0x8f246(%rip), %rdi     # 0xc0278
leaq 0x5f414(%rip), %rsi     # 0x9044d
callq 0x3380
leaq -0x49(%rbp), %rdi
movq %rdi, -0x7d8(%rbp)
callq 0x3450
movq -0x7d8(%rbp), %rdx
leaq 0x5f015(%rip), %rsi     # 0x90071
leaq -0x48(%rbp), %rdi
callq 0x52000
jmp 0x31067
leaq -0x28(%rbp), %rdi
leaq -0x48(%rbp), %rsi
xorl %edx, %edx
callq 0x520b0
jmp 0x31078
leaq -0x48(%rbp), %rdi
callq 0x34a8
leaq -0x49(%rbp), %rdi
callq 0x32d0
leaq -0x28(%rbp), %rdi
callq 0x52180
leaq -0xa9(%rbp), %rdi
movq %rdi, -0x7e0(%rbp)
callq 0x3450
movq -0x7e0(%rbp), %rdx
leaq 0x5efc5(%rip), %rsi     # 0x90079
leaq -0xa8(%rbp), %rdi
callq 0x52000
jmp 0x310c2
leaq -0x88(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x310dc
leaq -0xa8(%rbp), %rdi
callq 0x34a8
leaq -0xa9(%rbp), %rdi
callq 0x32d0
leaq -0xc4(%rbp), %rdi
movq %rdi, -0x7e8(%rbp)
movl $0x4, %esi
callq 0x54540
jmp 0x3110e
movq -0x7e8(%rbp), %rdi
addq $0x4, %rdi
movl $0x1, %esi
callq 0x54540
jmp 0x31125
movq -0x7e8(%rbp), %rdi
addq $0x8, %rdi
movl $0x3, %esi
callq 0x54540
jmp 0x3113c
movq -0x7e8(%rbp), %rdi
addq $0xc, %rdi
movl $0x2, %esi
callq 0x54540
jmp 0x31153
movq -0x7e8(%rbp), %rdi
addq $0x10, %rdi
xorl %esi, %esi
callq 0x54540
jmp 0x31167
movq -0x7e8(%rbp), %rdi
addq $0x14, %rdi
movl $0x5, %esi
callq 0x54540
jmp 0x3117e
leaq -0xdc(%rbp), %rdi
movq %rdi, -0x7f0(%rbp)
xorl %esi, %esi
callq 0x54540
jmp 0x31195
movq -0x7f0(%rbp), %rdi
addq $0x4, %rdi
movl $0x1, %esi
callq 0x54540
jmp 0x311ac
movq -0x7f0(%rbp), %rdi
addq $0x8, %rdi
movl $0x2, %esi
callq 0x54540
jmp 0x311c3
movq -0x7f0(%rbp), %rdi
addq $0xc, %rdi
movl $0x3, %esi
callq 0x54540
jmp 0x311da
movq -0x7f0(%rbp), %rdi
addq $0x10, %rdi
movl $0x4, %esi
callq 0x54540
jmp 0x311f1
movq -0x7f0(%rbp), %rdi
addq $0x14, %rdi
movl $0x5, %esi
callq 0x54540
jmp 0x31208
leaq -0xf4(%rbp), %rdi
leaq -0xc4(%rbp), %rsi
callq 0x320e0
jmp 0x3121d
leaq -0xf4(%rbp), %rdi
leaq -0xdc(%rbp), %rsi
callq 0x572a0
movb %al, -0x7f1(%rbp)
jmp 0x31238
movb -0x7f1(%rbp), %al
testb $0x1, %al
jne 0x31244
jmp 0x31249
jmp 0x312ed
leaq 0x5eea8(%rip), %rdi     # 0x900f8
leaq 0x5ee3d(%rip), %rsi     # 0x90094
movl $0x7c4, %edx            # imm = 0x7C4
leaq 0x5f1f1(%rip), %rcx     # 0x90454
callq 0x3170
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x3128b
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 0x320d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x312bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x34a8
leaq -0xa9(%rbp), %rdi
callq 0x32d0
jmp 0x320d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x52180
jmp 0x320d7
leaq -0x88(%rbp), %rdi
callq 0x52180
leaq -0x141(%rbp), %rdi
movq %rdi, -0x800(%rbp)
callq 0x3450
movq -0x800(%rbp), %rdx
leaq 0x5eda3(%rip), %rsi     # 0x900bd
leaq -0x140(%rbp), %rdi
callq 0x52000
jmp 0x31328
leaq -0x120(%rbp), %rdi
leaq -0x140(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x31342
leaq -0x140(%rbp), %rdi
callq 0x34a8
leaq -0x141(%rbp), %rdi
callq 0x32d0
leaq -0x169(%rbp), %rdi
movq %rdi, -0x808(%rbp)
callq 0x3450
movq -0x808(%rbp), %rdx
leaq 0x5ed49(%rip), %rsi     # 0x900c4
leaq -0x168(%rbp), %rdi
callq 0x52000
jmp 0x31389
leaq -0x169(%rbp), %rdi
callq 0x32d0
leaq -0x191(%rbp), %rdi
movq %rdi, -0x810(%rbp)
callq 0x3450
movq -0x810(%rbp), %rdx
leaq 0x5f0b1(%rip), %rsi     # 0x90467
leaq -0x190(%rbp), %rdi
callq 0x52000
jmp 0x313c4
leaq -0x191(%rbp), %rdi
callq 0x32d0
leaq -0x1b8(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0x32150
jmp 0x313e5
leaq -0x1b8(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x52260
testb $0x1, %al
jne 0x313fe
jmp 0x31403
jmp 0x314b0
leaq 0x5ecee(%rip), %rdi     # 0x900f8
leaq 0x5ec83(%rip), %rsi     # 0x90094
movl $0x7ce, %edx            # imm = 0x7CE
leaq 0x5f037(%rip), %rcx     # 0x90454
callq 0x3170
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x31448
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x140(%rbp), %rdi
callq 0x34a8
leaq -0x141(%rbp), %rdi
callq 0x32d0
jmp 0x320d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x169(%rbp), %rdi
callq 0x32d0
jmp 0x316bd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x191(%rbp), %rdi
callq 0x32d0
jmp 0x316b1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x190(%rbp), %rdi
callq 0x34a8
jmp 0x316b1
leaq -0x1b8(%rbp), %rdi
callq 0x34a8
leaq -0x190(%rbp), %rdi
callq 0x34a8
leaq -0x168(%rbp), %rdi
callq 0x34a8
leaq -0x120(%rbp), %rdi
callq 0x52180
leaq -0x209(%rbp), %rdi
movq %rdi, -0x818(%rbp)
callq 0x3450
movq -0x818(%rbp), %rdx
leaq 0x5ebdd(%rip), %rsi     # 0x900de
leaq -0x208(%rbp), %rdi
callq 0x52000
jmp 0x3150f
leaq -0x1e8(%rbp), %rdi
leaq -0x208(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x31529
leaq -0x208(%rbp), %rdi
callq 0x34a8
leaq -0x209(%rbp), %rdi
callq 0x32d0
movabsq $0x700000008, %rax      # imm = 0x700000008
movq %rax, -0x240(%rbp)
movups 0x5dd53(%rip), %xmm0    # 0x8f2ac
movaps %xmm0, -0x250(%rbp)
movups 0x5dd35(%rip), %xmm0    # 0x8f29c
movaps %xmm0, -0x260(%rbp)
leaq -0x260(%rbp), %rax
movq %rax, -0x238(%rbp)
movq $0xa, -0x230(%rbp)
leaq -0x261(%rbp), %rdi
movq %rdi, -0x820(%rbp)
callq 0x522f0
movq -0x820(%rbp), %rcx
movq -0x238(%rbp), %rsi
movq -0x230(%rbp), %rdx
leaq -0x228(%rbp), %rdi
callq 0x52310
jmp 0x315bd
leaq -0x261(%rbp), %rdi
callq 0x52390
movabsq $0x900000008, %rax      # imm = 0x900000008
movq %rax, -0x2a0(%rbp)
movups 0x5dcf3(%rip), %xmm0    # 0x8f2d4
movaps %xmm0, -0x2b0(%rbp)
movups 0x5dcd5(%rip), %xmm0    # 0x8f2c4
movaps %xmm0, -0x2c0(%rbp)
leaq -0x2c0(%rbp), %rax
movq %rax, -0x290(%rbp)
movq $0xa, -0x288(%rbp)
leaq -0x2c1(%rbp), %rdi
movq %rdi, -0x828(%rbp)
callq 0x522f0
movq -0x828(%rbp), %rcx
movq -0x290(%rbp), %rsi
movq -0x288(%rbp), %rdx
leaq -0x280(%rbp), %rdi
callq 0x52310
jmp 0x31645
leaq -0x2c1(%rbp), %rdi
callq 0x52390
leaq -0x2e0(%rbp), %rdi
leaq -0x228(%rbp), %rsi
callq 0x321f0
jmp 0x31666
leaq -0x2e0(%rbp), %rdi
leaq -0x280(%rbp), %rsi
callq 0x523b0
movb %al, -0x829(%rbp)
jmp 0x31681
movb -0x829(%rbp), %al
testb $0x1, %al
jne 0x3168d
jmp 0x31692
jmp 0x3176d
leaq 0x5ea5f(%rip), %rdi     # 0x900f8
leaq 0x5e9f4(%rip), %rsi     # 0x90094
movl $0x7d8, %edx            # imm = 0x7D8
leaq 0x5eda8(%rip), %rcx     # 0x90454
callq 0x3170
leaq -0x168(%rbp), %rdi
callq 0x34a8
leaq -0x120(%rbp), %rdi
callq 0x52180
jmp 0x320d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x316f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x208(%rbp), %rdi
callq 0x34a8
leaq -0x209(%rbp), %rdi
callq 0x32d0
jmp 0x320d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x261(%rbp), %rdi
callq 0x52390
jmp 0x31986
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x2c1(%rbp), %rdi
callq 0x52390
jmp 0x3197a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x3196e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x2e0(%rbp), %rdi
callq 0x52430
jmp 0x3196e
leaq -0x2e0(%rbp), %rdi
callq 0x52430
leaq -0x280(%rbp), %rdi
callq 0x52430
leaq -0x228(%rbp), %rdi
callq 0x52430
leaq -0x1e8(%rbp), %rdi
callq 0x52180
leaq -0x331(%rbp), %rdi
movq %rdi, -0x838(%rbp)
callq 0x3450
movq -0x838(%rbp), %rdx
leaq 0x5e927(%rip), %rsi     # 0x900e5
leaq -0x330(%rbp), %rdi
callq 0x52000
jmp 0x317cc
leaq -0x310(%rbp), %rdi
leaq -0x330(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x317e6
leaq -0x330(%rbp), %rdi
callq 0x34a8
leaq -0x331(%rbp), %rdi
callq 0x32d0
movabsq $0x700000008, %rax      # imm = 0x700000008
movq %rax, -0x3a0(%rbp)
movups 0x5dae6(%rip), %xmm0    # 0x8f2fc
movaps %xmm0, -0x3b0(%rbp)
movups 0x5dac8(%rip), %xmm0    # 0x8f2ec
movaps %xmm0, -0x3c0(%rbp)
leaq -0x3c0(%rbp), %rax
movq %rax, -0x398(%rbp)
movq $0xa, -0x390(%rbp)
leaq -0x3c1(%rbp), %rdi
movq %rdi, -0x840(%rbp)
callq 0x522f0
movq -0x840(%rbp), %rcx
movq -0x398(%rbp), %rsi
movq -0x390(%rbp), %rdx
leaq -0x388(%rbp), %rdi
callq 0x52490
jmp 0x3187a
leaq -0x3c1(%rbp), %rdi
callq 0x52390
movabsq $0x900000008, %rax      # imm = 0x900000008
movq %rax, -0x430(%rbp)
movups 0x5da86(%rip), %xmm0    # 0x8f324
movaps %xmm0, -0x440(%rbp)
movups 0x5da68(%rip), %xmm0    # 0x8f314
movaps %xmm0, -0x450(%rbp)
leaq -0x450(%rbp), %rax
movq %rax, -0x428(%rbp)
movq $0xa, -0x420(%rbp)
leaq -0x451(%rbp), %rdi
movq %rdi, -0x848(%rbp)
callq 0x522f0
movq -0x848(%rbp), %rcx
movq -0x428(%rbp), %rsi
movq -0x420(%rbp), %rdx
leaq -0x418(%rbp), %rdi
callq 0x52490
jmp 0x31902
leaq -0x451(%rbp), %rdi
callq 0x52390
leaq -0x4a8(%rbp), %rdi
leaq -0x388(%rbp), %rsi
callq 0x32290
jmp 0x31923
leaq -0x4a8(%rbp), %rdi
leaq -0x418(%rbp), %rsi
callq 0x52510
movb %al, -0x849(%rbp)
jmp 0x3193e
movb -0x849(%rbp), %al
testb $0x1, %al
jne 0x3194a
jmp 0x3194f
jmp 0x31a36
leaq 0x5e7a2(%rip), %rdi     # 0x900f8
leaq 0x5e737(%rip), %rsi     # 0x90094
movl $0x7e2, %edx            # imm = 0x7E2
leaq 0x5eaeb(%rip), %rcx     # 0x90454
callq 0x3170
leaq -0x280(%rbp), %rdi
callq 0x52430
leaq -0x228(%rbp), %rdi
callq 0x52430
leaq -0x1e8(%rbp), %rdi
callq 0x52180
jmp 0x320d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x319bd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x330(%rbp), %rdi
callq 0x34a8
leaq -0x331(%rbp), %rdi
callq 0x32d0
jmp 0x320d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x3c1(%rbp), %rdi
callq 0x52390
jmp 0x31eab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x451(%rbp), %rdi
callq 0x52390
jmp 0x31e9f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x31e93
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x4a8(%rbp), %rdi
callq 0x525a0
jmp 0x31e93
leaq -0x4a8(%rbp), %rdi
callq 0x525a0
leaq -0x418(%rbp), %rdi
callq 0x525a0
leaq -0x388(%rbp), %rdi
callq 0x525a0
leaq -0x310(%rbp), %rdi
callq 0x52180
leaq -0x4f9(%rbp), %rdi
movq %rdi, -0x858(%rbp)
callq 0x3450
movq -0x858(%rbp), %rdx
leaq 0x5e66c(%rip), %rsi     # 0x900f3
leaq -0x4f8(%rbp), %rdi
callq 0x52000
jmp 0x31a95
leaq -0x4d8(%rbp), %rdi
leaq -0x4f8(%rbp), %rsi
xorl %edx, %edx
callq 0x520b0
jmp 0x31aac
leaq -0x4f8(%rbp), %rdi
callq 0x34a8
leaq -0x4f9(%rbp), %rdi
callq 0x32d0
leaq -0x4d8(%rbp), %rdi
callq 0x52180
leaq -0x549(%rbp), %rdi
movq %rdi, -0x860(%rbp)
callq 0x3450
movq -0x860(%rbp), %rdx
leaq 0x5e5fa(%rip), %rsi     # 0x900eb
leaq -0x548(%rbp), %rdi
callq 0x52000
jmp 0x31aff
leaq -0x528(%rbp), %rdi
leaq -0x548(%rbp), %rsi
xorl %edx, %edx
callq 0x520b0
jmp 0x31b16
leaq -0x548(%rbp), %rdi
callq 0x34a8
leaq -0x549(%rbp), %rdi
callq 0x32d0
leaq -0x528(%rbp), %rdi
callq 0x52180
leaq -0x599(%rbp), %rdi
movq %rdi, -0x868(%rbp)
callq 0x3450
movq -0x868(%rbp), %rdx
leaq 0x5e5b8(%rip), %rsi     # 0x90113
leaq -0x598(%rbp), %rdi
callq 0x52000
jmp 0x31b69
leaq -0x578(%rbp), %rdi
leaq -0x598(%rbp), %rsi
xorl %edx, %edx
callq 0x520b0
jmp 0x31b80
leaq -0x598(%rbp), %rdi
callq 0x34a8
leaq -0x599(%rbp), %rdi
callq 0x32d0
leaq -0x578(%rbp), %rdi
callq 0x52180
leaq -0x5e9(%rbp), %rdi
movq %rdi, -0x870(%rbp)
callq 0x3450
movq -0x870(%rbp), %rdx
leaq 0x5e55c(%rip), %rsi     # 0x90121
leaq -0x5e8(%rbp), %rdi
callq 0x52000
jmp 0x31bd3
leaq -0x5c8(%rbp), %rdi
leaq -0x5e8(%rbp), %rsi
xorl %edx, %edx
callq 0x520b0
jmp 0x31bea
leaq -0x5e8(%rbp), %rdi
callq 0x34a8
leaq -0x5e9(%rbp), %rdi
callq 0x32d0
leaq -0x5c8(%rbp), %rdi
callq 0x52180
leaq -0x639(%rbp), %rdi
movq %rdi, -0x878(%rbp)
callq 0x3450
movq -0x878(%rbp), %rdx
leaq 0x5e4da(%rip), %rsi     # 0x90109
leaq -0x638(%rbp), %rdi
callq 0x52000
jmp 0x31c3d
leaq -0x618(%rbp), %rdi
leaq -0x638(%rbp), %rsi
xorl %edx, %edx
callq 0x520b0
jmp 0x31c54
leaq -0x638(%rbp), %rdi
callq 0x34a8
leaq -0x639(%rbp), %rdi
callq 0x32d0
leaq -0x618(%rbp), %rdi
callq 0x52180
leaq -0x689(%rbp), %rdi
movq %rdi, -0x880(%rbp)
callq 0x3450
movq -0x880(%rbp), %rdx
leaq 0x5e47e(%rip), %rsi     # 0x90117
leaq -0x688(%rbp), %rdi
callq 0x52000
jmp 0x31ca7
leaq -0x668(%rbp), %rdi
leaq -0x688(%rbp), %rsi
xorl %edx, %edx
callq 0x520b0
jmp 0x31cbe
leaq -0x688(%rbp), %rdi
callq 0x34a8
leaq -0x689(%rbp), %rdi
callq 0x32d0
leaq -0x668(%rbp), %rdi
callq 0x52180
leaq -0x6d9(%rbp), %rdi
movq %rdi, -0x888(%rbp)
callq 0x3450
movq -0x888(%rbp), %rdx
leaq 0x5e443(%rip), %rsi     # 0x90146
leaq -0x6d8(%rbp), %rdi
callq 0x52000
jmp 0x31d11
leaq -0x6b8(%rbp), %rdi
leaq -0x6d8(%rbp), %rsi
xorl %edx, %edx
callq 0x520b0
jmp 0x31d28
leaq -0x6d8(%rbp), %rdi
callq 0x34a8
leaq -0x6d9(%rbp), %rdi
callq 0x32d0
leaq -0x6b8(%rbp), %rdi
callq 0x52180
leaq -0x729(%rbp), %rdi
movq %rdi, -0x890(%rbp)
callq 0x3450
movq -0x890(%rbp), %rdx
leaq 0x5e3e7(%rip), %rsi     # 0x90154
leaq -0x728(%rbp), %rdi
callq 0x52000
jmp 0x31d7b
leaq -0x708(%rbp), %rdi
leaq -0x728(%rbp), %rsi
xorl %edx, %edx
callq 0x520b0
jmp 0x31d92
leaq -0x728(%rbp), %rdi
callq 0x34a8
leaq -0x729(%rbp), %rdi
callq 0x32d0
leaq -0x708(%rbp), %rdi
callq 0x52180
leaq -0x779(%rbp), %rdi
movq %rdi, -0x898(%rbp)
callq 0x3450
movq -0x898(%rbp), %rdx
leaq 0x5e365(%rip), %rsi     # 0x9013c
leaq -0x778(%rbp), %rdi
callq 0x52000
jmp 0x31de5
leaq -0x758(%rbp), %rdi
leaq -0x778(%rbp), %rsi
xorl %edx, %edx
callq 0x520b0
jmp 0x31dfc
leaq -0x778(%rbp), %rdi
callq 0x34a8
leaq -0x779(%rbp), %rdi
callq 0x32d0
leaq -0x758(%rbp), %rdi
callq 0x52180
leaq -0x7c9(%rbp), %rdi
movq %rdi, -0x8a0(%rbp)
callq 0x3450
movq -0x8a0(%rbp), %rdx
leaq 0x5e309(%rip), %rsi     # 0x9014a
leaq -0x7c8(%rbp), %rdi
callq 0x52000
jmp 0x31e4f
leaq -0x7a8(%rbp), %rdi
leaq -0x7c8(%rbp), %rsi
xorl %edx, %edx
callq 0x520b0
jmp 0x31e66
leaq -0x7c8(%rbp), %rdi
callq 0x34a8
leaq -0x7c9(%rbp), %rdi
callq 0x32d0
leaq -0x7a8(%rbp), %rdi
callq 0x52180
addq $0x8a0, %rsp            # imm = 0x8A0
popq %rbp
retq
leaq -0x418(%rbp), %rdi
callq 0x525a0
leaq -0x388(%rbp), %rdi
callq 0x525a0
leaq -0x310(%rbp), %rdi
callq 0x52180
jmp 0x320d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x31ee2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x4f8(%rbp), %rdi
callq 0x34a8
leaq -0x4f9(%rbp), %rdi
callq 0x32d0
jmp 0x320d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x31f19
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x548(%rbp), %rdi
callq 0x34a8
leaq -0x549(%rbp), %rdi
callq 0x32d0
jmp 0x320d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x31f50
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x598(%rbp), %rdi
callq 0x34a8
leaq -0x599(%rbp), %rdi
callq 0x32d0
jmp 0x320d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x31f87
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x5e8(%rbp), %rdi
callq 0x34a8
leaq -0x5e9(%rbp), %rdi
callq 0x32d0
jmp 0x320d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x31fbe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x638(%rbp), %rdi
callq 0x34a8
leaq -0x639(%rbp), %rdi
callq 0x32d0
jmp 0x320d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x31ff5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x688(%rbp), %rdi
callq 0x34a8
leaq -0x689(%rbp), %rdi
callq 0x32d0
jmp 0x320d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x3202c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x6d8(%rbp), %rdi
callq 0x34a8
leaq -0x6d9(%rbp), %rdi
callq 0x32d0
jmp 0x320d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x32063
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x728(%rbp), %rdi
callq 0x34a8
leaq -0x729(%rbp), %rdi
callq 0x32d0
jmp 0x320d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x32097
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x778(%rbp), %rdi
callq 0x34a8
leaq -0x779(%rbp), %rdi
callq 0x32d0
jmp 0x320d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x320cb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x7c8(%rbp), %rdi
callq 0x34a8
leaq -0x7c9(%rbp), %rdi
callq 0x32d0
movq -0x58(%rbp), %rdi
callq 0x3440