// File: yeonnic[P]solparser/././argx.hpp
// Function: _gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>> args::ArgumentParser::Parse<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>>(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, __gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>)
It Parse(It begin, It end)
            {
                bool terminated = false;
                std::vector<Command *> commands = GetCommands();

                // Check all arg chunks
                for (auto it = begin; it != end; ++it)
                {
                    if (Complete(it, end))
                    {
                        return end;
                    }

                    const auto &chunk = *it;

                    if (!terminated && chunk == terminator)
                    {
                        terminated = true;
                    } else if (!terminated && ParseOption(chunk) == OptionType::LongFlag)
                    {
                        if (!ParseLong(it, end))
                        {
                            return it;
                        }
                    } else if (!terminated && ParseOption(chunk) == OptionType::ShortFlag)
                    {
                        if (!ParseShort(it, end))
                        {
                            return it;
                        }
                    } else if (!terminated && !commands.empty())
                    {
                        auto itCommand = std::find_if(commands.begin(), commands.end(), [&chunk](Command *c) { return c->Name() == chunk; });
                        if (itCommand == commands.end())
                        {
                            const std::string errorMessage("Unknown command: " + chunk);
#ifndef ARGS_NOEXCEPT
                            throw ParseError(errorMessage);
#else
                            error = Error::Parse;
                            errorMsg = errorMessage;
                            return it;
#endif
                        }

                        SelectCommand(*itCommand);

                        if (const auto &coroutine = GetCoroutine())
                        {
                            ++it;
                            RaiiSubparser coro(*this, std::vector<std::string>(it, end));
                            coroutine(coro.Parser());
#ifdef ARGS_NOEXCEPT
                            error = GetError();
                            if (error != Error::None)
                            {
                                return end;
                            }

                            if (!coro.Parser().IsParsed())
                            {
                                error = Error::Usage;
                                return end;
                            }
#else
                            if (!coro.Parser().IsParsed())
                            {
                                throw UsageError("Subparser::Parse was not called");
                            }
#endif

                            break;
                        }

                        commands = GetCommands();
                    } else
                    {
                        auto pos = GetNextPositional();
                        if (pos)
                        {
                            pos->ParseValue(chunk);

                            if (pos->KickOut())
                            {
                                return ++it;
                            }
                        } else
                        {
                            const std::string errorMessage("Passed in argument, but no positional arguments were ready to receive it: " + chunk);
#ifndef ARGS_NOEXCEPT
                            throw ParseError(errorMessage);
#else
                            error = Error::Parse;
                            errorMsg = errorMessage;
                            return it;
#endif
                        }
                    }

                    if (!readCompletion && completion != nullptr && completion->Matched())
                    {
#ifdef ARGS_NOEXCEPT
                        error = Error::Completion;
#endif
                        readCompletion = true;
                        ++it;
                        size_t argsLeft = std::distance(it, end);
                        if (completion->cword == 0 || argsLeft <= 1 || completion->cword >= argsLeft)
                        {
#ifndef ARGS_NOEXCEPT
                            throw Completion("");
#endif
                        }

                        std::vector<std::string> curArgs(++it, end);
                        curArgs.resize(completion->cword);

                        if (completion->syntax == "bash")
                        {
                            // bash tokenizes --flag=value as --flag=value
                            for (size_t idx = 0; idx < curArgs.size(); )
                            {
                                if (idx > 0 && curArgs[idx] == "=")
                                {
                                    curArgs[idx - 1] += "=";
                                    if (idx + 1 < curArgs.size())
                                    {
                                        curArgs[idx - 1] += curArgs[idx + 1];
                                        curArgs.erase(curArgs.begin() + idx, curArgs.begin() + idx + 2);
                                    } else
                                    {
                                        curArgs.erase(curArgs.begin() + idx);
                                    }
                                } else
                                {
                                    ++idx;
                                }
                            }

                        }
#ifndef ARGS_NOEXCEPT
                        try
                        {
                            Parse(curArgs.begin(), curArgs.end());
                            throw Completion("");
                        }
                        catch (Completion &)
                        {
                            throw;
                        }
                        catch (args::Error&)
                        {
                            throw Completion("");
                        }
#else
                        return Parse(curArgs.begin(), curArgs.end());
#endif
                    }
                }

                Validate(shortprefix, longprefix);
                return end;
            }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x4a0, %rsp            # imm = 0x4A0
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rdi, -0x20(%rbp)
movq -0x20(%rbp), %rsi
movq %rsi, -0x388(%rbp)
movb $0x0, -0x21(%rbp)
movq (%rsi), %rax
leaq -0x40(%rbp), %rdi
callq *0x28(%rax)
movq -0x10(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq -0x48(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x20680
testb $0x1, %al
jne 0x233fe
jmp 0x2422a
movq -0x388(%rbp), %rdi
movq -0x48(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x50(%rbp), %rsi
movq -0x58(%rbp), %rdx
callq 0x24290
movb %al, -0x389(%rbp)
jmp 0x2342a
movb -0x389(%rbp), %al
testb $0x1, %al
jne 0x23436
jmp 0x2345b
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x68(%rbp)
jmp 0x2425f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x24275
leaq -0x48(%rbp), %rdi
callq 0x206c0
movq %rax, -0x70(%rbp)
testb $0x1, -0x21(%rbp)
jne 0x23494
movq -0x388(%rbp), %rsi
movq -0x70(%rbp), %rdi
addq $0x1d8, %rsi            # imm = 0x1D8
callq 0x1b810
testb $0x1, %al
jne 0x2348b
jmp 0x23494
movb $0x1, -0x21(%rbp)
jmp 0x23a7e
testb $0x1, -0x21(%rbp)
jne 0x23508
movq -0x388(%rbp), %rdi
movq -0x70(%rbp), %rsi
xorl %edx, %edx
callq 0x25010
movl %eax, -0x390(%rbp)
jmp 0x234b4
movl -0x390(%rbp), %eax
cmpl $0x0, %eax
jne 0x23508
movq -0x388(%rbp), %rdi
movq -0x18(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rdx
leaq -0x48(%rbp), %rsi
callq 0x250f0
movb %al, -0x391(%rbp)
jmp 0x234e3
movb -0x391(%rbp), %al
testb $0x1, %al
jne 0x23503
jmp 0x234ef
movq -0x48(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x68(%rbp)
jmp 0x2425f
jmp 0x23a7c
testb $0x1, -0x21(%rbp)
jne 0x2357c
movq -0x388(%rbp), %rdi
movq -0x70(%rbp), %rsi
xorl %edx, %edx
callq 0x25010
movl %eax, -0x398(%rbp)
jmp 0x23528
movl -0x398(%rbp), %eax
cmpl $0x1, %eax
jne 0x2357c
movq -0x388(%rbp), %rdi
movq -0x18(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x80(%rbp), %rdx
leaq -0x48(%rbp), %rsi
callq 0x255b0
movb %al, -0x399(%rbp)
jmp 0x23557
movb -0x399(%rbp), %al
testb $0x1, %al
jne 0x23577
jmp 0x23563
movq -0x48(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x68(%rbp)
jmp 0x2425f
jmp 0x23a7a
testb $0x1, -0x21(%rbp)
jne 0x23965
leaq -0x40(%rbp), %rdi
callq 0x25c50
testb $0x1, %al
jne 0x23965
leaq -0x40(%rbp), %rdi
movq %rdi, -0x3b0(%rbp)
callq 0x10180
movq -0x3b0(%rbp), %rdi
movq %rax, -0x90(%rbp)
callq 0x10880
movq %rax, -0x98(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0x90(%rbp), %rdi
movq -0x98(%rbp), %rsi
movq -0xa0(%rbp), %rdx
callq 0x25c90
movq %rax, -0x3a8(%rbp)
jmp 0x235ef
movq -0x3a8(%rbp), %rax
movq %rax, -0x88(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x10880
movq %rax, -0xa8(%rbp)
leaq -0x88(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x25cf0
testb $0x1, %al
jne 0x23629
jmp 0x236bd
movq -0x70(%rbp), %rdx
leaq 0x13c78(%rip), %rsi     # 0x372ac
leaq -0xc8(%rbp), %rdi
callq 0x16920
jmp 0x23642
movl $0x10, %edi
callq 0x61a0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x3b8(%rbp)
leaq -0xc8(%rbp), %rsi
callq 0x25d30
jmp 0x23667
movq -0x3b8(%rbp), %rdi
leaq 0x28d4b(%rip), %rsi     # 0x4c3c0
leaq -0x2b2c(%rip), %rdx     # 0x20b50
callq 0x65e0
jmp 0x2428f
movq -0x3b8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
callq 0x6270
jmp 0x236ac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x61f0
jmp 0x24275
leaq -0x88(%rbp), %rdi
callq 0x25db0
movq -0x388(%rbp), %rdi
movq (%rax), %rsi
callq 0x25d70
movq -0x388(%rbp), %rdi
callq 0x25dd0
movq %rax, -0x3c0(%rbp)
jmp 0x236ed
movq -0x3c0(%rbp), %rax
movq %rax, -0xd0(%rbp)
movq -0xd0(%rbp), %rdi
callq 0x16380
testb $0x1, %al
jne 0x23710
jmp 0x2392b
leaq -0x48(%rbp), %rdi
callq 0x206e0
movq -0x48(%rbp), %rax
movq %rax, -0x1b8(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x1c0(%rbp)
leaq -0x1c1(%rbp), %rdi
movq %rdi, -0x3c8(%rbp)
callq 0x1c7b0
movq -0x3c8(%rbp), %rcx
movq -0x1b8(%rbp), %rsi
movq -0x1c0(%rbp), %rdx
leaq -0x1b0(%rbp), %rdi
callq 0x25e20
jmp 0x23765
movq -0x388(%rbp), %rsi
leaq -0x198(%rbp), %rdi
leaq -0x1b0(%rbp), %rdx
callq 0x25ea0
jmp 0x23781
leaq -0x1b0(%rbp), %rdi
callq 0x13c70
leaq -0x1c1(%rbp), %rdi
callq 0x1c830
movq -0xd0(%rbp), %rax
movq %rax, -0x3d0(%rbp)
leaq -0x198(%rbp), %rdi
callq 0x16450
movq -0x3d0(%rbp), %rdi
movq %rax, %rsi
callq 0x16410
jmp 0x237c4
leaq -0x198(%rbp), %rdi
callq 0x16450
movq %rax, %rdi
callq 0x25f70
movb %al, -0x3d1(%rbp)
jmp 0x237e0
movb -0x3d1(%rbp), %al
testb $0x1, %al
jne 0x23902
jmp 0x237f0
movb $0x1, -0x1ea(%rbp)
movl $0x10, %edi
callq 0x61a0
movq %rax, -0x3e8(%rbp)
leaq -0x1e9(%rbp), %rdi
movq %rdi, -0x3e0(%rbp)
callq 0x6630
movq -0x3e0(%rbp), %rdx
leaq 0x13a95(%rip), %rsi     # 0x372be
leaq -0x1e8(%rbp), %rdi
callq 0x64f0
jmp 0x23837
movq -0x3e8(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
callq 0x157a0
jmp 0x2384c
movq -0x3e8(%rbp), %rdi
movb $0x0, -0x1ea(%rbp)
leaq 0x28e07(%rip), %rsi     # 0x4c668
leaq -0xe088(%rip), %rdx     # 0x157e0
callq 0x65e0
jmp 0x2428f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x23898
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x1b0(%rbp), %rdi
callq 0x13c70
leaq -0x1c1(%rbp), %rdi
callq 0x1c830
jmp 0x24275
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x2391a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x238dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x1e8(%rbp), %rdi
callq 0x61f0
leaq -0x1e9(%rbp), %rdi
callq 0x6390
testb $0x1, -0x1ea(%rbp)
jne 0x238f4
jmp 0x23900
movq -0x3e8(%rbp), %rdi
callq 0x6270
jmp 0x2391a
movl $0x2, -0x68(%rbp)
leaq -0x198(%rbp), %rdi
callq 0x16470
jmp 0x2422a
leaq -0x198(%rbp), %rdi
callq 0x16470
jmp 0x24275
movq -0x388(%rbp), %rsi
movq (%rsi), %rax
movq 0x28(%rax), %rax
leaq -0x208(%rbp), %rdi
callq *%rax
jmp 0x23944
leaq -0x40(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0x25f90
leaq -0x208(%rbp), %rdi
callq 0x10050
jmp 0x23a78
movq -0x388(%rbp), %rdi
movq (%rdi), %rax
movq 0x40(%rax), %rax
callq *%rax
movq %rax, -0x3f0(%rbp)
jmp 0x2397e
movq -0x3f0(%rbp), %rax
movq %rax, -0x210(%rbp)
cmpq $0x0, -0x210(%rbp)
je 0x239e2
movq -0x210(%rbp), %rdi
movq -0x70(%rbp), %rsi
movq (%rdi), %rax
movq 0x98(%rax), %rax
callq *%rax
jmp 0x239af
movq -0x210(%rbp), %rdi
callq 0x25fc0
testb $0x1, %al
jne 0x239c1
jmp 0x239dd
leaq -0x48(%rbp), %rdi
callq 0x206e0
movq (%rax), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x68(%rbp)
jmp 0x2425f
jmp 0x23a76
movq -0x70(%rbp), %rdx
leaq 0x138f1(%rip), %rsi     # 0x372de
leaq -0x230(%rbp), %rdi
callq 0x16920
jmp 0x239fb
movl $0x10, %edi
callq 0x61a0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x3f8(%rbp)
leaq -0x230(%rbp), %rsi
callq 0x25d30
jmp 0x23a20
movq -0x3f8(%rbp), %rdi
leaq 0x28992(%rip), %rsi     # 0x4c3c0
leaq -0x2ee5(%rip), %rdx     # 0x20b50
callq 0x65e0
jmp 0x2428f
movq -0x3f8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
callq 0x6270
jmp 0x23a65
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x230(%rbp), %rdi
callq 0x61f0
jmp 0x24275
jmp 0x23a78
jmp 0x23a7a
jmp 0x23a7c
jmp 0x23a7e
movq -0x388(%rbp), %rax
testb $0x1, 0x208(%rax)
jne 0x2421a
movq -0x388(%rbp), %rax
cmpq $0x0, 0x200(%rax)
je 0x2421a
movq -0x388(%rbp), %rax
movq 0x200(%rax), %rdi
movq (%rdi), %rax
callq *0x10(%rax)
testb $0x1, %al
jne 0x23ac4
jmp 0x2421a
movq -0x388(%rbp), %rax
movb $0x1, 0x208(%rax)
leaq -0x48(%rbp), %rdi
callq 0x206e0
movq -0x48(%rbp), %rax
movq %rax, -0x240(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x248(%rbp)
movq -0x240(%rbp), %rdi
movq -0x248(%rbp), %rsi
callq 0x25ff0
movq %rax, -0x400(%rbp)
jmp 0x23b0d
movq -0x388(%rbp), %rax
movq -0x400(%rbp), %rcx
movq %rcx, -0x238(%rbp)
movq 0x200(%rax), %rax
cmpq $0x0, 0x128(%rax)
je 0x23b5f
cmpq $0x1, -0x238(%rbp)
jbe 0x23b5f
movq -0x388(%rbp), %rax
movq 0x200(%rax), %rax
movq 0x128(%rax), %rax
cmpq -0x238(%rbp), %rax
jb 0x23c2f
movb $0x1, -0x26a(%rbp)
movl $0x10, %edi
callq 0x61a0
movq %rax, -0x410(%rbp)
leaq -0x269(%rbp), %rdi
movq %rdi, -0x408(%rbp)
callq 0x6630
movq -0x408(%rbp), %rdx
leaq 0x134e2(%rip), %rsi     # 0x3707a
leaq -0x268(%rbp), %rdi
callq 0x64f0
jmp 0x23ba6
movq -0x410(%rbp), %rdi
leaq -0x268(%rbp), %rsi
callq 0x26030
jmp 0x23bbb
movq -0x410(%rbp), %rdi
movb $0x0, -0x26a(%rbp)
leaq 0x287c0(%rip), %rsi     # 0x4c390
leaq 0x2499(%rip), %rdx      # 0x26070
callq 0x65e0
jmp 0x2428f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x23c07
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x268(%rbp), %rdi
callq 0x61f0
leaq -0x269(%rbp), %rdi
callq 0x6390
testb $0x1, -0x26a(%rbp)
jne 0x23c1e
jmp 0x23c2a
movq -0x410(%rbp), %rdi
callq 0x6270
jmp 0x24275
leaq -0x48(%rbp), %rdi
callq 0x206e0
movq (%rax), %rax
movq %rax, -0x290(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x298(%rbp)
leaq -0x299(%rbp), %rdi
movq %rdi, -0x418(%rbp)
callq 0x1c7b0
movq -0x418(%rbp), %rcx
movq -0x290(%rbp), %rsi
movq -0x298(%rbp), %rdx
leaq -0x288(%rbp), %rdi
callq 0x25e20
jmp 0x23c83
leaq -0x299(%rbp), %rdi
callq 0x1c830
movq -0x388(%rbp), %rax
movq 0x200(%rax), %rax
movq 0x128(%rax), %rsi
leaq -0x288(%rbp), %rdi
callq 0x26090
jmp 0x23cb2
movq -0x388(%rbp), %rax
movq 0x200(%rax), %rdi
addq $0x130, %rdi            # imm = 0x130
leaq 0x1365b(%rip), %rsi     # 0x37329
callq 0x26120
movb %al, -0x419(%rbp)
jmp 0x23cdb
movb -0x419(%rbp), %al
testb $0x1, %al
jne 0x23cea
jmp 0x23f9b
movq $0x0, -0x2a8(%rbp)
movq -0x2a8(%rbp), %rax
movq %rax, -0x428(%rbp)
leaq -0x288(%rbp), %rdi
callq 0x15300
movq %rax, %rcx
movq -0x428(%rbp), %rax
cmpq %rcx, %rax
jae 0x23f99
cmpq $0x0, -0x2a8(%rbp)
jbe 0x23f82
movq -0x2a8(%rbp), %rsi
leaq -0x288(%rbp), %rdi
callq 0x26150
movq %rax, %rdi
leaq 0x13fa9(%rip), %rsi     # 0x37cf6
callq 0x26120
movb %al, -0x429(%rbp)
jmp 0x23d5a
movb -0x429(%rbp), %al
testb $0x1, %al
jne 0x23d69
jmp 0x23f82
movq -0x2a8(%rbp), %rsi
decq %rsi
leaq -0x288(%rbp), %rdi
callq 0x26150
movq %rax, %rdi
leaq 0x13f6d(%rip), %rsi     # 0x37cf6
callq 0x6310
jmp 0x23d90
movq -0x2a8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x438(%rbp)
leaq -0x288(%rbp), %rdi
callq 0x15300
movq %rax, %rcx
movq -0x438(%rbp), %rax
cmpq %rcx, %rax
jae 0x23f0f
movq -0x2a8(%rbp), %rsi
incq %rsi
leaq -0x288(%rbp), %rdi
movq %rdi, -0x448(%rbp)
callq 0x26150
movq -0x448(%rbp), %rdi
movq %rax, -0x440(%rbp)
movq -0x2a8(%rbp), %rsi
decq %rsi
callq 0x26150
movq -0x440(%rbp), %rsi
movq %rax, %rdi
callq 0x6450
jmp 0x23e0c
leaq -0x288(%rbp), %rdi
movq %rdi, -0x458(%rbp)
callq 0x13da0
movq %rax, -0x2c0(%rbp)
movq -0x2a8(%rbp), %rsi
leaq -0x2c0(%rbp), %rdi
callq 0x13dd0
movq %rax, -0x2b8(%rbp)
leaq -0x2b0(%rbp), %rdi
leaq -0x2b8(%rbp), %rsi
callq 0x13bd0
movq -0x458(%rbp), %rdi
callq 0x13da0
movq %rax, -0x2e0(%rbp)
movq -0x2a8(%rbp), %rsi
leaq -0x2e0(%rbp), %rdi
callq 0x13dd0
movq %rax, -0x2d8(%rbp)
leaq -0x2d8(%rbp), %rdi
movl $0x2, %esi
callq 0x13dd0
movq %rax, -0x2d0(%rbp)
leaq -0x2c8(%rbp), %rdi
leaq -0x2d0(%rbp), %rsi
callq 0x13bd0
movq -0x458(%rbp), %rdi
movq -0x2b0(%rbp), %rsi
movq -0x2c8(%rbp), %rdx
callq 0x26170
movq %rax, -0x450(%rbp)
jmp 0x23ece
movq -0x450(%rbp), %rax
movq %rax, -0x2e8(%rbp)
jmp 0x23f80
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x299(%rbp), %rdi
callq 0x1c830
jmp 0x24275
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x2420c
leaq -0x288(%rbp), %rdi
movq %rdi, -0x468(%rbp)
callq 0x13da0
movq %rax, -0x300(%rbp)
movq -0x2a8(%rbp), %rsi
leaq -0x300(%rbp), %rdi
callq 0x13dd0
movq %rax, -0x2f8(%rbp)
leaq -0x2f0(%rbp), %rdi
leaq -0x2f8(%rbp), %rsi
callq 0x13bd0
movq -0x468(%rbp), %rdi
movq -0x2f0(%rbp), %rsi
callq 0x26200
movq %rax, -0x460(%rbp)
jmp 0x23f72
movq -0x460(%rbp), %rax
movq %rax, -0x308(%rbp)
jmp 0x23f94
movq -0x2a8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x2a8(%rbp)
jmp 0x23cf5
jmp 0x23f9b
leaq -0x288(%rbp), %rdi
movq %rdi, -0x478(%rbp)
callq 0x13da0
movq -0x478(%rbp), %rdi
movq %rax, -0x310(%rbp)
callq 0x14490
movq -0x388(%rbp), %rdi
movq %rax, -0x318(%rbp)
movq -0x310(%rbp), %rsi
movq -0x318(%rbp), %rdx
callq 0x26270
movq %rax, -0x470(%rbp)
jmp 0x23feb
movq -0x470(%rbp), %rax
movq %rax, -0x320(%rbp)
movb $0x1, -0x342(%rbp)
movl $0x10, %edi
callq 0x61a0
movq %rax, -0x488(%rbp)
leaq -0x341(%rbp), %rdi
movq %rdi, -0x480(%rbp)
callq 0x6630
movq -0x480(%rbp), %rdx
leaq 0x13048(%rip), %rsi     # 0x3707a
leaq -0x340(%rbp), %rdi
callq 0x64f0
jmp 0x24040
movq -0x488(%rbp), %rdi
leaq -0x340(%rbp), %rsi
callq 0x26030
jmp 0x24055
movq -0x488(%rbp), %rdi
movb $0x0, -0x342(%rbp)
leaq 0x28326(%rip), %rsi     # 0x4c390
leaq 0x1fff(%rip), %rdx      # 0x26070
callq 0x65e0
jmp 0x2428f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x240d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x240af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x340(%rbp), %rdi
callq 0x61f0
leaq -0x341(%rbp), %rdi
callq 0x6390
testb $0x1, -0x342(%rbp)
jne 0x240c6
jmp 0x240d2
movq -0x488(%rbp), %rdi
callq 0x6270
jmp 0x240d4
movl -0x64(%rbp), %eax
movl %eax, -0x48c(%rbp)
movl $0x2, %ecx
cmpl %ecx, %eax
jne 0x24100
movq -0x60(%rbp), %rdi
callq 0x6130
movq %rax, -0x380(%rbp)
callq 0x6520
jmp 0x2428f
movl -0x48c(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x2420c
movq -0x60(%rbp), %rdi
callq 0x6130
movq %rax, -0x350(%rbp)
movb $0x1, -0x372(%rbp)
movl $0x10, %edi
callq 0x61a0
movq %rax, -0x4a0(%rbp)
leaq -0x371(%rbp), %rdi
movq %rdi, -0x498(%rbp)
callq 0x6630
movq -0x498(%rbp), %rdx
leaq 0x12f1e(%rip), %rsi     # 0x3707a
leaq -0x370(%rbp), %rdi
callq 0x64f0
jmp 0x2416a
movq -0x4a0(%rbp), %rdi
leaq -0x370(%rbp), %rsi
callq 0x26030
jmp 0x2417f
movq -0x4a0(%rbp), %rdi
movb $0x0, -0x372(%rbp)
leaq 0x281fc(%rip), %rsi     # 0x4c390
leaq 0x1ed5(%rip), %rdx      # 0x26070
callq 0x65e0
jmp 0x2428f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x241cb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x370(%rbp), %rdi
callq 0x61f0
leaq -0x371(%rbp), %rdi
callq 0x6390
testb $0x1, -0x372(%rbp)
jne 0x241e2
jmp 0x241ee
movq -0x4a0(%rbp), %rdi
callq 0x6270
callq 0x65b0
jmp 0x241f5
jmp 0x2420c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
callq 0x65b0
jmp 0x2420a
jmp 0x2420c
leaq -0x288(%rbp), %rdi
callq 0x13c70
jmp 0x24275
jmp 0x2421c
leaq -0x48(%rbp), %rdi
callq 0x206e0
jmp 0x233e8
movq -0x388(%rbp), %rdi
movq %rdi, %rsi
addq $0x198, %rsi            # imm = 0x198
movq %rdi, %rdx
addq $0x178, %rdx            # imm = 0x178
movq (%rdi), %rax
movq 0x18(%rax), %rax
callq *%rax
jmp 0x24250
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x68(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x10050
movq -0x8(%rbp), %rax
addq $0x4a0, %rsp            # imm = 0x4A0
popq %rbp
retq
leaq -0x40(%rbp), %rdi
callq 0x10050
movq -0x60(%rbp), %rdi
callq 0x6620
movq %rax, %rdi
callq 0x8c90
nop