// File: /workspace/github_cpp_makefile_star2_O3/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 0x584cb(%rip), %rax     # 0x61fc0
movl $0x0, (%rax)
leaq 0x4053e(%rip), %rdx     # 0x4a040
callq 0x60d0
cmpl $-0x1, %eax
je 0x9b9c
movl %eax, %r15d
leaq 0x2a0(%rsp), %r14
leaq 0x1d8(%rsp), %r12
leaq 0x40516(%rip), %r13     # 0x4a040
movq 0x58427(%rip), %rax     # 0x61f58
movq (%rax), %rsi
movq %r14, %rdi
leaq 0x20(%rsp), %rdx
callq 0xb4ca
movq %r12, %rdi
movq %r14, %rsi
callq 0x6460
movq 0x2a0(%rsp), %rdi
leaq 0x2b0(%rsp), %rax
cmpq %rax, %rdi
je 0x9b71
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x6380
cmpl $0x70, %r15d
jne 0x9b87
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 0x9b2a
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 0x3e7b4(%rip), %rsi     # 0x4837d
leaq 0x3e7ba(%rip), %rdx     # 0x4838a
movq %r14, %rdi
movq %rax, 0x10(%rsp)
callq 0xb8a6
movaps 0x3e42c(%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 0x3e960(%rip), %rdx     # 0x48564
movq %r12, %rdi
movq %rdx, %rsi
callq 0xb8a6
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 0x3e71f(%rip), %rsi     # 0x4838b
leaq 0x3e72c(%rip), %rdx     # 0x4839f
movq %r15, %rdi
callq 0xb8a6
leaq 0x228(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq 0xc0(%rsp), %rsi
movq 0xc8(%rsp), %rdx
addq %rsi, %rdx
leaq 0x218(%rsp), %rdi
callq 0xb810
leaq 0x218(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq %r14, %rcx
callq 0x78ac
movq 0x218(%rsp), %rdi
cmpq %rbx, %rdi
je 0x9cde
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 0x9d17
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 0x9d54
movq %rax, %rbp
movq $0x270, 0x1380(%rax) # imm = 0x270
movl (%rbx), %eax
cmpl $0x5, %eax
ja 0xabe8
movl $0x25, %ecx
btl %eax, %ecx
jae 0x9df1
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 0xb810
leaq 0x278(%rsp), %rsi
movq 0x8(%rsp), %rdi
movq %r15, %rdx
callq 0x1e7b0
movq 0x278(%rsp), %rdi
jmp 0x9e9f
movl $0x18, %ecx
btl %eax, %ecx
jae 0x9e4e
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 0xb810
leaq 0x238(%rsp), %rsi
movq 0x8(%rsp), %rdi
movq %r15, %rdx
callq 0x2046a
movq 0x238(%rsp), %rdi
jmp 0x9e9f
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 0xb810
leaq 0x258(%rsp), %rsi
movq 0x8(%rsp), %rdi
movq %r15, %rdx
callq 0x1dab4
movq 0x258(%rsp), %rdi
cmpq %r12, %rdi
je 0x9eb0
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 0x9f3e
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 0xb810
leaq 0x1f8(%rsp), %rdi
leaq 0x80(%rsp), %rsi
movq 0x8(%rsp), %rdx
callq 0x9387
movq 0x1f8(%rsp), %rdi
cmpq %rbx, %rdi
movq 0x10(%rsp), %rbx
je 0x9fad
movq 0x208(%rsp), %rsi
incq %rsi
callq 0x6380
jmp 0x9fad
movl 0x28(%rbx), %edx
movq 0x8(%rsp), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *0x28(%rax)
movq 0x90(%rsp), %rax
leaq 0x20(%rsp), %r12
movaps (%r12), %xmm0
movq 0x10(%r12), %rcx
movq %rcx, 0x90(%rsp)
movaps 0x80(%rsp), %xmm1
movaps %xmm0, 0x80(%rsp)
leaq 0x2a0(%rsp), %rdi
movaps %xmm1, (%rdi)
movq %rax, 0x10(%rdi)
xorps %xmm0, %xmm0
movaps %xmm0, (%r12)
movq $0x0, 0x10(%r12)
callq 0xb508
movq %r12, %rdi
callq 0xb508
cmpl $0x0, 0x28(%rbx)
jle 0xa031
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 0x19192
movq %r13, 0x2a0(%rsp)
movq 0x48(%rsp), %rsi
cmpq 0x50(%rsp), %rsi
je 0xa003
movq %r13, (%rsi)
addq $0x8, 0x48(%rsp)
jmp 0xa010
leaq 0x40(%rsp), %rdi
movq %r12, %rdx
callq 0x18f28
incq %r14
movq 0x10(%rsp), %rax
movslq 0x28(%rax), %rax
addq $0x18, %rbx
cmpq %rax, %r14
jl 0x9fc0
testl %eax, %eax
setg %al
movq 0x10(%rsp), %rbx
jmp 0xa033
xorl %eax, %eax
movl (%rbx), %ecx
cmpq $0x5, %rcx
ja 0xac18
leaq 0x3e00a(%rip), %rdx     # 0x48050
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
xorps %xmm0, %xmm0
movaps %xmm0, 0x2a0(%rsp)
movq $0x0, 0x2b0(%rsp)
testb %al, %al
je 0xa0e3
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 0x47064
movq %r13, 0x20(%rsp)
movq 0x2a8(%rsp), %rsi
cmpq 0x2b0(%rsp), %rsi
je 0xa0be
movq %r13, (%rsi)
addq $0x8, 0x2a8(%rsp)
jmp 0xa0ce
leaq 0x2a0(%rsp), %rdi
movq %r12, %rdx
callq 0x19048
incq %r14
movq 0x10(%rsp), %rax
movslq 0x28(%rax), %rax
addq $0x18, %rbx
cmpq %rax, %r14
jl 0xa074
movl $0x90, %edi
callq 0x6370
movq %rax, %r14
leaq 0x1c0(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0xb55c
movq 0x10(%rsp), %rbx
leaq 0x1a8(%rsp), %rdi
leaq 0x2a0(%rsp), %rsi
callq 0xb5dc
leaq 0x1c0(%rsp), %rdx
leaq 0x1a8(%rsp), %rcx
movq %r14, %rdi
movq 0x8(%rsp), %rsi
movq %r15, %r8
callq 0x249ba
movq 0x1a8(%rsp), %rdi
testq %rdi, %rdi
je 0xa159
movq 0x1b8(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
movq 0x1c0(%rsp), %rdi
testq %rdi, %rdi
je 0xa176
movq 0x1d0(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
movq 0x2a0(%rsp), %rdi
testq %rdi, %rdi
je 0xa312
movq 0x2b0(%rsp), %rsi
jmp 0xa30a
movl $0xd0, %edi
callq 0x6370
movq %rax, %r14
leaq 0x148(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0xb55c
movl 0x30(%rbx), %ecx
leaq 0x148(%rsp), %rdx
movq %r14, %rdi
movq 0x8(%rsp), %rsi
movq %r15, %r8
callq 0x21c1a
movq 0x148(%rsp), %rdi
testq %rdi, %rdi
je 0xa312
movq 0x158(%rsp), %rsi
jmp 0xa30a
movl $0xd0, %edi
callq 0x6370
movq %rax, %r14
leaq 0x190(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0xb55c
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 0x2375a
addq $0x10, %rsp
movq 0x160(%rsp), %rdi
testq %rdi, %rdi
je 0xa287
movq 0x170(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
movq 0x178(%rsp), %rdi
testq %rdi, %rdi
je 0xa2a4
movq 0x188(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
movq 0x190(%rsp), %rdi
testq %rdi, %rdi
je 0xa312
movq 0x1a0(%rsp), %rsi
jmp 0xa30a
movl $0xb0, %edi
callq 0x6370
movq %rax, %r14
leaq 0x130(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0xb55c
movl 0x30(%rbx), %ecx
leaq 0x130(%rsp), %rdx
movq %r14, %rdi
movq 0x8(%rsp), %rsi
movq %r15, %r8
callq 0x22a6e
movq 0x130(%rsp), %rdi
testq %rdi, %rdi
je 0xa312
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 0xac78
leaq 0x3dd3b(%rip), %rcx     # 0x48068
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl (%rbx), %eax
testl %eax, %eax
je 0xa345
cmpl $0x3, %eax
jne 0xaca8
movl $0xa8, %edi
callq 0x6370
movq %rax, %r15
movq 0x18(%rsp), %rax
movzbl 0x1(%rax), %edx
movq %r15, %rdi
movq %r14, %rsi
callq 0x25bee
jmp 0xa517
movl (%rbx), %eax
testl %eax, %eax
je 0xa37a
cmpl $0x3, %eax
jne 0xacd8
movl $0x88, %edi
callq 0x6370
movq %rax, %r15
movq %rax, %rdi
movq %r14, %rsi
callq 0x43964
leaq 0x56f47(%rip), %rax     # 0x612e0
movq %rax, (%r15)
jmp 0xa517
movl (%rbx), %eax
testl %eax, %eax
je 0xa3b0
cmpl $0x3, %eax
jne 0xad08
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 0x31744
jmp 0xa517
movl (%rbx), %eax
testl %eax, %eax
je 0xa3ea
cmpl $0x3, %eax
jne 0xad38
movl $0x88, %edi
callq 0x6370
movq %rax, %r15
movq 0x18(%rsp), %rax
movl 0x4(%rax), %edx
movq %r15, %rdi
movq %r14, %rsi
callq 0x439a8
jmp 0xa517
movl $0xb0, %edi
callq 0x6370
movq %rax, %r15
movq %rax, %rdi
movq %r14, %rsi
movq %rbp, %rdx
callq 0x372ee
jmp 0xa517
movl (%rbx), %eax
testl %eax, %eax
je 0xa43e
cmpl $0x3, %eax
jne 0xad65
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 0x2cd9e
jmp 0xa517
movl (%rbx), %eax
testl %eax, %eax
je 0xa478
cmpl $0x3, %eax
jne 0xad92
movl $0x1a0, %edi            # imm = 0x1A0
callq 0x6370
movq %rax, %r15
movq %rax, %rdi
movq %r14, %rsi
callq 0x38980
jmp 0xa517
cmpl $0x1, (%rbx)
jne 0xac48
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 0x3fe5c
movq 0x118(%rsp), %rdi
testq %rdi, %rdi
je 0xa517
movq 0x128(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
jmp 0xa517
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 0x44ec8
movq 0x18(%rsp), %rax
cmpb $0x1, (%rax)
jne 0xa529
movq %r15, %rdi
callq 0x3e9c0
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 0xa598
movl $0x4, %r13d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %ebp, %ecx
cmpl $0x63, %ecx
jbe 0xa58f
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0xa595
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0xa598
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r13d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0xa55c
addl $-0x3, %r13d
jmp 0xa598
addl $-0x2, %r13d
jmp 0xa598
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 0xb7a2
leaq 0x3df29(%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 0xa61d
movq %rdx, 0x2a0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x2b0(%rsp)
jmp 0xa625
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 0x3df18(%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 0xa67a
movq %rdx, 0x60(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x70(%rsp)
jmp 0xa680
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 0xa6b5
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x6380
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xa6d1
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x6380
cmpb $0x1, 0x38(%rbx)
jne 0xa7a7
leaq 0x3de2c(%rip), %rsi     # 0x4850e
leaq 0x20(%rsp), %rdi
movq 0x108(%rsp), %rdx
callq 0xb65c
leaq 0x3de68(%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 0xa731
movq %rdx, 0x2a0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x2b0(%rsp)
jmp 0xa739
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 0xa78b
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x6380
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xa7a7
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 0xa7ef
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x6380
cmpb $0x1, 0x64(%rbx)
movq 0xb8(%rsp), %r12
jne 0xaa7e
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 0x3dcf4(%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 0xb8a6
leaq 0x98(%rsp), %rdi
leaq 0x20(%rsp), %r12
movq %r12, %rsi
callq 0x6460
movq (%r12), %rdi
cmpq %rbp, %rdi
movq %rbp, %r13
je 0xa8fd
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x6380
leaq 0x3dc1f(%rip), %rsi     # 0x48523
leaq 0xe0(%rsp), %rdi
leaq 0x98(%rsp), %rdx
callq 0xb65c
leaq 0x3dc0a(%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 0xa950
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0xa958
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 0xa99b
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x6380
leaq 0xf0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa9bc
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 0xaba0
movq 0x60(%rsp), %rsi
movq 0x68(%rsp), %rdx
leaq 0x2a0(%rsp), %rdi
callq 0x63f0
leaq 0x2a0(%rsp), %rdi
callq 0x6500
movq 0x57565(%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 0xaa7e
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x6380
cmpb $0x1, 0x65(%rbx)
jne 0xaaa1
movq 0x60(%rsp), %rsi
movq 0x68(%rsp), %rdx
movq 0x57513(%rip), %rdi     # 0x61fa8
callq 0x63f0
movl $0x1, %edx
jmp 0xaadd
cmpb $0x1, 0x66(%rbx)
jne 0xaae8
movq 0x574fa(%rip), %rdi     # 0x61fa8
leaq 0x3da9b(%rip), %rsi     # 0x48550
movl $0x11, %edx
callq 0x63f0
movsd 0x8(%r15), %xmm0
movq 0x574dc(%rip), %rdi     # 0x61fa8
callq 0x6580
movl $0x2, %edx
leaq 0x3da85(%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 0xab1d
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x6380
leaq 0x80(%rsp), %rdi
callq 0xb508
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0xab41
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
movq 0x1d8(%rsp), %rdi
leaq 0x1e8(%rsp), %rax
cmpq %rax, %rdi
je 0xab66
movq 0x1e8(%rsp), %rsi
incq %rsi
callq 0x6380
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0xab8b
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 0x57401(%rip), %rdi     # 0x61fa8
leaq 0x3d981(%rip), %rsi     # 0x4852f
movl $0x20, %edx
callq 0x63f0
movq 0x98(%rsp), %rsi
movq 0xa0(%rsp), %rdx
movq 0x573d9(%rip), %rdi     # 0x61fa8
callq 0x63f0
leaq 0x3d988(%rip), %rsi     # 0x48563
movq %rax, %rdi
callq 0x6360
jmp 0xadbd
movq 0x573b9(%rip), %rdi     # 0x61fa8
leaq 0x3d7aa(%rip), %rsi     # 0x483a0
movl $0x21, %edx
callq 0x63f0
movq 0x573a1(%rip), %rdi     # 0x61fa8
leaq 0x3d955(%rip), %rsi     # 0x48563
callq 0x6360
jmp 0xadbd
movq 0x57389(%rip), %rdi     # 0x61fa8
leaq 0x3d77a(%rip), %rsi     # 0x483a0
movl $0x21, %edx
callq 0x63f0
movq 0x57371(%rip), %rdi     # 0x61fa8
leaq 0x3d925(%rip), %rsi     # 0x48563
callq 0x6360
jmp 0xadbd
movq 0x57359(%rip), %rdi     # 0x61fa8
leaq 0x3d860(%rip), %rsi     # 0x484b6
movl $0x26, %edx
callq 0x63f0
movq 0x57341(%rip), %rdi     # 0x61fa8
leaq 0x3d8f5(%rip), %rsi     # 0x48563
callq 0x6360
jmp 0xadbd
movq 0x57329(%rip), %rdi     # 0x61fa8
leaq 0x3d857(%rip), %rsi     # 0x484dd
movl $0x20, %edx
callq 0x63f0
movq 0x57311(%rip), %rdi     # 0x61fa8
leaq 0x3d8c5(%rip), %rsi     # 0x48563
callq 0x6360
jmp 0xadbd
movq 0x572f9(%rip), %rdi     # 0x61fa8
leaq 0x3d70c(%rip), %rsi     # 0x483c2
movl $0x27, %edx
callq 0x63f0
movq 0x572e1(%rip), %rdi     # 0x61fa8
leaq 0x3d895(%rip), %rsi     # 0x48563
callq 0x6360
jmp 0xadbd
movq 0x572c9(%rip), %rdi     # 0x61fa8
leaq 0x3d780(%rip), %rsi     # 0x48466
movl $0x27, %edx
callq 0x63f0
movq 0x572b1(%rip), %rdi     # 0x61fa8
leaq 0x3d865(%rip), %rsi     # 0x48563
callq 0x6360
jmp 0xadbd
movq 0x57299(%rip), %rdi     # 0x61fa8
leaq 0x3d6fd(%rip), %rsi     # 0x48413
movl $0x29, %edx
callq 0x63f0
movq 0x57281(%rip), %rdi     # 0x61fa8
leaq 0x3d835(%rip), %rsi     # 0x48563
callq 0x6360
jmp 0xadbd
movq 0x57269(%rip), %rdi     # 0x61fa8
leaq 0x3d6f7(%rip), %rsi     # 0x4843d
movl $0x28, %edx
callq 0x63f0
movq 0x57251(%rip), %rdi     # 0x61fa8
leaq 0x3d805(%rip), %rsi     # 0x48563
callq 0x6360
jmp 0xadbd
movq 0x5723c(%rip), %rdi     # 0x61fa8
leaq 0x3d677(%rip), %rsi     # 0x483ea
movl $0x28, %edx
callq 0x63f0
movq 0x57224(%rip), %rdi     # 0x61fa8
leaq 0x3d7d8(%rip), %rsi     # 0x48563
callq 0x6360
jmp 0xadbd
movq 0x5720f(%rip), %rdi     # 0x61fa8
leaq 0x3d6ee(%rip), %rsi     # 0x4848e
movl $0x27, %edx
callq 0x63f0
movq 0x571f7(%rip), %rdi     # 0x61fa8
leaq 0x3d7ab(%rip), %rsi     # 0x48563
callq 0x6360
movl $0x1, %edi
callq 0x6440
movq %rax, %rbp
movq 0x118(%rsp), %rdi
testq %rdi, %rdi
je 0xadec
movq 0x128(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
jmp 0xadec
movq %rax, %rbp
jmp 0xae13
movq %rax, %rbp
movl $0x1a0, %esi            # imm = 0x1A0
jmp 0xae2c
jmp 0xae1a
jmp 0xae06
movq %rax, %rbp
movl $0x160, %esi            # imm = 0x160
jmp 0xae2c
movq %rax, %rbp
movl $0x88, %esi
jmp 0xae2c
movq %rax, %rbp
movl $0xa8, %esi
jmp 0xae2c
movq %rax, %rbp
movl $0xe8, %esi
jmp 0xae2c
movq %rax, %rbp
movl $0xb0, %esi
movq %r15, %rdi
jmp 0xb219
movq %rax, %rbp
movq 0x160(%rsp), %rdi
testq %rdi, %rdi
je 0xae59
movq 0x170(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
jmp 0xae59
movq %rax, %rbp
movq 0x178(%rsp), %rdi
testq %rdi, %rdi
je 0xae9d
movq 0x188(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
jmp 0xae9d
movq %rax, %rbp
movq 0x130(%rsp), %rdi
testq %rdi, %rdi
je 0xaebf
movq 0x140(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
jmp 0xaebf
movq %rax, %rbp
movq 0x190(%rsp), %rdi
testq %rdi, %rdi
je 0xaecc
movq 0x1a0(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
jmp 0xaecc
movq %rax, %rbp
movl $0xb0, %esi
jmp 0xaf83
movq %rax, %rbp
jmp 0xaf7e
movq %rax, %rbp
movq 0x258(%rsp), %rdi
cmpq %r12, %rdi
je 0xaef6
movq 0x268(%rsp), %rsi
incq %rsi
callq 0x6380
jmp 0xaef6
movq %rax, %rbp
movl $0x108, %esi            # imm = 0x108
jmp 0xb090
movq %rax, %rbp
movq 0x1a8(%rsp), %rdi
testq %rdi, %rdi
je 0xaf25
movq 0x1b8(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
jmp 0xaf25
movq %rax, %rbp
movq 0x1c0(%rsp), %rdi
testq %rdi, %rdi
je 0xaf47
movq 0x1d0(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
jmp 0xaf47
movq %rax, %rbp
movl $0x90, %esi
movq %r14, %rdi
jmp 0xb1e8
jmp 0xb1ef
movq %rax, %rbp
movq 0x148(%rsp), %rdi
testq %rdi, %rdi
je 0xaf79
movq 0x158(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
jmp 0xaf7e
movq %rax, %rbp
movl $0xd0, %esi
movq %r14, %rdi
jmp 0xb219
movq %rax, %rbp
movq 0x238(%rsp), %rdi
cmpq %r12, %rdi
je 0xafb0
movq 0x248(%rsp), %rsi
incq %rsi
callq 0x6380
jmp 0xafb0
movq %rax, %rbp
movl $0xe0, %esi
jmp 0xb090
movq %rax, %rbp
leaq 0xf0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb18b
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x6380
jmp 0xb18b
jmp 0xb188
movq %rax, %rbp
jmp 0xb198
movq %rax, %rbp
movq 0x2a0(%rsp), %rdi
cmpq %r12, %rdi
je 0xb019
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x6380
jmp 0xb019
movq %rax, %rbp
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xb1c2
movq 0x30(%rsp), %rsi
jmp 0xb1b5
jmp 0xb1bf
movq %rax, %rbp
movq 0x1f8(%rsp), %rdi
cmpq %rbx, %rdi
je 0xb228
movq 0x208(%rsp), %rsi
jmp 0xb1d6
jmp 0xb225
jmp 0xb225
movq %rax, %rbp
movq 0x278(%rsp), %rdi
cmpq %r12, %rdi
je 0xb08b
movq 0x288(%rsp), %rsi
incq %rsi
callq 0x6380
jmp 0xb08b
movq %rax, %rbp
movl $0xc0, %esi
movq 0x8(%rsp), %rdi
jmp 0xb247
jmp 0xb225
movq %rax, %rbp
movq 0x2a0(%rsp), %rdi
cmpq %r12, %rdi
je 0xb1c2
movq 0x2b0(%rsp), %rsi
jmp 0xb1b5
jmp 0xb1bf
movq %rax, %rbp
movq 0x2a0(%rsp), %rdi
cmpq %r12, %rdi
je 0xb0ea
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x6380
jmp 0xb0ea
movq %rax, %rbp
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xb228
movq 0x30(%rsp), %rsi
jmp 0xb1d6
jmp 0xb225
jmp 0xb220
jmp 0xb220
movq %rax, %rbp
movq 0x218(%rsp), %rdi
cmpq %rbx, %rdi
je 0xb24c
movq 0x228(%rsp), %rsi
incq %rsi
jmp 0xb247
movq %rax, %rbp
movl $0x28, %esi
movq %r14, %rdi
jmp 0xb247
jmp 0xb220
movq %rax, %rbp
movq (%r14), %rdi
cmpq %rbx, %rdi
je 0xb16a
movq (%rbx), %rsi
incq %rsi
callq 0x6380
jmp 0xb16a
movq %rax, %rbp
movl $0x68, %esi
movq 0x10(%rsp), %rdi
jmp 0xb247
jmp 0xb220
jmp 0xb220
jmp 0xb220
movq %rax, %rbp
leaq 0x2a0(%rsp), %rdi
callq 0x6540
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0xb1c2
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x6380
jmp 0xb1c2
movq %rax, %rbp
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0xb228
movq 0x70(%rsp), %rsi
incq %rsi
jmp 0xb219
jmp 0xb225
movq %rax, %rbp
movl $0x40, %esi
movq %r13, %rdi
callq 0x6380
jmp 0xb1f2
movq %rax, %rbp
movq 0x2a0(%rsp), %rdi
testq %rdi, %rdi
je 0xb228
movq 0x2b0(%rsp), %rsi
subq %rdi, %rsi
jmp 0xb219
jmp 0xb220
movq %rax, %rbp
movl $0x48, %esi
movq %r13, %rdi
callq 0x6380
jmp 0xb228
movq %rax, %rbp
jmp 0xb24c
movq %rax, %rbp
leaq 0x80(%rsp), %rdi
callq 0xb508
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0xb24c
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x6380
movq 0x1d8(%rsp), %rdi
leaq 0x1e8(%rsp), %rax
cmpq %rax, %rdi
je 0xb271
movq 0x1e8(%rsp), %rsi
incq %rsi
callq 0x6380
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0xb296
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x6380
movq %rbp, %rdi
callq 0x6620