LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: menhits[P]phplus/src/Namespace.cpp
// Function: NamespaceData::nodesToMatchingActions(std::vector<std::shared_ptr<ActionData>, std::allocator<std::shared_ptr<ActionData>>>&, std::vector<AstNodeBase*, std::allocator<AstNodeBase*>>&, std::shared_ptr<TypeBase>, std::shared_ptr<TypeBase>)
void NamespaceData::nodesToMatchingActions(vector<Action>& out, vector<AstNodeBase*>& nodes, Type leftInType, Type rightInType)
{
	for (auto i: nodes)
	{
		Action action=i->getAction();
		
		if (action->getInLeftType()->matches(leftInType) && action->getInRightType()->matches(rightInType))
			out.push_back(action);
		
		//Action converter=getConverter(action, leftInType, rightInType);
	}
}

// Assembly:
subq $0xf8, %rsp
movq %rcx, 0x58(%rsp)
movq %r8, 0x60(%rsp)
movq %rdi, 0xf0(%rsp)
movq %rsi, 0xe8(%rsp)
movq %rdx, 0xe0(%rsp)
movq %rcx, 0xd8(%rsp)
movq %r8, 0xd0(%rsp)
movq 0xe0(%rsp), %rax
movq %rax, 0xc8(%rsp)
movq 0xc8(%rsp), %rdi
callq 0x3ef70
movq %rax, 0xc0(%rsp)
movq 0xc8(%rsp), %rdi
callq 0x3efa0
movq %rax, 0xb8(%rsp)
leaq 0xc0(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x3efd0
testb $0x1, %al
jne 0x3e501
jmp 0x3e6dd
leaq 0xc0(%rsp), %rdi
callq 0x3f010
movq (%rax), %rax
movq %rax, 0xb0(%rsp)
movq 0xb0(%rsp), %rsi
leaq 0xa0(%rsp), %rdi
movq %rdi, 0x48(%rsp)
callq 0x1aaa0
movq 0x48(%rsp), %rdi
callq 0x1bb50
movq %rax, %rdi
movb $0x0, 0x6f(%rsp)
callq 0x3f060
movq %rax, 0x50(%rsp)
jmp 0x3e551
movq 0x50(%rsp), %rdi
callq 0x1a660
movq 0x58(%rsp), %rsi
movq %rax, 0x30(%rsp)
leaq 0x80(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0x1a920
movq 0x30(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0x9f1a0
movb %al, 0x47(%rsp)
jmp 0x3e58c
movb 0x47(%rsp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, 0x2f(%rsp)
jne 0x3e59d
jmp 0x3e600
leaq 0xa0(%rsp), %rdi
callq 0x1bb50
movq %rax, %rdi
callq 0x3f070
movq %rax, 0x20(%rsp)
jmp 0x3e5b9
movq 0x20(%rsp), %rdi
callq 0x1a660
movq 0x60(%rsp), %rsi
movq %rax, 0x8(%rsp)
leaq 0x70(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0x1a920
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
movb $0x1, 0x6f(%rsp)
callq 0x9f1a0
movb %al, 0x1f(%rsp)
jmp 0x3e5f6
movb 0x1f(%rsp), %al
movb %al, 0x2f(%rsp)
jmp 0x3e600
movb 0x2f(%rsp), %al
movb %al, 0x7(%rsp)
testb $0x1, 0x6f(%rsp)
jne 0x3e611
jmp 0x3e61b
leaq 0x70(%rsp), %rdi
callq 0x1a950
leaq 0x80(%rsp), %rdi
callq 0x1a950
movb 0x7(%rsp), %al
testb $0x1, %al
jne 0x3e632
jmp 0x3e6af
movq 0xe8(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0x1acd0
jmp 0x3e649
jmp 0x3e6af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x98(%rsp)
movl %eax, 0x94(%rsp)
jmp 0x3e6ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x98(%rsp)
movl %eax, 0x94(%rsp)
jmp 0x3e6a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x98(%rsp)
movl %eax, 0x94(%rsp)
testb $0x1, 0x6f(%rsp)
jne 0x3e694
jmp 0x3e69e
leaq 0x70(%rsp), %rdi
callq 0x1a950
jmp 0x3e6a0
leaq 0x80(%rsp), %rdi
callq 0x1a950
jmp 0x3e6ce
leaq 0xa0(%rsp), %rdi
callq 0x1acc0
leaq 0xc0(%rsp), %rdi
callq 0x3f040
jmp 0x3e4e3
leaq 0xa0(%rsp), %rdi
callq 0x1acc0
jmp 0x3e6e5
addq $0xf8, %rsp
retq
movq 0x98(%rsp), %rdi
callq 0xb680
nopw %cs:(%rax,%rax)
nopl (%rax)
// File: menhits[P]phplus/src/../h/AstNode.h
// Function: AstActionWrapper::make(std::shared_ptr<ActionData>)
static unique_ptr<AstActionWrapper> make(Action actionIn) {
		auto out = unique_ptr<AstActionWrapper>(new AstActionWrapper);
		out->inLeftType=actionIn->getInLeftType();
		out->inRightType=actionIn->getInRightType();
		out->returnType=actionIn->getReturnType();
		out->action=actionIn;
		out->dynamic=true; // shouldn't matter
		out->ns=nullptr; // shouldn't matter
		out->inputHasBeenSet=true;
		return out;
	}

// Assembly:
subq $0x78, %rsp
movq %rsi, 0x20(%rsp)
movq %rdi, 0x28(%rsp)
movq %rdi, %rax
movq %rax, 0x30(%rsp)
movq %rdi, 0x70(%rsp)
movq %rsi, 0x68(%rsp)
movb $0x0, 0x67(%rsp)
movl $0x88, %edi
callq 0xb390
movq %rax, %rdi
movq %rdi, %rax
movq %rax, 0x38(%rsp)
callq 0x3f790
jmp 0x3ead1
movq 0x38(%rsp), %rsi
movq 0x28(%rsp), %rdi
callq 0x3f7c0
movq 0x20(%rsp), %rdi
callq 0x1bb50
movq %rax, %rdi
callq 0x3f060
movq %rax, 0x18(%rsp)
jmp 0x3eaf9
movq 0x28(%rsp), %rdi
callq 0x3f7f0
movq 0x18(%rsp), %rsi
movq %rax, %rdi
addq $0x28, %rdi
callq 0x1a4e0
movq 0x20(%rsp), %rdi
callq 0x1bb50
movq %rax, %rdi
callq 0x3f070
movq %rax, 0x10(%rsp)
jmp 0x3eb2d
movq 0x28(%rsp), %rdi
callq 0x3f7f0
movq 0x10(%rsp), %rsi
movq %rax, %rdi
addq $0x38, %rdi
callq 0x1a4e0
movq 0x20(%rsp), %rdi
callq 0x1bb50
movq %rax, %rdi
callq 0x1bed0
movq %rax, 0x8(%rsp)
jmp 0x3eb61
movq 0x28(%rsp), %rdi
callq 0x3f7f0
movq 0x8(%rsp), %rsi
movq %rax, %rdi
addq $0x58, %rdi
callq 0x1a4e0
movq 0x28(%rsp), %rdi
callq 0x3f7f0
movq 0x20(%rsp), %rsi
movq %rax, %rdi
addq $0x48, %rdi
callq 0x1a510
movq 0x28(%rsp), %rdi
callq 0x3f7f0
movb $0x1, 0x68(%rax)
leaq 0x40(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x1dcd0
movq 0x28(%rsp), %rdi
callq 0x3f7f0
movq %rax, %rdi
addq $0x70, %rdi
leaq 0x40(%rsp), %rsi
callq 0x1a6b0
leaq 0x40(%rsp), %rdi
callq 0x1a6e0
movq 0x28(%rsp), %rdi
callq 0x3f7f0
movb $0x1, 0x80(%rax)
movb $0x1, 0x67(%rsp)
testb $0x1, 0x67(%rsp)
jne 0x3ec35
jmp 0x3ec2b
movq 0x38(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x58(%rsp)
movl %eax, 0x54(%rsp)
callq 0xb350
jmp 0x3ec3f
movq 0x28(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x58(%rsp)
movl %eax, 0x54(%rsp)
callq 0x3ecb0
jmp 0x3ec3f
movq 0x28(%rsp), %rdi
callq 0x3ecb0
movq 0x30(%rsp), %rax
addq $0x78, %rsp
retq
movq 0x58(%rsp), %rdi
callq 0xb680
nopl (%rax)
// File: menhits[P]phplus/src/Parser.cpp
// Function: astNodeFromTokens(std::vector<std::shared_ptr<TokenData>, std::allocator<std::shared_ptr<TokenData>>> const&, int, int)
AstNode astNodeFromTokens(const vector<Token>& tokens, int left, int right)
{
	vector<AstNode> nodes;
	
	parseTokenList(tokens, left, right, nodes);
	
	if (nodes.size()==0)
	{
		return AstVoid::make();
	}
	else if (nodes.size()==1)
	{
		return move(nodes[0]);
	}
	else
	{
		return AstList::make(nodes);
	}
}

// Assembly:
subq $0x78, %rsp
movq %rdi, 0x8(%rsp)
movq %rdi, %rax
movq %rax, 0x10(%rsp)
movq %rdi, 0x70(%rsp)
movq %rsi, 0x68(%rsp)
movl %edx, 0x64(%rsp)
movl %ecx, 0x60(%rsp)
leaq 0x48(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x1eaf0
movq 0x18(%rsp), %rcx
movq 0x68(%rsp), %rdi
movl 0x64(%rsp), %esi
movl 0x60(%rsp), %edx
callq 0x42a30
jmp 0x4294b
leaq 0x48(%rsp), %rdi
callq 0x1a580
cmpq $0x0, %rax
jne 0x429a7
leaq 0x30(%rsp), %rdi
callq 0x483a0
jmp 0x42967
movq 0x8(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x48410
leaq 0x30(%rsp), %rdi
callq 0x48470
movl $0x1, 0x2c(%rsp)
jmp 0x42a0e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x40(%rsp)
movl %eax, 0x3c(%rsp)
leaq 0x48(%rsp), %rdi
callq 0x3e7f0
jmp 0x42a22
leaq 0x48(%rsp), %rdi
callq 0x1a580
cmpq $0x1, %rax
jne 0x429dc
leaq 0x48(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x1a5d0
movq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x1b710
movl $0x1, 0x2c(%rsp)
jmp 0x42a0e
leaq 0x20(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x484d0
jmp 0x429ed
movq 0x8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x48590
leaq 0x20(%rsp), %rdi
callq 0x485f0
movl $0x1, 0x2c(%rsp)
leaq 0x48(%rsp), %rdi
callq 0x3e7f0
movq 0x10(%rsp), %rax
addq $0x78, %rsp
retq
movq 0x40(%rsp), %rdi
callq 0xb680
nopl (%rax)
// File: menhits[P]phplus/src/../h/AstNode.h
// Function: AstOpWithInput::make(std::vector<std::unique_ptr<AstNodeBase, std::default_delete<AstNodeBase>>, std::allocator<std::unique_ptr<AstNodeBase, std::default_delete<AstNodeBase>>>>&, std::shared_ptr<TokenData>, std::vector<std::unique_ptr<AstNodeBase, std::default_delete<AstNodeBase>>, std::allocator<std::unique_ptr<AstNodeBase, std::default_delete<AstNodeBase>>>>&)
static unique_ptr<AstOpWithInput> make(vector<AstNode>& leftInIn, Token tokenIn, vector<AstNode>& rightInIn)
	{
		unique_ptr<AstOpWithInput> node(new AstOpWithInput);
		
		node->leftIn=move(leftInIn);
		node->token=tokenIn;
		node->rightIn=move(rightInIn);
		
		return node;
	}

// Assembly:
subq $0x68, %rsp
movq %rdx, 0x10(%rsp)
movq %rdi, 0x18(%rsp)
movq %rdi, %rax
movq %rax, 0x20(%rsp)
movq %rdi, 0x60(%rsp)
movq %rsi, 0x58(%rsp)
movq %rdx, 0x50(%rsp)
movq %rcx, 0x48(%rsp)
movb $0x0, 0x47(%rsp)
movl $0xc8, %edi
callq 0xb390
movq %rax, %rdi
movq %rdi, %rax
movq %rax, 0x28(%rsp)
callq 0x1fa60
jmp 0x488cb
movq 0x18(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0x49db0
movq 0x18(%rsp), %rdi
movq 0x58(%rsp), %rax
movq %rax, (%rsp)
callq 0x49de0
movq (%rsp), %rsi
movq %rax, %rdi
addq $0x98, %rdi
callq 0x3e7b0
movq 0x18(%rsp), %rdi
callq 0x49de0
movq 0x10(%rsp), %rsi
movq %rax, %rdi
addq $0x88, %rdi
callq 0x1f470
movq 0x18(%rsp), %rdi
movq 0x48(%rsp), %rax
movq %rax, 0x8(%rsp)
callq 0x49de0
movq 0x8(%rsp), %rsi
movq %rax, %rdi
addq $0xb0, %rdi
callq 0x3e7b0
movb $0x1, 0x47(%rsp)
testb $0x1, 0x47(%rsp)
jne 0x48978
jmp 0x4896e
movq 0x28(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x38(%rsp)
movl %eax, 0x34(%rsp)
callq 0xb350
jmp 0x48982
movq 0x18(%rsp), %rdi
callq 0x489f0
movq 0x20(%rsp), %rax
addq $0x68, %rsp
retq
movq 0x38(%rsp), %rdi
callq 0xb680
nopl (%rax)
// File: menhits[P]phplus/src/../h/AstNode.h
// Function: AstConstExpression::make(std::unique_ptr<AstToken, std::default_delete<AstToken>>, std::unique_ptr<AstNodeBase, std::default_delete<AstNodeBase>>)
static unique_ptr<AstConstExpression> make(unique_ptr<AstToken> centerIn, AstNode rightInIn)
	{
		unique_ptr<AstConstExpression> node(new AstConstExpression);
		
		//node->leftIn=move(leftInIn);
		node->center=move(centerIn);
		node->rightIn=move(rightInIn);
		
		return node;
	}

// Assembly:
subq $0x58, %rsp
movq %rdx, (%rsp)
movq %rsi, 0x8(%rsp)
movq %rdi, 0x10(%rsp)
movq %rdi, %rax
movq %rax, 0x18(%rsp)
movq %rdi, 0x50(%rsp)
movq %rsi, 0x48(%rsp)
movq %rdx, 0x40(%rsp)
movb $0x0, 0x3f(%rsp)
movl $0x98, %edi
callq 0xb390
movq %rax, %rdi
movq %rdi, %rax
movq %rax, 0x20(%rsp)
callq 0x1f550
jmp 0x48c7a
movq 0x10(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0x4a1f0
movq 0x10(%rsp), %rdi
callq 0x4a220
movq 0x8(%rsp), %rsi
movq %rax, %rdi
addq $0x88, %rdi
callq 0x1f5f0
movq 0x10(%rsp), %rdi
callq 0x4a220
movq (%rsp), %rsi
movq %rax, %rdi
addq $0x90, %rdi
callq 0x1b3c0
movb $0x1, 0x3f(%rsp)
testb $0x1, 0x3f(%rsp)
jne 0x48cf6
jmp 0x48cec
movq 0x20(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x30(%rsp)
movl %eax, 0x2c(%rsp)
callq 0xb350
jmp 0x48d00
movq 0x10(%rsp), %rdi
callq 0x48da0
movq 0x18(%rsp), %rax
addq $0x58, %rsp
retq
movq 0x30(%rsp), %rdi
callq 0xb680
nopw (%rax,%rax)
// File: menhits[P]phplus/src/../h/AstNode.h
// Function: AstExpression::make(std::unique_ptr<AstNodeBase, std::default_delete<AstNodeBase>>, std::unique_ptr<AstNodeBase, std::default_delete<AstNodeBase>>, std::unique_ptr<AstNodeBase, std::default_delete<AstNodeBase>>)
static unique_ptr<AstExpression> make(AstNode leftInIn, AstNode centerIn, AstNode rightInIn)
	{
		unique_ptr<AstExpression> node(new AstExpression);
		
		node->leftIn=move(leftInIn);
		node->center=move(centerIn);
		node->rightIn=move(rightInIn);
		
		return node;
	}

// Assembly:
subq $0x68, %rsp
movq %rcx, (%rsp)
movq %rdx, 0x8(%rsp)
movq %rsi, 0x10(%rsp)
movq %rdi, 0x18(%rsp)
movq %rdi, %rax
movq %rax, 0x20(%rsp)
movq %rdi, 0x60(%rsp)
movq %rsi, 0x58(%rsp)
movq %rdx, 0x50(%rsp)
movq %rcx, 0x48(%rsp)
movb $0x0, 0x47(%rsp)
movl $0xa0, %edi
callq 0xb390
movq %rax, %rdi
movq %rdi, %rax
movq %rax, 0x28(%rsp)
callq 0x1f4e0
jmp 0x48e54
movq 0x18(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0x4a500
movq 0x18(%rsp), %rdi
callq 0x4a530
movq 0x10(%rsp), %rsi
movq %rax, %rdi
addq $0x88, %rdi
callq 0x1b3c0
movq 0x18(%rsp), %rdi
callq 0x4a530
movq 0x8(%rsp), %rsi
movq %rax, %rdi
addq $0x90, %rdi
callq 0x1b3c0
movq 0x18(%rsp), %rdi
callq 0x4a530
movq (%rsp), %rsi
movq %rax, %rdi
addq $0x98, %rdi
callq 0x1b3c0
movb $0x1, 0x47(%rsp)
testb $0x1, 0x47(%rsp)
jne 0x48eee
jmp 0x48ee4
movq 0x28(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x38(%rsp)
movl %eax, 0x34(%rsp)
callq 0xb350
jmp 0x48ef8
movq 0x18(%rsp), %rdi
callq 0x48f70
movq 0x20(%rsp), %rax
addq $0x68, %rsp
retq
movq 0x38(%rsp), %rdi
callq 0xb680
nopw %cs:(%rax,%rax)
nopl (%rax)
// File: menhits[P]phplus/src/PhplusProgram.cpp
// Function: PhplusProgram::getCpp[abi:cxx11]()
string PhplusProgram::getCpp()
{
	try
	{
		CppProgram outProg;
		actionRoot->addToProg(voidAction, voidAction, &outProg);
		return outProg.getCppCode();
	}
 	catch (PhplusError err)
	{
		err.log();
		return "/* no program due to transpiling error */";
	}
}

// Assembly:
subq $0x1d8, %rsp            # imm = 0x1D8
movq %rdi, 0x38(%rsp)
movq %rdi, %rax
movq %rax, 0x40(%rsp)
movq %rdi, 0x1d0(%rsp)
movq %rsi, 0x1c8(%rsp)
movq 0x1c8(%rsp), %rax
movq %rax, 0x48(%rsp)
leaq 0xc0(%rsp), %rdi
callq 0x25420
jmp 0x4df40
movq 0x48(%rsp), %rdi
addq $0x30, %rdi
callq 0x1bb50
movq %rax, 0x20(%rsp)
leaq 0xca4be(%rip), %rsi     # 0x118418
movq %rsi, 0x18(%rsp)
leaq 0xa0(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0x1ac60
movq 0x18(%rsp), %rsi
leaq 0x90(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0x1ac60
movq 0x20(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq 0xc0(%rsp), %rcx
callq *%rax
jmp 0x4dfaa
leaq 0x90(%rsp), %rdi
callq 0x1acc0
leaq 0xa0(%rsp), %rdi
callq 0x1acc0
movq 0x38(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0x2c540
jmp 0x4dfd8
leaq 0xc0(%rsp), %rdi
callq 0x4e3b0
jmp 0x4e125
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb8(%rsp)
movl %eax, 0xb4(%rsp)
jmp 0x4e051
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb8(%rsp)
movl %eax, 0xb4(%rsp)
leaq 0x90(%rsp), %rdi
callq 0x1acc0
leaq 0xa0(%rsp), %rdi
callq 0x1acc0
jmp 0x4e044
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb8(%rsp)
movl %eax, 0xb4(%rsp)
leaq 0xc0(%rsp), %rdi
callq 0x4e3b0
movl 0xb4(%rsp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x4e132
movq 0xb8(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0xb460
movq %rax, %rsi
leaq 0x58(%rsp), %rdi
callq 0x1ad40
jmp 0x4e086
movq 0x10(%rsp), %rdi
callq 0xb180
leaq 0x58(%rsp), %rdi
callq 0x356b0
jmp 0x4e09c
leaq 0x57(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0xb690
movq 0x38(%rsp), %rdi
movq 0x8(%rsp), %rdx
leaq 0x847c4(%rip), %rsi     # 0xd2880
callq 0xb4c0
jmp 0x4e0c3
leaq 0x57(%rsp), %rdi
callq 0xb3f0
leaq 0x58(%rsp), %rdi
callq 0x1a670
callq 0xb5f0
jmp 0x4e125
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb8(%rsp)
movl %eax, 0xb4(%rsp)
jmp 0x4e112
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb8(%rsp)
movl %eax, 0xb4(%rsp)
leaq 0x57(%rsp), %rdi
callq 0xb3f0
leaq 0x58(%rsp), %rdi
callq 0x1a670
callq 0xb5f0
jmp 0x4e123
jmp 0x4e132
movq 0x40(%rsp), %rax
addq $0x1d8, %rsp            # imm = 0x1D8
retq
movq 0xb8(%rsp), %rdi
callq 0xb680
movq %rax, %rdi
callq 0xffe0
nopw (%rax,%rax)
// File: menhits[P]phplus/src/PhplusProgram.cpp
// Function: PhplusProgram::execute()
void PhplusProgram::execute()
{
	try
	{
		stackPtr=globalFramePtr=malloc(globalNamespace->getStackFrame()->getSize());
		free(actionRoot->execute(nullptr, nullptr));
		free(globalFramePtr);
		stackPtr=globalFramePtr=nullptr;
	}
	catch (PhplusError err)
	{
		err.log();
		cout << endl << ">>>>>>    program aborted due to error    <<<<<<" << endl;
	}
}

// Assembly:
subq $0x98, %rsp
movq %rdi, 0x90(%rsp)
movq 0x90(%rsp), %rax
movq %rax, 0x30(%rsp)
leaq 0xca2b5(%rip), %rdi     # 0x118428
callq 0x1a6a0
movq %rax, %rsi
leaq 0x80(%rsp), %rdi
callq 0x1bb10
jmp 0x4e18a
leaq 0x80(%rsp), %rdi
callq 0x3ea80
movq %rax, %rdi
callq 0x3ed10
movq %rax, 0x28(%rsp)
jmp 0x4e1a6
movq 0x28(%rsp), %rdi
callq 0xb4a0
movq %rax, %rcx
leaq 0xca2be(%rip), %rax     # 0x118478
movq %rcx, (%rax)
leaq 0xca2bc(%rip), %rax     # 0x118480
movq %rcx, (%rax)
leaq 0x80(%rsp), %rdi
callq 0x1bb40
movq 0x30(%rsp), %rdi
addq $0x30, %rdi
callq 0x1bb50
movq %rax, %rdi
movq (%rdi), %rax
movq 0x20(%rax), %rax
xorl %ecx, %ecx
movl %ecx, %edx
movq %rdx, %rsi
callq *%rax
movq %rax, 0x20(%rsp)
jmp 0x4e1fc
movq 0x20(%rsp), %rdi
callq 0xb430
leaq 0xca26b(%rip), %rax     # 0x118478
movq (%rax), %rdi
callq 0xb430
leaq 0xca25c(%rip), %rax     # 0x118478
movq $0x0, (%rax)
leaq 0xca256(%rip), %rax     # 0x118480
movq $0x0, (%rax)
jmp 0x4e2fa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x78(%rsp)
movl %eax, 0x74(%rsp)
jmp 0x4e261
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x78(%rsp)
movl %eax, 0x74(%rsp)
leaq 0x80(%rsp), %rdi
callq 0x1bb40
movl 0x74(%rsp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x4e323
movq 0x78(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0xb460
movq %rax, %rsi
leaq 0x38(%rsp), %rdi
callq 0x1ad40
jmp 0x4e290
movq 0x18(%rsp), %rdi
callq 0xb180
leaq 0x38(%rsp), %rdi
callq 0x356b0
jmp 0x4e2a6
movq 0xc9d03(%rip), %rdi     # 0x117fb0
movq 0xc9ccc(%rip), %rsi     # 0x117f80
callq 0xb3c0
movq %rax, 0x10(%rsp)
jmp 0x4e2c0
movq 0x10(%rsp), %rdi
leaq 0x845de(%rip), %rsi     # 0xd28aa
callq 0xb380
movq %rax, 0x8(%rsp)
jmp 0x4e2d8
movq 0x8(%rsp), %rdi
movq 0xc9c9c(%rip), %rsi     # 0x117f80
callq 0xb3c0
jmp 0x4e2eb
leaq 0x38(%rsp), %rdi
callq 0x1a670
callq 0xb5f0
addq $0x98, %rsp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x78(%rsp)
movl %eax, 0x74(%rsp)
leaq 0x38(%rsp), %rdi
callq 0x1a670
callq 0xb5f0
jmp 0x4e321
jmp 0x4e323
movq 0x78(%rsp), %rdi
callq 0xb680
movq %rax, %rdi
callq 0xffe0
nopw %cs:(%rax,%rax)
nop
// File: menhits[P]phplus/src/PhplusStdLib.cpp
// Function: populateCppInterfaceFuncs()
void populateCppInterfaceFuncs()
{
	addAction("cppKode", Void, String, Void, LAMBDA_HEADER
		{
			throw PhplusError("you can't run interpreter with code that uses 'cppKode'", SOURCE_ERROR);
		},
		ADD_CPP_HEADER
		{
			prog->pushBlock();
			addToProgStrWithEscapedNames(prog, pncnStr2CppStr(right->execute(nullptr, nullptr)));
			prog->popBlock();
		}
	);
	
	addAction("cppHead", Void, String, Void, LAMBDA_HEADER
		{
			throw PhplusError("you can't run interpreter with code that uses 'cppHead'", SOURCE_ERROR);
		},
		ADD_CPP_HEADER
		{
			prog->addHeadCode(pncnStr2CppStr(right->execute(nullptr, nullptr)));
		}
	);
}

// Assembly:
subq $0x178, %rsp            # imm = 0x178
leaq 0xb3b3a(%rip), %rsi     # 0x1184a8
movq %rsi, 0x38(%rsp)
leaq 0x168(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0x1a920
leaq 0xb3b7c(%rip), %rsi     # 0x118508
leaq 0x158(%rsp), %rdi
movq %rdi, 0x48(%rsp)
callq 0x1a920
movq 0x38(%rsp), %rsi
leaq 0x148(%rsp), %rdi
movq %rdi, 0x50(%rsp)
callq 0x1a920
leaq 0x128(%rsp), %rdi
movq %rdi, 0x58(%rsp)
leaq 0x127(%rsp), %rsi
callq 0x64bf0
leaq 0x100(%rsp), %rdi
movq %rdi, 0x60(%rsp)
leaq 0xff(%rsp), %rsi
callq 0x64c80
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x50(%rsp), %rcx
movq 0x58(%rsp), %r8
movq 0x60(%rsp), %r9
leaq 0x70be0(%rip), %rdi     # 0xd55e9
callq 0x96b70
jmp 0x64a10
leaq 0x100(%rsp), %rdi
callq 0x95bf0
leaq 0x128(%rsp), %rdi
callq 0x95c00
leaq 0x148(%rsp), %rdi
callq 0x1a950
leaq 0x158(%rsp), %rdi
callq 0x1a950
leaq 0x168(%rsp), %rdi
callq 0x1a950
leaq 0xb3a50(%rip), %rsi     # 0x1184a8
movq %rsi, 0x8(%rsp)
leaq 0xd8(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0x1a920
leaq 0xb3a92(%rip), %rsi     # 0x118508
leaq 0xc8(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x1a920
movq 0x8(%rsp), %rsi
leaq 0xb8(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x1a920
leaq 0x98(%rsp), %rdi
movq %rdi, 0x28(%rsp)
leaq 0x97(%rsp), %rsi
callq 0x64d10
leaq 0x70(%rsp), %rdi
movq %rdi, 0x30(%rsp)
leaq 0x6f(%rsp), %rsi
callq 0x64da0
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq 0x20(%rsp), %rcx
movq 0x28(%rsp), %r8
movq 0x30(%rsp), %r9
leaq 0x70b04(%rip), %rdi     # 0xd55f1
callq 0x96b70
jmp 0x64af4
leaq 0x70(%rsp), %rdi
callq 0x95bf0
leaq 0x98(%rsp), %rdi
callq 0x95c00
leaq 0xb8(%rsp), %rdi
callq 0x1a950
leaq 0xc8(%rsp), %rdi
callq 0x1a950
leaq 0xd8(%rsp), %rdi
callq 0x1a950
addq $0x178, %rsp            # imm = 0x178
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf0(%rsp)
movl %eax, 0xec(%rsp)
leaq 0x100(%rsp), %rdi
callq 0x95bf0
leaq 0x128(%rsp), %rdi
callq 0x95c00
leaq 0x148(%rsp), %rdi
callq 0x1a950
leaq 0x158(%rsp), %rdi
callq 0x1a950
leaq 0x168(%rsp), %rdi
callq 0x1a950
jmp 0x64be3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf0(%rsp)
movl %eax, 0xec(%rsp)
leaq 0x70(%rsp), %rdi
callq 0x95bf0
leaq 0x98(%rsp), %rdi
callq 0x95c00
leaq 0xb8(%rsp), %rdi
callq 0x1a950
leaq 0xc8(%rsp), %rdi
callq 0x1a950
leaq 0xd8(%rsp), %rdi
callq 0x1a950
movq 0xf0(%rsp), %rdi
callq 0xb680
// File: menhits[P]phplus/src/PhplusStdLib.cpp
// Function: populatePhplusStdLib()
void populatePhplusStdLib()
{
	basicSetup();
	populateBasicTypes();
	populateConstants();
	populateOperators();
	populateConverters();
	populateStdFuncs();
	populateTypeInfoFuncs();
	populateMemManagementFuncs();
	populateStringFuncs();
	populateIntArrayAndFuncs();
	populateArrayFuncs();
	populateNonStdFuncs();
	populateCppInterfaceFuncs();
}

// Assembly:
pushq %rax
callq 0x54050
callq 0x540c0
callq 0x549f0
callq 0x56060
callq 0x59cf0
callq 0x5dff0
callq 0x5ef40
callq 0x5f2c0
callq 0x5f810
callq 0x62f50
callq 0x61e70
callq 0x63f50
callq 0x64960
popq %rax
retq
nopw %cs:(%rax,%rax)
// File: menhits[P]phplus/src/../h/AstNode.h
// Function: AstWhatevToActionFactory::makeCopy(bool)
AstNode makeCopy(bool copyCache)
	{
		auto out=new AstWhatevToActionFactory;
		copyToNode(out, copyCache);
		out->lambda=lambda;
		return AstNode(out);
	}

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x8(%rsp)
movb %dl, %al
movq %rdi, %rcx
movq %rcx, 0x10(%rsp)
movq %rdi, 0x50(%rsp)
movq %rsi, 0x48(%rsp)
andb $0x1, %al
movb %al, 0x47(%rsp)
movq 0x48(%rsp), %rax
movq %rax, 0x18(%rsp)
movl $0xa8, %edi
callq 0xb390
movq %rax, %rdi
movq %rdi, %rax
movq %rax, 0x20(%rsp)
callq 0x97060
jmp 0x971f9
movq 0x18(%rsp), %rdi
movq 0x20(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rsi
movb 0x47(%rsp), %al
andb $0x1, %al
movzbl %al, %edx
callq 0x12880
movq 0x18(%rsp), %rsi
addq $0x88, %rsi
movq 0x38(%rsp), %rdi
addq $0x88, %rdi
callq 0x970a0
movq 0x8(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0x1dd40
movq 0x10(%rsp), %rax
addq $0x58, %rsp
retq
movq 0x20(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x30(%rsp)
movl %eax, 0x2c(%rsp)
callq 0xb350
movq 0x30(%rsp), %rdi
callq 0xb680
nopw %cs:(%rax,%rax)
nopl (%rax)
// File: menhits[P]phplus/src/../h/AstNode.h
// Function: AstWhatevToActionFactory::makeCopyWithSpecificTypes(std::shared_ptr<TypeBase>, std::shared_ptr<TypeBase>)
AstNode makeCopyWithSpecificTypes(Type leftInType, Type rightInType)
	{
		auto action=lambda(leftInType, rightInType);
		if (action)
			return AstActionWrapper::make(action);
		else
			return nullptr;
	}

// Assembly:
subq $0xc8, %rsp
movq %rcx, 0x28(%rsp)
movq %rdx, 0x10(%rsp)
movq %rsi, %rax
movq 0x10(%rsp), %rsi
movq %rdi, 0x18(%rsp)
movq %rdi, %rdx
movq %rdx, 0x20(%rsp)
movq %rdi, 0xc0(%rsp)
movq %rax, 0xb8(%rsp)
movq %rsi, 0xb0(%rsp)
movq %rcx, 0xa8(%rsp)
movq 0xb8(%rsp), %rax
addq $0x88, %rax
movq %rax, 0x30(%rsp)
leaq 0x88(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0x1a920
movq 0x28(%rsp), %rsi
leaq 0x78(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0x1a920
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdx
movq 0x40(%rsp), %rcx
leaq 0x98(%rsp), %rdi
callq 0x97560
jmp 0x9732d
leaq 0x78(%rsp), %rdi
callq 0x1a950
leaq 0x88(%rsp), %rdi
callq 0x1a950
leaq 0x98(%rsp), %rdi
callq 0x1be40
testb $0x1, %al
jne 0x9735a
jmp 0x973fd
leaq 0x50(%rsp), %rdi
movq %rdi, 0x8(%rsp)
leaq 0x98(%rsp), %rsi
callq 0x1ac60
movq 0x8(%rsp), %rsi
leaq 0x60(%rsp), %rdi
callq 0x3ea90
jmp 0x97382
movq 0x18(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x3ec50
leaq 0x60(%rsp), %rdi
callq 0x3ecb0
leaq 0x50(%rsp), %rdi
callq 0x1acc0
movl $0x1, 0x4c(%rsp)
jmp 0x97413
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x70(%rsp)
movl %eax, 0x6c(%rsp)
leaq 0x78(%rsp), %rdi
callq 0x1a950
leaq 0x88(%rsp), %rdi
callq 0x1a950
jmp 0x9742d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x70(%rsp)
movl %eax, 0x6c(%rsp)
leaq 0x50(%rsp), %rdi
callq 0x1acc0
leaq 0x98(%rsp), %rdi
callq 0x1acc0
jmp 0x9742d
movq 0x18(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x1b1d0
movl $0x1, 0x4c(%rsp)
leaq 0x98(%rsp), %rdi
callq 0x1acc0
movq 0x20(%rsp), %rax
addq $0xc8, %rsp
retq
movq 0x70(%rsp), %rdi
callq 0xb680
nopw (%rax,%rax)
// File: menhits[P]phplus/src/PhplusStdLib.cpp
// Function: cppStr2PncnStr(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
inline void* cppStr2PncnStr(string cpp)
{
	void * obj=malloc(String->getSize());
	char * strData=(char*)malloc(cpp.size()*sizeof(char));
	memcpy(strData, cpp.c_str(), cpp.size()*sizeof(char));
	
	*((int*)((char*)obj+String->getSubType("_size").offset))=cpp.size();
	*((char**)((char*)obj+String->getSubType("_data").offset))=strData;
	
	return obj;
}

// Assembly:
subq $0x108, %rsp            # imm = 0x108
movq %rdi, 0x30(%rsp)
movq %rdi, 0x100(%rsp)
leaq 0x7ffad(%rip), %rdi     # 0x118508
movq %rdi, 0x38(%rsp)
callq 0x1a660
movq %rax, %rdi
movq (%rdi), %rax
movq 0x38(%rax), %rax
callq *%rax
movq %rax, %rdi
callq 0xb4a0
movq 0x30(%rsp), %rdi
movq %rax, 0xf8(%rsp)
callq 0xb2a0
movq %rax, %rdi
callq 0xb4a0
movq 0x30(%rsp), %rdi
movq %rax, 0xf0(%rsp)
movq 0xf0(%rsp), %rax
movq %rax, 0x20(%rsp)
callq 0xb190
movq 0x30(%rsp), %rdi
movq %rax, 0x28(%rsp)
callq 0xb2a0
movq 0x20(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq %rax, %rdx
callq 0xb310
movq 0x30(%rsp), %rdi
callq 0xb2a0
movq 0x38(%rsp), %rdi
movl %eax, 0x44(%rsp)
movq 0xf8(%rsp), %rax
movq %rax, 0x48(%rsp)
callq 0x1a660
movq %rax, 0x50(%rsp)
leaq 0xb7(%rsp), %rdi
movq %rdi, 0x58(%rsp)
callq 0xb690
movq 0x58(%rsp), %rdx
leaq 0x3cd56(%rip), %rsi     # 0xd5371
leaq 0xb8(%rsp), %rdi
callq 0xb4c0
jmp 0x9862a
movq 0x50(%rsp), %rsi
movq (%rsi), %rax
movq 0x50(%rax), %rax
leaq 0xd8(%rsp), %rdi
leaq 0xb8(%rsp), %rdx
callq *%rax
jmp 0x9864a
movq 0x48(%rsp), %rax
movl 0x44(%rsp), %edx
movq 0xd8(%rsp), %rcx
movl %edx, (%rax,%rcx)
leaq 0xd8(%rsp), %rdi
callq 0x3eec0
leaq 0xb8(%rsp), %rdi
callq 0xb6e8
leaq 0xb7(%rsp), %rdi
callq 0xb3f0
movq 0xf0(%rsp), %rax
movq %rax, (%rsp)
movq 0xf8(%rsp), %rax
movq %rax, 0x8(%rsp)
leaq 0x7fe63(%rip), %rdi     # 0x118508
callq 0x1a660
movq %rax, 0x10(%rsp)
leaq 0x67(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0xb690
movq 0x18(%rsp), %rdx
leaq 0x3d042(%rip), %rsi     # 0xd570c
leaq 0x68(%rsp), %rdi
callq 0xb4c0
jmp 0x986d6
movq 0x10(%rsp), %rsi
movq (%rsi), %rax
movq 0x50(%rax), %rax
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq *%rax
jmp 0x986f3
movq 0x8(%rsp), %rax
movq (%rsp), %rdx
movq 0x88(%rsp), %rcx
movq %rdx, (%rax,%rcx)
leaq 0x88(%rsp), %rdi
callq 0x3eec0
leaq 0x68(%rsp), %rdi
callq 0xb6e8
leaq 0x67(%rsp), %rdi
callq 0xb3f0
movq 0xf8(%rsp), %rax
addq $0x108, %rsp            # imm = 0x108
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa8(%rsp)
movl %eax, 0xa4(%rsp)
jmp 0x98770
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa8(%rsp)
movl %eax, 0xa4(%rsp)
leaq 0xb8(%rsp), %rdi
callq 0xb6e8
leaq 0xb7(%rsp), %rdi
callq 0xb3f0
jmp 0x987bd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa8(%rsp)
movl %eax, 0xa4(%rsp)
jmp 0x987b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa8(%rsp)
movl %eax, 0xa4(%rsp)
leaq 0x68(%rsp), %rdi
callq 0xb6e8
leaq 0x67(%rsp), %rdi
callq 0xb3f0
movq 0xa8(%rsp), %rdi
callq 0xb680
nopw (%rax,%rax)
// File: menhits[P]phplus/src/PhplusStdLib.cpp
// Function: pncnStr2CppStr[abi:cxx11](void*)
inline string pncnStr2CppStr(void* obj)
{
	int len=getValFromTuple<int>(obj, String, "_size");
	char * data=(char*)malloc((len+1)*sizeof(char));
	memcpy(data, getValFromTuple<char*>(obj, String, "_data"), len*sizeof(char));
	data[len]=0;
	string out(data);
	return out;
}

// Assembly:
subq $0xf8, %rsp
movq %rdi, 0x38(%rsp)
movq %rdi, %rax
movq %rax, 0x40(%rsp)
movq %rdi, 0xf0(%rsp)
movq %rsi, 0xe8(%rsp)
movq 0xe8(%rsp), %rax
movq %rax, 0x48(%rsp)
leaq 0x7fd00(%rip), %rsi     # 0x118508
leaq 0xd0(%rsp), %rdi
callq 0x1a920
leaq 0xaf(%rsp), %rdi
movq %rdi, 0x50(%rsp)
callq 0xb690
movq 0x50(%rsp), %rdx
leaq 0x3cb3e(%rip), %rsi     # 0xd5371
leaq 0xb0(%rsp), %rdi
callq 0xb4c0
jmp 0x98842
movq 0x48(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
leaq 0xb0(%rsp), %rdx
callq 0x98ab0
movl %eax, 0x34(%rsp)
jmp 0x98862
leaq 0xb0(%rsp), %rdi
callq 0xb6e8
leaq 0xaf(%rsp), %rdi
callq 0xb3f0
leaq 0xd0(%rsp), %rdi
callq 0x1a950
movl 0x34(%rsp), %eax
movl %eax, 0xe4(%rsp)
movl 0xe4(%rsp), %eax
incl %eax
movslq %eax, %rdi
callq 0xb4a0
movq %rax, 0x90(%rsp)
movq 0x90(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0xe8(%rsp), %rax
movq %rax, 0x20(%rsp)
leaq 0x7fc3a(%rip), %rsi     # 0x118508
leaq 0x80(%rsp), %rdi
callq 0x1a920
leaq 0x5f(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0xb690
movq 0x28(%rsp), %rdx
leaq 0x3ce16(%rip), %rsi     # 0xd570c
leaq 0x60(%rsp), %rdi
callq 0xb4c0
jmp 0x98902
movq 0x20(%rsp), %rdi
leaq 0x80(%rsp), %rsi
leaq 0x60(%rsp), %rdx
callq 0x98db0
movq %rax, 0x10(%rsp)
jmp 0x98920
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdi
movslq 0xe4(%rsp), %rdx
callq 0xb310
leaq 0x60(%rsp), %rdi
callq 0xb6e8
leaq 0x5f(%rsp), %rdi
callq 0xb3f0
leaq 0x80(%rsp), %rdi
callq 0x1a950
movq 0x90(%rsp), %rax
movslq 0xe4(%rsp), %rcx
movb $0x0, (%rax,%rcx)
movb $0x0, 0x5e(%rsp)
movq 0x90(%rsp), %rax
movq %rax, (%rsp)
leaq 0x5d(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0xb690
movq 0x38(%rsp), %rdi
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
callq 0xb4c0
jmp 0x989a1
leaq 0x5d(%rsp), %rdi
callq 0xb3f0
movb $0x1, 0x5e(%rsp)
testb $0x1, 0x5e(%rsp)
jne 0x98a8d
jmp 0x98a83
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
jmp 0x989f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
leaq 0xb0(%rsp), %rdi
callq 0xb6e8
leaq 0xaf(%rsp), %rdi
callq 0xb3f0
leaq 0xd0(%rsp), %rdi
callq 0x1a950
jmp 0x98a9a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
jmp 0x98a4a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
leaq 0x60(%rsp), %rdi
callq 0xb6e8
leaq 0x5f(%rsp), %rdi
callq 0xb3f0
leaq 0x80(%rsp), %rdi
callq 0x1a950
jmp 0x98a9a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
leaq 0x5d(%rsp), %rdi
callq 0xb3f0
jmp 0x98a9a
movq 0x38(%rsp), %rdi
callq 0xb6e8
movq 0x40(%rsp), %rax
addq $0xf8, %rsp
retq
movq 0xa0(%rsp), %rdi
callq 0xb680
nopw (%rax,%rax)
// File: menhits[P]phplus/src/SourceFile.cpp
// Function: SourceFile::SourceFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool)
SourceFile::SourceFile(string filenameIn, bool printOutput)
{
	filename=filenameIn;
	try
	{
		loadFile(filenameIn, contents);
		contents+="\n";
	}
	catch (string err)
	{
		throw PhplusError(err, SOURCE_ERROR);
	}
	
}

// Assembly:
subq $0xe8, %rsp
movq %rsi, 0x40(%rsp)
movb %dl, %al
movq %rdi, 0xe0(%rsp)
movq %rsi, 0xd8(%rsp)
andb $0x1, %al
movb %al, 0xd7(%rsp)
movq 0xe0(%rsp), %rdi
movq %rdi, 0x38(%rsp)
movq %rdi, %rax
movq %rax, 0x28(%rsp)
callq 0xb4e0
movq 0x38(%rsp), %rdi
addq $0x20, %rdi
movq %rdi, 0x30(%rsp)
callq 0xb4e0
movq 0x38(%rsp), %rdi
movq 0x40(%rsp), %rsi
callq 0xb050
jmp 0x9b725
movq 0x40(%rsp), %rsi
leaq 0xa0(%rsp), %rdi
callq 0xb1a0
jmp 0x9b739
movq 0x28(%rsp), %rsi
addq $0x20, %rsi
leaq 0xa0(%rsp), %rdi
callq 0xc78d0
jmp 0x9b751
leaq 0xa0(%rsp), %rdi
callq 0xb6e8
movq 0x28(%rsp), %rdi
addq $0x20, %rdi
leaq 0x3678a(%rip), %rsi     # 0xd1ef8
callq 0xb360
jmp 0x9b775
jmp 0x9b8ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
jmp 0x9b8f6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
jmp 0x9b7ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0xa0(%rsp), %rdi
callq 0xb6e8
movl 0xc4(%rsp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x9b8f6
movq 0xc8(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0xb460
movq %rax, %rsi
leaq 0x80(%rsp), %rdi
callq 0xb1a0
jmp 0x9b802
movq 0x20(%rsp), %rdi
callq 0xb180
movb $0x1, 0x4f(%rsp)
movl $0x38, %edi
callq 0xb1f0
movq %rax, 0x18(%rsp)
leaq 0x60(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0xb1a0
jmp 0x9b834
xorl %eax, %eax
movl %eax, 0xc(%rsp)
movl %eax, %esi
leaq 0x50(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0xfbe0
movq 0x18(%rsp), %rdi
movl 0xc(%rsp), %edx
movq 0x10(%rsp), %rcx
leaq 0x60(%rsp), %rsi
callq 0x35600
jmp 0x9b865
movq 0x18(%rsp), %rdi
movb $0x0, 0x4f(%rsp)
leaq 0x79d52(%rip), %rsi     # 0x1155c8
leaq -0x8120d(%rip), %rdx    # 0x1a670
callq 0xb640
jmp 0x9b91f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
jmp 0x9b8c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc8(%rsp)
movl %eax, 0xc4(%rsp)
leaq 0x50(%rsp), %rdi
callq 0xfc00
leaq 0x60(%rsp), %rdi
callq 0xb6e8
testb $0x1, 0x4f(%rsp)
jne 0x9b8ce
jmp 0x9b8d8
movq 0x18(%rsp), %rdi
callq 0xb2d0
leaq 0x80(%rsp), %rdi
callq 0xb6e8
callq 0xb5f0
jmp 0x9b8ec
jmp 0x9b8f6
addq $0xe8, %rsp
retq
movq 0x30(%rsp), %rdi
callq 0xb6e8
movq 0x38(%rsp), %rdi
callq 0xb6e8
movq 0xc8(%rsp), %rdi
callq 0xb680
movq %rax, %rdi
callq 0xffe0
nop
// File: menhits[P]phplus/src/SourceFile.cpp
// Function: SourceFile::getDirPath[abi:cxx11]()
string SourceFile::getDirPath()
{
	int i=filename.size();
	
	// this will break on windows
	while (i>=0 && filename[i]!='/')
	{
		i--;
	}
	
	return filename.substr(0, i);
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x8(%rsp)
movq %rdi, %rax
movq %rax, 0x10(%rsp)
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq 0x28(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0xb2a0
movl %eax, 0x24(%rsp)
xorl %eax, %eax
cmpl $0x0, 0x24(%rsp)
movb %al, 0x7(%rsp)
jl 0x9b977
movq 0x18(%rsp), %rdi
movslq 0x24(%rsp), %rsi
callq 0xb6d0
movsbl (%rax), %eax
cmpl $0x2f, %eax
setne %al
movb %al, 0x7(%rsp)
movb 0x7(%rsp), %al
testb $0x1, %al
jne 0x9b981
jmp 0x9b98e
movl 0x24(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x24(%rsp)
jmp 0x9b94e
movq 0x18(%rsp), %rsi
movq 0x8(%rsp), %rdi
movslq 0x24(%rsp), %rcx
xorl %eax, %eax
movl %eax, %edx
callq 0xb3a0
movq 0x10(%rsp), %rax
addq $0x38, %rsp
retq
// File: menhits[P]phplus/src/StackFrame.cpp
// Function: StackFrame::addMember(std::shared_ptr<TypeBase>)
void StackFrame::addMember(Type in)
{
	if (!in->isCreatable())
	{
		throw PhplusError("tried to insert uncreatable type "+in->getString()+" into stack frame", INTERNAL_ERROR);
	}
	
	members.push_back(in);
	frameSize+=in->getSize();
}

// Assembly:
subq $0xc8, %rsp
movq %rsi, 0x18(%rsp)
movq %rdi, %rax
movq 0x18(%rsp), %rdi
movq %rdi, 0x20(%rsp)
movq %rax, 0xc0(%rsp)
movq %rdi, 0xb8(%rsp)
movq 0xc0(%rsp), %rax
movq %rax, 0x28(%rsp)
callq 0x1a660
movq %rax, %rdi
movq (%rdi), %rax
callq *0x20(%rax)
testb $0x1, %al
jne 0x9bc11
movb $0x1, 0x37(%rsp)
movl $0x38, %edi
callq 0xb1f0
movq 0x20(%rsp), %rdi
movq %rax, 0x10(%rsp)
callq 0x1a660
movq %rax, %rsi
movq (%rsi), %rax
movq 0x8(%rax), %rax
leaq 0x58(%rsp), %rdi
callq *%rax
jmp 0x9bb0d
leaq 0x39fd2(%rip), %rsi     # 0xd5ae6
leaq 0x78(%rsp), %rdi
leaq 0x58(%rsp), %rdx
callq 0x1bcf0
jmp 0x9bb25
leaq 0x39fdc(%rip), %rdx     # 0xd5b08
leaq 0x98(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0xfa60
jmp 0x9bb40
xorl %eax, %eax
movl %eax, %esi
leaq 0x38(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0xfbe0
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rcx
leaq 0x98(%rsp), %rsi
movl $0x3, %edx
callq 0x35600
jmp 0x9bb71
movq 0x10(%rsp), %rdi
movb $0x0, 0x37(%rsp)
leaq 0x79a46(%rip), %rsi     # 0x1155c8
leaq -0x81519(%rip), %rdx    # 0x1a670
callq 0xb640
jmp 0x9bc55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x50(%rsp)
movl %eax, 0x4c(%rsp)
jmp 0x9bbfc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x50(%rsp)
movl %eax, 0x4c(%rsp)
jmp 0x9bbf2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x50(%rsp)
movl %eax, 0x4c(%rsp)
jmp 0x9bbe8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x50(%rsp)
movl %eax, 0x4c(%rsp)
leaq 0x38(%rsp), %rdi
callq 0xfc00
leaq 0x98(%rsp), %rdi
callq 0xb6e8
leaq 0x78(%rsp), %rdi
callq 0xb6e8
leaq 0x58(%rsp), %rdi
callq 0xb6e8
testb $0x1, 0x37(%rsp)
jne 0x9bc05
jmp 0x9bc0f
movq 0x10(%rsp), %rdi
callq 0xb2d0
jmp 0x9bc4b
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0x9c4a0
movq 0x20(%rsp), %rdi
callq 0x1a660
movq %rax, %rdi
movq (%rdi), %rax
callq *0x38(%rax)
movq %rax, %rcx
movq 0x28(%rsp), %rax
addq 0x18(%rax), %rcx
movq %rcx, 0x18(%rax)
addq $0xc8, %rsp
retq
movq 0x50(%rsp), %rdi
callq 0xb680
nopw %cs:(%rax,%rax)
// File: menhits[P]phplus/src/StackFrame.cpp
// Function: StackFrame::getLeftOffset()
size_t StackFrame::getLeftOffset()
{
	if (leftInputIndex>=0)
	{
		return leftInputOffset;
	}
	else
	{
		error.log("tried to get the left input offset from a stack frame that does not have a left input", INTERNAL_ERROR);
		return 0;
	}
}

// Assembly:
subq $0x78, %rsp
movq %rdi, 0x68(%rsp)
movq 0x68(%rsp), %rax
movq %rax, 0x18(%rsp)
cmpl $0x0, 0x24(%rax)
jl 0x9c2bc
movq 0x18(%rsp), %rax
movq 0x30(%rax), %rax
movq %rax, 0x70(%rsp)
jmp 0x9c37a
leaq 0x47(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0xb690
movq 0x10(%rsp), %rdx
leaq 0x398dd(%rip), %rsi     # 0xd5bb4
leaq 0x48(%rsp), %rdi
callq 0xb4c0
jmp 0x9c2e3
xorl %eax, %eax
movl %eax, %esi
leaq 0x20(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0xfbe0
movq 0x8(%rsp), %rcx
leaq 0x7c0c1(%rip), %rdi     # 0x1183c3
leaq 0x48(%rsp), %rsi
movl $0x3, %edx
callq 0x34c70
jmp 0x9c313
leaq 0x20(%rsp), %rdi
callq 0xfc00
leaq 0x48(%rsp), %rdi
callq 0xb6e8
leaq 0x47(%rsp), %rdi
callq 0xb3f0
movq $0x0, 0x70(%rsp)
jmp 0x9c37a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x38(%rsp)
movl %eax, 0x34(%rsp)
jmp 0x9c36e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x38(%rsp)
movl %eax, 0x34(%rsp)
leaq 0x20(%rsp), %rdi
callq 0xfc00
leaq 0x48(%rsp), %rdi
callq 0xb6e8
leaq 0x47(%rsp), %rdi
callq 0xb3f0
jmp 0x9c384
movq 0x70(%rsp), %rax
addq $0x78, %rsp
retq
movq 0x38(%rsp), %rdi
callq 0xb680
nop
// File: menhits[P]phplus/src/StackFrame.cpp
// Function: StackFrame::getRightOffset()
size_t StackFrame::getRightOffset()
{
	if (rightInputIndex>=0)
	{
		return rightInputOffset;
	}
	else
	{
		throw PhplusError("tried to get the right input offset from a stack frame that does not have a right input", INTERNAL_ERROR);
	}
}

// Assembly:
subq $0x78, %rsp
movq %rdi, 0x70(%rsp)
movq 0x70(%rsp), %rax
movq %rax, 0x18(%rsp)
cmpl $0x0, 0x28(%rax)
jl 0x9c3b7
movq 0x18(%rsp), %rax
movq 0x38(%rax), %rax
addq $0x78, %rsp
retq
movb $0x1, 0x27(%rsp)
movl $0x38, %edi
callq 0xb1f0
movq %rax, 0x8(%rsp)
leaq 0x4f(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0xb690
movq 0x10(%rsp), %rdx
leaq 0x39824(%rip), %rsi     # 0xd5c0a
leaq 0x50(%rsp), %rdi
callq 0xb4c0
jmp 0x9c3f2
xorl %eax, %eax
movl %eax, %esi
leaq 0x28(%rsp), %rdi
movq %rdi, (%rsp)
callq 0xfbe0
movq 0x8(%rsp), %rdi
movq (%rsp), %rcx
leaq 0x50(%rsp), %rsi
movl $0x3, %edx
callq 0x35600
jmp 0x9c41e
movq 0x8(%rsp), %rdi
movb $0x0, 0x27(%rsp)
leaq 0x79199(%rip), %rsi     # 0x1155c8
leaq -0x81dc6(%rip), %rdx    # 0x1a670
callq 0xb640
jmp 0x9c498
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x40(%rsp)
movl %eax, 0x3c(%rsp)
jmp 0x9c46f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x40(%rsp)
movl %eax, 0x3c(%rsp)
leaq 0x28(%rsp), %rdi
callq 0xfc00
leaq 0x50(%rsp), %rdi
callq 0xb6e8
leaq 0x4f(%rsp), %rdi
callq 0xb3f0
testb $0x1, 0x27(%rsp)
jne 0x9c482
jmp 0x9c48c
movq 0x8(%rsp), %rdi
callq 0xb2d0
jmp 0x9c48e
movq 0x40(%rsp), %rdi
callq 0xb680
nopl (%rax,%rax)
// File: menhits[P]phplus/src/Token.cpp
// Function: TokenData::getTypeDescription[abi:cxx11]()
string TokenData::getTypeDescription()
{
	string out;
	
	if (tokenType==TokenData::OPERATOR)
	{
		if (op)
		{
			out+=op->getText()+" ";
		}
		else
		{
			out+="unknown ";
		}
	}
	
	out+=TokenData::typeToString(tokenType);
	
	return out;
}

// Assembly:
subq $0xa8, %rsp
movq %rdi, 0x8(%rsp)
movq %rdi, %rax
movq %rax, 0x10(%rsp)
movq %rdi, 0xa0(%rsp)
movq %rsi, 0x98(%rsp)
movq 0x98(%rsp), %rax
movq %rax, 0x18(%rsp)
movb $0x0, 0x97(%rsp)
callq 0xb4e0
movq 0x18(%rsp), %rax
cmpl $0x5, 0x38(%rax)
jne 0x9dad1
movq 0x18(%rsp), %rdi
addq $0x40, %rdi
callq 0x1bef0
testb $0x1, %al
jne 0x9da14
jmp 0x9daba
movq 0x18(%rsp), %rdi
addq $0x40, %rdi
callq 0xf9f0
movq %rax, %rsi
leaq 0x50(%rsp), %rdi
callq 0xfa00
jmp 0x9da31
leaq 0x34034(%rip), %rdx     # 0xd1a6c
leaq 0x70(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0xfa60
jmp 0x9da49
movq 0x8(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0xb470
jmp 0x9da5a
leaq 0x70(%rsp), %rdi
callq 0xb6e8
leaq 0x50(%rsp), %rdi
callq 0xb6e8
jmp 0x9dacf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x48(%rsp)
movl %eax, 0x44(%rsp)
jmp 0x9db45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x48(%rsp)
movl %eax, 0x44(%rsp)
jmp 0x9daab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x48(%rsp)
movl %eax, 0x44(%rsp)
leaq 0x70(%rsp), %rdi
callq 0xb6e8
leaq 0x50(%rsp), %rdi
callq 0xb6e8
jmp 0x9db45
movq 0x8(%rsp), %rdi
leaq 0x3822d(%rip), %rsi     # 0xd5cf3
callq 0xb360
jmp 0x9dacd
jmp 0x9dacf
jmp 0x9dad1
movq 0x18(%rsp), %rax
movl 0x38(%rax), %esi
leaq 0x20(%rsp), %rdi
callq 0x9d240
jmp 0x9dae5
movq 0x8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0xb470
jmp 0x9daf6
leaq 0x20(%rsp), %rdi
callq 0xb6e8
movb $0x1, 0x97(%rsp)
testb $0x1, 0x97(%rsp)
jne 0x9db38
jmp 0x9db2e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x48(%rsp)
movl %eax, 0x44(%rsp)
leaq 0x20(%rsp), %rdi
callq 0xb6e8
jmp 0x9db45
movq 0x8(%rsp), %rdi
callq 0xb6e8
movq 0x10(%rsp), %rax
addq $0xa8, %rsp
retq
movq 0x8(%rsp), %rdi
callq 0xb6e8
movq 0x48(%rsp), %rdi
callq 0xb680
nopl (%rax)
// File: menhits[P]phplus/src/Token.cpp
// Function: stringFromTokens[abi:cxx11](std::vector<std::shared_ptr<TokenData>, std::allocator<std::shared_ptr<TokenData>>> const&, int, int)
string stringFromTokens(const vector<Token>& tokens, int left, int right)
{
	string out;
	
	for (int i=left; i<=right; ++i)
	{
		out+=tokens[i]->getText();
		if (i<right)
			out+=" ";
	}
	
	return out;
}

// Assembly:
subq $0x68, %rsp
movq %rdi, 0x8(%rsp)
movq %rdi, %rax
movq %rax, 0x10(%rsp)
movq %rdi, 0x60(%rsp)
movq %rsi, 0x58(%rsp)
movl %edx, 0x54(%rsp)
movl %ecx, 0x50(%rsp)
movb $0x0, 0x4f(%rsp)
callq 0xb4e0
movl 0x54(%rsp), %eax
movl %eax, 0x48(%rsp)
movl 0x48(%rsp), %eax
cmpl 0x50(%rsp), %eax
jg 0x9e44f
movq 0x58(%rsp), %rdi
movslq 0x48(%rsp), %rsi
callq 0x48650
movq %rax, %rdi
callq 0x1bb70
movq %rax, %rsi
leaq 0x28(%rsp), %rdi
callq 0x1bb80
jmp 0x9e3d9
movq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0xb470
jmp 0x9e3ea
leaq 0x28(%rsp), %rdi
callq 0xb6e8
movl 0x48(%rsp), %eax
cmpl 0x50(%rsp), %eax
jge 0x9e43d
movq 0x8(%rsp), %rdi
leaq 0x33662(%rip), %rsi     # 0xd1a6c
callq 0xb360
jmp 0x9e411
jmp 0x9e43d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x20(%rsp)
movl %eax, 0x1c(%rsp)
jmp 0x9e46f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x20(%rsp)
movl %eax, 0x1c(%rsp)
leaq 0x28(%rsp), %rdi
callq 0xb6e8
jmp 0x9e46f
jmp 0x9e43f
movl 0x48(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x48(%rsp)
jmp 0x9e3a5
movb $0x1, 0x4f(%rsp)
testb $0x1, 0x4f(%rsp)
jne 0x9e465
movq 0x8(%rsp), %rdi
callq 0xb6e8
movq 0x10(%rsp), %rax
addq $0x68, %rsp
retq
movq 0x8(%rsp), %rdi
callq 0xb6e8
movq 0x20(%rsp), %rdi
callq 0xb680
nopw %cs:(%rax,%rax)
nopl (%rax)
// File: menhits[P]phplus/src/../h/Token.h
// Function: TokenData::TokenData(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::shared_ptr<SourceFile>, int, int, TokenData::Type, std::shared_ptr<OperatorData>)
TokenData(string textIn, shared_ptr<SourceFile> fileIn, int lineIn, int charPosIn, Type tokenTypeIn, Operator opIn=Operator(nullptr))
	{
		text=textIn;
		file=fileIn;
		line=lineIn;
		charPos=charPosIn;
		tokenType=tokenTypeIn;
		op=opIn;
	}

// Assembly:
subq $0x78, %rsp
movq %rdx, 0x8(%rsp)
movq %rsi, 0x38(%rsp)
movq 0x80(%rsp), %rax
movq %rax, 0x10(%rsp)
movq %rdi, 0x70(%rsp)
movq %rsi, 0x68(%rsp)
movq %rdx, 0x60(%rsp)
movl %ecx, 0x5c(%rsp)
movl %r8d, 0x58(%rsp)
movl %r9d, 0x54(%rsp)
movq 0x70(%rsp), %rdi
movq %rdi, 0x30(%rsp)
movq %rdi, %rax
movq %rax, 0x18(%rsp)
callq 0xb4e0
movq 0x30(%rsp), %rdi
addq $0x20, %rdi
movq %rdi, 0x20(%rsp)
callq 0x4e450
movq 0x30(%rsp), %rdi
addq $0x40, %rdi
movq %rdi, 0x28(%rsp)
callq 0x117e0
movq 0x30(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0xb050
jmp 0x9e5a6
movq 0x18(%rsp), %rdi
movq 0x8(%rsp), %rsi
addq $0x20, %rdi
callq 0x9e720
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
movl 0x5c(%rsp), %eax
movl %eax, 0x30(%rdi)
movl 0x58(%rsp), %eax
movl %eax, 0x34(%rdi)
movl 0x54(%rsp), %eax
movl %eax, 0x38(%rdi)
addq $0x40, %rdi
callq 0xfa30
addq $0x78, %rsp
retq
movq 0x28(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x48(%rsp)
movl %eax, 0x44(%rsp)
callq 0xf9a0
movq 0x20(%rsp), %rdi
callq 0x357d0
movq 0x30(%rsp), %rdi
callq 0xb6e8
movq 0x48(%rsp), %rdi
callq 0xb680
nopl (%rax)
// File: menhits[P]phplus/src/../h/utils/stringUtils.h
// Function: str::subMatches(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
inline bool subMatches(const string& in, int posBytes, const string& sub)
{
	if (posBytes<0  || sub.size()+posBytes>in.size())
		return false;
	
	for (int i=0; i<(int)sub.size(); i++)
	{
		if (in[i+posBytes]!=sub[i])
			return false;
	}
	
	return true;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movl %esi, 0x24(%rsp)
movq %rdx, 0x18(%rsp)
cmpl $0x0, 0x24(%rsp)
jl 0x9e697
movq 0x18(%rsp), %rdi
callq 0xb2a0
movslq 0x24(%rsp), %rcx
addq %rcx, %rax
movq %rax, 0x8(%rsp)
movq 0x28(%rsp), %rdi
callq 0xb2a0
movq %rax, %rcx
movq 0x8(%rsp), %rax
cmpq %rcx, %rax
jbe 0x9e69e
movb $0x0, 0x37(%rsp)
jmp 0x9e715
movl $0x0, 0x14(%rsp)
movl 0x14(%rsp), %eax
movl %eax, 0x4(%rsp)
movq 0x18(%rsp), %rdi
callq 0xb2a0
movq %rax, %rcx
movl 0x4(%rsp), %eax
cmpl %ecx, %eax
jge 0x9e710
movq 0x28(%rsp), %rdi
movl 0x14(%rsp), %eax
addl 0x24(%rsp), %eax
movslq %eax, %rsi
callq 0xb400
movsbl (%rax), %eax
movl %eax, (%rsp)
movq 0x18(%rsp), %rdi
movslq 0x14(%rsp), %rsi
callq 0xb400
movq %rax, %rcx
movl (%rsp), %eax
movsbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x9e701
movb $0x0, 0x37(%rsp)
jmp 0x9e715
jmp 0x9e703
movl 0x14(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x14(%rsp)
jmp 0x9e6a6
movb $0x1, 0x37(%rsp)
movb 0x37(%rsp), %al
andb $0x1, %al
addq $0x38, %rsp
retq
// File: menhits[P]phplus/src/Type.cpp
// Function: TupleTypeMaker::add(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::shared_ptr<TypeBase>)
void TupleTypeMaker::add(string name, Type type)
{
	if (subTypes)
		subTypes->push_back(NamedType{name, type});
	else
		error.log(FUNC+"called after type has been created", INTERNAL_ERROR);
}

// Assembly:
subq $0xe8, %rsp
movq %rsi, 0x20(%rsp)
movq %rdx, 0x28(%rsp)
movq %rdi, 0xe0(%rsp)
movq %rsi, 0xd8(%rsp)
movq %rdx, 0xd0(%rsp)
movq 0xe0(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0xa0ac0
testb $0x1, %al
jne 0x9f9d4
jmp 0x9fa55
movq 0x30(%rsp), %rdi
callq 0xa0ae0
movq 0x20(%rsp), %rsi
movq %rax, 0x10(%rsp)
leaq 0xa0(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0xb1a0
movq 0x28(%rsp), %rsi
leaq 0xc0(%rsp), %rdi
callq 0x1a920
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xa0af0
jmp 0x9fa1d
leaq 0xa0(%rsp), %rdi
callq 0x1e980
jmp 0x9fb56
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x98(%rsp)
movl %eax, 0x94(%rsp)
leaq 0xa0(%rsp), %rdi
callq 0x1e980
jmp 0x9fb5e
leaq 0x4f(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0xb690
movq 0x8(%rsp), %rdx
leaq 0x36418(%rip), %rsi     # 0xd5e88
leaq 0x50(%rsp), %rdi
callq 0xb4c0
jmp 0x9fa7c
leaq 0x36409(%rip), %rdx     # 0xd5e8c
leaq 0x70(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0xfa60
jmp 0x9fa94
xorl %eax, %eax
movl %eax, %esi
leaq 0x38(%rsp), %rdi
movq %rdi, (%rsp)
callq 0xfbe0
movq (%rsp), %rcx
leaq 0x78912(%rip), %rdi     # 0x1183c3
leaq 0x70(%rsp), %rsi
movl $0x3, %edx
callq 0x34c70
jmp 0x9fac2
leaq 0x38(%rsp), %rdi
callq 0xfc00
leaq 0x70(%rsp), %rdi
callq 0xb6e8
leaq 0x50(%rsp), %rdi
callq 0xb6e8
leaq 0x4f(%rsp), %rdi
callq 0xb3f0
jmp 0x9fb56
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x98(%rsp)
movl %eax, 0x94(%rsp)
jmp 0x9fb4a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x98(%rsp)
movl %eax, 0x94(%rsp)
jmp 0x9fb40
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x98(%rsp)
movl %eax, 0x94(%rsp)
leaq 0x38(%rsp), %rdi
callq 0xfc00
leaq 0x70(%rsp), %rdi
callq 0xb6e8
leaq 0x50(%rsp), %rdi
callq 0xb6e8
leaq 0x4f(%rsp), %rdi
callq 0xb3f0
jmp 0x9fb5e
addq $0xe8, %rsp
retq
movq 0x98(%rsp), %rdi
callq 0xb680
nopl (%rax,%rax)