LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/Action.cpp
// Function: ActionData::ActionData(std::shared_ptr<TypeBase>, std::shared_ptr<TypeBase>, std::shared_ptr<TypeBase>)
ActionData::ActionData(Type returnTypeIn, Type inLeftTypeIn, Type inRightTypeIn)
{
	returnType=returnTypeIn;
	inLeftType=inLeftTypeIn;
	inRightType=inRightTypeIn;
	
	if (!returnType || !inLeftType || !inRightType)
	{
		throw PhplusError("ActionData created with null type", INTERNAL_ERROR);
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rcx, %rbp
movq %rdx, %r13
movq %rsi, %r12
movq %rdi, %r15
leaq 0x39983(%rip), %rax     # 0x98090
movq %rax, (%rdi)
addq $0x8, %rdi
leaq 0x18(%r15), %rax
movq %rax, 0x10(%rsp)
movq %rax, 0x8(%r15)
leaq 0x18327(%rip), %rdx     # 0x76a4f
movq %rdi, 0x18(%rsp)
movq %rdx, %rsi
callq 0xdf6a
leaq 0x68(%r15), %rbx
xorps %xmm0, %xmm0
movups %xmm0, 0x48(%r15)
movups %xmm0, 0x38(%r15)
movups %xmm0, 0x28(%r15)
movq %rbx, 0x58(%r15)
movq $0x0, 0x60(%r15)
movb $0x0, 0x68(%r15)
movq (%r12), %rax
movq %rax, 0x28(%r15)
leaq 0x30(%r15), %r14
addq $0x8, %r12
movq %r14, %rdi
movq %r12, %rsi
callq 0xde72
movq (%r13), %rax
movq %rax, 0x38(%r15)
leaq 0x40(%r15), %r12
addq $0x8, %r13
movq %r12, %rdi
movq %r13, %rsi
callq 0xde72
movq (%rbp), %rax
movq %rax, 0x48(%r15)
leaq 0x50(%r15), %r13
addq $0x8, %rbp
movq %r13, %rdi
movq %rbp, %rsi
callq 0xde72
cmpq $0x0, 0x28(%r15)
je 0x5e7d1
cmpq $0x0, 0x38(%r15)
je 0x5e7d1
cmpq $0x0, 0x48(%r15)
je 0x5e7d1
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x38, %edi
callq 0xa1b0
movq %rax, (%rsp)
leaq 0x30(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1cb65(%rip), %rsi     # 0x7b354
leaq 0x1cb7f(%rip), %rdx     # 0x7b375
leaq 0x20(%rsp), %rdi
callq 0xdf6a
xorps %xmm0, %xmm0
leaq 0x40(%rsp), %rcx
movaps %xmm0, (%rcx)
movb $0x1, %bpl
leaq 0x20(%rsp), %rsi
movq (%rsp), %rdi
movl $0x3, %edx
callq 0x200e4
xorl %ebp, %ebp
leaq 0x37e0e(%rip), %rsi     # 0x96638
leaq -0x49f39(%rip), %rdx    # 0x148f8
movq (%rsp), %rdi
callq 0xa4f0
movq %rax, 0x8(%rsp)
movq 0x48(%rsp), %rdi
testq %rdi, %rdi
je 0x5e84e
callq 0xdcba
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x5e86c
callq 0xa2b0
jmp 0x5e86c
movq %rax, 0x8(%rsp)
movb $0x1, %bpl
testb %bpl, %bpl
je 0x5e87a
movq (%rsp), %rdi
callq 0xa240
movq 0x58(%r15), %rdi
cmpq %rbx, %rdi
je 0x5e888
callq 0xa2b0
movq (%r13), %rdi
testq %rdi, %rdi
je 0x5e896
callq 0xdcba
movq (%r12), %rdi
testq %rdi, %rdi
je 0x5e8a4
callq 0xdcba
movq (%r14), %rdi
testq %rdi, %rdi
je 0x5e8b1
callq 0xdcba
movq 0x18(%rsp), %rax
movq (%rax), %rdi
cmpq 0x10(%rsp), %rdi
je 0x5e8c5
callq 0xa2b0
movq 0x8(%rsp), %rdi
callq 0xa510
nop
// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/BoolOpAction.cpp
// Function: AndAction::execute(void*, void*)
void* execute(void* inLeft, void* inRight)
	{
		bool* out=(bool*)malloc(sizeof(bool));
		*out=false;
		void* firstVal=firstAction->execute(nullptr, nullptr);
		
		if (*((bool*)firstVal))
		{
			void* secondVal=secondAction->execute(nullptr, nullptr);
			
			if (*((bool*)secondVal))
			{
				*out=true;
			}
			
			free(secondVal);
		}
		
		free(firstVal);
		
		return out;
	}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %r15
movl $0x1, %edi
callq 0xa3a0
movq %rax, %rbx
movb $0x0, (%rax)
movq 0x78(%r15), %rdi
movq (%rdi), %rax
xorl %esi, %esi
xorl %edx, %edx
callq *0x20(%rax)
movq %rax, %r14
cmpb $0x1, (%rax)
jne 0x60b31
movq 0x88(%r15), %rdi
movq (%rdi), %rax
xorl %esi, %esi
xorl %edx, %edx
callq *0x20(%rax)
cmpb $0x1, (%rax)
jne 0x60b29
movb $0x1, (%rbx)
movq %rax, %rdi
callq 0xa350
movq %r14, %rdi
callq 0xa350
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/BoolOpAction.cpp
// Function: AndAction::addToProg(std::shared_ptr<ActionData>, std::shared_ptr<ActionData>, CppProgram*)
void addToProg(Action inLeft, Action inRight, CppProgram* prog)
	{
		prog->pushExpr();
			firstAction->addToProg(voidAction, voidAction, prog);
		prog->popExpr();
		
		prog->code(" && ");
		
		prog->pushExpr();
			secondAction->addToProg(voidAction, voidAction, prog);
		prog->popExpr();
	}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rcx, %rbx
movq %rdi, %r14
movq 0xa0(%rcx), %rdi
callq 0x18b54
movq 0x78(%r14), %rdi
leaq 0x38806(%rip), %r15     # 0x99370
movq (%r15), %rcx
movq 0x8(%r15), %rax
movq %rcx, 0x38(%rsp)
movq %rax, 0x40(%rsp)
testq %rax, %rax
je 0x60b95
movq 0x38421(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x60b91
incl 0x8(%rax)
jmp 0x60b95
lock
incl 0x8(%rax)
movq (%r15), %rcx
movq 0x8(%r15), %rax
movq %rcx, 0x28(%rsp)
movq %rax, 0x30(%rsp)
testq %rax, %rax
je 0x60bc0
movq 0x383f6(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x60bbc
incl 0x8(%rax)
jmp 0x60bc0
lock
incl 0x8(%rax)
movq (%rdi), %rax
leaq 0x38(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rcx
callq *0x28(%rax)
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x60be2
callq 0xdcba
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x60bf1
callq 0xdcba
movq 0xa0(%rbx), %rdi
callq 0x18bc6
leaq 0x58(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x1aa94(%rip), %rsi     # 0x7b6a2
leaq 0x1aa91(%rip), %rdx     # 0x7b6a6
leaq 0x48(%rsp), %rdi
callq 0xdf6a
movq 0xa0(%rbx), %rdi
leaq 0x48(%rsp), %rsi
callq 0x1834e
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x60c3f
callq 0xa2b0
movq 0xa0(%rbx), %rdi
callq 0x18b54
movq 0x88(%r14), %rdi
movq (%r15), %rcx
movq 0x8(%r15), %rax
movq %rcx, 0x18(%rsp)
movq %rax, 0x20(%rsp)
testq %rax, %rax
je 0x60c7d
movq 0x38339(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x60c79
incl 0x8(%rax)
jmp 0x60c7d
lock
incl 0x8(%rax)
movq (%r15), %rcx
movq 0x8(%r15), %rax
movq %rcx, 0x8(%rsp)
movq %rax, 0x10(%rsp)
testq %rax, %rax
je 0x60ca8
movq 0x3830e(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x60ca4
incl 0x8(%rax)
jmp 0x60ca8
lock
incl 0x8(%rax)
movq (%rdi), %rax
leaq 0x18(%rsp), %rsi
leaq 0x8(%rsp), %rdx
movq %rbx, %rcx
callq *0x28(%rax)
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x60cca
callq 0xdcba
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x60cd9
callq 0xdcba
movq 0xa0(%rbx), %rdi
callq 0x18bc6
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x60d03
callq 0xdcba
movq 0x20(%rsp), %rdi
jmp 0x60d3a
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x60d44
callq 0xa2b0
jmp 0x60d44
movq %rax, %rbx
jmp 0x60d44
movq %rax, %rbx
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x60d35
callq 0xdcba
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x60d44
callq 0xdcba
movq %rbx, %rdi
callq 0xa510
// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/BranchAction.cpp
// Function: RightBranchAction::getDescription[abi:cxx11]()
string getDescription()
	{
		if (action && rightInput)
		{
			return str::makeRootUpBinaryTree(action->getDescription(), "", rightInput->getReturnType()->getName(), "", rightInput->getDescription());
			//return getReturnType()->toString() + " <- [" + leftInput->getDescription() + "].[" + action->getDescription() + "]:[" + rightInput->getDescription() + "]";
			//return "(" + action->getDescription() + " <- " + rightInput->getDescription() + ")";
			//return getReturnType()->getName() + " <- " + leftInput->getDescription() + "." + action->getDescription() + ":" + rightInput->getDescription();
		}
		else
			return "[branch with null element]";
	}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0xa8, %rsp
movq %rsi, %r14
movq %rdi, %rbx
movq 0x78(%rsi), %rsi
testq %rsi, %rsi
je 0x632eb
cmpq $0x0, 0x88(%r14)
je 0x632eb
movq (%rsi), %rax
leaq 0x88(%rsp), %rdi
callq *0x18(%rax)
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x13836(%rip), %rdx     # 0x76a4f
leaq 0x28(%rsp), %rdi
movq %rdx, %rsi
callq 0xdf6a
movq 0x88(%r14), %rax
movq 0x28(%rax), %rsi
leaq 0x68(%rsp), %rdi
callq 0x4fe74
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x13803(%rip), %rdx     # 0x76a4f
leaq 0x8(%rsp), %rdi
movq %rdx, %rsi
callq 0xdf6a
movq 0x88(%r14), %rsi
movq (%rsi), %rax
leaq 0x48(%rsp), %rdi
callq *0x18(%rax)
leaq 0x88(%rsp), %rsi
leaq 0x28(%rsp), %rdx
leaq 0x68(%rsp), %rcx
leaq 0x8(%rsp), %r8
leaq 0x48(%rsp), %r9
movq %rbx, %rdi
callq 0x71381
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x632a2
callq 0xa2b0
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x632b1
callq 0xa2b0
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x632c4
callq 0xa2b0
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x632d3
callq 0xa2b0
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x63308
callq 0xa2b0
jmp 0x63308
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x18579(%rip), %rsi     # 0x7b872
leaq 0x1858c(%rip), %rdx     # 0x7b88c
movq %rbx, %rdi
callq 0xdf6a
movq %rbx, %rax
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %rbx
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x63335
callq 0xa2b0
jmp 0x63335
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x63349
callq 0xa2b0
jmp 0x63349
movq %rax, %rbx
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x63361
callq 0xa2b0
jmp 0x63361
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x63375
callq 0xa2b0
jmp 0x63375
movq %rax, %rbx
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6338b
callq 0xa2b0
movq %rbx, %rdi
callq 0xa510
nop
// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/BranchAction.cpp
// Function: RightBranchAction::execute(void*, void*)
void* execute(void* inLeft, void* inRight)
	{
		void* rightData=rightInput->execute(nullptr, nullptr);
		void* outData=action->execute(nullptr, rightData);
		free(rightData);
		return outData;
	}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x88(%rdi), %rdi
movq (%rdi), %rax
xorl %esi, %esi
xorl %edx, %edx
callq *0x20(%rax)
movq %rax, %r14
movq 0x78(%rbx), %rdi
movq (%rdi), %rax
xorl %esi, %esi
movq %r14, %rdx
callq *0x20(%rax)
movq %rax, %rbx
movq %r14, %rdi
callq 0xa350
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/BranchAction.cpp
// Function: RightBranchAction::addToProg(std::shared_ptr<ActionData>, std::shared_ptr<ActionData>, CppProgram*)
void addToProg(Action inLeft, Action inRight, CppProgram* prog)
	{
		Action rightInTmp = rightInput;
		
		if (rightInTmp->getReturnType()!=action->getInRightType())
			rightInTmp=cppTupleCastAction(rightInTmp, action->getInRightType());
		
		action->addToProg(voidAction, rightInTmp, prog);
	}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x50, %rsp
movq %rcx, %rbx
movq %rdi, %r15
movq 0x88(%rdi), %r13
movq 0x90(%rdi), %r12
testq %r12, %r12
je 0x63413
movq 0x35ba7(%rip), %rax     # 0x98fa8
cmpb $0x0, (%rax)
je 0x6340d
incl 0x8(%r12)
jmp 0x63413
lock
incl 0x8(%r12)
movq 0x78(%r15), %rax
movq 0x28(%r13), %rcx
cmpq 0x48(%rax), %rcx
je 0x63443
movq %r13, 0x40(%rsp)
movq %r12, 0x48(%rsp)
testq %r12, %r12
je 0x63451
movq 0x35b71(%rip), %rax     # 0x98fa8
cmpb $0x0, (%rax)
je 0x6344b
incl 0x8(%r12)
jmp 0x63451
movq %r12, %r14
jmp 0x634dd
lock
incl 0x8(%r12)
movq 0x78(%r15), %rax
movq 0x48(%rax), %rcx
movq %rcx, 0x30(%rsp)
movq 0x50(%rax), %rax
movq %rax, 0x38(%rsp)
testq %rax, %rax
je 0x63481
movq 0x35b35(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x6347d
incl 0x8(%rax)
jmp 0x63481
lock
incl 0x8(%rax)
movq %rsp, %rdi
leaq 0x40(%rsp), %rsi
leaq 0x30(%rsp), %rdx
callq 0x69908
movq (%rsp), %r13
movq 0x8(%rsp), %r14
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
testq %r12, %r12
je 0x634b0
movq %r12, %rdi
callq 0xdcba
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x634bf
callq 0xdcba
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x634ce
callq 0xdcba
movq 0x48(%rsp), %rdi
testq %rdi, %rdi
je 0x634dd
callq 0xdcba
movq 0x78(%r15), %rdi
leaq 0x35e88(%rip), %rax     # 0x99370
movq (%rax), %rcx
movq 0x8(%rax), %rax
movq %rcx, 0x20(%rsp)
movq %rax, 0x28(%rsp)
testq %rax, %rax
je 0x63513
movq 0x35aa3(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x6350f
incl 0x8(%rax)
jmp 0x63513
lock
incl 0x8(%rax)
movq %r13, 0x10(%rsp)
movq %r14, 0x18(%rsp)
testq %r14, %r14
je 0x63539
movq 0x35a7f(%rip), %rax     # 0x98fa8
cmpb $0x0, (%rax)
je 0x63534
incl 0x8(%r14)
jmp 0x63539
lock
incl 0x8(%r14)
movq (%rdi), %rax
leaq 0x20(%rsp), %rsi
leaq 0x10(%rsp), %rdx
movq %rbx, %rcx
callq *0x28(%rax)
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x6355b
callq 0xdcba
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x6356a
callq 0xdcba
testq %r14, %r14
je 0x63577
movq %r14, %rdi
callq 0xdcba
addq $0x50, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x63597
callq 0xdcba
movq 0x48(%rsp), %rdi
testq %rdi, %rdi
je 0x635cc
callq 0xdcba
jmp 0x635cc
movq %rax, %rbx
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x635ba
callq 0xdcba
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x635c9
callq 0xdcba
movq %r14, %r12
testq %r12, %r12
je 0x635d9
movq %r12, %rdi
callq 0xdcba
movq %rbx, %rdi
callq 0xa510
nop
// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/BranchAction.cpp
// Function: LeftBranchAction::getDescription[abi:cxx11]()
string getDescription()
	{
		if (leftInput && action)
		{
			return str::makeRootUpBinaryTree(action->getDescription(), leftInput->getReturnType()->getName(), "", leftInput->getDescription(), "");
			//return getReturnType()->toString() + " <- [" + leftInput->getDescription() + "].[" + action->getDescription() + "]:[" + rightInput->getDescription() + "]";
			//return "(" + leftInput->getDescription() + " -> " + action->getDescription() + ")";
			//return getReturnType()->getName() + " <- " + leftInput->getDescription() + "." + action->getDescription() + ":" + rightInput->getDescription();
		}
		else
			return "[branch with null element]";
	}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0xa0, %rsp
movq %rdi, %rbx
cmpq $0x0, 0x78(%rsi)
je 0x6376f
movq %rsi, %r14
movq 0x88(%rsi), %rsi
testq %rsi, %rsi
je 0x6376f
movq (%rsi), %rax
leaq 0x80(%rsp), %rdi
callq *0x18(%rax)
movq 0x78(%r14), %rax
movq 0x28(%rax), %rsi
leaq 0x60(%rsp), %rdi
callq 0x4fe74
leaq 0x30(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x13394(%rip), %rdx     # 0x76a4f
leaq 0x20(%rsp), %rdi
movq %rdx, %rsi
callq 0xdf6a
movq 0x78(%r14), %rsi
movq (%rsi), %rax
leaq 0x40(%rsp), %rdi
callq *0x18(%rax)
leaq 0x10(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x13368(%rip), %rdx     # 0x76a4f
movq %rsp, %rdi
movq %rdx, %rsi
callq 0xdf6a
leaq 0x80(%rsp), %rsi
leaq 0x60(%rsp), %rdx
leaq 0x20(%rsp), %rcx
leaq 0x40(%rsp), %r8
movq %rsp, %r9
movq %rbx, %rdi
callq 0x71381
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x63722
callq 0xa2b0
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x63735
callq 0xa2b0
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x63744
callq 0xa2b0
leaq 0x70(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x63757
callq 0xa2b0
leaq 0x90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6378c
callq 0xa2b0
jmp 0x6378c
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x180f5(%rip), %rsi     # 0x7b872
leaq 0x18108(%rip), %rdx     # 0x7b88c
movq %rbx, %rdi
callq 0xdf6a
movq %rbx, %rax
addq $0xa0, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x637b2
callq 0xa2b0
jmp 0x637b2
movq %rax, %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x637ca
callq 0xa2b0
jmp 0x637ca
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x637de
callq 0xa2b0
jmp 0x637de
movq %rax, %rbx
leaq 0x70(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x637f6
callq 0xa2b0
jmp 0x637f6
movq %rax, %rbx
leaq 0x90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6380c
callq 0xa2b0
movq %rbx, %rdi
callq 0xa510
// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/BranchAction.cpp
// Function: LeftBranchAction::execute(void*, void*)
void* execute(void* inLeft, void* inRight)
	{
		void* leftData=leftInput->execute(nullptr, nullptr);
		void* outData=action->execute(leftData, nullptr);
		free(leftData);
		return outData;
	}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x78(%rdi), %rdi
movq (%rdi), %rax
xorl %esi, %esi
xorl %edx, %edx
callq *0x20(%rax)
movq %rax, %r14
movq 0x88(%rbx), %rdi
movq (%rdi), %rax
movq %r14, %rsi
xorl %edx, %edx
callq *0x20(%rax)
movq %rax, %rbx
movq %r14, %rdi
callq 0xa350
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/BranchAction.cpp
// Function: LeftBranchAction::addToProg(std::shared_ptr<ActionData>, std::shared_ptr<ActionData>, CppProgram*)
void addToProg(Action inLeft, Action inRight, CppProgram* prog)
	{
		Action leftInTmp = leftInput;
		
		if (leftInTmp->getReturnType()!=action->getInLeftType())
			leftInTmp=cppTupleCastAction(leftInTmp, action->getInLeftType());
		
		action->addToProg(leftInTmp, voidAction, prog);
	}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x50, %rsp
movq %rcx, %rbx
movq %rdi, %r15
movq 0x78(%rdi), %r13
movq 0x80(%rdi), %r12
testq %r12, %r12
je 0x63890
movq 0x3572a(%rip), %rax     # 0x98fa8
cmpb $0x0, (%rax)
je 0x6388a
incl 0x8(%r12)
jmp 0x63890
lock
incl 0x8(%r12)
movq 0x88(%r15), %rax
movq 0x28(%r13), %rcx
cmpq 0x38(%rax), %rcx
je 0x638c3
movq %r13, 0x40(%rsp)
movq %r12, 0x48(%rsp)
testq %r12, %r12
je 0x638d1
movq 0x356f1(%rip), %rax     # 0x98fa8
cmpb $0x0, (%rax)
je 0x638cb
incl 0x8(%r12)
jmp 0x638d1
movq %r12, %r14
jmp 0x63960
lock
incl 0x8(%r12)
movq 0x88(%r15), %rax
movq 0x38(%rax), %rcx
movq %rcx, 0x30(%rsp)
movq 0x40(%rax), %rax
movq %rax, 0x38(%rsp)
testq %rax, %rax
je 0x63904
movq 0x356b2(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x63900
incl 0x8(%rax)
jmp 0x63904
lock
incl 0x8(%rax)
movq %rsp, %rdi
leaq 0x40(%rsp), %rsi
leaq 0x30(%rsp), %rdx
callq 0x69908
movq (%rsp), %r13
movq 0x8(%rsp), %r14
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
testq %r12, %r12
je 0x63933
movq %r12, %rdi
callq 0xdcba
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x63942
callq 0xdcba
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x63951
callq 0xdcba
movq 0x48(%rsp), %rdi
testq %rdi, %rdi
je 0x63960
callq 0xdcba
movq 0x88(%r15), %rdi
movq %r13, 0x20(%rsp)
movq %r14, 0x28(%rsp)
testq %r14, %r14
je 0x6398d
movq 0x3562b(%rip), %rax     # 0x98fa8
cmpb $0x0, (%rax)
je 0x63988
incl 0x8(%r14)
jmp 0x6398d
lock
incl 0x8(%r14)
leaq 0x359dc(%rip), %rax     # 0x99370
movq (%rax), %rcx
movq 0x8(%rax), %rax
movq %rcx, 0x10(%rsp)
movq %rax, 0x18(%rsp)
testq %rax, %rax
je 0x639bf
movq 0x355f7(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x639bb
incl 0x8(%rax)
jmp 0x639bf
lock
incl 0x8(%rax)
movq (%rdi), %rax
leaq 0x20(%rsp), %rsi
leaq 0x10(%rsp), %rdx
movq %rbx, %rcx
callq *0x28(%rax)
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x639e1
callq 0xdcba
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x639f0
callq 0xdcba
testq %r14, %r14
je 0x639fd
movq %r14, %rdi
callq 0xdcba
addq $0x50, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x63a1d
callq 0xdcba
movq 0x48(%rsp), %rdi
testq %rdi, %rdi
je 0x63a52
callq 0xdcba
jmp 0x63a52
movq %rax, %rbx
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x63a40
callq 0xdcba
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x63a4f
callq 0xdcba
movq %r14, %r12
testq %r12, %r12
je 0x63a5f
movq %r12, %rdi
callq 0xdcba
movq %rbx, %rdi
callq 0xa510
nop
// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/BranchAction.cpp
// Function: BranchAction::getDescription[abi:cxx11]()
string getDescription()
	{
		if (leftInput && action && rightInput)
		{
			return str::makeRootUpBinaryTree(action->getDescription(), leftInput->getReturnType()->getName(), rightInput->getReturnType()->getName(), leftInput->getDescription(), rightInput->getDescription());
			//return getReturnType()->toString() + " <- [" + leftInput->getDescription() + "].[" + action->getDescription() + "]:[" + rightInput->getDescription() + "]";
			//return "(" + leftInput->getDescription() + " -> " + action->getDescription() + " <- " + rightInput->getDescription() + ")";
			//return getReturnType()->getName() + " <- " + leftInput->getDescription() + "." + action->getDescription() + ":" + rightInput->getDescription();
		}
		else
			return "[branch with null element]";
	}

// Assembly:
pushq %r14
pushq %rbx
subq $0xa8, %rsp
movq %rdi, %rbx
cmpq $0x0, 0x88(%rsi)
je 0x63c21
movq %rsi, %r14
movq 0x78(%rsi), %rsi
testq %rsi, %rsi
je 0x63c21
cmpq $0x0, 0x98(%r14)
je 0x63c21
movq (%rsi), %rax
leaq 0x88(%rsp), %rdi
callq *0x18(%rax)
movq 0x88(%r14), %rax
movq 0x28(%rax), %rsi
leaq 0x68(%rsp), %rdi
callq 0x4fe74
movq 0x98(%r14), %rax
movq 0x28(%rax), %rsi
leaq 0x48(%rsp), %rdi
callq 0x4fe74
movq 0x88(%r14), %rsi
movq (%rsi), %rax
leaq 0x28(%rsp), %rdi
callq *0x18(%rax)
movq 0x98(%r14), %rsi
movq (%rsi), %rax
leaq 0x8(%rsp), %rdi
callq *0x18(%rax)
leaq 0x88(%rsp), %rsi
leaq 0x68(%rsp), %rdx
leaq 0x48(%rsp), %rcx
leaq 0x28(%rsp), %r8
leaq 0x8(%rsp), %r9
movq %rbx, %rdi
callq 0x71381
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x63bd0
callq 0xa2b0
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x63be3
callq 0xa2b0
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x63bf6
callq 0xa2b0
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x63c09
callq 0xa2b0
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x63c3e
callq 0xa2b0
jmp 0x63c3e
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x17c43(%rip), %rsi     # 0x7b872
leaq 0x17c56(%rip), %rdx     # 0x7b88c
movq %rbx, %rdi
callq 0xdf6a
movq %rbx, %rax
addq $0xa8, %rsp
popq %rbx
popq %r14
retq
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x63c67
callq 0xa2b0
jmp 0x63c67
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x63c7f
callq 0xa2b0
jmp 0x63c7f
movq %rax, %rbx
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x63c97
callq 0xa2b0
jmp 0x63c97
movq %rax, %rbx
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x63caf
callq 0xa2b0
jmp 0x63caf
movq %rax, %rbx
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x63cc5
callq 0xa2b0
movq %rbx, %rdi
callq 0xa510
nop
// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/BranchAction.cpp
// Function: BranchAction::execute(void*, void*)
void* execute(void* inLeft, void* inRight)
	{
		void* leftData=leftInput->execute(nullptr, nullptr);
		void* rightData=rightInput->execute(nullptr, nullptr);
		void* outData=action->execute(leftData, rightData);
		free(leftData);
		free(rightData);
		return outData;
	}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0x88(%rdi), %rdi
movq (%rdi), %rax
xorl %esi, %esi
xorl %edx, %edx
callq *0x20(%rax)
movq %rax, %r14
movq 0x98(%rbx), %rdi
movq (%rdi), %rax
xorl %esi, %esi
xorl %edx, %edx
callq *0x20(%rax)
movq %rax, %r15
movq 0x78(%rbx), %rdi
movq (%rdi), %rax
movq %r14, %rsi
movq %r15, %rdx
callq *0x20(%rax)
movq %rax, %rbx
movq %r14, %rdi
callq 0xa350
movq %r15, %rdi
callq 0xa350
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/FunctionAction.cpp
// Function: FunctionAction::getDescription[abi:cxx11]()
string getDescription()
	{
		return str::putStringInTreeNodeBox("call func "+nameHint);
		//if (!action)
		//	resolveAction();
		//return "func: " + description;//action->getDescription();
	}

// Assembly:
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
leaq 0x8(%rsi), %rdx
leaq 0x165dc(%rip), %rsi     # 0x7ba35
leaq 0x8(%rsp), %r14
movq %r14, %rdi
callq 0xdbef
movq %rbx, %rdi
movq %r14, %rsi
callq 0x7053f
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x65484
callq 0xa2b0
movq %rbx, %rax
addq $0x28, %rsp
popq %rbx
popq %r14
retq
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x654a5
callq 0xa2b0
movq %rbx, %rdi
callq 0xa510
nop
// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/FunctionAction.cpp
// Function: FunctionAction::execute(void*, void*)
void* execute(void* inLeft, void* inRight)
	{
		if (!action)
			resolveAction();
		
		void * oldStackPtr=stackPtr;
		
		stackPtr=malloc(stackFame->getSize());
		
		if (inLeft)
			memcpy((char*)stackPtr+stackFame->getLeftOffset(), inLeft, getInLeftType()->getSize());
		
		if (inRight)
			memcpy((char*)stackPtr+stackFame->getRightOffset(), inRight, getInRightType()->getSize());
		
		void* out=action->execute(nullptr, nullptr);
		
		free(stackPtr);
		stackPtr=oldStackPtr;
		
		return out;
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
cmpq $0x0, 0x88(%rdi)
jne 0x654d4
movq %rbx, %rdi
callq 0x65a36
leaq 0x33efd(%rip), %rbp     # 0x993d8
movq (%rbp), %rax
movq %rax, (%rsp)
movq 0x78(%rbx), %r13
movq 0x18(%r13), %rdi
callq 0xa3a0
movq %rax, (%rbp)
testq %r15, %r15
je 0x6551f
movq %rax, %r12
movq %r13, %rdi
callq 0x52b04
addq %rax, %r12
movq 0x38(%rbx), %rdi
movq (%rdi), %rax
callq *0x38(%rax)
movq %r12, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0xa270
testq %r14, %r14
je 0x6554c
movq (%rbp), %r15
movq 0x78(%rbx), %rdi
callq 0x52baa
addq %rax, %r15
movq 0x48(%rbx), %rdi
movq (%rdi), %rax
callq *0x38(%rax)
movq %r15, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0xa270
movq 0x88(%rbx), %rdi
movq (%rdi), %rax
xorl %esi, %esi
xorl %edx, %edx
callq *0x20(%rax)
movq %rax, %rbx
movq (%rbp), %rdi
callq 0xa350
movq (%rsp), %rax
movq %rax, (%rbp)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/IfAction.cpp
// Function: IfAction::execute(void*, void*)
void* execute(void* inLeft, void* inRight)
	{
		void* conditionOut=condition->execute(nullptr, nullptr);
		if (*((bool*)conditionOut))
		{
			free(ifAction->execute(nullptr, nullptr));
		}
		free(conditionOut);
		return nullptr;
	}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %r14
movq 0x78(%rdi), %rdi
movq (%rdi), %rax
xorl %esi, %esi
xorl %edx, %edx
callq *0x20(%rax)
movq %rax, %rbx
cmpb $0x1, (%rax)
jne 0x66ca6
movq 0x88(%r14), %rdi
movq (%rdi), %rax
xorl %esi, %esi
xorl %edx, %edx
callq *0x20(%rax)
movq %rax, %rdi
callq 0xa350
movq %rbx, %rdi
callq 0xa350
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/IfAction.cpp
// Function: IfAction::addToProg(std::shared_ptr<ActionData>, std::shared_ptr<ActionData>, CppProgram*)
void addToProg(Action inLeft, Action inRight, CppProgram* prog)
	{
		prog->code("if ");
		prog->pushExpr();
		condition->addToProg(voidAction, voidAction, prog);
		prog->popExpr();
		prog->pushBlock();
		ifAction->addToProg(voidAction, voidAction, prog);
		prog->endln();
		prog->popBlock();
	}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x60, %rsp
movq %rcx, %rbx
movq %rdi, %r14
leaq 0x50(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x14f08(%rip), %rsi     # 0x7bbdf
leaq 0x14f04(%rip), %rdx     # 0x7bbe2
leaq 0x40(%rsp), %rdi
callq 0xdf6a
movq 0xa0(%rbx), %rdi
leaq 0x40(%rsp), %rsi
callq 0x1834e
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x66d08
callq 0xa2b0
movq 0xa0(%rbx), %rdi
callq 0x18b54
movq 0x78(%r14), %rdi
leaq 0x32651(%rip), %r15     # 0x99370
movq (%r15), %rcx
movq 0x8(%r15), %rax
movq %rcx, 0x30(%rsp)
movq %rax, 0x38(%rsp)
testq %rax, %rax
je 0x66d4a
movq 0x3226c(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x66d46
incl 0x8(%rax)
jmp 0x66d4a
lock
incl 0x8(%rax)
movq (%r15), %rcx
movq 0x8(%r15), %rax
movq %rcx, 0x20(%rsp)
movq %rax, 0x28(%rsp)
testq %rax, %rax
je 0x66d75
movq 0x32241(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x66d71
incl 0x8(%rax)
jmp 0x66d75
lock
incl 0x8(%rax)
movq (%rdi), %rax
leaq 0x30(%rsp), %rsi
leaq 0x20(%rsp), %rdx
movq %rbx, %rcx
callq *0x28(%rax)
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x66d97
callq 0xdcba
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x66da6
callq 0xdcba
movq 0xa0(%rbx), %rdi
callq 0x18bc6
movq 0xa0(%rbx), %rdi
callq 0x18ce0
movq 0x88(%r14), %rdi
movq (%r15), %rcx
movq 0x8(%r15), %rax
movq %rcx, 0x10(%rsp)
movq %rax, 0x18(%rsp)
testq %rax, %rax
je 0x66df0
movq 0x321c6(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x66dec
incl 0x8(%rax)
jmp 0x66df0
lock
incl 0x8(%rax)
movq (%r15), %rcx
movq 0x8(%r15), %rax
movq %rcx, (%rsp)
movq %rax, 0x8(%rsp)
testq %rax, %rax
je 0x66e1a
movq 0x3219c(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x66e16
incl 0x8(%rax)
jmp 0x66e1a
lock
incl 0x8(%rax)
movq (%rdi), %rax
leaq 0x10(%rsp), %rsi
movq %rsp, %rdx
movq %rbx, %rcx
callq *0x28(%rax)
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x66e3a
callq 0xdcba
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x66e49
callq 0xdcba
movq 0xa0(%rbx), %rdi
callq 0x18652
movq 0xa0(%rbx), %rdi
callq 0x18e48
addq $0x60, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x66e7d
callq 0xdcba
movq 0x18(%rsp), %rdi
jmp 0x66e9b
movq %rax, %rbx
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x66e96
callq 0xdcba
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x66ebe
callq 0xdcba
jmp 0x66ebe
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x66ebe
callq 0xa2b0
jmp 0x66ebe
movq %rax, %rbx
movq %rbx, %rdi
callq 0xa510
// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/IfAction.cpp
// Function: IfElseAction::execute(void*, void*)
void* execute(void* inLeft, void* inRight)
	{
		void* out;
		void* conditionOut=condition->execute(nullptr, nullptr);
		if (*((bool*)conditionOut))
		{
			out=ifAction->execute(nullptr, nullptr);
		}
		else
		{
			out=elseAction->execute(nullptr, nullptr);
		}
		free(conditionOut);
		if (returnVal)
		{
			return out;
		}
		else
		{
			free(out);
			return nullptr;
		}
	}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0x78(%rdi), %rdi
movq (%rdi), %rax
xorl %esi, %esi
xorl %edx, %edx
callq *0x20(%rax)
movq %rax, %r15
movzbl (%rax), %eax
xorl $0x1, %eax
shll $0x4, %eax
movq 0x88(%rbx,%rax), %rdi
movq (%rdi), %rax
xorl %esi, %esi
xorl %edx, %edx
callq *0x20(%rax)
movq %rax, %r14
movq %r15, %rdi
callq 0xa350
cmpb $0x0, 0xa8(%rbx)
jne 0x67295
movq %r14, %rdi
callq 0xa350
xorl %r14d, %r14d
movq %r14, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/ListAction.cpp
// Function: listAction(std::vector<std::shared_ptr<ActionData>, std::allocator<std::shared_ptr<ActionData>>> const&, std::vector<std::shared_ptr<ActionData>, std::allocator<std::shared_ptr<ActionData>>> const&)
Action listAction(const vector<Action>& actionsIn, const vector<Action>& destroyersIn)
{
	if (actionsIn.size()==0 && destroyersIn.size()==0)
	{
		return voidAction;
	}
	else if (actionsIn.size()==1 && destroyersIn.size()==0)
	{
		return actionsIn[0];
	}
	else
	{
		return Action(new ListAction(actionsIn, destroyersIn));
	}
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
movq (%rsi), %rax
movq 0x8(%rsi), %rcx
subq %rax, %rcx
movq %rcx, %rdx
sarq $0x4, %rdx
cmpq $0x1, %rdx
je 0x67b0c
testq %rdx, %rdx
jne 0x67b15
movq 0x8(%r14), %rdx
cmpq (%r14), %rdx
je 0x67b51
cmpq $0x10, %rcx
jne 0x67b15
movq 0x8(%r14), %rcx
cmpq (%r14), %rcx
je 0x67b58
movl $0xa8, %edi
callq 0xa2d0
movq %rax, %r12
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x68072
movq %r12, (%rbx)
movq %rbx, %rdi
addq $0x8, %rdi
movq %r12, %rsi
callq 0x68958
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
leaq 0x31818(%rip), %rax     # 0x99370
movq (%rax), %rcx
movq %rcx, (%rbx)
movq 0x8(%rax), %rax
movq %rax, 0x8(%rbx)
testq %rax, %rax
je 0x67b42
movq 0x31436(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x67b7c
incl 0x8(%rax)
jmp 0x67b42
lock
incl 0x8(%rax)
jmp 0x67b42
movq %rax, %rbx
movq %r12, %rdi
callq 0xa2b0
movq %rbx, %rdi
callq 0xa510
nop
// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/ListAction.cpp
// Function: ListAction::getDescription[abi:cxx11]()
string getDescription()
	{
		vector<string> data;
		
		for (auto i=actions.begin(); i!=actions.end(); ++i)
		{
			if (*i)
				data.push_back((*i)->getDescription());
			else
				data.push_back(str::putStringInTreeNodeBox("[null action]"));
		}
		
		return str::makeList(data);
		/*
		string out;
		out+="\n{";
		
		for (auto i=actions.begin(); i!=actions.end(); ++i)
		{
			out+="\n\t";
			
			string str;
			
			if (*i)
				str=(*i)->getDescription();
			else
				str="[null action]";
			
			for (unsigned j=0; j<str.size(); ++j)
			{
				out+=str[j];
				
				if (str[j]=='\n')
					out+='\t';
			}
			
			out+="\n";
		}
		
		out+="}\n";
		
		return out;
		*/
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rdi, 0x20(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
movq $0x0, 0x10(%rsp)
movq 0x78(%rsi), %r15
cmpq 0x80(%rsi), %r15
je 0x68732
movq %rsi, %r14
leaq 0x58(%rsp), %r12
leaq 0x28(%rsp), %r13
leaq 0x48(%rsp), %rbp
movq %rsp, %rbx
cmpq $0x0, (%r15)
je 0x686dc
movq (%r15), %rsi
movq (%rsi), %rax
movq %rbp, %rdi
callq *0x18(%rax)
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x16ffe
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x686cd
callq 0xa2b0
addq $0x10, %r15
cmpq 0x80(%r14), %r15
jne 0x686a1
jmp 0x68732
leaq 0x38(%rsp), %rax
movq %rax, 0x28(%rsp)
movq %r13, %rdi
leaq 0x136ce(%rip), %rsi     # 0x7bdbe
leaq 0x136d4(%rip), %rdx     # 0x7bdcb
callq 0xdf6a
movq %rbp, %rdi
movq %r13, %rsi
callq 0x7053f
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x16ffe
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x68721
callq 0xa2b0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
jne 0x686c8
jmp 0x686cd
movq %rsp, %rsi
movq 0x20(%rsp), %rbx
movq %rbx, %rdi
callq 0x7061f
movq %rsp, %rdi
callq 0x148b4
movq %rbx, %rax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x68788
movq %rax, %rbx
jmp 0x68777
jmp 0x68788
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x68777
callq 0xa2b0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
jne 0x6879a
jmp 0x6879f
movq %rax, %rbx
jmp 0x6879f
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x6879f
callq 0xa2b0
movq %rsp, %rdi
callq 0x148b4
movq %rbx, %rdi
callq 0xa510
nop
// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/ListAction.cpp
// Function: ListAction::execute(void*, void*)
void* execute(void* inLeft, void* inRight)
	{
		auto i=actions.begin();
		
		for (; i!=std::prev(actions.end()); ++i)
		{
			free((*i)->execute(nullptr, nullptr));
		}
		
		void* returnVal=(*i)->execute(nullptr, nullptr);
		
		for (auto j: destroyers)
		{
			free(j->execute(nullptr, nullptr));
		}
		
		return returnVal;
	}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rdi, %r14
movq 0x78(%rdi), %rbx
movq 0x80(%rdi), %rax
addq $-0x10, %rax
cmpq %rax, %rbx
je 0x687f2
movq (%rbx), %rdi
movq (%rdi), %rax
xorl %esi, %esi
xorl %edx, %edx
callq *0x20(%rax)
movq %rax, %rdi
callq 0xa350
addq $0x10, %rbx
movq 0x80(%r14), %rax
jmp 0x687c7
movq (%rbx), %rdi
movq (%rdi), %rax
xorl %esi, %esi
xorl %edx, %edx
callq *0x20(%rax)
movq %rax, %rbx
movq 0x90(%r14), %r15
movq 0x98(%r14), %r12
cmpq %r12, %r15
je 0x68862
movq 0x3078c(%rip), %r13     # 0x98fa8
movq (%r15), %rdi
movq 0x8(%r15), %r14
testq %r14, %r14
je 0x6883a
cmpb $0x0, (%r13)
je 0x68835
incl 0x8(%r14)
jmp 0x6883a
lock
incl 0x8(%r14)
movq (%rdi), %rax
xorl %esi, %esi
xorl %edx, %edx
callq *0x20(%rax)
movq %rax, %rdi
callq 0xa350
testq %r14, %r14
je 0x68859
movq %r14, %rdi
callq 0xdcba
addq $0x10, %r15
cmpq %r12, %r15
jne 0x6881c
movq %rbx, %rax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq %rax, %rbx
testq %r14, %r14
je 0x6887f
movq %r14, %rdi
callq 0xdcba
movq %rbx, %rdi
callq 0xa510
nop
// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/LoopAction.cpp
// Function: LoopAction::execute(void*, void*)
void* execute(void* inLeft, void* inRight)
	{
		void* conditionOut;
		
		while (true)
		{
			conditionOut=condition->execute(nullptr, nullptr);
			if (!(*((bool*)conditionOut)))
				break;
			free(conditionOut);
			free(loopAction->execute(nullptr, nullptr));
			free(endAction->execute(nullptr, nullptr));
		}
		
		free(conditionOut);
		
		return nullptr;
	}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x78(%rdi), %rdi
movq (%rdi), %rax
xorl %esi, %esi
xorl %edx, %edx
callq *0x20(%rax)
cmpb $0x1, (%rax)
jne 0x69434
movq %rax, %rdi
callq 0xa350
movq 0x88(%rbx), %rdi
movq (%rdi), %rax
xorl %esi, %esi
xorl %edx, %edx
callq *0x20(%rax)
movq %rax, %rdi
callq 0xa350
movq 0x98(%rbx), %rdi
movq (%rdi), %rax
xorl %esi, %esi
xorl %edx, %edx
callq *0x20(%rax)
movq %rax, %rdi
callq 0xa350
movq 0x78(%rbx), %rdi
movq (%rdi), %rax
xorl %esi, %esi
xorl %edx, %edx
callq *0x20(%rax)
cmpb $0x0, (%rax)
jne 0x693e7
movq %rax, %rdi
callq 0xa350
xorl %eax, %eax
popq %rbx
retq
// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/LoopAction.cpp
// Function: LoopAction::addToProg(std::shared_ptr<ActionData>, std::shared_ptr<ActionData>, CppProgram*)
void addToProg(Action inLeft, Action inRight, CppProgram* prog)
	{
		prog->code("while ");
		
		prog->pushExpr();
			condition->addToProg(prog);
		prog->popExpr();
		
		prog->pushBlock();
			loopAction->addToProg(prog);
			prog->endln();
			if (endAction!=voidAction)
			{
				endAction->addToProg(prog);
				prog->endln();
			}
		prog->popBlock();
	}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rcx, %rbx
movq %rdi, %r14
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x12a92(%rip), %rsi     # 0x7bef4
leaq 0x12a91(%rip), %rdx     # 0x7befa
leaq 0x8(%rsp), %r15
movq %r15, %rdi
callq 0xdf6a
movq 0xa0(%rbx), %rdi
movq %r15, %rsi
callq 0x1834e
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x69494
callq 0xa2b0
movq 0xa0(%rbx), %rdi
callq 0x18b54
movq 0x78(%r14), %rdi
movq %rbx, %rsi
callq 0x4f248
movq 0xa0(%rbx), %rdi
callq 0x18bc6
movq 0xa0(%rbx), %rdi
callq 0x18ce0
movq 0x88(%r14), %rdi
movq %rbx, %rsi
callq 0x4f248
movq 0xa0(%rbx), %rdi
callq 0x18652
movq 0x98(%r14), %rdi
leaq 0x2fe83(%rip), %rax     # 0x99370
cmpq (%rax), %rdi
je 0x69506
movq %rbx, %rsi
callq 0x4f248
movq 0xa0(%rbx), %rdi
callq 0x18652
movq 0xa0(%rbx), %rdi
callq 0x18e48
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x69530
callq 0xa2b0
movq %rbx, %rdi
callq 0xa510
// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/MakeTupleAction.cpp
// Function: MakeTupleAction::getDescription[abi:cxx11]()
string getDescription()
	{
		return str::putStringInTreeNodeBox("make tuple of type "+getReturnType()->getName());
		
		//return "[tuple of type " + getReturnType()->getString() + "]";
		
		/*string out;
		out+="\n{";
		
		for (auto i=sourceActions.begin(); i!=sourceActions.end(); ++i)
		{
			out+="\n\t";
			
			string str;
			
			if (*i)
				str=(*i)->getDescription();
			else
				str="[null action]";
			
			for (unsigned j=0; j<str.size(); ++j)
			{
				out+=str[j];
				
				if (str[j]=='\n')
					out+='\t';
			}
			
			out+="\n";
		}
		
		out+="}\n";
		
		return out;*/
	}

// Assembly:
pushq %r14
pushq %rbx
subq $0x48, %rsp
movq %rdi, %rbx
movq 0x28(%rsi), %rsi
leaq 0x28(%rsp), %r14
movq %r14, %rdi
callq 0x4fe74
leaq 0x118ca(%rip), %rcx     # 0x7bffc
movl $0x13, %r8d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0xa310
leaq 0x18(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x6a76b
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x6a772
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq 0x8(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %rbx, %rdi
callq 0x7053f
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x6a7a5
callq 0xa2b0
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6a7b8
callq 0xa2b0
movq %rbx, %rax
addq $0x48, %rsp
popq %rbx
popq %r14
retq
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x6a7da
callq 0xa2b0
jmp 0x6a7da
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6a7ed
callq 0xa2b0
movq %rbx, %rdi
callq 0xa510
nop
// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/MakeTupleAction.cpp
// Function: MakeTupleAction::execute(void*, void*)
void* execute(void* inLeft, void* inRight)
	{
		void* out=malloc(getReturnType()->getSize());
		size_t offset=0;
		
		for (auto i=sourceActions.begin(); i!=sourceActions.end(); ++i)
		{
			void* val=(*i)->execute(nullptr, nullptr);
			memcpy((char*)out+offset, val, (*i)->getReturnType()->getSize());
			free(val);
			offset+=(*i)->getReturnType()->getSize();
		}
		
		return out;
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x28(%rdi), %rdi
movq (%rdi), %rax
callq *0x38(%rax)
movq %rax, %rdi
callq 0xa3a0
movq %rax, %r14
movq 0x78(%rbx), %r13
cmpq 0x80(%rbx), %r13
je 0x6a87f
xorl %ebp, %ebp
movq (%r13), %rdi
movq (%rdi), %rax
xorl %esi, %esi
xorl %edx, %edx
callq *0x20(%rax)
movq %rax, %r15
leaq (%r14,%rbp), %r12
movq (%r13), %rax
movq 0x28(%rax), %rdi
movq (%rdi), %rax
callq *0x38(%rax)
movq %r12, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0xa270
movq %r15, %rdi
callq 0xa350
movq (%r13), %rax
movq 0x28(%rax), %rdi
movq (%rdi), %rax
callq *0x38(%rax)
addq %rax, %rbp
addq $0x10, %r13
cmpq 0x80(%rbx), %r13
jne 0x6a828
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/MakeTupleAction.cpp
// Function: MakeTupleAction::addToProg(std::shared_ptr<ActionData>, std::shared_ptr<ActionData>, CppProgram*)
void addToProg(Action inLeft, Action inRight, CppProgram* prog)
	{
		if (sourceActions.size()==1)
		{
			sourceActions[0]->addToProg(prog);
			return;
		}
		
		prog->code(prog->getTypeCode(getReturnType()));
		prog->pushExpr();
		bool start=true;
		for (auto i: sourceActions)
		{
			if (!start) prog->code(", ");
			start=false;
			
			i->addToProg(prog);
		}
		prog->popExpr();
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rcx, %rbx
movq 0x78(%rdi), %rax
movq 0x80(%rdi), %rcx
subq %rax, %rcx
cmpq $0x10, %rcx
jne 0x6a8d0
movq (%rax), %rdi
movq %rbx, %rsi
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x4f248
movq %rdi, %r14
movq 0x28(%rdi), %rax
movq %rax, 0x28(%rsp)
movq 0x30(%rdi), %rax
movq %rax, 0x30(%rsp)
testq %rax, %rax
je 0x6a8ff
movq 0x2e6b7(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x6a8fb
incl 0x8(%rax)
jmp 0x6a8ff
lock
incl 0x8(%rax)
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rdx
movq %rbx, %rsi
callq 0x1a7f4
movq 0xa0(%rbx), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1834e
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6a935
callq 0xa2b0
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x6a944
callq 0xdcba
movq 0xa0(%rbx), %rdi
callq 0x18b54
movq 0x78(%r14), %r12
movq 0x80(%r14), %r15
cmpq %r15, %r12
je 0x6a9fe
movb $0x1, %al
leaq 0x8(%rsp), %r13
movq (%r12), %rbp
movq 0x8(%r12), %r14
testq %r14, %r14
je 0x6a990
movq 0x2e628(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x6a98b
incl 0x8(%r14)
jmp 0x6a990
lock
incl 0x8(%r14)
testb $0x1, %al
jne 0x6a9d7
leaq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq %r13, %rdi
leaq 0xed4d(%rip), %rsi      # 0x796f5
leaq 0xed48(%rip), %rdx      # 0x796f7
callq 0xdf6a
movq 0xa0(%rbx), %rdi
movq %r13, %rsi
callq 0x1834e
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x6a9d7
callq 0xa2b0
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x4f248
testq %r14, %r14
je 0x6a9ef
movq %r14, %rdi
callq 0xdcba
addq $0x10, %r12
xorl %eax, %eax
cmpq %r15, %r12
jne 0x6a96b
movq 0xa0(%rbx), %rdi
callq 0x18bc6
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6aa34
callq 0xa2b0
jmp 0x6aa34
movq %rax, %rbx
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
jne 0x6aa66
jmp 0x6aa6b
jmp 0x6aa5b
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x6aa5e
callq 0xa2b0
jmp 0x6aa5e
movq %rax, %rbx
testq %r14, %r14
je 0x6aa6b
movq %r14, %rdi
callq 0xdcba
movq %rbx, %rdi
callq 0xa510
nop
// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/VarAction.cpp
// Function: VarGetAction::execute(void*, void*)
void* execute(void* inLeft, void* inRight)
	{
		if (!(*stackPtrPtr))
		{
			throw PhplusError("something fucked up big time. VarGetAction::execute called while stack pointer is still null", RUNTIME_ERROR);
		}
		
		void* out=malloc(returnType->getSize());
		memcpy(out, (char*)(*stackPtrPtr)+offset, returnType->getSize());
		return out;
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x38, %rsp
movq 0x78(%rdi), %rax
cmpq $0x0, (%rax)
je 0x6d5d2
movq %rdi, %rbx
movq 0x28(%rdi), %rdi
movq (%rdi), %rax
callq *0x38(%rax)
movq %rax, %rdi
callq 0xa3a0
movq %rax, %r14
movq 0x28(%rbx), %rdi
movq 0x78(%rbx), %rax
movq (%rax), %r15
addq 0x80(%rbx), %r15
movq (%rdi), %rax
callq *0x38(%rax)
movq %r14, %rdi
movq %r15, %rsi
movq %rax, %rdx
addq $0x38, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0xa270
movl $0x38, %edi
callq 0xa1b0
movq %rax, %rbx
leaq 0x28(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0xec7a(%rip), %rsi      # 0x7c269
leaq 0xeccf(%rip), %rdx      # 0x7c2c5
leaq 0x18(%rsp), %rdi
callq 0xdf6a
xorps %xmm0, %xmm0
movq %rsp, %rcx
movaps %xmm0, (%rcx)
movb $0x1, %bpl
leaq 0x18(%rsp), %rsi
movq %rbx, %rdi
movl $0x4, %edx
callq 0x200e4
xorl %ebp, %ebp
leaq 0x29011(%rip), %rsi     # 0x96638
leaq -0x58d36(%rip), %rdx    # 0x148f8
movq %rbx, %rdi
callq 0xa4f0
movq %rax, %r14
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x6d648
callq 0xdcba
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x6d65f
callq 0xa2b0
jmp 0x6d65f
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x6d66c
movq %rbx, %rdi
callq 0xa240
movq %r14, %rdi
callq 0xa510
// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/VarAction.cpp
// Function: VarGetAction::addToProg(std::shared_ptr<ActionData>, std::shared_ptr<ActionData>, CppProgram*)
void addToProg(Action inLeft, Action inRight, CppProgram* prog)
	{
		/*
		if ((nameHint=="me" || nameHint=="in") && getReturnType()->getType()==TypeBase::TUPLE)
		{
			prog->code(prog->getTypeCode(getReturnType()));
			prog->pushExpr();
				bool isFirst=true;
				for (auto i: *getReturnType()->getAllSubTypes())
				{
					if (!isFirst)
						prog->code(", ");
					isFirst=false;
					prog->name(i.name);
				}
			prog->popExpr();
		}
		else
		*/
		{
			prog->declareVar(nameHint, getReturnType());
			prog->name(nameHint);
		}
	}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x30, %rsp
movq %rcx, %r14
movq %rdi, %rbx
movq 0x28(%rdi), %rax
movq %rax, (%rsp)
movq 0x30(%rdi), %rax
movq %rax, 0x8(%rsp)
testq %rax, %rax
je 0x6d6ae
movq 0x2b908(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x6d6aa
incl 0x8(%rax)
jmp 0x6d6ae
lock
incl 0x8(%rax)
leaq 0x20(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x9391(%rip), %rdx      # 0x76a4f
leaq 0x10(%rsp), %rdi
movq %rdx, %rsi
callq 0xdf6a
addq $0x8, %rbx
movq %rsp, %rdx
leaq 0x10(%rsp), %rcx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x1c0c4
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x6d6f1
callq 0xa2b0
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x6d700
callq 0xdcba
movq 0xa0(%r14), %rdi
movq %rbx, %rsi
callq 0x185d6
addq $0x30, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x6d730
callq 0xa2b0
jmp 0x6d730
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x6d73f
callq 0xdcba
movq %rbx, %rdi
callq 0xa510
nop