// File: /workspace/github_cpp_makefile_star2_O3/menhits[P]phplus/src/Parser.cpp
// Function: parseExpression(std::vector<std::shared_ptr<TokenData>, std::allocator<std::shared_ptr<TokenData>>> const&, int, int)
AstNode parseExpression(const vector<Token>& tokens, int left, int right)
{
	//error.log(FUNC+" called on '"+stringFromTokens(tokens, left, right)+"'", JSYK);
	
	if (left>right)
	{
		throw PhplusError(FUNC + " sent left higher then right", INTERNAL_ERROR, tokens[left]);
	}
	else if (left==right)
	{
		return AstToken::make(tokens[left]);
	}
	
	if (ops->isOpenBrac(tokens[left]->getOp()) && skipBrace(tokens, left)==right) // if the braces enclose this entire expression
	{
		if (tokens[left]->getOp()==ops->openPeren)
		{
			return astNodeFromTokens(tokens, left+1, right-1);
		}
		else if (tokens[left]->getOp()==ops->openCrBrac)
		{
			return parseType(tokens, left+1, right-1);
		}
		else
		{
			throw PhplusError("unhandled brace '"+tokens[left]->getOp()->getText()+"'", INTERNAL_ERROR, tokens[left]);
		}
	}
	
	int i=findExpressionSplit(tokens, left, right);
	
	Operator op=tokens[i]->getOp();
	
	if (op==ops->minus && i==left && i!=right)
	{
		//dont error
	}
	else if ((i==left)==op->takesLeftInput() || (i==right)==op->takesRightInput())
	{
		throw PhplusError("improper use of '"+op->getText()+"' operator", SOURCE_ERROR, tokens[i]);
	}
	
	if (op==ops->pipe)
	{
		throw PhplusError("invalid use of '"+op->getText()+"'", SOURCE_ERROR, tokens[i]);
	}
	else if (op==ops->ifOp || op==ops->loop || op==ops->rightArrow || op==ops->andOp || op==ops->orOp)
	{
		vector<AstNode> leftNodes;
		vector<AstNode> rightNodes;
		
		if (i>left)
			parseSequence(tokens, left, i-1, ops->pipe, leftNodes);
		
		if (i<right)
			parseSequence(tokens, i+1, right, ops->pipe, rightNodes);
		
		return AstOpWithInput::make(leftNodes, tokens[i], rightNodes);
	}
	else if (op==ops->comma)
	{
		vector<AstNode> nodes;
		
		parseSequence(tokens, left, right, ops->comma, nodes);
		
		return AstTuple::make(nodes);
	}
	else if (op==ops->doubleColon)
	{
		unique_ptr<AstToken> centerNode=nullptr;
		AstNode rightNode=nullptr;
		
		if (i==left+1 && tokens[i-1]->getType()==TokenData::IDENTIFIER)
		{
			centerNode=AstToken::make(tokens[i-1]);
		}
		else
		{
			throw PhplusError("you can only use constant assignment on a single identifier", SOURCE_ERROR, tokens[i]);
		}
		
		if (i<right)
		{
			rightNode=parseExpression(tokens, i+1, right);
		}
		else
		{
			rightNode=AstVoid::make();
		}
		
		return AstConstExpression::make(move(centerNode), move(rightNode));
	}
	else if (op==ops->notEqual)
	{
		AstNode rightNode=i<right?parseExpression(tokens, i+1, right):AstVoid::make();
		AstNode leftNode=i>left?parseExpression(tokens, left, i-1):AstVoid::make();
		AstNode centerNode=AstToken::make(
			makeToken(
				ops->equal->getText(),
				tokens[i]->getFile(),
				tokens[i]->getLine(),
				tokens[i]->getCharPos()+1,
				TokenData::OPERATOR,
				ops->equal
			)
		);
		
		AstNode notNode=AstToken::make(
			makeToken(
				ops->notOp->getText(),
				tokens[i]->getFile(),
				tokens[i]->getLine(),
				tokens[i]->getCharPos(),
				TokenData::OPERATOR,
				ops->notOp
			)
		);
		
		return AstExpression::make(
			AstVoid::make(),
			move(notNode),
			AstExpression::make(
				move(leftNode),
				move(centerNode),
				move(rightNode)
			)
		);
	}
	else if (op==ops->plusPlus || op==ops->minusMinus)
	{
		throw PhplusError("++ and -- are not yet implemented", SOURCE_ERROR, tokens[i]);
		
		//AstNode leftNode=parseExpression(tokens, left, i-1);
		
		//return AstExpression::make(AstVoid::make(), leftNode, AstExpression::make(leftNode, AstToken::make(Token)))
	}
	else if (op==ops->dot)
	{
		return AstExpression::make
		(
			i>left ? parseExpression(tokens, left, i-1) : AstVoid::make(),
			i<right ? parseExpression(tokens, i+1, right) : AstVoid::make(),
			AstVoid::make()
		);
	}
	else if (op==ops->colon)
	{
		AstNode leftNode=AstVoid::make();
		AstNode centerNode=parseExpression(tokens, left, i-1);;
		AstNode rightNode=i<right?parseExpression(tokens, i+1, right):AstVoid::make();
		
		// make sure if it is an abc.xyz: ijk structure, it gets parsed as such, rather then (abc.xyz): ijk
		// we do this by parsing it the latter way (already done) and then detecting if we need to change it
		if (typeid(*centerNode)==typeid(AstExpression))
		{
			AstExpression * exprNode=(AstExpression*)&*centerNode;
			
			if (!exprNode->leftIn->isVoid() && !exprNode->center->isVoid() && exprNode->rightIn->isVoid())
			{
				leftNode=move(exprNode->leftIn);
				centerNode=move(exprNode->center);
			}
		}
		
		// make a function body if needed, else make a normal expression
		
		if (
			(centerNode->isType() || centerNode->isFunctionWithOutput())
			&&
			(leftNode->isVoid() || leftNode->isType())
			&&
			!rightNode->isType()
		){
			if (leftNode->isVoid())
				leftNode=AstVoidType::make();
			
			AstNode funcRightIn;
			AstNode funcReturn;
			
			if (centerNode->isFunctionWithOutput())
			{
				funcRightIn=move(((AstOpWithInput*)&*(centerNode))->leftIn[0]);
				funcReturn=move(((AstOpWithInput*)&*(centerNode))->rightIn[0]);
			}
			else
			{
				funcRightIn=move(centerNode);
				funcReturn=AstVoidType::make();
			}
			
			return AstFuncBody::make(move(leftNode), move(funcRightIn), move(funcReturn), move(rightNode));
		}
		else
		{
			return AstExpression::make(move(leftNode), move(centerNode), move(rightNode));
		}
	}
	else
	{
		return AstExpression::make
		(
			i>left ? parseExpression(tokens, left, i-1) : AstVoid::make(),
			AstToken::make(tokens[i]),
			i<right ? parseExpression(tokens, i+1, right) : AstVoid::make()
		);
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x378, %rsp            # imm = 0x378
movl %edx, %ebp
movq %rsi, %r15
cmpl %ecx, %edx
jg 0x29ae1
movq %rdi, %r14
movslq %ebp, %r12
jne 0x28117
movq (%r15), %rax
shlq $0x4, %r12
movq (%rax,%r12), %rcx
movq %rcx, 0x1e0(%rsp)
movq 0x8(%rax,%r12), %rax
movq %rax, 0x1e8(%rsp)
testq %rax, %rax
je 0x28161
movq 0x71e9b(%rip), %rcx     # 0x99fa8
cmpb $0x0, (%rcx)
je 0x2815d
incl 0x8(%rax)
jmp 0x28161
movl %ecx, %r13d
leaq 0x721e7(%rip), %rax     # 0x9a308
movq (%rax), %rdi
movq (%r15), %rax
shlq $0x4, %r12
movq (%rax,%r12), %rax
movq 0x40(%rax), %rcx
movq %rcx, 0x130(%rsp)
movq 0x48(%rax), %rax
movq %rax, 0x138(%rsp)
testq %rax, %rax
je 0x28195
movq 0x71e55(%rip), %rcx     # 0x99fa8
cmpb $0x0, (%rcx)
je 0x28191
incl 0x8(%rax)
jmp 0x28195
lock
incl 0x8(%rax)
leaq 0x40(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
callq 0x2b8fa
movq 0x40(%rsp), %rax
movq %rax, (%r14)
movq $0x0, 0x40(%rsp)
movq 0x1e8(%rsp), %rdi
jmp 0x2851b
lock
incl 0x8(%rax)
leaq 0x130(%rsp), %rsi
callq 0xdb74
testb %al, %al
je 0x28204
movq %r15, %rdi
movl %ebp, %esi
callq 0x27556
movl %eax, %ebx
movq 0x138(%rsp), %rdi
testq %rdi, %rdi
je 0x281c4
callq 0xdce4
cmpl %r13d, %ebx
jne 0x28216
movq (%r15), %rax
movq (%rax,%r12), %rax
movq 0x40(%rax), %rbx
movq 0x48(%rax), %rdi
testq %rdi, %rdi
je 0x283d0
movq %r15, 0xd8(%rsp)
movq 0x71db8(%rip), %rax     # 0x99fa8
cmpb $0x0, (%rax)
je 0x2853a
movq %r14, %r15
incl 0x8(%rdi)
jmp 0x28541
movq 0x138(%rsp), %rdi
testq %rdi, %rdi
je 0x28216
callq 0xdce4
movq %r14, 0x88(%rsp)
movq %r15, %rdi
movl %ebp, %esi
movl %r13d, %edx
callq 0x27d9f
movl %eax, %r12d
movq (%r15), %rax
movq %r12, %rbx
shlq $0x4, %rbx
movq (%rax,%rbx), %rax
movq 0x40(%rax), %r14
movq 0x48(%rax), %rcx
testq %rcx, %rcx
je 0x2825e
movq 0x71d58(%rip), %rax     # 0x99fa8
cmpb $0x0, (%rax)
je 0x2825a
incl 0x8(%rcx)
jmp 0x2825e
lock
incl 0x8(%rcx)
movq %rcx, 0xd8(%rsp)
leaq 0x7209b(%rip), %rax     # 0x9a308
movq (%rax), %rax
cmpq 0xf0(%rax), %r14
sete %cl
cmpl %ebp, %r12d
sete %dl
cmpl %r13d, %r12d
setne %sil
andb %cl, %dl
testb %sil, %dl
jne 0x282bf
cmpl %ebp, %r12d
setne %dl
movl 0x28(%r14), %ecx
testl $0xfffffffd, %ecx       # imm = 0xFFFFFFFD
sete %sil
xorb %dl, %sil
jne 0x29b4d
decl %ecx
cmpl %r13d, %r12d
setne %dl
cmpl $0x2, %ecx
sbbb $0x0, %dl
jne 0x29b4d
movq 0x20(%rax), %rcx
cmpq %rcx, %r14
je 0x29bc9
cmpq 0x10(%rax), %r14
je 0x2837b
cmpq (%rax), %r14
je 0x2837b
cmpq 0x170(%rax), %r14
je 0x2837b
cmpq 0x70(%rax), %r14
je 0x2837b
cmpq 0x60(%rax), %r14
je 0x2837b
movq 0x50(%rax), %rcx
cmpq %rcx, %r14
je 0x285ec
cmpq 0x40(%rax), %r14
je 0x286ad
cmpq 0x90(%rax), %r14
je 0x28716
cmpq 0x140(%rax), %r14
je 0x29e3f
cmpq 0x150(%rax), %r14
je 0x29e3f
cmpq 0x160(%rax), %r14
je 0x28739
cmpq 0x30(%rax), %r14
je 0x288ec
cmpl %ebp, %r12d
movq 0x88(%rsp), %r14
jle 0x28b3b
leal -0x1(%r12), %ecx
leaq 0x70(%rsp), %rdi
movq %r15, %rsi
movl %ebp, %edx
callq 0x280bb
jmp 0x28b8d
xorps %xmm0, %xmm0
movaps %xmm0, 0x40(%rsp)
xorl %edx, %edx
movq %rdx, 0x50(%rsp)
movq %rdx, 0x30(%rsp)
movaps %xmm0, 0x20(%rsp)
cmpl %ebp, %r12d
movq 0x88(%rsp), %r14
jle 0x28419
leal -0x1(%r12), %edx
movq %rcx, 0x1d0(%rsp)
movq 0x28(%rax), %rax
movq %rax, 0x1d8(%rsp)
testq %rax, %rax
je 0x283f0
movq 0x71be2(%rip), %rcx     # 0x99fa8
cmpb $0x0, (%rcx)
je 0x283ec
incl 0x8(%rax)
jmp 0x283f0
leaq 0x71f31(%rip), %rcx     # 0x9a308
movq (%rcx), %rax
cmpq 0x190(%rax), %rbx
jne 0x285b7
jmp 0x28596
lock
incl 0x8(%rax)
leaq 0x1d0(%rsp), %rcx
leaq 0x40(%rsp), %r8
movq %r15, %rdi
movl %ebp, %esi
callq 0x2b2a8
movq 0x1d8(%rsp), %rdi
testq %rdi, %rdi
je 0x28419
callq 0xdce4
cmpl %r13d, %r12d
jge 0x2848a
incl %r12d
leaq 0x71ee0(%rip), %rax     # 0x9a308
movq (%rax), %rax
movq 0x20(%rax), %rcx
movq %rcx, 0x1c0(%rsp)
movq 0x28(%rax), %rax
movq %rax, 0x1c8(%rsp)
testq %rax, %rax
je 0x2845d
movq 0x71b59(%rip), %rcx     # 0x99fa8
cmpb $0x0, (%rcx)
je 0x28459
incl 0x8(%rax)
jmp 0x2845d
lock
incl 0x8(%rax)
leaq 0x1c0(%rsp), %rcx
leaq 0x20(%rsp), %r8
movq %r15, %rdi
movl %r12d, %esi
movl %r13d, %edx
callq 0x2b2a8
movq 0x1c8(%rsp), %rdi
testq %rdi, %rdi
je 0x2848a
callq 0xdce4
movq (%r15), %rax
movq (%rax,%rbx), %rcx
movq %rcx, 0x1b0(%rsp)
movq 0x8(%rax,%rbx), %rax
movq %rax, 0x1b8(%rsp)
testq %rax, %rax
je 0x284c0
movq 0x71af6(%rip), %rcx     # 0x99fa8
cmpb $0x0, (%rcx)
je 0x284bc
incl 0x8(%rax)
jmp 0x284c0
lock
incl 0x8(%rax)
leaq 0x10(%rsp), %rdi
leaq 0x40(%rsp), %rsi
leaq 0x1b0(%rsp), %rdx
leaq 0x20(%rsp), %rcx
callq 0x2b9ae
movq 0x10(%rsp), %rax
movq %rax, (%r14)
movq $0x0, 0x10(%rsp)
movq 0x1b8(%rsp), %rdi
testq %rdi, %rdi
je 0x284ff
callq 0xdce4
leaq 0x20(%rsp), %rdi
callq 0x25f22
leaq 0x40(%rsp), %rdi
callq 0x25f22
movq 0xd8(%rsp), %rdi
testq %rdi, %rdi
je 0x28525
callq 0xdce4
movq %r14, %rax
addq $0x378, %rsp            # imm = 0x378
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r14, %r15
lock
incl 0x8(%rdi)
leaq 0x71dc0(%rip), %rax     # 0x9a308
movq (%rax), %rax
movq 0x190(%rax), %r14
callq 0xdce4
cmpq %r14, %rbx
movq %r15, %r14
movq 0xd8(%rsp), %r15
je 0x28596
movq (%r15), %rax
movq (%rax,%r12), %rax
movq 0x40(%rax), %rbx
movq 0x48(%rax), %rdi
testq %rdi, %rdi
je 0x285b0
movq 0x71a26(%rip), %rax     # 0x99fa8
cmpb $0x0, (%rax)
je 0x2863a
movq %r14, %r15
incl 0x8(%rdi)
jmp 0x28641
incl %ebp
decl %r13d
movq %r14, %rdi
movq %r15, %rsi
movl %ebp, %edx
movl %r13d, %ecx
callq 0x26b9c
jmp 0x28525
leaq 0x71d51(%rip), %rcx     # 0x9a308
movq (%rcx), %rax
cmpq 0x1d0(%rax), %rbx
jne 0x2866b
incl %ebp
decl %r13d
leaq 0x40(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
movl %ebp, %edx
movl %r13d, %ecx
callq 0x2a850
movq (%rbx), %rax
movq %rax, (%r14)
jmp 0x28525
xorps %xmm0, %xmm0
movaps %xmm0, 0x40(%rsp)
movq $0x0, 0x50(%rsp)
movq %rcx, 0x1a0(%rsp)
movq 0x58(%rax), %rax
movq %rax, 0x1a8(%rsp)
testq %rax, %rax
movq 0x88(%rsp), %r14
je 0x2876a
movq 0x7197f(%rip), %rcx     # 0x99fa8
cmpb $0x0, (%rcx)
je 0x28766
incl 0x8(%rax)
jmp 0x2876a
movq %r14, %r15
lock
incl 0x8(%rdi)
leaq 0x71cc0(%rip), %rax     # 0x9a308
movq (%rax), %rax
movq 0x1d0(%rax), %r14
callq 0xdce4
cmpq %r14, %rbx
movq %r15, %r14
movq 0xd8(%rsp), %r15
je 0x285c7
movl $0x38, %edi
callq 0xa1b0
movq %rax, %rbx
movq %r15, %r14
movq (%r15), %rax
movq (%rax,%r12), %rcx
movq 0x40(%rcx), %rax
movq 0x48(%rcx), %r13
testq %r13, %r13
je 0x29dc9
movq 0x7190e(%rip), %rcx     # 0x99fa8
cmpb $0x0, (%rcx)
jne 0x29dc5
lock
incl 0x8(%r13)
jmp 0x29dc9
xorl %eax, %eax
movq %rax, 0x40(%rsp)
movq %rax, 0x20(%rsp)
incl %ebp
cmpl %ebp, %r12d
jne 0x29eb1
movq (%r15), %rax
movq -0x10(%rax,%rbx), %rcx
cmpl $0x2, 0x38(%rcx)
jne 0x29eb1
addq %rbx, %rax
movq %rcx, 0x190(%rsp)
movq -0x8(%rax), %rax
movq %rax, 0x198(%rsp)
testq %rax, %rax
movq 0x88(%rsp), %r14
je 0x28981
movq 0x718a3(%rip), %rcx     # 0x99fa8
cmpb $0x0, (%rcx)
je 0x2897d
incl 0x8(%rax)
jmp 0x28981
cmpl %r13d, %r12d
jge 0x287b2
leal 0x1(%r12), %edx
leaq 0x40(%rsp), %rdi
movq %r15, %rsi
movl %r13d, %ecx
callq 0x280bb
jmp 0x28803
cmpl %ebp, %r12d
jle 0x28bca
leal -0x1(%r12), %ecx
leaq 0x80(%rsp), %rdi
movq %r15, %rsi
movl %ebp, %edx
callq 0x280bb
movq 0x88(%rsp), %r14
jmp 0x28c27
lock
incl 0x8(%rax)
leaq 0x1a0(%rsp), %rcx
leaq 0x40(%rsp), %r8
movq %r15, %rdi
movl %ebp, %esi
movl %r13d, %edx
callq 0x2b2a8
movq 0x1a8(%rsp), %rdi
testq %rdi, %rdi
je 0x28796
callq 0xdce4
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x2baf4
movq 0x20(%rsp), %rax
movq %rax, (%r14)
jmp 0x28509
movl $0x88, %edi
callq 0xa2d0
movq %rax, %rcx
addq $0x18, %rcx
movq %rcx, 0x8(%rax)
movq $0x0, 0x10(%rax)
xorl %ecx, %ecx
movb %cl, 0x18(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movb %cl, 0x68(%rax)
movups %xmm0, 0x70(%rax)
movb %cl, 0x80(%rax)
leaq 0x6f62d(%rip), %rcx     # 0x97e28
movq %rcx, (%rax)
movq %rax, 0x40(%rsp)
cmpl %ebp, %r12d
jle 0x28826
decl %r12d
leaq 0x20(%rsp), %rdi
movq %r15, %rsi
movl %ebp, %edx
movl %r12d, %ecx
callq 0x280bb
leaq 0x71ae4(%rip), %r14     # 0x9a308
jmp 0x2887e
movl $0x88, %edi
callq 0xa2d0
movq %rax, %rcx
addq $0x18, %rcx
movq %rcx, 0x8(%rax)
movq $0x0, 0x10(%rax)
xorl %ecx, %ecx
movb %cl, 0x18(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movb %cl, 0x68(%rax)
movups %xmm0, 0x70(%rax)
movb %cl, 0x80(%rax)
leaq 0x6f5b9(%rip), %rcx     # 0x97e28
movq %rcx, (%rax)
movq %rax, 0x20(%rsp)
leaq 0x71a8a(%rip), %r14     # 0x9a308
movq (%r14), %rax
movq 0x80(%rax), %rax
leaq 0x328(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x318(%rsp), %rdi
callq 0xde0c
movq (%r15), %rax
movq (%rax,%rbx), %rax
movq 0x20(%rax), %rcx
movq %rcx, 0x180(%rsp)
movq 0x28(%rax), %rcx
movq %rcx, 0x188(%rsp)
testq %rcx, %rcx
je 0x28e2b
movq 0x716cd(%rip), %rdx     # 0x99fa8
cmpb $0x0, (%rdx)
je 0x28e20
incl 0x8(%rcx)
jmp 0x28e2b
movl $0x88, %edi
callq 0xa2d0
movq %rax, %rcx
addq $0x18, %rcx
movq %rcx, 0x8(%rax)
movq $0x0, 0x10(%rax)
xorl %ecx, %ecx
movb %cl, 0x18(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movb %cl, 0x68(%rax)
movups %xmm0, 0x70(%rax)
movb %cl, 0x80(%rax)
leaq 0x6f4f3(%rip), %rbx     # 0x97e28
movq %rbx, (%rax)
movq %rax, 0x40(%rsp)
leal -0x1(%r12), %ecx
leaq 0x20(%rsp), %rdi
movq %r15, %rsi
movl %ebp, %edx
callq 0x280bb
movq 0x88(%rsp), %r14
cmpl %r13d, %r12d
jge 0x29369
incl %r12d
leaq 0x10(%rsp), %rdi
movq %r15, %rsi
movl %r12d, %edx
movl %r13d, %ecx
callq 0x280bb
jmp 0x293b3
lock
incl 0x8(%rax)
leaq 0x10(%rsp), %rdi
leaq 0x190(%rsp), %rsi
callq 0x2b8fa
movq 0x10(%rsp), %rax
movq $0x0, 0x10(%rsp)
movq 0x40(%rsp), %rbp
movq %rax, 0x40(%rsp)
testq %rbp, %rbp
je 0x289c0
movq %rbp, %rdi
callq 0x16e9c
movq %rbp, %rdi
callq 0xa2b0
leaq 0x10(%rsp), %rdi
callq 0x2b980
movq 0x198(%rsp), %rdi
testq %rdi, %rdi
je 0x289dc
callq 0xdce4
cmpl %r13d, %r12d
jge 0x28a33
incl %r12d
leaq 0x10(%rsp), %rdi
movq %r15, %rsi
movl %r12d, %edx
movl %r13d, %ecx
callq 0x280bb
movq 0x10(%rsp), %rax
movq $0x0, 0x10(%rsp)
movq 0x20(%rsp), %rsi
movq %rax, 0x20(%rsp)
testq %rsi, %rsi
je 0x28a98
leaq 0x20(%rsp), %rdi
callq 0x16b80
movq 0x10(%rsp), %rsi
testq %rsi, %rsi
je 0x28a98
leaq 0x10(%rsp), %rdi
jmp 0x28a93
movl $0x88, %edi
callq 0xa2d0
movq %rax, %rcx
addq $0x18, %rcx
movq %rcx, 0x8(%rax)
movq $0x0, 0x10(%rax)
xorl %ecx, %ecx
movb %cl, 0x18(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movb %cl, 0x68(%rax)
movups %xmm0, 0x70(%rax)
movb %cl, 0x80(%rax)
leaq 0x6f3ac(%rip), %rcx     # 0x97e28
movq %rcx, (%rax)
movq 0x20(%rsp), %rsi
movq %rax, 0x20(%rsp)
testq %rsi, %rsi
je 0x28a98
leaq 0x20(%rsp), %rdi
callq 0x16b80
movq 0x40(%rsp), %rax
leaq 0x128(%rsp), %rsi
movq %rax, (%rsi)
xorl %eax, %eax
movq %rax, 0x40(%rsp)
movq 0x20(%rsp), %rcx
leaq 0xf0(%rsp), %rdx
movq %rcx, (%rdx)
movq %rax, 0x20(%rsp)
leaq 0x10(%rsp), %rdi
callq 0x2bb86
leaq 0x10(%rsp), %rdi
movq (%rdi), %rax
movq $0x0, (%rdi)
movq %rax, (%r14)
callq 0x2bc42
movq 0xf0(%rsp), %rsi
testq %rsi, %rsi
je 0x28aff
leaq 0xf0(%rsp), %rdi
callq 0x16b80
movq $0x0, 0xf0(%rsp)
leaq 0x128(%rsp), %rdi
callq 0x2b980
movq 0x20(%rsp), %rsi
testq %rsi, %rsi
je 0x28b2c
leaq 0x20(%rsp), %rdi
callq 0x16b80
leaq 0x40(%rsp), %rdi
callq 0x2b980
jmp 0x28513
movl $0x88, %edi
callq 0xa2d0
movq %rax, %rcx
addq $0x18, %rcx
movq %rcx, 0x8(%rax)
xorl %ecx, %ecx
movq %rcx, 0x10(%rax)
movb %cl, 0x18(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movb %cl, 0x68(%rax)
movups %xmm0, 0x70(%rax)
movb %cl, 0x80(%rax)
leaq 0x6f2a8(%rip), %rdx     # 0x97e28
movq %rdx, (%rax)
movq %rcx, 0x20(%rsp)
movq %rax, 0x70(%rsp)
movq (%r15), %rax
movq (%rax,%rbx), %rcx
movq %rcx, 0x140(%rsp)
movq 0x8(%rax,%rbx), %rax
movq %rax, 0x148(%rsp)
testq %rax, %rax
je 0x29639
movq 0x713ef(%rip), %rcx     # 0x99fa8
cmpb $0x0, (%rcx)
je 0x29635
incl 0x8(%rax)
jmp 0x29639
movl $0x88, %edi
callq 0xa2d0
movq 0x88(%rsp), %r14
movq %rax, %rcx
addq $0x18, %rcx
movq %rcx, 0x8(%rax)
xorl %ecx, %ecx
movq %rcx, 0x10(%rax)
movb %cl, 0x18(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movb %cl, 0x68(%rax)
movups %xmm0, 0x70(%rax)
movb %cl, 0x80(%rax)
leaq 0x6f211(%rip), %rdx     # 0x97e28
movq %rdx, (%rax)
movq %rcx, 0x20(%rsp)
movq %rax, 0x80(%rsp)
cmpl %r13d, %r12d
jge 0x28c43
leal 0x1(%r12), %edx
leaq 0x78(%rsp), %rdi
movq %r15, %rsi
movl %r13d, %ecx
callq 0x280bb
jmp 0x28c95
movl $0x88, %edi
callq 0xa2d0
movq %rax, %rcx
addq $0x18, %rcx
movq %rcx, 0x8(%rax)
xorl %ecx, %ecx
movq %rcx, 0x10(%rax)
movb %cl, 0x18(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movb %cl, 0x68(%rax)
movups %xmm0, 0x70(%rax)
movb %cl, 0x80(%rax)
leaq 0x6f1a0(%rip), %rdx     # 0x97e28
movq %rdx, (%rax)
movq %rcx, 0x10(%rsp)
movq %rax, 0x78(%rsp)
movl $0x88, %edi
callq 0xa2d0
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
xorl %eax, %eax
movq %rax, 0x10(%r15)
movb %al, 0x18(%r15)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%r15)
movups %xmm0, 0x38(%r15)
movups %xmm0, 0x48(%r15)
movups %xmm0, 0x58(%r15)
movb %al, 0x68(%r15)
movups %xmm0, 0x70(%r15)
movb %al, 0x80(%r15)
leaq 0x6f146(%rip), %rcx     # 0x97e28
movq %rcx, (%r15)
movq %rax, 0x18(%rsp)
movq %r15, 0xf8(%rsp)
movl $0xa0, %edi
callq 0xa2d0
movq %rax, %rcx
addq $0x18, %rcx
movq %rcx, 0x8(%rax)
xorl %ecx, %ecx
movq %rcx, 0x10(%rax)
movb %cl, 0x18(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movb %cl, 0x68(%rax)
movups %xmm0, 0x70(%rax)
movb %cl, 0x80(%rax)
leaq 0x6eaa9(%rip), %rdx     # 0x977e0
addq $0x10, %rdx
movq %rdx, (%rax)
movq 0x80(%rsp), %rdx
movq %rcx, 0x80(%rsp)
movq %rdx, 0x88(%rax)
movq 0x78(%rsp), %rdx
movq %rcx, 0x78(%rsp)
movq %rdx, 0x90(%rax)
movq %rcx, 0xf8(%rsp)
movq %r15, 0x98(%rax)
leaq 0x40(%rsp), %rdi
movq %rcx, (%rdi)
movq %rax, (%r14)
callq 0x2bc70
movq 0xf8(%rsp), %rsi
testq %rsi, %rsi
je 0x28d9f
leaq 0xf8(%rsp), %rdi
callq 0x16b80
movq $0x0, 0xf8(%rsp)
movq 0x18(%rsp), %rsi
testq %rsi, %rsi
je 0x28dbf
leaq 0x18(%rsp), %rdi
callq 0x2c14c
movq 0x78(%rsp), %rsi
testq %rsi, %rsi
je 0x28dd3
leaq 0x78(%rsp), %rdi
callq 0x16b80
movq $0x0, 0x78(%rsp)
cmpl %r13d, %r12d
jl 0x28df5
movq 0x10(%rsp), %rsi
testq %rsi, %rsi
je 0x28df5
leaq 0x10(%rsp), %rdi
callq 0x2c14c
movq 0x80(%rsp), %rsi
testq %rsi, %rsi
je 0x28e0f
leaq 0x80(%rsp), %rdi
callq 0x16b80
movq $0x0, 0x80(%rsp)
jmp 0x297f9
lock
incl 0x8(%rcx)
movq (%r15), %rax
movq (%rax,%rbx), %rax
movl 0x30(%rax), %ecx
movl 0x34(%rax), %r8d
incl %r8d
movq (%r14), %rax
movq 0x80(%rax), %rdx
movq %rdx, 0x170(%rsp)
movq 0x88(%rax), %rax
movq %rax, 0x178(%rsp)
testq %rax, %rax
je 0x28e70
movq 0x71146(%rip), %rdx     # 0x99fa8
cmpb $0x0, (%rdx)
je 0x28e6c
incl 0x8(%rax)
jmp 0x28e70
lock
incl 0x8(%rax)
leaq 0x170(%rsp), %rax
movq %rax, (%rsp)
leaq 0x218(%rsp), %rdi
leaq 0x318(%rsp), %rsi
leaq 0x180(%rsp), %rdx
movl $0x5, %r9d
callq 0x53c04
leaq 0x18(%rsp), %rdi
leaq 0x218(%rsp), %rsi
callq 0x2b8fa
leaq 0x18(%rsp), %rdi
movq (%rdi), %rax
movq $0x0, (%rdi)
movq %rax, 0x10(%rsp)
callq 0x2b980
movq 0x220(%rsp), %rdi
testq %rdi, %rdi
je 0x28edc
callq 0xdce4
movq 0x178(%rsp), %rdi
testq %rdi, %rdi
je 0x28eee
callq 0xdce4
movq 0x188(%rsp), %rdi
testq %rdi, %rdi
je 0x28f00
callq 0xdce4
movq 0x318(%rsp), %rdi
cmpq %r12, %rdi
je 0x28f12
callq 0xa2b0
movq (%r14), %rax
movq 0x130(%rax), %rax
leaq 0x308(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x2f8(%rsp), %rdi
callq 0xde0c
movq (%r15), %rax
movq (%rax,%rbx), %rax
movq 0x20(%rax), %rcx
movq %rcx, 0x160(%rsp)
movq 0x28(%rax), %rcx
movq %rcx, 0x168(%rsp)
testq %rcx, %rcx
je 0x28f80
movq 0x7103d(%rip), %rdx     # 0x99fa8
cmpb $0x0, (%rdx)
je 0x28f75
incl 0x8(%rcx)
jmp 0x28f80
lock
incl 0x8(%rcx)
movq (%r15), %rax
movq (%rax,%rbx), %rax
movl 0x30(%rax), %ecx
movl 0x34(%rax), %r8d
movq (%r14), %rax
movq 0x130(%rax), %rdx
movq %rdx, 0x150(%rsp)
movq 0x138(%rax), %rax
movq %rax, 0x158(%rsp)
testq %rax, %rax
je 0x28fc2
movq 0x70ff4(%rip), %rdx     # 0x99fa8
cmpb $0x0, (%rdx)
je 0x28fbe
incl 0x8(%rax)
jmp 0x28fc2
lock
incl 0x8(%rax)
leaq 0x150(%rsp), %rax
movq %rax, (%rsp)
leaq 0x208(%rsp), %rdi
leaq 0x2f8(%rsp), %rsi
leaq 0x160(%rsp), %rdx
movl $0x5, %r9d
callq 0x53c04
leaq 0x60(%rsp), %rdi
leaq 0x208(%rsp), %rsi
callq 0x2b8fa
leaq 0x60(%rsp), %rdi
movq (%rdi), %rax
movq $0x0, (%rdi)
movq %rax, 0x18(%rsp)
callq 0x2b980
movq 0x210(%rsp), %rdi
testq %rdi, %rdi
je 0x2902e
callq 0xdce4
movq 0x158(%rsp), %rdi
testq %rdi, %rdi
je 0x29040
callq 0xdce4
movq 0x168(%rsp), %rdi
testq %rdi, %rdi
je 0x29052
callq 0xdce4
movq 0x2f8(%rsp), %rdi
cmpq %r12, %rdi
je 0x29064
callq 0xa2b0
movl $0x88, %edi
callq 0xa2d0
movq %rax, %r15
addq $0x18, %rax
movq %rax, 0x8(%r15)
xorl %eax, %eax
movq %rax, 0x10(%r15)
movb %al, 0x18(%r15)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%r15)
movups %xmm0, 0x38(%r15)
movups %xmm0, 0x48(%r15)
movups %xmm0, 0x58(%r15)
movb %al, 0x68(%r15)
movups %xmm0, 0x70(%r15)
movb %al, 0x80(%r15)
leaq 0x6ed77(%rip), %rcx     # 0x97e28
movq %rcx, (%r15)
movq %rax, 0xc8(%rsp)
movq %r15, 0xd0(%rsp)
movq 0x18(%rsp), %rcx
movq %rcx, 0x1f0(%rsp)
movq %rcx, 0xc0(%rsp)
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %r14
movq %r14, 0xb8(%rsp)
movq %rax, 0x20(%rsp)
movq 0x10(%rsp), %rbp
movq %rbp, 0xb0(%rsp)
movq %rax, 0x10(%rsp)
movq 0x40(%rsp), %r13
movq %r13, 0xa8(%rsp)
movq %rax, 0x40(%rsp)
movl $0xa0, %edi
callq 0xa2d0
movq %rax, %r12
addq $0x18, %rax
movq %rax, 0x8(%r12)
xorl %eax, %eax
movq %rax, 0x10(%r12)
movb %al, 0x18(%r12)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%r12)
movups %xmm0, 0x38(%r12)
movups %xmm0, 0x48(%r12)
movups %xmm0, 0x58(%r12)
movb %al, 0x68(%r12)
movups %xmm0, 0x70(%r12)
movb %al, 0x80(%r12)
leaq 0x6e675(%rip), %rbx     # 0x977e0
addq $0x10, %rbx
movq %rbx, (%r12)
movq %rax, 0xb8(%rsp)
movq %r14, 0x88(%r12)
movq %rax, 0xb0(%rsp)
movq %rbp, 0x90(%r12)
movq %rax, 0xa8(%rsp)
movq %r13, 0x98(%r12)
movq %rax, 0x120(%rsp)
movq %r12, 0x100(%rsp)
movl $0xa0, %edi
callq 0xa2d0
movq %rax, %rcx
addq $0x18, %rcx
movq %rcx, 0x8(%rax)
xorl %ecx, %ecx
movq %rcx, 0x10(%rax)
movb %cl, 0x18(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movb %cl, 0x68(%rax)
movups %xmm0, 0x70(%rax)
movb %cl, 0x80(%rax)
movq %rbx, (%rax)
movq %rcx, 0xd0(%rsp)
movq %r15, 0x88(%rax)
movq %rcx, 0xc0(%rsp)
movq 0x1f0(%rsp), %rdx
movq %rdx, 0x90(%rax)
movq %rcx, 0x100(%rsp)
movq %r12, 0x98(%rax)
leaq 0x60(%rsp), %rdi
movq %rcx, (%rdi)
movq 0x88(%rsp), %r14
movq %rax, (%r14)
callq 0x2bc70
movq 0x100(%rsp), %rsi
testq %rsi, %rsi
je 0x2925b
leaq 0x100(%rsp), %rdi
callq 0x16b80
movq $0x0, 0x100(%rsp)
leaq 0x120(%rsp), %rdi
callq 0x2bc70
movq 0xa8(%rsp), %rsi
testq %rsi, %rsi
je 0x2928e
leaq 0xa8(%rsp), %rdi
callq 0x16b80
movq $0x0, 0xa8(%rsp)
movq 0xb0(%rsp), %rsi
testq %rsi, %rsi
je 0x292b4
leaq 0xb0(%rsp), %rdi
callq 0x16b80
movq $0x0, 0xb0(%rsp)
movq 0xb8(%rsp), %rsi
testq %rsi, %rsi
je 0x292da
leaq 0xb8(%rsp), %rdi
callq 0x16b80
movq $0x0, 0xb8(%rsp)
movq 0xc0(%rsp), %rsi
testq %rsi, %rsi
je 0x29300
leaq 0xc0(%rsp), %rdi
callq 0x16b80
movq $0x0, 0xc0(%rsp)
movq 0xd0(%rsp), %rsi
testq %rsi, %rsi
je 0x29326
leaq 0xd0(%rsp), %rdi
callq 0x16b80
movq $0x0, 0xd0(%rsp)
movq 0xc8(%rsp), %rsi
testq %rsi, %rsi
je 0x2934c
leaq 0xc8(%rsp), %rdi
callq 0x2c14c
movq 0x18(%rsp), %rsi
testq %rsi, %rsi
je 0x295f0
leaq 0x18(%rsp), %rdi
callq 0x16b80
jmp 0x295f0
movl $0x88, %edi
callq 0xa2d0
movq %rax, %rcx
addq $0x18, %rcx
movq %rcx, 0x8(%rax)
movq $0x0, 0x10(%rax)
xorl %ecx, %ecx
movb %cl, 0x18(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movb %cl, 0x68(%rax)
movups %xmm0, 0x70(%rax)
movb %cl, 0x80(%rax)
movq %rbx, (%rax)
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rbx
movq (%rbx), %rax
movq -0x8(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x6e486(%rip), %rax     # 0x97850
movq 0x8(%rax), %rsi
cmpq %rsi, %rdi
je 0x293e9
cmpb $0x2a, (%rdi)
je 0x2946f
callq 0xa3f0
testl %eax, %eax
jne 0x2946f
movq 0x88(%rbx), %rdi
movq (%rdi), %rax
callq *(%rax)
testb %al, %al
jne 0x2946f
movq 0x90(%rbx), %rdi
movq (%rdi), %rax
callq *(%rax)
testb %al, %al
jne 0x2946f
movq 0x98(%rbx), %rdi
movq (%rdi), %rax
callq *(%rax)
testb %al, %al
je 0x2946f
movq 0x88(%rbx), %rax
movq $0x0, 0x88(%rbx)
movq 0x40(%rsp), %rsi
movq %rax, 0x40(%rsp)
testq %rsi, %rsi
je 0x29444
leaq 0x40(%rsp), %rdi
callq 0x16b80
movq 0x90(%rbx), %rax
movq $0x0, 0x90(%rbx)
movq 0x20(%rsp), %rsi
movq %rax, 0x20(%rsp)
testq %rsi, %rsi
je 0x2946f
leaq 0x20(%rsp), %rdi
callq 0x16b80
movq 0x20(%rsp), %rdi
movq (%rdi), %rax
callq *0x8(%rax)
testb %al, %al
jne 0x2948d
movq 0x20(%rsp), %rdi
movq (%rdi), %rax
callq *0x10(%rax)
testb %al, %al
je 0x294bd
movq 0x40(%rsp), %rdi
movq (%rdi), %rax
callq *(%rax)
testb %al, %al
jne 0x294aa
movq 0x40(%rsp), %rdi
movq (%rdi), %rax
callq *0x8(%rax)
testb %al, %al
je 0x294bd
movq 0x10(%rsp), %rdi
movq (%rdi), %rax
callq *0x8(%rax)
testb %al, %al
je 0x2981f
movq 0x40(%rsp), %rbx
movq %rbx, 0xa0(%rsp)
xorl %eax, %eax
movq %rax, 0x40(%rsp)
movq 0x20(%rsp), %r15
movq %r15, 0x98(%rsp)
movq %rax, 0x20(%rsp)
movq 0x10(%rsp), %r12
movq %r12, 0xe0(%rsp)
movq %rax, 0x10(%rsp)
movl $0xa0, %edi
callq 0xa2d0
movq %rax, %rcx
addq $0x18, %rcx
movq %rcx, 0x8(%rax)
xorl %ecx, %ecx
movq %rcx, 0x10(%rax)
movb %cl, 0x18(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movb %cl, 0x68(%rax)
movups %xmm0, 0x70(%rax)
movb %cl, 0x80(%rax)
leaq 0x6e2a6(%rip), %rdx     # 0x977e0
addq $0x10, %rdx
movq %rdx, (%rax)
movq %rcx, 0xa0(%rsp)
movq %rbx, 0x88(%rax)
movq %rcx, 0x98(%rsp)
movq %r15, 0x90(%rax)
movq %rcx, 0xe0(%rsp)
movq %r12, 0x98(%rax)
leaq 0x18(%rsp), %rdi
movq %rcx, (%rdi)
movq %rax, (%r14)
callq 0x2bc70
movq 0xe0(%rsp), %rsi
testq %rsi, %rsi
je 0x29598
leaq 0xe0(%rsp), %rdi
callq 0x16b80
movq $0x0, 0xe0(%rsp)
movq 0x98(%rsp), %rsi
testq %rsi, %rsi
je 0x295be
leaq 0x98(%rsp), %rdi
callq 0x16b80
movq $0x0, 0x98(%rsp)
movq 0xa0(%rsp), %rsi
testq %rsi, %rsi
je 0x295e4
leaq 0xa0(%rsp), %rdi
callq 0x16b80
movq $0x0, 0xa0(%rsp)
movq 0x10(%rsp), %rsi
testq %rsi, %rsi
je 0x29604
leaq 0x10(%rsp), %rdi
callq 0x16b80
movq 0x20(%rsp), %rsi
testq %rsi, %rsi
je 0x29618
leaq 0x20(%rsp), %rdi
callq 0x16b80
movq 0x40(%rsp), %rsi
testq %rsi, %rsi
je 0x28513
leaq 0x40(%rsp), %rdi
callq 0x16b80
jmp 0x28513
lock
incl 0x8(%rax)
leaq 0x10(%rsp), %rdi
leaq 0x140(%rsp), %rsi
callq 0x2b8fa
movq 0x10(%rsp), %rax
movq $0x0, 0x10(%rsp)
movq %rax, 0x90(%rsp)
cmpl %r13d, %r12d
jge 0x2967d
leal 0x1(%r12), %edx
leaq 0x68(%rsp), %rdi
movq %r15, %rsi
movl %r13d, %ecx
callq 0x280bb
jmp 0x296cf
movl $0x88, %edi
callq 0xa2d0
movq %rax, %rcx
addq $0x18, %rcx
movq %rcx, 0x8(%rax)
xorl %ecx, %ecx
movq %rcx, 0x10(%rax)
movb %cl, 0x18(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movb %cl, 0x68(%rax)
movups %xmm0, 0x70(%rax)
movb %cl, 0x80(%rax)
leaq 0x6e766(%rip), %rdx     # 0x97e28
movq %rdx, (%rax)
movq %rcx, 0x18(%rsp)
movq %rax, 0x68(%rsp)
movl $0xa0, %edi
callq 0xa2d0
movq %rax, %rcx
addq $0x18, %rcx
movq %rcx, 0x8(%rax)
xorl %ecx, %ecx
movq %rcx, 0x10(%rax)
movb %cl, 0x18(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movb %cl, 0x68(%rax)
movups %xmm0, 0x70(%rax)
movb %cl, 0x80(%rax)
leaq 0x6e0cc(%rip), %rdx     # 0x977e0
addq $0x10, %rdx
movq %rdx, (%rax)
movq 0x70(%rsp), %rdx
movq %rcx, 0x70(%rsp)
movq %rdx, 0x88(%rax)
movq 0x90(%rsp), %rdx
movq %rcx, 0x90(%rsp)
movq %rdx, 0x90(%rax)
movq 0x68(%rsp), %rdx
movq %rcx, 0x68(%rsp)
movq %rdx, 0x98(%rax)
leaq 0x40(%rsp), %rdi
movq %rcx, (%rdi)
movq %rax, (%r14)
callq 0x2bc70
movq 0x68(%rsp), %rsi
testq %rsi, %rsi
je 0x29778
leaq 0x68(%rsp), %rdi
callq 0x16b80
movq $0x0, 0x68(%rsp)
cmpl %r13d, %r12d
jl 0x2979a
movq 0x18(%rsp), %rsi
testq %rsi, %rsi
je 0x2979a
leaq 0x18(%rsp), %rdi
callq 0x2c14c
movq 0x90(%rsp), %rsi
testq %rsi, %rsi
je 0x297b4
leaq 0x90(%rsp), %rdi
callq 0x16b80
movq $0x0, 0x90(%rsp)
leaq 0x10(%rsp), %rdi
callq 0x2b980
movq 0x148(%rsp), %rdi
testq %rdi, %rdi
je 0x297dc
callq 0xdce4
movq 0x70(%rsp), %rsi
testq %rsi, %rsi
je 0x297f0
leaq 0x70(%rsp), %rdi
callq 0x16b80
movq $0x0, 0x70(%rsp)
cmpl %ebp, %r12d
jg 0x28513
movq 0x20(%rsp), %rsi
testq %rsi, %rsi
je 0x28513
leaq 0x20(%rsp), %rdi
callq 0x2c14c
jmp 0x28513
movq 0x40(%rsp), %rdi
movq (%rdi), %rax
callq *(%rax)
testb %al, %al
je 0x298a7
movl $0x88, %edi
callq 0xa2d0
movq %rax, %rcx
addq $0x18, %rcx
movq %rcx, 0x8(%rax)
xorl %ecx, %ecx
movq %rcx, 0x10(%rax)
movb %cl, 0x18(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movb %cl, 0x68(%rax)
movups %xmm0, 0x70(%rax)
movb %cl, 0x80(%rax)
leaq 0x6e63e(%rip), %rdx     # 0x97eb0
movq %rdx, (%rax)
movq %rcx, 0x18(%rsp)
movq 0x40(%rsp), %rsi
movq %rax, 0x40(%rsp)
testq %rsi, %rsi
je 0x298a7
leaq 0x40(%rsp), %rdi
callq 0x16b80
movq 0x18(%rsp), %rsi
testq %rsi, %rsi
je 0x298a7
leaq 0x18(%rsp), %rdi
callq 0x2c346
xorl %eax, %eax
movq %rax, 0x18(%rsp)
movq %rax, 0x60(%rsp)
movq 0x20(%rsp), %rdi
movq (%rdi), %rax
callq *0x10(%rax)
movq 0x20(%rsp), %rcx
testb %al, %al
je 0x29929
movq 0x98(%rcx), %rax
movq (%rax), %rcx
movq $0x0, (%rax)
movq 0x18(%rsp), %rsi
movq %rcx, 0x18(%rsp)
testq %rsi, %rsi
je 0x298f1
leaq 0x18(%rsp), %rdi
callq 0x16b80
movq 0x20(%rsp), %rax
movq 0xb0(%rax), %rax
movq (%rax), %rcx
movq $0x0, (%rax)
movq 0x60(%rsp), %rsi
movq %rcx, 0x60(%rsp)
testq %rsi, %rsi
je 0x299ce
leaq 0x60(%rsp), %rdi
callq 0x16b80
jmp 0x299ce
movq $0x0, 0x20(%rsp)
movq 0x18(%rsp), %rsi
movq %rcx, 0x18(%rsp)
testq %rsi, %rsi
je 0x2994b
leaq 0x18(%rsp), %rdi
callq 0x16b80
movl $0x88, %edi
callq 0xa2d0
movq %rax, %rcx
addq $0x18, %rcx
movq %rcx, 0x8(%rax)
xorl %ecx, %ecx
movq %rcx, 0x10(%rax)
movb %cl, 0x18(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
movups %xmm0, 0x48(%rax)
movups %xmm0, 0x58(%rax)
movb %cl, 0x68(%rax)
movups %xmm0, 0x70(%rax)
movb %cl, 0x80(%rax)
leaq 0x6e520(%rip), %rdx     # 0x97eb0
movq %rdx, (%rax)
movq %rcx, 0xc8(%rsp)
movq 0x60(%rsp), %rsi
movq %rax, 0x60(%rsp)
testq %rsi, %rsi
je 0x299ce
leaq 0x60(%rsp), %rdi
callq 0x16b80
movq 0xc8(%rsp), %rsi
testq %rsi, %rsi
je 0x299ce
leaq 0xc8(%rsp), %rdi
callq 0x2c346
movq 0x40(%rsp), %rax
leaq 0x118(%rsp), %rsi
movq %rax, (%rsi)
xorl %eax, %eax
movq %rax, 0x40(%rsp)
movq 0x18(%rsp), %rcx
leaq 0x110(%rsp), %rdx
movq %rcx, (%rdx)
movq %rax, 0x18(%rsp)
movq 0x60(%rsp), %rdi
leaq 0x108(%rsp), %rcx
movq %rdi, (%rcx)
movq %rax, 0x60(%rsp)
movq 0x10(%rsp), %rdi
leaq 0xe8(%rsp), %r8
movq %rdi, (%r8)
movq %rax, 0x10(%rsp)
movq %r14, %rdi
callq 0x15334
movq 0xe8(%rsp), %rsi
testq %rsi, %rsi
je 0x29a46
leaq 0xe8(%rsp), %rdi
callq 0x16b80
movq $0x0, 0xe8(%rsp)
movq 0x108(%rsp), %rsi
testq %rsi, %rsi
je 0x29a6c
leaq 0x108(%rsp), %rdi
callq 0x16b80
movq $0x0, 0x108(%rsp)
movq 0x110(%rsp), %rsi
testq %rsi, %rsi
je 0x29a92
leaq 0x110(%rsp), %rdi
callq 0x16b80
movq $0x0, 0x110(%rsp)
movq 0x118(%rsp), %rsi
testq %rsi, %rsi
je 0x29ab8
leaq 0x118(%rsp), %rdi
callq 0x16b80
movq $0x0, 0x118(%rsp)
movq 0x60(%rsp), %rsi
testq %rsi, %rsi
je 0x2934c
leaq 0x60(%rsp), %rdi
callq 0x16b80
jmp 0x2934c
movl $0x38, %edi
callq 0xa1b0
movq %rax, %rbx
leaq 0x50(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x4e9bb(%rip), %rsi     # 0x784ba
leaq 0x4e9c3(%rip), %rdx     # 0x784c9
leaq 0x40(%rsp), %rdi
callq 0xdfa8
leaq 0x4e9b3(%rip), %rsi     # 0x784ca
leaq 0x40(%rsp), %rdi
callq 0xa560
leaq 0x2e8(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x29c45
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x29c58
movl $0x38, %edi
callq 0xa1b0
movq %rax, %r12
leaq 0x30(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%r14), %rsi
movq 0x8(%r14), %rdx
addq %rsi, %rdx
leaq 0x20(%rsp), %rdi
callq 0xde0c
leaq 0x4e97b(%rip), %rsi     # 0x784f9
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0x158ca
leaq 0x4e977(%rip), %rsi     # 0x7850b
leaq 0x40(%rsp), %rdi
callq 0xa560
leaq 0x2c8(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x29ced
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x29d00
movl $0x38, %edi
callq 0xa1b0
movq %rax, %r12
leaq 0x30(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%r14), %rsi
movq 0x8(%r14), %rdx
addq %rsi, %rdx
leaq 0x20(%rsp), %rdi
callq 0xde0c
leaq 0x4e91c(%rip), %rsi     # 0x78516
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0x158ca
leaq 0x5265a(%rip), %rsi     # 0x7c26a
leaq 0x40(%rsp), %rdi
callq 0xa560
leaq 0x2a8(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x29d59
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x29d6c
movq %rdx, 0x2d8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x2e8(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x2e0(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movslq %ebp, %rax
movq (%r15), %rcx
shlq $0x4, %rax
movq (%rcx,%rax), %rdx
movq %rdx, 0x288(%rsp)
movq 0x8(%rcx,%rax), %rax
movq %rax, 0x290(%rsp)
testq %rax, %rax
je 0x29cb0
movq 0x70306(%rip), %rcx     # 0x99fa8
cmpb $0x0, (%rcx)
jne 0x29cad
lock
incl 0x8(%rax)
jmp 0x29cb0
incl 0x8(%rax)
movb $0x1, %bpl
leaq 0x2d8(%rsp), %rsi
leaq 0x288(%rsp), %rcx
movq %rbx, %rdi
movl $0x3, %edx
callq 0x203f4
xorl %ebp, %ebp
leaq 0x6d95f(%rip), %rsi     # 0x97638
leaq -0x151ba(%rip), %rdx    # 0x14b26
movq %rbx, %rdi
callq 0xa4f0
jmp 0x2a0aa
movq %rdx, 0x2b8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x2c8(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x2c0(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%r15), %rax
movq (%rax,%rbx), %rcx
movq %rcx, 0x248(%rsp)
movq 0x8(%rax,%rbx), %rax
movq %rax, 0x250(%rsp)
testq %rax, %rax
je 0x29f26
movq 0x70261(%rip), %rcx     # 0x99fa8
cmpb $0x0, (%rcx)
jne 0x29f23
lock
incl 0x8(%rax)
jmp 0x29f26
movq %rdx, 0x298(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x2a8(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x2a0(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%r15), %rax
movq (%rax,%rbx), %rcx
movq %rcx, 0x238(%rsp)
movq 0x8(%rax,%rbx), %rax
movq %rax, 0x240(%rsp)
testq %rax, %rax
je 0x29f62
movq 0x701f5(%rip), %rcx     # 0x99fa8
cmpb $0x0, (%rcx)
jne 0x29f5f
lock
incl 0x8(%rax)
jmp 0x29f62
incl 0x8(%r13)
leaq 0x30(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x20(%rsp), %rdi
callq 0xde0c
leaq 0x4e6fa(%rip), %rsi     # 0x784e7
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0x158ca
leaq 0x52467(%rip), %rsi     # 0x7c26a
leaq 0x40(%rsp), %rdi
callq 0xa560
leaq 0x278(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x29f9b
movups (%rcx), %xmm0
leaq 0x278(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x29fae
movl $0x38, %edi
callq 0xa1b0
movq %rax, %r12
leaq 0x348(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x4e704(%rip), %rsi     # 0x78563
leaq 0x4e71e(%rip), %rdx     # 0x78584
leaq 0x338(%rsp), %rdi
callq 0xdfa8
movq (%r15), %rax
movq (%rax,%rbx), %rcx
movq %rcx, 0x1f8(%rsp)
movq 0x8(%rax,%rbx), %rax
movq %rax, 0x200(%rsp)
testq %rax, %rax
je 0x2a03d
movq 0x70109(%rip), %rcx     # 0x99fa8
cmpb $0x0, (%rcx)
jne 0x2a03a
lock
incl 0x8(%rax)
jmp 0x2a03d
movl $0x38, %edi
callq 0xa1b0
movq %rax, %r12
leaq 0x368(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x4e656(%rip), %rsi     # 0x78527
leaq 0x4e68a(%rip), %rdx     # 0x78562
leaq 0x358(%rsp), %rdi
callq 0xdfa8
movq (%r15), %rax
movq (%rax,%rbx), %rcx
movq %rcx, 0x228(%rsp)
movq 0x8(%rax,%rbx), %rax
movq %rax, 0x230(%rsp)
testq %rax, %rax
je 0x2a076
movq 0x70097(%rip), %rcx     # 0x99fa8
cmpb $0x0, (%rcx)
jne 0x2a073
lock
incl 0x8(%rax)
jmp 0x2a076
incl 0x8(%rax)
movb $0x1, %bl
leaq 0x2b8(%rsp), %rsi
leaq 0x248(%rsp), %rcx
movq %r12, %rdi
xorl %edx, %edx
callq 0x203f4
xorl %ebx, %ebx
leaq 0x6d6ed(%rip), %rsi     # 0x97638
leaq -0x1542c(%rip), %rdx    # 0x14b26
movq %r12, %rdi
callq 0xa4f0
jmp 0x2a0aa
incl 0x8(%rax)
movb $0x1, %bl
leaq 0x298(%rsp), %rsi
leaq 0x238(%rsp), %rcx
movq %r12, %rdi
xorl %edx, %edx
callq 0x203f4
xorl %ebx, %ebx
leaq 0x6d6b1(%rip), %rsi     # 0x97638
leaq -0x15468(%rip), %rdx    # 0x14b26
movq %r12, %rdi
callq 0xa4f0
jmp 0x2a0aa
movq %rdx, 0x268(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x278(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x270(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%r14), %rax
movq (%rax,%r12), %rcx
movq %rcx, 0x258(%rsp)
movq 0x8(%rax,%r12), %rax
movq %rax, 0x260(%rsp)
testq %rax, %rax
je 0x29fff
movq 0x6ffb7(%rip), %rcx     # 0x99fa8
cmpb $0x0, (%rcx)
jne 0x29ffc
lock
incl 0x8(%rax)
jmp 0x29fff
incl 0x8(%rax)
movb $0x1, %r15b
leaq 0x268(%rsp), %rsi
leaq 0x258(%rsp), %rcx
movq %rbx, %rdi
movl $0x3, %edx
callq 0x203f4
xorl %r15d, %r15d
leaq 0x6d60f(%rip), %rsi     # 0x97638
leaq -0x1550a(%rip), %rdx    # 0x14b26
movq %rbx, %rdi
callq 0xa4f0
jmp 0x2a0aa
incl 0x8(%rax)
movb $0x1, %bl
leaq 0x338(%rsp), %rsi
leaq 0x1f8(%rsp), %rcx
movq %r12, %rdi
xorl %edx, %edx
callq 0x203f4
xorl %ebx, %ebx
leaq 0x6d5d6(%rip), %rsi     # 0x97638
leaq -0x15543(%rip), %rdx    # 0x14b26
movq %r12, %rdi
callq 0xa4f0
jmp 0x2a0aa
incl 0x8(%rax)
movb $0x1, %bl
leaq 0x358(%rsp), %rsi
leaq 0x228(%rsp), %rcx
movq %r12, %rdi
xorl %edx, %edx
callq 0x203f4
xorl %ebx, %ebx
leaq 0x6d59d(%rip), %rsi     # 0x97638
leaq -0x1557c(%rip), %rdx    # 0x14b26
movq %r12, %rdi
callq 0xa4f0
jmp 0x2a0f5
jmp 0x2a50b
movq %rax, %r14
movq 0xe8(%rsp), %rsi
testq %rsi, %rsi
je 0x2a0ce
leaq 0xe8(%rsp), %rdi
callq 0x16b80
leaq 0xe8(%rsp), %rdi
leaq 0x108(%rsp), %rsi
leaq 0x110(%rsp), %rdx
leaq 0x118(%rsp), %rcx
callq 0xa763
jmp 0x2a0f8
movq %rax, %r14
movq 0x60(%rsp), %rsi
testq %rsi, %rsi
je 0x2a443
leaq 0x60(%rsp), %rdi
callq 0x16b80
jmp 0x2a443
jmp 0x2a506
jmp 0x2a506
movq %rax, %r14
testq %r12, %r12
je 0x2a13f
leaq 0xe0(%rsp), %rdi
movq %r12, %rsi
callq 0x16b80
movq 0x98(%rsp), %r15
movq $0x0, 0xe0(%rsp)
testq %r15, %r15
je 0x2a160
leaq 0x98(%rsp), %rdi
movq %r15, %rsi
callq 0x16b80
movq $0x0, 0x98(%rsp)
movq 0xa0(%rsp), %rsi
testq %rsi, %rsi
je 0x2a186
leaq 0xa0(%rsp), %rdi
callq 0x16b80
movq $0x0, 0xa0(%rsp)
jmp 0x2a50e
jmp 0x2a199
movq %rax, %r14
jmp 0x2a23c
jmp 0x2a1c8
jmp 0x2a1c8
jmp 0x2a1a7
movq %rax, %r14
jmp 0x2a2a0
jmp 0x2a1c8
jmp 0x2a1c8
jmp 0x2a50b
jmp 0x2a1be
jmp 0x2a1c8
jmp 0x2a1be
movq %rax, %r14
jmp 0x2a536
jmp 0x2a1c8
movq %rax, %r14
jmp 0x2a804
movq %rax, %r14
leaq 0xf8(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x16b80
movq $0x0, (%rbx)
movq 0x18(%rsp), %rsi
testq %rsi, %rsi
je 0x2a206
leaq 0x18(%rsp), %rdi
callq 0x2c14c
jmp 0x2a206
movq %rax, %r14
movq 0x78(%rsp), %rsi
testq %rsi, %rsi
je 0x2a21a
leaq 0x78(%rsp), %rdi
callq 0x16b80
movq $0x0, 0x78(%rsp)
cmpl %r13d, %r12d
jl 0x2a23c
movq 0x10(%rsp), %rsi
testq %rsi, %rsi
je 0x2a23c
leaq 0x10(%rsp), %rdi
callq 0x2c14c
movq 0x80(%rsp), %rsi
testq %rsi, %rsi
je 0x2a256
leaq 0x80(%rsp), %rdi
callq 0x16b80
movq $0x0, 0x80(%rsp)
jmp 0x2a304
movq %rax, %r14
movq 0x68(%rsp), %rsi
testq %rsi, %rsi
je 0x2a27e
leaq 0x68(%rsp), %rdi
callq 0x16b80
movq $0x0, 0x68(%rsp)
cmpl %r13d, %r12d
jl 0x2a2a0
movq 0x18(%rsp), %rsi
testq %rsi, %rsi
je 0x2a2a0
leaq 0x18(%rsp), %rdi
callq 0x2c14c
movq 0x90(%rsp), %rsi
testq %rsi, %rsi
je 0x2a2ba
leaq 0x90(%rsp), %rdi
callq 0x16b80
movq $0x0, 0x90(%rsp)
leaq 0x10(%rsp), %rdi
callq 0x2b980
jmp 0x2a2d5
movq %rax, %r14
movq 0x148(%rsp), %rdi
testq %rdi, %rdi
je 0x2a2e7
callq 0xdce4
movq 0x70(%rsp), %rsi
testq %rsi, %rsi
je 0x2a2fb
leaq 0x70(%rsp), %rdi
callq 0x16b80
movq $0x0, 0x70(%rsp)
cmpl %ebp, %r12d
jg 0x2a804
movq 0x20(%rsp), %rsi
testq %rsi, %rsi
je 0x2a804
leaq 0x20(%rsp), %rdi
callq 0x2c14c
jmp 0x2a804
jmp 0x2a32c
movq %rax, %r14
jmp 0x2a5da
movq %rax, %r14
leaq 0x100(%rsp), %r15
movq %r15, %rdi
movq %r12, %rsi
callq 0x16b80
movq $0x0, (%r15)
leaq 0x120(%rsp), %rdi
callq 0x2bc70
movq 0xa8(%rsp), %r13
jmp 0x2a36b
movq %rax, %r14
testq %r13, %r13
je 0x2a380
leaq 0xa8(%rsp), %rdi
movq %r13, %rsi
callq 0x16b80
movq $0x0, 0xa8(%rsp)
movq 0xb0(%rsp), %rsi
testq %rsi, %rsi
je 0x2a3a6
leaq 0xb0(%rsp), %rdi
callq 0x16b80
movq $0x0, 0xb0(%rsp)
movq 0xb8(%rsp), %rsi
testq %rsi, %rsi
je 0x2a3cc
leaq 0xb8(%rsp), %rdi
callq 0x16b80
movq $0x0, 0xb8(%rsp)
movq 0xc0(%rsp), %rsi
testq %rsi, %rsi
je 0x2a3f2
leaq 0xc0(%rsp), %rdi
callq 0x16b80
movq $0x0, 0xc0(%rsp)
movq 0xd0(%rsp), %rsi
testq %rsi, %rsi
je 0x2a418
leaq 0xd0(%rsp), %rdi
callq 0x16b80
movq $0x0, 0xd0(%rsp)
movq 0xc8(%rsp), %rsi
testq %rsi, %rsi
je 0x2a443
leaq 0xc8(%rsp), %rdi
callq 0x2c14c
jmp 0x2a443
movq %rax, %r14
movq 0x18(%rsp), %rsi
testq %rsi, %rsi
je 0x2a50e
leaq 0x18(%rsp), %rdi
callq 0x16b80
jmp 0x2a50e
movq %rax, %r14
movq 0x210(%rsp), %rdi
testq %rdi, %rdi
je 0x2a47a
callq 0xdce4
jmp 0x2a47a
movq %rax, %r14
movq 0x158(%rsp), %rdi
testq %rdi, %rdi
je 0x2a48c
callq 0xdce4
movq 0x168(%rsp), %rdi
testq %rdi, %rdi
je 0x2a49e
callq 0xdce4
movq 0x2f8(%rsp), %rdi
cmpq %r12, %rdi
je 0x2a50e
callq 0xa2b0
jmp 0x2a50e
jmp 0x2a50b
movq %rax, %r14
movq 0x220(%rsp), %rdi
testq %rdi, %rdi
je 0x2a4ce
callq 0xdce4
jmp 0x2a4ce
movq %rax, %r14
movq 0x178(%rsp), %rdi
testq %rdi, %rdi
je 0x2a4e0
callq 0xdce4
movq 0x188(%rsp), %rdi
testq %rdi, %rdi
je 0x2a4f2
callq 0xdce4
movq 0x318(%rsp), %rdi
cmpq %r12, %rdi
je 0x2a522
callq 0xa2b0
jmp 0x2a522
movq %rax, %r14
jmp 0x2a522
movq %rax, %r14
movq 0x10(%rsp), %rsi
testq %rsi, %rsi
je 0x2a522
leaq 0x10(%rsp), %rdi
callq 0x16b80
movq 0x20(%rsp), %rsi
testq %rsi, %rsi
je 0x2a536
leaq 0x20(%rsp), %rdi
callq 0x16b80
movq 0x40(%rsp), %rsi
testq %rsi, %rsi
je 0x2a804
leaq 0x40(%rsp), %rdi
callq 0x16b80
jmp 0x2a804
movq %rax, %r14
movq 0xf0(%rsp), %rsi
testq %rsi, %rsi
je 0x2a570
leaq 0xf0(%rsp), %rdi
callq 0x16b80
movq $0x0, 0xf0(%rsp)
leaq 0x128(%rsp), %rdi
callq 0x2b980
jmp 0x2a5da
movq %rax, %r14
movq 0x198(%rsp), %rdi
testq %rdi, %rdi
je 0x2a5da
callq 0xdce4
jmp 0x2a5da
movq %rax, %r14
movq 0x230(%rsp), %rdi
testq %rdi, %rdi
je 0x2a5b7
callq 0xdce4
movq 0x358(%rsp), %rdi
cmpq %r13, %rdi
je 0x2a5c9
callq 0xa2b0
testb %bl, %bl
jne 0x2a5d2
jmp 0x2a5da
movq %rax, %r14
movq %r12, %rdi
callq 0xa240
movq 0x20(%rsp), %rsi
testq %rsi, %rsi
je 0x2a5ee
leaq 0x20(%rsp), %rdi
callq 0x16b80
leaq 0x40(%rsp), %rdi
callq 0x2b980
jmp 0x2a804
movq %rax, %r14
movq 0x200(%rsp), %rdi
testq %rdi, %rdi
je 0x2a612
callq 0xdce4
movq 0x338(%rsp), %rdi
jmp 0x2a735
jmp 0x2a77a
movq %rax, %r14
movq 0x260(%rsp), %rdi
testq %rdi, %rdi
je 0x2a639
callq 0xdce4
movq 0x268(%rsp), %rdi
leaq 0x278(%rsp), %rax
cmpq %rax, %rdi
je 0x2a65b
callq 0xa2b0
jmp 0x2a65b
movq %rax, %r14
movb $0x1, %r15b
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2a69c
callq 0xa2b0
jmp 0x2a69c
movq %rax, %r14
jmp 0x2a7fa
movq %rax, %r14
movq 0x1a8(%rsp), %rdi
testq %rdi, %rdi
je 0x2a7fa
callq 0xdce4
jmp 0x2a7fa
movq %rax, %r14
movb $0x1, %r15b
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x2a6b3
callq 0xa2b0
jmp 0x2a6b3
movq %rax, %r14
movb $0x1, %r15b
testq %r13, %r13
je 0x2a6c0
movq %r13, %rdi
callq 0xdce4
testb %r15b, %r15b
jne 0x2a829
jmp 0x2a848
movq %rax, %r14
movq 0x240(%rsp), %rdi
testq %rdi, %rdi
je 0x2a6e3
callq 0xdce4
movq 0x298(%rsp), %rdi
jmp 0x2a70c
jmp 0x2a718
movq %rax, %r14
movq 0x250(%rsp), %rdi
testq %rdi, %rdi
je 0x2a704
callq 0xdce4
movq 0x2b8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x2a71d
callq 0xa2b0
jmp 0x2a71d
movq %rax, %r14
movb $0x1, %bl
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2a730
callq 0xa2b0
movq 0x20(%rsp), %rdi
cmpq %r13, %rdi
je 0x2a73f
callq 0xa2b0
testb %bl, %bl
jne 0x2a77d
jmp 0x2a804
jmp 0x2a74a
movq %rax, %r14
movq 0x20(%rsp), %rdi
cmpq %r13, %rdi
je 0x2a77d
callq 0xa2b0
jmp 0x2a77d
movq %rax, %r14
movq 0x1c8(%rsp), %rdi
jmp 0x2a7e6
movq %rax, %r14
movq 0x1d8(%rsp), %rdi
jmp 0x2a7e6
jmp 0x2a77a
movq %rax, %r14
movq %r12, %rdi
callq 0xa240
jmp 0x2a804
movq %rax, %r14
movq 0x290(%rsp), %rdi
testq %rdi, %rdi
je 0x2a79c
callq 0xdce4
movq 0x2d8(%rsp), %rdi
cmpq %r13, %rdi
je 0x2a7ae
callq 0xa2b0
movq 0x40(%rsp), %rdi
cmpq %r12, %rdi
je 0x2a7bd
callq 0xa2b0
testb %bpl, %bpl
jne 0x2a829
jmp 0x2a848
movq %rax, %r14
movq 0x40(%rsp), %rdi
cmpq %r12, %rdi
je 0x2a829
callq 0xa2b0
jmp 0x2a829
movq %rax, %r14
movq 0x1b8(%rsp), %rdi
testq %rdi, %rdi
je 0x2a7f0
callq 0xdce4
leaq 0x20(%rsp), %rdi
callq 0x25f22
leaq 0x40(%rsp), %rdi
callq 0x25f22
cmpq $0x0, 0xd8(%rsp)
je 0x2a848
movq 0xd8(%rsp), %rdi
jmp 0x2a843
movq %rax, %r14
movq 0x1e8(%rsp), %rdi
jmp 0x2a83e
movq %rax, %r14
movq %rbx, %rdi
callq 0xa240
jmp 0x2a848
movq %rax, %r14
movq 0x138(%rsp), %rdi
testq %rdi, %rdi
je 0x2a848
callq 0xdce4
movq %r14, %rdi
callq 0xa510