// File: /workspace/github_cpp_makefile_star2_O1/navrajsaini[P]PL_Compiler_design_project/test.cpp
// Function: main
int main ()
{

   //TESING SCANNER && ADMIN
   ifstream infile;
   ofstream outfile;
   cout << endl << endl << endl;
   cout << "--------testing scanner-----------";
   string codefile, tokenfile;
   string codef[8] =
      {
	 "./testfiles/test1.txt", "./testfiles/test2.txt",
	 "./testfiles/test3.txt", "./testfiles/test4.txt",
	 "./testfiles/test5.txt", "./testfiles/test6.txt",
	 "./testfiles/test7.txt", "./testfiles/testLang.txt"};

   string tokenf[8] =
      {"./testfiles/test1.Out", "./testfiles/test2.Out",
       "./testfiles/test3.Out", "./testfiles/test4.Out",
       "./testfiles/test5.Out", "./testfiles/test6.Out",
       "./testfiles/test7.Out", "./testfiles/testLang.Out"};
   for (int i = 0; i < 8; i++)
   {
      cout << "testing file: " << i+1 << endl;

      if (i == 7)
      {
	 cout << "testing the proper testLang file." << endl
	      << "There should not be any errorrs..."
	      << endl;
      }
      codefile = codef[i];
      tokenfile = tokenf[i];
      cout << endl;

      Scanner scanTest (codefile, tokenfile);
      Admin compiler(codefile, tokenfile, scanTest);
      compiler.tst = true;
      cout << "finished making the compiler..." << endl;
      int fin = compiler.scan();
      cout << "compile finished, output is: " << fin << endl;
      cout << endl << endl << "about to print... " << endl;
      compiler.print();

      //   cout << "the location of begin is: " << scanTest.getToken("begin") << endl;

      cout << "------------------testing parser-----------" << endl;
      compiler.parse();
      // if ctd is false there is a error in the parser
      // so the assembler will not run.
      if (compiler.ctd == true)
      {
	 cout << "-------------------testing assembler----------" << endl;
	 outfile.open(tokenfile);
	 infile.open("psudogen");
	 Assembler a(infile, outfile);
	 
	 cout << "first run" << endl;
	 a.firstPass();
	 
	 cout << "second run" << endl;
	 outfile.close();
	 infile.close();
	 
	 outfile.open(tokenfile);
	 infile.open("psudogen");
	 a.secondPass();
	 infile.close();
	 outfile.close();
	 cout << "------------------testing interpreter----------" << endl;
	 Interpreter b(tokenfile, true);
      }
      else
	 cout << "compiling error, exiting..." << endl;
   }
   return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x4df8, %rsp           # imm = 0x4DF8
leaq -0x718(%rbp), %rdi
callq 0x2200
leaq -0x510(%rbp), %rdi
callq 0x22d0
movq 0x165b9(%rip), %rdi     # 0x19fc8
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq 0x1659e(%rip), %rdi     # 0x19fc8
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq 0x16536(%rip), %rbx     # 0x19fc8
leaq 0x105cc(%rip), %rsi     # 0x14065
movl $0x22, %edx
movq %rbx, %rdi
callq 0x2210
leaq -0x60(%rbp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x40(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x300(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x105b2(%rip), %rsi     # 0x14088
leaq 0x105c0(%rip), %rdx     # 0x1409d
leaq -0x310(%rbp), %r15
movq %r15, %rdi
callq 0x48b0
leaq -0x2f0(%rbp), %r14
leaq -0x2e0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x10599(%rip), %rsi     # 0x1409e
leaq 0x105a7(%rip), %rdx     # 0x140b3
movq %r14, %rdi
callq 0x48b0
leaq -0x2d0(%rbp), %r14
leaq -0x2c0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x10587(%rip), %rsi     # 0x140b4
leaq 0x10595(%rip), %rdx     # 0x140c9
movq %r14, %rdi
callq 0x48b0
leaq -0x2b0(%rbp), %r14
leaq -0x2a0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x10575(%rip), %rsi     # 0x140ca
leaq 0x10583(%rip), %rdx     # 0x140df
movq %r14, %rdi
callq 0x48b0
leaq -0x290(%rbp), %r14
leaq -0x280(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x10563(%rip), %rsi     # 0x140e0
leaq 0x10571(%rip), %rdx     # 0x140f5
movq %r14, %rdi
callq 0x48b0
leaq -0x270(%rbp), %r14
leaq -0x260(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x10551(%rip), %rsi     # 0x140f6
leaq 0x1055f(%rip), %rdx     # 0x1410b
movq %r14, %rdi
callq 0x48b0
leaq -0x250(%rbp), %r14
leaq -0x240(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x1053f(%rip), %rsi     # 0x1410c
leaq 0x1054d(%rip), %rdx     # 0x14121
movq %r14, %rdi
callq 0x48b0
leaq -0x230(%rbp), %r14
leaq -0x220(%rbp), %r13
movq %r13, -0x10(%r13)
leaq 0x1052d(%rip), %rsi     # 0x14122
leaq 0x1053e(%rip), %rdx     # 0x1413a
movq %r14, %rdi
callq 0x48b0
leaq -0x200(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x10525(%rip), %rsi     # 0x1413b
leaq 0x10533(%rip), %rdx     # 0x14150
leaq -0x210(%rbp), %r12
movq %r12, %rdi
callq 0x48b0
leaq -0x1f0(%rbp), %r14
leaq -0x1e0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x1050c(%rip), %rsi     # 0x14151
leaq 0x1051a(%rip), %rdx     # 0x14166
movq %r14, %rdi
callq 0x48b0
leaq -0x1d0(%rbp), %r14
leaq -0x1c0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x104fa(%rip), %rsi     # 0x14167
leaq 0x10508(%rip), %rdx     # 0x1417c
movq %r14, %rdi
callq 0x48b0
leaq -0x1b0(%rbp), %r14
leaq -0x1a0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x104e8(%rip), %rsi     # 0x1417d
leaq 0x104f6(%rip), %rdx     # 0x14192
movq %r14, %rdi
callq 0x48b0
leaq -0x190(%rbp), %r14
leaq -0x180(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x104d6(%rip), %rsi     # 0x14193
leaq 0x104e4(%rip), %rdx     # 0x141a8
movq %r14, %rdi
callq 0x48b0
leaq -0x170(%rbp), %r14
leaq -0x160(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x104c4(%rip), %rsi     # 0x141a9
leaq 0x104d2(%rip), %rdx     # 0x141be
movq %r14, %rdi
callq 0x48b0
leaq -0x150(%rbp), %r14
leaq -0x140(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x104b2(%rip), %rsi     # 0x141bf
leaq 0x104c0(%rip), %rdx     # 0x141d4
movq %r14, %rdi
callq 0x48b0
leaq -0x130(%rbp), %r14
leaq -0x120(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x104a0(%rip), %rsi     # 0x141d5
leaq 0x104b1(%rip), %rdx     # 0x141ed
movq %r14, %rdi
callq 0x48b0
movl $0x1, -0x2c(%rbp)
xorl %r14d, %r14d
movl $0xe, %edx
movq %rbx, %rdi
leaq 0x10491(%rip), %rsi     # 0x141ee
callq 0x2210
movq %rbx, %rdi
movl -0x2c(%rbp), %esi
callq 0x22e0
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
cmpq $0xe0, %r14
jne 0x3e1a
movl $0x21, %edx
movq %rbx, %rdi
leaq 0x1044e(%rip), %rsi     # 0x141fd
callq 0x2210
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq %rax, %r12
movl $0x22, %edx
movq %rax, %rdi
leaq 0x10432(%rip), %rsi     # 0x1421f
callq 0x2210
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
leaq (%r14,%rbp), %rsi
addq $-0x310, %rsi           # imm = 0xFCF0
leaq -0x70(%rbp), %rdi
callq 0x2100
leaq (%r14,%rbp), %rsi
addq $-0x210, %rsi           # imm = 0xFDF0
leaq -0x50(%rbp), %rdi
callq 0x2100
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
leaq -0xa0(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
leaq -0xb0(%rbp), %rdi
callq 0x4816
leaq -0x100(%rbp), %rax
movq %rax, -0x110(%rbp)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
leaq -0x110(%rbp), %r12
movq %r12, %rdi
callq 0x4816
leaq -0x1d70(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
movq %r12, %rdx
callq 0xb514
movq -0x110(%rbp), %rdi
leaq -0x100(%rbp), %rax
cmpq %rax, %rdi
je 0x3ee4
callq 0x21b0
movq -0xb0(%rbp), %rdi
leaq -0xa0(%rbp), %rax
cmpq %rax, %rdi
je 0x3efc
callq 0x21b0
leaq -0x80(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
leaq -0x90(%rbp), %rdi
callq 0x4816
leaq -0xe0(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
leaq -0xf0(%rbp), %r12
movq %r12, %rdi
callq 0x4816
leaq -0x3e60(%rbp), %rdi
leaq -0x90(%rbp), %rsi
movq %r12, %rdx
leaq -0x1d70(%rbp), %rcx
callq 0xa8e0
movq -0xf0(%rbp), %rdi
leaq -0xe0(%rbp), %rax
cmpq %rax, %rdi
je 0x3f7b
callq 0x21b0
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x3f90
callq 0x21b0
movb $0x1, -0x3e5e(%rbp)
movl $0x1f, %edx
movq %rbx, %rdi
leaq 0x1029c(%rip), %rsi     # 0x14242
callq 0x2210
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
leaq -0x3e60(%rbp), %rdi
callq 0xab84
movl %eax, %r12d
movl $0x1d, %edx
movq %rbx, %rdi
leaq 0x10272(%rip), %rsi     # 0x14262
callq 0x2210
movq %rbx, %rdi
movl %r12d, %esi
callq 0x22e0
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
movq %rax, %r12
movl $0x12, %edx
movq %rax, %rdi
leaq 0x101f3(%rip), %rsi     # 0x14280
callq 0x2210
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
leaq -0x3e60(%rbp), %rdi
callq 0xab72
movl $0x2b, %edx
movq %rbx, %rdi
leaq 0x101be(%rip), %rsi     # 0x14293
callq 0x2210
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
leaq -0x3e60(%rbp), %rdi
callq 0xac78
cmpb $0x1, -0x3e5f(%rbp)
jne 0x4324
movl $0x2e, %edx
movq %rbx, %rdi
leaq 0x10196(%rip), %rsi     # 0x142bf
callq 0x2210
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
leaq -0x510(%rbp), %rdi
leaq -0x50(%rbp), %rsi
movl $0x10, %edx
callq 0x20d0
leaq -0x718(%rbp), %rdi
leaq 0x10176(%rip), %rsi     # 0x142ee
movl $0x8, %edx
callq 0x2130
leaq -0xf00(%rbp), %rdi
leaq -0x718(%rbp), %rsi
leaq -0x510(%rbp), %rdx
callq 0x1120c
movl $0x9, %edx
movq %rbx, %rdi
leaq 0x1014c(%rip), %rsi     # 0x142f7
callq 0x2210
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
leaq -0xf00(%rbp), %rdi
callq 0x1124a
movl $0xa, %edx
movq %rbx, %rdi
leaq 0x1010f(%rip), %rsi     # 0x14301
callq 0x2210
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
leaq -0x510(%rbp), %rdi
callq 0x2260
leaq -0x718(%rbp), %rdi
callq 0x2050
leaq -0x510(%rbp), %rdi
leaq -0x50(%rbp), %rsi
movl $0x10, %edx
callq 0x20d0
leaq -0x718(%rbp), %rdi
leaq 0x10095(%rip), %rsi     # 0x142ee
movl $0x8, %edx
callq 0x2130
leaq -0xf00(%rbp), %rdi
callq 0x1151c
leaq -0x718(%rbp), %rdi
callq 0x2050
leaq -0x510(%rbp), %rdi
callq 0x2260
movl $0x2f, %edx
movq %rbx, %rdi
leaq 0x10076(%rip), %rsi     # 0x1430c
callq 0x2210
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
leaq -0xc0(%rbp), %rax
movq %rax, -0xd0(%rbp)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
leaq -0xd0(%rbp), %r12
movq %r12, %rdi
callq 0x4816
leaq -0x4e18(%rbp), %rdi
movq %r12, %rsi
movl $0x1, %edx
callq 0x12288
movq -0xd0(%rbp), %rdi
leaq -0xc0(%rbp), %rax
cmpq %rax, %rdi
je 0x4316
callq 0x21b0
leaq -0xf00(%rbp), %rdi
callq 0x11244
jmp 0x435f
movl $0x1b, %edx
movq %rbx, %rdi
leaq 0x10009(%rip), %rsi     # 0x1433c
callq 0x2210
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2140
leaq -0x3e60(%rbp), %rdi
callq 0x4666
leaq -0x1d70(%rbp), %rdi
callq 0x4742
addq $0x20, %r14
incl -0x2c(%rbp)
cmpq $0x100, %r14            # imm = 0x100
jne 0x3d4e
leaq -0x120(%rbp), %rbx
xorl %r14d, %r14d
movq -0x130(%rbp,%r14), %rdi
leaq (%rbx,%r14), %rax
cmpq %rdi, %rax
je 0x43ab
callq 0x21b0
addq $-0x20, %r14
cmpq $-0x100, %r14
jne 0x4395
leaq -0x220(%rbp), %rbx
xorl %r14d, %r14d
movq -0x230(%rbp,%r14), %rdi
leaq (%rbx,%r14), %rax
cmpq %rdi, %rax
je 0x43d8
callq 0x21b0
addq $-0x20, %r14
cmpq $-0x100, %r14
jne 0x43c2
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x43f7
callq 0x21b0
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x4409
callq 0x21b0
movq 0x15bb0(%rip), %rax     # 0x19fc0
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq -0x508(%rbp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, -0x510(%rbp,%rcx)
callq 0x2180
leaq -0x418(%rbp), %rdi
callq 0x2090
leaq -0x718(%rbp), %rdi
callq 0x2060
xorl %eax, %eax
addq $0x4df8, %rsp           # imm = 0x4DF8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x446b
jmp 0x446b
jmp 0x446b
jmp 0x446b
jmp 0x446b
jmp 0x446b
movq %rax, %rbx
cmpq %r14, %r12
je 0x4603
addq $-0x10, %r14
leaq -0x210(%rbp), %r15
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x4490
callq 0x21b0
leaq -0x20(%r14), %rax
addq $-0x10, %r14
cmpq %r15, %r14
movq %rax, %r14
jne 0x4482
jmp 0x4603
movq %rax, %rbx
movq %r12, %r14
jmp 0x446e
jmp 0x44b9
jmp 0x44b9
jmp 0x44b9
jmp 0x44b9
jmp 0x44b9
jmp 0x44b9
movq %rax, %rbx
cmpq %r14, %r15
je 0x4622
addq $-0x10, %r14
leaq -0x310(%rbp), %r15
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x44de
callq 0x21b0
leaq -0x20(%r14), %rax
addq $-0x10, %r14
cmpq %r15, %r14
movq %rax, %r14
jne 0x44d0
jmp 0x4622
movq %rax, %rbx
movq %r15, %r14
jmp 0x44bc
movq %rax, %rbx
jmp 0x4652
movq %rax, %rbx
jmp 0x4646
jmp 0x45c9
movq %rax, %rbx
movq -0xd0(%rbp), %rdi
leaq -0xc0(%rbp), %rax
cmpq %rax, %rdi
je 0x45b6
callq 0x21b0
jmp 0x45b6
jmp 0x45b3
movq %rax, %rbx
jmp 0x45d8
movq %rax, %rbx
jmp 0x455e
movq %rax, %rbx
movq -0xf0(%rbp), %rdi
leaq -0xe0(%rbp), %rax
cmpq %rax, %rdi
je 0x455e
callq 0x21b0
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x45d8
callq 0x21b0
jmp 0x45d8
jmp 0x45c4
movq %rax, %rbx
jmp 0x4597
movq %rax, %rbx
movq -0x110(%rbp), %rdi
leaq -0x100(%rbp), %rax
cmpq %rax, %rdi
je 0x4597
callq 0x21b0
movq -0xb0(%rbp), %rdi
leaq -0xa0(%rbp), %rax
cmpq %rax, %rdi
je 0x45e4
callq 0x21b0
jmp 0x45e4
jmp 0x45c9
movq %rax, %rbx
leaq -0xf00(%rbp), %rdi
callq 0x11244
jmp 0x45cc
movq %rax, %rbx
jmp 0x45e4
movq %rax, %rbx
leaq -0x3e60(%rbp), %rdi
callq 0x4666
leaq -0x1d70(%rbp), %rdi
callq 0x4742
movq $-0x100, %r14
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0x45f9
callq 0x21b0
addq $-0x20, %r15
addq $0x20, %r14
jne 0x45eb
movq $-0x100, %r14
movq -0x10(%r13), %rdi
cmpq %rdi, %r13
je 0x4618
callq 0x21b0
addq $-0x20, %r13
addq $0x20, %r14
jne 0x460a
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x4634
callq 0x21b0
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x4646
callq 0x21b0
leaq -0x510(%rbp), %rdi
callq 0x2280
leaq -0x718(%rbp), %rdi
callq 0x2060
movq %rbx, %rdi
callq 0x2300