// File: Falldog[P]dcinja/src/include/nlohmann/json.hpp
// Function: nlohmann::detail::serializer<nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char>>>>::dump(nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char>>> const&, bool, bool, unsigned int, unsigned int)
void dump(const BasicJsonType& val,
              const bool pretty_print,
              const bool ensure_ascii,
              const unsigned int indent_step,
              const unsigned int current_indent = 0)
    {
        switch (val.m_type)
        {
            case value_t::object:
            {
                if (val.m_value.object->empty())
                {
                    o->write_characters("{}", 2);
                    return;
                }

                if (pretty_print)
                {
                    o->write_characters("{\n", 2);

                    // variable to hold indentation for recursive calls
                    const auto new_indent = current_indent + indent_step;
                    if (JSON_HEDLEY_UNLIKELY(indent_string.size() < new_indent))
                    {
                        indent_string.resize(indent_string.size() * 2, ' ');
                    }

                    // first n-1 elements
                    auto i = val.m_value.object->cbegin();
                    for (std::size_t cnt = 0; cnt < val.m_value.object->size() - 1; ++cnt, ++i)
                    {
                        o->write_characters(indent_string.c_str(), new_indent);
                        o->write_character('\"');
                        dump_escaped(i->first, ensure_ascii);
                        o->write_characters("\": ", 3);
                        dump(i->second, true, ensure_ascii, indent_step, new_indent);
                        o->write_characters(",\n", 2);
                    }

                    // last element
                    JSON_ASSERT(i != val.m_value.object->cend());
                    JSON_ASSERT(std::next(i) == val.m_value.object->cend());
                    o->write_characters(indent_string.c_str(), new_indent);
                    o->write_character('\"');
                    dump_escaped(i->first, ensure_ascii);
                    o->write_characters("\": ", 3);
                    dump(i->second, true, ensure_ascii, indent_step, new_indent);

                    o->write_character('\n');
                    o->write_characters(indent_string.c_str(), current_indent);
                    o->write_character('}');
                }
                else
                {
                    o->write_character('{');

                    // first n-1 elements
                    auto i = val.m_value.object->cbegin();
                    for (std::size_t cnt = 0; cnt < val.m_value.object->size() - 1; ++cnt, ++i)
                    {
                        o->write_character('\"');
                        dump_escaped(i->first, ensure_ascii);
                        o->write_characters("\":", 2);
                        dump(i->second, false, ensure_ascii, indent_step, current_indent);
                        o->write_character(',');
                    }

                    // last element
                    JSON_ASSERT(i != val.m_value.object->cend());
                    JSON_ASSERT(std::next(i) == val.m_value.object->cend());
                    o->write_character('\"');
                    dump_escaped(i->first, ensure_ascii);
                    o->write_characters("\":", 2);
                    dump(i->second, false, ensure_ascii, indent_step, current_indent);

                    o->write_character('}');
                }

                return;
            }

            case value_t::array:
            {
                if (val.m_value.array->empty())
                {
                    o->write_characters("[]", 2);
                    return;
                }

                if (pretty_print)
                {
                    o->write_characters("[\n", 2);

                    // variable to hold indentation for recursive calls
                    const auto new_indent = current_indent + indent_step;
                    if (JSON_HEDLEY_UNLIKELY(indent_string.size() < new_indent))
                    {
                        indent_string.resize(indent_string.size() * 2, ' ');
                    }

                    // first n-1 elements
                    for (auto i = val.m_value.array->cbegin();
                            i != val.m_value.array->cend() - 1; ++i)
                    {
                        o->write_characters(indent_string.c_str(), new_indent);
                        dump(*i, true, ensure_ascii, indent_step, new_indent);
                        o->write_characters(",\n", 2);
                    }

                    // last element
                    JSON_ASSERT(!val.m_value.array->empty());
                    o->write_characters(indent_string.c_str(), new_indent);
                    dump(val.m_value.array->back(), true, ensure_ascii, indent_step, new_indent);

                    o->write_character('\n');
                    o->write_characters(indent_string.c_str(), current_indent);
                    o->write_character(']');
                }
                else
                {
                    o->write_character('[');

                    // first n-1 elements
                    for (auto i = val.m_value.array->cbegin();
                            i != val.m_value.array->cend() - 1; ++i)
                    {
                        dump(*i, false, ensure_ascii, indent_step, current_indent);
                        o->write_character(',');
                    }

                    // last element
                    JSON_ASSERT(!val.m_value.array->empty());
                    dump(val.m_value.array->back(), false, ensure_ascii, indent_step, current_indent);

                    o->write_character(']');
                }

                return;
            }

            case value_t::string:
            {
                o->write_character('\"');
                dump_escaped(*val.m_value.string, ensure_ascii);
                o->write_character('\"');
                return;
            }

            case value_t::binary:
            {
                if (pretty_print)
                {
                    o->write_characters("{\n", 2);

                    // variable to hold indentation for recursive calls
                    const auto new_indent = current_indent + indent_step;
                    if (JSON_HEDLEY_UNLIKELY(indent_string.size() < new_indent))
                    {
                        indent_string.resize(indent_string.size() * 2, ' ');
                    }

                    o->write_characters(indent_string.c_str(), new_indent);

                    o->write_characters("\"bytes\": [", 10);

                    if (!val.m_value.binary->empty())
                    {
                        for (auto i = val.m_value.binary->cbegin();
                                i != val.m_value.binary->cend() - 1; ++i)
                        {
                            dump_integer(*i);
                            o->write_characters(", ", 2);
                        }
                        dump_integer(val.m_value.binary->back());
                    }

                    o->write_characters("],\n", 3);
                    o->write_characters(indent_string.c_str(), new_indent);

                    o->write_characters("\"subtype\": ", 11);
                    if (val.m_value.binary->has_subtype())
                    {
                        dump_integer(val.m_value.binary->subtype());
                    }
                    else
                    {
                        o->write_characters("null", 4);
                    }
                    o->write_character('\n');
                    o->write_characters(indent_string.c_str(), current_indent);
                    o->write_character('}');
                }
                else
                {
                    o->write_characters("{\"bytes\":[", 10);

                    if (!val.m_value.binary->empty())
                    {
                        for (auto i = val.m_value.binary->cbegin();
                                i != val.m_value.binary->cend() - 1; ++i)
                        {
                            dump_integer(*i);
                            o->write_character(',');
                        }
                        dump_integer(val.m_value.binary->back());
                    }

                    o->write_characters("],\"subtype\":", 12);
                    if (val.m_value.binary->has_subtype())
                    {
                        dump_integer(val.m_value.binary->subtype());
                        o->write_character('}');
                    }
                    else
                    {
                        o->write_characters("null}", 5);
                    }
                }
                return;
            }

            case value_t::boolean:
            {
                if (val.m_value.boolean)
                {
                    o->write_characters("true", 4);
                }
                else
                {
                    o->write_characters("false", 5);
                }
                return;
            }

            case value_t::number_integer:
            {
                dump_integer(val.m_value.number_integer);
                return;
            }

            case value_t::number_unsigned:
            {
                dump_integer(val.m_value.number_unsigned);
                return;
            }

            case value_t::number_float:
            {
                dump_float(val.m_value.number_float);
                return;
            }

            case value_t::discarded:
            {
                o->write_characters("<discarded>", 11);
                return;
            }

            case value_t::null:
            {
                o->write_characters("null", 4);
                return;
            }

            default:            // LCOV_EXCL_LINE
                JSON_ASSERT(false);  // LCOV_EXCL_LINE
        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x170, %rsp            # imm = 0x170
movb %cl, %al
movb %dl, %cl
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
andb $0x1, %cl
movb %cl, -0x11(%rbp)
andb $0x1, %al
movb %al, -0x12(%rbp)
movl %r8d, -0x18(%rbp)
movl %r9d, -0x1c(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x100(%rbp)
movq -0x10(%rbp), %rax
movzbl (%rax), %eax
movq %rax, -0xf8(%rbp)
subq $0x9, %rax
ja 0x827fc
movq -0xf8(%rbp), %rax
leaq 0x3f6bd(%rip), %rcx     # 0xc0e58
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x74660
testb $0x1, %al
jne 0x817b7
jmp 0x817dd
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
leaq 0x45d85(%rip), %rsi     # 0xc7555
movl $0x2, %edx
callq *0x8(%rax)
jmp 0x8281b
testb $0x1, -0x11(%rbp)
je 0x81b96
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
leaq 0x45d58(%rip), %rsi     # 0xc7558
movl $0x2, %edx
callq *0x8(%rax)
movq -0x100(%rbp), %rdi
movl -0x1c(%rbp), %eax
addl -0x18(%rbp), %eax
movl %eax, -0x20(%rbp)
addq $0x260, %rdi            # imm = 0x260
callq 0xb440
movl -0x20(%rbp), %ecx
cmpq %rcx, %rax
setb %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x81837
jmp 0x81871
movq -0x100(%rbp), %rdi
movq %rdi, %rax
addq $0x260, %rax            # imm = 0x260
movq %rax, -0x108(%rbp)
addq $0x260, %rdi            # imm = 0x260
callq 0xb440
movq -0x108(%rbp), %rdi
movq %rax, %rsi
shlq %rsi
movl $0x20, %edx
callq 0xb150
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x83550
movq %rax, -0x28(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x110(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x4bc30
movq %rax, %rcx
movq -0x110(%rbp), %rax
subq $0x1, %rcx
cmpq %rcx, %rax
jae 0x819ba
movq -0x100(%rbp), %rdi
callq 0x83530
movq -0x100(%rbp), %rdi
movq %rax, -0x118(%rbp)
addq $0x260, %rdi            # imm = 0x260
callq 0xb1f0
movq -0x118(%rbp), %rdi
movq %rax, %rsi
movl -0x20(%rbp), %eax
movl %eax, %edx
movq (%rdi), %rax
callq *0x8(%rax)
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
movl $0x22, %esi
callq *(%rax)
leaq -0x28(%rbp), %rdi
callq 0x841e0
movq -0x100(%rbp), %rdi
movq %rax, %rsi
movb -0x12(%rbp), %al
andb $0x1, %al
movzbl %al, %edx
callq 0x83580
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
leaq 0x45d5c(%rip), %rsi     # 0xc76a2
movl $0x3, %edx
callq *0x8(%rax)
leaq -0x28(%rbp), %rdi
callq 0x841e0
movq -0x100(%rbp), %rdi
movq %rax, %rsi
addq $0x20, %rsi
movb -0x12(%rbp), %al
movl -0x18(%rbp), %r8d
movl -0x20(%rbp), %r9d
movl $0x1, %edx
andb $0x1, %al
movzbl %al, %ecx
callq 0x81740
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
leaq 0x45cff(%rip), %rsi     # 0xc7697
movl $0x2, %edx
callq *0x8(%rax)
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x758d0
jmp 0x8188a
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x84200
movq %rax, -0x38(%rbp)
leaq -0x28(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x75830
testb $0x1, %al
jne 0x819de
jmp 0x819e0
jmp 0x819ff
leaq 0x45b74(%rip), %rdi     # 0xc755b
leaq 0x40f7f(%rip), %rsi     # 0xc296d
movl $0x3cd5, %edx           # imm = 0x3CD5
leaq 0x45b81(%rip), %rcx     # 0xc757b
callq 0xb410
movq -0x28(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rdi
movl $0x1, %esi
callq 0x84230
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x84200
movq %rax, -0x50(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x768f0
testb $0x1, %al
jne 0x81a3d
jmp 0x81a3f
jmp 0x81a5e
leaq 0x45bf5(%rip), %rdi     # 0xc763b
leaq 0x40f20(%rip), %rsi     # 0xc296d
movl $0x3cd6, %edx           # imm = 0x3CD6
leaq 0x45b22(%rip), %rcx     # 0xc757b
callq 0xb410
movq -0x100(%rbp), %rdi
callq 0x83530
movq -0x100(%rbp), %rdi
movq %rax, -0x128(%rbp)
addq $0x260, %rdi            # imm = 0x260
callq 0xb1f0
movq -0x128(%rbp), %rdi
movq %rax, %rsi
movl -0x20(%rbp), %eax
movl %eax, %edx
movq (%rdi), %rax
callq *0x8(%rax)
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
movl $0x22, %esi
callq *(%rax)
leaq -0x28(%rbp), %rdi
callq 0x841e0
movq -0x100(%rbp), %rdi
movq %rax, %rsi
movb -0x12(%rbp), %al
andb $0x1, %al
movzbl %al, %edx
callq 0x83580
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
leaq 0x45bb7(%rip), %rsi     # 0xc76a2
movl $0x3, %edx
callq *0x8(%rax)
leaq -0x28(%rbp), %rdi
callq 0x841e0
movq -0x100(%rbp), %rdi
movq %rax, %rsi
addq $0x20, %rsi
movb -0x12(%rbp), %al
movl -0x18(%rbp), %r8d
movl -0x20(%rbp), %r9d
movl $0x1, %edx
andb $0x1, %al
movzbl %al, %ecx
callq 0x81740
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
movl $0xa, %esi
callq *(%rax)
movq -0x100(%rbp), %rdi
callq 0x83530
movq -0x100(%rbp), %rdi
movq %rax, -0x120(%rbp)
addq $0x260, %rdi            # imm = 0x260
callq 0xb1f0
movq -0x120(%rbp), %rdi
movq %rax, %rsi
movl -0x1c(%rbp), %eax
movl %eax, %edx
movq (%rdi), %rax
callq *0x8(%rax)
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
movl $0x7d, %esi
callq *(%rax)
jmp 0x81df7
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
movl $0x7b, %esi
callq *(%rax)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x83550
movq %rax, -0x58(%rbp)
movq $0x0, -0x60(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x130(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x4bc30
movq %rax, %rcx
movq -0x130(%rbp), %rax
subq $0x1, %rcx
cmpq %rcx, %rax
jae 0x81cb2
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
movl $0x22, %esi
callq *(%rax)
leaq -0x58(%rbp), %rdi
callq 0x841e0
movq -0x100(%rbp), %rdi
movq %rax, %rsi
movb -0x12(%rbp), %al
andb $0x1, %al
movzbl %al, %edx
callq 0x83580
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
leaq 0x45a72(%rip), %rsi     # 0xc76bb
movl $0x2, %edx
callq *0x8(%rax)
leaq -0x58(%rbp), %rdi
callq 0x841e0
movq -0x100(%rbp), %rdi
movq %rax, %rsi
addq $0x20, %rsi
movb -0x12(%rbp), %al
movl -0x18(%rbp), %r8d
movl -0x1c(%rbp), %r9d
xorl %edx, %edx
andb $0x1, %al
movzbl %al, %ecx
callq 0x81740
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
movl $0x2c, %esi
callq *(%rax)
movq -0x60(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x60(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x758d0
jmp 0x81bc8
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x84200
movq %rax, -0x68(%rbp)
leaq -0x58(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x75830
testb $0x1, %al
jne 0x81cd6
jmp 0x81cd8
jmp 0x81cf7
leaq 0x4587c(%rip), %rdi     # 0xc755b
leaq 0x40c87(%rip), %rsi     # 0xc296d
movl $0x3cf1, %edx           # imm = 0x3CF1
leaq 0x45889(%rip), %rcx     # 0xc757b
callq 0xb410
movq -0x58(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rdi
movl $0x1, %esi
callq 0x84230
movq %rax, -0x70(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x84200
movq %rax, -0x80(%rbp)
leaq -0x70(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x768f0
testb $0x1, %al
jne 0x81d35
jmp 0x81d37
jmp 0x81d56
leaq 0x458fd(%rip), %rdi     # 0xc763b
leaq 0x40c28(%rip), %rsi     # 0xc296d
movl $0x3cf2, %edx           # imm = 0x3CF2
leaq 0x4582a(%rip), %rcx     # 0xc757b
callq 0xb410
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
movl $0x22, %esi
callq *(%rax)
leaq -0x58(%rbp), %rdi
callq 0x841e0
movq -0x100(%rbp), %rdi
movq %rax, %rsi
movb -0x12(%rbp), %al
andb $0x1, %al
movzbl %al, %edx
callq 0x83580
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
leaq 0x45913(%rip), %rsi     # 0xc76bb
movl $0x2, %edx
callq *0x8(%rax)
leaq -0x58(%rbp), %rdi
callq 0x841e0
movq -0x100(%rbp), %rdi
movq %rax, %rsi
addq $0x20, %rsi
movb -0x12(%rbp), %al
movl -0x18(%rbp), %r8d
movl -0x1c(%rbp), %r9d
xorl %edx, %edx
andb $0x1, %al
movzbl %al, %ecx
callq 0x81740
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
movl $0x7d, %esi
callq *(%rax)
jmp 0x8281b
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x74620
testb $0x1, %al
jne 0x81e0f
jmp 0x81e35
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
leaq 0x4583e(%rip), %rsi     # 0xc7666
movl $0x2, %edx
callq *0x8(%rax)
jmp 0x8281b
testb $0x1, -0x11(%rbp)
je 0x820e8
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
leaq 0x45811(%rip), %rsi     # 0xc7669
movl $0x2, %edx
callq *0x8(%rax)
movq -0x100(%rbp), %rdi
movl -0x1c(%rbp), %eax
addl -0x18(%rbp), %eax
movl %eax, -0x84(%rbp)
addq $0x260, %rdi            # imm = 0x260
callq 0xb440
movl -0x84(%rbp), %ecx
cmpq %rcx, %rax
setb %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x81e95
jmp 0x81ecf
movq -0x100(%rbp), %rdi
movq %rdi, %rax
addq $0x260, %rax            # imm = 0x260
movq %rax, -0x138(%rbp)
addq $0x260, %rdi            # imm = 0x260
callq 0xb440
movq -0x138(%rbp), %rdi
movq %rax, %rsi
shlq %rsi
movl $0x20, %edx
callq 0xb150
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x50ee0
movq %rax, -0x90(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x84260
movq %rax, -0xa0(%rbp)
leaq -0xa0(%rbp), %rdi
movl $0x1, %esi
callq 0x84290
movq %rax, -0x98(%rbp)
leaq -0x90(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x4e4f0
testb $0x1, %al
jne 0x81f2b
jmp 0x81fce
movq -0x100(%rbp), %rdi
callq 0x83530
movq -0x100(%rbp), %rdi
movq %rax, -0x140(%rbp)
addq $0x260, %rdi            # imm = 0x260
callq 0xb1f0
movq -0x140(%rbp), %rdi
movq %rax, %rsi
movl -0x84(%rbp), %eax
movl %eax, %edx
movq (%rdi), %rax
callq *0x8(%rax)
leaq -0x90(%rbp), %rdi
callq 0x4e560
movq -0x100(%rbp), %rdi
movq %rax, %rsi
movb -0x12(%rbp), %al
movl -0x18(%rbp), %r8d
movl -0x84(%rbp), %r9d
movl $0x1, %edx
andb $0x1, %al
movzbl %al, %ecx
callq 0x81740
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
leaq 0x456e2(%rip), %rsi     # 0xc7697
movl $0x2, %edx
callq *0x8(%rax)
leaq -0x90(%rbp), %rdi
callq 0x4e580
jmp 0x81ee3
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x74620
xorb $-0x1, %al
testb $0x1, %al
jne 0x81fe3
jmp 0x81fe5
jmp 0x82004
leaq 0x45680(%rip), %rdi     # 0xc766c
leaq 0x4097a(%rip), %rsi     # 0xc296d
movl $0x3d1b, %edx           # imm = 0x3D1B
leaq 0x4557c(%rip), %rcx     # 0xc757b
callq 0xb410
movq -0x100(%rbp), %rdi
callq 0x83530
movq -0x100(%rbp), %rdi
movq %rax, -0x150(%rbp)
addq $0x260, %rdi            # imm = 0x260
callq 0xb1f0
movq -0x150(%rbp), %rdi
movq %rax, %rsi
movl -0x84(%rbp), %eax
movl %eax, %edx
movq (%rdi), %rax
callq *0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x4a9e0
movq -0x100(%rbp), %rdi
movq %rax, %rsi
movb -0x12(%rbp), %al
movl -0x18(%rbp), %r8d
movl -0x84(%rbp), %r9d
movl $0x1, %edx
andb $0x1, %al
movzbl %al, %ecx
callq 0x81740
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
movl $0xa, %esi
callq *(%rax)
movq -0x100(%rbp), %rdi
callq 0x83530
movq -0x100(%rbp), %rdi
movq %rax, -0x148(%rbp)
addq $0x260, %rdi            # imm = 0x260
callq 0xb1f0
movq -0x148(%rbp), %rdi
movq %rax, %rsi
movl -0x1c(%rbp), %eax
movl %eax, %edx
movq (%rdi), %rax
callq *0x8(%rax)
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
movl $0x5d, %esi
callq *(%rax)
jmp 0x8222e
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
movl $0x5b, %esi
callq *(%rax)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x50ee0
movq %rax, -0xa8(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x84260
movq %rax, -0xb8(%rbp)
leaq -0xb8(%rbp), %rdi
movl $0x1, %esi
callq 0x84290
movq %rax, -0xb0(%rbp)
leaq -0xa8(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x4e4f0
testb $0x1, %al
jne 0x8215a
jmp 0x821b1
leaq -0xa8(%rbp), %rdi
callq 0x4e560
movq -0x100(%rbp), %rdi
movq %rax, %rsi
movb -0x12(%rbp), %al
movl -0x18(%rbp), %r8d
movl -0x1c(%rbp), %r9d
xorl %edx, %edx
andb $0x1, %al
movzbl %al, %ecx
callq 0x81740
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
movl $0x2c, %esi
callq *(%rax)
leaq -0xa8(%rbp), %rdi
callq 0x4e580
jmp 0x82115
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x74620
xorb $-0x1, %al
testb $0x1, %al
jne 0x821c6
jmp 0x821c8
jmp 0x821e7
leaq 0x4549d(%rip), %rdi     # 0xc766c
leaq 0x40797(%rip), %rsi     # 0xc296d
movl $0x3d30, %edx           # imm = 0x3D30
leaq 0x45399(%rip), %rcx     # 0xc757b
callq 0xb410
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x4a9e0
movq -0x100(%rbp), %rdi
movq %rax, %rsi
movb -0x12(%rbp), %al
movl -0x18(%rbp), %r8d
movl -0x1c(%rbp), %r9d
xorl %edx, %edx
andb $0x1, %al
movzbl %al, %ecx
callq 0x81740
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
movl $0x5d, %esi
callq *(%rax)
jmp 0x8281b
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
movl $0x22, %esi
callq *(%rax)
movq -0x100(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
movb -0x12(%rbp), %al
andb $0x1, %al
movzbl %al, %edx
callq 0x83580
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
movl $0x22, %esi
callq *(%rax)
jmp 0x8281b
testb $0x1, -0x11(%rbp)
je 0x8259a
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
leaq 0x452af(%rip), %rsi     # 0xc7558
movl $0x2, %edx
callq *0x8(%rax)
movq -0x100(%rbp), %rdi
movl -0x1c(%rbp), %eax
addl -0x18(%rbp), %eax
movl %eax, -0xbc(%rbp)
addq $0x260, %rdi            # imm = 0x260
callq 0xb440
movl -0xbc(%rbp), %ecx
cmpq %rcx, %rax
setb %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x822e6
jmp 0x82320
movq -0x100(%rbp), %rdi
movq %rdi, %rax
addq $0x260, %rax            # imm = 0x260
movq %rax, -0x158(%rbp)
addq $0x260, %rdi            # imm = 0x260
callq 0xb440
movq -0x158(%rbp), %rdi
movq %rax, %rsi
shlq %rsi
movl $0x20, %edx
callq 0xb150
movq -0x100(%rbp), %rdi
callq 0x83530
movq -0x100(%rbp), %rdi
movq %rax, -0x160(%rbp)
addq $0x260, %rdi            # imm = 0x260
callq 0xb1f0
movq -0x160(%rbp), %rdi
movq %rax, %rsi
movl -0xbc(%rbp), %eax
movl %eax, %edx
movq (%rdi), %rax
callq *0x8(%rax)
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
leaq 0x45311(%rip), %rsi     # 0xc7688
movl $0xa, %edx
callq *0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x842d0
testb $0x1, %al
jne 0x82456
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x84310
movq %rax, -0xc8(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x84380
movq %rax, -0xd8(%rbp)
leaq -0xd8(%rbp), %rdi
movl $0x1, %esi
callq 0x843b0
movq %rax, -0xd0(%rbp)
leaq -0xc8(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x84340
testb $0x1, %al
jne 0x823ed
jmp 0x8243a
leaq -0xc8(%rbp), %rdi
callq 0x84610
movq -0x100(%rbp), %rdi
movzbl (%rax), %esi
callq 0x843f0
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
leaq 0x45272(%rip), %rsi     # 0xc7693
movl $0x2, %edx
callq *0x8(%rax)
leaq -0xc8(%rbp), %rdi
callq 0x84630
jmp 0x823a8
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x84650
movq -0x100(%rbp), %rdi
movzbl (%rax), %esi
callq 0x843f0
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
leaq 0x45227(%rip), %rsi     # 0xc7696
movl $0x3, %edx
callq *0x8(%rax)
movq -0x100(%rbp), %rdi
callq 0x83530
movq -0x100(%rbp), %rdi
movq %rax, -0x168(%rbp)
addq $0x260, %rdi            # imm = 0x260
callq 0xb1f0
movq -0x168(%rbp), %rdi
movq %rax, %rsi
movl -0xbc(%rbp), %eax
movl %eax, %edx
movq (%rdi), %rax
callq *0x8(%rax)
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
leaq 0x451cc(%rip), %rsi     # 0xc769a
movl $0xb, %edx
callq *0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x84690
testb $0x1, %al
jne 0x824e9
jmp 0x82507
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x846b0
movq -0x100(%rbp), %rdi
movzbl %al, %esi
callq 0x843f0
jmp 0x82528
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
leaq 0x42558(%rip), %rsi     # 0xc4a78
movl $0x4, %edx
callq *0x8(%rax)
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
movl $0xa, %esi
callq *(%rax)
movq -0x100(%rbp), %rdi
callq 0x83530
movq -0x100(%rbp), %rdi
movq %rax, -0x170(%rbp)
addq $0x260, %rdi            # imm = 0x260
callq 0xb1f0
movq -0x170(%rbp), %rdi
movq %rax, %rsi
movl -0x1c(%rbp), %eax
movl %eax, %edx
movq (%rdi), %rax
callq *0x8(%rax)
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
movl $0x7d, %esi
callq *(%rax)
jmp 0x82718
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
leaq 0x450f3(%rip), %rsi     # 0xc76a6
movl $0xa, %edx
callq *0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x842d0
testb $0x1, %al
jne 0x8268a
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x84310
movq %rax, -0xe0(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x84380
movq %rax, -0xf0(%rbp)
leaq -0xf0(%rbp), %rdi
movl $0x1, %esi
callq 0x843b0
movq %rax, -0xe8(%rbp)
leaq -0xe0(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x84340
testb $0x1, %al
jne 0x82629
jmp 0x8266e
leaq -0xe0(%rbp), %rdi
callq 0x84610
movq -0x100(%rbp), %rdi
movzbl (%rax), %esi
callq 0x843f0
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
movl $0x2c, %esi
callq *(%rax)
leaq -0xe0(%rbp), %rdi
callq 0x84630
jmp 0x825e4
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x84650
movq -0x100(%rbp), %rdi
movzbl (%rax), %esi
callq 0x843f0
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
leaq 0x4500e(%rip), %rsi     # 0xc76b1
movl $0xc, %edx
callq *0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x84690
testb $0x1, %al
jne 0x826be
jmp 0x826f5
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x846b0
movq -0x100(%rbp), %rdi
movzbl %al, %esi
callq 0x843f0
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
movl $0x7d, %esi
callq *(%rax)
jmp 0x82716
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
leaq 0x44fb0(%rip), %rsi     # 0xc76be
movl $0x5, %edx
callq *0x8(%rax)
jmp 0x82718
jmp 0x8281b
movq -0x10(%rbp), %rax
testb $0x1, 0x8(%rax)
je 0x8274a
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
leaq 0x4398c(%rip), %rsi     # 0xc60cc
movl $0x4, %edx
callq *0x8(%rax)
jmp 0x8276b
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
leaq 0x3fb82(%rip), %rsi     # 0xc22e5
movl $0x5, %edx
callq *0x8(%rax)
jmp 0x8281b
movq -0x100(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x846d0
jmp 0x8281b
movq -0x100(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x84930
jmp 0x8281b
movq -0x100(%rbp), %rdi
movq -0x10(%rbp), %rax
movsd 0x8(%rax), %xmm0
callq 0x84b50
jmp 0x8281b
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
leaq 0x44ef5(%rip), %rsi     # 0xc76c4
movl $0xb, %edx
callq *0x8(%rax)
jmp 0x8281b
movq -0x100(%rbp), %rdi
callq 0x83530
movq %rax, %rdi
movq (%rdi), %rax
leaq 0x42286(%rip), %rsi     # 0xc4a78
movl $0x4, %edx
callq *0x8(%rax)
jmp 0x8281b
leaq 0x3fae2(%rip), %rdi     # 0xc22e5
leaq 0x40163(%rip), %rsi     # 0xc296d
movl $0x3db6, %edx           # imm = 0x3DB6
leaq 0x44d65(%rip), %rcx     # 0xc757b
callq 0xb410
addq $0x170, %rsp            # imm = 0x170
popq %rbp
retq
nopw %cs:(%rax,%rax)
nop