// File: /workspace/github_cpp_makefile_star2_O1/Kei18[P]pibt/./src/app.h
// Function: run(int, char**)
Problem* run(int argc, char *argv[])
{
  std::string configfile;

#ifdef OF
  std::cout << "reading params" << "\n";
#endif

  /************************
   * set args
   ************************/
  int opt = 0;
  std::string arg;
  opterr = 0;  // ignore getopt error
  while ((opt = getopt(argc, argv, "p:")) != -1) {
    arg = std::string(optarg);
    switch (opt) {
    case 'p':  // config
      configfile = arg;
      break;
    default:
      break;
    }
  }

  /************************
   * default setting
   ************************/
  Param::EnvConfig* envConfig = new Param::EnvConfig
    {
     Param::P_MAPF,    // problem type
     Param::S_PIBT,    // solver type
     "./map/5x5.map",  // field type
     3,                // agent number
     10000,            // timesteplimit
     10,               // task number
     0.1,              // task frequency
     false,            // scenario
     "",               // scenario file
     0,                // seed
     false,            // save log
     true,             // print log
     false,            // print time
    };
  Param::SolverConfig* solverConfig = new Param::SolverConfig
    {
     false,  // WarshallFloyd
     true,   // CBS, ECBS, iECBS, independet operater
     5,      // WHCA* or winPIBT, window size
     1.5,    // ECBS or iECBS, suboptimal param
     true,   // winPIBT, softmode
    };
  Param::VisualConfig* visualConfig = new Param::VisualConfig
    {
     false,                  // showicon
     "./material/sheep.png"  // icon
    };

  /************************
   * load setting
   ************************/
  setParams(configfile, envConfig, solverConfig, visualConfig);

#ifdef OF
  std::cout << "done." << "\n";
  std::cout << "loading map : " << envConfig->field << "\n";
#endif


  /************************
   * set seed
   ************************/
  // seed for problem and graph
  std::mt19937* MT_PG = new std::mt19937(envConfig->seed);
  // seed for solver
  std::mt19937* MT_S = new std::mt19937(envConfig->seed);

  /************************
   * graph definition
   ************************/
  Graph* G = nullptr;
  if (envConfig->PTYPE == Param::PROBLEM_TYPE::P_MAPF ||
      envConfig->PTYPE == Param::PROBLEM_TYPE::P_IMAPF ||
      envConfig->PTYPE == Param::PROBLEM_TYPE::P_IMAPF_FAIR) {
    G = new SimpleGrid(envConfig->field, MT_PG);
  } else if (envConfig->PTYPE == Param::PROBLEM_TYPE::P_MAPD) {
    G = new PD(envConfig->field, MT_PG);
  } else if (envConfig->PTYPE == Param::PROBLEM_TYPE::P_MAPF_STATION ||
             envConfig->PTYPE == Param::PROBLEM_TYPE::P_IMAPF_STATION) {
    G = new Station(envConfig->field, MT_PG);
  } else {
    std::cout << "error@run, problem is not defined" << "\n";
    std::exit(1);
  }

  /************************
   * agent definition
   ************************/
  Agents A;
  Paths points;
  if (envConfig->scenario) {
#ifdef OF
    std::cout << "use scenario : " << envConfig->scenariofile << "\n";
#endif
    setScenario(envConfig->scenariofile, points, G);
  } else {
    points = G->getRandomStartGoal(envConfig->agentnum);
  }

  for (int i = 0; i < envConfig->agentnum; ++i) {
    Agent* a = new Agent(points[i][0]);
    A.push_back(a);
  }

  /************************
   * problem definition
   ************************/
  Problem* P = nullptr;
  if (envConfig->PTYPE == Param::PROBLEM_TYPE::P_MAPF ||
      envConfig->PTYPE == Param::PROBLEM_TYPE::P_MAPF_STATION) {
    std::vector<Task*> T;
    for (int i = 0; i < envConfig->agentnum; ++i) {
      Task* tau = new Task(points[i][1]);
      T.push_back(tau);
    }
    P = new MAPF(G, A, T, MT_PG);
  } else if (envConfig->PTYPE == Param::PROBLEM_TYPE::P_MAPD) {
    P = new MAPD(G, A, G->getPickup(), G->getDelivery(),
                 envConfig->tasknum, envConfig->taskfrequency, MT_PG);
  } else if (envConfig->PTYPE == Param::PROBLEM_TYPE::P_IMAPF ||
             envConfig->PTYPE == Param::PROBLEM_TYPE::P_IMAPF_STATION) {
    P = new IMAPF(G, A, envConfig->tasknum, MT_PG);
  } else if (envConfig->PTYPE == Param::PROBLEM_TYPE::P_IMAPF_FAIR) {
    P = new IMAPF_FAIR(G, A, envConfig->tasknum, MT_PG);
  } else {
    std::cout << "error@run, problem is not defined" << "\n";
    std::exit(1);
  }
  // set timestep limit
  P->setTimestepLimit(envConfig->timesteplimit);

  /************************
   * solver definition
   ************************/
  Solver* solver = nullptr;
  switch (envConfig->STYPE) {
  case Param::SOLVER_TYPE::S_CBS:
    if (envConfig->PTYPE != Param::PROBLEM_TYPE::P_MAPF &&
        envConfig->PTYPE != Param::PROBLEM_TYPE::P_MAPF_STATION) {
      std::cout << "error@run, CBS cannot solve except MAPF" << "\n";
      std::exit(1);
    }
    solver = new CBS(P, solverConfig->ID);
    break;
  case Param::SOLVER_TYPE::S_ECBS:
    if (envConfig->PTYPE != Param::PROBLEM_TYPE::P_MAPF &&
        envConfig->PTYPE != Param::PROBLEM_TYPE::P_MAPF_STATION) {
      std::cout << "error@run, ECBS cannot solve except MAPF" << "\n";
      std::exit(1);
    }
    solver = new ECBS(P, solverConfig->suboptimal, solverConfig->ID);
    break;
  case Param::SOLVER_TYPE::S_iECBS:
    if (envConfig->PTYPE != Param::PROBLEM_TYPE::P_MAPF &&
        envConfig->PTYPE != Param::PROBLEM_TYPE::P_MAPF_STATION) {
      std::cout << "error@run, iECBS cannot solve except MAPF" << "\n";
      std::exit(1);
    }
    solver = new iECBS(P, solverConfig->suboptimal, solverConfig->ID);
    break;
  case Param::SOLVER_TYPE::S_WHCA:
    if (envConfig->PTYPE != Param::PROBLEM_TYPE::P_MAPF &&
        envConfig->PTYPE != Param::PROBLEM_TYPE::P_MAPF_STATION) {
      std::cout << "error@run, WHCA cannot solve except MAPF" << "\n";
      std::exit(1);
    }
    solver = new WHCA(P, solverConfig->window);
    break;
  case Param::SOLVER_TYPE::S_HCA:
    if (envConfig->PTYPE != Param::PROBLEM_TYPE::P_MAPF &&
        envConfig->PTYPE != Param::PROBLEM_TYPE::P_MAPF_STATION) {
      std::cout << "error@run, HCA cannot solve except MAPF" << "\n";
      std::exit(1);
    }
    solver = new HCA(P);
    break;
  case Param::SOLVER_TYPE::S_PPS:
    if (envConfig->PTYPE != Param::PROBLEM_TYPE::P_MAPF &&
        envConfig->PTYPE != Param::PROBLEM_TYPE::P_MAPF_STATION) {
      std::cout << "error@run, PPS cannot solve except MAPF" << "\n";
      std::exit(1);
    }
    solver = new PPS(P);
    break;
  case Param::SOLVER_TYPE::S_PIBT:
    solver = new PIBT(P, MT_S);
    break;
  case Param::SOLVER_TYPE::S_winPIBT:
    solver = new winPIBT(P, solverConfig->window,
                         solverConfig->softmode, MT_S);
    break;
  case Param::SOLVER_TYPE::S_TP:
    if (envConfig->PTYPE != Param::PROBLEM_TYPE::P_MAPD) {
      std::cout << "error@run, TP cannot solve except MAPD" << "\n";
      std::exit(1);
    }
    solver = new TP(P, G->getAllSpecialPoints());
    break;
  default:
    std::cout << "error@run, solver is not defined" << "\n";
    std::exit(1);
    break;
  }

  // precomputing distances
  if (solverConfig->WarshallFloyd) {
#ifdef OF
    std::cout << "start WarshallFloyd, "
              << "it requires O(" << G->getNodesNum() << "^3) cost\n";
#endif

    solver->WarshallFloyd();

#ifdef OF
    std::cout << "done." << "\n";
#endif
  }

  /************************
   * start solving
   ************************/
#ifdef OF
  std::cout << "done." << "\n";
  std::cout << "start solving the iterative MAPF problem" << "\n";
#endif

  solver->solve();

#ifdef OF
  std::cout << "success to solve!" << "\n\n";
#endif

  /************************
   * summarize results
   ************************/
  std::string result = "[setting] seed:" + std::to_string(envConfig->seed) + "\n";
  if (envConfig->scenario) {
    result += "[setting] scenario: " + envConfig->scenariofile + "\n";
  }
  result += solver->logStr();
  if (envConfig->log) {
    std::string outfile;
    std::ofstream log;
    setCurrentTime(outfile);
    outfile = "./log/" + outfile + ".txt";
    log.open(outfile, std::ios::out);
    if (!log) {
      std::cout << "error@run, cannot open log file "
                << outfile << "\n";
      std::exit(1);
    }
    log << result;
    log.close();
  }

  if (envConfig->printlog) {
    std::cout << result << "\n";
  } else if (envConfig->printtime) {
    std::cout << "[solver] elapsed:" << solver->getElapsed() << "\n\n";
  }

  // for visualization
  P->visual_showicon = visualConfig->showicon;
  P->visual_icon = visualConfig->icon;

  return P;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x4b8, %rsp            # imm = 0x4B8
movq %rsi, %rbx
movl %edi, %ebp
leaq 0xd0(%rsp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x1e8(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
movq 0x58504(%rip), %rax     # 0x61fc0
movl $0x0, (%rax)
leaq 0x40539(%rip), %rdx     # 0x4a002
callq 0x60d0
cmpl $-0x1, %eax
je 0x9b63
movl %eax, %r15d
leaq 0x2a0(%rsp), %r14
leaq 0x1d8(%rsp), %r12
leaq 0x40511(%rip), %r13     # 0x4a002
movq 0x58460(%rip), %rax     # 0x61f58
movq (%rax), %rsi
movq %r14, %rdi
leaq 0x20(%rsp), %rdx
callq 0xb490
movq %r12, %rdi
movq %r14, %rsi
callq 0x6460
movq 0x2a0(%rsp), %rdi
leaq 0x2b0(%rsp), %rax
cmpq %rax, %rdi
je 0x9b38
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x6380
cmpl $0x70, %r15d
jne 0x9b4e
leaq 0xc0(%rsp), %rdi
movq %r12, %rsi
callq 0x6200
movl %ebp, %edi
movq %rbx, %rsi
movq %r13, %rdx
callq 0x60d0
movl %eax, %r15d
cmpl $-0x1, %eax
jne 0x9af1
movl $0x68, %edi
callq 0x6370
movabsq $0x700000000, %rcx      # imm = 0x700000000
movq %rcx, (%rax)
leaq 0x8(%rax), %r14
movq %rax, %r15
leaq 0x18(%rax), %rbx
movq %rbx, 0x8(%rax)
leaq 0x3e7ed(%rip), %rsi     # 0x4837d
leaq 0x3e7f3(%rip), %rdx     # 0x4838a
movq %r14, %rdi
movq %rax, 0x10(%rsp)
callq 0xb860
movaps 0x3e465(%rip), %xmm0    # 0x48010
movups %xmm0, 0x28(%r15)
movb $0x0, 0x38(%r15)
leaq 0x40(%r15), %r12
movq %r15, %rax
addq $0x50, %rax
movq %rax, 0x40(%r15)
leaq 0x3e999(%rip), %rdx     # 0x48564
movq %r12, %rdi
movq %rdx, %rsi
callq 0xb860
movl $0x0, 0x60(%r15)
movw $0x100, 0x64(%r15)      # imm = 0x100
movb $0x0, 0x66(%r15)
movl $0x10, %edi
callq 0x6370
movw $0x100, (%rax)          # imm = 0x100
movabsq $0x3fc0000000000005, %rcx # imm = 0x3FC0000000000005
movq %rcx, 0x4(%rax)
movq %rax, 0x18(%rsp)
movb $0x1, 0xc(%rax)
movl $0x28, %edi
callq 0x6370
movq %rax, %r14
movb $0x0, (%rax)
leaq 0x8(%rax), %r15
addq $0x18, %rax
movq %rax, 0x8(%r14)
leaq 0x3e758(%rip), %rsi     # 0x4838b
leaq 0x3e765(%rip), %rdx     # 0x4839f
movq %r15, %rdi
callq 0xb860
leaq 0x228(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq 0xc0(%rsp), %rsi
movq 0xc8(%rsp), %rdx
addq %rsi, %rdx
leaq 0x218(%rsp), %rdi
callq 0xb7d0
leaq 0x218(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq %r14, %rcx
callq 0x784c
movq 0x218(%rsp), %rdi
cmpq %rbx, %rdi
je 0x9ca5
movq 0x228(%rsp), %rsi
incq %rsi
callq 0x6380
movq %r12, 0x108(%rsp)
movq %r15, 0x110(%rsp)
movq %r14, 0xb8(%rsp)
movl $0x1388, %edi           # imm = 0x1388
callq 0x6370
movq 0x10(%rsp), %rbx
movq %rax, %r15
movl 0x60(%rbx), %r12d
movq %r12, (%rax)
movl $0x1, %eax
movq %r12, %rcx
movq %rcx, %rdx
shrq $0x1e, %rdx
xorl %ecx, %edx
imull $0x6c078965, %edx, %ecx # imm = 0x6C078965
addl %eax, %ecx
movq %rcx, (%r15,%rax,8)
incq %rax
cmpq $0x270, %rax            # imm = 0x270
jne 0x9cde
movq $0x270, 0x1380(%r15) # imm = 0x270
movl $0x1388, %edi           # imm = 0x1388
callq 0x6370
movq %r12, (%rax)
movl $0x1, %edx
movq %r12, %rcx
shrq $0x1e, %rcx
xorl %r12d, %ecx
imull $0x6c078965, %ecx, %r12d # imm = 0x6C078965
addl %edx, %r12d
movq %r12, (%rax,%rdx,8)
incq %rdx
cmpq $0x270, %rdx            # imm = 0x270
jne 0x9d1b
movq %rax, %rbp
movq $0x270, 0x1380(%rax) # imm = 0x270
movl (%rbx), %eax
cmpl $0x5, %eax
ja 0xabae
movl $0x25, %ecx
btl %eax, %ecx
jae 0x9db8
movl $0xc0, %edi
callq 0x6370
movq %rax, 0x8(%rsp)
leaq 0x288(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
addq %rsi, %rdx
leaq 0x278(%rsp), %rdi
callq 0xb7d0
leaq 0x278(%rsp), %rsi
movq 0x8(%rsp), %rdi
movq %r15, %rdx
callq 0x1e850
movq 0x278(%rsp), %rdi
jmp 0x9e66
movl $0x18, %ecx
btl %eax, %ecx
jae 0x9e15
movl $0xe0, %edi
callq 0x6370
movq %rax, 0x8(%rsp)
leaq 0x248(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
addq %rsi, %rdx
leaq 0x238(%rsp), %rdi
callq 0xb7d0
leaq 0x238(%rsp), %rsi
movq 0x8(%rsp), %rdi
movq %r15, %rdx
callq 0x20514
movq 0x238(%rsp), %rdi
jmp 0x9e66
movl $0x108, %edi            # imm = 0x108
callq 0x6370
movq %rax, 0x8(%rsp)
leaq 0x268(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
addq %rsi, %rdx
leaq 0x258(%rsp), %rdi
callq 0xb7d0
leaq 0x258(%rsp), %rsi
movq 0x8(%rsp), %rdi
movq %r15, %rdx
callq 0x1db5e
movq 0x258(%rsp), %rdi
cmpq %r12, %rdi
je 0x9e77
movq (%r12), %rsi
incq %rsi
callq 0x6380
xorps %xmm0, %xmm0
movaps %xmm0, 0x40(%rsp)
xorl %eax, %eax
movq %rax, 0x50(%rsp)
movq %rax, 0x90(%rsp)
movaps %xmm0, 0x80(%rsp)
cmpb $0x1, 0x38(%rbx)
jne 0x9f05
movq %rbx, %rax
leaq 0x208(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq 0x40(%rax), %rsi
movq 0x48(%rax), %rdx
addq %rsi, %rdx
leaq 0x1f8(%rsp), %rdi
callq 0xb7d0
leaq 0x1f8(%rsp), %rdi
leaq 0x80(%rsp), %rsi
movq 0x8(%rsp), %rdx
callq 0x9360
movq 0x1f8(%rsp), %rdi
cmpq %rbx, %rdi
movq 0x10(%rsp), %rbx
je 0x9f7a
movq 0x208(%rsp), %rsi
incq %rsi
callq 0x6380
jmp 0x9f7a
movl 0x28(%rbx), %edx
movq 0x8(%rsp), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *0x28(%rax)
xorps %xmm0, %xmm0
leaq 0x2a0(%rsp), %rdi
movaps %xmm0, (%rdi)
movaps 0x80(%rsp), %xmm0
movq 0x90(%rsp), %rax
leaq 0x20(%rsp), %r12
movups (%r12), %xmm1
movaps %xmm1, 0x80(%rsp)
movq 0x10(%r12), %rcx
movq %rcx, 0x90(%rsp)
movaps (%rdi), %xmm1
movaps %xmm0, (%rdi)
movq %rax, 0x10(%rdi)
movups %xmm1, (%r12)
movq $0x0, 0x10(%r12)
callq 0xb4ce
movq %r12, %rdi
callq 0xb4ce
cmpl $0x0, 0x28(%rbx)
jle 0x9ff2
xorl %ebx, %ebx
leaq 0x2a0(%rsp), %r12
xorl %r14d, %r14d
movl $0x48, %edi
callq 0x6370
movq %rax, %r13
movq 0x80(%rsp), %rax
movq (%rax,%rbx), %rax
movq (%rax), %rsi
movq %r13, %rdi
callq 0x19146
movq %r13, 0x2a0(%rsp)
movq 0x48(%rsp), %rsi
cmpq 0x50(%rsp), %rsi
je 0x9fd0
movq %r13, (%rsi)
addq $0x8, 0x48(%rsp)
jmp 0x9fdd
leaq 0x40(%rsp), %rdi
movq %r12, %rdx
callq 0x18edc
incq %r14
movq 0x10(%rsp), %rax
movslq 0x28(%rax), %rax
addq $0x18, %rbx
cmpq %rax, %r14
jl 0x9f8d
movq 0x10(%rsp), %rbx
movl (%rbx), %eax
cmpq $0x5, %rax
ja 0xabde
leaq 0x3e046(%rip), %rcx     # 0x48050
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
xorps %xmm0, %xmm0
movaps %xmm0, 0x2a0(%rsp)
movq $0x0, 0x2b0(%rsp)
cmpl $0x0, 0x28(%rbx)
jle 0xa0a9
xorl %ebx, %ebx
leaq 0x20(%rsp), %r12
xorl %r14d, %r14d
movl $0x40, %edi
callq 0x6370
movq %rax, %r13
movq 0x80(%rsp), %rax
movq (%rax,%rbx), %rax
movq 0x8(%rax), %rsi
movq %r13, %rdi
callq 0x47328
movq %r13, 0x20(%rsp)
movq 0x2a8(%rsp), %rsi
cmpq 0x2b0(%rsp), %rsi
je 0xa084
movq %r13, (%rsi)
addq $0x8, 0x2a8(%rsp)
jmp 0xa094
leaq 0x2a0(%rsp), %rdi
movq %r12, %rdx
callq 0x18ffc
incq %r14
movq 0x10(%rsp), %rax
movslq 0x28(%rax), %rax
addq $0x18, %rbx
cmpq %rax, %r14
jl 0xa03a
movl $0x90, %edi
callq 0x6370
movq %rax, %r14
leaq 0x1c0(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0xb51c
movq 0x10(%rsp), %rbx
leaq 0x1a8(%rsp), %rdi
leaq 0x2a0(%rsp), %rsi
callq 0xb59c
leaq 0x1c0(%rsp), %rdx
leaq 0x1a8(%rsp), %rcx
movq %r14, %rdi
movq 0x8(%rsp), %rsi
movq %r15, %r8
callq 0x24a10
movq 0x1a8(%rsp), %rdi
testq %rdi, %rdi
je 0xa11f
movq 0x1b8(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
movq 0x1c0(%rsp), %rdi
testq %rdi, %rdi
je 0xa13c
movq 0x1d0(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
movq 0x2a0(%rsp), %rdi
testq %rdi, %rdi
je 0xa2d8
movq 0x2b0(%rsp), %rsi
jmp 0xa2d0
movl $0xd0, %edi
callq 0x6370
movq %rax, %r14
leaq 0x148(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0xb51c
movl 0x30(%rbx), %ecx
leaq 0x148(%rsp), %rdx
movq %r14, %rdi
movq 0x8(%rsp), %rsi
movq %r15, %r8
callq 0x21c90
movq 0x148(%rsp), %rdi
testq %rdi, %rdi
je 0xa2d8
movq 0x158(%rsp), %rsi
jmp 0xa2d0
movl $0xd0, %edi
callq 0x6370
movq %rax, %r14
leaq 0x190(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0xb51c
movq 0x8(%rsp), %r12
movq (%r12), %rax
leaq 0x178(%rsp), %rdi
movq %r12, %rsi
callq *0x38(%rax)
movq (%r12), %rax
leaq 0x160(%rsp), %rdi
movq %r12, %rsi
callq *0x40(%rax)
movl 0x30(%rbx), %r9d
movss 0x34(%rbx), %xmm0
subq $0x8, %rsp
leaq 0x198(%rsp), %rdx
leaq 0x180(%rsp), %rcx
leaq 0x168(%rsp), %r8
movq %r14, %rdi
movq %r12, %rsi
pushq %r15
callq 0x237be
addq $0x10, %rsp
movq 0x160(%rsp), %rdi
testq %rdi, %rdi
je 0xa24d
movq 0x170(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
movq 0x178(%rsp), %rdi
testq %rdi, %rdi
je 0xa26a
movq 0x188(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
movq 0x190(%rsp), %rdi
testq %rdi, %rdi
je 0xa2d8
movq 0x1a0(%rsp), %rsi
jmp 0xa2d0
movl $0xb0, %edi
callq 0x6370
movq %rax, %r14
leaq 0x130(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0xb51c
movl 0x30(%rbx), %ecx
leaq 0x130(%rsp), %rdx
movq %r14, %rdi
movq 0x8(%rsp), %rsi
movq %r15, %r8
callq 0x22ada
movq 0x130(%rsp), %rdi
testq %rdi, %rdi
je 0xa2d8
movq 0x140(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
movl 0x2c(%rbx), %eax
movl %eax, 0xc(%r14)
movl 0x4(%rbx), %eax
cmpq $0x8, %rax
ja 0xac3e
leaq 0x3dd75(%rip), %rcx     # 0x48068
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl (%rbx), %eax
testl %eax, %eax
je 0xa30b
cmpl $0x3, %eax
jne 0xac6e
movl $0xa8, %edi
callq 0x6370
movq %rax, %r15
movq 0x18(%rsp), %rax
movzbl 0x1(%rax), %edx
movq %r15, %rdi
movq %r14, %rsi
callq 0x25c32
jmp 0xa4dd
movl (%rbx), %eax
testl %eax, %eax
je 0xa340
cmpl $0x3, %eax
jne 0xac9e
movl $0x88, %edi
callq 0x6370
movq %rax, %r15
movq %rax, %rdi
movq %r14, %rsi
callq 0x43c2c
leaq 0x56f41(%rip), %rax     # 0x612a0
movq %rax, (%r15)
jmp 0xa4dd
movl (%rbx), %eax
testl %eax, %eax
je 0xa376
cmpl $0x3, %eax
jne 0xacce
movl $0x160, %edi            # imm = 0x160
callq 0x6370
movq %rax, %r15
movq 0x18(%rsp), %rax
movss 0x8(%rax), %xmm0
movzbl 0x1(%rax), %edx
movq %r15, %rdi
movq %r14, %rsi
callq 0x31948
jmp 0xa4dd
movl (%rbx), %eax
testl %eax, %eax
je 0xa3b0
cmpl $0x3, %eax
jne 0xacfe
movl $0x88, %edi
callq 0x6370
movq %rax, %r15
movq 0x18(%rsp), %rax
movl 0x4(%rax), %edx
movq %r15, %rdi
movq %r14, %rsi
callq 0x43c70
jmp 0xa4dd
movl $0xb0, %edi
callq 0x6370
movq %rax, %r15
movq %rax, %rdi
movq %r14, %rsi
movq %rbp, %rdx
callq 0x374ca
jmp 0xa4dd
movl (%rbx), %eax
testl %eax, %eax
je 0xa404
cmpl $0x3, %eax
jne 0xad2b
movl $0xe8, %edi
callq 0x6370
movq %rax, %r15
movq 0x18(%rsp), %rax
movss 0x8(%rax), %xmm0
movzbl 0x1(%rax), %edx
movq %r15, %rdi
movq %r14, %rsi
callq 0x2cf32
jmp 0xa4dd
movl (%rbx), %eax
testl %eax, %eax
je 0xa43e
cmpl $0x3, %eax
jne 0xad58
movl $0x1a0, %edi            # imm = 0x1A0
callq 0x6370
movq %rax, %r15
movq %rax, %rdi
movq %r14, %rsi
callq 0x38bec
jmp 0xa4dd
cmpl $0x1, (%rbx)
jne 0xac0e
movl $0xa8, %edi
callq 0x6370
movq %rax, %r15
movq 0x8(%rsp), %rsi
movq (%rsi), %rax
leaq 0x118(%rsp), %rdi
callq *0x50(%rax)
leaq 0x118(%rsp), %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x40000
movq 0x118(%rsp), %rdi
testq %rdi, %rdi
je 0xa4dd
movq 0x128(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
jmp 0xa4dd
movl $0xe8, %edi
callq 0x6370
movq %rax, %r15
movq 0x18(%rsp), %rax
movl 0x4(%rax), %edx
movzbl 0xc(%rax), %ecx
movq %r15, %rdi
movq %r14, %rsi
movq %rbp, %r8
callq 0x4524c
movq 0x18(%rsp), %rax
cmpb $0x1, (%rax)
jne 0xa4ef
movq %r15, %rdi
callq 0x3ed06
movq (%r15), %rax
movq %r15, %rdi
callq *0x10(%rax)
movq %r14, 0x10(%rsp)
movl 0x60(%rbx), %r14d
movl %r14d, %ebp
negl %ebp
cmovsl %r14d, %ebp
movl $0x1, %r13d
cmpl $0xa, %ebp
jb 0xa55e
movl $0x4, %r13d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %ebp, %ecx
cmpl $0x63, %ecx
jbe 0xa555
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0xa55b
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0xa55e
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r13d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0xa522
addl $-0x3, %r13d
jmp 0xa55e
addl $-0x2, %r13d
jmp 0xa55e
decl %r13d
shrl $0x1f, %r14d
leal (%r14,%r13), %esi
leaq 0x30(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x20(%rsp), %rdi
movl $0x2d, %edx
callq 0x6410
leaq 0x20(%rsp), %r12
addq (%r12), %r14
movq %r14, %rdi
movl %r13d, %esi
movl %ebp, %edx
callq 0xb762
leaq 0x3df63(%rip), %rcx     # 0x484fe
movl $0xf, %r8d
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x63d0
leaq 0x2b0(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
movq 0x10(%rsp), %r13
je 0xa5e3
movq %rdx, 0x2a0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x2b0(%rsp)
jmp 0xa5eb
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
leaq 0x2a0(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x3df52(%rip), %r14     # 0x48563
movq %r14, %rsi
callq 0x6690
leaq 0x70(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xa640
movq %rdx, 0x60(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x70(%rsp)
jmp 0xa646
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x68(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x2a0(%rsp), %rdi
cmpq %r12, %rdi
je 0xa67b
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x6380
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xa697
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x6380
cmpb $0x1, 0x38(%rbx)
jne 0xa76d
leaq 0x3de66(%rip), %rsi     # 0x4850e
leaq 0x20(%rsp), %rdi
movq 0x108(%rsp), %rdx
callq 0xb61c
leaq 0x3dea2(%rip), %rsi     # 0x48563
leaq 0x20(%rsp), %rdi
callq 0x6690
movq %r12, 0x2a0(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xa6f7
movq %rdx, 0x2a0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x2b0(%rsp)
jmp 0xa6ff
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x2a8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x2a0(%rsp), %rsi
movq 0x2a8(%rsp), %rdx
leaq 0x60(%rsp), %rdi
callq 0x6120
movq 0x2a0(%rsp), %rdi
cmpq %r12, %rdi
je 0xa751
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x6380
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xa76d
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x6380
movq (%r15), %rax
leaq 0x2a0(%rsp), %rdi
movq %r15, %rsi
callq *0x18(%rax)
movq 0x2a0(%rsp), %rsi
movq 0x2a8(%rsp), %rdx
leaq 0x60(%rsp), %rdi
callq 0x6120
movq 0x2a0(%rsp), %rdi
cmpq %r12, %rdi
je 0xa7b5
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x6380
cmpb $0x1, 0x64(%rbx)
movq 0xb8(%rsp), %r12
jne 0xaa44
leaq 0xa8(%rsp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x2a0(%rsp), %rdi
callq 0x65f0
xorps %xmm0, %xmm0
leaq 0xe0(%rsp), %r13
movups %xmm0, 0xb(%r13)
movaps %xmm0, (%r13)
xorl %edi, %edi
callq 0x6330
leaq 0x298(%rsp), %r12
movq %rax, (%r12)
leaq 0x4a8(%rsp), %rbp
movq %rbp, %rdi
xorl %esi, %esi
callq 0x65a0
movq %r12, %rdi
callq 0x62c0
movl $0x76c, %edx            # imm = 0x76C
addl 0x14(%rax), %edx
movl 0x10(%rax), %ecx
incl %ecx
movl 0xc(%rax), %r8d
movl 0x8(%rax), %r9d
movl (%rax), %r10d
movl 0x4(%rax), %r11d
subq $0x8, %rsp
leaq 0x3dd2e(%rip), %rsi     # 0x48582
movq %r13, %rdi
xorl %eax, %eax
pushq 0x8(%rbp)
pushq %r10
pushq %r11
callq 0x60a0
addq $0x20, %rsp
leaq 0x20(%rsp), %r12
leaq 0x30(%rsp), %rbp
movq %rbp, (%r12)
movq %r13, %rdi
callq 0x61a0
leaq (%rsp,%rax), %rdx
addq $0xe0, %rdx
movq %r12, %rdi
movq %r13, %rsi
callq 0xb860
leaq 0x98(%rsp), %rdi
leaq 0x20(%rsp), %r12
movq %r12, %rsi
callq 0x6460
movq (%r12), %rdi
cmpq %rbp, %rdi
movq %rbp, %r13
je 0xa8c3
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x6380
leaq 0x3dc59(%rip), %rsi     # 0x48523
leaq 0xe0(%rsp), %rdi
leaq 0x98(%rsp), %rdx
callq 0xb61c
leaq 0x3dc44(%rip), %rsi     # 0x4852a
leaq 0xe0(%rsp), %rdi
callq 0x6690
movq %r13, 0x20(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xa916
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0xa91e
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq 0x20(%rsp), %r12
movq %rdx, 0x8(%r12)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x98(%rsp), %rdi
movq %r12, %rsi
callq 0x6460
movq (%r12), %rdi
cmpq %r13, %rdi
je 0xa961
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x6380
leaq 0xf0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa982
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x6380
leaq 0x2a0(%rsp), %rdi
leaq 0x98(%rsp), %rsi
movl $0x10, %edx
callq 0x61b0
movq 0x2a0(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x2c0(%rsp,%rax)
jne 0xab66
movq 0x60(%rsp), %rsi
movq 0x68(%rsp), %rdx
leaq 0x2a0(%rsp), %rdi
callq 0x63f0
leaq 0x2a0(%rsp), %rdi
callq 0x6500
movq 0x5759f(%rip), %rax     # 0x61f80
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq 0x2a8(%rsp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, 0x2a0(%rsp,%rcx)
callq 0x62f0
leaq 0x398(%rsp), %rdi
callq 0x6140
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
movq 0xb8(%rsp), %r12
movq 0x10(%rsp), %r13
je 0xaa44
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x6380
cmpb $0x1, 0x65(%rbx)
jne 0xaa67
movq 0x60(%rsp), %rsi
movq 0x68(%rsp), %rdx
movq 0x5754d(%rip), %rdi     # 0x61fa8
callq 0x63f0
movl $0x1, %edx
jmp 0xaaa3
cmpb $0x1, 0x66(%rbx)
jne 0xaaae
movq 0x57534(%rip), %rdi     # 0x61fa8
leaq 0x3dad5(%rip), %rsi     # 0x48550
movl $0x11, %edx
callq 0x63f0
movsd 0x8(%r15), %xmm0
movq 0x57516(%rip), %rdi     # 0x61fa8
callq 0x6580
movl $0x2, %edx
leaq 0x3dabf(%rip), %r14     # 0x48562
movq %rax, %rdi
movq %r14, %rsi
callq 0x63f0
movb (%r12), %al
movb %al, 0x68(%r13)
leaq 0x70(%r13), %rdi
movq 0x110(%rsp), %rsi
callq 0x6200
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0xaae3
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x6380
leaq 0x80(%rsp), %rdi
callq 0xb4ce
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0xab07
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
movq 0x1d8(%rsp), %rdi
leaq 0x1e8(%rsp), %rax
cmpq %rax, %rdi
je 0xab2c
movq 0x1e8(%rsp), %rsi
incq %rsi
callq 0x6380
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0xab51
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x6380
movq %r13, %rax
addq $0x4b8, %rsp            # imm = 0x4B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x5743b(%rip), %rdi     # 0x61fa8
leaq 0x3d9bb(%rip), %rsi     # 0x4852f
movl $0x20, %edx
callq 0x63f0
movq 0x98(%rsp), %rsi
movq 0xa0(%rsp), %rdx
movq 0x57413(%rip), %rdi     # 0x61fa8
callq 0x63f0
leaq 0x3d9c2(%rip), %rsi     # 0x48563
movq %rax, %rdi
callq 0x6360
jmp 0xad83
movq 0x573f3(%rip), %rdi     # 0x61fa8
leaq 0x3d7e4(%rip), %rsi     # 0x483a0
movl $0x21, %edx
callq 0x63f0
movq 0x573db(%rip), %rdi     # 0x61fa8
leaq 0x3d98f(%rip), %rsi     # 0x48563
callq 0x6360
jmp 0xad83
movq 0x573c3(%rip), %rdi     # 0x61fa8
leaq 0x3d7b4(%rip), %rsi     # 0x483a0
movl $0x21, %edx
callq 0x63f0
movq 0x573ab(%rip), %rdi     # 0x61fa8
leaq 0x3d95f(%rip), %rsi     # 0x48563
callq 0x6360
jmp 0xad83
movq 0x57393(%rip), %rdi     # 0x61fa8
leaq 0x3d89a(%rip), %rsi     # 0x484b6
movl $0x26, %edx
callq 0x63f0
movq 0x5737b(%rip), %rdi     # 0x61fa8
leaq 0x3d92f(%rip), %rsi     # 0x48563
callq 0x6360
jmp 0xad83
movq 0x57363(%rip), %rdi     # 0x61fa8
leaq 0x3d891(%rip), %rsi     # 0x484dd
movl $0x20, %edx
callq 0x63f0
movq 0x5734b(%rip), %rdi     # 0x61fa8
leaq 0x3d8ff(%rip), %rsi     # 0x48563
callq 0x6360
jmp 0xad83
movq 0x57333(%rip), %rdi     # 0x61fa8
leaq 0x3d746(%rip), %rsi     # 0x483c2
movl $0x27, %edx
callq 0x63f0
movq 0x5731b(%rip), %rdi     # 0x61fa8
leaq 0x3d8cf(%rip), %rsi     # 0x48563
callq 0x6360
jmp 0xad83
movq 0x57303(%rip), %rdi     # 0x61fa8
leaq 0x3d7ba(%rip), %rsi     # 0x48466
movl $0x27, %edx
callq 0x63f0
movq 0x572eb(%rip), %rdi     # 0x61fa8
leaq 0x3d89f(%rip), %rsi     # 0x48563
callq 0x6360
jmp 0xad83
movq 0x572d3(%rip), %rdi     # 0x61fa8
leaq 0x3d737(%rip), %rsi     # 0x48413
movl $0x29, %edx
callq 0x63f0
movq 0x572bb(%rip), %rdi     # 0x61fa8
leaq 0x3d86f(%rip), %rsi     # 0x48563
callq 0x6360
jmp 0xad83
movq 0x572a3(%rip), %rdi     # 0x61fa8
leaq 0x3d731(%rip), %rsi     # 0x4843d
movl $0x28, %edx
callq 0x63f0
movq 0x5728b(%rip), %rdi     # 0x61fa8
leaq 0x3d83f(%rip), %rsi     # 0x48563
callq 0x6360
jmp 0xad83
movq 0x57276(%rip), %rdi     # 0x61fa8
leaq 0x3d6b1(%rip), %rsi     # 0x483ea
movl $0x28, %edx
callq 0x63f0
movq 0x5725e(%rip), %rdi     # 0x61fa8
leaq 0x3d812(%rip), %rsi     # 0x48563
callq 0x6360
jmp 0xad83
movq 0x57249(%rip), %rdi     # 0x61fa8
leaq 0x3d728(%rip), %rsi     # 0x4848e
movl $0x27, %edx
callq 0x63f0
movq 0x57231(%rip), %rdi     # 0x61fa8
leaq 0x3d7e5(%rip), %rsi     # 0x48563
callq 0x6360
movl $0x1, %edi
callq 0x6440
movq %rax, %rbp
movq 0x118(%rsp), %rdi
testq %rdi, %rdi
je 0xadb2
movq 0x128(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
jmp 0xadb2
movq %rax, %rbp
jmp 0xadd9
movq %rax, %rbp
movl $0x1a0, %esi            # imm = 0x1A0
jmp 0xadf2
jmp 0xade0
jmp 0xadcc
movq %rax, %rbp
movl $0x160, %esi            # imm = 0x160
jmp 0xadf2
movq %rax, %rbp
movl $0x88, %esi
jmp 0xadf2
movq %rax, %rbp
movl $0xa8, %esi
jmp 0xadf2
movq %rax, %rbp
movl $0xe8, %esi
jmp 0xadf2
movq %rax, %rbp
movl $0xb0, %esi
movq %r15, %rdi
jmp 0xb1df
movq %rax, %rbp
movq 0x160(%rsp), %rdi
testq %rdi, %rdi
je 0xae1f
movq 0x170(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
jmp 0xae1f
movq %rax, %rbp
movq 0x178(%rsp), %rdi
testq %rdi, %rdi
je 0xae63
movq 0x188(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
jmp 0xae63
movq %rax, %rbp
movq 0x130(%rsp), %rdi
testq %rdi, %rdi
je 0xae85
movq 0x140(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
jmp 0xae85
movq %rax, %rbp
movq 0x190(%rsp), %rdi
testq %rdi, %rdi
je 0xae92
movq 0x1a0(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
jmp 0xae92
movq %rax, %rbp
movl $0xb0, %esi
jmp 0xaf49
movq %rax, %rbp
jmp 0xaf44
movq %rax, %rbp
movq 0x258(%rsp), %rdi
cmpq %r12, %rdi
je 0xaebc
movq 0x268(%rsp), %rsi
incq %rsi
callq 0x6380
jmp 0xaebc
movq %rax, %rbp
movl $0x108, %esi            # imm = 0x108
jmp 0xb056
movq %rax, %rbp
movq 0x1a8(%rsp), %rdi
testq %rdi, %rdi
je 0xaeeb
movq 0x1b8(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
jmp 0xaeeb
movq %rax, %rbp
movq 0x1c0(%rsp), %rdi
testq %rdi, %rdi
je 0xaf0d
movq 0x1d0(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
jmp 0xaf0d
movq %rax, %rbp
movl $0x90, %esi
movq %r14, %rdi
jmp 0xb1ae
jmp 0xb1b5
movq %rax, %rbp
movq 0x148(%rsp), %rdi
testq %rdi, %rdi
je 0xaf3f
movq 0x158(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
jmp 0xaf44
movq %rax, %rbp
movl $0xd0, %esi
movq %r14, %rdi
jmp 0xb1df
movq %rax, %rbp
movq 0x238(%rsp), %rdi
cmpq %r12, %rdi
je 0xaf76
movq 0x248(%rsp), %rsi
incq %rsi
callq 0x6380
jmp 0xaf76
movq %rax, %rbp
movl $0xe0, %esi
jmp 0xb056
movq %rax, %rbp
leaq 0xf0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb151
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x6380
jmp 0xb151
jmp 0xb14e
movq %rax, %rbp
jmp 0xb15e
movq %rax, %rbp
movq 0x2a0(%rsp), %rdi
cmpq %r12, %rdi
je 0xafdf
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x6380
jmp 0xafdf
movq %rax, %rbp
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xb188
movq 0x30(%rsp), %rsi
jmp 0xb17b
jmp 0xb185
movq %rax, %rbp
movq 0x1f8(%rsp), %rdi
cmpq %rbx, %rdi
je 0xb1ee
movq 0x208(%rsp), %rsi
jmp 0xb19c
jmp 0xb1eb
jmp 0xb1eb
movq %rax, %rbp
movq 0x278(%rsp), %rdi
cmpq %r12, %rdi
je 0xb051
movq 0x288(%rsp), %rsi
incq %rsi
callq 0x6380
jmp 0xb051
movq %rax, %rbp
movl $0xc0, %esi
movq 0x8(%rsp), %rdi
jmp 0xb20d
jmp 0xb1eb
movq %rax, %rbp
movq 0x2a0(%rsp), %rdi
cmpq %r12, %rdi
je 0xb188
movq 0x2b0(%rsp), %rsi
jmp 0xb17b
jmp 0xb185
movq %rax, %rbp
movq 0x2a0(%rsp), %rdi
cmpq %r12, %rdi
je 0xb0b0
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x6380
jmp 0xb0b0
movq %rax, %rbp
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xb1ee
movq 0x30(%rsp), %rsi
jmp 0xb19c
jmp 0xb1eb
jmp 0xb1e6
jmp 0xb1e6
movq %rax, %rbp
movq 0x218(%rsp), %rdi
cmpq %rbx, %rdi
je 0xb212
movq 0x228(%rsp), %rsi
incq %rsi
jmp 0xb20d
movq %rax, %rbp
movl $0x28, %esi
movq %r14, %rdi
jmp 0xb20d
jmp 0xb1e6
movq %rax, %rbp
movq (%r14), %rdi
cmpq %rbx, %rdi
je 0xb130
movq (%rbx), %rsi
incq %rsi
callq 0x6380
jmp 0xb130
movq %rax, %rbp
movl $0x68, %esi
movq 0x10(%rsp), %rdi
jmp 0xb20d
jmp 0xb1e6
jmp 0xb1e6
jmp 0xb1e6
movq %rax, %rbp
leaq 0x2a0(%rsp), %rdi
callq 0x6540
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0xb188
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x6380
jmp 0xb188
movq %rax, %rbp
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0xb1ee
movq 0x70(%rsp), %rsi
incq %rsi
jmp 0xb1df
jmp 0xb1eb
movq %rax, %rbp
movl $0x40, %esi
movq %r13, %rdi
callq 0x6380
jmp 0xb1b8
movq %rax, %rbp
movq 0x2a0(%rsp), %rdi
testq %rdi, %rdi
je 0xb1ee
movq 0x2b0(%rsp), %rsi
subq %rdi, %rsi
jmp 0xb1df
jmp 0xb1e6
movq %rax, %rbp
movl $0x48, %esi
movq %r13, %rdi
callq 0x6380
jmp 0xb1ee
movq %rax, %rbp
jmp 0xb212
movq %rax, %rbp
leaq 0x80(%rsp), %rdi
callq 0xb4ce
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0xb212
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
movq 0x1d8(%rsp), %rdi
leaq 0x1e8(%rsp), %rax
cmpq %rax, %rdi
je 0xb237
movq 0x1e8(%rsp), %rsi
incq %rsi
callq 0x6380
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0xb25c
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x6380
movq %rbp, %rdi
callq 0x6620