// File: eryxcc[P]lois/tests/mintest.cpp
// Function: void minimalize2<lois::elem, lois::term>(lois::lsetof<lois::elem>, lois::lsetof<lois::elem>, lois::lsetof<lois::transition<lois::elem, lois::term>>, lois::lsetof<lois::term>)
void minimalize2(lsetof<State> Q, lsetof<State> F, lsetof<transition<State,Symbol>> delta, lsetof<Symbol> alph) {
  cout << "Q = " << Q << endl;
  cout << "F = " << F << endl;
  cout << "delta = " << delta << endl;
  
  lsetof<lsetof<State>> classes;
  classes += F;
  classes += Q &~ F;
  
  int it = 0;
  
  lbool cont = true;
  
  While(cont) {
    lsetof<lsetof<State>> nclasses;
    cout << "classes = " << classes << endl << endl;
    cont = ffalse;
    
    for(auto& EC: classes) {
      for(State& q1: EC) {
        lset EC1;
        for(State& q2: EC) {
          lbool b = true;
          for(auto& t1: delta) for(auto& t2: delta) 
            If(t1.src == q1 && t2.src == q2 && t1.symbol == t2.symbol)
            If(EXISTS(c, classes, memberof(t1.tgt, c) && !memberof(t2.tgt, c)))
              b &= ffalse;
          Ife(b) EC1 += q2;
          else cont = ftrue;
          }
        nclasses += EC1;
        }
      }

    classes = optimize(nclasses); it++;
    }

  cout << "number of iterations: " << it << endl << endl;
  
  cout << "classes: " << classes << endl;  
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x7a0, %rsp            # imm = 0x7A0
movq %rdi, -0x6e8(%rbp)
movq %rsi, -0x6c0(%rbp)
movq %rdx, -0x6d8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq 0x9f771(%rip), %rdi     # 0xadfd8
movq %rdi, -0x6e0(%rbp)
leaq 0x68a95(%rip), %rsi     # 0x7730a
callq 0x82b0
movq -0x6e8(%rbp), %rsi
movq %rax, %rdi
callq 0x2a230
movq %rax, %rdi
movq 0x9f71d(%rip), %rsi     # 0xadfb0
movq %rsi, -0x6d0(%rbp)
callq 0x8300
movq -0x6e0(%rbp), %rdi
leaq 0x68a6c(%rip), %rsi     # 0x77319
callq 0x82b0
movq -0x6c0(%rbp), %rsi
movq %rax, %rdi
callq 0x2a230
movq -0x6d0(%rbp), %rsi
movq %rax, %rdi
callq 0x8300
movq -0x6e0(%rbp), %rdi
leaq 0x68a31(%rip), %rsi     # 0x7730f
callq 0x82b0
movq -0x6d8(%rbp), %rsi
movq %rax, %rdi
callq 0x2a260
movq -0x6d0(%rbp), %rsi
movq %rax, %rdi
callq 0x8300
leaq -0x48(%rbp), %rdi
movq %rdi, -0x6c8(%rbp)
callq 0x2b690
movq -0x6c8(%rbp), %rdi
movq -0x6c0(%rbp), %rsi
callq 0x2b6d0
jmp 0xe926
movq -0x6c0(%rbp), %rsi
leaq -0xa8(%rbp), %rdi
callq 0x2a5b0
jmp 0xe93b
movq -0x6e8(%rbp), %rsi
leaq -0x80(%rbp), %rdi
leaq -0xa8(%rbp), %rdx
callq 0x2a290
jmp 0xe954
leaq -0x48(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x2b6d0
jmp 0xe963
leaq -0x80(%rbp), %rdi
callq 0xe800
leaq -0xa8(%rbp), %rdi
callq 0x2a620
movl $0x0, -0xac(%rbp)
leaq -0xd0(%rbp), %rdi
movl $0x1, %esi
callq 0x2ac10
jmp 0xe995
leaq 0x9fa4c(%rip), %rdi     # 0xae3e8
movq %rdi, -0xd8(%rbp)
callq 0x434c0
movb %al, -0x6e9(%rbp)
jmp 0xe9b0
movb -0x6e9(%rbp), %al
movb %al, -0xd9(%rbp)
leaq 0x9fa25(%rip), %rdi     # 0xae3e8
callq 0x434f0
movb %al, -0x6ea(%rbp)
jmp 0xe9d0
movb -0x6ea(%rbp), %al
movb %al, -0xda(%rbp)
leaq -0xd9(%rbp), %rdi
leaq -0xda(%rbp), %rsi
callq 0x2ac80
testb $0x1, %al
jne 0xe9f8
jmp 0xf846
leaq -0xd9(%rbp), %rdi
callq 0x2acb0
movq %rax, -0xe8(%rbp)
leaq -0x118(%rbp), %rdi
movq %rdi, -0x700(%rbp)
leaq -0xd0(%rbp), %rsi
callq 0x14830
movq -0x700(%rbp), %rsi
leaq -0x108(%rbp), %rdi
movq %rdi, -0x6f8(%rbp)
callq 0x2acc0
movq -0x700(%rbp), %rdi
callq 0xbd10
movq -0x6f8(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq -0xf0(%rbp), %rsi
leaq -0x148(%rbp), %rdi
callq 0x433e0
jmp 0xea6e
movq -0xf0(%rbp), %rsi
leaq -0x178(%rbp), %rdi
callq 0x43470
jmp 0xea83
jmp 0xea85
leaq -0x148(%rbp), %rdi
leaq -0x178(%rbp), %rsi
callq 0xbd30
testb $0x1, %al
jne 0xeb4b
movl $0x4, -0x17c(%rbp)
leaq -0x178(%rbp), %rdi
callq 0xbd90
leaq -0x148(%rbp), %rdi
callq 0xbd90
leaq -0x108(%rbp), %rdi
callq 0xbdd0
jmp 0xf833
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf922
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xeb07
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x80(%rbp), %rdi
callq 0xe800
leaq -0xa8(%rbp), %rdi
callq 0x2a620
jmp 0xf922
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf916
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf822
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf816
leaq -0x148(%rbp), %rdi
callq 0xbd60
andb $0x1, %al
movb %al, -0x17d(%rbp)
testb $0x1, -0x17d(%rbp)
je 0xeb77
movq -0xe8(%rbp), %rax
movb $0x0, (%rax)
jmp 0xf7f5
leaq -0x1a8(%rbp), %rdi
callq 0x2b690
jmp 0xeb85
movq 0x9f44c(%rip), %rdi     # 0xadfd8
leaq 0x68811(%rip), %rsi     # 0x773a4
callq 0x82b0
movq %rax, -0x708(%rbp)
jmp 0xeba1
movq -0x708(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x2b7a0
movq %rax, -0x710(%rbp)
jmp 0xebba
movq -0x710(%rbp), %rdi
movq 0x9f3e8(%rip), %rsi     # 0xadfb0
callq 0x8300
movq %rax, -0x718(%rbp)
jmp 0xebd6
movq -0x718(%rbp), %rdi
movq 0x9f3cc(%rip), %rsi     # 0xadfb0
callq 0x8300
jmp 0xebeb
leaq 0x9f836(%rip), %rsi     # 0xae428
leaq -0xd0(%rbp), %rdi
callq 0x14490
jmp 0xec00
leaq -0x48(%rbp), %rax
movq %rax, -0x1b0(%rbp)
movq -0x1b0(%rbp), %rsi
leaq -0x1e0(%rbp), %rdi
callq 0x3d840
jmp 0xec20
movq -0x1b0(%rbp), %rsi
leaq -0x210(%rbp), %rdi
callq 0x3d870
jmp 0xec35
jmp 0xec37
leaq -0x1e0(%rbp), %rdi
leaq -0x210(%rbp), %rsi
callq 0x3d8a0
testb $0x1, %al
jne 0xeca8
movl $0x6, -0x17c(%rbp)
leaq -0x210(%rbp), %rdi
callq 0x3d9f0
leaq -0x1e0(%rbp), %rdi
callq 0x3d9f0
jmp 0xf77f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf80a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf7e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf771
leaq -0x1e0(%rbp), %rdi
callq 0x3d950
movq %rax, -0x218(%rbp)
movq -0x218(%rbp), %rax
movq %rax, -0x220(%rbp)
movq -0x220(%rbp), %rsi
leaq -0x250(%rbp), %rdi
callq 0x2ad70
jmp 0xecde
movq -0x220(%rbp), %rsi
leaq -0x280(%rbp), %rdi
callq 0x2ada0
jmp 0xecf3
jmp 0xecf5
leaq -0x250(%rbp), %rdi
leaq -0x280(%rbp), %rsi
callq 0x2add0
testb $0x1, %al
jne 0xed55
movl $0x8, -0x17c(%rbp)
leaq -0x280(%rbp), %rdi
callq 0x2b2d0
leaq -0x250(%rbp), %rdi
callq 0x2b2d0
jmp 0xf750
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf765
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf742
leaq -0x250(%rbp), %rdi
callq 0x2ae80
movq %rax, -0x288(%rbp)
leaq -0x2b0(%rbp), %rdi
callq 0xc050
jmp 0xed76
movq -0x218(%rbp), %rax
movq %rax, -0x2b8(%rbp)
movq -0x2b8(%rbp), %rsi
leaq -0x2e8(%rbp), %rdi
callq 0x2ad70
jmp 0xed99
movq -0x2b8(%rbp), %rsi
leaq -0x318(%rbp), %rdi
callq 0x2ada0
jmp 0xedae
jmp 0xedb0
leaq -0x2e8(%rbp), %rdi
leaq -0x318(%rbp), %rsi
callq 0x2add0
testb $0x1, %al
jne 0xee21
movl $0xa, -0x17c(%rbp)
leaq -0x318(%rbp), %rdi
callq 0x2b2d0
leaq -0x2e8(%rbp), %rdi
callq 0x2b2d0
jmp 0xf6f6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf736
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf72a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf6e8
leaq -0x2e8(%rbp), %rdi
callq 0x2ae80
movq %rax, -0x320(%rbp)
leaq -0x340(%rbp), %rdi
movl $0x1, %esi
callq 0x2ac10
jmp 0xee47
movq -0x6d8(%rbp), %rax
movq %rax, -0x348(%rbp)
movq -0x348(%rbp), %rsi
leaq -0x378(%rbp), %rdi
callq 0x2afb0
jmp 0xee6a
movq -0x348(%rbp), %rsi
leaq -0x3a8(%rbp), %rdi
callq 0x2afe0
jmp 0xee7f
jmp 0xee81
leaq -0x378(%rbp), %rdi
leaq -0x3a8(%rbp), %rsi
callq 0x2b010
testb $0x1, %al
jne 0xeef2
movl $0xc, -0x17c(%rbp)
leaq -0x3a8(%rbp), %rdi
callq 0x2b180
leaq -0x378(%rbp), %rdi
callq 0x2b180
jmp 0xf53a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf6dc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf6d0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf529
leaq -0x378(%rbp), %rdi
callq 0x2b0c0
movq %rax, %rcx
movq -0x6d8(%rbp), %rax
movq %rcx, -0x3b0(%rbp)
movq %rax, -0x3b8(%rbp)
movq -0x3b8(%rbp), %rsi
leaq -0x3e8(%rbp), %rdi
callq 0x2afb0
jmp 0xef2b
movq -0x3b8(%rbp), %rsi
leaq -0x418(%rbp), %rdi
callq 0x2afe0
jmp 0xef40
jmp 0xef42
leaq -0x3e8(%rbp), %rdi
leaq -0x418(%rbp), %rsi
callq 0x2b010
testb $0x1, %al
jne 0xefa2
movl $0xe, -0x17c(%rbp)
leaq -0x418(%rbp), %rdi
callq 0x2b180
leaq -0x3e8(%rbp), %rdi
callq 0x2b180
jmp 0xf508
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf51d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf4fa
leaq -0x3e8(%rbp), %rdi
callq 0x2b0c0
movq %rax, -0x420(%rbp)
movq -0x3b0(%rbp), %rsi
leaq -0x480(%rbp), %rdi
movq %rdi, -0x728(%rbp)
callq 0x20510
movq -0x288(%rbp), %rsi
leaq -0x490(%rbp), %rdi
movq %rdi, -0x720(%rbp)
callq 0x20510
movq -0x728(%rbp), %rsi
movq -0x720(%rbp), %rdx
leaq -0x470(%rbp), %rdi
callq 0x2b0e0
jmp 0xf005
movq -0x420(%rbp), %rsi
leaq -0x4b0(%rbp), %rdi
movq %rdi, -0x738(%rbp)
callq 0x20510
movq -0x320(%rbp), %rsi
leaq -0x4c0(%rbp), %rdi
movq %rdi, -0x730(%rbp)
callq 0x20510
movq -0x738(%rbp), %rsi
movq -0x730(%rbp), %rdx
leaq -0x4a0(%rbp), %rdi
callq 0x2b0e0
jmp 0xf055
leaq -0x460(%rbp), %rdi
leaq -0x470(%rbp), %rsi
leaq -0x4a0(%rbp), %rdx
callq 0x46a20
jmp 0xf071
movq -0x3b0(%rbp), %rsi
addq $0x10, %rsi
movq -0x420(%rbp), %rdx
addq $0x10, %rdx
leaq -0x4d0(%rbp), %rdi
callq 0x47b60
jmp 0xf095
leaq -0x450(%rbp), %rdi
leaq -0x460(%rbp), %rsi
leaq -0x4d0(%rbp), %rdx
callq 0x46a20
jmp 0xf0b1
leaq -0x440(%rbp), %rdi
movq %rdi, -0x740(%rbp)
leaq -0x450(%rbp), %rsi
movq %rsi, -0x748(%rbp)
callq 0xbca0
movq -0x748(%rbp), %rdi
callq 0xbd10
leaq -0x4d0(%rbp), %rdi
callq 0xbd10
leaq -0x460(%rbp), %rdi
callq 0xbd10
leaq -0x4a0(%rbp), %rdi
callq 0xbd10
leaq -0x4c0(%rbp), %rdi
callq 0xc3d0
leaq -0x4b0(%rbp), %rdi
callq 0xc3d0
leaq -0x470(%rbp), %rdi
callq 0xbd10
leaq -0x490(%rbp), %rdi
callq 0xc3d0
leaq -0x480(%rbp), %rdi
callq 0xc3d0
movq -0x740(%rbp), %rax
movq %rax, -0x428(%rbp)
movq -0x428(%rbp), %rsi
leaq -0x500(%rbp), %rdi
callq 0x433e0
jmp 0xf161
movq -0x428(%rbp), %rsi
leaq -0x530(%rbp), %rdi
callq 0x43470
jmp 0xf176
jmp 0xf178
leaq -0x500(%rbp), %rdi
leaq -0x530(%rbp), %rsi
callq 0xbd30
testb $0x1, %al
jne 0xf291
movl $0x10, -0x17c(%rbp)
leaq -0x530(%rbp), %rdi
callq 0xbd90
leaq -0x500(%rbp), %rdi
callq 0xbd90
leaq -0x440(%rbp), %rdi
callq 0xbdd0
jmp 0xf4cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf252
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf22e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf222
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf216
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x4d0(%rbp), %rdi
callq 0xbd10
leaq -0x460(%rbp), %rdi
callq 0xbd10
leaq -0x4a0(%rbp), %rdi
callq 0xbd10
leaq -0x4c0(%rbp), %rdi
callq 0xc3d0
leaq -0x4b0(%rbp), %rdi
callq 0xc3d0
leaq -0x470(%rbp), %rdi
callq 0xbd10
leaq -0x490(%rbp), %rdi
callq 0xc3d0
leaq -0x480(%rbp), %rdi
callq 0xc3d0
jmp 0xf4ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf4bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf4b3
leaq -0x500(%rbp), %rdi
callq 0xbd60
andb $0x1, %al
movb %al, -0x531(%rbp)
testb $0x1, -0x531(%rbp)
jne 0xf2b3
jmp 0xf492
leaq -0x48(%rbp), %rax
movq %rax, -0x580(%rbp)
movq -0x3b0(%rbp), %rax
movq %rax, -0x578(%rbp)
movq -0x420(%rbp), %rax
movq %rax, -0x570(%rbp)
leaq -0x568(%rbp), %rdi
leaq -0x580(%rbp), %rsi
callq 0x423e0
jmp 0xf2ef
leaq -0x558(%rbp), %rdi
movq %rdi, -0x750(%rbp)
leaq -0x568(%rbp), %rsi
movq %rsi, -0x758(%rbp)
callq 0xbca0
movq -0x758(%rbp), %rdi
callq 0xbd10
movq -0x750(%rbp), %rax
movq %rax, -0x540(%rbp)
movq -0x540(%rbp), %rsi
leaq -0x5b0(%rbp), %rdi
callq 0x433e0
jmp 0xf33f
movq -0x540(%rbp), %rsi
leaq -0x5e0(%rbp), %rdi
callq 0x43470
jmp 0xf354
jmp 0xf356
leaq -0x5b0(%rbp), %rdi
leaq -0x5e0(%rbp), %rsi
callq 0xbd30
testb $0x1, %al
jne 0xf3d3
movl $0x12, -0x17c(%rbp)
leaq -0x5e0(%rbp), %rdi
callq 0xbd90
leaq -0x5b0(%rbp), %rdi
callq 0xbd90
leaq -0x558(%rbp), %rdi
callq 0xbdd0
jmp 0xf490
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf4a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf482
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf476
leaq -0x5b0(%rbp), %rdi
callq 0xbd60
andb $0x1, %al
movb %al, -0x5e1(%rbp)
testb $0x1, -0x5e1(%rbp)
jne 0xf3f2
jmp 0xf449
leaq 0x9f02f(%rip), %rsi     # 0xae428
leaq -0x5f8(%rbp), %rdi
movq %rdi, -0x760(%rbp)
callq 0xbce0
movq -0x760(%rbp), %rsi
leaq -0x340(%rbp), %rdi
callq 0x14890
jmp 0xf421
leaq -0x5f8(%rbp), %rdi
callq 0xbd10
jmp 0xf449
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x5f8(%rbp), %rdi
callq 0xbd10
jmp 0xf46a
jmp 0xf44b
leaq -0x5b0(%rbp), %rdi
callq 0x43390
jmp 0xf459
jmp 0xf356
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x5e0(%rbp), %rdi
callq 0xbd90
leaq -0x5b0(%rbp), %rdi
callq 0xbd90
leaq -0x558(%rbp), %rdi
callq 0xbdd0
jmp 0xf4a7
jmp 0xf492
jmp 0xf494
leaq -0x500(%rbp), %rdi
callq 0x43390
jmp 0xf4a2
jmp 0xf178
leaq -0x530(%rbp), %rdi
callq 0xbd90
leaq -0x500(%rbp), %rdi
callq 0xbd90
leaq -0x440(%rbp), %rdi
callq 0xbdd0
jmp 0xf4ee
jmp 0xf4cf
leaq -0x3e8(%rbp), %rdi
callq 0x2b140
jmp 0xf4dd
jmp 0xef42
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x418(%rbp), %rdi
callq 0x2b180
leaq -0x3e8(%rbp), %rdi
callq 0x2b180
jmp 0xf51d
jmp 0xf50a
leaq -0x378(%rbp), %rdi
callq 0x2b140
jmp 0xf518
jmp 0xee81
leaq -0x3a8(%rbp), %rdi
callq 0x2b180
leaq -0x378(%rbp), %rdi
callq 0x2b180
jmp 0xf6d0
leaq -0x628(%rbp), %rdi
movq %rdi, -0x770(%rbp)
leaq -0x340(%rbp), %rsi
callq 0x14830
movq -0x770(%rbp), %rsi
leaq -0x618(%rbp), %rdi
movq %rdi, -0x768(%rbp)
callq 0x2e390
movq -0x770(%rbp), %rdi
callq 0xbd10
movq -0x768(%rbp), %rax
movq %rax, -0x600(%rbp)
movq -0x600(%rbp), %rsi
leaq -0x658(%rbp), %rdi
callq 0x433e0
jmp 0xf59d
movq -0x600(%rbp), %rsi
leaq -0x688(%rbp), %rdi
callq 0x43470
jmp 0xf5b2
jmp 0xf5b4
leaq -0x658(%rbp), %rdi
leaq -0x688(%rbp), %rsi
callq 0xbd30
testb $0x1, %al
jne 0xf61d
movl $0x14, -0x17c(%rbp)
leaq -0x688(%rbp), %rdi
callq 0xbd90
leaq -0x658(%rbp), %rdi
callq 0xbd90
leaq -0x618(%rbp), %rdi
callq 0xbdd0
jmp 0xf6b1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf6a3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xf697
leaq -0x658(%rbp), %rdi
callq 0xbd60
andb $0x1, %al
movb %al, -0x689(%rbp)
testb $0x1, -0x689(%rbp)
je 0xf66b
movq -0x320(%rbp), %rsi
leaq -0x2b0(%rbp), %rdi
callq 0xc310
jmp 0xf64f
jmp 0xf682
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x688(%rbp), %rdi
callq 0xbd90
jmp 0xf697
leaq 0x9eda6(%rip), %rsi     # 0xae418
leaq -0xd0(%rbp), %rdi
callq 0x14490
jmp 0xf680
jmp 0xf682
jmp 0xf684
leaq -0x658(%rbp), %rdi
callq 0x43390
jmp 0xf692
jmp 0xf5b4
leaq -0x658(%rbp), %rdi
callq 0xbd90
leaq -0x618(%rbp), %rdi
callq 0xbdd0
jmp 0xf6d0
leaq -0x340(%rbp), %rdi
callq 0x149f0
leaq -0x2e8(%rbp), %rdi
callq 0x2b290
jmp 0xf6cb
jmp 0xedb0
leaq -0x340(%rbp), %rdi
callq 0x149f0
leaq -0x318(%rbp), %rdi
callq 0x2b2d0
leaq -0x2e8(%rbp), %rdi
callq 0x2b2d0
jmp 0xf72a
leaq -0x1a8(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
callq 0x2b6d0
jmp 0xf70b
leaq -0x2b0(%rbp), %rdi
callq 0xe800
leaq -0x250(%rbp), %rdi
callq 0x2b290
jmp 0xf725
jmp 0xecf5
leaq -0x2b0(%rbp), %rdi
callq 0xe800
leaq -0x280(%rbp), %rdi
callq 0x2b2d0
leaq -0x250(%rbp), %rdi
callq 0x2b2d0
jmp 0xf765
jmp 0xf752
leaq -0x1e0(%rbp), %rdi
callq 0x3d9b0
jmp 0xf760
jmp 0xec37
leaq -0x210(%rbp), %rdi
callq 0x3d9f0
leaq -0x1e0(%rbp), %rdi
callq 0x3d9f0
jmp 0xf7e7
leaq -0x6b8(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x2b7d0
jmp 0xf794
leaq -0x48(%rbp), %rdi
leaq -0x6b8(%rbp), %rsi
callq 0x2bae0
jmp 0xf7a6
leaq -0x6b8(%rbp), %rdi
callq 0x2bd90
movl -0xac(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xac(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x2bd90
jmp 0xf7f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x6b8(%rbp), %rdi
callq 0x2bd90
leaq -0x1a8(%rbp), %rdi
callq 0x2bd90
jmp 0xf80a
jmp 0xf7f7
leaq -0x148(%rbp), %rdi
callq 0x43390
jmp 0xf805
jmp 0xea85
leaq -0x178(%rbp), %rdi
callq 0xbd90
leaq -0x148(%rbp), %rdi
callq 0xbd90
leaq -0x108(%rbp), %rdi
callq 0xbdd0
jmp 0xf916
jmp 0xf835
leaq -0xd9(%rbp), %rdi
callq 0x2b680
jmp 0xe9dc
movq 0x9e78b(%rip), %rdi     # 0xadfd8
leaq 0x67ad0(%rip), %rsi     # 0x77324
callq 0x82b0
movq %rax, -0x778(%rbp)
jmp 0xf862
movq -0x778(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x84c0
movq %rax, -0x780(%rbp)
jmp 0xf87d
movq -0x780(%rbp), %rdi
movq 0x9e725(%rip), %rsi     # 0xadfb0
callq 0x8300
movq %rax, -0x788(%rbp)
jmp 0xf899
movq -0x788(%rbp), %rdi
movq 0x9e709(%rip), %rsi     # 0xadfb0
callq 0x8300
jmp 0xf8ae
movq 0x9e723(%rip), %rdi     # 0xadfd8
leaq 0x67a8b(%rip), %rsi     # 0x77347
callq 0x82b0
movq %rax, -0x790(%rbp)
jmp 0xf8ca
movq -0x790(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x2b7a0
movq %rax, -0x798(%rbp)
jmp 0xf8e3
movq -0x798(%rbp), %rdi
movq 0x9e6bf(%rip), %rsi     # 0xadfb0
callq 0x8300
jmp 0xf8f8
leaq -0xd0(%rbp), %rdi
callq 0x149f0
leaq -0x48(%rbp), %rdi
callq 0x2bd90
addq $0x7a0, %rsp            # imm = 0x7A0
popq %rbp
retq
leaq -0xd0(%rbp), %rdi
callq 0x149f0
leaq -0x48(%rbp), %rdi
callq 0x2bd90
movq -0x50(%rbp), %rdi
callq 0x84d0
nopw %cs:(%rax,%rax)
nop