// File: /workspace/github_cpp_makefile_star2_O2/alexwarth[P]nothing/main.cpp
// Function: init(int)
void init(int _debug) {
  debug   = _debug;
  OTSize  = 0;
  sp      = Int(0);
  ip      = Int(-1);
  growOT();
  nil     = mk(0);   // allocate nil before any other objects so it gets to be 0
  globals = cons(nil, nil);
  stack    = addGlobal(mk(sizeof(contextSlots) + 1024));
  internedStringsRef = addGlobal(ref(nil));
  chars = addGlobal(mk(256));

  // "objectify" primNames (they were C strings up to this point)
  for (int p = 0; p < numPrims; p++)
    primNames[p] = (void *)_p1(StrIntern, stringify((const char *)primNames[p]));
  
  sIntern       = _p1(StrIntern, stringify("intern"));
  sIdentityHash = _p1(StrIntern, stringify("identityHash"));
  sPrint        = _p1(StrIntern, stringify("print"));
  sPrintln      = _p1(StrIntern, stringify("println"));
  sAdd          = _p1(StrIntern, stringify("+"));
  sSub          = _p1(StrIntern, stringify("-"));
  sMul          = _p1(StrIntern, stringify("*"));

  Obj = _p3(MkClass, _p1(StrIntern, stringify("Obj")), nil, nil);
    installPrimAsMethod(Obj, sIdentityHash, ObjIdentityHash); 
    installPrimAsMethod(Obj, sPrint,        ObjPrint       );
    installPrimAsMethod(Obj, sPrintln,      ObjPrintln     );
    for (int idx = 0; idx < OTSize; idx++) {
      if (IntValue(OT[idx].numSlots) < 0)
        continue;
      OT[idx].cls = Obj;
    }
  value_t classSlotNames = _p1(Push, mk(7));
    slotAtPut(classSlotNames, Int(0), _p1(StrIntern, stringify("name"      )));
    slotAtPut(classSlotNames, Int(1), _p1(StrIntern, stringify("slotNames" )));
    slotAtPut(classSlotNames, Int(2), _p1(StrIntern, stringify("numSlots"  )));
    slotAtPut(classSlotNames, Int(3), _p1(StrIntern, stringify("vTableSize")));
    slotAtPut(classSlotNames, Int(4), _p1(StrIntern, stringify("sels"      )));
    slotAtPut(classSlotNames, Int(5), _p1(StrIntern, stringify("impls"     )));
    slotAtPut(classSlotNames, Int(6), _p1(StrIntern, stringify("super     ")));
    assert(numSlots(classSlotNames) == Int(sizeof(classSlots) / sizeof(value_t))); // sanity check
  Class = addGlobal(_p2(MkObj, Obj, Int(7)));
    _p4(ClassInit, Class, _p1(StrIntern, stringify("Class")), Obj, classSlotNames);
    _p(Pop); // pop classSlotNames
    classOf_(Class, Class);
    classOf_(Obj,   Class);
  Int = _p3(MkClass, _p1(StrIntern, stringify("Int")), Obj, nil);
    installPrimAsMethod(Int, sPrint,        IntPrint);
    installPrimAsMethod(Int, sAdd,          IntAdd  );
    installPrimAsMethod(Int, sSub,          IntSub  );
    installPrimAsMethod(Int, sMul,          IntMul  );
  Nil = _p3(MkClass, _p1(StrIntern, stringify("Nil")), Obj, nil);
    installPrimAsMethod(Nil, sPrint, NilPrint);
    classOf_(nil, Nil);
  Str = _p3(MkClass, _p1(StrIntern, stringify("Str")), Obj, nil);
    installPrimAsMethod(Str, sIntern, StrIntern);
    installPrimAsMethod(Str, sPrint,  StrPrint);
    for (value_t curr = deref(internedStringsRef); curr != nil; curr = cdr(curr)) {
      value_t internedString = car(curr);
      OT[OopValue(internedString)].cls = Str;
    }

  fp = sp; // done at the end in the code above (intentionally) has left something on the stack
  initDone = 1;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movl %edi, 0xb590(%rip)      # 0x13540
andq $0x0, 0xb5f0(%rip)      # 0x135a8
movl $0x1, 0xb59a(%rip)      # 0x1355c
orl $-0x1, 0xb58b(%rip)     # 0x13554
callq 0x28cc
xorl %edi, %edi
callq 0x2ccd
movl %eax, %ebx
movl %eax, 0xb56b(%rip)      # 0x13548
pushq $0x2
popq %rdi
callq 0x2ccd
movl 0xb555(%rip), %esi      # 0x13540
testl %esi, %esi
sete %cl
testb $0x1, %al
sete %dl
orb %cl, %dl
je 0x8f35
movl %eax, %edx
sarl %edx
movq 0xb5a8(%rip), %rcx      # 0x135b0
movslq %edx, %rdx
testl %esi, %esi
je 0x8029
imulq $0x18, %rdx, %rsi
movl (%rcx,%rsi), %esi
testb $0x1, %sil
je 0x8fb4
cmpl $0x1, %esi
jle 0x8fbd
testb $0x1, %al
sete %dil
imulq $0x18, %rdx, %rdx
movq 0x10(%rcx,%rdx), %rsi
movl %ebx, (%rsi)
movl 0xb500(%rip), %esi      # 0x13540
testl %esi, %esi
sete %r8b
orb %dil, %r8b
je 0x8f35
testl %esi, %esi
je 0x8069
movl (%rcx,%rdx), %esi
testb $0x1, %sil
je 0x8fb4
cmpl $0x3, %esi
jle 0x8fbd
addq %rdx, %rcx
addq $0x10, %rcx
movq (%rcx), %rcx
movl %ebx, 0x4(%rcx)
movl %eax, 0xb4e4(%rip)      # 0x13560
movl $0x414, %edi            # imm = 0x414
callq 0x2ccd
movl %eax, %ebx
movl %eax, %edi
callq 0x2b74
movl %ebx, 0xb4b7(%rip)      # 0x1354c
movl 0xb4ad(%rip), %ebp      # 0x13548
pushq $0x1
popq %rdi
callq 0x2ccd
movl %eax, %ebx
movl 0xb495(%rip), %edx      # 0x13540
testl %edx, %edx
sete %al
testb $0x1, %bl
sete %cl
orb %al, %cl
je 0x8fdc
movl %ebx, %ecx
sarl %ecx
movq 0xb4e7(%rip), %rax      # 0x135b0
movslq %ecx, %rcx
testl %edx, %edx
je 0x80e9
imulq $0x18, %rcx, %rdx
movl (%rax,%rdx), %edx
testb $0x1, %dl
je 0x9172
cmpl $0x1, %edx
jle 0x917b
imulq $0x18, %rcx, %rcx
movq 0x10(%rax,%rcx), %rax
movl %ebp, (%rax)
movl %ebx, %edi
callq 0x2b74
movl %ebx, 0xb463(%rip)      # 0x13564
movl $0x100, %edi            # imm = 0x100
callq 0x2ccd
movl %eax, %ebx
movl %eax, %edi
callq 0x2b74
movl %ebx, 0xb44e(%rip)      # 0x13568
leaq 0xb15f(%rip), %rbx      # 0x13280
xorl %r15d, %r15d
leaq 0xaf55(%rip), %r14      # 0x13080
movl 0xb403(%rip), %eax      # 0x13534
cmpl $0x0, 0xb408(%rip)      # 0x13540
setne %dl
testb $0x1, %al
sete %cl
andb %dl, %cl
cmpq %r15, 0xb337(%rip)      # 0x13480
jbe 0x8176
testb %cl, %cl
jne 0x8de4
sarl %eax
cltq
movq (%r14,%rax,8), %r12
movq (%rbx), %rdi
callq 0x76b9
movl %eax, %edi
callq *%r12
cltq
movq %rax, (%rbx)
incq %r15
addq $0x8, %rbx
jmp 0x812b
testb %cl, %cl
jne 0x8fe8
sarl %eax
cltq
movq (%r14,%rax,8), %rbx
leaq 0x6efd(%rip), %rdi      # 0xf08a
callq 0x76b9
movl %eax, %edi
callq *%rbx
movl %eax, 0xb3ec(%rip)      # 0x13588
movl 0xb392(%rip), %eax      # 0x13534
cmpl $0x0, 0xb397(%rip)      # 0x13540
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x9007
sarl %eax
cltq
movq (%r14,%rax,8), %rbx
leaq 0x6ec6(%rip), %rdi      # 0xf091
callq 0x76b9
movl %eax, %edi
callq *%rbx
movl %eax, 0xb3b2(%rip)      # 0x1358c
movl 0xb354(%rip), %eax      # 0x13534
cmpl $0x0, 0xb359(%rip)      # 0x13540
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x9026
sarl %eax
cltq
movq (%r14,%rax,8), %rbx
leaq 0x6e95(%rip), %rdi      # 0xf09e
callq 0x76b9
movl %eax, %edi
callq *%rbx
movl %eax, 0xb378(%rip)      # 0x13590
movl 0xb316(%rip), %eax      # 0x13534
cmpl $0x0, 0xb31b(%rip)      # 0x13540
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x9045
sarl %eax
cltq
movq (%r14,%rax,8), %rbx
leaq 0x6e5d(%rip), %rdi      # 0xf0a4
callq 0x76b9
movl %eax, %edi
callq *%rbx
movl %eax, 0xb33e(%rip)      # 0x13594
movl 0xb2d8(%rip), %eax      # 0x13534
cmpl $0x0, 0xb2dd(%rip)      # 0x13540
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x9064
sarl %eax
cltq
movq (%r14,%rax,8), %rbx
leaq 0x6e27(%rip), %rdi      # 0xf0ac
callq 0x76b9
movl %eax, %edi
callq *%rbx
movl %eax, 0xb304(%rip)      # 0x13598
movl 0xb29a(%rip), %eax      # 0x13534
cmpl $0x0, 0xb29f(%rip)      # 0x13540
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x9083
sarl %eax
cltq
movq (%r14,%rax,8), %rbx
leaq 0x6deb(%rip), %rdi      # 0xf0ae
callq 0x76b9
movl %eax, %edi
callq *%rbx
movl %eax, 0xb2ca(%rip)      # 0x1359c
movl 0xb25c(%rip), %eax      # 0x13534
cmpl $0x0, 0xb261(%rip)      # 0x13540
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x90a2
sarl %eax
cltq
movq (%r14,%rax,8), %rbx
leaq 0x6daf(%rip), %rdi      # 0xf0b0
callq 0x76b9
movl %eax, %edi
callq *%rbx
movl %eax, 0xb290(%rip)      # 0x135a0
movl 0xb172(%rip), %eax      # 0x13488
cmpl $0x0, 0xb223(%rip)      # 0x13540
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x8eb9
sarl %eax
cltq
movl 0xb20e(%rip), %edi      # 0x13548
callq *(%r14,%rax,8)
movl 0xb144(%rip), %eax      # 0x13488
cmpl $0x0, 0xb1f5(%rip)      # 0x13540
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x8eb9
sarl %eax
cltq
movl 0xb1e0(%rip), %edi      # 0x13548
callq *(%r14,%rax,8)
movl 0xb17a(%rip), %eax      # 0x134ec
movl 0xb1c8(%rip), %ecx      # 0x13540
testl %ecx, %ecx
setne %dl
testb $0x1, %al
sete %sil
andb %dl, %sil
cmpb $0x1, %sil
je 0x8eb9
testl %ecx, %ecx
setne %dl
movl 0xb199(%rip), %ecx      # 0x13534
testb $0x1, %cl
sete %sil
andb %dl, %sil
cmpb $0x1, %sil
je 0x8eb9
sarl %eax
cltq
movq (%r14,%rax,8), %rbx
sarl %ecx
movslq %ecx, %rax
movq (%r14,%rax,8), %r15
leaq 0x5206(%rip), %rdi      # 0xd5cd
callq 0x76b9
movl %eax, %edi
callq *%r15
movl %eax, %edi
callq *%rbx
movl %eax, 0xb191(%rip)      # 0x1356c
movl 0xb1ab(%rip), %esi      # 0x1358c
movl 0xb121(%rip), %edx      # 0x13508
movl %eax, %edi
callq 0x784e
movl 0xb178(%rip), %edi      # 0x1356c
movl 0xb196(%rip), %esi      # 0x13590
movl 0xb118(%rip), %edx      # 0x13518
callq 0x784e
movl 0xb161(%rip), %edi      # 0x1356c
movl 0xb183(%rip), %esi      # 0x13594
movl 0xb105(%rip), %edx      # 0x1351c
callq 0x784e
movq 0xb185(%rip), %rax      # 0x135a8
movq 0xb186(%rip), %rcx      # 0x135b0
addq $0x4, %rcx
xorl %edx, %edx
cmpq %rdx, %rax
jbe 0x8461
movl -0x4(%rcx), %esi
cmpl $0x0, 0xb101(%rip)      # 0x13540
je 0x844c
movl %esi, %edi
andl $0x1, %edi
je 0x8e03
testl %esi, %esi
js 0x8458
movl 0xb116(%rip), %esi      # 0x1356c
movl %esi, (%rcx)
incq %rdx
addq $0x18, %rcx
jmp 0x8430
movl 0xb021(%rip), %eax      # 0x13488
cmpl $0x0, 0xb0d2(%rip)      # 0x13540
setne %cl
testb $0x1, %al
sete %dl
testb %dl, %cl
jne 0x90c1
sarl %eax
cltq
movq (%r14,%rax,8), %rbx
pushq $0x7
popq %rdi
callq 0x2ccd
movl %eax, %edi
callq *%rbx
movl %eax, %ebx
movl 0xb0a6(%rip), %ecx      # 0x13540
testl %ecx, %ecx
je 0x84a9
movl %ebx, %eax
andl $0x1, %eax
jne 0x90e0
movl 0xb085(%rip), %eax      # 0x13534
testl %ecx, %ecx
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x8f60
movl %ebx, %ebp
sarl %ebp
sarl %eax
cltq
movq (%r14,%rax,8), %r15
leaq 0x6bdb(%rip), %rdi      # 0xf0b2
callq 0x76b9
movl %eax, %edi
callq *%r15
cmpl $0x0, 0xb058(%rip)      # 0x13540
movq 0xb0c1(%rip), %rcx      # 0x135b0
movslq %ebp, %rdx
je 0x850e
imulq $0x18, %rdx, %rsi
movl (%rcx,%rsi), %esi
testb $0x1, %sil
je 0x8f60
cmpl $0x1, %esi
jle 0x919a
testb $0x1, %bl
sete %sil
imulq $0x18, %rdx, %r15
movq 0x10(%rcx,%r15), %rcx
movl %eax, (%rcx)
movl 0xb01a(%rip), %ecx      # 0x13540
testl %ecx, %ecx
sete %al
orb %sil, %al
je 0x90ec
movl 0xaffa(%rip), %eax      # 0x13534
testl %ecx, %ecx
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x8f6c
sarl %eax
cltq
movq (%r14,%rax,8), %r12
leaq 0x6c27(%rip), %rdi      # 0xf185
callq 0x76b9
movl %eax, %edi
callq *%r12
movl 0xafd2(%rip), %ecx      # 0x13540
movq 0xb03b(%rip), %rdx      # 0x135b0
testl %ecx, %ecx
je 0x8590
movl (%rdx,%r15), %esi
testb $0x1, %sil
je 0x8f6c
cmpl $0x3, %esi
jle 0x91b9
testl %ecx, %ecx
sete %sil
testb $0x1, %bl
sete %dil
movq 0x10(%rdx,%r15), %rdx
movl %eax, 0x4(%rdx)
orb %sil, %dil
je 0x90f8
movl 0xaf80(%rip), %eax      # 0x13534
testl %ecx, %ecx
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x8f78
sarl %eax
cltq
movq (%r14,%rax,8), %r12
leaq 0x6c85(%rip), %rdi      # 0xf25d
callq 0x76b9
movl %eax, %edi
callq *%r12
movl 0xaf58(%rip), %ecx      # 0x13540
movq 0xafc1(%rip), %rdx      # 0x135b0
testl %ecx, %ecx
je 0x860a
movl (%rdx,%r15), %esi
testb $0x1, %sil
je 0x8f78
cmpl $0x5, %esi
jle 0x91d8
testl %ecx, %ecx
sete %sil
testb $0x1, %bl
sete %dil
movq 0x10(%rdx,%r15), %rdx
movl %eax, 0x8(%rdx)
orb %sil, %dil
je 0x9104
movl 0xaf06(%rip), %eax      # 0x13534
testl %ecx, %ecx
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x8f84
sarl %eax
cltq
movq (%r14,%rax,8), %r12
leaq 0x6ce2(%rip), %rdi      # 0xf334
callq 0x76b9
movl %eax, %edi
callq *%r12
movl 0xaede(%rip), %ecx      # 0x13540
movq 0xaf47(%rip), %rdx      # 0x135b0
testl %ecx, %ecx
je 0x8684
movl (%rdx,%r15), %esi
testb $0x1, %sil
je 0x8f84
cmpl $0x7, %esi
jle 0x91f7
testl %ecx, %ecx
sete %sil
testb $0x1, %bl
sete %dil
movq 0x10(%rdx,%r15), %rdx
movl %eax, 0xc(%rdx)
orb %sil, %dil
je 0x9110
movl 0xae8c(%rip), %eax      # 0x13534
testl %ecx, %ecx
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x8f90
sarl %eax
cltq
movq (%r14,%rax,8), %r12
leaq 0x6d41(%rip), %rdi      # 0xf40d
callq 0x76b9
movl %eax, %edi
callq *%r12
movl 0xae64(%rip), %ecx      # 0x13540
movq 0xaecd(%rip), %rdx      # 0x135b0
testl %ecx, %ecx
je 0x86fe
movl (%rdx,%r15), %esi
testb $0x1, %sil
je 0x8f90
cmpl $0x9, %esi
jle 0x9216
testl %ecx, %ecx
sete %sil
testb $0x1, %bl
sete %dil
movq 0x10(%rdx,%r15), %rdx
movl %eax, 0x10(%rdx)
orb %sil, %dil
je 0x911c
movl 0xae12(%rip), %eax      # 0x13534
testl %ecx, %ecx
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x8f9c
sarl %eax
cltq
movq (%r14,%rax,8), %r12
leaq 0x6d9a(%rip), %rdi      # 0xf4e0
callq 0x76b9
movl %eax, %edi
callq *%r12
movl 0xadea(%rip), %ecx      # 0x13540
movq 0xae53(%rip), %rdx      # 0x135b0
testl %ecx, %ecx
je 0x8778
movl (%rdx,%r15), %esi
testb $0x1, %sil
je 0x8f9c
cmpl $0xb, %esi
jle 0x9235
testl %ecx, %ecx
sete %sil
testb $0x1, %bl
sete %dil
movq 0x10(%rdx,%r15), %rdx
movl %eax, 0x14(%rdx)
orb %sil, %dil
je 0x9128
movl 0xad98(%rip), %eax      # 0x13534
testl %ecx, %ecx
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x8fa8
sarl %eax
cltq
movq (%r14,%rax,8), %r12
leaq 0x6df4(%rip), %rdi      # 0xf5b4
callq 0x76b9
movl %eax, %edi
callq *%r12
cmpl $0x0, 0xad6f(%rip)      # 0x13540
movq 0xadd8(%rip), %rcx      # 0x135b0
je 0x87f0
movl (%rcx,%r15), %edx
testb $0x1, %dl
je 0x8fa8
cmpl $0xd, %edx
jle 0x9254
movq 0x10(%rcx,%r15), %rcx
movl %eax, 0x18(%rcx)
movl %ebx, %edi
callq 0x29b8
cmpl $0xf, %eax
jne 0x9134
movl 0xac7a(%rip), %eax      # 0x13488
cmpl $0x0, 0xad2b(%rip)      # 0x13540
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x8f41
sarl %eax
cltq
pushq $0xf
popq %rdi
callq *(%r14,%rax,8)
movl 0xacab(%rip), %eax      # 0x134e4
cmpl $0x0, 0xad00(%rip)      # 0x13540
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x8f41
sarl %eax
cltq
movl 0xad0f(%rip), %edi      # 0x1356c
callq *(%r14,%rax,8)
movl %eax, %ebp
movl %eax, %edi
callq 0x2b74
movl %ebp, 0xad14(%rip)      # 0x13584
movl 0xac12(%rip), %eax      # 0x13488
cmpl $0x0, 0xacc3(%rip)      # 0x13540
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x8e9a
sarl %eax
cltq
movl %ebx, %edi
callq *(%r14,%rax,8)
movl 0xabe8(%rip), %eax      # 0x13488
cmpl $0x0, 0xac99(%rip)      # 0x13540
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x8e9a
sarl %eax
cltq
movl 0xaca8(%rip), %edi      # 0x1356c
callq *(%r14,%rax,8)
movl 0xabba(%rip), %eax      # 0x13488
movl 0xac6c(%rip), %ecx      # 0x13540
testl %ecx, %ecx
setne %dl
testb $0x1, %al
sete %sil
andb %dl, %sil
cmpb $0x1, %sil
je 0x8e9a
testl %ecx, %ecx
setne %dl
movl 0xac3d(%rip), %ecx      # 0x13534
testb $0x1, %cl
sete %sil
andb %dl, %sil
cmpb $0x1, %sil
je 0x8e9a
sarl %eax
cltq
movq (%r14,%rax,8), %rbx
sarl %ecx
movslq %ecx, %rax
movq (%r14,%rax,8), %r15
leaq 0x4dbe(%rip), %rdi      # 0xd6e1
callq 0x76b9
movl %eax, %edi
callq *%r15
movl %eax, %edi
callq *%rbx
movl 0xabb1(%rip), %eax      # 0x134e8
cmpl $0x0, 0xac02(%rip)      # 0x13540
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x8e9a
sarl %eax
cltq
movl 0xac29(%rip), %edi      # 0x13584
callq *(%r14,%rax,8)
movl 0xab27(%rip), %eax      # 0x1348c
cmpl $0x0, 0xabd4(%rip)      # 0x13540
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x9153
sarl %eax
cltq
movl 0xabbf(%rip), %edi      # 0x13548
callq *(%r14,%rax,8)
movl 0xabf1(%rip), %edi      # 0x13584
movl %edi, %esi
callq 0x2a64
movl 0xabcc(%rip), %edi      # 0x1356c
movl 0xabde(%rip), %esi      # 0x13584
callq 0x2a64
movl 0xaad7(%rip), %eax      # 0x13488
cmpl $0x0, 0xab88(%rip)      # 0x13540
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x8ed8
sarl %eax
cltq
movl 0xab73(%rip), %edi      # 0x13548
callq *(%r14,%rax,8)
movl 0xaaa9(%rip), %eax      # 0x13488
cmpl $0x0, 0xab5a(%rip)      # 0x13540
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x8ed8
sarl %eax
cltq
movl 0xab69(%rip), %edi      # 0x1356c
callq *(%r14,%rax,8)
movl 0xaadf(%rip), %eax      # 0x134ec
movl 0xab2d(%rip), %ecx      # 0x13540
testl %ecx, %ecx
setne %dl
testb $0x1, %al
sete %sil
andb %dl, %sil
cmpb $0x1, %sil
je 0x8ed8
testl %ecx, %ecx
setne %dl
movl 0xaafe(%rip), %ecx      # 0x13534
testb $0x1, %cl
sete %sil
andb %dl, %sil
cmpb $0x1, %sil
je 0x8ed8
sarl %eax
cltq
movq (%r14,%rax,8), %rbx
sarl %ecx
movslq %ecx, %rax
movq (%r14,%rax,8), %r15
leaq 0x6c71(%rip), %rdi      # 0xf6d3
callq 0x76b9
movl %eax, %edi
callq *%r15
movl %eax, %edi
callq *%rbx
movl %eax, 0xaafe(%rip)      # 0x13574
movl 0xab14(%rip), %esi      # 0x13590
movl 0xaa8e(%rip), %edx      # 0x13510
movl %eax, %edi
callq 0x784e
movl 0xaae5(%rip), %edi      # 0x13574
movl 0xab03(%rip), %esi      # 0x13598
movl 0xaa89(%rip), %edx      # 0x13524
callq 0x784e
movl 0xaace(%rip), %edi      # 0x13574
movl 0xaaf0(%rip), %esi      # 0x1359c
movl 0xaa76(%rip), %edx      # 0x13528
callq 0x784e
movl 0xaab7(%rip), %edi      # 0x13574
movl 0xaadd(%rip), %esi      # 0x135a0
movl 0xaa63(%rip), %edx      # 0x1352c
callq 0x784e
movl 0xa9b4(%rip), %eax      # 0x13488
cmpl $0x0, 0xaa65(%rip)      # 0x13540
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x8ef7
sarl %eax
cltq
movl 0xaa50(%rip), %edi      # 0x13548
callq *(%r14,%rax,8)
movl 0xa986(%rip), %eax      # 0x13488
cmpl $0x0, 0xaa37(%rip)      # 0x13540
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x8ef7
sarl %eax
cltq
movl 0xaa46(%rip), %edi      # 0x1356c
callq *(%r14,%rax,8)
movl 0xa9bc(%rip), %eax      # 0x134ec
movl 0xaa0a(%rip), %ecx      # 0x13540
testl %ecx, %ecx
setne %dl
testb $0x1, %al
sete %sil
andb %dl, %sil
cmpb $0x1, %sil
je 0x8ef7
testl %ecx, %ecx
setne %dl
movl 0xa9db(%rip), %ecx      # 0x13534
testb $0x1, %cl
sete %sil
andb %dl, %sil
cmpb $0x1, %sil
je 0x8ef7
sarl %eax
cltq
movq (%r14,%rax,8), %rbx
sarl %ecx
movslq %ecx, %rax
movq (%r14,%rax,8), %r15
leaq 0x6b52(%rip), %rdi      # 0xf6d7
callq 0x76b9
movl %eax, %edi
callq *%r15
movl %eax, %edi
callq *%rbx
movl %eax, 0xa9d7(%rip)      # 0x13570
movl 0xa9f1(%rip), %esi      # 0x13590
movl 0xa967(%rip), %edx      # 0x1350c
movl %eax, %edi
callq 0x784e
movl 0xa996(%rip), %edi      # 0x13548
movl 0xa9b8(%rip), %esi      # 0x13570
callq 0x2a64
movl 0xa8c5(%rip), %eax      # 0x13488
cmpl $0x0, 0xa976(%rip)      # 0x13540
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x8f16
sarl %eax
cltq
movl 0xa961(%rip), %edi      # 0x13548
callq *(%r14,%rax,8)
movl 0xa897(%rip), %eax      # 0x13488
cmpl $0x0, 0xa948(%rip)      # 0x13540
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x8f16
sarl %eax
cltq
movl 0xa957(%rip), %edi      # 0x1356c
callq *(%r14,%rax,8)
movl 0xa8cd(%rip), %eax      # 0x134ec
movl 0xa91b(%rip), %ecx      # 0x13540
testl %ecx, %ecx
setne %dl
testb $0x1, %al
sete %sil
andb %dl, %sil
cmpb $0x1, %sil
je 0x8f16
testl %ecx, %ecx
setne %dl
movl 0xa8ec(%rip), %ecx      # 0x13534
testb $0x1, %cl
sete %sil
andb %dl, %sil
cmpb $0x1, %sil
je 0x8f16
sarl %eax
cltq
movq (%r14,%rax,8), %rbx
sarl %ecx
movslq %ecx, %rax
movq (%r14,%rax,8), %r14
leaq 0x6a67(%rip), %rdi      # 0xf6db
callq 0x76b9
movl %eax, %edi
callq *%r14
movl %eax, %edi
callq *%rbx
movl %eax, 0xa8f0(%rip)      # 0x13578
movl 0xa8fa(%rip), %esi      # 0x13588
movl 0xa8a0(%rip), %edx      # 0x13534
movl %eax, %edi
callq 0x784e
movl 0xa8d7(%rip), %edi      # 0x13578
movl 0xa8e9(%rip), %esi      # 0x13590
movl 0xa867(%rip), %edx      # 0x13514
callq 0x784e
movl 0xa8ac(%rip), %edx      # 0x13564
movl 0xa882(%rip), %ecx      # 0x13540
testl %ecx, %ecx
sete %al
testb $0x1, %dl
sete %sil
orb %al, %sil
je 0x8ddb
sarl %edx
movq 0xa8d4(%rip), %rax      # 0x135b0
movslq %edx, %rdx
testl %ecx, %ecx
je 0x8cfd
imulq $0x18, %rdx, %rsi
movl (%rax,%rsi), %esi
testb $0x1, %sil
je 0x8e53
cmpl $0x1, %esi
jle 0x8e4a
imulq $0x18, %rdx, %rdx
movq 0x10(%rax,%rdx), %rdx
movl (%rdx), %esi
cmpl 0xa83a(%rip), %esi      # 0x13548
je 0x8dbc
testl %ecx, %ecx
sete %dl
testb $0x1, %sil
sete %dil
orb %dl, %dil
je 0x8e22
movl %esi, %edx
sarl %edx
movslq %edx, %rdx
testl %ecx, %ecx
je 0x8d4f
imulq $0x18, %rdx, %rdi
movl (%rax,%rdi), %edi
testb $0x1, %dil
je 0x8e7b
cmpl $0x1, %edi
jle 0x8e72
imulq $0x18, %rdx, %rdi
movq 0x10(%rax,%rdi), %rdx
movl (%rdx), %r8d
testl %ecx, %ecx
je 0x8d6b
movl %r8d, %ecx
andl $0x1, %ecx
jne 0x8e2b
testb $0x1, %sil
sete %sil
movl 0xa7ff(%rip), %ecx      # 0x13578
sarl %r8d
movslq %r8d, %r8
imulq $0x18, %r8, %r8
movl %ecx, 0x4(%rax,%r8)
movl 0xa7b2(%rip), %ecx      # 0x13540
testl %ecx, %ecx
sete %r8b
orb %sil, %r8b
je 0x8ddb
testl %ecx, %ecx
je 0x8db3
movl (%rax,%rdi), %esi
testb $0x1, %sil
je 0x8e53
cmpl $0x3, %esi
jle 0x8e4a
addq $0x4, %rdx
jmp 0x8d06
movl 0xa79a(%rip), %eax      # 0x1355c
movl %eax, 0xa790(%rip)      # 0x13558
movl $0x1, 0xa772(%rip)      # 0x13544
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
leaq 0x2278(%rip), %rdi      # 0xb05a
jmp 0x8e5a
leaq 0x23a3(%rip), %rdi      # 0xb18e
leaq 0x2245(%rip), %rsi      # 0xb037
leaq 0x60e6(%rip), %rcx      # 0xeedf
movl $0x218, %edx            # imm = 0x218
callq 0x2060
leaq 0x2384(%rip), %rdi      # 0xb18e
leaq 0x2226(%rip), %rsi      # 0xb037
leaq 0x60c7(%rip), %rcx      # 0xeedf
movl $0x227, %edx            # imm = 0x227
callq 0x2060
leaq 0x2231(%rip), %rdi      # 0xb05a
jmp 0x8e82
leaq 0x2228(%rip), %rdi      # 0xb05a
leaq 0x21fe(%rip), %rsi      # 0xb037
leaq 0x609f(%rip), %rcx      # 0xeedf
movl $0x246, %edx            # imm = 0x246
callq 0x2060
leaq 0x688e(%rip), %rdi      # 0xf6df
jmp 0x8e5a
leaq 0x2334(%rip), %rdi      # 0xb18e
leaq 0x21d6(%rip), %rsi      # 0xb037
leaq 0x6077(%rip), %rcx      # 0xeedf
movl $0x244, %edx            # imm = 0x244
callq 0x2060
leaq 0x6934(%rip), %rdi      # 0xf7ad
jmp 0x8e82
leaq 0x230c(%rip), %rdi      # 0xb18e
leaq 0x21ae(%rip), %rsi      # 0xb037
leaq 0x604f(%rip), %rcx      # 0xeedf
movl $0x245, %edx            # imm = 0x245
callq 0x2060
leaq 0x22ed(%rip), %rdi      # 0xb18e
leaq 0x218f(%rip), %rsi      # 0xb037
leaq 0x6030(%rip), %rcx      # 0xeedf
movl $0x235, %edx            # imm = 0x235
callq 0x2060
leaq 0x22ce(%rip), %rdi      # 0xb18e
leaq 0x2170(%rip), %rsi      # 0xb037
leaq 0x6011(%rip), %rcx      # 0xeedf
movl $0x222, %edx            # imm = 0x222
callq 0x2060
leaq 0x22af(%rip), %rdi      # 0xb18e
leaq 0x2151(%rip), %rsi      # 0xb037
leaq 0x5ff2(%rip), %rcx      # 0xeedf
movl $0x239, %edx            # imm = 0x239
callq 0x2060
leaq 0x2290(%rip), %rdi      # 0xb18e
leaq 0x2132(%rip), %rsi      # 0xb037
leaq 0x5fd3(%rip), %rcx      # 0xeedf
movl $0x23e, %edx            # imm = 0x23E
callq 0x2060
leaq 0x2271(%rip), %rdi      # 0xb18e
leaq 0x2113(%rip), %rsi      # 0xb037
leaq 0x5fb4(%rip), %rcx      # 0xeedf
movl $0x241, %edx            # imm = 0x241
callq 0x2060
leaq 0x211e(%rip), %rdi      # 0xb05a
jmp 0x8fc4
leaq 0x2246(%rip), %rdi      # 0xb18e
leaq 0x20e8(%rip), %rsi      # 0xb037
leaq 0x5f89(%rip), %rcx      # 0xeedf
movl $0x234, %edx            # imm = 0x234
callq 0x2060
leaq 0x2227(%rip), %rdi      # 0xb18e
jmp 0x91a1
leaq 0x221b(%rip), %rdi      # 0xb18e
jmp 0x91c0
leaq 0x220f(%rip), %rdi      # 0xb18e
jmp 0x91df
leaq 0x2203(%rip), %rdi      # 0xb18e
jmp 0x91fe
leaq 0x21f7(%rip), %rdi      # 0xb18e
jmp 0x921d
leaq 0x21eb(%rip), %rdi      # 0xb18e
jmp 0x923c
leaq 0x21df(%rip), %rdi      # 0xb18e
jmp 0x925b
leaq 0x21d3(%rip), %rdi      # 0xb18e
jmp 0x8fc4
leaq 0x5f2a(%rip), %rdi      # 0xeeee
leaq 0x206c(%rip), %rsi      # 0xb037
leaq 0x5f0d(%rip), %rcx      # 0xeedf
movl $0x211, %edx            # imm = 0x211
callq 0x2060
leaq 0x2077(%rip), %rdi      # 0xb05a
jmp 0x9182
leaq 0x219f(%rip), %rdi      # 0xb18e
leaq 0x2041(%rip), %rsi      # 0xb037
leaq 0x5ee2(%rip), %rcx      # 0xeedf
movl $0x21a, %edx            # imm = 0x21A
callq 0x2060
leaq 0x2180(%rip), %rdi      # 0xb18e
leaq 0x2022(%rip), %rsi      # 0xb037
leaq 0x5ec3(%rip), %rcx      # 0xeedf
movl $0x21b, %edx            # imm = 0x21B
callq 0x2060
leaq 0x2161(%rip), %rdi      # 0xb18e
leaq 0x2003(%rip), %rsi      # 0xb037
leaq 0x5ea4(%rip), %rcx      # 0xeedf
movl $0x21c, %edx            # imm = 0x21C
callq 0x2060
leaq 0x2142(%rip), %rdi      # 0xb18e
leaq 0x1fe4(%rip), %rsi      # 0xb037
leaq 0x5e85(%rip), %rcx      # 0xeedf
movl $0x21d, %edx            # imm = 0x21D
callq 0x2060
leaq 0x2123(%rip), %rdi      # 0xb18e
leaq 0x1fc5(%rip), %rsi      # 0xb037
leaq 0x5e66(%rip), %rcx      # 0xeedf
movl $0x21e, %edx            # imm = 0x21E
callq 0x2060
leaq 0x2104(%rip), %rdi      # 0xb18e
leaq 0x1fa6(%rip), %rsi      # 0xb037
leaq 0x5e47(%rip), %rcx      # 0xeedf
movl $0x21f, %edx            # imm = 0x21F
callq 0x2060
leaq 0x20e5(%rip), %rdi      # 0xb18e
leaq 0x1f87(%rip), %rsi      # 0xb037
leaq 0x5e28(%rip), %rcx      # 0xeedf
movl $0x220, %edx            # imm = 0x220
callq 0x2060
leaq 0x20c6(%rip), %rdi      # 0xb18e
leaq 0x1f68(%rip), %rsi      # 0xb037
leaq 0x5e09(%rip), %rcx      # 0xeedf
movl $0x22b, %edx            # imm = 0x22B
callq 0x2060
leaq 0x1f73(%rip), %rdi      # 0xb05a
jmp 0x91a1
leaq 0x1f67(%rip), %rdi      # 0xb05a
jmp 0x91c0
leaq 0x1f5b(%rip), %rdi      # 0xb05a
jmp 0x91df
leaq 0x1f4f(%rip), %rdi      # 0xb05a
jmp 0x91fe
leaq 0x1f43(%rip), %rdi      # 0xb05a
jmp 0x921d
leaq 0x1f37(%rip), %rdi      # 0xb05a
jmp 0x923c
leaq 0x1f2b(%rip), %rdi      # 0xb05a
jmp 0x925b
leaq 0x6552(%rip), %rdi      # 0xf68d
leaq 0x1ef5(%rip), %rsi      # 0xb037
leaq 0x5d96(%rip), %rcx      # 0xeedf
movl $0x233, %edx            # imm = 0x233
callq 0x2060
leaq 0x2034(%rip), %rdi      # 0xb18e
leaq 0x1ed6(%rip), %rsi      # 0xb037
leaq 0x5d77(%rip), %rcx      # 0xeedf
movl $0x236, %edx            # imm = 0x236
callq 0x2060
leaq 0x2015(%rip), %rdi      # 0xb18e
jmp 0x9182
leaq 0x5e3a(%rip), %rdi      # 0xefbc
leaq 0x1eae(%rip), %rsi      # 0xb037
leaq 0x5d4f(%rip), %rcx      # 0xeedf
movl $0x213, %edx            # imm = 0x213
callq 0x2060
leaq 0x5f16(%rip), %rdi      # 0xf0b7
leaq 0x1e8f(%rip), %rsi      # 0xb037
leaq 0x5d30(%rip), %rcx      # 0xeedf
movl $0x22c, %edx            # imm = 0x22C
callq 0x2060
leaq 0x5fcf(%rip), %rdi      # 0xf18f
leaq 0x1e70(%rip), %rsi      # 0xb037
leaq 0x5d11(%rip), %rcx      # 0xeedf
movl $0x22d, %edx            # imm = 0x22D
callq 0x2060
leaq 0x6087(%rip), %rdi      # 0xf266
leaq 0x1e51(%rip), %rsi      # 0xb037
leaq 0x5cf2(%rip), %rcx      # 0xeedf
movl $0x22e, %edx            # imm = 0x22E
callq 0x2060
leaq 0x6141(%rip), %rdi      # 0xf33f
leaq 0x1e32(%rip), %rsi      # 0xb037
leaq 0x5cd3(%rip), %rcx      # 0xeedf
movl $0x22f, %edx            # imm = 0x22F
callq 0x2060
leaq 0x61f5(%rip), %rdi      # 0xf412
leaq 0x1e13(%rip), %rsi      # 0xb037
leaq 0x5cb4(%rip), %rcx      # 0xeedf
movl $0x230, %edx            # imm = 0x230
callq 0x2060
leaq 0x62aa(%rip), %rdi      # 0xf4e6
leaq 0x1df4(%rip), %rsi      # 0xb037
leaq 0x5c95(%rip), %rcx      # 0xeedf
movl $0x231, %edx            # imm = 0x231
callq 0x2060
leaq 0x6364(%rip), %rdi      # 0xf5bf
leaq 0x1dd5(%rip), %rsi      # 0xb037
leaq 0x5c76(%rip), %rcx      # 0xeedf
movl $0x232, %edx            # imm = 0x232
callq 0x2060