// File: /workspace/github_cpp_makefile_star2_O3/tanakh[P]icfpc2015/main.cpp
// Function: main
int main(int argc, char *argv[])
{
  ppw.insert("ei!");
  ppw.insert("r'lyeh");
  ppw.insert("ia! ia!");
  ppw.insert("yuggoth");
  ppw.insert("planet 10");
  ppw.insert("tsathoggua");
  ppw.insert("yogSothoth");
  ppw.insert("john bigboote");
  ppw.insert("cthulhu fhtagn!");
  ppw.insert("Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn.");

  // srand(time(NULL));
  init_genrand(time(NULL));

  string tag;
  vector<string> files;
  int tle = -1;
  int mle = -1;
  int core = 1;

  bool anneal = false;
  double init_temp;
  double temp_decay;
  int turns;

  bool gene = false;

  bool rep = false;
  int rep_id;
  int rep_seed;
  string rep_cmds;
  string rep_file;

  bool beam = false;
  int beam_width = 1;

  vector<double> def_param {4.17089, 1.37104, 1.36987, 1.4519, 0.139807, 3.30003, 1.5467, 1.16281, 0.395305, 1.95616 };

  anneal = true;
  beam_width = 1;
  init_temp = 250;
  temp_decay = 0.992;
  turns = 250;

  for (int i = 1; i < argc; ) {
    string arg = argv[i];

    if (arg == "-f") {
      files.push_back(argv[i+1]);
      i += 2;
    }
    else if (arg == "-t") {
      tle = atoi(argv[i+1]);
      i += 2;
    }
    else if (arg == "-m") {
      mle = atoi(argv[i+1]);
      i += 2;
    }
    else if (arg == "-c") {
      core = atoi(argv[i+1]);
      i += 2;
    }
    else if (arg == "-p") {
      string w = argv[i+1];
      for (auto &c: w) c = tolower(c);
      ppw.insert(w);
      i += 2;
    }

    else if (arg == "-g") {
      tag = argv[i+1];
      i += 2;
    }
    else if (arg == "-v") {
      verbose = true;
      i++;
    }
    else if (arg == "-a") {
      anneal = true;

      istringstream iss(argv[i+1]);
      char dmy;
      iss >> init_temp >> dmy >> temp_decay >> dmy >> turns;

      i += 2;
    }
    else if (arg == "-ga") {
      gene = true;
      i++;
    }
    else if (arg == "-b") {
      beam = true;
      beam_width = atoi(argv[i+1]);
      i += 2;
    }
    else if (arg == "-r") {
      rep = true;

      istringstream iss(argv[i+1]);
      char dmy;
      iss >> rep_id >> dmy >> rep_seed >> dmy;
      getline(iss, rep_cmds);

      i+=2;
    }
    else if (arg == "-rr") {
      rep = true;

      istringstream iss(argv[i+1]);
      char dmy;
      iss >> rep_id >> dmy >> rep_seed >> dmy;
      getline(iss, rep_file);

      i+=2;
    }
  }

  if (rep) {
    ostringstream fn;
    fn << "problems/problem_" << rep_id << ".json";

    if (rep_file != "") {
      ifstream ifs(rep_file.c_str());
      value v;
      parse(v, ifs);
      string sol = v.get<picojson::array>()[0].get<object>()["solution"].get<string>();

      replay(read_problem(fn.str()), rep_seed, sol);
    }
    else {
      replay(read_problem(fn.str()), rep_seed, rep_cmds);
    }
    return 0;
  }

  vector<problem> problems;
  for (auto &file: files)
    problems.push_back(read_problem(file));

  int total_problems = 0;
  for (auto &p: problems)
    total_problems += p.source_seeds.size();

  picojson::array v;
  vector<vector<int>> scores;
  for (auto &p: problems) {
    vector<int> ss;
    cerr << "\n" << "problem: " << p.id << ": " << p.width << "x" << p.height << endl;

    int ttt = 0;
    for (auto &seed: p.source_seeds) {
      cerr << "\n" << p.id << " [" << ++ttt << "/" << p.source_seeds.size() << "]" << endl;

      auto sol =
        anneal ? annealing(p, seed, tle, mle, tag, init_temp, temp_decay, turns, beam_width):
        gene ? ga(p, seed, tle, mle, tag):
        beam ? beam_search(p, seed, tle, mle, def_param, beam_width):
        solve(p, seed, tle, mle, def_param, true);

      if (!anneal) replay(p, seed, sol.first);

      output_solution(p.id, seed, sol.second, sol.first, tag);

      cerr << "score: " << sol.second << endl;

      object o;
      o["problemId"] = value((int64_t)p.id);
      o["seed"] = value((int64_t)seed);
      if (tag != "")
        o["tag"] = value(tag);
      o["solution"] = value(sol.first);
      v.push_back(value(o));
      ss.push_back(sol.second);
    }
    scores.push_back(ss);
  }
  cout << value(v) << endl;

  double gtot = 0;

  cerr << "summary: " << endl;
  vector<pair<int,double>> vv;
  for (int i=0;i<(int)problems.size();i++) {
    double avg = 0;
    for (auto &p: scores[i]) avg += p;
    avg /= scores[i].size();
    vv.emplace_back(problems[i].id, avg);

    double avg_size = 0;
    for (auto &p: problems[i].units)
      avg_size += p.members.size();
    avg_size /= problems[i].units.size();
    double blks = problems[i].source_length * avg_size;
    double exp_line = blks / problems[i].width;
    gtot += avg / exp_line;
  }

  sort(vv.begin(), vv.end());

  for (auto &i: vv)
    cerr << i.first << ": " << i.second << endl;

  cerr << "grand total: " << gtot / problems.size() << endl;

  return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x568, %rsp            # imm = 0x568
movq %rsi, %r13
movl %edi, 0x10(%rsp)
leaq 0x1c0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xbd51(%rip), %rsi      # 0x155ec
leaq 0xbd4d(%rip), %rdx      # 0x155ef
leaq 0x1b0(%rsp), %rdi
callq 0xfa08
leaq 0x14d9a(%rip), %rdi     # 0x1e650
leaq 0x1b0(%rsp), %rsi
callq 0x12d76
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0x98d5
callq 0x32f0
leaq 0x1b0(%rsp), %rdi
movq %r14, (%rdi)
leaq 0xbd09(%rip), %rsi      # 0x155f0
leaq 0xbd08(%rip), %rdx      # 0x155f6
callq 0xfa08
leaq 0x14d56(%rip), %rdi     # 0x1e650
leaq 0x1b0(%rsp), %rsi
callq 0x12d76
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0x9919
callq 0x32f0
leaq 0x1b0(%rsp), %rdi
movq %r14, (%rdi)
leaq 0xbccc(%rip), %rsi      # 0x155f7
leaq 0xbccc(%rip), %rdx      # 0x155fe
callq 0xfa08
leaq 0x14d12(%rip), %rdi     # 0x1e650
leaq 0x1b0(%rsp), %rsi
callq 0x12d76
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0x995d
callq 0x32f0
leaq 0x1b0(%rsp), %rdi
movq %r14, (%rdi)
leaq 0xbc90(%rip), %rsi      # 0x155ff
leaq 0xbc90(%rip), %rdx      # 0x15606
callq 0xfa08
leaq 0x14cce(%rip), %rdi     # 0x1e650
leaq 0x1b0(%rsp), %rsi
callq 0x12d76
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0x99a1
callq 0x32f0
leaq 0x1b0(%rsp), %rdi
movq %r14, (%rdi)
leaq 0xbc54(%rip), %rsi      # 0x15607
leaq 0xbc56(%rip), %rdx      # 0x15610
callq 0xfa08
leaq 0x14c8a(%rip), %rdi     # 0x1e650
leaq 0x1b0(%rsp), %rsi
callq 0x12d76
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0x99e5
callq 0x32f0
leaq 0x1b0(%rsp), %rdi
movq %r14, (%rdi)
leaq 0xbc1a(%rip), %rsi      # 0x15611
leaq 0xbc1d(%rip), %rdx      # 0x1561b
callq 0xfa08
leaq 0x14c46(%rip), %rdi     # 0x1e650
leaq 0x1b0(%rsp), %rsi
callq 0x12d76
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0x9a29
callq 0x32f0
leaq 0x1b0(%rsp), %rdi
movq %r14, (%rdi)
leaq 0xbbe1(%rip), %rsi      # 0x1561c
leaq 0xbbe4(%rip), %rdx      # 0x15626
callq 0xfa08
leaq 0x14c02(%rip), %rdi     # 0x1e650
leaq 0x1b0(%rsp), %rsi
callq 0x12d76
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0x9a6d
callq 0x32f0
leaq 0x1b0(%rsp), %rdi
movq %r14, (%rdi)
leaq 0xbba8(%rip), %rsi      # 0x15627
leaq 0xbbae(%rip), %rdx      # 0x15634
callq 0xfa08
leaq 0x14bbe(%rip), %rdi     # 0x1e650
leaq 0x1b0(%rsp), %rsi
callq 0x12d76
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0x9ab1
callq 0x32f0
leaq 0x1b0(%rsp), %rdi
movq %r14, (%rdi)
leaq 0xbb72(%rip), %rsi      # 0x15635
leaq 0xbb7a(%rip), %rdx      # 0x15644
callq 0xfa08
leaq 0x14b7a(%rip), %rdi     # 0x1e650
leaq 0x1b0(%rsp), %rsi
callq 0x12d76
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0x9af5
callq 0x32f0
leaq 0x1b0(%rsp), %rdi
movq %r14, (%rdi)
leaq 0xbb3e(%rip), %rsi      # 0x15645
leaq 0xbb6a(%rip), %rdx      # 0x15678
callq 0xfa08
leaq 0x14b36(%rip), %rdi     # 0x1e650
leaq 0x1b0(%rsp), %rsi
callq 0x12d76
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0x9b39
callq 0x32f0
xorl %edi, %edi
callq 0x32e0
movl %eax, %eax
movq %rax, 0x13787(%rip)     # 0x1d2d0
movl $0x1, %ecx
leaq 0x1377b(%rip), %rdx     # 0x1d2d0
movq %rax, %rsi
shrq $0x1e, %rsi
xorl %eax, %esi
imull $0x6c078965, %esi, %eax # imm = 0x6C078965
addl %ecx, %eax
movq %rax, (%rdx,%rcx,8)
incq %rcx
cmpq $0x270, %rcx            # imm = 0x270
jne 0x9b55
movl $0x270, 0x13720(%rip)   # imm = 0x270
leaq 0x140(%rsp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
movq %rax, 0x180(%rsp)
xorpd %xmm0, %xmm0
movapd %xmm0, 0x170(%rsp)
leaq 0x1a0(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x160(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0xb6ac(%rip), %rsi      # 0x15280
leaq 0x1b0(%rsp), %rax
movl $0xa, %ecx
movq %rax, %rdi
rep  movsq (%rsi), %es:(%rdi)
leaq 0x3b8(%rsp), %rdi
leaq 0x3d0(%rsp), %rcx
movl $0xa, %edx
movq %rax, %rsi
callq 0xc77a
movabsq $0x406f400000000000, %rax # imm = 0x406F400000000000
movq %rax, 0x128(%rsp)
movabsq $0x3fefbe76c8b43958, %rax # imm = 0x3FEFBE76C8B43958
movq %rax, 0x120(%rsp)
movl $0xfa, 0x2c(%rsp)
movl $0x1, %eax
movq %rax, 0xd8(%rsp)
cmpl $0x2, 0x10(%rsp)
jl 0xa2d9
movl $0x1, %eax
movq %rax, 0xd8(%rsp)
movq $0x0, 0x20(%rsp)
leaq 0x3d0(%rsp), %r15
leaq 0x1b0(%rsp), %rdx
movl $0x1, %ebp
movq %r13, 0x70(%rsp)
movslq %ebp, %r12
movq (%r13,%r12,8), %rsi
movq %r15, %rdi
movq %rdx, %rbx
callq 0x3110
movq %r15, %rdi
leaq 0xb9e4(%rip), %rsi      # 0x15679
callq 0x30c0
testl %eax, %eax
je 0x9e22
movq %r15, %rdi
leaq 0xb9d0(%rip), %rsi      # 0x1567c
callq 0x30c0
testl %eax, %eax
je 0x9e59
movq %r15, %rdi
leaq 0xb9bc(%rip), %rsi      # 0x1567f
callq 0x30c0
testl %eax, %eax
je 0x9e59
movq %r15, %rdi
leaq 0xb9a8(%rip), %rsi      # 0x15682
callq 0x30c0
testl %eax, %eax
je 0x9e59
movq %r15, %rdi
leaq 0xb994(%rip), %rsi      # 0x15685
callq 0x30c0
testl %eax, %eax
je 0x9e90
movq %r15, %rdi
leaq 0xb980(%rip), %rsi      # 0x15688
callq 0x30c0
testl %eax, %eax
je 0x9f02
movq %r15, %rdi
leaq 0xb96c(%rip), %rsi      # 0x1568b
callq 0x30c0
testl %eax, %eax
je 0x9f3c
movq %r15, %rdi
leaq 0xb958(%rip), %rsi      # 0x1568e
callq 0x30c0
testl %eax, %eax
je 0x9f4a
movq %r15, %rdi
leaq 0xb944(%rip), %rsi      # 0x15691
callq 0x30c0
testl %eax, %eax
je 0x9f43
movq %r15, %rdi
leaq 0xb931(%rip), %rsi      # 0x15695
callq 0x30c0
testl %eax, %eax
je 0x9fef
movq %r15, %rdi
leaq 0xb91d(%rip), %rsi      # 0x15698
callq 0x30c0
testl %eax, %eax
je 0xa006
movq %r15, %rdi
leaq 0xb909(%rip), %rsi      # 0x1569b
callq 0x30c0
testl %eax, %eax
jne 0x9e5c
movq 0x8(%r13,%r12,8), %rsi
leaq 0x78(%rsp), %r15
movq %r15, %rdi
leaq 0x50(%rsp), %rdx
callq 0x3110
movq %rbx, %rdi
movq %r15, %rsi
movl $0x8, %edx
callq 0x3470
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0x9ddd
callq 0x32f0
movq %rbx, %rdi
leaq 0x28(%rsp), %rsi
callq 0x31a0
movq %rax, %rdi
movq %r15, %rsi
callq 0x3380
movq %rax, %rdi
leaq 0x1c(%rsp), %rsi
callq 0x31a0
movq %rax, %rdi
movq %r15, %rsi
callq 0x3380
movq %rbx, %rdi
leaq 0x150(%rsp), %rsi
callq 0x3080
jmp 0xa084
movq 0x8(%r13,%r12,8), %rsi
movq %rbx, %r12
movq %rbx, %rdi
leaq 0x78(%rsp), %rdx
callq 0x3110
leaq 0x170(%rsp), %rdi
movq %r12, %rsi
callq 0x12f86
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0x9e59
callq 0x32f0
addl $0x2, %ebp
movq 0x3d0(%rsp), %rdi
leaq 0x3e0(%rsp), %rax
cmpq %rax, %rdi
je 0x9e76
callq 0x32f0
cmpl 0x10(%rsp), %ebp
movq %rbx, %rdx
leaq 0x3d0(%rsp), %r15
jl 0x9c78
jmp 0xa0af
movq %r14, %r15
movq 0x8(%r13,%r12,8), %rsi
movq %rbx, %rdi
leaq 0x78(%rsp), %rdx
callq 0x3110
movq 0x1b8(%rsp), %r12
testq %r12, %r12
je 0x9ed5
movq 0x1b0(%rsp), %r13
xorl %r14d, %r14d
movsbl (%r13,%r14), %edi
callq 0x33c0
movb %al, (%r13,%r14)
incq %r14
cmpq %r14, %r12
jne 0x9ebd
leaq 0x14774(%rip), %rdi     # 0x1e650
movq %rbx, %rsi
callq 0x13188
movq 0x1b0(%rsp), %rdi
movq %r15, %r14
cmpq %r15, %rdi
movq 0x70(%rsp), %r13
je 0x9e59
jmp 0x9e54
movq 0x8(%r13,%r12,8), %r13
movq 0x138(%rsp), %r12
movq %r13, %rdi
callq 0x3130
leaq 0x130(%rsp), %rdi
xorl %esi, %esi
movq %r12, %rdx
movq %r13, %rcx
movq %rax, %r8
callq 0x3400
addl $0x2, %ebp
movq 0x70(%rsp), %r13
jmp 0x9e5c
movb $0x1, 0x1473d(%rip)     # 0x1e680
incl %ebp
jmp 0x9e5c
movq 0x8(%r13,%r12,8), %rsi
leaq 0x78(%rsp), %r15
movq %r15, %rdi
leaq 0x50(%rsp), %rdx
callq 0x3110
movq %rbx, %rdi
movq %r15, %rsi
movl $0x8, %edx
callq 0x3470
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0x9f88
callq 0x32f0
movq %rbx, %rdi
leaq 0x128(%rsp), %rsi
callq 0x31e0
movq %rax, %rdi
movq %r15, %rsi
callq 0x3380
movq %rax, %rdi
leaq 0x120(%rsp), %rsi
callq 0x31e0
movq %rax, %rdi
movq %r15, %rsi
callq 0x3380
movq %rax, %rdi
leaq 0x2c(%rsp), %rsi
callq 0x31a0
addl $0x2, %ebp
movq %rbx, %rdi
movq 0x12fd8(%rip), %rsi     # 0x1cfb0
callq 0x33b0
leaq 0x228(%rsp), %rdi
callq 0x30e0
jmp 0x9e5c
movq 0x8(%r13,%r12,8), %rdi
callq 0x3410
movq %rax, 0xd8(%rsp)
jmp 0x9e59
movq 0x8(%r13,%r12,8), %rsi
leaq 0x78(%rsp), %r15
movq %r15, %rdi
leaq 0x50(%rsp), %rdx
callq 0x3110
movq %rbx, %rdi
movq %r15, %rsi
movl $0x8, %edx
callq 0x3470
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xa044
callq 0x32f0
movq %rbx, %rdi
leaq 0x28(%rsp), %rsi
callq 0x31a0
movq %rax, %rdi
movq %r15, %rsi
callq 0x3380
movq %rax, %rdi
leaq 0x1c(%rsp), %rsi
callq 0x31a0
movq %rax, %rdi
movq %r15, %rsi
callq 0x3380
movq %rbx, %rdi
leaq 0x190(%rsp), %rsi
callq 0x3080
addl $0x2, %ebp
movq %rbx, %rdi
movq 0x12f1f(%rip), %rsi     # 0x1cfb0
callq 0x33b0
leaq 0x228(%rsp), %rdi
callq 0x30e0
movb $0x1, %al
movq %rax, 0x20(%rsp)
jmp 0x9e5c
testb $0x1, 0x20(%rsp)
je 0xa2d9
leaq 0x3d0(%rsp), %rdi
callq 0x3390
leaq 0xb5d1(%rip), %rsi      # 0x1569f
leaq 0x3d0(%rsp), %rdi
movl $0x11, %edx
callq 0x3350
movl 0x28(%rsp), %esi
leaq 0x3d0(%rsp), %rdi
callq 0x3490
leaq 0xb3ef(%rip), %rsi      # 0x154e7
movl $0x5, %edx
movq %rax, %rdi
callq 0x3350
leaq 0xb5a6(%rip), %rsi      # 0x156b2
leaq 0x150(%rsp), %rdi
callq 0x30c0
testl %eax, %eax
je 0xafac
movq 0x150(%rsp), %rsi
leaq 0x1b0(%rsp), %rdi
movl $0x8, %edx
callq 0x34f0
leaq 0x30(%rsp), %rsi
movl $0x0, (%rsi)
leaq 0x548(%rsp), %rdi
leaq 0x1b0(%rsp), %rdx
callq 0xb8f3
leaq 0x558(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa171
callq 0x32f0
cmpl $0x4, 0x30(%rsp)
jne 0xb114
movq 0x38(%rsp), %rax
movq (%rax), %rax
cmpl $0x5, (%rax)
jne 0xb132
movq 0x8(%rax), %rbx
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
movq %rax, (%rdi)
leaq 0xb358(%rip), %rsi      # 0x15500
leaq 0xb359(%rip), %rdx      # 0x15508
callq 0xfa08
leaq 0x78(%rsp), %rsi
movq %rbx, %rdi
callq 0xb84a
cmpl $0x3, (%rax)
jne 0xb164
movq 0x8(%rax), %rax
leaq 0x60(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x50(%rsp), %rdi
callq 0xeed8
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xa202
callq 0x32f0
leaq 0x3d8(%rsp), %rsi
leaq 0x100(%rsp), %rdi
callq 0x3420
leaq 0x78(%rsp), %rdi
leaq 0x100(%rsp), %rsi
callq 0x4a99
movl 0x1c(%rsp), %esi
leaq 0x78(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9018
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0xa24e
callq 0x32f0
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0xa260
callq 0x32f0
leaq 0x80(%rsp), %rdi
callq 0xd000
leaq 0x110(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa283
callq 0x32f0
movq 0x50(%rsp), %rdi
cmpq %r14, %rdi
je 0xa292
callq 0x32f0
movl 0x30(%rsp), %eax
cmpl $0x5, %eax
je 0xb047
cmpl $0x4, %eax
je 0xb033
cmpl $0x3, %eax
jne 0xb065
movq 0x38(%rsp), %rbx
testq %rbx, %rbx
je 0xb05b
movq (%rbx), %rdi
leaq 0x10(%rbx), %rax
cmpq %rax, %rdi
je 0xb05d
callq 0x32f0
jmp 0xb05d
xorpd %xmm0, %xmm0
movapd %xmm0, 0x50(%rsp)
movq $0x0, 0x60(%rsp)
movq 0x170(%rsp), %rbx
movq 0x178(%rsp), %r12
cmpq %r12, %rbx
je 0xaaee
leaq 0x1b0(%rsp), %r14
leaq 0x50(%rsp), %r15
movq %r14, %rdi
movq %rbx, %rsi
callq 0x4a99
movq %r15, %rdi
movq %r14, %rsi
callq 0x132e0
movq 0x1f8(%rsp), %rdi
testq %rdi, %rdi
je 0xa33a
callq 0x32f0
movq 0x1d8(%rsp), %rdi
testq %rdi, %rdi
je 0xa34c
callq 0x32f0
leaq 0x1b8(%rsp), %rdi
callq 0xd000
addq $0x20, %rbx
cmpq %r12, %rbx
jne 0xa312
movq 0x50(%rsp), %rbp
movq 0x58(%rsp), %rcx
xorl %eax, %eax
movq %rax, 0x110(%rsp)
xorpd %xmm0, %xmm0
movapd %xmm0, 0x100(%rsp)
movq %rax, 0x40(%rsp)
movapd %xmm0, 0x30(%rsp)
movq %rcx, 0x188(%rsp)
cmpq %rcx, %rbp
je 0xab0c
leaq 0x88(%rsp), %r13
leaq 0x78(%rsp), %rbx
xorpd %xmm0, %xmm0
movapd %xmm0, 0xe0(%rsp)
movq $0x0, 0xf0(%rsp)
movl $0x1, %edx
movq 0x12c17(%rip), %rdi     # 0x1cfe8
leaq 0xb2d9(%rip), %rsi      # 0x156b1
callq 0x3350
movl $0x9, %edx
movq 0x12bff(%rip), %rdi     # 0x1cfe8
leaq 0xb2c3(%rip), %rsi      # 0x156b3
callq 0x3350
movl (%rbp), %esi
movq 0x12be9(%rip), %rdi     # 0x1cfe8
callq 0x3490
movq %rax, %r12
movl $0x2, %edx
movq %rax, %rdi
leaq 0xb14a(%rip), %rsi      # 0x15560
callq 0x3350
movl 0x20(%rbp), %esi
movq %r12, %rdi
callq 0x3490
movq %rax, %r12
movl $0x1, %edx
movq %rax, %rdi
leaq 0xb3ae(%rip), %rsi      # 0x157e6
callq 0x3350
movl 0x24(%rbp), %esi
movq %r12, %rdi
callq 0x3490
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x3300
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3200
movq 0x48(%rbp), %r14
movq 0x50(%rbp), %rax
movq %rax, 0x70(%rsp)
cmpq %rax, %r14
je 0xaab6
movl $0x1, %r15d
movq %rbp, 0x20(%rsp)
movl $0x1, %edx
movq 0x12b49(%rip), %rdi     # 0x1cfe8
leaq 0xb20b(%rip), %rsi      # 0x156b1
callq 0x3350
movl (%rbp), %esi
movq 0x12b33(%rip), %rdi     # 0x1cfe8
callq 0x3490
movq %rax, %r12
movl $0x2, %edx
movq %rax, %rdi
leaq 0xae60(%rip), %rsi      # 0x1532c
callq 0x3350
movq %r12, %rdi
movl %r15d, %esi
callq 0x3490
movq %rax, %r12
movl $0x1, %edx
movq %rax, %rdi
leaq 0xb2e2(%rip), %rsi      # 0x157d0
callq 0x3350
movq 0x50(%rbp), %rsi
subq 0x48(%rbp), %rsi
sarq $0x2, %rsi
movq %r12, %rdi
callq 0x31f0
movq %rax, %r12
movl $0x1, %edx
movq %rax, %rdi
leaq 0xaff0(%rip), %rsi      # 0x15509
callq 0x3350
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x3300
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3200
movl %r15d, 0x10(%rsp)
movq %rbx, %r15
movq %r13, %rbx
movl (%r14), %edx
movsd 0x128(%rsp), %xmm0
movsd 0x120(%rsp), %xmm1
movl 0x2c(%rsp), %eax
leaq 0x3d0(%rsp), %r12
movq %r12, %rdi
movq %rbp, %rsi
leaq 0x130(%rsp), %r13
movq %r13, %r9
pushq 0xd8(%rsp)
pushq %rax
callq 0x81c7
addq $0x10, %rsp
movq %r14, %rax
movq %rbp, %r14
movl (%rbp), %edi
movq %rax, %rbp
movl (%rax), %esi
movl 0x3f0(%rsp), %edx
movq %r12, %rcx
movq %r13, %r8
callq 0x699c
movl $0x7, %edx
movq 0x12a28(%rip), %rdi     # 0x1cfe8
leaq 0xafe8(%rip), %rsi      # 0x155af
callq 0x3350
movl 0x3f0(%rsp), %esi
movq 0x12a0e(%rip), %rdi     # 0x1cfe8
callq 0x3490
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x3300
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3200
movl $0x0, 0x1b8(%rsp)
xorl %ecx, %ecx
movq %rcx, 0x1c0(%rsp)
leaq 0x1b8(%rsp), %rax
movq %rax, 0x1c8(%rsp)
movq %rax, 0x1d0(%rsp)
movq %rcx, 0x1d8(%rsp)
movslq (%r14), %rax
movl $0x6, (%rsp)
movq %rax, 0x8(%rsp)
movq %rbx, %r13
movq %rbx, 0x78(%rsp)
movq %r15, %rbx
movq %r15, %rdi
leaq 0xae8b(%rip), %rsi      # 0x154ed
leaq 0xae8d(%rip), %rdx      # 0x154f6
callq 0xfa08
leaq 0x1b0(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0xb84a
movq %rax, %rdi
movq %rsp, %rsi
callq 0xc1c2
movq 0x78(%rsp), %rdi
cmpq %r13, %rdi
je 0xa69b
callq 0x32f0
movl (%rsp), %eax
cmpl $0x5, %eax
je 0xa6e3
cmpl $0x4, %eax
movq %rbp, %r14
je 0xa6cf
cmpl $0x3, %eax
jne 0xa705
movq 0x8(%rsp), %r12
testq %r12, %r12
je 0xa6fa
movq (%r12), %rdi
leaq 0x10(%r12), %rax
cmpq %rax, %rdi
je 0xa6fd
callq 0x32f0
jmp 0xa6fd
movq 0x8(%rsp), %r12
testq %r12, %r12
je 0xa6fa
movq %r12, %rdi
callq 0xc80e
jmp 0xa6fd
movq 0x8(%rsp), %r12
testq %r12, %r12
movq %rbp, %r14
je 0xa6fa
movq %r12, %rdi
callq 0xcfec
jmp 0xa6fd
xorl %r12d, %r12d
movq %r12, %rdi
callq 0x32f0
movslq (%r14), %rax
movl $0x6, (%rsp)
movq %rax, 0x8(%rsp)
movq %r13, 0x78(%rsp)
movq %rbx, %rdi
leaq 0xadd4(%rip), %rsi      # 0x154f7
leaq 0xadd1(%rip), %rdx      # 0x154fb
callq 0xfa08
movq %r15, %rdi
movq %rbx, %rsi
callq 0xb84a
movq %rax, %rdi
movq %rsp, %rsi
callq 0xc1c2
movq 0x78(%rsp), %rdi
cmpq %r13, %rdi
je 0xa754
callq 0x32f0
movl (%rsp), %eax
cmpl $0x5, %eax
je 0xa799
cmpl $0x4, %eax
je 0xa785
cmpl $0x3, %eax
jne 0xa7b8
movq 0x8(%rsp), %r12
testq %r12, %r12
je 0xa7ad
movq (%r12), %rdi
leaq 0x10(%r12), %rax
cmpq %rax, %rdi
je 0xa7b0
callq 0x32f0
jmp 0xa7b0
movq 0x8(%rsp), %r12
testq %r12, %r12
je 0xa7ad
movq %r12, %rdi
callq 0xc80e
jmp 0xa7b0
movq 0x8(%rsp), %r12
testq %r12, %r12
je 0xa7ad
movq %r12, %rdi
callq 0xcfec
jmp 0xa7b0
xorl %r12d, %r12d
movq %r12, %rdi
callq 0x32f0
leaq 0x130(%rsp), %rdi
leaq 0xaeeb(%rip), %rsi      # 0x156b2
callq 0x30c0
testl %eax, %eax
je 0xa8b4
movl $0x3, (%rsp)
movl $0x20, %edi
callq 0x3310
movq %rax, %r12
addq $0x10, %rax
movq %rax, (%r12)
movq 0x130(%rsp), %rsi
movq 0x138(%rsp), %rdx
addq %rsi, %rdx
movq %r12, %rdi
callq 0xeed8
movq %r12, 0x8(%rsp)
movq %r13, 0x78(%rsp)
movq %rbx, %rdi
leaq 0xacdd(%rip), %rsi      # 0x154fc
leaq 0xacd9(%rip), %rdx      # 0x154ff
callq 0xfa08
movq %r15, %rdi
movq %rbx, %rsi
callq 0xb84a
movq %rax, %rdi
movq %rsp, %rsi
callq 0xc1c2
movq 0x78(%rsp), %rdi
cmpq %r13, %rdi
je 0xa850
callq 0x32f0
movl (%rsp), %eax
cmpl $0x5, %eax
je 0xa895
cmpl $0x4, %eax
je 0xa881
cmpl $0x3, %eax
jne 0xa8b4
movq 0x8(%rsp), %r12
testq %r12, %r12
je 0xa8a9
movq (%r12), %rdi
leaq 0x10(%r12), %rax
cmpq %rax, %rdi
je 0xa8ac
callq 0x32f0
jmp 0xa8ac
movq 0x8(%rsp), %r12
testq %r12, %r12
je 0xa8a9
movq %r12, %rdi
callq 0xc80e
jmp 0xa8ac
movq 0x8(%rsp), %r12
testq %r12, %r12
je 0xa8a9
movq %r12, %rdi
callq 0xcfec
jmp 0xa8ac
xorl %r12d, %r12d
movq %r12, %rdi
callq 0x32f0
movl $0x3, (%rsp)
movl $0x20, %edi
callq 0x3310
movq %rax, %r12
addq $0x10, %rax
movq %rax, (%r12)
movq 0x3d0(%rsp), %rsi
movq 0x3d8(%rsp), %rdx
addq %rsi, %rdx
movq %r12, %rdi
callq 0xeed8
movq %r12, 0x8(%rsp)
movq %r13, 0x78(%rsp)
movq %rbx, %rdi
leaq 0xac01(%rip), %rsi      # 0x15500
leaq 0xac02(%rip), %rdx      # 0x15508
callq 0xfa08
movq %r15, %rdi
movq %rbx, %rsi
callq 0xb84a
movq %rax, %rdi
movq %rsp, %rsi
callq 0xc1c2
movq 0x78(%rsp), %rdi
cmpq %r13, %rdi
je 0xa930
callq 0x32f0
movl (%rsp), %eax
cmpl $0x5, %eax
je 0xa975
cmpl $0x4, %eax
je 0xa961
cmpl $0x3, %eax
jne 0xa994
movq 0x8(%rsp), %r12
testq %r12, %r12
je 0xa989
movq (%r12), %rdi
leaq 0x10(%r12), %rax
cmpq %rax, %rdi
je 0xa98c
callq 0x32f0
jmp 0xa98c
movq 0x8(%rsp), %r12
testq %r12, %r12
je 0xa989
movq %r12, %rdi
callq 0xc80e
jmp 0xa98c
movq 0x8(%rsp), %r12
testq %r12, %r12
je 0xa989
movq %r12, %rdi
callq 0xcfec
jmp 0xa98c
xorl %r12d, %r12d
movq %r12, %rdi
callq 0x32f0
movl $0x5, 0x78(%rsp)
movl $0x30, %edi
callq 0x3310
movq %rax, %r12
movq %rax, %rdi
movq %r15, %rsi
callq 0xca1c
movq %r12, 0x80(%rsp)
leaq 0x100(%rsp), %rdi
movq %rbx, %rsi
callq 0x13542
movl 0x78(%rsp), %eax
cmpl $0x5, %eax
je 0xaa18
cmpl $0x4, %eax
je 0xaa01
cmpl $0x3, %eax
jne 0xaa3a
movq 0x80(%rsp), %r12
testq %r12, %r12
je 0xaa2f
movq (%r12), %rdi
leaq 0x10(%r12), %rax
cmpq %rax, %rdi
je 0xaa32
callq 0x32f0
jmp 0xaa32
movq 0x80(%rsp), %r12
testq %r12, %r12
je 0xaa2f
movq %r12, %rdi
callq 0xc80e
jmp 0xaa32
movq 0x80(%rsp), %r12
testq %r12, %r12
je 0xaa2f
movq %r12, %rdi
callq 0xcfec
jmp 0xaa32
xorl %r12d, %r12d
movq %r12, %rdi
callq 0x32f0
movq 0xe8(%rsp), %rsi
cmpq 0xf0(%rsp), %rsi
je 0xaa63
movl 0x3f0(%rsp), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0xe8(%rsp)
jmp 0xaa78
leaq 0xe0(%rsp), %rdi
leaq 0x3f0(%rsp), %rdx
callq 0x10aaa
movq %r15, %rdi
callq 0xcfec
movq 0x3d0(%rsp), %rdi
leaq 0x3e0(%rsp), %rax
cmpq %rax, %rdi
je 0xaa9a
callq 0x32f0
addq $0x4, %r14
movl 0x10(%rsp), %r15d
incl %r15d
cmpq 0x70(%rsp), %r14
movq 0x20(%rsp), %rbp
jne 0xa493
leaq 0x30(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0xc7b8
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
je 0xaada
callq 0x32f0
addq $0x60, %rbp
cmpq 0x188(%rsp), %rbp
jne 0xa3ac
jmp 0xab0c
movapd %xmm0, 0x100(%rsp)
xorl %eax, %eax
movq %rax, 0x110(%rsp)
movq %rax, 0x40(%rsp)
movapd %xmm0, 0x30(%rsp)
movl $0x4, 0x3d0(%rsp)
movl $0x18, %edi
callq 0x3310
movq %rax, %r14
leaq 0x100(%rsp), %rsi
movq %rax, %rdi
callq 0xcdd0
leaq 0x3d0(%rsp), %rdi
movq %r14, 0x8(%rdi)
movq 0x12481(%rip), %rbx     # 0x1cfc8
leaq 0x1b0(%rsp), %rsi
movq %rbx, (%rsi)
movq $0x0, 0x8(%rsi)
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0xe3c2
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3300
movsbl %al, %esi
movq 0x12446(%rip), %rdi     # 0x1cfc8
callq 0x3030
movq %rax, %rdi
callq 0x3200
movl 0x3d0(%rsp), %eax
cmpl $0x5, %eax
je 0xabdc
cmpl $0x4, %eax
je 0xabc5
cmpl $0x3, %eax
jne 0xabfd
movq 0x3d8(%rsp), %rbx
testq %rbx, %rbx
je 0xabf3
movq (%rbx), %rdi
leaq 0x10(%rbx), %rax
cmpq %rax, %rdi
je 0xabf5
callq 0x32f0
jmp 0xabf5
movq 0x3d8(%rsp), %rbx
testq %rbx, %rbx
je 0xabf3
movq %rbx, %rdi
callq 0xc80e
jmp 0xabf5
movq 0x3d8(%rsp), %rbx
testq %rbx, %rbx
je 0xabf3
movq %rbx, %rdi
callq 0xcfec
jmp 0xabf5
xorl %ebx, %ebx
movq %rbx, %rdi
callq 0x32f0
movq 0x123e4(%rip), %rbx     # 0x1cfe8
leaq 0xaab2(%rip), %rsi      # 0x156bd
movl $0x9, %edx
movq %rbx, %rdi
callq 0x3350
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3300
movsbl %al, %esi
movq 0x123b2(%rip), %rdi     # 0x1cfe8
callq 0x3030
movq %rax, %rdi
callq 0x3200
xorpd %xmm0, %xmm0
movapd %xmm0, 0x1b0(%rsp)
movq $0x0, 0x1c0(%rsp)
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rax
subq %rsi, %rax
shrq $0x5, %rax
imull $0xaaaaaaab, %eax, %eax # imm = 0xAAAAAAAB
xorpd %xmm0, %xmm0
testl %eax, %eax
jle 0xae5f
movsd %xmm0, 0x10(%rsp)
xorl %r15d, %r15d
movq 0xa380(%rip), %xmm3     # 0x15010
movapd 0xa388(%rip), %xmm4     # 0x15020
leaq 0x1b0(%rsp), %rbx
leaq 0x3d0(%rsp), %r14
movabsq $-0x3333333333333333, %r12 # imm = 0xCCCCCCCCCCCCCCCD
movq 0x30(%rsp), %rax
leaq (%r15,%r15,2), %r13
movq (%rax,%r13,8), %rcx
movq 0x8(%rax,%r13,8), %rax
xorpd %xmm0, %xmm0
cmpq %rax, %rcx
je 0xace4
movq %rcx, %rdx
xorps %xmm1, %xmm1
cvtsi2sdl (%rdx), %xmm1
addsd %xmm1, %xmm0
addq $0x4, %rdx
cmpq %rax, %rdx
jne 0xacd0
subq %rcx, %rax
sarq $0x2, %rax
movq %rax, %xmm1
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm4, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
movsd %xmm0, 0x3d0(%rsp)
shlq $0x5, %r13
addq %r13, %rsi
movq %rbx, %rdi
movq %r14, %rdx
callq 0xc7e4
movq 0x50(%rsp), %rsi
movq 0x8(%rsi,%r13), %rcx
movq 0x10(%rsi,%r13), %rax
xorpd %xmm0, %xmm0
cmpq %rax, %rcx
je 0xad81
movq %rcx, %rdx
movq 0xa2ca(%rip), %xmm3     # 0x15010
movapd 0xa2d2(%rip), %xmm4     # 0x15020
movq 0x8(%rdx), %rdi
subq (%rdx), %rdi
sarq $0x3, %rdi
movq %rdi, %xmm1
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm4, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
addsd %xmm2, %xmm0
addq $0x28, %rdx
cmpq %rax, %rdx
jne 0xad4e
jmp 0xad91
movq 0xa287(%rip), %xmm3     # 0x15010
movapd 0xa28f(%rip), %xmm4     # 0x15020
addq %rsi, %r13
subq %rcx, %rax
sarq $0x3, %rax
imulq %r12, %rax
movq %rax, %xmm1
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm4, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
xorps %xmm1, %xmm1
cvtsi2sdl 0x40(%r13), %xmm1
xorps %xmm2, %xmm2
cvtsi2sdl 0x20(%r13), %xmm2
mulsd %xmm0, %xmm1
divsd %xmm2, %xmm1
movsd 0x3d0(%rsp), %xmm0
divsd %xmm1, %xmm0
movsd 0x10(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0x10(%rsp)
incq %r15
movq 0x58(%rsp), %rax
subq %rsi, %rax
shrq $0x5, %rax
imull $0xaaaaaaab, %eax, %eax # imm = 0xAAAAAAAB
cltq
cmpq %rax, %r15
jl 0xacb2
movq 0x1b0(%rsp), %rbx
movq 0x1b8(%rsp), %r14
cmpq %r14, %rbx
je 0xae67
movq %r14, %rax
subq %rbx, %rax
sarq $0x4, %rax
bsrq %rax, %rdx
xorl $0x3f, %edx
addl %edx, %edx
xorq $0x7e, %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x13b4d
movq %rbx, %rdi
movq %r14, %rsi
callq 0x13c00
movq 0x1b0(%rsp), %rbx
jmp 0xae67
movsd %xmm0, 0x10(%rsp)
xorl %ebx, %ebx
movq 0x1b8(%rsp), %r13
cmpq %r13, %rbx
je 0xaedf
movq 0x1216d(%rip), %r14     # 0x1cfe8
leaq 0xa6de(%rip), %r15      # 0x15560
movl (%rbx), %esi
movq %r14, %rdi
callq 0x3490
movq %rax, %r12
movl $0x2, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x3350
movsd 0x8(%rbx), %xmm0
movq %r12, %rdi
callq 0x3440
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x3300
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3200
addq $0x10, %rbx
cmpq %r13, %rbx
jne 0xae82
movq 0x12102(%rip), %rdi     # 0x1cfe8
leaq 0xa7da(%rip), %rsi      # 0x156c7
movl $0xd, %edx
callq 0x3350
movq 0x58(%rsp), %rax
subq 0x50(%rsp), %rax
sarq $0x5, %rax
movabsq $-0x5555555555555555, %rcx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rax, %rcx
movq %rcx, %xmm0
punpckldq 0xa0f0(%rip), %xmm0 # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
subpd 0xa0f8(%rip), %xmm0     # 0x15020
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
movsd 0x10(%rsp), %xmm0
divsd %xmm1, %xmm0
movq 0x120a3(%rip), %rdi     # 0x1cfe8
callq 0x3440
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3300
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3200
movq 0x1b0(%rsp), %rdi
testq %rdi, %rdi
je 0xaf86
callq 0x32f0
leaq 0x30(%rsp), %rdi
callq 0xbbae
leaq 0x100(%rsp), %rdi
callq 0xc80e
leaq 0x50(%rsp), %rdi
callq 0xc8ae
jmp 0xb093
leaq 0x3d8(%rsp), %rsi
leaq 0x78(%rsp), %rdi
callq 0x3420
leaq 0x1b0(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x4a99
movl 0x1c(%rsp), %esi
leaq 0x1b0(%rsp), %rdi
leaq 0x190(%rsp), %rdx
callq 0x9018
movq 0x1f8(%rsp), %rdi
testq %rdi, %rdi
je 0xaffb
callq 0x32f0
movq 0x1d8(%rsp), %rdi
testq %rdi, %rdi
je 0xb00d
callq 0x32f0
leaq 0x1b8(%rsp), %rdi
callq 0xd000
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xb072
callq 0x32f0
jmp 0xb072
movq 0x38(%rsp), %rbx
testq %rbx, %rbx
je 0xb05b
movq %rbx, %rdi
callq 0xc80e
jmp 0xb05d
movq 0x38(%rsp), %rbx
testq %rbx, %rbx
je 0xb05b
movq %rbx, %rdi
callq 0xcfec
jmp 0xb05d
xorl %ebx, %ebx
movq %rbx, %rdi
callq 0x32f0
leaq 0x1b0(%rsp), %rdi
callq 0x3090
movq 0x11f47(%rip), %rsi     # 0x1cfc0
leaq 0x3d0(%rsp), %rdi
callq 0x3170
leaq 0x440(%rsp), %rdi
callq 0x30e0
movq 0x3b8(%rsp), %rdi
testq %rdi, %rdi
je 0xb0a5
callq 0x32f0
movq 0x150(%rsp), %rdi
leaq 0x160(%rsp), %rax
cmpq %rax, %rdi
je 0xb0bf
callq 0x32f0
movq 0x190(%rsp), %rdi
leaq 0x1a0(%rsp), %rax
cmpq %rax, %rdi
je 0xb0d9
callq 0x32f0
leaq 0x170(%rsp), %rdi
callq 0xc178
movq 0x130(%rsp), %rdi
leaq 0x140(%rsp), %rax
cmpq %rax, %rdi
je 0xb100
callq 0x32f0
xorl %eax, %eax
addq $0x568, %rsp            # imm = 0x568
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x10, %edi
callq 0x3150
movq %rax, %r14
leaq 0xa636(%rip), %rsi      # 0x1575e
movq %rax, %rdi
callq 0x3100
jmp 0xb14e
movl $0x10, %edi
callq 0x3150
movq %rax, %r14
leaq 0xa58f(%rip), %rsi      # 0x156d5
movq %rax, %rdi
callq 0x3100
movq 0x11e9b(%rip), %rsi     # 0x1cff0
movq 0x11e5c(%rip), %rdx     # 0x1cfb8
movq %r14, %rdi
callq 0x3480
movl $0x10, %edi
callq 0x3150
movq %rax, %r14
leaq 0xa6c5(%rip), %rsi      # 0x1583d
movq %rax, %rdi
callq 0x3100
movq 0x11e69(%rip), %rsi     # 0x1cff0
movq 0x11e2a(%rip), %rdx     # 0x1cfb8
movq %r14, %rdi
callq 0x3480
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xb4c7
jmp 0xb4c2
jmp 0xb4ad
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xb4c7
jmp 0xb4c2
jmp 0xb4ad
movq %rax, %rbx
movq %r14, %rdi
callq 0x3250
jmp 0xb2b1
jmp 0xb1ee
movq %rax, %rbx
movq %r14, %rdi
callq 0x3250
jmp 0xb2c8
movq %rax, %rbx
leaq 0x1b0(%rsp), %rdi
callq 0xb8c6
jmp 0xb213
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xb2f9
callq 0x32f0
jmp 0xb2f9
jmp 0xb2f6
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0xb8c6
jmp 0xb24a
movq %rax, %rbx
leaq 0x110(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb265
callq 0x32f0
jmp 0xb265
movq %rax, %rbx
movq 0x50(%rsp), %rdi
cmpq %r14, %rdi
je 0xb2c8
jmp 0xb2c3
jmp 0xb275
jmp 0xb275
movq %rax, %rbx
jmp 0xb2c8
jmp 0xb2f6
jmp 0xb468
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xb4c7
jmp 0xb4c2
jmp 0xb4ad
jmp 0xb50e
jmp 0xb468
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xb2c8
callq 0x32f0
leaq 0x30(%rsp), %rdi
callq 0xb9ec
leaq 0x1b0(%rsp), %rdi
callq 0x3090
jmp 0xb2f9
jmp 0xb4ad
movq %rax, %rbx
movq %r14, %rdi
jmp 0xb601
jmp 0xb48e
movq %rax, %rbx
movq 0x11cc0(%rip), %rsi     # 0x1cfc0
leaq 0x3d0(%rsp), %rdi
callq 0x3170
leaq 0x440(%rsp), %rdi
callq 0x30e0
jmp 0xb627
movq %rax, %rbx
movq 0x1b0(%rsp), %rdi
cmpq %r15, %rdi
je 0xb4c7
jmp 0xb4c2
jmp 0xb4ad
movq %rax, %rbx
jmp 0xb639
movq %rax, %rbx
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0xb694
jmp 0xb68f
jmp 0xb460
movq %rax, %rbx
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0xb694
jmp 0xb68f
jmp 0xb460
movq %rax, %rbx
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0xb694
jmp 0xb68f
jmp 0xb460
movq %rax, %rbx
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0xb694
jmp 0xb68f
jmp 0xb460
movq %rax, %rbx
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0xb694
jmp 0xb68f
jmp 0xb460
movq %rax, %rbx
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0xb694
jmp 0xb68f
jmp 0xb460
movq %rax, %rbx
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0xb694
jmp 0xb68f
jmp 0xb460
movq %rax, %rbx
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0xb694
jmp 0xb68f
jmp 0xb460
movq %rax, %rbx
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0xb694
jmp 0xb68f
jmp 0xb460
movq %rax, %rbx
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0xb694
jmp 0xb68f
movq %rax, %rbx
jmp 0xb694
movq %rax, %rbx
movq 0x11b3e(%rip), %rsi     # 0x1cfb0
leaq 0x1b0(%rsp), %rdi
callq 0x33b0
leaq 0x228(%rsp), %rdi
callq 0x30e0
jmp 0xb4c7
movq %rax, %rbx
jmp 0xb606
movq %rax, %rbx
leaq 0x3d0(%rsp), %rdi
callq 0xb9ec
jmp 0xb606
jmp 0xb518
movq %rax, %rbx
jmp 0xb4c7
movq %rax, %rbx
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0xb4c7
callq 0x32f0
movq 0x3d0(%rsp), %rdi
leaq 0x3e0(%rsp), %rax
cmpq %rax, %rdi
je 0xb627
callq 0x32f0
jmp 0xb627
jmp 0xb5f1
jmp 0xb518
movq %rax, %rbx
jmp 0xb61d
movq %rax, %rbx
leaq 0x1b0(%rsp), %rdi
callq 0xb8c6
jmp 0xb61d
movq %rax, %rbx
jmp 0xb627
jmp 0xb559
movq %rax, %rbx
movq 0x1b0(%rsp), %rdi
testq %rdi, %rdi
je 0xb606
jmp 0xb601
jmp 0xb5f1
jmp 0xb559
jmp 0xb53e
jmp 0xb55e
jmp 0xb53e
movq %rax, %rbx
movq %r12, %rdi
callq 0x32f0
jmp 0xb5c3
jmp 0xb55e
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
jmp 0xb5be
jmp 0xb559
movq %rax, %rbx
jmp 0xb5c3
movq %rax, %rbx
jmp 0xb5bb
movq %rax, %rbx
jmp 0xb5bb
jmp 0xb5f1
movq %rax, %rbx
movq 0x78(%rsp), %rdi
cmpq %r13, %rdi
je 0xb57f
callq 0x32f0
jmp 0xb5bb
movq %rax, %rbx
movq 0x78(%rsp), %rdi
cmpq %r13, %rdi
je 0xb593
callq 0x32f0
jmp 0xb5bb
movq %rax, %rbx
movq 0x78(%rsp), %rdi
cmpq %r13, %rdi
je 0xb5a7
callq 0x32f0
jmp 0xb5bb
movq %rax, %rbx
movq 0x78(%rsp), %rdi
cmpq %r13, %rdi
je 0xb5bb
callq 0x32f0
movq %rsp, %rdi
callq 0xb9ec
leaq 0x1b0(%rsp), %rdi
callq 0xcfec
jmp 0xb5d5
movq %rax, %rbx
movq 0x3d0(%rsp), %rdi
leaq 0x3e0(%rsp), %rax
cmpq %rax, %rdi
je 0xb5f4
callq 0x32f0
jmp 0xb5f4
movq %rax, %rbx
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
je 0xb606
callq 0x32f0
leaq 0x30(%rsp), %rdi
callq 0xbbae
leaq 0x100(%rsp), %rdi
callq 0xc80e
leaq 0x50(%rsp), %rdi
callq 0xc8ae
movq 0x3b8(%rsp), %rdi
testq %rdi, %rdi
je 0xb639
callq 0x32f0
leaq 0x160(%rsp), %rax
movq 0x150(%rsp), %rdi
cmpq %rax, %rdi
je 0xb653
callq 0x32f0
movq 0x190(%rsp), %rdi
leaq 0x1a0(%rsp), %rax
cmpq %rax, %rdi
je 0xb66d
callq 0x32f0
leaq 0x170(%rsp), %rdi
callq 0xc178
movq 0x130(%rsp), %rdi
leaq 0x140(%rsp), %rax
cmpq %rax, %rdi
je 0xb694
callq 0x32f0
movq %rbx, %rdi
callq 0x34a0