// File: /workspace/github_cpp_makefile_star2_O3/rfotino[P]consolite-compiler/src/syntax.cpp
// Function: StatementToken::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&, std::vector<std::shared_ptr<ParamToken>, std::allocator<std::shared_ptr<ParamToken>>> const&, std::vector<std::shared_ptr<LocalVarToken>, std::allocator<std::shared_ptr<LocalVarToken>>> const&, std::vector<std::shared_ptr<LabelStatement>, std::allocator<std::shared_ptr<LabelStatement>>>&, std::vector<std::shared_ptr<GotoStatement>, std::allocator<std::shared_ptr<GotoStatement>>>&, std::shared_ptr<FunctionToken> const&, bool)
std::shared_ptr<StatementToken> StatementToken::parse(
      Tokenizer *tokenizer,
      const std::vector<std::shared_ptr<FunctionToken>>& functions,
      const std::vector<std::shared_ptr<GlobalVarToken>>& globals,
      const std::vector<std::shared_ptr<ParamToken>>& parameters,
      const std::vector<std::shared_ptr<LocalVarToken>>& localVars,
      std::vector<std::shared_ptr<LabelStatement>>& labels,
      std::vector<std::shared_ptr<GotoStatement>>& gotos,
      const std::shared_ptr<FunctionToken>& currentFunc,
      bool inLoop) {
  AtomToken t = tokenizer->peekNext();
  auto function = getFunction(t.str(), functions);
  if (t.str().empty()) {
    _error("Unexpected EOF.", t.line());
    return nullptr;
  } else if ("{" == t.str()) {
    std::shared_ptr<CompoundStatement> compound(new CompoundStatement());
    if (compound->parse(tokenizer, functions, globals, parameters,
                        localVars, labels, gotos, currentFunc, inLoop)) {
      return compound;
    }
  } else if ("if" == t.str()) {
    std::shared_ptr<IfStatement> ifStatement(new IfStatement());
    if (ifStatement->parse(tokenizer, functions, globals, parameters,
                           localVars, labels, gotos, currentFunc, inLoop)) {
      return ifStatement;
    }
  } else if ("for" == t.str()) {
    std::shared_ptr<ForStatement> forStatement(new ForStatement());
    if (forStatement->parse(tokenizer, functions, globals, parameters,
                            localVars, labels, gotos, currentFunc)) {
      return forStatement;
    }
  } else if ("while" == t.str()) {
    std::shared_ptr<WhileStatement> whileStatement(new WhileStatement());
    if (whileStatement->parse(tokenizer, functions, globals, parameters,
                              localVars, labels, gotos, currentFunc)) {
      return whileStatement;
    }
  } else if ("do" == t.str()) {
    std::shared_ptr<DoWhileStatement> doWhileStatement(new DoWhileStatement());
    if (doWhileStatement->parse(tokenizer, functions, globals, parameters,
                                localVars, labels, gotos, currentFunc)) {
      return doWhileStatement;
    }
  } else if ("break" == t.str()) {
    std::shared_ptr<BreakStatement> breakStatement(new BreakStatement());
    if (breakStatement->parse(tokenizer, inLoop)) {
      return breakStatement;
    }
  } else if ("continue" == t.str()) {
    std::shared_ptr<ContinueStatement> continueStatement(new ContinueStatement());
    if (continueStatement->parse(tokenizer, inLoop)) {
      return continueStatement;
    }
  } else if ("return" == t.str()) {
    std::shared_ptr<ReturnStatement> returnStatement(new ReturnStatement());
    if (returnStatement->parse(tokenizer, functions, globals, parameters,
                               localVars, currentFunc)) {
      return returnStatement;
    }
  } else if ("goto" == t.str()) {
    std::shared_ptr<GotoStatement> gotoStatement(new GotoStatement());
    if (gotoStatement->parse(tokenizer)) {
      gotos.push_back(gotoStatement);
      return gotoStatement;
    }
  } else if (";" == t.str()) {
    std::shared_ptr<NullStatement> nullStatement(new NullStatement());
    // Consume ';' token.
    tokenizer->getNext();
    return nullStatement;
  } else if (isLabelDeclaration(t.str())) {
    std::shared_ptr<LabelStatement> labelStatement(new LabelStatement());
    if (labelStatement->parse(tokenizer)) {
      labels.push_back(labelStatement);
      return labelStatement;
    }
  } else if (isType(t.str())) {
    std::shared_ptr<LocalVarToken> localVar(new LocalVarToken());
    if (localVar->parse(tokenizer, functions, globals, parameters, localVars)) {
      return localVar;
    }
  } else if (nullptr != function && "void" == function->type().name()) {
    std::shared_ptr<VoidStatement> voidStatement(new VoidStatement());
    if (voidStatement->parse(tokenizer, functions, globals, parameters,
                             localVars)) {
      return voidStatement;
    }
  } else {
    std::shared_ptr<ExprStatement> exprStatement(new ExprStatement());
    if (exprStatement->parse(tokenizer, functions, globals, parameters,
                             localVars)) {
      return exprStatement;
    }
  }
  return nullptr;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xe8, %rsp
movq %r9, 0x50(%rsp)
movq %r8, 0x48(%rsp)
movq %rcx, 0x40(%rsp)
movq %rdx, %rbp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x58(%rsp), %r15
movq %r15, %rdi
callq 0x32bec
leaq 0x10(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x10(%r15), %rsi
movq 0x18(%r15), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0xbd58
leaq 0x88(%rsp), %rdi
movq %rsp, %rsi
movq %rbp, %rdx
callq 0x33e1d
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x19eb5
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x72c0
movq %rsp, %rdi
movq %r13, (%rdi)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
callq 0xbd58
movq (%rsp), %rdi
movq 0x8(%rsp), %r15
cmpq %r13, %rdi
je 0x19ee8
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x72c0
movq %rsp, %rdi
testq %r15, %r15
je 0x1a2b1
movq %r13, (%rdi)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
callq 0xbd58
leaq 0x1bac3(%rip), %rsi     # 0x359d3
movq %rsp, %r12
movq %r12, %rdi
callq 0x70c0
movl %eax, %r15d
movq (%r12), %rdi
cmpq %r13, %rdi
je 0x19f34
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x72c0
testl %r15d, %r15d
je 0x1a2f2
movq %rsp, %rdi
movq %r13, (%rdi)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
callq 0xbd58
leaq 0x1be56(%rip), %rsi     # 0x35db2
movq %rsp, %r12
movq %r12, %rdi
callq 0x70c0
movl %eax, %r15d
movq (%r12), %rdi
cmpq %r13, %rdi
je 0x19f80
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x72c0
testl %r15d, %r15d
je 0x1a38b
movq %rsp, %rdi
movq %r13, (%rdi)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
callq 0xbd58
leaq 0x1be0d(%rip), %rsi     # 0x35db5
movq %rsp, %r12
movq %r12, %rdi
callq 0x70c0
movl %eax, %r15d
movq (%r12), %rdi
cmpq %r13, %rdi
je 0x19fcc
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x72c0
testl %r15d, %r15d
je 0x1a44f
movq %rsp, %rdi
movq %r13, (%rdi)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
callq 0xbd58
leaq 0x1bdc5(%rip), %rsi     # 0x35db9
movq %rsp, %r12
movq %r12, %rdi
callq 0x70c0
movl %eax, %r15d
movq (%r12), %rdi
cmpq %r13, %rdi
je 0x1a018
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x72c0
testl %r15d, %r15d
je 0x1a4eb
movq %rsp, %rdi
movq %r13, (%rdi)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
callq 0xbd58
leaq 0x1bd7f(%rip), %rsi     # 0x35dbf
movq %rsp, %r12
movq %r12, %rdi
callq 0x70c0
movl %eax, %r15d
movq (%r12), %rdi
cmpq %r13, %rdi
je 0x1a064
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x72c0
testl %r15d, %r15d
je 0x1a57b
movq %rsp, %rdi
movq %r13, (%rdi)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
callq 0xbd58
leaq 0x1be8a(%rip), %rsi     # 0x35f16
movq %rsp, %r12
movq %r12, %rdi
callq 0x70c0
movl %eax, %r15d
movq (%r12), %rdi
cmpq %r13, %rdi
je 0x1a0b0
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x72c0
testl %r15d, %r15d
je 0x1a60b
movq %rsp, %rdi
movq %r13, (%rdi)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
callq 0xbd58
leaq 0x1be4e(%rip), %rsi     # 0x35f26
movq %rsp, %r12
movq %r12, %rdi
callq 0x70c0
movl %eax, %r15d
movq (%r12), %rdi
cmpq %r13, %rdi
je 0x1a0fc
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x72c0
testl %r15d, %r15d
je 0x1a66c
movq %rsp, %rdi
movq %r13, (%rdi)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
callq 0xbd58
leaq 0x1c492(%rip), %rsi     # 0x365b6
movq %rsp, %r12
movq %r12, %rdi
callq 0x70c0
movl %eax, %r15d
movq (%r12), %rdi
cmpq %r13, %rdi
je 0x1a148
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x72c0
testl %r15d, %r15d
je 0x1a6cd
movq %rsp, %rdi
movq %r13, (%rdi)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
callq 0xbd58
leaq 0x1bc52(%rip), %rsi     # 0x35dc2
movq %rsp, %r12
movq %r12, %rdi
callq 0x70c0
movl %eax, %r15d
movq (%r12), %rdi
cmpq %r13, %rdi
je 0x1a194
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x72c0
testl %r15d, %r15d
je 0x1a76e
movq %rsp, %rdi
movq %r13, (%rdi)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
callq 0xbd58
leaq 0x1ba05(%rip), %rsi     # 0x35bc1
movq %rsp, %r12
movq %r12, %rdi
callq 0x70c0
movl %eax, %r15d
movq (%r12), %rdi
cmpq %r13, %rdi
je 0x1a1e0
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x72c0
testl %r15d, %r15d
je 0x1a7e0
movq %rsp, %rdi
movq %r13, (%rdi)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
callq 0xbd58
movq %rsp, %rdi
callq 0x33954
movl %eax, %r15d
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x1a222
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x72c0
testb %r15b, %r15b
je 0x1a857
movl $0x50, %edi
callq 0x72b0
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movaps %xmm0, 0x10(%rax)
movaps %xmm0, 0x20(%rax)
movaps %xmm0, 0x30(%rax)
movaps %xmm0, 0x40(%rax)
leaq 0x40(%rax), %rcx
movq %rax, %rdx
addq $0x20, %rdx
movl $0xffffffff, 0x8(%rax)  # imm = 0xFFFFFFFF
leaq 0x2c01c(%rip), %rsi     # 0x46280
movq %rsi, (%rax)
movq %rdx, 0x10(%rax)
xorl %edx, %edx
movb %dl, 0x20(%rax)
movq %rcx, 0x30(%rax)
movb %dl, 0x40(%rax)
leaq 0x8(%rsp), %rdi
movq %rax, -0x8(%rdi)
movq %rax, %rsi
callq 0x32016
movq (%rsp), %rdi
movq %r14, %rsi
callq 0x1df6a
testb %al, %al
je 0x1aa3e
movq %rsp, %rsi
movq 0x120(%rsp), %rdi
callq 0x21d6e
jmp 0x1aadf
movq %r13, (%rdi)
leaq 0x1b71c(%rip), %rsi     # 0x359d7
leaq 0x1b724(%rip), %rdx     # 0x359e6
callq 0xbdee
movl 0x60(%rsp), %esi
movq %rsp, %rdi
callq 0x34178
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x1aa4d
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x72c0
jmp 0x1aa4d
movl $0x28, %edi
callq 0x72b0
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movl $0xffffffff, 0x8(%rax)  # imm = 0xFFFFFFFF
leaq 0x2bd40(%rip), %rcx     # 0x46050
movq %rcx, (%rax)
movups %xmm0, 0x10(%rax)
movq $0x0, 0x20(%rax)
leaq 0x8(%rsp), %rdi
movq %rax, -0x8(%rdi)
movq %rax, %rsi
callq 0x315f0
movq (%rsp), %rdi
movzbl 0x138(%rsp), %eax
movq %r14, %rsi
movq %rbp, %rdx
movq 0x40(%rsp), %rcx
movq 0x48(%rsp), %r8
movq 0x50(%rsp), %r9
pushq %rax
pushq 0x138(%rsp)
pushq 0x138(%rsp)
pushq 0x138(%rsp)
callq 0x1c0dc
addq $0x20, %rsp
testb %al, %al
jne 0x1aadf
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1aa4d
jmp 0x1aa48
movl $0x60, %edi
callq 0x72b0
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movaps %xmm0, 0x10(%rax)
movaps %xmm0, 0x20(%rax)
movaps %xmm0, 0x30(%rax)
movaps %xmm0, 0x40(%rax)
movaps %xmm0, 0x50(%rax)
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
movl %ecx, 0x8(%rax)
leaq 0x2bd02(%rip), %rdx     # 0x460c0
movq %rdx, (%rax)
movl %ecx, 0x18(%rax)
leaq 0x2bc6d(%rip), %rcx     # 0x46038
movq %rcx, 0x10(%rax)
movb $0x1, 0x1c(%rax)
movups %xmm0, 0x1e(%rax)
movups %xmm0, 0x2e(%rax)
movups %xmm0, 0x3e(%rax)
movups %xmm0, 0x48(%rax)
leaq 0x8(%rsp), %rdi
movq %rax, -0x8(%rdi)
movq %rax, %rsi
callq 0x316c0
movq (%rsp), %rdi
movzbl 0x138(%rsp), %eax
movq %r14, %rsi
movq %rbp, %rdx
movq 0x40(%rsp), %rcx
movq 0x48(%rsp), %r8
movq 0x50(%rsp), %r9
pushq %rax
pushq 0x138(%rsp)
pushq 0x138(%rsp)
pushq 0x138(%rsp)
callq 0x1c3f6
addq $0x20, %rsp
testb %al, %al
jne 0x1aadf
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1aa4d
jmp 0x1aa48
movl $0x60, %edi
callq 0x72b0
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movl $0xffffffff, 0x8(%rax)  # imm = 0xFFFFFFFF
movups %xmm0, 0x10(%rax)
movups %xmm0, 0x20(%rax)
leaq 0x2bc83(%rip), %rcx     # 0x460f8
movq %rcx, (%rax)
movups %xmm0, 0x30(%rax)
movups %xmm0, 0x40(%rax)
movups %xmm0, 0x50(%rax)
leaq 0x8(%rsp), %rdi
movq %rax, -0x8(%rdi)
movq %rax, %rsi
callq 0x317ee
movq (%rsp), %rdi
subq $0x8, %rsp
movq %r14, %rsi
movq %rbp, %rdx
movq 0x48(%rsp), %rcx
movq 0x50(%rsp), %r8
movq 0x58(%rsp), %r9
pushq 0x138(%rsp)
pushq 0x138(%rsp)
pushq 0x138(%rsp)
callq 0x1c77e
addq $0x20, %rsp
testb %al, %al
jne 0x1aadf
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1aa4d
jmp 0x1aa48
movl $0x30, %edi
callq 0x72b0
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movl $0xffffffff, 0x8(%rax)  # imm = 0xFFFFFFFF
movups %xmm0, 0x10(%rax)
movups %xmm0, 0x20(%rax)
leaq 0x2bc1f(%rip), %rcx     # 0x46130
movq %rcx, (%rax)
leaq 0x8(%rsp), %rdi
movq %rax, -0x8(%rdi)
movq %rax, %rsi
callq 0x3192c
movq (%rsp), %rdi
subq $0x8, %rsp
movq %r14, %rsi
movq %rbp, %rdx
movq 0x48(%rsp), %rcx
movq 0x50(%rsp), %r8
movq 0x58(%rsp), %r9
pushq 0x138(%rsp)
pushq 0x138(%rsp)
pushq 0x138(%rsp)
callq 0x1d03a
addq $0x20, %rsp
testb %al, %al
jne 0x1aadf
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1aa4d
jmp 0x1aa48
movl $0x30, %edi
callq 0x72b0
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movl $0xffffffff, 0x8(%rax)  # imm = 0xFFFFFFFF
movups %xmm0, 0x10(%rax)
movups %xmm0, 0x20(%rax)
leaq 0x2bbc7(%rip), %rcx     # 0x46168
movq %rcx, (%rax)
leaq 0x8(%rsp), %rdi
movq %rax, -0x8(%rdi)
movq %rax, %rsi
callq 0x31a04
movq (%rsp), %rdi
subq $0x8, %rsp
movq %r14, %rsi
movq %rbp, %rdx
movq 0x48(%rsp), %rcx
movq 0x50(%rsp), %r8
movq 0x58(%rsp), %r9
pushq 0x138(%rsp)
pushq 0x138(%rsp)
pushq 0x138(%rsp)
callq 0x1d2a0
addq $0x20, %rsp
testb %al, %al
jne 0x1aadf
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1aa4d
jmp 0x1aa48
movl $0x10, %edi
callq 0x72b0
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movl $0xffffffff, 0x8(%rax)  # imm = 0xFFFFFFFF
leaq 0x2bb77(%rip), %rcx     # 0x461a0
movq %rcx, (%rax)
leaq 0x8(%rsp), %rdi
movq %rax, -0x8(%rdi)
movq %rax, %rsi
callq 0x31b0a
movq (%rsp), %rdi
movzbl 0x138(%rsp), %edx
movq %r14, %rsi
callq 0x1d5a8
testb %al, %al
jne 0x1aadf
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1aa4d
jmp 0x1aa48
movl $0x10, %edi
callq 0x72b0
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movl $0xffffffff, 0x8(%rax)  # imm = 0xFFFFFFFF
leaq 0x2bb4e(%rip), %rcx     # 0x461d8
movq %rcx, (%rax)
leaq 0x8(%rsp), %rdi
movq %rax, -0x8(%rdi)
movq %rax, %rsi
callq 0x31ba4
movq (%rsp), %rdi
movzbl 0x138(%rsp), %edx
movq %r14, %rsi
callq 0x1d70c
testb %al, %al
jne 0x1aadf
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1aa4d
jmp 0x1aa48
movl $0x40, %edi
callq 0x72b0
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movaps %xmm0, 0x10(%rax)
movaps %xmm0, 0x20(%rax)
movaps %xmm0, 0x30(%rax)
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
movl %ecx, 0x8(%rax)
leaq 0x2bb18(%rip), %rdx     # 0x46210
movq %rdx, (%rax)
movl %ecx, 0x18(%rax)
leaq 0x2b933(%rip), %rcx     # 0x46038
movq %rcx, 0x10(%rax)
movb $0x1, 0x1c(%rax)
movups %xmm0, 0x1e(%rax)
movups %xmm0, 0x28(%rax)
leaq 0x8(%rsp), %rdi
movq %rax, -0x8(%rdi)
movq %rax, %rsi
callq 0x31c3e
movq (%rsp), %rdi
subq $0x8, %rsp
movq %r14, %rsi
movq %rbp, %rdx
movq 0x48(%rsp), %rcx
movq 0x50(%rsp), %r8
movq 0x58(%rsp), %r9
pushq 0x138(%rsp)
callq 0x1d870
addq $0x10, %rsp
testb %al, %al
jne 0x1aadf
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1aa4d
jmp 0x1aa48
movl $0x30, %edi
callq 0x72b0
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movaps %xmm0, 0x10(%rax)
movaps %xmm0, 0x20(%rax)
movq %rax, %rcx
addq $0x20, %rcx
movl $0xffffffff, 0x8(%rax)  # imm = 0xFFFFFFFF
leaq 0x2baad(%rip), %rdx     # 0x46248
movq %rdx, (%rax)
movq %rcx, 0x10(%rax)
movb $0x0, 0x20(%rax)
leaq 0x8(%rsp), %rdi
movq %rax, -0x8(%rdi)
movq %rax, %rsi
callq 0x31d24
movq (%rsp), %rdi
movq %r14, %rsi
callq 0x1dc94
testb %al, %al
je 0x1a907
movq %rsp, %rsi
movq 0x128(%rsp), %rdi
callq 0x21d28
jmp 0x1aadf
movl $0x10, %edi
callq 0x72b0
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movl $0xffffffff, 0x8(%rax)  # imm = 0xFFFFFFFF
leaq 0x2bc92(%rip), %rcx     # 0x46490
movq %rcx, (%rax)
leaq 0x8(%rsp), %rdi
movq %rax, -0x8(%rdi)
movq %rax, %rsi
callq 0x31f7c
leaq 0xb8(%rsp), %rdi
movq %r14, %rsi
callq 0x32902
leaq 0x2b4e7(%rip), %rax     # 0x45d10
leaq 0xd8(%rsp), %rcx
movq %rax, -0x20(%rcx)
movq -0x10(%rcx), %rdi
cmpq %rcx, %rdi
je 0x1aadf
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x72c0
jmp 0x1aadf
movq %rsp, %rdi
movq %r13, (%rdi)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
callq 0xbd58
movq %rsp, %rdi
callq 0x3414a
movl %eax, %r15d
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x1a890
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x72c0
testb %r15b, %r15b
je 0x1a91a
movl $0xb8, %edi
callq 0x72b0
movq %rax, %r15
movl $0xb8, %edx
movq %rax, %rdi
xorl %esi, %esi
callq 0x71b0
movq %r15, %rdi
callq 0x21db4
leaq 0x8(%rsp), %rdi
movq %r15, -0x8(%rdi)
movq %r15, %rsi
callq 0x322c8
movq (%rsp), %rdi
movq %r14, %rsi
movq %rbp, %rdx
movq 0x40(%rsp), %rcx
movq 0x48(%rsp), %r8
movq 0x50(%rsp), %r9
callq 0x1e238
testb %al, %al
jne 0x1aadf
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1aa4d
jmp 0x1aa48
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1aa4d
jmp 0x1aa48
movq 0x88(%rsp), %rsi
testq %rsi, %rsi
je 0x1a9bb
movq %rsp, %rdi
callq 0x21a72
leaq 0xa8(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
addq %rsi, %rdx
leaq 0x98(%rsp), %rdi
callq 0xbd58
leaq 0x1a6df(%rip), %rsi     # 0x35040
leaq 0x98(%rsp), %r15
movq %r15, %rdi
callq 0x70c0
movl %eax, %r13d
movq (%r15), %rdi
cmpq %r12, %rdi
je 0x1a98c
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x72c0
leaq 0x2b3bd(%rip), %rax     # 0x45d50
leaq 0x20(%rsp), %rcx
movq %rax, -0x20(%rcx)
movq -0x10(%rcx), %rdi
cmpq %rcx, %rdi
je 0x1a9b2
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x72c0
testl %r13d, %r13d
je 0x1aa55
movl $0x38, %edi
callq 0x72b0
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movaps %xmm0, 0x10(%rax)
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
movl %ecx, 0x8(%rax)
leaq 0x2b96a(%rip), %rdx     # 0x46348
movq %rdx, (%rax)
movl %ecx, 0x18(%rax)
leaq 0x2b64d(%rip), %rcx     # 0x46038
movq %rcx, 0x10(%rax)
movb $0x1, 0x1c(%rax)
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x1e(%rax)
leaq 0x8(%rsp), %rdi
movq %rax, -0x8(%rdi)
movq %rax, %rsi
callq 0x32580
movq (%rsp), %rdi
movq %r14, %rsi
movq %rbp, %rdx
movq 0x40(%rsp), %rcx
movq 0x48(%rsp), %r8
movq 0x50(%rsp), %r9
callq 0x1f244
testb %al, %al
jne 0x1aadf
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1aa4d
jmp 0x1aa48
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1aa4d
callq 0x8036
xorps %xmm0, %xmm0
jmp 0x1aae3
movl $0x58, %edi
callq 0x72b0
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movaps %xmm0, 0x10(%rax)
movaps %xmm0, 0x20(%rax)
movaps %xmm0, 0x30(%rax)
movq %rax, %rcx
addq $0x30, %rcx
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl %edx, 0x8(%rax)
leaq 0x2b889(%rip), %rsi     # 0x46310
movq %rsi, (%rax)
movl %edx, 0x18(%rax)
leaq 0x2b97c(%rip), %rdx     # 0x46410
movq %rdx, 0x10(%rax)
movq %rcx, 0x20(%rax)
movb $0x0, 0x30(%rax)
movups %xmm0, 0x40(%rax)
movq $0x0, 0x50(%rax)
leaq 0x8(%rsp), %rdi
movq %rax, -0x8(%rdi)
movq %rax, %rsi
callq 0x3245a
movq (%rsp), %rdi
movq %r14, %rsi
movq %rbp, %rdx
movq 0x40(%rsp), %rcx
movq 0x48(%rsp), %r8
movq 0x50(%rsp), %r9
callq 0x1ef86
testb %al, %al
je 0x1ab33
movaps (%rsp), %xmm0
movups %xmm0, (%rbx)
movq 0x90(%rsp), %rdi
testq %rdi, %rdi
je 0x1aaf8
callq 0x8036
leaq 0x2b211(%rip), %rax     # 0x45d10
leaq 0x78(%rsp), %rcx
movq %rax, -0x20(%rcx)
movq -0x10(%rcx), %rdi
cmpq %rcx, %rdi
je 0x1ab1e
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x72c0
movq %rbx, %rax
addq $0xe8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1aa4d
jmp 0x1aa48
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1ad1d
jmp 0x1acec
jmp 0x1ad1a
movq %rax, %rbx
leaq 0x2b1e5(%rip), %rax     # 0x45d50
leaq 0x20(%rsp), %rcx
movq %rax, -0x20(%rcx)
movq -0x10(%rcx), %rdi
cmpq %rcx, %rdi
je 0x1ad1d
movq 0x20(%rsp), %rsi
jmp 0x1ad08
jmp 0x1ad1a
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1ad1d
jmp 0x1acec
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1ad1d
jmp 0x1acec
movq %rax, %rbx
movl $0xb8, %esi
movq %r15, %rdi
jmp 0x1ad0b
jmp 0x1ad1a
jmp 0x1ad1a
jmp 0x1acf7
jmp 0x1ad1a
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1ad1d
jmp 0x1acec
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1ad1d
jmp 0x1acec
jmp 0x1ad1a
jmp 0x1acf7
jmp 0x1ad1a
jmp 0x1ad1a
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1ad1d
jmp 0x1acec
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1ad1d
jmp 0x1acec
jmp 0x1ad1a
jmp 0x1ad1a
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1ad1d
jmp 0x1acec
jmp 0x1ad1a
jmp 0x1ad1a
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1ad1d
jmp 0x1acec
jmp 0x1ad1a
jmp 0x1ad1a
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1ad1d
jmp 0x1acec
jmp 0x1ad1a
jmp 0x1ad1a
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1ad1d
jmp 0x1acec
jmp 0x1ad1a
jmp 0x1ad1a
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1ad1d
jmp 0x1acec
jmp 0x1ad1a
jmp 0x1ad1a
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1ad1d
jmp 0x1acec
jmp 0x1ad1a
jmp 0x1ad1a
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1ad1d
callq 0x8036
jmp 0x1ad1d
jmp 0x1ad1a
jmp 0x1ad1a
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x1ad1d
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x72c0
jmp 0x1ad1d
jmp 0x1ad1a
jmp 0x1ad1a
jmp 0x1ad1a
jmp 0x1ad1a
movq %rax, %rbx
movq 0x90(%rsp), %rdi
testq %rdi, %rdi
je 0x1ad4f
callq 0x8036
jmp 0x1ad4f
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x1ad4f
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x72c0
jmp 0x1ad4f
movq %rax, %rbx
leaq 0x2afba(%rip), %rax     # 0x45d10
leaq 0x78(%rsp), %rcx
movq %rax, -0x20(%rcx)
movq -0x10(%rcx), %rdi
cmpq %rcx, %rdi
je 0x1ad75
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x72c0
movq %rbx, %rdi
callq 0x74f0
nop