// File: /workspace/github_cpp_makefile_star2_O3/rfotino[P]consolite-compiler/src/syntax.cpp
// Function: GlobalVarToken::parse(Tokenizer*, std::vector<std::shared_ptr<FunctionToken>, std::allocator<std::shared_ptr<FunctionToken>>> const&, std::vector<std::shared_ptr<GlobalVarToken>, std::allocator<std::shared_ptr<GlobalVarToken>>> const&)
bool GlobalVarToken::parse(
      Tokenizer *tokenizer,
      const std::vector<std::shared_ptr<FunctionToken>>& functions,
      const std::vector<std::shared_ptr<GlobalVarToken>>& globals) {
  _lineNum = _type.line();
  // Validate the type
  if ("void" == _type.name()) {
    _error("Global var cannot be of type 'void'.", _type.line());
    return false;
  }
  // Validate the name
  if (!isValidName(_name)) {
    _error("Invalid global var name '" + _name + "'.", _type.line());
    return false;
  } else if (getFunction(_name, functions)) {
    _error("Global var '" + _name + "' conflicts with existing function name.",
           _type.line());
    return false;
  } else if (getGlobal(_name, globals)) {
    _error("Global var '" + _name + "' conflicts with existing global var name.",
           _type.line());
    return false;
  }
  // Validate the value (if set)
  AtomToken next = tokenizer->getNext();
  AtomToken last = next;
  if ("=" == next.str()) {
    if (_type.isArray()) {
      // Make sure array expression has as many values as the type
      // requires, and make sure they are all constant.
      ArrayExprToken arrayExpr;
      if (!arrayExpr.parse(tokenizer, functions, globals)) {
        return false;
      } else if (arrayExpr.size() != _type.arraySize()) {
        _error("Array size mismatch.", _type.line());
        return false;
      }
      for (size_t i = 0; i < arrayExpr.size(); i++) {
        auto expr = arrayExpr.get(i);
        if (!expr->isConst()) {
          _error("Global value must be known at compile time.", expr->line());
          return false;
        }
        _arrayValues.push_back(expr->val());
      }
    } else {
      // Not an array value, get the singleton initialization expression
      ExprToken expr;
      if (!expr.parse(tokenizer, functions, globals)) {
        return false;
      } else if (!expr.isConst()) {
        _error("Global value must be known at compile time.", expr.line());
        return false;
      }
      _value = expr.val();
    }
    // This should be a semicolon
    last = tokenizer->getNext();
  } else if (";" == next.str()) {
    // No value supplied, give default value of 0.
    if (_type.isArray()) {
      for (size_t i = 0; i < _type.arraySize(); i++) {
        _arrayValues.push_back(0);
      }
    } else {
      _value = 0;
    }
  }
  if (last.empty()) {
    _error("Unexpected EOF.", last.line());
    return false;
  } else if (";" != last.str()) {
    _error("Unexpected token '" + last.str() + "', expected ';'.", last.line());
    return false;
  }
  return true;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xf8, %rsp
movq %rcx, 0x8(%rsp)
movq %rdx, %rbp
movq %rsi, %r14
movq %rdi, %rbx
movl 0x40(%rdi), %eax
movl %eax, 0x8(%rdi)
leaq 0x78(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x48(%rdi), %rsi
movq 0x50(%rdi), %rdx
addq %rsi, %rdx
leaq 0x68(%rsp), %r12
movq %r12, %rdi
callq 0xbd58
leaq 0x1dc59(%rip), %rsi     # 0x35040
movq %r12, %rdi
callq 0x70c0
movl %eax, %r15d
movq (%r12), %rdi
cmpq %r13, %rdi
je 0x17408
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x72c0
testl %r15d, %r15d
je 0x174af
leaq 0x70(%rbx), %r15
movq %r15, %rdi
callq 0x338b8
testb %al, %al
je 0x174ef
movq %r14, 0xc8(%rsp)
leaq 0x68(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
movq %rbp, %rdx
callq 0x33e1d
movq (%r12), %r14
movq 0x8(%r12), %rdi
testq %rdi, %rdi
je 0x17453
callq 0x8036
testq %r14, %r14
je 0x17542
leaq 0x1e6bc(%rip), %rsi     # 0x35b1f
leaq 0x98(%rsp), %r14
movq %r14, %rdi
movq %r15, %rdx
callq 0xb692
leaq 0x1e6af(%rip), %rsi     # 0x35b2c
movq %r14, %rdi
callq 0x7560
movq %r13, 0x68(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x175f7
movq %rdx, 0x68(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x78(%rsp)
jmp 0x175ff
leaq 0x68(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x1e622(%rip), %rsi     # 0x35ae0
leaq 0x1e63f(%rip), %rdx     # 0x35b04
callq 0xbdee
movl 0x40(%rbx), %esi
leaq 0x68(%rsp), %rdi
callq 0x34178
movq 0x68(%rsp), %rdi
cmpq %r13, %rdi
je 0x177f6
movq 0x78(%rsp), %rsi
jmp 0x177ee
leaq 0x1e60f(%rip), %rsi     # 0x35b05
leaq 0x98(%rsp), %r14
movq %r14, %rdi
movq %r15, %rdx
callq 0xb692
leaq 0x1e832(%rip), %rsi     # 0x35d42
movq %r14, %rdi
callq 0x7560
movq %r13, 0x68(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x175c6
movq %rdx, 0x68(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x78(%rsp)
jmp 0x175ce
leaq 0x68(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
movq 0x8(%rsp), %rdx
callq 0x33f2c
movq (%r12), %r14
movq 0x8(%r12), %rdi
testq %rdi, %rdi
je 0x1756a
callq 0x8036
testq %r14, %r14
je 0x17628
leaq 0x1e5a5(%rip), %rsi     # 0x35b1f
leaq 0x98(%rsp), %r14
movq %r14, %rdi
movq %r15, %rdx
callq 0xb692
leaq 0x1e5c1(%rip), %rsi     # 0x35b55
movq %r14, %rdi
callq 0x7560
movq %r13, 0x68(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x17792
movq %rdx, 0x68(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x78(%rsp)
jmp 0x1779a
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq 0x68(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl 0x40(%rbx), %esi
callq 0x34178
jmp 0x177be
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq 0x68(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl 0x40(%rbx), %esi
callq 0x34178
jmp 0x177be
leaq 0x68(%rsp), %r15
movq %r15, %rdi
movq 0xc8(%rsp), %rsi
callq 0x32902
movl 0x8(%r15), %eax
leaq 0xa8(%rsp), %rdi
movl %eax, -0x8(%rdi)
leaq 0x2e6bd(%rip), %rax     # 0x45d10
movq %rax, -0x10(%rdi)
leaq 0xb8(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x10(%r15), %rsi
movq 0x18(%r15), %rdx
addq %rsi, %rdx
callq 0xbd58
leaq 0x48(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x78(%rsp), %rsi
movq 0x80(%rsp), %rdx
addq %rsi, %rdx
leaq 0x38(%rsp), %rdi
callq 0xbd58
leaq 0x1df55(%rip), %rsi     # 0x355f2
leaq 0x38(%rsp), %r12
movq %r12, %rdi
callq 0x70c0
movl %eax, %r15d
movq (%r12), %rdi
cmpq %r13, %rdi
movq %r13, %r12
je 0x176c6
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x72c0
testl %r15d, %r15d
leaq 0x2e640(%rip), %r13     # 0x45d10
je 0x1780c
leaq 0x38(%rsp), %rdi
movq %r12, (%rdi)
movq 0x78(%rsp), %rsi
movq 0x80(%rsp), %rdx
addq %rsi, %rdx
callq 0xbd58
leaq 0x1e4c7(%rip), %rsi     # 0x35bc1
leaq 0x38(%rsp), %r14
movq %r14, %rdi
callq 0x70c0
movl %eax, %ebp
movq (%r14), %rdi
movq %r12, %r15
cmpq %r12, %rdi
je 0x17721
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x72c0
testl %ebp, %ebp
jne 0x17b0e
cmpb $0x1, 0x68(%rbx)
jne 0x17b05
cmpw $0x0, 0x6a(%rbx)
je 0x17b0e
leaq 0x98(%rbx), %r14
xorl %r12d, %r12d
leaq 0x38(%rsp), %rbp
movw $0x0, 0x38(%rsp)
movq 0xa0(%rbx), %rsi
cmpq 0xa8(%rbx), %rsi
je 0x17776
movw $0x0, (%rsi)
addq $0x2, %rsi
movq %rsi, 0xa0(%rbx)
jmp 0x17781
movq %r14, %rdi
movq %rbp, %rdx
callq 0x30eb8
incq %r12
movzwl 0x6a(%rbx), %eax
cmpq %rax, %r12
jb 0x1774d
jmp 0x17b0e
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq 0x68(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl 0x40(%rbx), %esi
callq 0x34178
movq 0x68(%rsp), %rdi
cmpq %r13, %rdi
je 0x177d5
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x72c0
leaq 0xa8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x177f6
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x72c0
xorl %ebx, %ebx
movl %ebx, %eax
addq $0xf8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpb $0x1, 0x68(%rbx)
jne 0x17a12
leaq 0x48(%rsp), %r15
movl $0xffffffff, -0x8(%r15) # imm = 0xFFFFFFFF
leaq 0x2ec16(%rip), %r12     # 0x46440
movq %r12, -0x10(%r15)
xorps %xmm0, %xmm0
movups %xmm0, (%r15)
xorl %eax, %eax
movq %rax, 0x10(%r15)
leaq 0x10(%rsp), %r8
movq %rax, 0x10(%r8)
movaps %xmm0, (%r8)
leaq 0xd0(%rsp), %r9
movq %rax, 0x10(%r9)
movaps %xmm0, (%r9)
leaq 0x38(%rsp), %rdi
movq 0xc8(%rsp), %rsi
movq %rbp, %rdx
movq 0x8(%rsp), %rcx
callq 0x16dd4
movl %eax, %ebp
leaq 0xd0(%rsp), %rdi
callq 0xb4aa
leaq 0x10(%rsp), %rdi
callq 0xb3fe
testb %bpl, %bpl
je 0x17d13
movq 0x48(%rsp), %rax
movq 0x50(%rsp), %rcx
movq %rcx, %rdx
subq %rax, %rdx
sarq $0x4, %rdx
movzwl 0x6a(%rbx), %esi
cmpq %rsi, %rdx
jne 0x17cc6
cmpq %rax, %rcx
je 0x179eb
leaq 0x98(%rbx), %rcx
movq %rcx, 0xf0(%rsp)
xorl %r12d, %r12d
leaq 0x10(%rsp), %r15
xorl %r14d, %r14d
movq %r12, %rcx
sarq $0x1c, %rcx
movq (%rax,%rcx), %rbp
movq 0x8(%rax,%rcx), %rax
movq %rax, 0x8(%rsp)
testq %rax, %rax
je 0x17911
movq 0x2f69f(%rip), %rax     # 0x46f98
cmpb $0x0, (%rax)
je 0x17908
movq 0x8(%rsp), %rax
incl 0x8(%rax)
jmp 0x17911
movq 0x8(%rsp), %rax
lock
incl 0x8(%rax)
movb 0xc(%rbp), %r13b
testb %r13b, %r13b
je 0x1794d
movq (%rbp), %rax
movq %rbp, %rdi
movq 0x8(%rsp), %rbp
callq *(%rax)
movw %ax, 0x10(%rsp)
movq 0xa0(%rbx), %rsi
cmpq 0xa8(%rbx), %rsi
je 0x1799b
movw %ax, (%rsi)
addq $0x2, %rsi
movq %rsi, 0xa0(%rbx)
jmp 0x179ab
leaq 0x20(%rsp), %rax
movq %rax, 0x10(%rsp)
movq %r15, %rdi
leaq 0x1e234(%rip), %rsi     # 0x35b95
leaq 0x1e258(%rip), %rdx     # 0x35bc0
callq 0xbdee
movl 0x8(%rbp), %esi
movq %r15, %rdi
callq 0x34178
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
movq 0x8(%rsp), %rbp
je 0x179ab
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x72c0
jmp 0x179ab
movq 0xf0(%rsp), %rdi
movq %r15, %rdx
callq 0x30eb8
testq %rbp, %rbp
je 0x179b8
movq %rbp, %rdi
callq 0x8036
testb %r13b, %r13b
je 0x17dd3
incq %r14
movq 0x48(%rsp), %rax
movq 0x50(%rsp), %rcx
subq %rax, %rcx
sarq $0x4, %rcx
movabsq $0x100000000, %rdx      # imm = 0x100000000
addq %rdx, %r12
cmpq %rcx, %r14
jb 0x178d8
leaq 0x2ea4e(%rip), %rax     # 0x46440
movq %rax, 0x38(%rsp)
leaq 0x48(%rsp), %rdi
callq 0x22242
leaq 0x2e308(%rip), %r13     # 0x45d10
leaq 0x48(%rsp), %r12
jmp 0x17ab1
leaq 0x38(%rsp), %rdi
movl $0xffffffff, 0x8(%rdi)  # imm = 0xFFFFFFFF
leaq 0x2e613(%rip), %r15     # 0x46038
movq %r15, (%rdi)
movb $0x1, 0xc(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0xe(%rdi)
movups %xmm0, 0x18(%rdi)
xorl %eax, %eax
leaq 0x10(%rsp), %r8
movq %rax, 0x10(%r8)
movaps %xmm0, (%r8)
leaq 0xd0(%rsp), %r9
movq %rax, 0x10(%r9)
movaps %xmm0, (%r9)
movq 0xc8(%rsp), %rsi
movq %rbp, %rdx
movq 0x8(%rsp), %rcx
callq 0x1131a
movl %eax, %ebp
leaq 0xd0(%rsp), %rdi
callq 0xb4aa
leaq 0x10(%rsp), %rdi
callq 0xb3fe
testb %bpl, %bpl
je 0x17d70
cmpb $0x0, 0x44(%rsp)
je 0x17d22
leaq 0x48(%rsp), %rdi
movzwl -0x2(%rdi), %eax
movw %ax, 0x92(%rbx)
movq %r15, -0x10(%rdi)
callq 0x219de
leaq 0x38(%rsp), %rdi
movq 0xc8(%rsp), %rsi
callq 0x32902
movq %r12, %r15
leaq 0x48(%rsp), %rbx
movl -0x8(%rbx), %eax
movl %eax, 0xa0(%rsp)
leaq 0xa8(%rsp), %rdi
movq %rbx, %rsi
callq 0x7370
movq %r13, -0x10(%rbx)
movq (%rbx), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x17b0e
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x72c0
jmp 0x17b0e
movw $0x0, 0x92(%rbx)
movq 0xb0(%rsp), %rdx
leaq 0x38(%rsp), %rdi
testq %rdx, %rdx
je 0x17be3
movq %r15, (%rdi)
movq 0xa8(%rsp), %rsi
addq %rsi, %rdx
callq 0xbd58
leaq 0x1e083(%rip), %rsi     # 0x35bc1
leaq 0x38(%rsp), %r14
movq %r14, %rdi
callq 0x70c0
movl %eax, %ebx
movq (%r14), %rdi
cmpq %r15, %rdi
je 0x17b62
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x72c0
testl %ebx, %ebx
je 0x17c32
leaq 0xe0(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0xa8(%rsp), %rsi
movq 0xb0(%rsp), %rdx
addq %rsi, %rdx
leaq 0xd0(%rsp), %rdi
callq 0xbd58
leaq 0x1dd0a(%rip), %rsi     # 0x358a7
leaq 0x10(%rsp), %rdi
leaq 0xd0(%rsp), %rdx
callq 0x2190d
leaq 0x1e00d(%rip), %rsi     # 0x35bc3
leaq 0x10(%rsp), %rdi
callq 0x7560
movq %r15, 0x38(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x17c39
movq %rdx, 0x38(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x48(%rsp)
jmp 0x17c40
movq %r15, (%rdi)
leaq 0x1ddea(%rip), %rsi     # 0x359d7
leaq 0x1ddf2(%rip), %rdx     # 0x359e6
leaq 0xb8(%rsp), %r14
callq 0xbdee
movl 0xa0(%rsp), %esi
leaq 0x38(%rsp), %rdi
callq 0x34178
movq 0x38(%rsp), %rdi
cmpq %r15, %rdi
je 0x17d7e
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x72c0
jmp 0x17d7e
movb $0x1, %bl
jmp 0x17cb9
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq 0x38(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl 0xa0(%rsp), %esi
callq 0x34178
movq 0x38(%rsp), %rdi
cmpq %r15, %rdi
je 0x17c7f
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x72c0
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x17c9a
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x72c0
movq 0xd0(%rsp), %rdi
cmpq %r14, %rdi
je 0x17cb7
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x72c0
xorl %ebx, %ebx
leaq 0xb8(%rsp), %r14
jmp 0x17d80
leaq 0x20(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1deaa(%rip), %rsi     # 0x35b80
leaq 0x1deb7(%rip), %rdx     # 0x35b94
leaq 0x10(%rsp), %rdi
callq 0xbdee
movl 0x40(%rbx), %esi
leaq 0x10(%rsp), %rdi
callq 0x34178
movq 0x10(%rsp), %rdi
cmpq %r14, %rdi
je 0x17d0b
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x72c0
leaq 0xb8(%rsp), %r14
movq %r12, 0x38(%rsp)
movq %r15, %rdi
callq 0x22242
jmp 0x17d7e
leaq 0x20(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1de63(%rip), %rsi     # 0x35b95
leaq 0x1de87(%rip), %rdx     # 0x35bc0
leaq 0x10(%rsp), %rdi
callq 0xbdee
movl 0x40(%rsp), %esi
leaq 0x10(%rsp), %rdi
callq 0x34178
movq 0x10(%rsp), %rdi
cmpq %r14, %rdi
je 0x17d68
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x72c0
leaq 0xb8(%rsp), %r14
leaq 0x48(%rsp), %rdi
movq %r15, -0x10(%rdi)
callq 0x219de
xorl %ebx, %ebx
movq %r13, 0x98(%rsp)
movq 0xa8(%rsp), %rdi
cmpq %r14, %rdi
je 0x17da5
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x72c0
leaq 0x88(%rsp), %rax
movq %r13, -0x20(%rax)
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x177f8
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x72c0
jmp 0x177f8
leaq 0x2e666(%rip), %rax     # 0x46440
movq %rax, 0x38(%rsp)
leaq 0x48(%rsp), %rdi
callq 0x22242
xorl %ebx, %ebx
leaq 0x2df1e(%rip), %r13     # 0x45d10
jmp 0x17cb9
movq %rax, %rbx
movq 0x10(%rsp), %rdi
cmpq %r14, %rdi
je 0x17e62
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x72c0
jmp 0x17e62
movq %rax, %rbx
movq 0x10(%rsp), %rdi
cmpq %r14, %rdi
je 0x17f50
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x72c0
jmp 0x17f50
movq %rax, %rbx
jmp 0x17e62
movq %rax, %rbx
jmp 0x17f50
jmp 0x17f6e
movq %rax, %rbx
leaq 0xd0(%rsp), %rdi
callq 0xb4aa
leaq 0x10(%rsp), %rdi
callq 0xb3fe
leaq 0x48(%rsp), %rdi
movq %r15, -0x10(%rdi)
callq 0x219de
jmp 0x17f71
movq %rax, %rbx
leaq 0xd0(%rsp), %rdi
callq 0xb4aa
leaq 0x10(%rsp), %rdi
callq 0xb3fe
jmp 0x17f50
movq %rax, %rbx
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x17f3e
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x72c0
jmp 0x17f3e
jmp 0x17f3b
movq %rax, %rbx
movq 0x38(%rsp), %rdi
cmpq %r15, %rdi
je 0x17f71
movq 0x48(%rsp), %rsi
jmp 0x17f2f
jmp 0x17f6e
movq %rax, %rbx
movq 0x38(%rsp), %rdi
cmpq %r15, %rdi
je 0x17efa
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x72c0
jmp 0x17efa
movq %rax, %rbx
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x17f1a
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x72c0
jmp 0x17f1a
movq %rax, %rbx
movq 0xd0(%rsp), %rdi
cmpq %r14, %rdi
je 0x17f71
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x72c0
jmp 0x17f71
jmp 0x17f6e
movq %rax, %rbx
cmpq $0x0, 0x8(%rsp)
je 0x17f50
movq 0x8(%rsp), %rdi
callq 0x8036
leaq 0x2e4e9(%rip), %rax     # 0x46440
movq %rax, 0x38(%rsp)
leaq 0x48(%rsp), %rdi
callq 0x22242
jmp 0x17f71
jmp 0x17f6e
jmp 0x17f6e
jmp 0x17f6e
movq %rax, %rbx
leaq 0x2dd98(%rip), %rax     # 0x45d10
movq %rax, 0x98(%rsp)
movq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
cmpq %rax, %rdi
je 0x17faa
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x72c0
jmp 0x17faa
movq %rax, %rbx
leaq 0x88(%rsp), %rax
leaq 0x2dd57(%rip), %rcx     # 0x45d10
movq %rcx, -0x20(%rax)
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x18031
movq 0x88(%rsp), %rsi
jmp 0x18024
jmp 0x17fd8
jmp 0x17ff4
jmp 0x17fd8
jmp 0x17ff4
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r13, %rdi
je 0x17ff7
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x72c0
jmp 0x17ff7
movq %rax, %rbx
leaq 0xa8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x18031
movq 0xa8(%rsp), %rsi
jmp 0x18024
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r13, %rdi
je 0x18031
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x72c0
jmp 0x18031
movq %rax, %rbx
movq %rbx, %rdi
callq 0x74f0
nop