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

    {
        Tracer t("C-style array");
        Data data[] { Data(1), Data(2), Data(3), Data(4) };
        Data* result = _::min(data, [](const Data& d) {
            return d.i_;
        });
        assert(result->get() == 1);
    }

    {
        Tracer t("array");
        array<int, 10> data = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
        auto result = _::min(data);
        assert(*result == 0);
    }

    {
        Tracer t("string");
        string data("hello world!");
        auto result = _::min(data);
        assert(*result == ' ');
    }

    {
        Tracer t("vector");
        vector<int> data { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
        auto result = _::min(data);
        assert(*result == 0);
    }

    {
        Tracer t("deque");
        deque<int> data { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
        auto result = _::min(data);
        assert(*result == 0);
    }

    {
        Tracer t("list");
        list<int> data { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
        auto result = _::min(data);
        assert(*result == 0);
    }

    {
        Tracer t("forward_list");
        forward_list<int> data { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
        auto result = _::min(data);
        assert(*result == 0);
    }

    {
        Tracer t("set");
        set<int> data { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
        auto result = _::min(data);
        assert(*result == 0);
    }

    {
        Tracer t("multiset");
        multiset<int> data { 0, 0, 2, 2, 4, 4, 6, 6, 8, 8 };
        auto result = _::min(data);
        assert(*result == 0);
    }

    {
        Tracer t("unordered_set");
        unordered_set<int> data { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
        auto result = _::min(data);
        assert(*result == 0);
    }

    {
        Tracer t("unordered_multiset");
        unordered_multiset<int> data { 0, 0, 2, 2, 4, 4, 6, 6, 8, 8 };
        auto result = _::min(data);
        assert(*result == 0);
    }

    {
        Tracer t("map");
        map<int, string> data { {1, "a"}, {2, "b"}, {3, "c"}, {4, "d"}, {10, "x"}, {20, "y"}, {30, "z"} };
        auto result = _::min(data, [](const pair<const int, string>& v) {
            return v.first;
        });
        assert(result->second == "a");
    }

    {
        Tracer t("multimap");
        multimap<int, string> data { {2, "a"}, {2, "b"}, {4, "c"}, {4, "d"}, {10, "x"}, {10, "y"} };
        auto result = _::min(data, [](const pair<const int, string>& v) {
            return v.second;
        });
        assert(result->first == 2);
    }

    {
        Tracer t("unordered_map");
        unordered_map<int, string> data { {1, "a"}, {2, "b"}, {3, "c"}, {4, "d"}, {10, "x"}, {20, "y"}, {30, "z"} };
        auto result = _::min(data, [](const pair<const int, string>& v) {
            return v.first;
        });
        assert(result->second == "a");
    }

    {
        Tracer t("unordered_multimap");
        unordered_multimap<int, string> data { {2, "a"}, {2, "b"}, {4, "c"}, {4, "d"}, {10, "x"}, {10, "y"} };
        auto result = _::min(data, [](const pair<const int, string>& v) {
            return v.second;
        });
        assert(result->first == 2);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1190, %rsp           # imm = 0x1190
leaq 0x916a6(%rip), %rdi     # 0xc0278
leaq 0x61808(%rip), %rsi     # 0x903e1
callq 0x3380
leaq -0x49(%rbp), %rdi
movq %rdi, -0xf28(%rbp)
callq 0x3450
movq -0xf28(%rbp), %rdx
leaq 0x61475(%rip), %rsi     # 0x90071
leaq -0x48(%rbp), %rdi
callq 0x52000
jmp 0x2ec07
leaq -0x28(%rbp), %rdi
leaq -0x48(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x2ec1b
leaq -0x48(%rbp), %rdi
callq 0x34a8
leaq -0x49(%rbp), %rdi
callq 0x32d0
leaq -0x70(%rbp), %rdi
movl $0x1, %esi
callq 0x54540
jmp 0x2ec3d
leaq -0x6c(%rbp), %rdi
movl $0x2, %esi
callq 0x54540
jmp 0x2ec4d
leaq -0x68(%rbp), %rdi
movl $0x3, %esi
callq 0x54540
jmp 0x2ec5d
leaq -0x64(%rbp), %rdi
movl $0x4, %esi
callq 0x54540
jmp 0x2ec6d
leaq -0x70(%rbp), %rdi
callq 0x30ea0
movq %rax, -0xf30(%rbp)
jmp 0x2ec7f
movq -0xf30(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rdi
callq 0x54790
movl %eax, -0xf34(%rbp)
jmp 0x2ec9b
movl -0xf34(%rbp), %eax
cmpl $0x1, %eax
jne 0x2eca8
jmp 0x2ed12
leaq 0x61736(%rip), %rdi     # 0x903e5
leaq 0x613de(%rip), %rsi     # 0x90094
movl $0x747, %edx            # imm = 0x747
leaq 0x61736(%rip), %rcx     # 0x903f8
callq 0x3170
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2ecea
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 0x30e8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x52180
jmp 0x30e8c
leaq -0x28(%rbp), %rdi
callq 0x52180
leaq -0xc9(%rbp), %rdi
movq %rdi, -0xf40(%rbp)
callq 0x3450
movq -0xf40(%rbp), %rdx
leaq 0x6133d(%rip), %rsi     # 0x90079
leaq -0xc8(%rbp), %rdi
callq 0x52000
jmp 0x2ed4a
leaq -0xa8(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x2ed64
leaq -0xc8(%rbp), %rdi
callq 0x34a8
leaq -0xc9(%rbp), %rdi
callq 0x32d0
movabsq $0x900000008, %rax      # imm = 0x900000008
movq %rax, -0xe0(%rbp)
movups 0x603b0(%rip), %xmm0    # 0x8f144
movaps %xmm0, -0xf0(%rbp)
movups 0x60392(%rip), %xmm0    # 0x8f134
movaps %xmm0, -0x100(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x56f90
movq %rax, -0xf48(%rbp)
jmp 0x2edbe
movq -0xf48(%rbp), %rax
movq %rax, -0x108(%rbp)
movq -0x108(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x2edda
jmp 0x2ee4d
leaq 0x61627(%rip), %rdi     # 0x90408
leaq 0x612ac(%rip), %rsi     # 0x90094
movl $0x74e, %edx            # imm = 0x74E
leaq 0x61604(%rip), %rcx     # 0x903f8
callq 0x3170
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2ee1f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x34a8
leaq -0xc9(%rbp), %rdi
callq 0x32d0
jmp 0x30e8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x52180
jmp 0x30e8c
leaq -0xa8(%rbp), %rdi
callq 0x52180
leaq -0x151(%rbp), %rdi
movq %rdi, -0xf50(%rbp)
callq 0x3450
movq -0xf50(%rbp), %rdx
leaq 0x61243(%rip), %rsi     # 0x900bd
leaq -0x150(%rbp), %rdi
callq 0x52000
jmp 0x2ee88
leaq -0x130(%rbp), %rdi
leaq -0x150(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x2eea2
leaq -0x150(%rbp), %rdi
callq 0x34a8
leaq -0x151(%rbp), %rdi
callq 0x32d0
leaq -0x179(%rbp), %rdi
movq %rdi, -0xf58(%rbp)
callq 0x3450
movq -0xf58(%rbp), %rdx
leaq 0x611e9(%rip), %rsi     # 0x900c4
leaq -0x178(%rbp), %rdi
callq 0x52000
jmp 0x2eee9
leaq -0x179(%rbp), %rdi
callq 0x32d0
leaq -0x178(%rbp), %rdi
callq 0x56fd0
movq %rax, -0xf60(%rbp)
jmp 0x2ef0a
movq -0xf60(%rbp), %rax
movq %rax, -0x188(%rbp)
leaq -0x188(%rbp), %rdi
callq 0x53cd0
movsbl (%rax), %eax
cmpl $0x20, %eax
jne 0x2ef31
jmp 0x2efc1
leaq 0x614dd(%rip), %rdi     # 0x90415
leaq 0x61155(%rip), %rsi     # 0x90094
movl $0x755, %edx            # imm = 0x755
leaq 0x614ad(%rip), %rcx     # 0x903f8
callq 0x3170
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2ef76
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x34a8
leaq -0x151(%rbp), %rdi
callq 0x32d0
jmp 0x30e8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x179(%rbp), %rdi
callq 0x32d0
jmp 0x2f11a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x178(%rbp), %rdi
callq 0x34a8
jmp 0x2f11a
leaq -0x178(%rbp), %rdi
callq 0x34a8
leaq -0x130(%rbp), %rdi
callq 0x52180
leaq -0x1d1(%rbp), %rdi
movq %rdi, -0xf68(%rbp)
callq 0x3450
movq -0xf68(%rbp), %rdx
leaq 0x610e4(%rip), %rsi     # 0x900de
leaq -0x1d0(%rbp), %rdi
callq 0x52000
jmp 0x2f008
leaq -0x1b0(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x2f022
leaq -0x1d0(%rbp), %rdi
callq 0x34a8
leaq -0x1d1(%rbp), %rdi
callq 0x32d0
movabsq $0x900000008, %rax      # imm = 0x900000008
movq %rax, -0x210(%rbp)
movups 0x6011a(%rip), %xmm0    # 0x8f16c
movaps %xmm0, -0x220(%rbp)
movups 0x600fc(%rip), %xmm0    # 0x8f15c
movaps %xmm0, -0x230(%rbp)
leaq -0x230(%rbp), %rax
movq %rax, -0x200(%rbp)
movq $0xa, -0x1f8(%rbp)
leaq -0x231(%rbp), %rdi
movq %rdi, -0xf70(%rbp)
callq 0x522f0
movq -0xf70(%rbp), %rcx
movq -0x200(%rbp), %rsi
movq -0x1f8(%rbp), %rdx
leaq -0x1f0(%rbp), %rdi
callq 0x52310
jmp 0x2f0b6
leaq -0x231(%rbp), %rdi
callq 0x52390
leaq -0x1f0(%rbp), %rdi
callq 0x57020
movq %rax, -0xf78(%rbp)
jmp 0x2f0d7
movq -0xf78(%rbp), %rax
movq %rax, -0x240(%rbp)
leaq -0x240(%rbp), %rdi
callq 0x53cf0
cmpl $0x0, (%rax)
jne 0x2f0fb
jmp 0x2f19c
leaq 0x61306(%rip), %rdi     # 0x90408
leaq 0x60f8b(%rip), %rsi     # 0x90094
movl $0x75c, %edx            # imm = 0x75C
leaq 0x612e3(%rip), %rcx     # 0x903f8
callq 0x3170
leaq -0x130(%rbp), %rdi
callq 0x52180
jmp 0x30e8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2f151
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x1d0(%rbp), %rdi
callq 0x34a8
leaq -0x1d1(%rbp), %rdi
callq 0x32d0
jmp 0x30e8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x231(%rbp), %rdi
callq 0x52390
jmp 0x2f2e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x1f0(%rbp), %rdi
callq 0x52430
jmp 0x2f2e7
leaq -0x1f0(%rbp), %rdi
callq 0x52430
leaq -0x1b0(%rbp), %rdi
callq 0x52180
leaq -0x289(%rbp), %rdi
movq %rdi, -0xf80(%rbp)
callq 0x3450
movq -0xf80(%rbp), %rdx
leaq 0x60f10(%rip), %rsi     # 0x900e5
leaq -0x288(%rbp), %rdi
callq 0x52000
jmp 0x2f1e3
leaq -0x268(%rbp), %rdi
leaq -0x288(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x2f1fd
leaq -0x288(%rbp), %rdi
callq 0x34a8
leaq -0x289(%rbp), %rdi
callq 0x32d0
movabsq $0x900000008, %rax      # imm = 0x900000008
movq %rax, -0x300(%rbp)
movups 0x5ff67(%rip), %xmm0    # 0x8f194
movaps %xmm0, -0x310(%rbp)
movups 0x5ff49(%rip), %xmm0    # 0x8f184
movaps %xmm0, -0x320(%rbp)
leaq -0x320(%rbp), %rax
movq %rax, -0x2f0(%rbp)
movq $0xa, -0x2e8(%rbp)
leaq -0x321(%rbp), %rdi
movq %rdi, -0xf88(%rbp)
callq 0x522f0
movq -0xf88(%rbp), %rcx
movq -0x2f0(%rbp), %rsi
movq -0x2e8(%rbp), %rdx
leaq -0x2e0(%rbp), %rdi
callq 0x52490
jmp 0x2f291
leaq -0x321(%rbp), %rdi
callq 0x52390
leaq -0x348(%rbp), %rdi
leaq -0x2e0(%rbp), %rsi
callq 0x57070
jmp 0x2f2b2
leaq -0x348(%rbp), %rdi
callq 0x53d10
cmpl $0x0, (%rax)
jne 0x2f2c8
jmp 0x2f369
leaq 0x61139(%rip), %rdi     # 0x90408
leaq 0x60dbe(%rip), %rsi     # 0x90094
movl $0x763, %edx            # imm = 0x763
leaq 0x61116(%rip), %rcx     # 0x903f8
callq 0x3170
leaq -0x1b0(%rbp), %rdi
callq 0x52180
jmp 0x30e8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2f31e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x288(%rbp), %rdi
callq 0x34a8
leaq -0x289(%rbp), %rdi
callq 0x32d0
jmp 0x30e8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x321(%rbp), %rdi
callq 0x52390
jmp 0x2f4c2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x2e0(%rbp), %rdi
callq 0x525a0
jmp 0x2f4c2
leaq -0x2e0(%rbp), %rdi
callq 0x525a0
leaq -0x268(%rbp), %rdi
callq 0x52180
leaq -0x391(%rbp), %rdi
movq %rdi, -0xf90(%rbp)
callq 0x3450
movq -0xf90(%rbp), %rdx
leaq 0x60d51(%rip), %rsi     # 0x900f3
leaq -0x390(%rbp), %rdi
callq 0x52000
jmp 0x2f3b0
leaq -0x370(%rbp), %rdi
leaq -0x390(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x2f3ca
leaq -0x390(%rbp), %rdi
callq 0x34a8
leaq -0x391(%rbp), %rdi
callq 0x32d0
movabsq $0x900000008, %rax      # imm = 0x900000008
movq %rax, -0x3d0(%rbp)
movups 0x5fdc2(%rip), %xmm0    # 0x8f1bc
movaps %xmm0, -0x3e0(%rbp)
movups 0x5fda4(%rip), %xmm0    # 0x8f1ac
movaps %xmm0, -0x3f0(%rbp)
leaq -0x3f0(%rbp), %rax
movq %rax, -0x3c0(%rbp)
movq $0xa, -0x3b8(%rbp)
leaq -0x3f1(%rbp), %rdi
movq %rdi, -0xf98(%rbp)
callq 0x522f0
movq -0xf98(%rbp), %rcx
movq -0x3c0(%rbp), %rsi
movq -0x3b8(%rbp), %rdx
leaq -0x3b0(%rbp), %rdi
callq 0x52610
jmp 0x2f45e
leaq -0x3f1(%rbp), %rdi
callq 0x52390
leaq -0x3b0(%rbp), %rdi
callq 0x570c0
movq %rax, -0xfa0(%rbp)
jmp 0x2f47f
movq -0xfa0(%rbp), %rax
movq %rax, -0x400(%rbp)
leaq -0x400(%rbp), %rdi
callq 0x53d30
cmpl $0x0, (%rax)
jne 0x2f4a3
jmp 0x2f544
leaq 0x60f5e(%rip), %rdi     # 0x90408
leaq 0x60be3(%rip), %rsi     # 0x90094
movl $0x76a, %edx            # imm = 0x76A
leaq 0x60f3b(%rip), %rcx     # 0x903f8
callq 0x3170
leaq -0x268(%rbp), %rdi
callq 0x52180
jmp 0x30e8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2f4f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x390(%rbp), %rdi
callq 0x34a8
leaq -0x391(%rbp), %rdi
callq 0x32d0
jmp 0x30e8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x3f1(%rbp), %rdi
callq 0x52390
jmp 0x2f69d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x3b0(%rbp), %rdi
callq 0x527f0
jmp 0x2f69d
leaq -0x3b0(%rbp), %rdi
callq 0x527f0
leaq -0x370(%rbp), %rdi
callq 0x52180
leaq -0x449(%rbp), %rdi
movq %rdi, -0xfa8(%rbp)
callq 0x3450
movq -0xfa8(%rbp), %rdx
leaq 0x60b6e(%rip), %rsi     # 0x900eb
leaq -0x448(%rbp), %rdi
callq 0x52000
jmp 0x2f58b
leaq -0x428(%rbp), %rdi
leaq -0x448(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x2f5a5
leaq -0x448(%rbp), %rdi
callq 0x34a8
leaq -0x449(%rbp), %rdi
callq 0x32d0
movabsq $0x900000008, %rax      # imm = 0x900000008
movq %rax, -0x470(%rbp)
movups 0x5fc0f(%rip), %xmm0    # 0x8f1e4
movaps %xmm0, -0x480(%rbp)
movups 0x5fbf1(%rip), %xmm0    # 0x8f1d4
movaps %xmm0, -0x490(%rbp)
leaq -0x490(%rbp), %rax
movq %rax, -0x468(%rbp)
movq $0xa, -0x460(%rbp)
leaq -0x491(%rbp), %rdi
movq %rdi, -0xfb0(%rbp)
callq 0x522f0
movq -0xfb0(%rbp), %rcx
movq -0x468(%rbp), %rsi
movq -0x460(%rbp), %rdx
leaq -0x458(%rbp), %rdi
callq 0x52810
jmp 0x2f639
leaq -0x491(%rbp), %rdi
callq 0x52390
leaq -0x458(%rbp), %rdi
callq 0x57110
movq %rax, -0xfb8(%rbp)
jmp 0x2f65a
movq -0xfb8(%rbp), %rax
movq %rax, -0x4a0(%rbp)
leaq -0x4a0(%rbp), %rdi
callq 0x53d50
cmpl $0x0, (%rax)
jne 0x2f67e
jmp 0x2f71f
leaq 0x60d83(%rip), %rdi     # 0x90408
leaq 0x60a08(%rip), %rsi     # 0x90094
movl $0x771, %edx            # imm = 0x771
leaq 0x60d60(%rip), %rcx     # 0x903f8
callq 0x3170
leaq -0x370(%rbp), %rdi
callq 0x52180
jmp 0x30e8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2f6d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x448(%rbp), %rdi
callq 0x34a8
leaq -0x449(%rbp), %rdi
callq 0x32d0
jmp 0x30e8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x491(%rbp), %rdi
callq 0x52390
jmp 0x2f87f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x458(%rbp), %rdi
callq 0x529e0
jmp 0x2f87f
leaq -0x458(%rbp), %rdi
callq 0x529e0
leaq -0x428(%rbp), %rdi
callq 0x52180
leaq -0x4e9(%rbp), %rdi
movq %rdi, -0xfc0(%rbp)
callq 0x3450
movq -0xfc0(%rbp), %rdx
leaq 0x609bb(%rip), %rsi     # 0x90113
leaq -0x4e8(%rbp), %rdi
callq 0x52000
jmp 0x2f766
leaq -0x4c8(%rbp), %rdi
leaq -0x4e8(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x2f780
leaq -0x4e8(%rbp), %rdi
callq 0x34a8
leaq -0x4e9(%rbp), %rdi
callq 0x32d0
movabsq $0x900000008, %rax      # imm = 0x900000008
movq %rax, -0x540(%rbp)
movups 0x5fa5c(%rip), %xmm0    # 0x8f20c
movaps %xmm0, -0x550(%rbp)
movups 0x5fa3e(%rip), %xmm0    # 0x8f1fc
movaps %xmm0, -0x560(%rbp)
leaq -0x560(%rbp), %rax
movq %rax, -0x530(%rbp)
movq $0xa, -0x528(%rbp)
leaq -0x562(%rbp), %rdi
movq %rdi, -0xfc8(%rbp)
callq 0x522f0
movq -0xfc8(%rbp), %r8
movq -0x530(%rbp), %rsi
movq -0x528(%rbp), %rdx
leaq -0x520(%rbp), %rdi
leaq -0x561(%rbp), %rcx
callq 0x52a00
jmp 0x2f81b
leaq -0x562(%rbp), %rdi
callq 0x52390
leaq -0x520(%rbp), %rdi
callq 0x57160
movq %rax, -0xfd0(%rbp)
jmp 0x2f83c
movq -0xfd0(%rbp), %rax
movq %rax, -0x570(%rbp)
leaq -0x570(%rbp), %rdi
callq 0x53d70
cmpl $0x0, (%rax)
jne 0x2f860
jmp 0x2f901
leaq 0x60ba1(%rip), %rdi     # 0x90408
leaq 0x60826(%rip), %rsi     # 0x90094
movl $0x778, %edx            # imm = 0x778
leaq 0x60b7e(%rip), %rcx     # 0x903f8
callq 0x3170
leaq -0x428(%rbp), %rdi
callq 0x52180
jmp 0x30e8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2f8b6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x4e8(%rbp), %rdi
callq 0x34a8
leaq -0x4e9(%rbp), %rdi
callq 0x32d0
jmp 0x30e8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x562(%rbp), %rdi
callq 0x52390
jmp 0x2fa61
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x520(%rbp), %rdi
callq 0x52af0
jmp 0x2fa61
leaq -0x520(%rbp), %rdi
callq 0x52af0
leaq -0x4c8(%rbp), %rdi
callq 0x52180
leaq -0x5b9(%rbp), %rdi
movq %rdi, -0xfd8(%rbp)
callq 0x3450
movq -0xfd8(%rbp), %rdx
leaq 0x607e7(%rip), %rsi     # 0x90121
leaq -0x5b8(%rbp), %rdi
callq 0x52000
jmp 0x2f948
leaq -0x598(%rbp), %rdi
leaq -0x5b8(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x2f962
leaq -0x5b8(%rbp), %rdi
callq 0x34a8
leaq -0x5b9(%rbp), %rdi
callq 0x32d0
movabsq $0x800000008, %rax      # imm = 0x800000008
movq %rax, -0x610(%rbp)
movups 0x5f8a2(%rip), %xmm0    # 0x8f234
movaps %xmm0, -0x620(%rbp)
movups 0x5f884(%rip), %xmm0    # 0x8f224
movaps %xmm0, -0x630(%rbp)
leaq -0x630(%rbp), %rax
movq %rax, -0x600(%rbp)
movq $0xa, -0x5f8(%rbp)
leaq -0x632(%rbp), %rdi
movq %rdi, -0xfe0(%rbp)
callq 0x522f0
movq -0xfe0(%rbp), %r8
movq -0x600(%rbp), %rsi
movq -0x5f8(%rbp), %rdx
leaq -0x5f0(%rbp), %rdi
leaq -0x631(%rbp), %rcx
callq 0x52b10
jmp 0x2f9fd
leaq -0x632(%rbp), %rdi
callq 0x52390
leaq -0x5f0(%rbp), %rdi
callq 0x571b0
movq %rax, -0xfe8(%rbp)
jmp 0x2fa1e
movq -0xfe8(%rbp), %rax
movq %rax, -0x640(%rbp)
leaq -0x640(%rbp), %rdi
callq 0x53d70
cmpl $0x0, (%rax)
jne 0x2fa42
jmp 0x2fae3
leaq 0x609bf(%rip), %rdi     # 0x90408
leaq 0x60644(%rip), %rsi     # 0x90094
movl $0x77f, %edx            # imm = 0x77F
leaq 0x6099c(%rip), %rcx     # 0x903f8
callq 0x3170
leaq -0x4c8(%rbp), %rdi
callq 0x52180
jmp 0x30e8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2fa98
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x5b8(%rbp), %rdi
callq 0x34a8
leaq -0x5b9(%rbp), %rdi
callq 0x32d0
jmp 0x30e8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x632(%rbp), %rdi
callq 0x52390
jmp 0x2fc54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x5f0(%rbp), %rdi
callq 0x52be0
jmp 0x2fc54
leaq -0x5f0(%rbp), %rdi
callq 0x52be0
leaq -0x598(%rbp), %rdi
callq 0x52180
leaq -0x689(%rbp), %rdi
movq %rdi, -0xff0(%rbp)
callq 0x3450
movq -0xff0(%rbp), %rdx
leaq 0x605ed(%rip), %rsi     # 0x90109
leaq -0x688(%rbp), %rdi
callq 0x52000
jmp 0x2fb2a
leaq -0x668(%rbp), %rdi
leaq -0x688(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x2fb44
leaq -0x688(%rbp), %rdi
callq 0x34a8
leaq -0x689(%rbp), %rdi
callq 0x32d0
movabsq $0x900000008, %rax      # imm = 0x900000008
movq %rax, -0x6e0(%rbp)
movups 0x5f6e8(%rip), %xmm0    # 0x8f25c
movaps %xmm0, -0x6f0(%rbp)
movups 0x5f6ca(%rip), %xmm0    # 0x8f24c
movaps %xmm0, -0x700(%rbp)
leaq -0x700(%rbp), %rax
movq %rax, -0x6d8(%rbp)
movq $0xa, -0x6d0(%rbp)
leaq -0x703(%rbp), %rdi
movq %rdi, -0xff8(%rbp)
callq 0x522f0
movq -0xff8(%rbp), %rcx
movq -0x6d8(%rbp), %rsi
movq -0x6d0(%rbp), %rdx
movq %rsp, %rax
movq %rcx, (%rax)
xorl %eax, %eax
movl %eax, %ecx
leaq -0x6c8(%rbp), %rdi
leaq -0x701(%rbp), %r8
leaq -0x702(%rbp), %r9
callq 0x52c00
jmp 0x2fbf0
leaq -0x703(%rbp), %rdi
callq 0x52390
leaq -0x6c8(%rbp), %rdi
callq 0x57200
movq %rax, -0x1000(%rbp)
jmp 0x2fc11
movq -0x1000(%rbp), %rax
movq %rax, -0x710(%rbp)
leaq -0x710(%rbp), %rdi
callq 0x53d90
cmpl $0x0, (%rax)
jne 0x2fc35
jmp 0x2fcd6
leaq 0x607cc(%rip), %rdi     # 0x90408
leaq 0x60451(%rip), %rsi     # 0x90094
movl $0x786, %edx            # imm = 0x786
leaq 0x607a9(%rip), %rcx     # 0x903f8
callq 0x3170
leaq -0x598(%rbp), %rdi
callq 0x52180
jmp 0x30e8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2fc8b
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 0x30e8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x703(%rbp), %rdi
callq 0x52390
jmp 0x2fe47
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x6c8(%rbp), %rdi
callq 0x52c60
jmp 0x2fe47
leaq -0x6c8(%rbp), %rdi
callq 0x52c60
leaq -0x668(%rbp), %rdi
callq 0x52180
leaq -0x759(%rbp), %rdi
movq %rdi, -0x1008(%rbp)
callq 0x3450
movq -0x1008(%rbp), %rdx
leaq 0x60408(%rip), %rsi     # 0x90117
leaq -0x758(%rbp), %rdi
callq 0x52000
jmp 0x2fd1d
leaq -0x738(%rbp), %rdi
leaq -0x758(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x2fd37
leaq -0x758(%rbp), %rdi
callq 0x34a8
leaq -0x759(%rbp), %rdi
callq 0x32d0
movabsq $0x800000008, %rax      # imm = 0x800000008
movq %rax, -0x7b0(%rbp)
movups 0x5f51d(%rip), %xmm0    # 0x8f284
movaps %xmm0, -0x7c0(%rbp)
movups 0x5f4ff(%rip), %xmm0    # 0x8f274
movaps %xmm0, -0x7d0(%rbp)
leaq -0x7d0(%rbp), %rax
movq %rax, -0x7a8(%rbp)
movq $0xa, -0x7a0(%rbp)
leaq -0x7d3(%rbp), %rdi
movq %rdi, -0x1010(%rbp)
callq 0x522f0
movq -0x1010(%rbp), %rcx
movq -0x7a8(%rbp), %rsi
movq -0x7a0(%rbp), %rdx
movq %rsp, %rax
movq %rcx, (%rax)
xorl %eax, %eax
movl %eax, %ecx
leaq -0x798(%rbp), %rdi
leaq -0x7d1(%rbp), %r8
leaq -0x7d2(%rbp), %r9
callq 0x52c80
jmp 0x2fde3
leaq -0x7d3(%rbp), %rdi
callq 0x52390
leaq -0x798(%rbp), %rdi
callq 0x57250
movq %rax, -0x1018(%rbp)
jmp 0x2fe04
movq -0x1018(%rbp), %rax
movq %rax, -0x7e0(%rbp)
leaq -0x7e0(%rbp), %rdi
callq 0x53d90
cmpl $0x0, (%rax)
jne 0x2fe28
jmp 0x2fec9
leaq 0x605d9(%rip), %rdi     # 0x90408
leaq 0x6025e(%rip), %rsi     # 0x90094
movl $0x78d, %edx            # imm = 0x78D
leaq 0x605b6(%rip), %rcx     # 0x903f8
callq 0x3170
leaq -0x668(%rbp), %rdi
callq 0x52180
jmp 0x30e8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2fe7e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x758(%rbp), %rdi
callq 0x34a8
leaq -0x759(%rbp), %rdi
callq 0x32d0
jmp 0x30e8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x7d3(%rbp), %rdi
callq 0x52390
jmp 0x301a5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x798(%rbp), %rdi
callq 0x52ce0
jmp 0x301a5
leaq -0x798(%rbp), %rdi
callq 0x52ce0
leaq -0x738(%rbp), %rdi
callq 0x52180
leaq -0x829(%rbp), %rdi
movq %rdi, -0x1020(%rbp)
callq 0x3450
movq -0x1020(%rbp), %rdx
leaq 0x60244(%rip), %rsi     # 0x90146
leaq -0x828(%rbp), %rdi
callq 0x52000
jmp 0x2ff10
leaq -0x808(%rbp), %rdi
leaq -0x828(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x2ff2a
leaq -0x828(%rbp), %rdi
callq 0x34a8
leaq -0x829(%rbp), %rdi
callq 0x32d0
leaq -0x988(%rbp), %rdi
movq %rdi, -0x990(%rbp)
movl $0x1, -0x994(%rbp)
leaq 0x601ca(%rip), %rdx     # 0x9012b
leaq -0x994(%rbp), %rsi
callq 0x52d00
jmp 0x2ff6f
leaq -0x960(%rbp), %rdi
movq %rdi, -0x990(%rbp)
movl $0x2, -0x998(%rbp)
leaq 0x601a0(%rip), %rdx     # 0x9012e
leaq -0x998(%rbp), %rsi
callq 0x52d00
jmp 0x2ff9c
leaq -0x938(%rbp), %rdi
movq %rdi, -0x990(%rbp)
movl $0x3, -0x99c(%rbp)
leaq 0x60176(%rip), %rdx     # 0x90131
leaq -0x99c(%rbp), %rsi
callq 0x52d00
jmp 0x2ffc9
leaq -0x910(%rbp), %rdi
movq %rdi, -0x990(%rbp)
movl $0x4, -0x9a0(%rbp)
leaq 0x604bf(%rip), %rdx     # 0x904a7
leaq -0x9a0(%rbp), %rsi
callq 0x52d00
jmp 0x2fff6
leaq -0x8e8(%rbp), %rdi
movq %rdi, -0x990(%rbp)
movl $0xa, -0x9a4(%rbp)
leaq 0x60377(%rip), %rdx     # 0x9038c
leaq -0x9a4(%rbp), %rsi
callq 0x52d00
jmp 0x30023
leaq -0x8c0(%rbp), %rdi
movq %rdi, -0x990(%rbp)
movl $0x14, -0x9a8(%rbp)
leaq 0x60438(%rip), %rdx     # 0x9047a
leaq -0x9a8(%rbp), %rsi
callq 0x52d00
jmp 0x30050
leaq -0x898(%rbp), %rdi
movq %rdi, -0x990(%rbp)
movl $0x1e, -0x9ac(%rbp)
leaq 0x60150(%rip), %rdx     # 0x901bf
leaq -0x9ac(%rbp), %rsi
callq 0x52d00
jmp 0x3007d
leaq -0x988(%rbp), %rax
movq %rax, -0x870(%rbp)
movq $0x7, -0x868(%rbp)
leaq -0x9ae(%rbp), %rdi
movq %rdi, -0x1028(%rbp)
callq 0x52da0
movq -0x1028(%rbp), %r8
movq -0x870(%rbp), %rsi
movq -0x868(%rbp), %rdx
leaq -0x860(%rbp), %rdi
leaq -0x9ad(%rbp), %rcx
callq 0x52dc0
jmp 0x300d3
leaq -0x9ae(%rbp), %rdi
callq 0x52e90
leaq -0x988(%rbp), %rax
movq %rax, -0x1038(%rbp)
addq $0x118, %rax            # imm = 0x118
movq %rax, -0x1030(%rbp)
movq -0x1030(%rbp), %rdi
addq $-0x28, %rdi
movq %rdi, -0x1040(%rbp)
callq 0x52d80
movq -0x1038(%rbp), %rcx
movq -0x1040(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x1030(%rbp)
jne 0x300fa
leaq -0x860(%rbp), %rdi
callq 0x30ee0
movq %rax, -0x1048(%rbp)
jmp 0x30140
movq -0x1048(%rbp), %rax
movq %rax, -0x9b8(%rbp)
leaq -0x9b8(%rbp), %rdi
callq 0x53dc0
movq %rax, %rdi
addq $0x8, %rdi
leaq 0x5ffc3(%rip), %rsi     # 0x9012b
callq 0x56f60
movb %al, -0x1049(%rbp)
jmp 0x30175
movb -0x1049(%rbp), %al
testb $0x1, %al
jne 0x30181
jmp 0x30186
jmp 0x302cf
leaq 0x60297(%rip), %rdi     # 0x90424
leaq 0x5ff00(%rip), %rsi     # 0x90094
movl $0x796, %edx            # imm = 0x796
leaq 0x60258(%rip), %rcx     # 0x903f8
callq 0x3170
leaq -0x738(%rbp), %rdi
callq 0x52180
jmp 0x30e8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x301dc
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 0x30e8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
movq -0x990(%rbp), %rax
leaq -0x988(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x1058(%rbp)
je 0x30244
movq -0x1058(%rbp), %rdi
addq $-0x28, %rdi
movq %rdi, -0x1060(%rbp)
callq 0x52d80
movq -0x1060(%rbp), %rax
leaq -0x988(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x1058(%rbp)
jne 0x30213
jmp 0x3055c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x9ae(%rbp), %rdi
callq 0x52e90
leaq -0x988(%rbp), %rax
movq %rax, -0x1070(%rbp)
addq $0x118, %rax            # imm = 0x118
movq %rax, -0x1068(%rbp)
movq -0x1068(%rbp), %rdi
addq $-0x28, %rdi
movq %rdi, -0x1078(%rbp)
callq 0x52d80
movq -0x1070(%rbp), %rcx
movq -0x1078(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x1068(%rbp)
jne 0x3027c
jmp 0x3055c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x860(%rbp), %rdi
callq 0x52f60
jmp 0x3055c
leaq -0x860(%rbp), %rdi
callq 0x52f60
leaq -0x808(%rbp), %rdi
callq 0x52180
leaq -0xa09(%rbp), %rdi
movq %rdi, -0x1080(%rbp)
callq 0x3450
movq -0x1080(%rbp), %rdx
leaq 0x5fe4c(%rip), %rsi     # 0x90154
leaq -0xa08(%rbp), %rdi
callq 0x52000
jmp 0x30316
leaq -0x9e8(%rbp), %rdi
leaq -0xa08(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x30330
leaq -0xa08(%rbp), %rdi
callq 0x34a8
leaq -0xa09(%rbp), %rdi
callq 0x32d0
leaq -0xb40(%rbp), %rdi
movq %rdi, -0xb48(%rbp)
movl $0x2, -0xb4c(%rbp)
leaq 0x5fdc4(%rip), %rdx     # 0x9012b
leaq -0xb4c(%rbp), %rsi
callq 0x52d00
jmp 0x30375
leaq -0xb18(%rbp), %rdi
movq %rdi, -0xb48(%rbp)
movl $0x2, -0xb50(%rbp)
leaq 0x5fd9a(%rip), %rdx     # 0x9012e
leaq -0xb50(%rbp), %rsi
callq 0x52d00
jmp 0x303a2
leaq -0xaf0(%rbp), %rdi
movq %rdi, -0xb48(%rbp)
movl $0x4, -0xb54(%rbp)
leaq 0x5fd70(%rip), %rdx     # 0x90131
leaq -0xb54(%rbp), %rsi
callq 0x52d00
jmp 0x303cf
leaq -0xac8(%rbp), %rdi
movq %rdi, -0xb48(%rbp)
movl $0x4, -0xb58(%rbp)
leaq 0x600b9(%rip), %rdx     # 0x904a7
leaq -0xb58(%rbp), %rsi
callq 0x52d00
jmp 0x303fc
leaq -0xaa0(%rbp), %rdi
movq %rdi, -0xb48(%rbp)
movl $0xa, -0xb5c(%rbp)
leaq 0x5ff71(%rip), %rdx     # 0x9038c
leaq -0xb5c(%rbp), %rsi
callq 0x52d00
jmp 0x30429
leaq -0xa78(%rbp), %rdi
movq %rdi, -0xb48(%rbp)
movl $0xa, -0xb60(%rbp)
leaq 0x60032(%rip), %rdx     # 0x9047a
leaq -0xb60(%rbp), %rsi
callq 0x52d00
jmp 0x30456
leaq -0xb40(%rbp), %rax
movq %rax, -0xa50(%rbp)
movq $0x6, -0xa48(%rbp)
leaq -0xb62(%rbp), %rdi
movq %rdi, -0x1088(%rbp)
callq 0x52da0
movq -0x1088(%rbp), %r8
movq -0xa50(%rbp), %rsi
movq -0xa48(%rbp), %rdx
leaq -0xa40(%rbp), %rdi
leaq -0xb61(%rbp), %rcx
callq 0x52f80
jmp 0x304ac
leaq -0xb62(%rbp), %rdi
callq 0x52e90
leaq -0xb40(%rbp), %rax
movq %rax, -0x1098(%rbp)
addq $0xf0, %rax
movq %rax, -0x1090(%rbp)
movq -0x1090(%rbp), %rdi
addq $-0x28, %rdi
movq %rdi, -0x10a0(%rbp)
callq 0x52d80
movq -0x1098(%rbp), %rcx
movq -0x10a0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x1090(%rbp)
jne 0x304d3
leaq -0xa40(%rbp), %rdi
callq 0x30f30
movq %rax, -0x10a8(%rbp)
jmp 0x30519
movq -0x10a8(%rbp), %rax
movq %rax, -0xb70(%rbp)
leaq -0xb70(%rbp), %rdi
callq 0x53dc0
cmpl $0x2, (%rax)
jne 0x3053d
jmp 0x30686
leaq 0x5fef6(%rip), %rdi     # 0x9043a
leaq 0x5fb49(%rip), %rsi     # 0x90094
movl $0x79f, %edx            # imm = 0x79F
leaq 0x5fea1(%rip), %rcx     # 0x903f8
callq 0x3170
leaq -0x808(%rbp), %rdi
callq 0x52180
jmp 0x30e8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x30593
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xa08(%rbp), %rdi
callq 0x34a8
leaq -0xa09(%rbp), %rdi
callq 0x32d0
jmp 0x30e8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
movq -0xb48(%rbp), %rax
leaq -0xb40(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x10b0(%rbp)
je 0x305fb
movq -0x10b0(%rbp), %rdi
addq $-0x28, %rdi
movq %rdi, -0x10b8(%rbp)
callq 0x52d80
movq -0x10b8(%rbp), %rax
leaq -0xb40(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x10b0(%rbp)
jne 0x305ca
jmp 0x30973
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xb62(%rbp), %rdi
callq 0x52e90
leaq -0xb40(%rbp), %rax
movq %rax, -0x10c8(%rbp)
addq $0xf0, %rax
movq %rax, -0x10c0(%rbp)
movq -0x10c0(%rbp), %rdi
addq $-0x28, %rdi
movq %rdi, -0x10d0(%rbp)
callq 0x52d80
movq -0x10c8(%rbp), %rcx
movq -0x10d0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x10c0(%rbp)
jne 0x30633
jmp 0x30973
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xa40(%rbp), %rdi
callq 0x53080
jmp 0x30973
leaq -0xa40(%rbp), %rdi
callq 0x53080
leaq -0x9e8(%rbp), %rdi
callq 0x52180
leaq -0xbc1(%rbp), %rdi
movq %rdi, -0x10d8(%rbp)
callq 0x3450
movq -0x10d8(%rbp), %rdx
leaq 0x5fa7d(%rip), %rsi     # 0x9013c
leaq -0xbc0(%rbp), %rdi
callq 0x52000
jmp 0x306cd
leaq -0xba0(%rbp), %rdi
leaq -0xbc0(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x306e7
leaq -0xbc0(%rbp), %rdi
callq 0x34a8
leaq -0xbc1(%rbp), %rdi
callq 0x32d0
leaq -0xd28(%rbp), %rdi
movq %rdi, -0xd30(%rbp)
movl $0x1, -0xd34(%rbp)
leaq 0x5fa0d(%rip), %rdx     # 0x9012b
leaq -0xd34(%rbp), %rsi
callq 0x52d00
jmp 0x3072c
leaq -0xd00(%rbp), %rdi
movq %rdi, -0xd30(%rbp)
movl $0x2, -0xd38(%rbp)
leaq 0x5f9e3(%rip), %rdx     # 0x9012e
leaq -0xd38(%rbp), %rsi
callq 0x52d00
jmp 0x30759
leaq -0xcd8(%rbp), %rdi
movq %rdi, -0xd30(%rbp)
movl $0x3, -0xd3c(%rbp)
leaq 0x5f9b9(%rip), %rdx     # 0x90131
leaq -0xd3c(%rbp), %rsi
callq 0x52d00
jmp 0x30786
leaq -0xcb0(%rbp), %rdi
movq %rdi, -0xd30(%rbp)
movl $0x4, -0xd40(%rbp)
leaq 0x5fd02(%rip), %rdx     # 0x904a7
leaq -0xd40(%rbp), %rsi
callq 0x52d00
jmp 0x307b3
leaq -0xc88(%rbp), %rdi
movq %rdi, -0xd30(%rbp)
movl $0xa, -0xd44(%rbp)
leaq 0x5fbba(%rip), %rdx     # 0x9038c
leaq -0xd44(%rbp), %rsi
callq 0x52d00
jmp 0x307e0
leaq -0xc60(%rbp), %rdi
movq %rdi, -0xd30(%rbp)
movl $0x14, -0xd48(%rbp)
leaq 0x5fc7b(%rip), %rdx     # 0x9047a
leaq -0xd48(%rbp), %rsi
callq 0x52d00
jmp 0x3080d
leaq -0xc38(%rbp), %rdi
movq %rdi, -0xd30(%rbp)
movl $0x1e, -0xd4c(%rbp)
leaq 0x5f993(%rip), %rdx     # 0x901bf
leaq -0xd4c(%rbp), %rsi
callq 0x52d00
jmp 0x3083a
leaq -0xd28(%rbp), %rax
movq %rax, -0xc10(%rbp)
movq $0x7, -0xc08(%rbp)
leaq -0xd4f(%rbp), %rdi
movq %rdi, -0x10e0(%rbp)
callq 0x52da0
movq -0x10e0(%rbp), %rcx
movq -0xc10(%rbp), %rsi
movq -0xc08(%rbp), %rdx
movq %rsp, %rax
movq %rcx, (%rax)
xorl %eax, %eax
movl %eax, %ecx
leaq -0xc00(%rbp), %rdi
leaq -0xd4d(%rbp), %r8
leaq -0xd4e(%rbp), %r9
callq 0x530a0
jmp 0x308a1
leaq -0xd4f(%rbp), %rdi
callq 0x52e90
leaq -0xd28(%rbp), %rax
movq %rax, -0x10f0(%rbp)
addq $0x118, %rax            # imm = 0x118
movq %rax, -0x10e8(%rbp)
movq -0x10e8(%rbp), %rdi
addq $-0x28, %rdi
movq %rdi, -0x10f8(%rbp)
callq 0x52d80
movq -0x10f0(%rbp), %rcx
movq -0x10f8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x10e8(%rbp)
jne 0x308c8
leaq -0xc00(%rbp), %rdi
callq 0x30f80
movq %rax, -0x1100(%rbp)
jmp 0x3090e
movq -0x1100(%rbp), %rax
movq %rax, -0xd58(%rbp)
leaq -0xd58(%rbp), %rdi
callq 0x53de0
movq %rax, %rdi
addq $0x8, %rdi
leaq 0x5f7f5(%rip), %rsi     # 0x9012b
callq 0x56f60
movb %al, -0x1101(%rbp)
jmp 0x30943
movb -0x1101(%rbp), %al
testb $0x1, %al
jne 0x3094f
jmp 0x30954
jmp 0x30a9d
leaq 0x5fac9(%rip), %rdi     # 0x90424
leaq 0x5f732(%rip), %rsi     # 0x90094
movl $0x7a8, %edx            # imm = 0x7A8
leaq 0x5fa8a(%rip), %rcx     # 0x903f8
callq 0x3170
leaq -0x9e8(%rbp), %rdi
callq 0x52180
jmp 0x30e8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x309aa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xbc0(%rbp), %rdi
callq 0x34a8
leaq -0xbc1(%rbp), %rdi
callq 0x32d0
jmp 0x30e8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
movq -0xd30(%rbp), %rax
leaq -0xd28(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x1110(%rbp)
je 0x30a12
movq -0x1110(%rbp), %rdi
addq $-0x28, %rdi
movq %rdi, -0x1118(%rbp)
callq 0x52d80
movq -0x1118(%rbp), %rax
leaq -0xd28(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x1110(%rbp)
jne 0x309e1
jmp 0x30d3b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xd4f(%rbp), %rdi
callq 0x52e90
leaq -0xd28(%rbp), %rax
movq %rax, -0x1128(%rbp)
addq $0x118, %rax            # imm = 0x118
movq %rax, -0x1120(%rbp)
movq -0x1120(%rbp), %rdi
addq $-0x28, %rdi
movq %rdi, -0x1130(%rbp)
callq 0x52d80
movq -0x1128(%rbp), %rcx
movq -0x1130(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x1120(%rbp)
jne 0x30a4a
jmp 0x30d3b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xc00(%rbp), %rdi
callq 0x53130
jmp 0x30d3b
leaq -0xc00(%rbp), %rdi
callq 0x53130
leaq -0xba0(%rbp), %rdi
callq 0x52180
leaq -0xda9(%rbp), %rdi
movq %rdi, -0x1138(%rbp)
callq 0x3450
movq -0x1138(%rbp), %rdx
leaq 0x5f674(%rip), %rsi     # 0x9014a
leaq -0xda8(%rbp), %rdi
callq 0x52000
jmp 0x30ae4
leaq -0xd88(%rbp), %rdi
leaq -0xda8(%rbp), %rsi
movl $0x1, %edx
callq 0x520b0
jmp 0x30afe
leaq -0xda8(%rbp), %rdi
callq 0x34a8
leaq -0xda9(%rbp), %rdi
callq 0x32d0
leaq -0xee8(%rbp), %rdi
movq %rdi, -0xef0(%rbp)
movl $0x2, -0xef4(%rbp)
leaq 0x5f5f6(%rip), %rdx     # 0x9012b
leaq -0xef4(%rbp), %rsi
callq 0x52d00
jmp 0x30b43
leaq -0xec0(%rbp), %rdi
movq %rdi, -0xef0(%rbp)
movl $0x2, -0xef8(%rbp)
leaq 0x5f5cc(%rip), %rdx     # 0x9012e
leaq -0xef8(%rbp), %rsi
callq 0x52d00
jmp 0x30b70
leaq -0xe98(%rbp), %rdi
movq %rdi, -0xef0(%rbp)
movl $0x4, -0xefc(%rbp)
leaq 0x5f5a2(%rip), %rdx     # 0x90131
leaq -0xefc(%rbp), %rsi
callq 0x52d00
jmp 0x30b9d
leaq -0xe70(%rbp), %rdi
movq %rdi, -0xef0(%rbp)
movl $0x4, -0xf00(%rbp)
leaq 0x5f8eb(%rip), %rdx     # 0x904a7
leaq -0xf00(%rbp), %rsi
callq 0x52d00
jmp 0x30bca
leaq -0xe48(%rbp), %rdi
movq %rdi, -0xef0(%rbp)
movl $0xa, -0xf04(%rbp)
leaq 0x5f7a3(%rip), %rdx     # 0x9038c
leaq -0xf04(%rbp), %rsi
callq 0x52d00
jmp 0x30bf7
leaq -0xe20(%rbp), %rdi
movq %rdi, -0xef0(%rbp)
movl $0xa, -0xf08(%rbp)
leaq 0x5f864(%rip), %rdx     # 0x9047a
leaq -0xf08(%rbp), %rsi
callq 0x52d00
jmp 0x30c24
leaq -0xee8(%rbp), %rax
movq %rax, -0xdf8(%rbp)
movq $0x6, -0xdf0(%rbp)
leaq -0xf0b(%rbp), %rdi
movq %rdi, -0x1140(%rbp)
callq 0x52da0
movq -0x1140(%rbp), %rcx
movq -0xdf8(%rbp), %rsi
movq -0xdf0(%rbp), %rdx
movq %rsp, %rax
movq %rcx, (%rax)
xorl %eax, %eax
movl %eax, %ecx
leaq -0xde8(%rbp), %rdi
leaq -0xf09(%rbp), %r8
leaq -0xf0a(%rbp), %r9
callq 0x53150
jmp 0x30c8b
leaq -0xf0b(%rbp), %rdi
callq 0x52e90
leaq -0xee8(%rbp), %rax
movq %rax, -0x1150(%rbp)
addq $0xf0, %rax
movq %rax, -0x1148(%rbp)
movq -0x1148(%rbp), %rdi
addq $-0x28, %rdi
movq %rdi, -0x1158(%rbp)
callq 0x52d80
movq -0x1150(%rbp), %rcx
movq -0x1158(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x1148(%rbp)
jne 0x30cb2
leaq -0xde8(%rbp), %rdi
callq 0x30fd0
movq %rax, -0x1160(%rbp)
jmp 0x30cf8
movq -0x1160(%rbp), %rax
movq %rax, -0xf18(%rbp)
leaq -0xf18(%rbp), %rdi
callq 0x53de0
cmpl $0x2, (%rax)
jne 0x30d1c
jmp 0x30e5f
leaq 0x5f717(%rip), %rdi     # 0x9043a
leaq 0x5f36a(%rip), %rsi     # 0x90094
movl $0x7b1, %edx            # imm = 0x7B1
leaq 0x5f6c2(%rip), %rcx     # 0x903f8
callq 0x3170
leaq -0xba0(%rbp), %rdi
callq 0x52180
jmp 0x30e8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x30d72
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xda8(%rbp), %rdi
callq 0x34a8
leaq -0xda9(%rbp), %rdi
callq 0x32d0
jmp 0x30e8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
movq -0xef0(%rbp), %rax
leaq -0xee8(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x1168(%rbp)
je 0x30dda
movq -0x1168(%rbp), %rdi
addq $-0x28, %rdi
movq %rdi, -0x1170(%rbp)
callq 0x52d80
movq -0x1170(%rbp), %rax
leaq -0xee8(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x1168(%rbp)
jne 0x30da9
jmp 0x30e80
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xf0b(%rbp), %rdi
callq 0x52e90
leaq -0xee8(%rbp), %rax
movq %rax, -0x1180(%rbp)
addq $0xf0, %rax
movq %rax, -0x1178(%rbp)
movq -0x1178(%rbp), %rdi
addq $-0x28, %rdi
movq %rdi, -0x1188(%rbp)
callq 0x52d80
movq -0x1180(%rbp), %rcx
movq -0x1188(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x1178(%rbp)
jne 0x30e12
jmp 0x30e80
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xde8(%rbp), %rdi
callq 0x531e0
jmp 0x30e80
leaq -0xde8(%rbp), %rdi
callq 0x531e0
leaq -0xd88(%rbp), %rdi
callq 0x52180
addq $0x1190, %rsp           # imm = 0x1190
popq %rbp
retq
leaq -0xd88(%rbp), %rdi
callq 0x52180
movq -0x58(%rbp), %rdi
callq 0x3440
nopw %cs:(%rax,%rax)