// File: nvanbenschoten[P]total-order-multicast/include/args.h
// Function: args::ArgumentParser::Help(std::ostream&) const
void Help(std::ostream &help) const {
    bool hasoptions = false;
    bool hasarguments = false;

    const auto description_text = Wrap(
        this->description, helpParams.width - helpParams.descriptionindent);
    const auto epilog_text =
        Wrap(this->epilog, helpParams.width - helpParams.descriptionindent);
    std::ostringstream prognameline;
    prognameline << prog;
    if (HasFlag()) {
      hasoptions = true;
      if (helpParams.showProglineOptions) {
        prognameline << " {OPTIONS}";
      }
    }
    for (const std::string &posname : GetPosNames()) {
      hasarguments = true;
      if (helpParams.showProglinePositionals) {
        prognameline << " [" << posname << ']';
      }
    }
    if (!proglinePostfix.empty()) {
      prognameline << ' ' << proglinePostfix;
    }
    const auto proglines =
        Wrap(prognameline.str(), helpParams.width - (helpParams.progindent + 4),
             helpParams.width - helpParams.progindent);
    auto progit = std::begin(proglines);
    if (progit != std::end(proglines)) {
      help << std::string(helpParams.progindent, ' ') << *progit << '\n';
      ++progit;
    }
    for (; progit != std::end(proglines); ++progit) {
      help << std::string(helpParams.progtailindent, ' ') << *progit << '\n';
    }

    help << '\n';

    for (const auto &line : description_text) {
      help << std::string(helpParams.descriptionindent, ' ') << line << "\n";
    }
    help << "\n";
    help << std::string(helpParams.progindent, ' ') << "OPTIONS:\n\n";
    for (const auto &desc : GetChildDescriptions(
             shortprefix, longprefix, allowJoinedShortValue ? "" : " ",
             allowJoinedLongValue ? longseparator : " ")) {
      const auto groupindent = std::get<2>(desc) * helpParams.eachgroupindent;
      const auto flags =
          Wrap(std::get<0>(desc),
               helpParams.width - (helpParams.flagindent +
                                   helpParams.helpindent + helpParams.gutter));
      const auto info =
          Wrap(std::get<1>(desc),
               helpParams.width - (helpParams.helpindent + groupindent));

      std::string::size_type flagssize = 0;
      for (auto flagsit = std::begin(flags); flagsit != std::end(flags);
           ++flagsit) {
        if (flagsit != std::begin(flags)) {
          help << '\n';
        }
        help << std::string(groupindent + helpParams.flagindent, ' ')
             << *flagsit;
        flagssize = Glyphs(*flagsit);
      }

      auto infoit = std::begin(info);
      // groupindent is on both sides of this inequality, and therefore can be
      // removed
      if ((helpParams.flagindent + flagssize + helpParams.gutter) >
              helpParams.helpindent ||
          infoit == std::end(info)) {
        help << '\n';
      } else {
        // groupindent is on both sides of the minus sign, and therefore doesn't
        // actually need to be in here
        help << std::string(
                    helpParams.helpindent - (helpParams.flagindent + flagssize),
                    ' ')
             << *infoit << '\n';
        ++infoit;
      }
      for (; infoit != std::end(info); ++infoit) {
        help << std::string(groupindent + helpParams.helpindent, ' ') << *infoit
             << '\n';
      }
    }
    if (hasoptions && hasarguments && helpParams.showTerminator) {
      for (const auto &item :
           Wrap(std::string("\"") + terminator +
                    "\" can be used to terminate flag options and force all "
                    "following arguments to be treated as positional options",
                helpParams.width - helpParams.flagindent)) {
        help << std::string(helpParams.flagindent, ' ') << item << '\n';
      }
    }

    help << "\n";
    for (const auto &line : epilog_text) {
      help << std::string(helpParams.descriptionindent, ' ') << line << "\n";
    }
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x7b0, %rsp            # imm = 0x7B0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rcx
movq %rcx, -0x5a8(%rbp)
movb $0x0, -0x11(%rbp)
movb $0x0, -0x12(%rbp)
movq %rcx, %rsi
addq $0xa8, %rsi
movl 0x16c(%rcx), %eax
movl 0x178(%rcx), %ecx
subl %ecx, %eax
movl %eax, %edx
xorl %eax, %eax
movl %eax, %ecx
movq %rcx, -0x5a0(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x159f0
movq -0x5a8(%rbp), %rdx
movq -0x5a0(%rbp), %rcx
movq %rdx, %rsi
addq $0xc8, %rsi
movl 0x16c(%rdx), %eax
movl 0x178(%rdx), %edx
subl %edx, %eax
movl %eax, %edx
leaq -0x48(%rbp), %rdi
callq 0x159f0
jmp 0x18a17
leaq -0x1d0(%rbp), %rdi
callq 0x65e0
jmp 0x18a25
movq -0x5a8(%rbp), %rsi
addq $0x68, %rsi
leaq -0x1d0(%rbp), %rdi
callq 0x63d0
jmp 0x18a3e
movq -0x5a8(%rbp), %rdi
callq 0x1af00
movb %al, -0x5a9(%rbp)
jmp 0x18a52
movb -0x5a9(%rbp), %al
testb $0x1, %al
jne 0x18a5e
jmp 0x18abe
movq -0x5a8(%rbp), %rax
movb $0x1, -0x11(%rbp)
testb $0x1, 0x18d(%rax)
je 0x18abc
leaq 0x171fa(%rip), %rsi     # 0x2fc73
leaq -0x1d0(%rbp), %rdi
callq 0x6410
jmp 0x18a87
jmp 0x18abc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x19ea7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x19e9e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x19e92
jmp 0x18abe
movq -0x5a8(%rbp), %rsi
leaq -0x1f0(%rbp), %rdi
callq 0x1b020
jmp 0x18ad3
leaq -0x1f0(%rbp), %rax
movq %rax, -0x1d8(%rbp)
movq -0x1d8(%rbp), %rdi
callq 0x1ae40
movq %rax, -0x1f8(%rbp)
movq -0x1d8(%rbp), %rdi
callq 0x1add0
movq %rax, -0x200(%rbp)
leaq -0x1f8(%rbp), %rdi
leaq -0x200(%rbp), %rsi
callq 0x1b300
testb $0x1, %al
jne 0x18b2f
leaq -0x1f0(%rbp), %rdi
callq 0x188e0
jmp 0x18bd6
leaq -0x1f8(%rbp), %rdi
callq 0x1b340
movq %rax, %rcx
movq -0x5a8(%rbp), %rax
movq %rcx, -0x208(%rbp)
movb $0x1, -0x12(%rbp)
testb $0x1, 0x18e(%rax)
je 0x18bc3
leaq 0x1711e(%rip), %rsi     # 0x2fc7e
leaq -0x1d0(%rbp), %rdi
callq 0x6410
movq %rax, -0x5b8(%rbp)
jmp 0x18b75
movq -0x5b8(%rbp), %rdi
movq -0x208(%rbp), %rsi
callq 0x63d0
movq %rax, -0x5c0(%rbp)
jmp 0x18b91
movq -0x5c0(%rbp), %rdi
movl $0x5d, %esi
callq 0x6510
jmp 0x18ba4
jmp 0x18bc3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x1f0(%rbp), %rdi
callq 0x188e0
jmp 0x19e92
jmp 0x18bc5
leaq -0x1f8(%rbp), %rdi
callq 0x1b360
jmp 0x18b07
movq -0x5a8(%rbp), %rdi
addq $0x88, %rdi
callq 0x6700
testb $0x1, %al
jne 0x18c25
leaq -0x1d0(%rbp), %rdi
movl $0x20, %esi
callq 0x6510
movq %rax, -0x5c8(%rbp)
jmp 0x18c07
movq -0x5c8(%rbp), %rdi
movq -0x5a8(%rbp), %rsi
addq $0x88, %rsi
callq 0x63d0
jmp 0x18c23
jmp 0x18c25
leaq -0x240(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x6440
jmp 0x18c3a
movq -0x5a8(%rbp), %rcx
movl 0x16c(%rcx), %eax
movl 0x170(%rcx), %ecx
subl %ecx, %eax
movl %eax, %ecx
addl $-0x4, %ecx
movl %ecx, %edx
movl %eax, %ecx
leaq -0x220(%rbp), %rdi
leaq -0x240(%rbp), %rsi
callq 0x159f0
jmp 0x18c6d
leaq -0x240(%rbp), %rdi
callq 0x68c8
leaq -0x220(%rbp), %rdi
callq 0x1b380
movq %rax, -0x5d0(%rbp)
jmp 0x18c8e
movq -0x5d0(%rbp), %rax
movq %rax, -0x248(%rbp)
leaq -0x220(%rbp), %rdi
callq 0x1b3f0
movq %rax, -0x5d8(%rbp)
jmp 0x18cb1
movq -0x5d8(%rbp), %rax
movq %rax, -0x250(%rbp)
leaq -0x248(%rbp), %rdi
leaq -0x250(%rbp), %rsi
callq 0x1b3b0
testb $0x1, %al
jne 0x18cdb
jmp 0x18e0c
movq -0x5a8(%rbp), %rax
movq -0x10(%rbp), %rcx
movq %rcx, -0x5f0(%rbp)
movl 0x170(%rax), %eax
movq %rax, -0x5e8(%rbp)
leaq -0x271(%rbp), %rdi
movq %rdi, -0x5e0(%rbp)
callq 0x67b0
movq -0x5e8(%rbp), %rsi
movq -0x5e0(%rbp), %rcx
leaq -0x270(%rbp), %rdi
movl $0x20, %edx
callq 0x1b420
jmp 0x18d2e
movq -0x5f0(%rbp), %rdi
leaq -0x270(%rbp), %rsi
callq 0x63d0
movq %rax, -0x5f8(%rbp)
jmp 0x18d4a
leaq -0x248(%rbp), %rdi
callq 0x1b490
movq -0x5f8(%rbp), %rdi
movq %rax, %rsi
callq 0x63d0
movq %rax, -0x600(%rbp)
jmp 0x18d6e
movq -0x600(%rbp), %rdi
movl $0xa, %esi
callq 0x6510
jmp 0x18d81
leaq -0x270(%rbp), %rdi
callq 0x68c8
leaq -0x271(%rbp), %rdi
callq 0x6490
leaq -0x248(%rbp), %rdi
callq 0x1b4b0
jmp 0x18e0c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x240(%rbp), %rdi
callq 0x68c8
jmp 0x19e92
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x19e86
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x18dfb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x270(%rbp), %rdi
callq 0x68c8
leaq -0x271(%rbp), %rdi
callq 0x6490
jmp 0x19e86
jmp 0x18e0e
leaq -0x220(%rbp), %rdi
callq 0x1b3f0
movq %rax, -0x608(%rbp)
jmp 0x18e23
movq -0x608(%rbp), %rax
movq %rax, -0x280(%rbp)
leaq -0x248(%rbp), %rdi
leaq -0x280(%rbp), %rsi
callq 0x1b3b0
testb $0x1, %al
jne 0x18e4d
jmp 0x18f53
movq -0x5a8(%rbp), %rax
movq -0x10(%rbp), %rcx
movq %rcx, -0x620(%rbp)
movl 0x174(%rax), %eax
movq %rax, -0x618(%rbp)
leaq -0x2a1(%rbp), %rdi
movq %rdi, -0x610(%rbp)
callq 0x67b0
movq -0x618(%rbp), %rsi
movq -0x610(%rbp), %rcx
leaq -0x2a0(%rbp), %rdi
movl $0x20, %edx
callq 0x1b420
jmp 0x18ea0
movq -0x620(%rbp), %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x63d0
movq %rax, -0x628(%rbp)
jmp 0x18ebc
leaq -0x248(%rbp), %rdi
callq 0x1b490
movq -0x628(%rbp), %rdi
movq %rax, %rsi
callq 0x63d0
movq %rax, -0x630(%rbp)
jmp 0x18ee0
movq -0x630(%rbp), %rdi
movl $0xa, %esi
callq 0x6510
jmp 0x18ef3
leaq -0x2a0(%rbp), %rdi
callq 0x68c8
leaq -0x2a1(%rbp), %rdi
callq 0x6490
leaq -0x248(%rbp), %rdi
callq 0x1b4b0
jmp 0x18e0e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x18f42
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x2a0(%rbp), %rdi
callq 0x68c8
leaq -0x2a1(%rbp), %rdi
callq 0x6490
jmp 0x19e86
movq -0x10(%rbp), %rdi
movl $0xa, %esi
callq 0x6510
jmp 0x18f63
leaq -0x30(%rbp), %rax
movq %rax, -0x2b0(%rbp)
movq -0x2b0(%rbp), %rdi
callq 0x1b4d0
movq %rax, -0x2b8(%rbp)
movq -0x2b0(%rbp), %rdi
callq 0x1b500
movq %rax, -0x2c0(%rbp)
leaq -0x2b8(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x1b3b0
testb $0x1, %al
jne 0x18fb0
jmp 0x190c6
leaq -0x2b8(%rbp), %rdi
callq 0x1b490
movq %rax, %rcx
movq -0x5a8(%rbp), %rax
movq %rcx, -0x2c8(%rbp)
movq -0x10(%rbp), %rcx
movq %rcx, -0x648(%rbp)
movl 0x178(%rax), %eax
movq %rax, -0x640(%rbp)
leaq -0x2e9(%rbp), %rdi
movq %rdi, -0x638(%rbp)
callq 0x67b0
movq -0x640(%rbp), %rsi
movq -0x638(%rbp), %rcx
leaq -0x2e8(%rbp), %rdi
movl $0x20, %edx
callq 0x1b420
jmp 0x19019
movq -0x648(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
callq 0x63d0
movq %rax, -0x650(%rbp)
jmp 0x19035
movq -0x650(%rbp), %rdi
movq -0x2c8(%rbp), %rsi
callq 0x63d0
movq %rax, -0x658(%rbp)
jmp 0x19051
movq -0x658(%rbp), %rdi
leaq 0x16c2b(%rip), %rsi     # 0x2fc8a
callq 0x6410
jmp 0x19066
leaq -0x2e8(%rbp), %rdi
callq 0x68c8
leaq -0x2e9(%rbp), %rdi
callq 0x6490
leaq -0x2b8(%rbp), %rdi
callq 0x1b4b0
jmp 0x18f94
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x190b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x2e8(%rbp), %rdi
callq 0x68c8
leaq -0x2e9(%rbp), %rdi
callq 0x6490
jmp 0x19e86
movq -0x10(%rbp), %rdi
leaq 0x16bb9(%rip), %rsi     # 0x2fc8a
callq 0x6410
jmp 0x190d8
movq -0x5a8(%rbp), %rax
movq -0x10(%rbp), %rcx
movq %rcx, -0x670(%rbp)
movl 0x170(%rax), %eax
movq %rax, -0x668(%rbp)
leaq -0x311(%rbp), %rdi
movq %rdi, -0x660(%rbp)
callq 0x67b0
movq -0x668(%rbp), %rsi
movq -0x660(%rbp), %rcx
leaq -0x310(%rbp), %rdi
movl $0x20, %edx
callq 0x1b420
jmp 0x1912b
movq -0x670(%rbp), %rdi
leaq -0x310(%rbp), %rsi
callq 0x63d0
movq %rax, -0x678(%rbp)
jmp 0x19147
movq -0x678(%rbp), %rdi
leaq 0x16b2c(%rip), %rsi     # 0x2fc81
callq 0x6410
jmp 0x1915c
leaq -0x310(%rbp), %rdi
callq 0x68c8
leaq -0x311(%rbp), %rdi
callq 0x6490
movq -0x5a8(%rbp), %rax
movq %rax, %rcx
addq $0x108, %rcx            # imm = 0x108
movq %rcx, -0x698(%rbp)
movq %rax, %rcx
addq $0xe8, %rcx
movq %rcx, -0x690(%rbp)
movb 0x168(%rax), %dl
leaq 0x16ae1(%rip), %rcx     # 0x2fc8b
leaq 0x16ac0(%rip), %rax     # 0x2fc71
testb $0x1, %dl
cmovneq %rcx, %rax
movq %rax, -0x688(%rbp)
leaq -0x359(%rbp), %rdi
movq %rdi, -0x680(%rbp)
callq 0x67b0
movq -0x688(%rbp), %rsi
movq -0x680(%rbp), %rdx
leaq -0x358(%rbp), %rdi
callq 0xb990
jmp 0x191ee
movq -0x5a8(%rbp), %rax
movb 0x169(%rax), %al
movb $0x0, -0x382(%rbp)
testb $0x1, %al
je 0x19224
movq -0x5a8(%rbp), %rsi
addq $0x128, %rsi            # imm = 0x128
leaq -0x380(%rbp), %rdi
callq 0x61c0
jmp 0x19222
jmp 0x1925c
leaq -0x381(%rbp), %rdi
movq %rdi, -0x6a0(%rbp)
callq 0x67b0
movq -0x6a0(%rbp), %rdx
movb $0x1, -0x382(%rbp)
leaq 0x16a25(%rip), %rsi     # 0x2fc71
leaq -0x380(%rbp), %rdi
callq 0xb990
jmp 0x1925a
jmp 0x1925c
movq -0x690(%rbp), %rcx
movq -0x698(%rbp), %rdx
movq -0x5a8(%rbp), %rsi
movq %rsp, %rax
movl $0x0, (%rax)
leaq -0x338(%rbp), %rdi
leaq -0x358(%rbp), %r8
leaq -0x380(%rbp), %r9
callq 0x1b530
jmp 0x19296
leaq -0x380(%rbp), %rdi
callq 0x68c8
testb $0x1, -0x382(%rbp)
jne 0x192ad
jmp 0x192b9
leaq -0x381(%rbp), %rdi
callq 0x6490
leaq -0x358(%rbp), %rdi
callq 0x68c8
leaq -0x359(%rbp), %rdi
callq 0x6490
leaq -0x338(%rbp), %rax
movq %rax, -0x320(%rbp)
movq -0x320(%rbp), %rdi
callq 0x1b910
movq %rax, -0x390(%rbp)
movq -0x320(%rbp), %rdi
callq 0x1b940
movq %rax, -0x398(%rbp)
leaq -0x390(%rbp), %rdi
leaq -0x398(%rbp), %rsi
callq 0x1b970
testb $0x1, %al
jne 0x193e0
leaq -0x338(%rbp), %rdi
callq 0x1ba90
jmp 0x19a02
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x19357
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x310(%rbp), %rdi
callq 0x68c8
leaq -0x311(%rbp), %rdi
callq 0x6490
jmp 0x19e86
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x193cf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x193c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x193aa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x380(%rbp), %rdi
callq 0x68c8
testb $0x1, -0x382(%rbp)
jne 0x193b5
jmp 0x193c1
leaq -0x381(%rbp), %rdi
callq 0x6490
jmp 0x193c3
leaq -0x358(%rbp), %rdi
callq 0x68c8
leaq -0x359(%rbp), %rdi
callq 0x6490
jmp 0x19e86
leaq -0x390(%rbp), %rdi
callq 0x1b9b0
movq %rax, -0x3a0(%rbp)
movq -0x3a0(%rbp), %rdi
callq 0x1b9d0
movq -0x5a8(%rbp), %rcx
movl (%rax), %eax
movl 0x184(%rcx), %ecx
imull %ecx, %eax
movl %eax, -0x3a4(%rbp)
movq -0x3a0(%rbp), %rdi
callq 0x1b9f0
movq -0x5a8(%rbp), %rdx
movq %rax, %rsi
movl 0x16c(%rdx), %eax
movl 0x17c(%rdx), %ecx
movl 0x180(%rdx), %edi
addl %edi, %ecx
movl 0x188(%rdx), %edx
addl %edx, %ecx
subl %ecx, %eax
movl %eax, %edx
xorl %eax, %eax
movl %eax, %ecx
leaq -0x3c0(%rbp), %rdi
callq 0x159f0
jmp 0x1945f
movq -0x3a0(%rbp), %rdi
callq 0x1ba10
movq -0x5a8(%rbp), %rcx
movq %rax, %rsi
movl 0x16c(%rcx), %eax
movl 0x180(%rcx), %ecx
movl -0x3a4(%rbp), %edx
addl %edx, %ecx
subl %ecx, %eax
movl %eax, %edx
xorl %eax, %eax
movl %eax, %ecx
leaq -0x3d8(%rbp), %rdi
callq 0x159f0
jmp 0x1949f
movq $0x0, -0x3e0(%rbp)
leaq -0x3c0(%rbp), %rdi
callq 0x1b380
movq %rax, -0x6a8(%rbp)
jmp 0x194bf
movq -0x6a8(%rbp), %rax
movq %rax, -0x3e8(%rbp)
leaq -0x3c0(%rbp), %rdi
callq 0x1b3f0
movq %rax, -0x6b0(%rbp)
jmp 0x194e2
movq -0x6b0(%rbp), %rax
movq %rax, -0x3f0(%rbp)
leaq -0x3e8(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x1b3b0
testb $0x1, %al
jne 0x1950c
jmp 0x1969c
leaq -0x3c0(%rbp), %rdi
callq 0x1b380
movq %rax, -0x6b8(%rbp)
jmp 0x19521
movq -0x6b8(%rbp), %rax
movq %rax, -0x3f8(%rbp)
leaq -0x3e8(%rbp), %rdi
leaq -0x3f8(%rbp), %rsi
callq 0x1b3b0
testb $0x1, %al
jne 0x19548
jmp 0x1958d
movq -0x10(%rbp), %rdi
movl $0xa, %esi
callq 0x6510
jmp 0x19558
jmp 0x1958d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x199f1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x199e5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x199d9
movq -0x5a8(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rax, -0x6d0(%rbp)
movl -0x3a4(%rbp), %eax
movl 0x17c(%rcx), %ecx
addl %ecx, %eax
movq %rax, -0x6c8(%rbp)
leaq -0x419(%rbp), %rdi
movq %rdi, -0x6c0(%rbp)
callq 0x67b0
movq -0x6c8(%rbp), %rsi
movq -0x6c0(%rbp), %rcx
leaq -0x418(%rbp), %rdi
movl $0x20, %edx
callq 0x1b420
jmp 0x195e8
movq -0x6d0(%rbp), %rdi
leaq -0x418(%rbp), %rsi
callq 0x63d0
movq %rax, -0x6d8(%rbp)
jmp 0x19604
leaq -0x3e8(%rbp), %rdi
callq 0x1b490
movq -0x6d8(%rbp), %rdi
movq %rax, %rsi
callq 0x63d0
jmp 0x19621
leaq -0x418(%rbp), %rdi
callq 0x68c8
leaq -0x419(%rbp), %rdi
callq 0x6490
leaq -0x3e8(%rbp), %rdi
callq 0x1b490
movq %rax, %rdi
callq 0x15960
movq %rax, -0x3e0(%rbp)
leaq -0x3e8(%rbp), %rdi
callq 0x1b4b0
jmp 0x194cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x1968b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x418(%rbp), %rdi
callq 0x68c8
leaq -0x419(%rbp), %rdi
callq 0x6490
jmp 0x199d9
leaq -0x3d8(%rbp), %rdi
callq 0x1b380
movq %rax, -0x6e0(%rbp)
jmp 0x196b1
movq -0x5a8(%rbp), %rax
movq -0x6e0(%rbp), %rcx
movq %rcx, -0x428(%rbp)
movl 0x17c(%rax), %ecx
addq -0x3e0(%rbp), %rcx
movl 0x188(%rax), %edx
addq %rdx, %rcx
movl 0x180(%rax), %eax
movl %eax, %edx
movb $0x1, %al
cmpq %rdx, %rcx
movb %al, -0x6e1(%rbp)
ja 0x1972d
leaq -0x3d8(%rbp), %rdi
callq 0x1b3f0
movq %rax, -0x6f0(%rbp)
jmp 0x19706
movq -0x6f0(%rbp), %rax
movq %rax, -0x430(%rbp)
leaq -0x428(%rbp), %rdi
leaq -0x430(%rbp), %rsi
callq 0x1ba30
movb %al, -0x6e1(%rbp)
movb -0x6e1(%rbp), %al
testb $0x1, %al
jne 0x19739
jmp 0x1974e
movq -0x10(%rbp), %rdi
movl $0xa, %esi
callq 0x6510
jmp 0x19749
jmp 0x19864
movq -0x5a8(%rbp), %rax
movq -0x10(%rbp), %rcx
movq %rcx, -0x708(%rbp)
movl 0x17c(%rax), %ecx
movl 0x180(%rax), %eax
movq -0x3e0(%rbp), %rdx
addq %rdx, %rcx
subq %rcx, %rax
movq %rax, -0x700(%rbp)
leaq -0x451(%rbp), %rdi
movq %rdi, -0x6f8(%rbp)
callq 0x67b0
movq -0x700(%rbp), %rsi
movq -0x6f8(%rbp), %rcx
leaq -0x450(%rbp), %rdi
movl $0x20, %edx
callq 0x1b420
jmp 0x197b4
movq -0x708(%rbp), %rdi
leaq -0x450(%rbp), %rsi
callq 0x63d0
movq %rax, -0x710(%rbp)
jmp 0x197d0
leaq -0x428(%rbp), %rdi
callq 0x1b490
movq -0x710(%rbp), %rdi
movq %rax, %rsi
callq 0x63d0
movq %rax, -0x718(%rbp)
jmp 0x197f4
movq -0x718(%rbp), %rdi
movl $0xa, %esi
callq 0x6510
jmp 0x19807
leaq -0x450(%rbp), %rdi
callq 0x68c8
leaq -0x451(%rbp), %rdi
callq 0x6490
leaq -0x428(%rbp), %rdi
callq 0x1b4b0
jmp 0x19864
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x19853
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x450(%rbp), %rdi
callq 0x68c8
leaq -0x451(%rbp), %rdi
callq 0x6490
jmp 0x199d9
jmp 0x19866
leaq -0x3d8(%rbp), %rdi
callq 0x1b3f0
movq %rax, -0x720(%rbp)
jmp 0x1987b
movq -0x720(%rbp), %rax
movq %rax, -0x460(%rbp)
leaq -0x428(%rbp), %rdi
leaq -0x460(%rbp), %rsi
callq 0x1b3b0
testb $0x1, %al
jne 0x198a5
jmp 0x199b0
movq -0x5a8(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rax, -0x738(%rbp)
movl -0x3a4(%rbp), %eax
movl 0x180(%rcx), %ecx
addl %ecx, %eax
movq %rax, -0x730(%rbp)
leaq -0x481(%rbp), %rdi
movq %rdi, -0x728(%rbp)
callq 0x67b0
movq -0x730(%rbp), %rsi
movq -0x728(%rbp), %rcx
leaq -0x480(%rbp), %rdi
movl $0x20, %edx
callq 0x1b420
jmp 0x19900
movq -0x738(%rbp), %rdi
leaq -0x480(%rbp), %rsi
callq 0x63d0
movq %rax, -0x740(%rbp)
jmp 0x1991c
leaq -0x428(%rbp), %rdi
callq 0x1b490
movq -0x740(%rbp), %rdi
movq %rax, %rsi
callq 0x63d0
movq %rax, -0x748(%rbp)
jmp 0x19940
movq -0x748(%rbp), %rdi
movl $0xa, %esi
callq 0x6510
jmp 0x19953
leaq -0x480(%rbp), %rdi
callq 0x68c8
leaq -0x481(%rbp), %rdi
callq 0x6490
leaq -0x428(%rbp), %rdi
callq 0x1b4b0
jmp 0x19866
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x199a2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x480(%rbp), %rdi
callq 0x68c8
leaq -0x481(%rbp), %rdi
callq 0x6490
jmp 0x199d9
leaq -0x3d8(%rbp), %rdi
callq 0x188e0
leaq -0x3c0(%rbp), %rdi
callq 0x188e0
leaq -0x390(%rbp), %rdi
callq 0x1ba70
jmp 0x19305
leaq -0x3d8(%rbp), %rdi
callq 0x188e0
leaq -0x3c0(%rbp), %rdi
callq 0x188e0
leaq -0x338(%rbp), %rdi
callq 0x1ba90
jmp 0x19e86
testb $0x1, -0x11(%rbp)
je 0x19ce1
testb $0x1, -0x12(%rbp)
je 0x19ce1
movq -0x5a8(%rbp), %rax
testb $0x1, 0x18c(%rax)
je 0x19ce1
leaq -0x509(%rbp), %rdi
movq %rdi, -0x750(%rbp)
callq 0x67b0
movq -0x750(%rbp), %rdx
leaq 0x16241(%rip), %rsi     # 0x2fc8c
leaq -0x508(%rbp), %rdi
callq 0xb990
jmp 0x19a59
movq -0x5a8(%rbp), %rdx
addq $0x148, %rdx            # imm = 0x148
leaq -0x4e8(%rbp), %rdi
leaq -0x508(%rbp), %rsi
callq 0x1bb40
jmp 0x19a7c
leaq 0x1620b(%rip), %rdx     # 0x2fc8e
leaq -0x4c8(%rbp), %rdi
leaq -0x4e8(%rbp), %rsi
callq 0x1baf0
jmp 0x19a98
movq -0x5a8(%rbp), %rcx
movl 0x16c(%rcx), %eax
movl 0x17c(%rcx), %ecx
subl %ecx, %eax
movl %eax, %edx
xorl %eax, %eax
movl %eax, %ecx
leaq -0x4a8(%rbp), %rdi
leaq -0x4c8(%rbp), %rsi
callq 0x159f0
jmp 0x19ac8
leaq -0x4c8(%rbp), %rdi
callq 0x68c8
leaq -0x4e8(%rbp), %rdi
callq 0x68c8
leaq -0x508(%rbp), %rdi
callq 0x68c8
leaq -0x509(%rbp), %rdi
callq 0x6490
leaq -0x4a8(%rbp), %rax
movq %rax, -0x490(%rbp)
movq -0x490(%rbp), %rdi
callq 0x1ae40
movq %rax, -0x518(%rbp)
movq -0x490(%rbp), %rdi
callq 0x1add0
movq %rax, -0x520(%rbp)
leaq -0x518(%rbp), %rdi
leaq -0x520(%rbp), %rsi
callq 0x1b300
testb $0x1, %al
jne 0x19bbf
leaq -0x4a8(%rbp), %rdi
callq 0x188e0
jmp 0x19cdf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x19bae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x19ba2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x19b96
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x4c8(%rbp), %rdi
callq 0x68c8
leaq -0x4e8(%rbp), %rdi
callq 0x68c8
leaq -0x508(%rbp), %rdi
callq 0x68c8
leaq -0x509(%rbp), %rdi
callq 0x6490
jmp 0x19e86
leaq -0x518(%rbp), %rdi
callq 0x1b340
movq %rax, %rcx
movq -0x5a8(%rbp), %rax
movq %rcx, -0x528(%rbp)
movq -0x10(%rbp), %rcx
movq %rcx, -0x768(%rbp)
movl 0x17c(%rax), %eax
movq %rax, -0x760(%rbp)
leaq -0x549(%rbp), %rdi
movq %rdi, -0x758(%rbp)
callq 0x67b0
movq -0x760(%rbp), %rsi
movq -0x758(%rbp), %rcx
leaq -0x548(%rbp), %rdi
movl $0x20, %edx
callq 0x1b420
jmp 0x19c28
movq -0x768(%rbp), %rdi
leaq -0x548(%rbp), %rsi
callq 0x63d0
movq %rax, -0x770(%rbp)
jmp 0x19c44
movq -0x770(%rbp), %rdi
movq -0x528(%rbp), %rsi
callq 0x63d0
movq %rax, -0x778(%rbp)
jmp 0x19c60
movq -0x778(%rbp), %rdi
movl $0xa, %esi
callq 0x6510
jmp 0x19c73
leaq -0x548(%rbp), %rdi
callq 0x68c8
leaq -0x549(%rbp), %rdi
callq 0x6490
leaq -0x518(%rbp), %rdi
callq 0x1b360
jmp 0x19b2c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x19cc2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x548(%rbp), %rdi
callq 0x68c8
leaq -0x549(%rbp), %rdi
callq 0x6490
leaq -0x4a8(%rbp), %rdi
callq 0x188e0
jmp 0x19e86
jmp 0x19ce1
movq -0x10(%rbp), %rdi
leaq 0x15f9e(%rip), %rsi     # 0x2fc8a
callq 0x6410
jmp 0x19cf3
leaq -0x48(%rbp), %rax
movq %rax, -0x558(%rbp)
movq -0x558(%rbp), %rdi
callq 0x1b4d0
movq %rax, -0x560(%rbp)
movq -0x558(%rbp), %rdi
callq 0x1b500
movq %rax, -0x568(%rbp)
leaq -0x560(%rbp), %rdi
leaq -0x568(%rbp), %rsi
callq 0x1b3b0
testb $0x1, %al
jne 0x19d40
jmp 0x19e53
leaq -0x560(%rbp), %rdi
callq 0x1b490
movq %rax, %rcx
movq -0x5a8(%rbp), %rax
movq %rcx, -0x570(%rbp)
movq -0x10(%rbp), %rcx
movq %rcx, -0x790(%rbp)
movl 0x178(%rax), %eax
movq %rax, -0x788(%rbp)
leaq -0x591(%rbp), %rdi
movq %rdi, -0x780(%rbp)
callq 0x67b0
movq -0x788(%rbp), %rsi
movq -0x780(%rbp), %rcx
leaq -0x590(%rbp), %rdi
movl $0x20, %edx
callq 0x1b420
jmp 0x19da9
movq -0x790(%rbp), %rdi
leaq -0x590(%rbp), %rsi
callq 0x63d0
movq %rax, -0x798(%rbp)
jmp 0x19dc5
movq -0x798(%rbp), %rdi
movq -0x570(%rbp), %rsi
callq 0x63d0
movq %rax, -0x7a0(%rbp)
jmp 0x19de1
movq -0x7a0(%rbp), %rdi
leaq 0x15e9b(%rip), %rsi     # 0x2fc8a
callq 0x6410
jmp 0x19df6
leaq -0x590(%rbp), %rdi
callq 0x68c8
leaq -0x591(%rbp), %rdi
callq 0x6490
leaq -0x560(%rbp), %rdi
callq 0x1b4b0
jmp 0x19d24
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x19e45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x590(%rbp), %rdi
callq 0x68c8
leaq -0x591(%rbp), %rdi
callq 0x6490
jmp 0x19e86
leaq -0x220(%rbp), %rdi
callq 0x188e0
leaq -0x1d0(%rbp), %rdi
callq 0x60f0
leaq -0x48(%rbp), %rdi
callq 0x188e0
leaq -0x30(%rbp), %rdi
callq 0x188e0
addq $0x7b0, %rsp            # imm = 0x7B0
popq %rbp
retq
leaq -0x220(%rbp), %rdi
callq 0x188e0
leaq -0x1d0(%rbp), %rdi
callq 0x60f0
leaq -0x48(%rbp), %rdi
callq 0x188e0
leaq -0x30(%rbp), %rdi
callq 0x188e0
movq -0x50(%rbp), %rdi
callq 0x67a0
nopl (%rax)