// File: eryxcc[P]lois/src/element.cpp
// Function: lois::aggressive_simplify(std::vector<std::shared_ptr<lois::Variable>, std::allocator<std::shared_ptr<lois::Variable>>>&, lois::rbool&, std::shared_ptr<lois::Context>&, std::function<bool (std::shared_ptr<lois::Variable>)>, std::function<void (std::vector<std::pair<std::shared_ptr<lois::Variable>, lois::term>, std::allocator<std::pair<std::shared_ptr<lois::Variable>, lois::term>>> const&)>)
void aggressive_simplify(varlist& selvar, rbool& selphi, contextptr& ain, std::function<bool(vptr)> a_isused, std::function<void(const varsubstlist&)> a_alpha) {
  if(selphi.isTrue()) return;
  if(!aggressive_simplification_tries) return;

  int size1 = selphi->formulasize();
  
  simplifyWhat = selphi;
  
  rbool phi ( std::make_shared<FormulaQ> (false, rbool(simplifier), selvar) );
  
  phi = outenv(phi, false, emptycontext, ain);

  if(notForInternalSolver(phi)) return;

  simplifyWhat->clearinfo();

  // cout << "AGGRESSIVE SIMPLIFY " << phi << endl;
  
  checkid++;
  phi->initDomains();

  triesleft = aggressive_simplification_tries; 
  try { phi->verify();
  } catch(unsolvable_exception) {
    triesleft = -1;
    }

  if(triesleft <= 0) {
    std::cout << "simplification failed for rbool of size " << size1 << std::endl;
    std::cout << phi << std::endl;
    std::cout << "NFI is : " << notForInternalSolver(phi) << std::endl;
    std::cout << "features are: ";

    featurelist fl;
    phi->listFeatures(fl);
    for(auto r: fl.relations) std::cout << (r->getName()); std::cout << std::endl;

    exit(1);
    return;
    }
  
  rbool orig = selphi;
  
  selphi = simplifyWhat->qsimplify();
  // cout << "simplification result: " << sel.phi << endl;

  int size3 = selphi->formulasize();
  
  if(size1 == size3) {
    // printf("Not Simplified: %d in %d tries\n", size1, aggressive_simplification_tries-triesleft);
    // cout << "orig: " << orig << endl;
    return;
    }

  if(simplifyVerbosity >= 1) 
     printf("Simplified: %d to %d in %d tries\n", size1, size3, aggressive_simplification_tries-triesleft);

  // std::cout << "FROM: " << phi << std::endl << "TO: " << selphi << std::endl;
  
  varlist var2;
  swap(var2, selvar);
  
  for(auto w: var2) 
    if(selphi->uses(w) || a_isused(w)) {
      term w1 = selphi->valueKnown(w, false);
      if(w1.p) {
        varsubstlist l = { make_pair(w, w1) };
        selphi = substitute(selphi,l);
        a_alpha(l);
        }
      else selvar.push_back(w);
      }
    
  aggressive_simplify(selvar, selphi, ain, a_isused, a_alpha);
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x4a0, %rsp            # imm = 0x4A0
movq %rcx, -0x320(%rbp)
movq %r8, -0x318(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq -0x10(%rbp), %rdi
callq 0x29750
testb $0x1, %al
jne 0x6f79c
jmp 0x6f7a1
jmp 0x704eb
cmpl $0x0, 0x364a8(%rip)     # 0xa5c50
jne 0x6f7af
jmp 0x704eb
movq -0x10(%rbp), %rdi
callq 0x3ece0
movq %rax, %rdi
movq (%rdi), %rax
movq 0x50(%rax), %rax
callq *%rax
movl %eax, -0x2c(%rbp)
movq -0x10(%rbp), %rsi
leaq 0x3645e(%rip), %rdi     # 0xa5c30
callq 0x3ef00
movb $0x0, -0x61(%rbp)
leaq 0x3645e(%rip), %rsi     # 0xa5c40
leaq -0x88(%rbp), %rdi
movq %rdi, -0x328(%rbp)
callq 0x70640
movq -0x328(%rbp), %rsi
leaq -0x78(%rbp), %rdi
callq 0x449f0
jmp 0x6f807
movq -0x8(%rbp), %rcx
leaq -0x60(%rbp), %rdi
leaq -0x61(%rbp), %rsi
leaq -0x78(%rbp), %rdx
callq 0x471d0
jmp 0x6f81e
leaq -0x50(%rbp), %rdi
movq %rdi, -0x330(%rbp)
leaq -0x60(%rbp), %rsi
callq 0x47250
movq -0x330(%rbp), %rsi
leaq -0x40(%rbp), %rdi
callq 0x449f0
jmp 0x6f844
leaq -0x50(%rbp), %rdi
callq 0x14ad0
leaq -0x60(%rbp), %rdi
callq 0x3ed40
leaq -0x78(%rbp), %rdi
callq 0x11060
leaq -0x88(%rbp), %rdi
callq 0x14ad0
leaq -0xb8(%rbp), %rdi
movq %rdi, -0x348(%rbp)
leaq -0x40(%rbp), %rsi
callq 0x11030
leaq 0x35f57(%rip), %rsi     # 0xa57e0
leaq -0xc8(%rbp), %rdi
movq %rdi, -0x340(%rbp)
callq 0x173b0
movq -0x18(%rbp), %rsi
leaq -0xd8(%rbp), %rdi
movq %rdi, -0x338(%rbp)
callq 0x173b0
movq -0x348(%rbp), %rsi
movq -0x340(%rbp), %rcx
movq -0x338(%rbp), %r8
leaq -0xa8(%rbp), %rdi
xorl %edx, %edx
callq 0x3e180
jmp 0x6f8d8
leaq -0x40(%rbp), %rdi
movq %rdi, -0x360(%rbp)
leaq -0xa8(%rbp), %rsi
movq %rsi, -0x368(%rbp)
callq 0x11290
movq -0x368(%rbp), %rdi
callq 0x11060
leaq -0xd8(%rbp), %rdi
callq 0x14b20
leaq -0xc8(%rbp), %rdi
callq 0x14b20
leaq -0xb8(%rbp), %rdi
callq 0x11060
movq -0x360(%rbp), %rsi
leaq -0xe8(%rbp), %rdi
movq %rdi, -0x358(%rbp)
callq 0x11030
movq -0x358(%rbp), %rdi
callq 0x5a6e0
movb %al, -0x349(%rbp)
jmp 0x6f954
leaq -0xe8(%rbp), %rdi
callq 0x11060
movb -0x349(%rbp), %al
testb $0x1, %al
jne 0x6f96f
jmp 0x6fa42
movl $0x1, -0xec(%rbp)
jmp 0x704e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x6f9d3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x6f9ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x14ad0
leaq -0x60(%rbp), %rdi
callq 0x3ed40
leaq -0x78(%rbp), %rdi
callq 0x11060
leaq -0x88(%rbp), %rdi
callq 0x14ad0
jmp 0x70567
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x14b20
leaq -0xc8(%rbp), %rdi
callq 0x14b20
leaq -0xb8(%rbp), %rdi
callq 0x11060
jmp 0x7055e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0x11060
jmp 0x7055e
leaq 0x361e7(%rip), %rdi     # 0xa5c30
callq 0x3ece0
movq %rax, -0x370(%rbp)
jmp 0x6fa57
movq -0x370(%rbp), %rdi
movq (%rdi), %rax
movq 0x48(%rax), %rax
callq *%rax
jmp 0x6fa69
leaq 0x35db8(%rip), %rax     # 0xa5828
movl (%rax), %ecx
incl %ecx
movl %ecx, (%rax)
leaq -0x40(%rbp), %rdi
callq 0x3ece0
movq %rax, -0x378(%rbp)
jmp 0x6fa88
movq -0x378(%rbp), %rdi
movq (%rdi), %rax
movq 0x38(%rax), %rax
callq *%rax
jmp 0x6fa9a
movl 0x361b0(%rip), %ecx     # 0xa5c50
leaq 0x35d79(%rip), %rax     # 0xa5820
movl %ecx, (%rax)
leaq -0x40(%rbp), %rdi
callq 0x3ece0
movq %rax, -0x380(%rbp)
jmp 0x6fabb
movq -0x380(%rbp), %rdi
movq (%rdi), %rax
movq 0x20(%rax), %rax
callq *%rax
jmp 0x6facd
jmp 0x6fb65
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x7055e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
movl -0x94(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x7055e
movq -0x90(%rbp), %rdi
movq %rdi, -0x390(%rbp)
callq 0x83b0
movq %rax, %rsi
leaq -0xf8(%rbp), %rdi
movq %rdi, -0x388(%rbp)
callq 0x60080
movq -0x390(%rbp), %rdi
callq 0x8120
movq -0x388(%rbp), %rdi
leaq 0x35ccf(%rip), %rax     # 0xa5820
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
callq 0x3ee80
callq 0x8490
jmp 0x6fb63
jmp 0x6fb65
leaq 0x35cb4(%rip), %rax     # 0xa5820
cmpl $0x0, (%rax)
jg 0x6fe43
movq 0x3545c(%rip), %rdi     # 0xa4fd8
leaq 0x4766(%rip), %rsi      # 0x742e9
callq 0x82b0
movq %rax, -0x398(%rbp)
jmp 0x6fb91
movq -0x398(%rbp), %rdi
movl -0x2c(%rbp), %esi
callq 0x84c0
movq %rax, -0x3a0(%rbp)
jmp 0x6fba9
movq -0x3a0(%rbp), %rdi
movq 0x353f9(%rip), %rsi     # 0xa4fb0
callq 0x8300
jmp 0x6fbbe
leaq -0x108(%rbp), %rdi
movq %rdi, -0x3b0(%rbp)
leaq -0x40(%rbp), %rsi
callq 0x11030
movq -0x3b0(%rbp), %rsi
movq 0x353f5(%rip), %rdi     # 0xa4fd8
callq 0x40060
movq %rax, -0x3a8(%rbp)
jmp 0x6fbf1
movq -0x3a8(%rbp), %rdi
movq 0x353b1(%rip), %rsi     # 0xa4fb0
callq 0x8300
jmp 0x6fc06
leaq -0x108(%rbp), %rdi
callq 0x11060
movq 0x353bf(%rip), %rdi     # 0xa4fd8
leaq 0x46f2(%rip), %rsi      # 0x74312
callq 0x82b0
movq %rax, -0x3b8(%rbp)
jmp 0x6fc2e
leaq -0x118(%rbp), %rdi
movq %rdi, -0x3c8(%rbp)
leaq -0x40(%rbp), %rsi
callq 0x11030
movq -0x3c8(%rbp), %rdi
callq 0x5a6e0
movb %al, -0x3b9(%rbp)
jmp 0x6fc59
movq -0x3b8(%rbp), %rdi
movb -0x3b9(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
callq 0x84f0
movq %rax, -0x3d0(%rbp)
jmp 0x6fc7a
movq -0x3d0(%rbp), %rdi
movq 0x35328(%rip), %rsi     # 0xa4fb0
callq 0x8300
jmp 0x6fc8f
leaq -0x118(%rbp), %rdi
callq 0x11060
movq 0x35336(%rip), %rdi     # 0xa4fd8
leaq 0x4673(%rip), %rsi      # 0x7431c
callq 0x82b0
jmp 0x6fcb0
leaq -0x178(%rbp), %rdi
callq 0x5b6c0
leaq -0x40(%rbp), %rdi
callq 0x3ece0
movq %rax, -0x3d8(%rbp)
jmp 0x6fcce
movq -0x3d8(%rbp), %rdi
movq (%rdi), %rax
movq 0x40(%rax), %rax
leaq -0x178(%rbp), %rsi
callq *%rax
jmp 0x6fce7
leaq -0x178(%rbp), %rax
addq $0x30, %rax
movq %rax, -0x180(%rbp)
movq -0x180(%rbp), %rdi
callq 0x5b6f0
movq %rax, -0x188(%rbp)
movq -0x180(%rbp), %rdi
callq 0x5b720
movq %rax, -0x190(%rbp)
leaq -0x188(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x5b750
testb $0x1, %al
jne 0x6fd3b
jmp 0x6fe13
leaq -0x188(%rbp), %rdi
callq 0x5b780
movq (%rax), %rax
movq %rax, -0x198(%rbp)
movq -0x198(%rbp), %rsi
movq (%rsi), %rax
movq 0x38(%rax), %rax
leaq -0x1b8(%rbp), %rdi
callq *%rax
jmp 0x6fd6a
movq 0x35267(%rip), %rdi     # 0xa4fd8
leaq -0x1b8(%rbp), %rsi
callq 0x8280
jmp 0x6fd7f
leaq -0x1b8(%rbp), %rdi
callq 0x8578
leaq -0x188(%rbp), %rdi
callq 0x5b7b0
jmp 0x6fd1f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x108(%rbp), %rdi
callq 0x11060
jmp 0x7055e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x11060
jmp 0x7055e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x6fe32
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x1b8(%rbp), %rdi
callq 0x8578
jmp 0x6fe32
movq 0x351be(%rip), %rdi     # 0xa4fd8
movq 0x3518f(%rip), %rsi     # 0xa4fb0
callq 0x8300
jmp 0x6fe28
movl $0x1, %edi
callq 0x8390
leaq -0x178(%rbp), %rdi
callq 0x5b7e0
jmp 0x7055e
movq -0x10(%rbp), %rsi
leaq -0x1c8(%rbp), %rdi
callq 0x11030
leaq 0x35dd6(%rip), %rdi     # 0xa5c30
callq 0x3ece0
movq %rax, -0x3e0(%rbp)
jmp 0x6fe68
movq -0x3e0(%rbp), %rsi
leaq -0x1d8(%rbp), %rdi
callq 0x47730
jmp 0x6fe7d
movq -0x10(%rbp), %rdi
leaq -0x1d8(%rbp), %rsi
movq %rsi, -0x3f0(%rbp)
callq 0x11290
movq -0x3f0(%rbp), %rdi
callq 0x11060
movq -0x10(%rbp), %rdi
callq 0x3ece0
movq %rax, -0x3e8(%rbp)
jmp 0x6feb2
movq -0x3e8(%rbp), %rdi
movq (%rdi), %rax
movq 0x50(%rax), %rax
callq *%rax
movl %eax, -0x3f4(%rbp)
jmp 0x6feca
movl -0x3f4(%rbp), %eax
movl %eax, -0x1dc(%rbp)
movl -0x2c(%rbp), %eax
cmpl -0x1dc(%rbp), %eax
jne 0x6ff07
movl $0x1, -0xec(%rbp)
jmp 0x704d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x70552
cmpl $0x1, 0x35d46(%rip)     # 0xa5c54
jl 0x6ff3c
movl -0x2c(%rbp), %esi
movl -0x1dc(%rbp), %edx
movl 0x35d31(%rip), %ecx     # 0xa5c50
leaq 0x358fa(%rip), %rax     # 0xa5820
movl (%rax), %eax
subl %eax, %ecx
leaq 0x43fa(%rip), %rdi      # 0x7432b
xorl %eax, %eax
callq 0x8050
jmp 0x6ff3a
jmp 0x6ff3c
leaq -0x1f8(%rbp), %rdi
callq 0x1af40
movq -0x8(%rbp), %rsi
leaq -0x1f8(%rbp), %rdi
callq 0x70670
leaq -0x1f8(%rbp), %rax
movq %rax, -0x200(%rbp)
movq -0x200(%rbp), %rdi
callq 0x1b040
movq %rax, -0x208(%rbp)
movq -0x200(%rbp), %rdi
callq 0x1b070
movq %rax, -0x210(%rbp)
leaq -0x208(%rbp), %rdi
leaq -0x210(%rbp), %rsi
callq 0x1b0a0
testb $0x1, %al
jne 0x6ffa8
jmp 0x70433
leaq -0x208(%rbp), %rdi
callq 0x1b0e0
movq %rax, %rsi
leaq -0x220(%rbp), %rdi
callq 0x1b100
movq -0x10(%rbp), %rdi
movb $0x0, -0x241(%rbp)
callq 0x3ece0
movq %rax, -0x400(%rbp)
jmp 0x6ffdc
leaq -0x230(%rbp), %rdi
movq %rdi, -0x410(%rbp)
leaq -0x220(%rbp), %rsi
callq 0x1b100
movq -0x400(%rbp), %rdi
movq -0x410(%rbp), %rsi
movq (%rdi), %rax
movq 0x28(%rax), %rax
callq *%rax
movb %al, -0x401(%rbp)
jmp 0x70015
movb -0x401(%rbp), %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x411(%rbp)
jne 0x70074
jmp 0x7002a
leaq -0x240(%rbp), %rdi
movq %rdi, -0x420(%rbp)
leaq -0x220(%rbp), %rsi
callq 0x1b100
movq -0x320(%rbp), %rdi
movq -0x420(%rbp), %rsi
movb $0x1, -0x241(%rbp)
callq 0x706a0
movb %al, -0x412(%rbp)
jmp 0x70066
movb -0x412(%rbp), %al
movb %al, -0x411(%rbp)
jmp 0x70074
movb -0x411(%rbp), %al
movb %al, -0x421(%rbp)
testb $0x1, -0x241(%rbp)
jne 0x7008b
jmp 0x70097
leaq -0x240(%rbp), %rdi
callq 0x10f20
leaq -0x230(%rbp), %rdi
callq 0x10f20
movb -0x421(%rbp), %al
testb $0x1, %al
jne 0x700b2
jmp 0x70405
movq -0x10(%rbp), %rdi
callq 0x3ece0
movq %rax, -0x430(%rbp)
jmp 0x700c4
leaq -0x268(%rbp), %rdi
movq %rdi, -0x438(%rbp)
leaq -0x220(%rbp), %rsi
callq 0x1b100
movq -0x430(%rbp), %rsi
movq -0x438(%rbp), %rdx
movq (%rsi), %rax
movq 0x30(%rax), %rax
leaq -0x258(%rbp), %rdi
xorl %ecx, %ecx
callq *%rax
jmp 0x70100
leaq -0x268(%rbp), %rdi
callq 0x10f20
leaq -0x258(%rbp), %rdi
callq 0x14bb0
testb $0x1, %al
jne 0x70121
jmp 0x703c1
leaq -0x2b0(%rbp), %rdi
movq %rdi, -0x2b8(%rbp)
leaq -0x220(%rbp), %rsi
leaq -0x258(%rbp), %rdx
callq 0x1b8d0
jmp 0x70144
leaq -0x2b0(%rbp), %rax
movq %rax, -0x290(%rbp)
movq $0x1, -0x288(%rbp)
leaq -0x2b9(%rbp), %rdi
movq %rdi, -0x440(%rbp)
callq 0x1b910
movq -0x440(%rbp), %rcx
movq -0x290(%rbp), %rsi
movq -0x288(%rbp), %rdx
leaq -0x280(%rbp), %rdi
callq 0x706f0
jmp 0x70193
leaq -0x2b9(%rbp), %rdi
callq 0x1b9b0
leaq -0x2b0(%rbp), %rax
movq %rax, -0x450(%rbp)
addq $0x20, %rax
movq %rax, -0x448(%rbp)
movq -0x448(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x458(%rbp)
callq 0x1b9d0
movq -0x450(%rbp), %rcx
movq -0x458(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x448(%rbp)
jne 0x701b8
movq -0x10(%rbp), %rsi
leaq -0x2d0(%rbp), %rdi
leaq -0x280(%rbp), %rdx
callq 0x44840
jmp 0x70202
movq -0x10(%rbp), %rdi
leaq -0x2d0(%rbp), %rsi
movq %rsi, -0x460(%rbp)
callq 0x11290
movq -0x460(%rbp), %rdi
callq 0x11060
movq -0x318(%rbp), %rdi
leaq -0x280(%rbp), %rsi
callq 0x70770
jmp 0x7023a
leaq -0x280(%rbp), %rdi
callq 0x1ba00
jmp 0x703e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x70422
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x702a1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
testb $0x1, -0x241(%rbp)
jne 0x70293
jmp 0x7029f
leaq -0x240(%rbp), %rdi
callq 0x10f20
jmp 0x702a1
leaq -0x230(%rbp), %rdi
callq 0x10f20
jmp 0x70422
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x268(%rbp), %rdi
callq 0x10f20
jmp 0x70422
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
movq -0x2b8(%rbp), %rax
leaq -0x2b0(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x468(%rbp)
je 0x70332
movq -0x468(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x470(%rbp)
callq 0x1b9d0
movq -0x470(%rbp), %rax
leaq -0x2b0(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x468(%rbp)
jne 0x70301
jmp 0x703f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x2b9(%rbp), %rdi
callq 0x1b9b0
leaq -0x2b0(%rbp), %rax
movq %rax, -0x480(%rbp)
addq $0x20, %rax
movq %rax, -0x478(%rbp)
movq -0x478(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x488(%rbp)
callq 0x1b9d0
movq -0x480(%rbp), %rcx
movq -0x488(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x478(%rbp)
jne 0x7036e
jmp 0x703f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x280(%rbp), %rdi
callq 0x1ba00
jmp 0x703f7
movq -0x8(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0x1b320
jmp 0x703d3
jmp 0x703e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x703f7
leaq -0x258(%rbp), %rdi
callq 0x11360
jmp 0x70405
leaq -0x258(%rbp), %rdi
callq 0x11360
jmp 0x70422
leaq -0x220(%rbp), %rdi
callq 0x10f20
leaq -0x208(%rbp), %rdi
callq 0x1b390
jmp 0x6ff8c
leaq -0x220(%rbp), %rdi
callq 0x10f20
jmp 0x70546
movq -0x320(%rbp), %rsi
movq -0x8(%rbp), %rax
movq %rax, -0x4a0(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x498(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x490(%rbp)
leaq -0x2f0(%rbp), %rdi
callq 0x707b0
jmp 0x70469
movq -0x318(%rbp), %rsi
leaq -0x310(%rbp), %rdi
callq 0x70860
jmp 0x7047e
movq -0x490(%rbp), %rdx
movq -0x498(%rbp), %rsi
movq -0x4a0(%rbp), %rdi
leaq -0x2f0(%rbp), %rcx
leaq -0x310(%rbp), %r8
callq 0x6f760
jmp 0x704a8
leaq -0x310(%rbp), %rdi
callq 0x1d100
leaq -0x2f0(%rbp), %rdi
callq 0x1d120
leaq -0x1f8(%rbp), %rdi
callq 0x1b4c0
movl $0x0, -0xec(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x11060
leaq -0x40(%rbp), %rdi
callq 0x11060
addq $0x4a0, %rsp            # imm = 0x4A0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x70546
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x7053a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x310(%rbp), %rdi
callq 0x1d100
leaq -0x2f0(%rbp), %rdi
callq 0x1d120
leaq -0x1f8(%rbp), %rdi
callq 0x1b4c0
leaq -0x1c8(%rbp), %rdi
callq 0x11060
leaq -0x40(%rbp), %rdi
callq 0x11060
movq -0x90(%rbp), %rdi
callq 0x84d0
nopw %cs:(%rax,%rax)
nopl (%rax)