// File: /workspace/github_cpp_makefile_star2_O1/AsherGlick[P]CommentHeader/source/main.cpp
// Function: main
int main(int argv, char * argc[]) {
  initilizeHeaderStyles();
  initilizeFullFlags();

  // parse arguments into a string
  string userInput = "";

  // used to append spaces after the first text argument
  string inputSpaces = "";

  // If there are no arguments, output the help screen
  if (argv <= 1) {
    help();
    return 0;
  }

  // create a vector of the arguments
  vector<string> arguments;
  for (int i = 0; i < argv; i++) {
    arguments.push_back(argc[i]);
  }

  // Loop through all of the arguments
  for (unsigned int i = 1; i < arguments.size(); i++) {
    // Check to see if the input is a flag
    if (arguments[i][0] == '-') {
      // Check to see if the flag is a fulltext flag
      if (arguments[i][1] == '-') {
        string flag = arguments[i];
        flag = flag.substr(2, flag.size() - 2);
        string smallflag = fullFlagCompression[flag];
        if (smallflag == "") {
          cout << "Undefined Argument: " << flag << endl;
          postArgParseHalt = true;
          continue;
        }
        else {
          arguments[i] = "-"+smallflag;
        }
      }
      for (unsigned int j = 1; j < arguments[i].size(); j++) {
        // Grab arguments for width
        if (arguments[i][j] == 'w') {
          if (i+1 >= arguments.size()) {
            cout << "Error: You did not specify a width for your title after using the -w flag" << endl;
            postArgParseHalt = true;
          }
          else {
            titleWidth = atoi(arguments[i + 1].c_str());
            arguments.erase(arguments.begin()+i+1);
          }
        }
        // Grab arguments for length
        else if (arguments[i][j] == 'l') {
          if (i+1 >= arguments.size()) {
            cout << "Error: You did not specify a length for your title after using the -l flag" << endl;
            postArgParseHalt = true;
          }
          else {
            titleLength = atoi(arguments[i + 1].c_str());
            arguments.erase(arguments.begin() + i + 1);
          }
        }
        else if (activateFlag(arguments[i][j])) {}
        else {
          cout << "Undefined flag: " << arguments[i][j] << endl;
          postArgParseHalt = true;  // Stop the program after parsing inputs
        }
      }
    }

    // Take all non flagged input and append it together
    else {
      userInput += inputSpaces + arguments[i];
      inputSpaces = " ";
    }
  }

  // Kill the program if any undefined flags were found
  if (postArgParseHalt) {
    return 1;
  }

  // Prevent the extended input flag and the tital flag from both being active
  if (inputLocationFlagSet && outputFormatFlag != 'f') {
    // extendedInputFlag = false; // TODO should this be replaced?
    cout << "Warning: the input location flag is ignored becasue you are not creating a function title" << endl;
  }

  // A string for containing the extended input's data
  string extendedInputString = "";


  stringstream output;
  // Check to see what type of header needs to be generated
  switch (outputFormatFlag) {
    case 'h':
      help();
      break;
    case 's':
      output << signiture() << endl;
      break;
    case 'b':
      output << bsd(userInput) << endl;
      break;
    case 't':
      output << title(userInput) << endl;
      break;
    case 'f':

      // Check for the input flag
      if (inputLocationFlag == 'a') {
        extendedInputString = "I AM NOT PARSING FROM ARGS PROPERLY"; // TODO: PARSE FROM ARGS
      }
      else if (inputLocationFlag == 'i') {
        extendedInputString = captureExtendedInput();
      }
      else if (inputLocationFlag == 'c') {
        extendedInputString = copyFromClipboard();
      }

      output << headder(userInput, extendedInputString, outputRightWallFlag) << endl;
      break;

    default:
      cout << "ERROR: UNKNOWN FORMAT FLAG FOUND" << endl;
  }

  // Output the results to stdout or to xclip depending on the flag specified
  
  if (outputLocationFlag == 'v') {
    if (copyToClipboard(output.str()) == -1) {
      // Print the output to stdout if xclip is not found
      cout << output.str();
    }
  }
  else if (outputLocationFlag == 'o') {
    cout << output.str();
  }
  else {
    cout << "Invalid outputLocationFlag" << endl;
    cout << output.str();
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2c8, %rsp            # imm = 0x2C8
movq %rsi, %rbx
movl %edi, %r15d
callq 0x372c
callq 0x8f07
leaq -0x98(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x62a9(%rip), %r14      # 0xfbd9
leaq -0xa8(%rbp), %rdi
movq %r14, %rsi
movq %r14, %rdx
callq 0x7590
leaq -0xb8(%rbp), %rax
movq %rax, -0x10(%rax)
leaq -0xc8(%rbp), %rdi
movq %r14, %rsi
movq %r14, %rdx
callq 0x7590
cmpl $0x1, %r15d
jg 0x9971
xorl %ebx, %ebx
callq 0xa50b
jmp 0xa309
xorps %xmm0, %xmm0
leaq -0x60(%rbp), %rax
movaps %xmm0, (%rax)
movq $0x0, 0x10(%rax)
movl %r15d, %r13d
xorl %r14d, %r14d
leaq -0x2f0(%rbp), %r15
leaq -0x80(%rbp), %r12
movq (%rbx,%r14,8), %rsi
movq %r15, %rdi
movq %r12, %rdx
callq 0x3110
leaq -0x60(%rbp), %rdi
movq %r15, %rsi
callq 0xdd16
movq -0x2f0(%rbp), %rdi
leaq -0x2e0(%rbp), %rax
cmpq %rax, %rdi
je 0x99c7
callq 0x3260
incq %r14
cmpq %r14, %r13
jne 0x9994
movq -0x60(%rbp), %rdx
movq -0x58(%rbp), %rax
subq %rdx, %rax
cmpq $0x21, %rax
jb 0x9dc2
movl $0x1, %eax
movq %rax, -0x88(%rbp)
movl $0x1, %r12d
leaq -0x2f0(%rbp), %rdi
shlq $0x5, %r12
movq (%rdx,%r12), %rax
addq %r12, %rdx
cmpb $0x2d, (%rax)
jne 0x9b01
cmpb $0x2d, 0x1(%rax)
jne 0x9bfc
leaq -0x2e0(%rbp), %rax
movq %rax, -0x2f0(%rbp)
movq (%rdx), %rsi
movq 0x8(%rdx), %rdx
addq %rsi, %rdx
leaq -0x2f0(%rbp), %rbx
movq %rbx, %rdi
callq 0x802a
movq -0x2e8(%rbp), %rcx
addq $-0x2, %rcx
movl $0x2, %edx
leaq -0x80(%rbp), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq 0x3290
movq %rbx, %rdi
movq %r14, %rsi
callq 0x32e0
movq -0x80(%rbp), %rdi
leaq -0x70(%rbp), %rax
cmpq %rax, %rdi
leaq -0x48(%rbp), %r13
je 0x9a82
callq 0x3260
leaq 0xaaff(%rip), %rdi      # 0x14588
movq %rbx, %rsi
callq 0xd2b8
leaq -0x70(%rbp), %rcx
movq %rcx, -0x80(%rbp)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x802a
movq %r14, %rdi
leaq 0x6124(%rip), %rsi      # 0xfbd9
callq 0x30c0
movl %eax, %r15d
testl %eax, %eax
je 0x9b66
movq %r13, %rdi
leaq 0x6012(%rip), %rsi      # 0xfae1
movq %r14, %rdx
callq 0xd337
movq -0x60(%rbp), %rdi
addq %r12, %rdi
movq %r13, %rsi
callq 0x32e0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x9bc9
callq 0x3260
jmp 0x9bc9
leaq -0xc8(%rbp), %rsi
callq 0xd3c2
movq -0x2f0(%rbp), %rsi
movq -0x2e8(%rbp), %rdx
leaq -0xa8(%rbp), %rdi
callq 0x30d0
movq -0x2f0(%rbp), %rdi
leaq -0x2e0(%rbp), %rax
cmpq %rax, %rdi
je 0x9b3f
callq 0x3260
movq -0xc0(%rbp), %rdx
movl $0x1, %r8d
leaq -0xc8(%rbp), %rdi
xorl %esi, %esi
leaq 0x54c0(%rip), %rcx      # 0xf01c
callq 0x3340
jmp 0x9d90
movl $0x14, %edx
movq 0xa446(%rip), %rdi      # 0x13fb8
leaq 0x58f8(%rip), %rsi      # 0xf471
callq 0x32c0
movq -0x2f0(%rbp), %rsi
movq -0x2e8(%rbp), %rdx
movq 0xa425(%rip), %rdi      # 0x13fb8
callq 0x32c0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3270
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31a0
movb $0x1, 0xa9ef(%rip)      # 0x145b8
movq -0x80(%rbp), %rdi
leaq -0x70(%rbp), %rax
cmpq %rax, %rdi
je 0x9bdb
callq 0x3260
movq -0x2f0(%rbp), %rdi
leaq -0x2e0(%rbp), %rax
cmpq %rax, %rdi
je 0x9bf3
callq 0x3260
testl %r15d, %r15d
je 0x9d90
movq -0x60(%rbp), %rax
cmpq $0x2, 0x8(%rax,%r12)
jb 0x9d90
leaq (%rax,%r12), %r15
movq -0x88(%rbp), %rcx
leal 0x1(%rcx), %r14d
movl $0x1, %ebx
movl $0x2, %r13d
movq (%r15), %rcx
movzbl (%rcx,%rbx), %ecx
cmpl $0x6c, %ecx
je 0x9c82
cmpl $0x77, %ecx
jne 0x9cf9
movq -0x58(%rbp), %rcx
subq %rax, %rcx
sarq $0x5, %rcx
movl $0x49, %edx
leaq 0x5834(%rip), %rsi      # 0xf486
cmpq %r14, %rcx
jbe 0x9cc9
movq %r14, %rcx
shlq $0x5, %rcx
movq (%rax,%rcx), %rdi
callq 0x3350
movl %eax, 0xa5b3(%rip)      # 0x14220
addq $0x20, %r15
leaq -0x60(%rbp), %rdi
movq %r15, %rsi
callq 0xe0a0
jmp 0x9d77
movq -0x58(%rbp), %rcx
subq %rax, %rcx
sarq $0x5, %rcx
movl $0x4a, %edx
leaq 0x5837(%rip), %rsi      # 0xf4d0
cmpq %r14, %rcx
jbe 0x9cc9
movq %r14, %rcx
shlq $0x5, %rcx
movq (%rax,%rcx), %rdi
callq 0x3350
movl %eax, 0xa8cc(%rip)      # 0x14580
addq $0x20, %r15
leaq -0x60(%rbp), %rdi
movq %r15, %rsi
callq 0xe0a0
jmp 0x9d77
movq 0xa2e8(%rip), %rdi      # 0x13fb8
callq 0x32c0
movq 0xa2dc(%rip), %rcx      # 0x13fb8
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x3270
movq 0xa2c1(%rip), %r15      # 0x13fb8
jmp 0x9d5d
movsbl %cl, %edi
callq 0x92f7
testb %al, %al
jne 0x9d77
movl $0x10, %edx
movq 0xa2a7(%rip), %rdi      # 0x13fb8
leaq 0x5803(%rip), %rsi      # 0xf51b
callq 0x32c0
movq -0x60(%rbp), %rax
movq (%rax,%r12), %rax
movb (%rax,%rbx), %al
movb %al, -0x2f0(%rbp)
movl $0x1, %edx
movq 0xa27e(%rip), %rdi      # 0x13fb8
leaq -0x2f0(%rbp), %rsi
callq 0x32c0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x3270
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31a0
movb $0x1, 0xa841(%rip)      # 0x145b8
movl %r13d, %ebx
movq -0x60(%rbp), %rax
leaq (%rax,%r12), %r15
incl %r13d
cmpq %rbx, 0x8(%rax,%r12)
ja 0x9c26
movq -0x88(%rbp), %rcx
incl %ecx
movq -0x60(%rbp), %rdx
movq -0x58(%rbp), %rax
subq %rdx, %rax
sarq $0x5, %rax
movq %rcx, %r12
movq %rcx, -0x88(%rbp)
cmpq %rcx, %rax
leaq -0x2f0(%rbp), %rdi
ja 0x99fd
movl $0x1, %ebx
cmpb $0x0, 0xa7ea(%rip)      # 0x145b8
jne 0xa300
cmpb $0x1, 0xa79f(%rip)      # 0x1457a
jne 0x9e2c
cmpb $0x66, 0xa434(%rip)     # 0x14218
je 0x9e2c
movq 0xa1cb(%rip), %rbx      # 0x13fb8
leaq 0x5738(%rip), %rsi      # 0xf52c
movl $0x59, %edx
movq %rbx, %rdi
callq 0x32c0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3270
movsbl %al, %esi
movq 0xa199(%rip), %rdi      # 0x13fb8
callq 0x3030
movq %rax, %rdi
callq 0x31a0
leaq -0x70(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x5d9e(%rip), %rdx      # 0xfbd9
leaq -0x80(%rbp), %rdi
movq %rdx, %rsi
callq 0x7590
leaq -0x2f0(%rbp), %rdi
callq 0x31c0
movzbl 0xa3be(%rip), %eax      # 0x14218
cmpl $0x67, %eax
jle 0x9f12
cmpl $0x68, %eax
je 0x9f5b
cmpl $0x73, %eax
je 0x9f65
cmpl $0x74, %eax
jne 0xa056
leaq -0x118(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0xa8(%rbp), %rsi
movq -0xa0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x128(%rbp), %rdi
callq 0x802a
leaq -0x48(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0xbe18
leaq -0x2e0(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
callq 0x32c0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3270
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31a0
leaq -0x38(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9f06
callq 0x3260
movq -0x128(%rbp), %rdi
jmp 0xa1a7
cmpl $0x62, %eax
je 0x9fc2
cmpl $0x66, %eax
jne 0xa056
movzbl 0xa2ef(%rip), %eax      # 0x1421a
cmpl $0x69, %eax
je 0xa0ac
cmpl $0x63, %eax
je 0xa0a1
cmpl $0x61, %eax
jne 0xa0d6
leaq 0x5639(%rip), %rsi      # 0xf586
leaq -0x80(%rbp), %rdi
callq 0x32f0
jmp 0xa0d6
callq 0xa50b
jmp 0xa1b1
leaq -0x48(%rbp), %rdi
callq 0xaf9f
leaq -0x2e0(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
callq 0x32c0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3270
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31a0
leaq -0x38(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0xa1ac
jmp 0xa1b1
leaq -0x138(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0xa8(%rbp), %rsi
movq -0xa0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x148(%rbp), %rdi
callq 0x802a
leaq -0x48(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0xb3b9
leaq -0x2e0(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
callq 0x32c0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3270
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31a0
leaq -0x38(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa04a
callq 0x3260
movq -0x148(%rbp), %rdi
jmp 0xa1a7
movq 0x9f5b(%rip), %rbx      # 0x13fb8
leaq 0x5546(%rip), %rsi      # 0xf5aa
movl $0x20, %edx
movq %rbx, %rdi
callq 0x32c0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3270
movsbl %al, %esi
movq 0x9f29(%rip), %rdi      # 0x13fb8
callq 0x3030
movq %rax, %rdi
callq 0x31a0
jmp 0xa1b1
leaq -0x48(%rbp), %rdi
callq 0x8baf
jmp 0xa0b5
leaq -0x48(%rbp), %rdi
callq 0x9704
leaq -0x80(%rbp), %rdi
leaq -0x48(%rbp), %rbx
movq %rbx, %rsi
callq 0x32e0
movq (%rbx), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xa0d6
callq 0x3260
leaq -0xf8(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0xa8(%rbp), %rsi
movq -0xa0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x108(%rbp), %rdi
callq 0x802a
leaq -0xd8(%rbp), %r12
movq %r12, -0x10(%r12)
movq -0x80(%rbp), %rsi
movq -0x78(%rbp), %rdx
addq %rsi, %rdx
leaq -0xe8(%rbp), %rdi
callq 0x802a
movsbl 0xa0f1(%rip), %ecx      # 0x14219
leaq -0x48(%rbp), %rdi
leaq -0x108(%rbp), %rsi
leaq -0xe8(%rbp), %rdx
callq 0xc50a
leaq -0x2e0(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
callq 0x32c0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3270
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31a0
leaq -0x38(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa18f
callq 0x3260
movq -0xe8(%rbp), %rdi
cmpq %r12, %rdi
je 0xa1a0
callq 0x3260
movq -0x108(%rbp), %rdi
cmpq %r14, %rdi
je 0xa1b1
callq 0x3260
movzbl 0xa063(%rip), %eax      # 0x1421b
cmpl $0x6f, %eax
je 0xa22f
cmpl $0x76, %eax
jne 0xa255
leaq -0x2d8(%rbp), %rbx
leaq -0x168(%rbp), %rdi
movq %rbx, %rsi
callq 0x3370
leaq -0x168(%rbp), %rdi
callq 0x8a40
movl %eax, %r14d
leaq -0x158(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa200
callq 0x3260
cmpl $-0x1, %r14d
jne 0xa2d1
leaq -0x48(%rbp), %rdi
movq %rbx, %rsi
callq 0x3370
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq 0x9d93(%rip), %rdi      # 0x13fb8
callq 0x32c0
jmp 0xa2bf
leaq -0x2d8(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0x3370
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq 0x9d6a(%rip), %rdi      # 0x13fb8
callq 0x32c0
jmp 0xa2bf
movq 0x9d5c(%rip), %rbx      # 0x13fb8
leaq 0x5368(%rip), %rsi      # 0xf5cb
movl $0x1a, %edx
movq %rbx, %rdi
callq 0x32c0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3270
movsbl %al, %esi
movq 0x9d2a(%rip), %rdi      # 0x13fb8
callq 0x3030
movq %rax, %rdi
callq 0x31a0
leaq -0x2d8(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0x3370
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq 0x9cfe(%rip), %rdi      # 0x13fb8
callq 0x32c0
leaq -0x38(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa2d1
callq 0x3260
movq 0x9cc8(%rip), %rsi      # 0x13fa0
leaq -0x2f0(%rbp), %rdi
callq 0x31e0
leaq -0x270(%rbp), %rdi
callq 0x30e0
movq -0x80(%rbp), %rdi
cmpq %r15, %rdi
je 0xa2fe
callq 0x3260
xorl %ebx, %ebx
leaq -0x60(%rbp), %rdi
callq 0x7d36
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0xa321
callq 0x3260
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0xa339
callq 0x3260
movl %ebx, %eax
addq $0x2c8, %rsp            # imm = 0x2C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xa44d
jmp 0xa44d
jmp 0xa41f
jmp 0xa44d
movq %rax, %rbx
jmp 0xa3c4
movq %rax, %rbx
jmp 0xa3d5
movq %rax, %rbx
jmp 0xa3f3
movq %rax, %rbx
jmp 0xa411
jmp 0xa44d
jmp 0xa44d
jmp 0xa44d
jmp 0xa44d
jmp 0xa41f
jmp 0xa44d
jmp 0xa41f
movq %rax, %rbx
leaq -0x158(%rbp), %rax
jmp 0xa426
jmp 0xa44d
movq %rax, %rbx
leaq -0x38(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa3c4
callq 0x3260
movq -0xe8(%rbp), %rdi
cmpq %r12, %rdi
je 0xa3d5
callq 0x3260
movq -0x108(%rbp), %rdi
jmp 0xa418
movq %rax, %rbx
leaq -0x38(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa3f3
callq 0x3260
movq -0x148(%rbp), %rdi
jmp 0xa418
movq %rax, %rbx
leaq -0x38(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa411
callq 0x3260
movq -0x128(%rbp), %rdi
cmpq %r14, %rdi
jne 0xa42f
jmp 0xa450
movq %rax, %rbx
leaq -0x38(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa450
callq 0x3260
jmp 0xa450
movq %rax, %rbx
jmp 0xa46f
jmp 0xa4c7
jmp 0xa4c7
movq %rax, %rbx
jmp 0xa4d3
movq %rax, %rbx
movq 0x9b49(%rip), %rsi      # 0x13fa0
leaq -0x2f0(%rbp), %rdi
callq 0x31e0
leaq -0x270(%rbp), %rdi
callq 0x30e0
movq -0x80(%rbp), %rdi
cmpq %r15, %rdi
jne 0xa4c0
jmp 0xa4ca
movq %rax, %rbx
jmp 0xa4eb
jmp 0xa485
jmp 0xa4aa
jmp 0xa4c7
movq %rax, %rbx
movq -0x80(%rbp), %rdi
leaq -0x70(%rbp), %rax
cmpq %rax, %rdi
je 0xa4ad
callq 0x3260
jmp 0xa4ad
jmp 0xa4c7
jmp 0xa4c7
jmp 0xa4aa
jmp 0xa4aa
jmp 0xa4c7
jmp 0xa4c7
jmp 0xa4c7
movq %rax, %rbx
movq -0x2f0(%rbp), %rdi
leaq -0x2e0(%rbp), %rax
cmpq %rax, %rdi
je 0xa4ca
callq 0x3260
jmp 0xa4ca
movq %rax, %rbx
leaq -0x60(%rbp), %rdi
callq 0x7d36
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0xa4eb
callq 0x3260
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0xa503
callq 0x3260
movq %rbx, %rdi
callq 0x3390