// File: eryxcc[P]lois/tests/autotest.cpp
// Function: testRandomBipartite(lois::lsetof<lois::term>)
void testRandomBipartite(lsetof<term> A) {
  string R = "R";

  RelBinary edge(sym.edge, sym.noedge, lmNoLoops, smSymmetric);
  
  RelUnary partition(R, 2);

  // for some reason 'edge' is passed as const to lambda
  RelBinary *ebi = &edge; 

  for(term x: A) for(term y: A) {
    testSat(NEVER, !EXISTS(z, A, (*ebi)(x,z) && (*ebi)(y,z)));
    }

  testSat(ALWAYS, FORALL(x, A, !(*ebi)(x,x)) );

  lsetof<lpair<term, term> > E;

  for(term x: A) for(term y: A) 
    If(edge(x,y) && !partition.together(x,y))
      E += make_lpair(x,y);

  cout << "E = " << E << endl;
  
  // debuglois = true;

  // solver = solverVerbose("formula checked", solver);
  // solver = solverNamed("diagnostic", solver);

  for(term a: A) {
   
    lelemof<int> iterations = 0;
    
    lsetof<term> R = newSet(a);
    lsetof<term> P = R;
    
    While(R != A) {
      iterations++;
      lsetof<term> NP;
      cout << "R= " << R << endl;
      for(term x: P) 
        for(auto& ed: E) 
          If(ed.first == x && !memberof(ed.second, R)) {
            R += ed.second;
            NP += ed.second;
            }
      cout << "NP= " << NP << endl;
      P = NP;
      
      for(int it: iterations) if(it > 10) exit(1);
      }
  
    cout << "iterations = " << iterations << endl;
    testSat(ALWAYS, iterations == 3);
    }

  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x9c0, %rsp            # imm = 0x9C0
movq %rdi, -0x898(%rbp)
movq %rdi, -0x8(%rbp)
leaq -0x29(%rbp), %rdi
movq %rdi, -0x890(%rbp)
callq 0x84e0
movq -0x890(%rbp), %rdx
leaq 0x64233(%rip), %rsi     # 0x72147
leaq -0x28(%rbp), %rdi
callq 0x10f40
jmp 0xdf1f
leaq -0x29(%rbp), %rdi
callq 0x8320
leaq 0x97a39(%rip), %rsi     # 0xa5968
addq $0x240, %rsi            # imm = 0x240
leaq -0x98(%rbp), %rdi
movq %rdi, -0x8a0(%rbp)
callq 0x11380
movq -0x8a0(%rbp), %rsi
leaq -0x80(%rbp), %rdi
callq 0x113d0
jmp 0xdf5b
leaq 0x97a06(%rip), %rsi     # 0xa5968
addq $0x258, %rsi            # imm = 0x258
leaq -0xc0(%rbp), %rdi
movq %rdi, -0x8a8(%rbp)
callq 0x11380
movq -0x8a8(%rbp), %rsi
leaq -0xa8(%rbp), %rdi
callq 0x113d0
jmp 0xdf91
leaq -0x70(%rbp), %rdi
leaq -0x80(%rbp), %rsi
leaq -0xa8(%rbp), %rdx
xorl %r8d, %r8d
movl %r8d, %ecx
callq 0x12750
jmp 0xdfad
leaq -0xa8(%rbp), %rdi
callq 0x114d0
leaq -0xc0(%rbp), %rdi
callq 0x114f0
leaq -0x80(%rbp), %rdi
callq 0x114d0
leaq -0x98(%rbp), %rdi
callq 0x114f0
leaq -0xf0(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x127d0
jmp 0xdfec
leaq -0xe0(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
movl $0x2, %edx
callq 0x12840
jmp 0xe006
leaq -0xf0(%rbp), %rdi
callq 0x114d0
movq -0x898(%rbp), %rax
leaq -0x70(%rbp), %rcx
movq %rcx, -0xf8(%rbp)
movq %rax, -0x100(%rbp)
movq -0x100(%rbp), %rsi
leaq -0x130(%rbp), %rdi
callq 0x116d0
jmp 0xe040
movq -0x100(%rbp), %rsi
leaq -0x160(%rbp), %rdi
callq 0x11700
jmp 0xe055
jmp 0xe057
leaq -0x130(%rbp), %rdi
leaq -0x160(%rbp), %rsi
callq 0x11730
movb %al, -0x8a9(%rbp)
jmp 0xe072
movb -0x8a9(%rbp), %al
testb $0x1, %al
jne 0xe17e
jmp 0xe082
movl $0x2, -0x164(%rbp)
leaq -0x160(%rbp), %rdi
callq 0x11910
leaq -0x130(%rbp), %rdi
callq 0x11910
jmp 0xe3ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x29(%rbp), %rdi
callq 0x8320
jmp 0xf659
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe10c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe0f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x114d0
leaq -0xc0(%rbp), %rdi
callq 0x114f0
leaq -0x80(%rbp), %rdi
callq 0x114d0
leaq -0x98(%rbp), %rdi
callq 0x114f0
jmp 0xf650
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xf647
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x114d0
jmp 0xf647
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xf63b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe3d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe3cd
leaq -0x130(%rbp), %rdi
callq 0x117e0
movq %rax, -0x8b8(%rbp)
jmp 0xe193
movq -0x8b8(%rbp), %rsi
leaq -0x178(%rbp), %rdi
callq 0x11800
movq -0x898(%rbp), %rax
movq %rax, -0x180(%rbp)
movq -0x180(%rbp), %rsi
leaq -0x1b0(%rbp), %rdi
callq 0x116d0
jmp 0xe1c9
movq -0x180(%rbp), %rsi
leaq -0x1e0(%rbp), %rdi
callq 0x11700
jmp 0xe1de
jmp 0xe1e0
leaq -0x1b0(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x11730
movb %al, -0x8b9(%rbp)
jmp 0xe1fb
movb -0x8b9(%rbp), %al
testb $0x1, %al
jne 0xe261
jmp 0xe207
movl $0x4, -0x164(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x11910
leaq -0x1b0(%rbp), %rdi
callq 0x11910
jmp 0xe3a2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe3c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe394
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe388
leaq -0x1b0(%rbp), %rdi
callq 0x117e0
movq %rax, -0x8c8(%rbp)
jmp 0xe276
movq -0x8c8(%rbp), %rsi
leaq -0x1f0(%rbp), %rdi
movq %rdi, -0x8d0(%rbp)
callq 0x11800
movq -0x898(%rbp), %rcx
movq -0x8d0(%rbp), %rax
movq %rcx, -0x230(%rbp)
leaq -0xf8(%rbp), %rcx
movq %rcx, -0x228(%rbp)
leaq -0x178(%rbp), %rcx
movq %rcx, -0x220(%rbp)
movq %rax, -0x218(%rbp)
leaq -0x210(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0xf670
jmp 0xe2dd
leaq -0x200(%rbp), %rdi
leaq -0x210(%rbp), %rsi
callq 0x400a0
jmp 0xe2f2
movl $0x2, %edi
leaq -0x200(%rbp), %rsi
callq 0x9120
jmp 0xe305
leaq -0x200(%rbp), %rdi
callq 0x11060
leaq -0x210(%rbp), %rdi
callq 0x11060
leaq -0x1f0(%rbp), %rdi
callq 0x11360
leaq -0x1b0(%rbp), %rdi
callq 0x118d0
jmp 0xe337
jmp 0xe1e0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe37c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe370
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x200(%rbp), %rdi
callq 0x11060
leaq -0x210(%rbp), %rdi
callq 0x11060
leaq -0x1f0(%rbp), %rdi
callq 0x11360
leaq -0x1e0(%rbp), %rdi
callq 0x11910
leaq -0x1b0(%rbp), %rdi
callq 0x11910
jmp 0xe3c1
leaq -0x178(%rbp), %rdi
callq 0x11360
leaq -0x130(%rbp), %rdi
callq 0x118d0
jmp 0xe3bc
jmp 0xe057
leaq -0x178(%rbp), %rdi
callq 0x11360
leaq -0x160(%rbp), %rdi
callq 0x11910
leaq -0x130(%rbp), %rdi
callq 0x11910
jmp 0xf63b
movq -0x898(%rbp), %rax
movq %rax, -0x250(%rbp)
leaq -0xf8(%rbp), %rax
movq %rax, -0x248(%rbp)
leaq -0x240(%rbp), %rdi
leaq -0x250(%rbp), %rsi
callq 0xf940
jmp 0xe41b
movl $0x1, %edi
leaq -0x240(%rbp), %rsi
callq 0x9120
jmp 0xe42e
leaq -0x240(%rbp), %rdi
callq 0x11060
leaq -0x278(%rbp), %rdi
callq 0x128a0
jmp 0xe448
movq -0x898(%rbp), %rax
movq %rax, -0x280(%rbp)
movq -0x280(%rbp), %rsi
leaq -0x2b0(%rbp), %rdi
callq 0x116d0
jmp 0xe46b
movq -0x280(%rbp), %rsi
leaq -0x2e0(%rbp), %rdi
callq 0x11700
jmp 0xe480
jmp 0xe482
leaq -0x2b0(%rbp), %rdi
leaq -0x2e0(%rbp), %rsi
callq 0x11730
movb %al, -0x8d1(%rbp)
jmp 0xe49d
movb -0x8d1(%rbp), %al
testb $0x1, %al
jne 0xe520
jmp 0xe4a9
movl $0x6, -0x164(%rbp)
leaq -0x2e0(%rbp), %rdi
callq 0x11910
leaq -0x2b0(%rbp), %rdi
callq 0x11910
jmp 0xe9f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x240(%rbp), %rdi
callq 0x11060
jmp 0xf63b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xf62f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe9e4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe9d8
leaq -0x2b0(%rbp), %rdi
callq 0x117e0
movq %rax, -0x8e0(%rbp)
jmp 0xe535
movq -0x8e0(%rbp), %rsi
leaq -0x2f0(%rbp), %rdi
callq 0x11800
movq -0x898(%rbp), %rax
movq %rax, -0x2f8(%rbp)
movq -0x2f8(%rbp), %rsi
leaq -0x328(%rbp), %rdi
callq 0x116d0
jmp 0xe56b
movq -0x2f8(%rbp), %rsi
leaq -0x358(%rbp), %rdi
callq 0x11700
jmp 0xe580
jmp 0xe582
leaq -0x328(%rbp), %rdi
leaq -0x358(%rbp), %rsi
callq 0x11730
movb %al, -0x8e1(%rbp)
jmp 0xe59d
movb -0x8e1(%rbp), %al
testb $0x1, %al
jne 0xe603
jmp 0xe5a9
movl $0x8, -0x164(%rbp)
leaq -0x358(%rbp), %rdi
callq 0x11910
leaq -0x328(%rbp), %rdi
callq 0x11910
jmp 0xe9ad
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe9cc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe99f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe993
leaq -0x328(%rbp), %rdi
callq 0x117e0
movq %rax, -0x8f0(%rbp)
jmp 0xe618
movq -0x8f0(%rbp), %rsi
leaq -0x368(%rbp), %rdi
movq %rdi, -0x8f8(%rbp)
callq 0x11800
movq -0x8f8(%rbp), %rcx
leaq -0x3a8(%rbp), %rdi
leaq -0x70(%rbp), %rsi
leaq -0x2f0(%rbp), %rdx
callq 0x128e0
jmp 0xe652
leaq -0x3c8(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
leaq -0x2f0(%rbp), %rdx
leaq -0x368(%rbp), %rcx
callq 0x12920
jmp 0xe675
leaq -0x3b8(%rbp), %rdi
leaq -0x3c8(%rbp), %rsi
callq 0x400a0
jmp 0xe68a
leaq -0x398(%rbp), %rdi
leaq -0x3a8(%rbp), %rsi
leaq -0x3b8(%rbp), %rdx
callq 0x42150
jmp 0xe6a6
leaq -0x388(%rbp), %rdi
leaq -0x398(%rbp), %rsi
callq 0x10ff0
jmp 0xe6bb
leaq -0x398(%rbp), %rdi
callq 0x11060
leaq -0x3b8(%rbp), %rdi
callq 0x11060
leaq -0x3c8(%rbp), %rdi
callq 0x11060
leaq -0x3a8(%rbp), %rdi
callq 0x11060
leaq -0x388(%rbp), %rax
movq %rax, -0x370(%rbp)
movq -0x370(%rbp), %rsi
leaq -0x3f8(%rbp), %rdi
callq 0x3ead0
jmp 0xe70e
movq -0x370(%rbp), %rsi
leaq -0x428(%rbp), %rdi
callq 0x3eb60
jmp 0xe723
jmp 0xe725
leaq -0x3f8(%rbp), %rdi
leaq -0x428(%rbp), %rsi
callq 0x11080
movb %al, -0x8f9(%rbp)
jmp 0xe740
movb -0x8f9(%rbp), %al
testb $0x1, %al
jne 0xe832
jmp 0xe750
movl $0xa, -0x164(%rbp)
leaq -0x428(%rbp), %rdi
callq 0x110e0
leaq -0x3f8(%rbp), %rdi
callq 0x110e0
leaq -0x388(%rbp), %rdi
callq 0x11120
jmp 0xe968
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe987
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe7ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe7e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe7d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x398(%rbp), %rdi
callq 0x11060
leaq -0x3b8(%rbp), %rdi
callq 0x11060
leaq -0x3c8(%rbp), %rdi
callq 0x11060
leaq -0x3a8(%rbp), %rdi
callq 0x11060
jmp 0xe987
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe95a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe94e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe942
leaq -0x3f8(%rbp), %rdi
callq 0x110b0
movb %al, -0x8fa(%rbp)
jmp 0xe846
movb -0x8fa(%rbp), %al
andb $0x1, %al
movb %al, -0x429(%rbp)
testb $0x1, -0x429(%rbp)
jne 0xe862
jmp 0xe92d
leaq -0x460(%rbp), %rdi
movq %rdi, -0x910(%rbp)
leaq -0x2f0(%rbp), %rsi
callq 0x11800
leaq -0x470(%rbp), %rdi
movq %rdi, -0x908(%rbp)
leaq -0x368(%rbp), %rsi
callq 0x11800
movq -0x910(%rbp), %rsi
movq -0x908(%rbp), %rdx
leaq -0x450(%rbp), %rdi
callq 0x12960
jmp 0xe8b2
leaq -0x278(%rbp), %rdi
leaq -0x450(%rbp), %rsi
callq 0x12a00
jmp 0xe8c7
leaq -0x450(%rbp), %rdi
callq 0x12ac0
leaq -0x470(%rbp), %rdi
callq 0x11360
leaq -0x460(%rbp), %rdi
callq 0x11360
jmp 0xe92d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xe913
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x450(%rbp), %rdi
callq 0x12ac0
leaq -0x470(%rbp), %rdi
callq 0x11360
leaq -0x460(%rbp), %rdi
callq 0x11360
jmp 0xe942
jmp 0xe92f
leaq -0x3f8(%rbp), %rdi
callq 0x3ea80
jmp 0xe93d
jmp 0xe725
leaq -0x428(%rbp), %rdi
callq 0x110e0
leaq -0x3f8(%rbp), %rdi
callq 0x110e0
leaq -0x388(%rbp), %rdi
callq 0x11120
jmp 0xe987
leaq -0x368(%rbp), %rdi
callq 0x11360
leaq -0x328(%rbp), %rdi
callq 0x118d0
jmp 0xe982
jmp 0xe582
leaq -0x368(%rbp), %rdi
callq 0x11360
leaq -0x358(%rbp), %rdi
callq 0x11910
leaq -0x328(%rbp), %rdi
callq 0x11910
jmp 0xe9cc
leaq -0x2f0(%rbp), %rdi
callq 0x11360
leaq -0x2b0(%rbp), %rdi
callq 0x118d0
jmp 0xe9c7
jmp 0xe482
leaq -0x2f0(%rbp), %rdi
callq 0x11360
leaq -0x2e0(%rbp), %rdi
callq 0x11910
leaq -0x2b0(%rbp), %rdi
callq 0x11910
jmp 0xf62f
movq 0x965dc(%rip), %rdi     # 0xa4fd8
leaq 0x63746(%rip), %rsi     # 0x72149
callq 0x82b0
movq %rax, -0x918(%rbp)
jmp 0xea11
movq -0x918(%rbp), %rdi
leaq -0x278(%rbp), %rsi
callq 0x12af0
movq %rax, -0x920(%rbp)
jmp 0xea2d
movq -0x920(%rbp), %rdi
movq 0x96575(%rip), %rsi     # 0xa4fb0
callq 0x8300
jmp 0xea42
movq -0x898(%rbp), %rax
movq %rax, -0x478(%rbp)
movq -0x478(%rbp), %rsi
leaq -0x4a8(%rbp), %rdi
callq 0x116d0
jmp 0xea65
movq -0x478(%rbp), %rsi
leaq -0x4d8(%rbp), %rdi
callq 0x11700
jmp 0xea7a
jmp 0xea7c
leaq -0x4a8(%rbp), %rdi
leaq -0x4d8(%rbp), %rsi
callq 0x11730
movb %al, -0x921(%rbp)
jmp 0xea97
movb -0x921(%rbp), %al
testb $0x1, %al
jne 0xeaec
jmp 0xeaa3
movl $0xc, -0x164(%rbp)
leaq -0x4d8(%rbp), %rdi
callq 0x11910
leaq -0x4a8(%rbp), %rdi
callq 0x11910
jmp 0xf5fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xf5ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xf5e2
leaq -0x4a8(%rbp), %rdi
callq 0x117e0
movq %rax, -0x930(%rbp)
jmp 0xeb01
movq -0x930(%rbp), %rsi
leaq -0x4e8(%rbp), %rdi
callq 0x11800
movl $0x0, -0x514(%rbp)
leaq -0x510(%rbp), %rdi
leaq -0x514(%rbp), %rsi
callq 0x12b20
jmp 0xeb33
leaq -0x550(%rbp), %rdi
movq %rdi, -0x938(%rbp)
leaq -0x4e8(%rbp), %rsi
callq 0x11800
movq -0x938(%rbp), %rsi
leaq -0x540(%rbp), %rdi
callq 0x12bb0
jmp 0xeb62
leaq -0x550(%rbp), %rdi
callq 0x11360
leaq -0x578(%rbp), %rdi
leaq -0x540(%rbp), %rsi
callq 0x11520
jmp 0xeb83
leaq 0x96c76(%rip), %rdi     # 0xa5800
movq %rdi, -0x580(%rbp)
callq 0x3ebb0
movb %al, -0x939(%rbp)
jmp 0xeb9e
movb -0x939(%rbp), %al
movb %al, -0x581(%rbp)
leaq 0x96c4f(%rip), %rdi     # 0xa5800
callq 0x3ebe0
movb %al, -0x93a(%rbp)
jmp 0xebbe
movb -0x93a(%rbp), %al
movb %al, -0x582(%rbp)
leaq -0x581(%rbp), %rdi
leaq -0x582(%rbp), %rsi
callq 0x12cb0
movb %al, -0x93b(%rbp)
jmp 0xebe5
movb -0x93b(%rbp), %al
testb $0x1, %al
jne 0xebf4
jmp 0xf4c5
leaq -0x581(%rbp), %rdi
callq 0x12ce0
movq %rax, -0x948(%rbp)
jmp 0xec09
movq -0x898(%rbp), %rdx
movq -0x948(%rbp), %rax
movq %rax, -0x590(%rbp)
leaq -0x5c0(%rbp), %rdi
leaq -0x540(%rbp), %rsi
callq 0x12d30
jmp 0xec33
leaq -0x5b0(%rbp), %rdi
leaq -0x5c0(%rbp), %rsi
callq 0x12cf0
jmp 0xec48
leaq -0x5c0(%rbp), %rdi
callq 0x11060
leaq -0x5b0(%rbp), %rax
movq %rax, -0x598(%rbp)
movq -0x598(%rbp), %rsi
leaq -0x5f0(%rbp), %rdi
callq 0x3ead0
jmp 0xec77
movq -0x598(%rbp), %rsi
leaq -0x620(%rbp), %rdi
callq 0x3eb60
jmp 0xec8c
jmp 0xec8e
leaq -0x5f0(%rbp), %rdi
leaq -0x620(%rbp), %rsi
callq 0x11080
movb %al, -0x949(%rbp)
jmp 0xeca9
movb -0x949(%rbp), %al
testb $0x1, %al
jne 0xed8c
jmp 0xecb9
movl $0x10, -0x164(%rbp)
leaq -0x620(%rbp), %rdi
callq 0x110e0
leaq -0x5f0(%rbp), %rdi
callq 0x110e0
leaq -0x5b0(%rbp), %rdi
callq 0x11120
jmp 0xf4b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xf5d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x550(%rbp), %rdi
callq 0x11360
jmp 0xf5ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xf5be
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xf5b2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x5c0(%rbp), %rdi
callq 0x11060
jmp 0xf5b2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xf49f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xf493
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xf487
leaq -0x5f0(%rbp), %rdi
callq 0x110b0
movb %al, -0x94a(%rbp)
jmp 0xeda0
movb -0x94a(%rbp), %al
andb $0x1, %al
movb %al, -0x621(%rbp)
testb $0x1, -0x621(%rbp)
je 0xedc6
movq -0x590(%rbp), %rax
movb $0x0, (%rax)
jmp 0xf472
leaq -0x510(%rbp), %rdi
xorl %esi, %esi
callq 0x12db0
jmp 0xedd6
leaq -0x650(%rbp), %rdi
callq 0x119e0
jmp 0xede4
movq 0x961ed(%rip), %rdi     # 0xa4fd8
leaq 0x6335c(%rip), %rsi     # 0x7214e
callq 0x82b0
movq %rax, -0x958(%rbp)
jmp 0xee00
movq -0x958(%rbp), %rdi
leaq -0x540(%rbp), %rsi
callq 0x11da0
movq %rax, -0x960(%rbp)
jmp 0xee1c
movq -0x960(%rbp), %rdi
movq 0x96186(%rip), %rsi     # 0xa4fb0
callq 0x8300
jmp 0xee31
leaq -0x578(%rbp), %rax
movq %rax, -0x658(%rbp)
movq -0x658(%rbp), %rsi
leaq -0x688(%rbp), %rdi
callq 0x116d0
jmp 0xee54
movq -0x658(%rbp), %rsi
leaq -0x6b8(%rbp), %rdi
callq 0x11700
jmp 0xee69
jmp 0xee6b
leaq -0x688(%rbp), %rdi
leaq -0x6b8(%rbp), %rsi
callq 0x11730
movb %al, -0x961(%rbp)
jmp 0xee86
movb -0x961(%rbp), %al
testb $0x1, %al
jne 0xeeec
jmp 0xee92
movl $0x12, -0x164(%rbp)
leaq -0x6b8(%rbp), %rdi
callq 0x11910
leaq -0x688(%rbp), %rdi
callq 0x11910
jmp 0xf2ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xf464
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xf2d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xf2cd
leaq -0x688(%rbp), %rdi
callq 0x117e0
movq %rax, -0x970(%rbp)
jmp 0xef01
movq -0x970(%rbp), %rsi
leaq -0x6c8(%rbp), %rdi
callq 0x11800
leaq -0x278(%rbp), %rax
movq %rax, -0x6d0(%rbp)
movq -0x6d0(%rbp), %rsi
leaq -0x700(%rbp), %rdi
callq 0x12de0
jmp 0xef37
movq -0x6d0(%rbp), %rsi
leaq -0x730(%rbp), %rdi
callq 0x12e10
jmp 0xef4c
jmp 0xef4e
leaq -0x700(%rbp), %rdi
leaq -0x730(%rbp), %rsi
callq 0x12e40
movb %al, -0x971(%rbp)
jmp 0xef69
movb -0x971(%rbp), %al
testb $0x1, %al
jne 0xefcf
jmp 0xef75
movl $0x14, -0x164(%rbp)
leaq -0x730(%rbp), %rdi
callq 0x12f90
leaq -0x700(%rbp), %rdi
callq 0x12f90
jmp 0xf2a2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xf2c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xf294
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xf288
leaq -0x700(%rbp), %rdi
callq 0x12ef0
movq %rax, -0x980(%rbp)
jmp 0xefe4
movq -0x980(%rbp), %rax
movq %rax, -0x738(%rbp)
movq -0x738(%rbp), %rsi
leaq -0x778(%rbp), %rdi
leaq -0x6c8(%rbp), %rdx
callq 0x43290
jmp 0xf00e
movq -0x738(%rbp), %rsi
addq $0x10, %rsi
leaq -0x798(%rbp), %rdi
leaq -0x540(%rbp), %rdx
callq 0x12f10
jmp 0xf02e
leaq -0x788(%rbp), %rdi
leaq -0x798(%rbp), %rsi
callq 0x400a0
jmp 0xf043
leaq -0x768(%rbp), %rdi
leaq -0x778(%rbp), %rsi
leaq -0x788(%rbp), %rdx
callq 0x42150
jmp 0xf05f
leaq -0x758(%rbp), %rdi
leaq -0x768(%rbp), %rsi
callq 0x10ff0
jmp 0xf074
leaq -0x768(%rbp), %rdi
callq 0x11060
leaq -0x788(%rbp), %rdi
callq 0x11060
leaq -0x798(%rbp), %rdi
callq 0x11060
leaq -0x778(%rbp), %rdi
callq 0x11060
leaq -0x758(%rbp), %rax
movq %rax, -0x740(%rbp)
movq -0x740(%rbp), %rsi
leaq -0x7c8(%rbp), %rdi
callq 0x3ead0
jmp 0xf0c7
movq -0x740(%rbp), %rsi
leaq -0x7f8(%rbp), %rdi
callq 0x3eb60
jmp 0xf0dc
jmp 0xf0de
leaq -0x7c8(%rbp), %rdi
leaq -0x7f8(%rbp), %rsi
callq 0x11080
movb %al, -0x981(%rbp)
jmp 0xf0f9
movb -0x981(%rbp), %al
testb $0x1, %al
jne 0xf1e3
jmp 0xf109
movl $0x16, -0x164(%rbp)
leaq -0x7f8(%rbp), %rdi
callq 0x110e0
leaq -0x7c8(%rbp), %rdi
callq 0x110e0
leaq -0x758(%rbp), %rdi
callq 0x11120
jmp 0xf273
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xf196
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xf18a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xf17e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x768(%rbp), %rdi
callq 0x11060
leaq -0x788(%rbp), %rdi
callq 0x11060
leaq -0x798(%rbp), %rdi
callq 0x11060
leaq -0x778(%rbp), %rdi
callq 0x11060
jmp 0xf288
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xf265
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xf259
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x7f8(%rbp), %rdi
callq 0x110e0
jmp 0xf259
leaq -0x7c8(%rbp), %rdi
callq 0x110b0
movb %al, -0x982(%rbp)
jmp 0xf1f7
movb -0x982(%rbp), %al
andb $0x1, %al
movb %al, -0x7f9(%rbp)
testb $0x1, -0x7f9(%rbp)
jne 0xf210
jmp 0xf244
movq -0x738(%rbp), %rsi
addq $0x10, %rsi
leaq -0x540(%rbp), %rdi
callq 0x11a20
jmp 0xf229
movq -0x738(%rbp), %rsi
addq $0x10, %rsi
leaq -0x650(%rbp), %rdi
callq 0x11a20
jmp 0xf242
jmp 0xf244
jmp 0xf246
leaq -0x7c8(%rbp), %rdi
callq 0x3ea80
jmp 0xf254
jmp 0xf0de
leaq -0x7c8(%rbp), %rdi
callq 0x110e0
leaq -0x758(%rbp), %rdi
callq 0x11120
jmp 0xf288
jmp 0xf275
leaq -0x700(%rbp), %rdi
callq 0x12f50
jmp 0xf283
jmp 0xef4e
leaq -0x730(%rbp), %rdi
callq 0x12f90
leaq -0x700(%rbp), %rdi
callq 0x12f90
jmp 0xf2c1
leaq -0x6c8(%rbp), %rdi
callq 0x11360
leaq -0x688(%rbp), %rdi
callq 0x118d0
jmp 0xf2bc
jmp 0xee6b
leaq -0x6c8(%rbp), %rdi
callq 0x11360
leaq -0x6b8(%rbp), %rdi
callq 0x11910
leaq -0x688(%rbp), %rdi
callq 0x11910
jmp 0xf464
movq 0x95ce7(%rip), %rdi     # 0xa4fd8
leaq 0x62e5a(%rip), %rsi     # 0x72152
callq 0x82b0
movq %rax, -0x990(%rbp)
jmp 0xf306
movq -0x990(%rbp), %rdi
leaq -0x650(%rbp), %rsi
callq 0x11da0
movq %rax, -0x998(%rbp)
jmp 0xf322
movq -0x998(%rbp), %rdi
movq 0x95c80(%rip), %rsi     # 0xa4fb0
callq 0x8300
jmp 0xf337
leaq -0x578(%rbp), %rdi
leaq -0x650(%rbp), %rsi
callq 0x12fe0
jmp 0xf34c
leaq -0x510(%rbp), %rax
movq %rax, -0x808(%rbp)
movq -0x808(%rbp), %rsi
leaq -0x838(%rbp), %rdi
callq 0x13290
jmp 0xf36f
movq -0x808(%rbp), %rsi
leaq -0x868(%rbp), %rdi
callq 0x132c0
jmp 0xf384
jmp 0xf386
leaq -0x838(%rbp), %rdi
leaq -0x868(%rbp), %rsi
callq 0x13310
movb %al, -0x999(%rbp)
jmp 0xf3a1
movb -0x999(%rbp), %al
testb $0x1, %al
jne 0xf3fc
jmp 0xf3ad
movl $0x18, -0x164(%rbp)
leaq -0x868(%rbp), %rdi
callq 0x13420
leaq -0x838(%rbp), %rdi
callq 0x13420
jmp 0xf456
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xf448
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x868(%rbp), %rdi
callq 0x13420
jmp 0xf448
leaq -0x838(%rbp), %rdi
callq 0x133c0
movq %rax, -0x9a8(%rbp)
jmp 0xf411
movq -0x9a8(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x86c(%rbp)
cmpl $0xa, -0x86c(%rbp)
jle 0xf433
movl $0x1, %edi
callq 0x8390
jmp 0xf435
leaq -0x838(%rbp), %rdi
callq 0x133e0
jmp 0xf443
jmp 0xf386
leaq -0x838(%rbp), %rdi
callq 0x13420
jmp 0xf464
leaq -0x650(%rbp), %rdi
callq 0x11960
jmp 0xf472
leaq -0x650(%rbp), %rdi
callq 0x11960
jmp 0xf487
jmp 0xf474
leaq -0x5f0(%rbp), %rdi
callq 0x3ea80
jmp 0xf482
jmp 0xec8e
leaq -0x620(%rbp), %rdi
callq 0x110e0
leaq -0x5f0(%rbp), %rdi
callq 0x110e0
leaq -0x5b0(%rbp), %rdi
callq 0x11120
jmp 0xf5b2
jmp 0xf4b2
leaq -0x581(%rbp), %rdi
callq 0x13470
jmp 0xf4c0
jmp 0xebca
movq 0x95b0c(%rip), %rdi     # 0xa4fd8
leaq 0x62c84(%rip), %rsi     # 0x72157
callq 0x82b0
movq %rax, -0x9b0(%rbp)
jmp 0xf4e1
movq -0x9b0(%rbp), %rdi
leaq -0x510(%rbp), %rsi
callq 0x13480
movq %rax, -0x9b8(%rbp)
jmp 0xf4fd
movq -0x9b8(%rbp), %rdi
movq 0x95aa5(%rip), %rsi     # 0xa4fb0
callq 0x8300
jmp 0xf512
movl $0x3, -0x884(%rbp)
leaq -0x880(%rbp), %rdi
leaq -0x510(%rbp), %rsi
leaq -0x884(%rbp), %rdx
callq 0x11dd0
jmp 0xf538
movl $0x1, %edi
leaq -0x880(%rbp), %rsi
callq 0x9120
jmp 0xf54b
leaq -0x880(%rbp), %rdi
callq 0x11060
leaq -0x578(%rbp), %rdi
callq 0x11960
leaq -0x540(%rbp), %rdi
callq 0x11960
leaq -0x510(%rbp), %rdi
callq 0x124e0
leaq -0x4e8(%rbp), %rdi
callq 0x11360
leaq -0x4a8(%rbp), %rdi
callq 0x118d0
jmp 0xf595
jmp 0xea7c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x880(%rbp), %rdi
callq 0x11060
leaq -0x578(%rbp), %rdi
callq 0x11960
leaq -0x540(%rbp), %rdi
callq 0x11960
leaq -0x510(%rbp), %rdi
callq 0x124e0
leaq -0x4e8(%rbp), %rdi
callq 0x11360
leaq -0x4d8(%rbp), %rdi
callq 0x11910
leaq -0x4a8(%rbp), %rdi
callq 0x11910
jmp 0xf62f
leaq -0x278(%rbp), %rdi
callq 0x13540
leaq -0xe0(%rbp), %rdi
callq 0x13570
leaq -0x70(%rbp), %rdi
callq 0x135a0
leaq -0x28(%rbp), %rdi
callq 0x8578
addq $0x9c0, %rsp            # imm = 0x9C0
popq %rbp
retq
leaq -0x278(%rbp), %rdi
callq 0x13540
leaq -0xe0(%rbp), %rdi
callq 0x13570
leaq -0x70(%rbp), %rdi
callq 0x135a0
leaq -0x28(%rbp), %rdi
callq 0x8578
movq -0x38(%rbp), %rdi
callq 0x84d0
nopw %cs:(%rax,%rax)