// File: /workspace/github_cpp_makefile_star2_O3/nvanbenschoten[P]total-order-multicast/src/main.cc
// Function: main
int main(int argc, const char** argv) {
  args::ArgumentParser parser(program_desc);
  args::HelpFlag help(parser, "help", help_desc, {"help"});
  IntFlag port(parser, "port", port_desc, {'p', "port"});
  StringFlag hostfile(parser, "hostfile", hostfile_desc, {'h', "hostfile"});
  IntFlag id(parser, "id", id_desc, {'i', "id"});
  IntFlag count(parser, "count", count_desc, {'c', "count"});
  args::Flag delays(parser, "delays", delays_desc, {'d', "delays"});
  args::Flag verbose(parser, "verbose", verbose_desc, {'v', "verbose"});

  try {
    parser.ParseCLI(argc, argv);

    // Set up logging.
    logging::out.enable(verbose);

    // Check required fields.
    if (!hostfile) throw args::UsageError("--hostfile is a required flag");
    if (!count) throw args::UsageError("--count is a required flag");
    auto hostfile_val = args::get(hostfile);
    auto count_val = args::get(count);

    // Get the default process port, if one is supplied.
    std::experimental::optional<unsigned short> default_port;
    if (port) {
      default_port = args::get(port);
    }

    // Create the process list from the hostfile.
    auto processes = GetProcesses(hostfile_val, default_port);

    // Determine the current process's ID.
    int id_val;
    if (id) {
      id_val = args::get(id);
      CheckProcessId(processes, id_val);
    } else {
      id_val = GetProcessId(processes);
    }
    auto server_port = processes.at(id_val).port();

    // Create the process with the command line options.
    process::Process p(processes, id_val, server_port, delays);

    // Run the total order algorithm.
    p.TotalOrder(count_val, [id_val](msg::SeqMessage& seq_msg) {
      std::cout << id_val << ": Processed message " << seq_msg.msg_id
                << " from sender " << seq_msg.sender << " with seq ("
                << seq_msg.final_seq << ", " << seq_msg.final_seq_proposer
                << ")" << std::endl;
    });
  } catch (const args::Help) {
    std::cout << parser;
    return 0;
  } catch (const args::UsageError& e) {
    std::cerr << "\n  " << red_start << e.what() << red_end << "\n\n";
    std::cerr << parser;
    return 1;
  } catch (const std::exception& e) {
    std::cerr << red_start << e.what() << red_end << "\n";
    return 1;
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x8f8, %rsp            # imm = 0x8F8
movq %rsi, %rbx
movl %edi, %ebp
leaq 0x288(%rsp), %r14
movq %r14, -0x10(%r14)
movq $0x0, -0x8(%r14)
movb $0x0, (%r14)
leaq 0x11cbb(%rip), %rsi     # 0x1c3b0
leaq 0x6a0(%rsp), %rdi
leaq 0x278(%rsp), %rdx
callq 0xc844
movq 0x278(%rsp), %rdi
cmpq %r14, %rdi
je 0xa727
movq 0x288(%rsp), %rsi
incq %rsi
callq 0x5370
leaq 0x5e0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xa4bc(%rip), %rsi      # 0x14bf6
leaq 0xa4b9(%rip), %rdx      # 0x14bfa
leaq 0x5d0(%rsp), %rdi
callq 0x79f0
leaq 0x40(%rsp), %rdi
movw $0x0, -0x8(%rdi)
leaq 0x50(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0xa48d(%rip), %rsi      # 0x14bf6
leaq 0xa48a(%rip), %rdx      # 0x14bfa
callq 0x79f0
leaq 0x278(%rsp), %rdi
leaq 0x38(%rsp), %rsi
movl $0x1, %edx
callq 0xcbbe
leaq 0x11c3d(%rip), %rcx     # 0x1c3d0
leaq 0x830(%rsp), %rdi
leaq 0x6a0(%rsp), %rsi
leaq 0x5d0(%rsp), %rdx
leaq 0x278(%rsp), %r8
xorl %r9d, %r9d
callq 0xcd16
leaq 0x11106(%rip), %rax     # 0x1b8c8
movq %rax, 0x830(%rsp)
leaq 0x2b0(%rsp), %rdi
callq 0xec7a
leaq 0x278(%rsp), %rdi
callq 0xecee
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0xa7fb
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5370
movq 0x5d0(%rsp), %rdi
cmpq %r14, %rdi
je 0xa818
movq 0x5e0(%rsp), %rsi
incq %rsi
callq 0x5370
leaq 0x510(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xa3d0(%rip), %rsi      # 0x14bfb
leaq 0xa3cd(%rip), %rdx      # 0x14bff
leaq 0x500(%rsp), %rdi
callq 0x79f0
leaq 0x68(%rsp), %rdi
movw $0x7001, -0x30(%rdi)    # imm = 0x7001
movq %r15, -0x28(%rdi)
movq $0x0, -0x20(%rdi)
movb $0x0, -0x18(%rdi)
movw $0x0, -0x8(%rdi)
leaq 0x78(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xa38a(%rip), %rsi      # 0x14bfb
leaq 0xa387(%rip), %rdx      # 0x14bff
callq 0x79f0
leaq 0x278(%rsp), %rdi
leaq 0x38(%rsp), %rsi
movl $0x2, %edx
callq 0xcbbe
xorl %eax, %eax
leaq 0x368(%rsp), %r9
movl %eax, (%r9)
movl %eax, (%rsp)
leaq 0x11b45(%rip), %rcx     # 0x1c3f0
leaq 0x5d0(%rsp), %rdi
leaq 0x6a0(%rsp), %rsi
leaq 0x500(%rsp), %rdx
leaq 0x278(%rsp), %r8
callq 0xcbfa
leaq 0x2b0(%rsp), %rdi
callq 0xec7a
leaq 0x278(%rsp), %rdi
callq 0xecee
movq $-0x50, %r15
movq -0x10(%r12), %rdi
cmpq %rdi, %r12
je 0xa907
movq (%r12), %rsi
incq %rsi
callq 0x5370
addq $-0x28, %r12
addq $0x28, %r15
jne 0xa8f1
movq 0x500(%rsp), %rdi
cmpq %r14, %rdi
je 0xa92e
movq 0x510(%rsp), %rsi
incq %rsi
callq 0x5370
leaq 0x378(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0xa1f4(%rip), %rsi      # 0x14b35
leaq 0xa1f5(%rip), %rdx      # 0x14b3d
leaq 0x368(%rsp), %rdi
callq 0x79f0
leaq 0x518(%rsp), %r14
movw $0x6801, -0x18(%r14)    # imm = 0x6801
movq %r14, -0x10(%r14)
movq $0x0, -0x8(%r14)
movb $0x0, (%r14)
movw $0x0, 0x10(%r14)
leaq 0x530(%rsp), %rdi
leaq 0x540(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xa19e(%rip), %rsi      # 0x14b35
leaq 0xa19f(%rip), %rdx      # 0x14b3d
callq 0x79f0
leaq 0x38(%rsp), %rdi
leaq 0x500(%rsp), %rsi
movl $0x2, %edx
callq 0xcbbe
leaq 0x1c0(%rsp), %r14
movq %r14, -0x10(%r14)
movq $0x0, -0x8(%r14)
movb $0x0, (%r14)
movl $0x0, (%rsp)
leaq 0x11a30(%rip), %rcx     # 0x1c410
leaq 0x278(%rsp), %rdi
leaq 0x6a0(%rsp), %rsi
leaq 0x368(%rsp), %rdx
leaq 0x38(%rsp), %r8
leaq 0x1b0(%rsp), %r9
callq 0xcc68
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0xaa27
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x5370
leaq 0x70(%rsp), %rdi
callq 0xec7a
leaq 0x38(%rsp), %rdi
callq 0xecee
movq $-0x50, %r13
movq -0x10(%r12), %rdi
cmpq %rdi, %r12
je 0xaa58
movq (%r12), %rsi
incq %rsi
callq 0x5370
addq $-0x28, %r12
addq $0x28, %r13
jne 0xaa42
movq 0x368(%rsp), %rdi
cmpq %r15, %rdi
je 0xaa7f
movq 0x378(%rsp), %rsi
incq %rsi
callq 0x5370
leaq 0x1b0(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x9873(%rip), %rsi      # 0x14304
leaq 0x986e(%rip), %rdx      # 0x14306
callq 0x79f0
leaq 0x380(%rsp), %r12
movw $0x6901, -0x18(%r12)    # imm = 0x6901
movq %r12, -0x10(%r12)
movq $0x0, -0x8(%r12)
movb $0x0, (%r12)
movw $0x0, 0x10(%r12)
leaq 0x398(%rsp), %rdi
leaq 0x3a8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x9821(%rip), %rsi      # 0x14304
leaq 0x981c(%rip), %rdx      # 0x14306
callq 0x79f0
leaq 0x38(%rsp), %rdi
leaq 0x368(%rsp), %rsi
movl $0x2, %edx
callq 0xcbbe
xorl %eax, %eax
leaq 0x438(%rsp), %r9
movl %eax, (%r9)
movl %eax, (%rsp)
leaq 0x11913(%rip), %rcx     # 0x1c430
leaq 0x500(%rsp), %rdi
leaq 0x6a0(%rsp), %rsi
leaq 0x1b0(%rsp), %rdx
leaq 0x38(%rsp), %r8
callq 0xcbfa
leaq 0x70(%rsp), %rdi
callq 0xec7a
leaq 0x38(%rsp), %rdi
callq 0xecee
movq $-0x50, %r12
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0xab6e
movq (%r15), %rsi
incq %rsi
callq 0x5370
addq $-0x28, %r15
addq $0x28, %r12
jne 0xab5a
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0xab95
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x5370
leaq 0x448(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xa058(%rip), %rsi      # 0x14c00
leaq 0xa056(%rip), %rdx      # 0x14c05
leaq 0x438(%rsp), %rdi
callq 0x79f0
leaq 0x1c8(%rsp), %r12
movw $0x6301, -0x18(%r12)    # imm = 0x6301
movq %r12, -0x10(%r12)
movq $0x0, -0x8(%r12)
movb $0x0, (%r12)
movw $0x0, 0x10(%r12)
leaq 0x1e0(%rsp), %rdi
leaq 0x1f0(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x9ffe(%rip), %rsi      # 0x14c00
leaq 0x9ffc(%rip), %rdx      # 0x14c05
callq 0x79f0
leaq 0x38(%rsp), %rdi
leaq 0x1b0(%rsp), %rsi
movl $0x2, %edx
callq 0xcbbe
xorl %eax, %eax
leaq 0x120(%rsp), %r9
movl %eax, (%r9)
movl %eax, (%rsp)
leaq 0x11814(%rip), %rcx     # 0x1c450
leaq 0x368(%rsp), %rdi
leaq 0x6a0(%rsp), %rsi
leaq 0x438(%rsp), %rdx
leaq 0x38(%rsp), %r8
callq 0xcbfa
leaq 0x70(%rsp), %rdi
callq 0xec7a
leaq 0x38(%rsp), %rdi
callq 0xecee
movq $-0x50, %r12
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0xac8d
movq (%r15), %rsi
incq %rsi
callq 0x5370
addq $-0x28, %r15
addq $0x28, %r12
jne 0xac79
movq 0x438(%rsp), %rdi
cmpq %r14, %rdi
je 0xacb4
movq 0x448(%rsp), %rsi
incq %rsi
callq 0x5370
leaq 0x130(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x9f3e(%rip), %rsi      # 0x14c06
leaq 0x9f3d(%rip), %rdx      # 0x14c0c
leaq 0x120(%rsp), %rdi
callq 0x79f0
leaq 0x450(%rsp), %r15
movw $0x6401, -0x18(%r15)    # imm = 0x6401
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
movb $0x0, (%r15)
movw $0x0, 0x10(%r15)
leaq 0x468(%rsp), %rdi
leaq 0x478(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x9ee9(%rip), %rsi      # 0x14c06
leaq 0x9ee8(%rip), %rdx      # 0x14c0c
callq 0x79f0
leaq 0x38(%rsp), %rdi
leaq 0x438(%rsp), %rsi
movl $0x2, %edx
callq 0xcbbe
leaq 0x11729(%rip), %rcx     # 0x1c470
leaq 0x1b0(%rsp), %rdi
leaq 0x6a0(%rsp), %rsi
leaq 0x120(%rsp), %rdx
leaq 0x38(%rsp), %r8
xorl %r9d, %r9d
callq 0xcd16
leaq 0x70(%rsp), %rdi
callq 0xec7a
leaq 0x38(%rsp), %rdi
callq 0xecee
movq $-0x50, %r15
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0xad9b
movq (%r14), %rsi
incq %rsi
callq 0x5370
addq $-0x28, %r14
addq $0x28, %r15
jne 0xad87
movq 0x120(%rsp), %rdi
cmpq %r12, %rdi
je 0xadc2
movq 0x130(%rsp), %rsi
incq %rsi
callq 0x5370
leaq 0x28(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x9e3b(%rip), %rsi      # 0x14c0d
leaq 0x9e3b(%rip), %rdx      # 0x14c14
leaq 0x18(%rsp), %rdi
callq 0x79f0
leaq 0x138(%rsp), %r13
movw $0x7601, -0x18(%r13)    # imm = 0x7601
movq %r13, -0x10(%r13)
movq $0x0, -0x8(%r13)
movb $0x0, (%r13)
movw $0x0, 0x10(%r13)
leaq 0x150(%rsp), %rdi
leaq 0x160(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x9de8(%rip), %rsi      # 0x14c0d
leaq 0x9de8(%rip), %rdx      # 0x14c14
callq 0x79f0
leaq 0x38(%rsp), %rdi
leaq 0x120(%rsp), %rsi
movl $0x2, %edx
callq 0xcbbe
leaq 0x11641(%rip), %rcx     # 0x1c490
leaq 0x438(%rsp), %rdi
leaq 0x6a0(%rsp), %rsi
leaq 0x18(%rsp), %rdx
leaq 0x38(%rsp), %r8
xorl %r9d, %r9d
callq 0xcd16
leaq 0x70(%rsp), %rdi
callq 0xec7a
leaq 0x38(%rsp), %rdi
callq 0xecee
movq $-0x50, %r13
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0xaea0
movq (%r15), %rsi
incq %rsi
callq 0x5370
addq $-0x28, %r15
addq $0x28, %r13
jne 0xae8c
movq 0x18(%rsp), %rdi
cmpq %r14, %rdi
je 0xaec1
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x5370
leaq 0x6a0(%rsp), %rdi
movl %ebp, %esi
movq %rbx, %rdx
callq 0xcd68
leaq 0x438(%rsp), %rdi
movq (%rdi), %rax
callq *0x10(%rax)
leaq 0x11618(%rip), %rcx     # 0x1c500
xchgb %al, 0x8(%rcx)
leaq 0x278(%rsp), %rdi
movq (%rdi), %rax
callq *0x10(%rax)
testb %al, %al
je 0xb1a0
leaq 0x368(%rsp), %rdi
movq (%rdi), %rax
callq *0x10(%rax)
testb %al, %al
je 0xb203
leaq 0x120(%rsp), %rdi
movq %r12, (%rdi)
movq 0x340(%rsp), %rsi
movq 0x348(%rsp), %rdx
addq %rsi, %rdx
callq 0x7dce
movl 0x430(%rsp), %ebx
leaq 0x5d0(%rsp), %r14
movq (%r14), %rax
movq %r14, %rdi
callq *0x10(%rax)
movl %eax, %ebp
movzwl 0xc8(%r14), %r14d
leaq 0x180(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x120(%rsp), %rsi
movq 0x128(%rsp), %rdx
addq %rsi, %rdx
leaq 0x170(%rsp), %rdi
callq 0x7dce
movb $0x0, 0x16(%rsp)
testb %bpl, %bpl
je 0xaf9d
movw %r14w, 0x14(%rsp)
movb $0x1, 0x16(%rsp)
leaq 0x18(%rsp), %rdi
leaq 0x170(%rsp), %rsi
leaq 0x14(%rsp), %rdx
callq 0xa02c
movq 0x170(%rsp), %rdi
cmpq %r15, %rdi
je 0xafd1
movq 0x180(%rsp), %rsi
incq %rsi
callq 0x5370
leaq 0x500(%rsp), %rdi
movq (%rdi), %rax
callq *0x10(%rax)
testb %al, %al
je 0xaff8
movl 0x5c8(%rsp), %ebp
leaq 0x18(%rsp), %rdi
movl %ebp, %esi
callq 0xa34f
jmp 0xb004
leaq 0x18(%rsp), %rdi
callq 0xa4eb
movl %eax, %ebp
movslq %ebp, %r14
movq 0x18(%rsp), %rax
movq 0x20(%rsp), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
movabsq $-0x3333333333333333, %rdx # imm = 0xCCCCCCCCCCCCCCCD
imulq %rcx, %rdx
cmpq %r14, %rdx
jbe 0xb264
leaq (%r14,%r14,4), %rcx
movzwl 0x20(%rax,%rcx,8), %r15d
leaq 0x1b0(%rsp), %rdi
movq (%rdi), %rax
callq *0x10(%rax)
movzbl %al, %r8d
leaq 0x38(%rsp), %rdi
leaq 0x18(%rsp), %rsi
movl %r14d, %edx
movl %r15d, %ecx
callq 0xce08
xorps %xmm0, %xmm0
leaq 0x190(%rsp), %rdx
movaps %xmm0, (%rdx)
movl %ebp, (%rdx)
leaq 0x921(%rip), %rax       # 0xb998
movq %rax, 0x18(%rdx)
leaq 0x9f8(%rip), %rax       # 0xba7a
movq %rax, 0x10(%rdx)
leaq 0x38(%rsp), %rdi
movl %ebx, %esi
callq 0x66b6
movq 0x1a0(%rsp), %rax
testq %rax, %rax
je 0xb0b1
leaq 0x190(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x108(%rsp), %rdi
callq 0x10f9e
leaq 0x98(%rsp), %rbx
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
callq 0x1103c
movq %rbx, %rdi
callq 0x11050
movl -0x44(%r14), %edi
callq 0x56c0
leaq 0x50(%rsp), %rdi
callq 0x7926
leaq 0x38(%rsp), %rdi
callq 0xc7e6
leaq 0x18(%rsp), %rdi
callq 0xc7e6
movq 0x120(%rsp), %rdi
cmpq %r12, %rdi
je 0xb122
movq 0x130(%rsp), %rsi
incq %rsi
callq 0x5370
xorl %ebx, %ebx
leaq 0x438(%rsp), %rdi
callq 0xcf3e
leaq 0x1b0(%rsp), %rdi
callq 0xcf3e
leaq 0x368(%rsp), %rdi
callq 0xcf3e
leaq 0x500(%rsp), %rdi
callq 0xcf3e
leaq 0x278(%rsp), %rdi
callq 0xcf76
leaq 0x5d0(%rsp), %rdi
callq 0xcf3e
leaq 0x830(%rsp), %rdi
callq 0xcf3e
leaq 0x6a0(%rsp), %rdi
callq 0xcfac
movl %ebx, %eax
addq $0x8f8, %rsp            # imm = 0x8F8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x10, %edi
callq 0x51a0
movq %rax, %r15
leaq 0x48(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x9a57(%rip), %rsi      # 0x14c15
leaq 0x9a6d(%rip), %rdx      # 0x14c32
leaq 0x38(%rsp), %rdi
callq 0x79f0
movb $0x1, %bpl
leaq 0x38(%rsp), %rsi
movq %r15, %rdi
callq 0x5440
leaq 0x105a2(%rip), %rax     # 0x1b788
movq %rax, (%r15)
xorl %ebp, %ebp
leaq 0x104ce(%rip), %rsi     # 0x1b6c0
movq 0x10d97(%rip), %rdx     # 0x1bf90
movq %r15, %rdi
callq 0x5610
jmp 0xb264
movl $0x10, %edi
callq 0x51a0
movq %rax, %r15
leaq 0x48(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x9a12(%rip), %rsi      # 0x14c33
leaq 0x9a25(%rip), %rdx      # 0x14c4d
leaq 0x38(%rsp), %rdi
callq 0x79f0
movb $0x1, %bpl
leaq 0x38(%rsp), %rsi
movq %r15, %rdi
callq 0x5440
leaq 0x1053f(%rip), %rax     # 0x1b788
movq %rax, (%r15)
xorl %ebp, %ebp
leaq 0x1046b(%rip), %rsi     # 0x1b6c0
movq 0x10d34(%rip), %rdx     # 0x1bf90
movq %r15, %rdi
callq 0x5610
leaq 0x9181(%rip), %rdi      # 0x143ec
movq %r14, %rsi
xorl %eax, %eax
callq 0x5550
jmp 0xb279
jmp 0xb2a0
movq %rdx, %r14
movq %rax, %rbx
movq 0x38(%rsp), %rdi
cmpq %r12, %rdi
je 0xb296
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x5370
testb %bpl, %bpl
jne 0xb2a6
jmp 0xb358
movq %rdx, %r14
movq %rax, %rbx
movq %r15, %rdi
callq 0x5280
jmp 0xb358
jmp 0xb2b5
movq %rax, %rdi
callq 0x791b
movq %rdx, %r14
movq %rax, %rbx
movq 0x1a0(%rsp), %rax
testq %rax, %rax
je 0xb2e2
leaq 0x190(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x38(%rsp), %rdi
callq 0xceea
jmp 0xb2fa
jmp 0xb2b5
jmp 0xb2f4
jmp 0xb2f4
movq %rdx, %r14
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0xc7e6
jmp 0xb331
movq %rdx, %r14
movq %rax, %rbx
movq 0x170(%rsp), %rdi
cmpq %r15, %rdi
je 0xb331
movq 0x180(%rsp), %rsi
incq %rsi
callq 0x5370
jmp 0xb331
movq %rdx, %r14
movq %rax, %rbx
movq 0x120(%rsp), %rdi
cmpq %r12, %rdi
je 0xb358
movq 0x130(%rsp), %rsi
incq %rsi
callq 0x5370
jmp 0xb358
jmp 0xb352
movq %rdx, %r14
movq %rax, %rbx
cmpl $0x3, %r14d
jne 0xb3b0
movq %rbx, %rdi
callq 0x5430
leaq 0x38(%rsp), %r14
movq %r14, %rdi
movq %rax, %rsi
callq 0x5460
leaq 0x1072b(%rip), %rax     # 0x1baa8
movq %rax, (%r14)
movq %rbx, %rdi
callq 0x5160
movq 0x10c11(%rip), %rsi     # 0x1bfa0
leaq 0x6a0(%rsp), %rdi
callq 0xbafe
leaq 0x38(%rsp), %rdi
callq 0x56d8
callq 0x55b0
jmp 0xb122
cmpl $0x2, %r14d
jne 0xb45b
movq %rbx, %rdi
callq 0x5160
movq %rax, %rbx
movq 0x10c14(%rip), %rdi     # 0x1bfe0
leaq 0x987b(%rip), %rsi      # 0x14c4e
movl $0x3, %edx
callq 0x53f0
movq 0x110cc(%rip), %rsi     # 0x1c4b0
movq 0x110cd(%rip), %rdx     # 0x1c4b8
movq 0x10bee(%rip), %rdi     # 0x1bfe0
callq 0x53f0
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x10(%rax)
movq %r14, %rdi
movq %rax, %rsi
callq 0x5350
movq 0x110bb(%rip), %rsi     # 0x1c4d0
movq 0x110bc(%rip), %rdx     # 0x1c4d8
movq %rax, %rdi
callq 0x53f0
leaq 0x983d(%rip), %rsi      # 0x14c68
movl $0x2, %edx
movq %rax, %rdi
callq 0x53f0
movq 0x10ba1(%rip), %rsi     # 0x1bfe0
leaq 0x6a0(%rsp), %rdi
callq 0xbafe
movl $0x1, %ebx
callq 0x55b0
jmp 0xb124
cmpl $0x1, %r14d
jne 0xb509
movq %rbx, %rdi
callq 0x5160
movq %rax, %rbx
movq 0x11039(%rip), %rsi     # 0x1c4b0
movq 0x1103a(%rip), %rdx     # 0x1c4b8
movq 0x10b5b(%rip), %rdi     # 0x1bfe0
callq 0x53f0
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x10(%rax)
movq %r14, %rdi
movq %rax, %rsi
callq 0x5350
movq 0x11028(%rip), %rsi     # 0x1c4d0
movq 0x11029(%rip), %rdx     # 0x1c4d8
movq %rax, %rdi
callq 0x53f0
leaq 0x97ab(%rip), %rsi      # 0x14c69
movl $0x1, %edx
movq %rax, %rdi
callq 0x53f0
movl $0x1, %ebx
callq 0x55b0
jmp 0xb124
jmp 0xb4de
jmp 0xb4de
movq %rax, %rbx
jmp 0xb509
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
callq 0x56d8
callq 0x55b0
jmp 0xb509
movq %rax, %rbx
callq 0x55b0
jmp 0xb509
movq %rax, %rbx
callq 0x55b0
leaq 0x438(%rsp), %rdi
callq 0xcf3e
jmp 0xb5a3
jmp 0xb2b5
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xec7a
leaq 0x38(%rsp), %rdi
callq 0xecee
jmp 0xb53c
movq %rax, %rbx
xorl %r12d, %r12d
movq 0x150(%rsp,%r12), %rdi
leaq (%r15,%r12), %rax
cmpq %rdi, %rax
je 0xb55b
movq (%rax), %rsi
incq %rsi
callq 0x5370
addq $-0x28, %r12
cmpq $-0x50, %r12
jne 0xb53f
jmp 0xb587
movq %rax, %rbx
movq 0x128(%rsp), %rdi
cmpq %r13, %rdi
je 0xb587
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x5370
movq 0x18(%rsp), %rdi
cmpq %r14, %rdi
je 0xb5a3
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x5370
jmp 0xb5a3
movq %rax, %rbx
leaq 0x1b0(%rsp), %rdi
callq 0xcf3e
jmp 0xb63e
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xec7a
leaq 0x38(%rsp), %rdi
callq 0xecee
jmp 0xb5d1
movq %rax, %rbx
xorl %r15d, %r15d
movq 0x468(%rsp,%r15), %rdi
leaq (%r14,%r15), %rax
cmpq %rdi, %rax
je 0xb5f0
movq (%rax), %rsi
incq %rsi
callq 0x5370
addq $-0x28, %r15
cmpq $-0x50, %r15
jne 0xb5d4
jmp 0xb61c
movq %rax, %rbx
movq 0x440(%rsp), %rdi
cmpq %r15, %rdi
je 0xb61c
movq 0x450(%rsp), %rsi
incq %rsi
callq 0x5370
movq 0x120(%rsp), %rdi
cmpq %r12, %rdi
je 0xb63e
movq 0x130(%rsp), %rsi
incq %rsi
callq 0x5370
jmp 0xb63e
movq %rax, %rbx
leaq 0x368(%rsp), %rdi
callq 0xcf3e
leaq 0x500(%rsp), %rdi
callq 0xcf3e
leaq 0x278(%rsp), %rdi
callq 0xcf76
leaq 0x5d0(%rsp), %rdi
callq 0xcf3e
leaq 0x830(%rsp), %rdi
callq 0xcf3e
leaq 0x6a0(%rsp), %rdi
callq 0xcfac
movq %rbx, %rdi
callq 0x5650
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xec7a
leaq 0x38(%rsp), %rdi
callq 0xecee
jmp 0xb6b0
movq %rax, %rbx
xorl %r12d, %r12d
movq 0x1e0(%rsp,%r12), %rdi
leaq (%r15,%r12), %rax
cmpq %rdi, %rax
je 0xb6cf
movq (%rax), %rsi
incq %rsi
callq 0x5370
addq $-0x28, %r12
cmpq $-0x50, %r12
jne 0xb6b3
jmp 0xb6fb
movq %rax, %rbx
movq 0x1b8(%rsp), %rdi
cmpq %r12, %rdi
je 0xb6fb
movq 0x1c8(%rsp), %rsi
incq %rsi
callq 0x5370
movq 0x438(%rsp), %rdi
cmpq %r14, %rdi
je 0xb64b
movq 0x448(%rsp), %rsi
incq %rsi
callq 0x5370
jmp 0xb64b
movq %rax, %rbx
jmp 0xb64b
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xec7a
leaq 0x38(%rsp), %rdi
callq 0xecee
jmp 0xb745
movq %rax, %rbx
xorl %r12d, %r12d
movq 0x398(%rsp,%r12), %rdi
leaq (%r15,%r12), %rax
cmpq %rdi, %rax
je 0xb764
movq (%rax), %rsi
incq %rsi
callq 0x5370
addq $-0x28, %r12
cmpq $-0x50, %r12
jne 0xb748
jmp 0xb790
movq %rax, %rbx
movq 0x370(%rsp), %rdi
cmpq %r12, %rdi
je 0xb790
movq 0x380(%rsp), %rsi
incq %rsi
callq 0x5370
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0xb658
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x5370
jmp 0xb658
movq %rax, %rbx
jmp 0xb658
movq %rax, %rbx
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0xb7de
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x5370
leaq 0x70(%rsp), %rdi
callq 0xec7a
leaq 0x38(%rsp), %rdi
callq 0xecee
jmp 0xb7f7
movq %rax, %rbx
xorl %r14d, %r14d
movq 0x530(%rsp,%r14), %rdi
leaq (%r12,%r14), %rax
cmpq %rdi, %rax
je 0xb816
movq (%rax), %rsi
incq %rsi
callq 0x5370
addq $-0x28, %r14
cmpq $-0x50, %r14
jne 0xb7fa
jmp 0xb842
movq %rax, %rbx
movq 0x508(%rsp), %rdi
cmpq %r14, %rdi
je 0xb842
movq 0x518(%rsp), %rsi
incq %rsi
callq 0x5370
movq 0x368(%rsp), %rdi
cmpq %r15, %rdi
je 0xb665
movq 0x378(%rsp), %rsi
incq %rsi
callq 0x5370
jmp 0xb665
movq %rax, %rbx
jmp 0xb665
movq %rax, %rbx
leaq 0x2b0(%rsp), %rdi
callq 0xec7a
leaq 0x278(%rsp), %rdi
callq 0xecee
jmp 0xb892
movq %rax, %rbx
xorl %r15d, %r15d
movq 0x68(%rsp,%r15), %rdi
leaq (%r12,%r15), %rax
cmpq %rdi, %rax
je 0xb8ae
movq (%rax), %rsi
incq %rsi
callq 0x5370
addq $-0x28, %r15
cmpq $-0x50, %r15
jne 0xb895
jmp 0xb8d4
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0xb8d4
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5370
movq 0x500(%rsp), %rdi
cmpq %r14, %rdi
je 0xb672
movq 0x510(%rsp), %rsi
incq %rsi
callq 0x5370
jmp 0xb672
movq %rax, %rbx
jmp 0xb672
movq %rax, %rbx
leaq 0x2b0(%rsp), %rdi
callq 0xec7a
leaq 0x278(%rsp), %rdi
callq 0xecee
jmp 0xb924
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0xb940
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x5370
jmp 0xb940
movq %rax, %rbx
movq 0x5d0(%rsp), %rdi
cmpq %r14, %rdi
je 0xb67f
movq 0x5e0(%rsp), %rsi
incq %rsi
callq 0x5370
jmp 0xb67f
movq %rax, %rbx
jmp 0xb67f
movq %rax, %rbx
movq 0x278(%rsp), %rdi
cmpq %r14, %rdi
je 0xb68c
movq 0x288(%rsp), %rsi
incq %rsi
callq 0x5370
jmp 0xb68c
nop