// File: /workspace/github_cpp_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movzbl (%rsi), %eax
cmpq $0x9, %rax
ja 0x3cbc7
movl %r9d, %r13d
movl %r8d, %r15d
movl %ecx, %ebp
movq %rsi, %r12
movq %rdi, %rbx
leaq 0x18616(%rip), %rcx     # 0x549cc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq (%rbx), %rdi
movq (%rdi), %rax
movq 0x8(%rax), %rax
leaq 0x1b27e(%rip), %rsi     # 0x5764e
jmp 0x3c3ef
movq (%rbx), %rdi
movq (%rdi), %rax
movq 0x8(%rax), %rax
cmpb $0x1, 0x8(%r12)
jne 0x3c8a7
leaq 0x1c1ae(%rip), %rsi     # 0x5859d
movl $0x4, %edx
jmp 0x3cb6c
movq (%rbx), %rdi
movq (%rdi), %rax
movq 0x8(%rax), %rax
leaq 0x1d188(%rip), %rsi     # 0x59592
movl $0xb, %edx
jmp 0x3cb6c
movq 0x8(%r12), %rcx
movq (%rcx), %rsi
movq (%rbx), %rdi
movq (%rdi), %rax
cmpq 0x8(%rcx), %rsi
je 0x3c909
testb %dl, %dl
je 0x3c92b
leaq 0x1d0fc(%rip), %rsi     # 0x59537
movl $0x2, %edx
callq *0x8(%rax)
movq %r13, 0x10(%rsp)
movq %r15, 0x8(%rsp)
addl %r15d, %r13d
movq 0x268(%rbx), %rsi
cmpq %r13, %rsi
jb 0x3cb95
movq 0x8(%r12), %rax
movq (%rax), %r14
movq 0x8(%rax), %rax
leaq -0x10(%rax), %rcx
cmpq %rcx, %r14
je 0x3c4df
movl %ebp, 0x4(%rsp)
movzbl %bpl, %ebp
movq 0x8(%rsp), %r15
movq (%rbx), %rdi
movq 0x260(%rbx), %rsi
movq (%rdi), %rax
movq %r13, %rdx
callq *0x8(%rax)
movq %rbx, %rdi
movq %r14, %rsi
movl $0x1, %edx
movl %ebp, %ecx
movl %r15d, %r8d
movl %r13d, %r9d
callq 0x3c386
movq (%rbx), %rdi
movq (%rdi), %rax
movl $0x2, %edx
leaq 0x1d0a6(%rip), %rsi     # 0x59565
callq *0x8(%rax)
addq $0x10, %r14
movq 0x8(%r12), %rcx
movq 0x8(%rcx), %rax
leaq -0x10(%rax), %rdx
cmpq %rdx, %r14
jne 0x3c482
movq (%rcx), %r14
movl 0x4(%rsp), %ebp
cmpq %rax, %r14
je 0x3cbe6
movq (%rbx), %rdi
movq 0x260(%rbx), %rsi
movq (%rdi), %rax
movq %r13, %rdx
callq *0x8(%rax)
movq 0x8(%r12), %rax
movq 0x8(%rax), %rsi
addq $-0x10, %rsi
movzbl %bpl, %ecx
movq %rbx, %rdi
movl $0x1, %edx
movq 0x8(%rsp), %r8
movl %r13d, %r9d
callq 0x3c386
movq (%rbx), %rdi
movq (%rdi), %rax
movl $0xa, %esi
callq *(%rax)
movq (%rbx), %rdi
movq 0x260(%rbx), %rsi
movl 0x10(%rsp), %edx
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x3c9ab
movq (%rbx), %rdi
movq (%rdi), %rax
movl $0x22, %esi
callq *(%rax)
movq 0x8(%r12), %rsi
movzbl %bpl, %edx
movq %rbx, %rdi
callq 0x3cd56
movq (%rbx), %rdi
movq (%rdi), %rax
movq (%rax), %rax
movl $0x22, %esi
jmp 0x3cb46
movsd 0x8(%r12), %xmm0
movq %rbx, %rdi
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3d674
movq 0x8(%r12), %rax
cmpq $0x0, 0x28(%rax)
movq (%rbx), %rdi
movq (%rdi), %rax
je 0x3c916
testb %dl, %dl
movq %r13, 0x10(%rsp)
movq %r15, 0x8(%rsp)
movl %ebp, 0x4(%rsp)
je 0x3c9be
leaq 0x1ce5e(%rip), %rsi     # 0x59426
movl $0x2, %edx
callq *0x8(%rax)
leal (%r15,%r13), %eax
movq 0x268(%rbx), %rsi
movq %rax, 0x20(%rsp)
cmpq %rax, %rsi
jb 0x3cbae
movq 0x8(%r12), %r13
movq 0x18(%r13), %rbp
cmpq $0x1, 0x28(%r13)
je 0x3c6ab
xorl %r15d, %r15d
movzbl 0x4(%rsp), %eax
movl %eax, 0x1c(%rsp)
movq 0x20(%rsp), %r14
movq (%rbx), %rdi
movq 0x260(%rbx), %rsi
movq (%rdi), %rax
movq %r14, %rdx
callq *0x8(%rax)
movq (%rbx), %rdi
movq (%rdi), %rax
movl $0x22, %esi
callq *(%rax)
leaq 0x20(%rbp), %rsi
movq %rbx, %rdi
movl 0x1c(%rsp), %r13d
movl %r13d, %edx
callq 0x3cd56
movq (%rbx), %rdi
movq (%rdi), %rax
movl $0x3, %edx
leaq 0x1cf1c(%rip), %rsi     # 0x59570
callq *0x8(%rax)
leaq 0x40(%rbp), %rsi
movq %rbx, %rdi
movl $0x1, %edx
movl %r13d, %ecx
movq 0x8(%rsp), %r8
movl %r14d, %r9d
callq 0x3c386
movq (%rbx), %rdi
movq (%rdi), %rax
movl $0x2, %edx
leaq 0x1cee0(%rip), %rsi     # 0x59565
callq *0x8(%rax)
incq %r15
movq %rbp, %rdi
callq 0x94b0
movq %rax, %rbp
movq 0x8(%r12), %r13
movq 0x28(%r13), %rax
decq %rax
cmpq %rax, %r15
jb 0x3c60e
addq $0x8, %r13
cmpq %r13, %rbp
je 0x3cc24
movq %rbp, %rdi
callq 0x94b0
cmpq %r13, %rax
movq 0x8(%rsp), %r15
movq 0x20(%rsp), %r12
jne 0x3cc62
movq (%rbx), %rdi
movq 0x260(%rbx), %rsi
movq (%rdi), %rax
movq %r12, %rdx
callq *0x8(%rax)
movq (%rbx), %rdi
movq (%rdi), %rax
movl $0x22, %esi
callq *(%rax)
leaq 0x20(%rbp), %rsi
movzbl 0x4(%rsp), %r14d
movq %rbx, %rdi
movl %r14d, %edx
callq 0x3cd56
movq (%rbx), %rdi
movq (%rdi), %rax
leaq 0x1ce5b(%rip), %rsi     # 0x59570
movl $0x3, %edx
callq *0x8(%rax)
addq $0x40, %rbp
movq %rbx, %rdi
movq %rbp, %rsi
movl $0x1, %edx
movl %r14d, %ecx
movl %r15d, %r8d
movl %r12d, %r9d
callq 0x3c386
movq (%rbx), %rdi
movq (%rdi), %rax
movl $0xa, %esi
callq *(%rax)
movq (%rbx), %rdi
movq 0x260(%rbx), %rsi
movl 0x10(%rsp), %edx
jmp 0x3cb32
movq 0x8(%r12), %rsi
movq %rbx, %rdi
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3d3a0
movq 0x8(%r12), %rsi
movq %rbx, %rdi
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3d54a
movq (%rbx), %rdi
movq (%rdi), %rax
movq 0x8(%rax), %rax
testb %dl, %dl
je 0x3c8b3
leaq 0x1cc7d(%rip), %rsi     # 0x59426
movl $0x2, %edx
callq *%rax
addl %r13d, %r15d
movq 0x268(%rbx), %rsi
cmpq %r15, %rsi
jb 0x3cb7c
movq (%rbx), %rdi
movq 0x260(%rbx), %rsi
movq (%rdi), %rax
movq %r15, %rbp
movq %r15, %rdx
callq *0x8(%rax)
movq (%rbx), %rdi
movq (%rdi), %rax
leaq 0x1cd70(%rip), %rsi     # 0x59556
movl $0xa, %edx
callq *0x8(%rax)
movq 0x8(%r12), %rax
movq (%rax), %r15
movq 0x8(%rax), %rax
cmpq %rax, %r15
je 0x3c84a
decq %rax
cmpq %rax, %r15
je 0x3c83f
leaq 0x1cd53(%rip), %r14     # 0x59561
movzbl (%r15), %esi
movq %rbx, %rdi
callq 0x3d318
movq (%rbx), %rdi
movq (%rdi), %rax
movl $0x2, %edx
movq %r14, %rsi
callq *0x8(%rax)
incq %r15
movq 0x8(%r12), %rax
movq 0x8(%rax), %rax
decq %rax
cmpq %rax, %r15
jne 0x3c80e
movzbl (%rax), %esi
movq %rbx, %rdi
callq 0x3d318
movq (%rbx), %rdi
movq (%rdi), %rax
leaq 0x1cd0d(%rip), %rsi     # 0x59564
movl $0x3, %edx
callq *0x8(%rax)
movq (%rbx), %rdi
movq 0x260(%rbx), %rsi
movq (%rdi), %rax
movq %rbp, %rdx
callq *0x8(%rax)
movq (%rbx), %rdi
movq (%rdi), %rax
leaq 0x1cce9(%rip), %rsi     # 0x59568
movl $0xb, %edx
callq *0x8(%rax)
movq 0x8(%r12), %rax
cmpb $0x1, 0x19(%rax)
jne 0x3cb03
movzbl 0x18(%rax), %esi
movq %rbx, %rdi
callq 0x3d318
jmp 0x3cb18
leaq 0x18dab(%rip), %rsi     # 0x55659
jmp 0x3cb67
leaq 0x1ccba(%rip), %rsi     # 0x59574
movl $0xa, %edx
callq *%rax
movq 0x8(%r12), %rax
movq (%rax), %r14
movq 0x8(%rax), %rax
cmpq %rax, %r14
je 0x3cad5
decq %rax
cmpq %rax, %r14
je 0x3caca
movzbl (%r14), %esi
movq %rbx, %rdi
callq 0x3d318
movq (%rbx), %rdi
movq (%rdi), %rax
movl $0x2c, %esi
callq *(%rax)
incq %r14
movq 0x8(%r12), %rax
movq 0x8(%rax), %rax
jmp 0x3c8d6
movq 0x8(%rax), %rax
leaq 0x1cc20(%rip), %rsi     # 0x59534
jmp 0x3c921
movq 0x8(%rax), %rax
leaq 0x1cb02(%rip), %rsi     # 0x59423
movl $0x2, %edx
jmp 0x3cb6c
movl $0x5b, %esi
callq *(%rax)
movq 0x8(%r12), %rax
movq (%rax), %r14
movq 0x8(%rax), %rax
leaq -0x10(%rax), %rsi
cmpq %rsi, %r14
je 0x3c98e
movl %ebp, 0x4(%rsp)
movzbl %bpl, %ebp
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
movl %ebp, %ecx
movl %r15d, %r8d
movl %r13d, %r9d
callq 0x3c386
movq (%rbx), %rdi
movq (%rdi), %rax
movl $0x2c, %esi
callq *(%rax)
addq $0x10, %r14
movq 0x8(%r12), %rcx
movq 0x8(%rcx), %rax
leaq -0x10(%rax), %rsi
cmpq %rsi, %r14
jne 0x3c94f
movq (%rcx), %r14
movl 0x4(%rsp), %ebp
cmpq %rax, %r14
je 0x3cc05
movzbl %bpl, %ecx
movq %rbx, %rdi
xorl %edx, %edx
movl %r15d, %r8d
movl %r13d, %r9d
callq 0x3c386
movq (%rbx), %rdi
movq (%rdi), %rax
movq (%rax), %rax
movl $0x5d, %esi
jmp 0x3cb46
movl $0x7b, %esi
callq *(%rax)
movq 0x8(%r12), %r14
movq 0x18(%r14), %r13
cmpq $0x1, 0x28(%r14)
je 0x3ca52
xorl %r15d, %r15d
movzbl %bpl, %ebp
movq (%rbx), %rdi
movq (%rdi), %rax
movl $0x22, %esi
callq *(%rax)
leaq 0x20(%r13), %rsi
movq %rbx, %rdi
movl %ebp, %edx
callq 0x3cd56
movq (%rbx), %rdi
movq (%rdi), %rax
movl $0x2, %edx
leaq 0x1cb80(%rip), %rsi     # 0x59589
callq *0x8(%rax)
leaq 0x40(%r13), %rsi
movq %rbx, %rdi
xorl %edx, %edx
movl %ebp, %ecx
movq 0x8(%rsp), %r8
movq 0x10(%rsp), %r9
callq 0x3c386
movq (%rbx), %rdi
movq (%rdi), %rax
movl $0x2c, %esi
callq *(%rax)
incq %r15
movq %r13, %rdi
callq 0x94b0
movq %rax, %r13
movq 0x8(%r12), %r14
movq 0x28(%r14), %rax
decq %rax
cmpq %rax, %r15
jb 0x3c9dc
addq $0x8, %r14
cmpq %r14, %r13
je 0x3cc43
movq %r13, %rdi
callq 0x94b0
cmpq %r14, %rax
movq 0x8(%rsp), %r14
movl 0x4(%rsp), %ebp
jne 0x3cc81
movq (%rbx), %rdi
movq (%rdi), %rax
movl $0x22, %esi
callq *(%rax)
leaq 0x20(%r13), %rsi
movzbl %bpl, %ebp
movq %rbx, %rdi
movl %ebp, %edx
callq 0x3cd56
movq (%rbx), %rdi
movq (%rdi), %rax
leaq 0x1cae4(%rip), %rsi     # 0x59589
movl $0x2, %edx
callq *0x8(%rax)
addq $0x40, %r13
movq %rbx, %rdi
movq %r13, %rsi
xorl %edx, %edx
movl %ebp, %ecx
movl %r14d, %r8d
movq 0x10(%rsp), %r9
callq 0x3c386
jmp 0x3cb38
movzbl (%rax), %esi
movq %rbx, %rdi
callq 0x3d318
movq (%rbx), %rdi
movq (%rdi), %rax
leaq 0x1ca9d(%rip), %rsi     # 0x5957f
movl $0xc, %edx
callq *0x8(%rax)
movq 0x8(%r12), %rax
cmpb $0x1, 0x19(%rax)
jne 0x3cb56
movzbl 0x18(%rax), %esi
movq %rbx, %rdi
callq 0x3d318
jmp 0x3cb38
movq (%rbx), %rdi
movq (%rdi), %rax
leaq 0x1ab3e(%rip), %rsi     # 0x5764e
movl $0x4, %edx
callq *0x8(%rax)
movq (%rbx), %rdi
movq (%rdi), %rax
movl $0xa, %esi
callq *(%rax)
movq (%rbx), %rdi
movq 0x260(%rbx), %rsi
movl %r13d, %edx
movq (%rdi), %rax
callq *0x8(%rax)
movq (%rbx), %rdi
movq (%rdi), %rax
movq (%rax), %rax
movl $0x7d, %esi
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmpq *%rax
movq (%rbx), %rdi
movq (%rdi), %rax
movq 0x8(%rax), %rax
leaq 0x1ca25(%rip), %rsi     # 0x5958c
movl $0x5, %edx
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmpq *%rax
leaq 0x260(%rbx), %rdi
addq %rsi, %rsi
movl $0x20, %edx
callq 0x90f0
jmp 0x3c7c3
leaq 0x260(%rbx), %rdi
addq %rsi, %rsi
movl $0x20, %edx
callq 0x90f0
jmp 0x3c460
leaq 0x260(%rbx), %rdi
addq %rsi, %rsi
movl $0x20, %edx
callq 0x90f0
jmp 0x3c5e9
leaq 0x18a8b(%rip), %rdi     # 0x55659
leaq 0x1910c(%rip), %rsi     # 0x55ce1
leaq 0x1c86d(%rip), %rcx     # 0x59449
movl $0x3db6, %edx           # imm = 0x3DB6
callq 0x92a0
leaq 0x1c94d(%rip), %rdi     # 0x5953a
leaq 0x190ed(%rip), %rsi     # 0x55ce1
leaq 0x1c84e(%rip), %rcx     # 0x59449
movl $0x3d1b, %edx           # imm = 0x3D1B
callq 0x92a0
leaq 0x1c92e(%rip), %rdi     # 0x5953a
leaq 0x190ce(%rip), %rsi     # 0x55ce1
leaq 0x1c82f(%rip), %rcx     # 0x59449
movl $0x3d30, %edx           # imm = 0x3D30
callq 0x92a0
leaq 0x1c7fe(%rip), %rdi     # 0x59429
leaq 0x190af(%rip), %rsi     # 0x55ce1
leaq 0x1c810(%rip), %rcx     # 0x59449
movl $0x3cd5, %edx           # imm = 0x3CD5
callq 0x92a0
leaq 0x1c7df(%rip), %rdi     # 0x59429
leaq 0x19090(%rip), %rsi     # 0x55ce1
leaq 0x1c7f1(%rip), %rcx     # 0x59449
movl $0x3cf1, %edx           # imm = 0x3CF1
callq 0x92a0
leaq 0x1c8a0(%rip), %rdi     # 0x59509
leaq 0x19071(%rip), %rsi     # 0x55ce1
leaq 0x1c7d2(%rip), %rcx     # 0x59449
movl $0x3cd6, %edx           # imm = 0x3CD6
callq 0x92a0
leaq 0x1c881(%rip), %rdi     # 0x59509
leaq 0x19052(%rip), %rsi     # 0x55ce1
leaq 0x1c7b3(%rip), %rcx     # 0x59449
movl $0x3cf2, %edx           # imm = 0x3CF2
callq 0x92a0