LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_cpp_makefile_star2_O3/menhits[P]phplus/src/msclStringFuncs.cpp
// Function: putStringInBox(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool, bool, int)
string putStringInBox(const string& in, string boxName, bool showLineNums, bool alwaysWidthMax, int maxWidth)
{
	vector<string> lines;
	
	if (maxWidth<0)
	{
		maxWidth=getTermWidth()-4;
	}
	
	sliceStringBy(in, "\n", lines);
	
	tabsToSpaces(lines);
	
	string out=lineListToBoxedString(lines, boxName, showLineNums?1:-1, alwaysWidthMax, maxWidth);
	
	return out;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movl %r9d, %ebp
movl %r8d, 0xc(%rsp)
movl %ecx, %r15d
movq %rdx, %r12
movq %rsi, %r13
movq %rdi, %rbx
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
movq $0x0, 0x20(%rsp)
testl %r9d, %r9d
jns 0x5cf7a
callq 0x5d06e
movl %eax, %ebp
addl $-0x4, %ebp
leaq 0x58(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1af9e(%rip), %rsi     # 0x77f28
leaq 0x1af98(%rip), %rdx     # 0x77f29
leaq 0x48(%rsp), %rdi
callq 0xdfa8
leaq 0x48(%rsp), %rsi
leaq 0x10(%rsp), %rdx
movq %r13, %rdi
callq 0x5ad6b
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
je 0x5cfbc
callq 0xa2b0
leaq 0x10(%rsp), %rdi
callq 0x5b30b
leaq 0x38(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%r12), %rsi
movq 0x8(%r12), %rdx
addq %rsi, %rdx
leaq 0x28(%rsp), %rdi
callq 0xde0c
movzbl %r15b, %ecx
decl %ecx
orl $0x1, %ecx
movzbl 0xc(%rsp), %r8d
leaq 0x10(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
movl %ebp, %r9d
callq 0x5bd00
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x5d018
callq 0xa2b0
leaq 0x10(%rsp), %rdi
callq 0x14adc
movq %rbx, %rax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
jne 0x5d050
jmp 0x5d05c
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
je 0x5d05c
callq 0xa2b0
jmp 0x5d05c
jmp 0x5d059
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x14adc
movq %rbx, %rdi
callq 0xa510
// File: /workspace/github_cpp_makefile_star2_O3/menhits[P]phplus/src/msclStringFuncs.cpp
// Function: stringToInt(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
int stringToInt(string in)
{
	int out = 0;
	
	for (int i = 0; i < (int)in.size(); i++)
	{
		if (in[i] >= '0' && in[i] <= '9')
		{
			out = out * 10 + in[i] - '0';
		}
		else if (in[i] == '.')
			break;
	}
	
	if (in.size() > 0 && in[0] == '-')
		out *= -1;
	
	return out;
}

// Assembly:
movq 0x8(%rdi), %rcx
testl %ecx, %ecx
jle 0x5e33c
movq (%rdi), %rdx
movl %ecx, %esi
andl $0x7fffffff, %esi       # imm = 0x7FFFFFFF
xorl %r8d, %r8d
xorl %eax, %eax
movsbl (%rdx,%r8), %r9d
cmpl $0x30, %r9d
jl 0x5e32c
cmpb $0x39, %r9b
ja 0x5e332
leal (%rax,%rax,4), %eax
leal (%r9,%rax,2), %eax
addl $-0x30, %eax
jmp 0x5e332
cmpb $0x2e, %r9b
je 0x5e33e
incq %r8
cmpq %r8, %rsi
jne 0x5e30f
jmp 0x5e33e
xorl %eax, %eax
testq %rcx, %rcx
je 0x5e352
movq (%rdi), %rcx
movl %eax, %edx
negl %edx
cmpb $0x2d, (%rcx)
cmovnel %eax, %edx
movl %edx, %eax
retq
// File: /workspace/github_cpp_makefile_star2_O3/menhits[P]phplus/src/msclStringFuncs.cpp
// Function: stringToDouble(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
double stringToDouble(string in)
{
	double out = 0;
	int divider = 1;
	
	for (int i = 0; i < (int)in.size(); i++)
	{
		if (divider == 1)
		{
			if (in[i] >= '0' && in[i] <= '9')
				out = out * 10 + in[i] - '0';
			else if (in[i] == '.')
				divider = 10;
		}
		else
		{
			if (in[i] >= '0' && in[i] <= '9')
			{
				out += (double)(in[i] - '0') / divider;
				divider *= 10;
			}
		}
	}
	
	if (in.size() > 0 && in[0] == '-')
		out *= -1;
	
	return out;
}

// Assembly:
movq 0x8(%rdi), %rax
testl %eax, %eax
jle 0x5e402
movl %eax, %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
movq (%rdi), %rdx
xorpd %xmm0, %xmm0
movl $0x1, %r8d
xorl %esi, %esi
movsd 0x1cdc2(%rip), %xmm1    # 0x7b140
movsd 0x1de52(%rip), %xmm2    # 0x7c1d8
movzbl (%rdx,%rsi), %r9d
leal -0x30(%r9), %r10d
cmpl $0x1, %r8d
jne 0x5e3bb
cmpb $0x9, %r10b
ja 0x5e3e6
movsbl %r9b, %r8d
xorps %xmm3, %xmm3
cvtsi2sd %r8d, %xmm3
mulsd %xmm1, %xmm0
addsd %xmm3, %xmm0
addsd %xmm2, %xmm0
movl $0x1, %r8d
jmp 0x5e3f8
cmpb $0x9, %r10b
ja 0x5e3f8
addl $-0x30, %r9d
xorps %xmm3, %xmm3
cvtsi2sd %r9d, %xmm3
xorps %xmm4, %xmm4
cvtsi2sd %r8d, %xmm4
divsd %xmm4, %xmm3
addsd %xmm3, %xmm0
addl %r8d, %r8d
leal (%r8,%r8,4), %r8d
jmp 0x5e3f8
xorl %r8d, %r8d
cmpl $0x2e, %r9d
sete %r8b
leal (%r8,%r8,8), %r8d
incl %r8d
incq %rsi
cmpq %rsi, %rcx
jne 0x5e386
jmp 0x5e406
xorpd %xmm0, %xmm0
testq %rax, %rax
je 0x5e41b
movq (%rdi), %rax
cmpb $0x2d, (%rax)
jne 0x5e41b
xorpd 0x1a435(%rip), %xmm0    # 0x78850
retq
// File: /workspace/github_cpp_makefile_star2_O3/menhits[P]phplus/src/msclStringFuncs.cpp
// Function: runCmd(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool)
string runCmd(string cmd, bool printOutput) // if print output is false, nothing will be printed unil the entire command is done
{
    std::string result = "";
    FILE* pipe = popen(cmd.c_str(), "r");
    if (!pipe) throw std::runtime_error("popen() failed in getOutputFromCmd");
    try {
        while (!feof(pipe)) {
			char c;
            if ((c=getc(pipe)) != EOF)
			{
                result += c;
                
                if (printOutput)
				{
					cout << c;
					cout.flush();
				}
			}
        }
    } catch (...) {
        pclose(pipe);
        throw;
    }
    pclose(pipe);
    return result;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %edx, %ebp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x10(%rdi), %rax
movq %rax, 0x10(%rsp)
movq %rax, (%rdi)
leaq 0x18c7e(%rip), %rdx     # 0x77a4f
movq %rdx, %rsi
callq 0xdfa8
movq (%r14), %rdi
leaq 0x1900b(%rip), %rsi     # 0x77dee
callq 0xa100
testq %rax, %rax
je 0x5ee71
movq %rax, %r14
movq %rax, %rdi
callq 0xa480
testl %eax, %eax
jne 0x5ee57
movq 0x3b1a9(%rip), %r15     # 0x99fb0
leaq 0xf(%rsp), %r12
movq %r14, %rdi
callq 0xa0f0
movl %eax, %r13d
cmpb $-0x1, %r13b
je 0x5ee4b
movsbl %r13b, %esi
movq %rbx, %rdi
callq 0xa290
testb %bpl, %bpl
je 0x5ee4b
movb %r13b, 0xf(%rsp)
movl $0x1, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0xa320
movq %r15, %rdi
callq 0xa200
movq %r14, %rdi
callq 0xa480
testl %eax, %eax
je 0x5ee0c
movq %r14, %rdi
callq 0xa420
movq %rbx, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x10, %edi
callq 0xa1b0
movq %rax, %r15
leaq 0x1d44c(%rip), %rsi     # 0x7c2d1
movq %rax, %rdi
callq 0xa150
movq 0x3b15c(%rip), %rsi     # 0x99ff0
movq 0x3b105(%rip), %rdx     # 0x99fa0
movq %r15, %rdi
callq 0xa4f0
jmp 0x5eecc
movq %rax, %r14
jmp 0x5eed4
movq %rax, %r14
movq %r15, %rdi
callq 0xa240
jmp 0x5eed4
movq %rax, %rdi
callq 0xa170
movq %r14, %rdi
callq 0xa420
callq 0xa440
movq %rax, %r14
callq 0xa4c0
movq (%rbx), %rdi
cmpq 0x10(%rsp), %rdi
je 0x5eee3
callq 0xa2b0
movq %r14, %rdi
callq 0xa510
movq %rax, %rdi
callq 0xdcd8
// File: /workspace/github_cpp_makefile_star2_O3/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 0x39c63(%rip), %rax     # 0x99090
movq %rax, (%rdi)
addq $0x8, %rdi
leaq 0x18(%r15), %rax
movq %rax, 0x10(%rsp)
movq %rax, 0x8(%r15)
leaq 0x18607(%rip), %rdx     # 0x77a4f
movq %rdi, 0x18(%rsp)
movq %rdx, %rsi
callq 0xdfa8
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 0xdea2
movq (%r13), %rax
movq %rax, 0x38(%r15)
leaq 0x40(%r15), %r12
addq $0x8, %r13
movq %r12, %rdi
movq %r13, %rsi
callq 0xdea2
movq (%rbp), %rax
movq %rax, 0x48(%r15)
leaq 0x50(%r15), %r13
addq $0x8, %rbp
movq %r13, %rdi
movq %rbp, %rsi
callq 0xdea2
cmpq $0x0, 0x28(%r15)
je 0x5f4f1
cmpq $0x0, 0x38(%r15)
je 0x5f4f1
cmpq $0x0, 0x48(%r15)
je 0x5f4f1
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x38, %edi
callq 0xa1b0
movq %rax, %rbp
leaq 0x30(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x1ce06(%rip), %rsi     # 0x7c314
leaq 0x1ce20(%rip), %rdx     # 0x7c335
leaq 0x20(%rsp), %rdi
callq 0xdfa8
xorps %xmm0, %xmm0
leaq 0x40(%rsp), %rcx
movaps %xmm0, (%rcx)
movb $0x1, %al
movl %eax, 0x4(%rsp)
leaq 0x20(%rsp), %rsi
movq %rbp, %rdi
movl $0x3, %edx
callq 0x203f4
movl $0x0, 0x4(%rsp)
leaq 0x380e7(%rip), %rsi     # 0x97638
leaq -0x4aa32(%rip), %rdx    # 0x14b26
movq %rbp, %rdi
callq 0xa4f0
movq %rax, 0x8(%rsp)
movq 0x48(%rsp), %rdi
testq %rdi, %rdi
je 0x5f574
callq 0xdce4
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x5f588
callq 0xa2b0
cmpb $0x0, 0x4(%rsp)
jne 0x5f596
jmp 0x5f59e
movq %rax, 0x8(%rsp)
movq %rbp, %rdi
callq 0xa240
movq 0x58(%r15), %rdi
cmpq %rbx, %rdi
je 0x5f5ac
callq 0xa2b0
movq (%r13), %rdi
testq %rdi, %rdi
je 0x5f5ba
callq 0xdce4
movq (%r12), %rdi
testq %rdi, %rdi
je 0x5f5c8
callq 0xdce4
movq (%r14), %rdi
testq %rdi, %rdi
je 0x5f5d5
callq 0xdce4
movq 0x18(%rsp), %rax
movq (%rax), %rdi
cmpq 0x10(%rsp), %rdi
je 0x5f5e9
callq 0xa2b0
movq 0x8(%rsp), %rdi
callq 0xa510
nop
// File: /workspace/github_cpp_makefile_star2_O3/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 0x61891
movq 0x88(%r15), %rdi
movq (%rdi), %rax
xorl %esi, %esi
xorl %edx, %edx
callq *0x20(%rax)
cmpb $0x1, (%rax)
jne 0x61889
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_O3/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 0x18e22
movq 0x78(%r14), %rdi
leaq 0x38aa6(%rip), %r15     # 0x9a370
movq (%r15), %rdx
movq 0x8(%r15), %rax
movq %rdx, 0x38(%rsp)
movq %rax, 0x40(%rsp)
testq %rax, %rax
je 0x618fb
movq 0x386c1(%rip), %rcx     # 0x99fa8
cmpb $0x0, (%rcx)
je 0x6190b
incl 0x8(%rax)
movq %rdx, 0x18(%rsp)
movq %rax, 0x20(%rsp)
jmp 0x61925
movq %rdx, 0x18(%rsp)
movq $0x0, 0x20(%rsp)
jmp 0x61933
lock
incl 0x8(%rax)
movq (%r15), %rdx
movq 0x8(%r15), %rax
movq %rdx, 0x18(%rsp)
movq %rax, 0x20(%rsp)
testq %rax, %rax
je 0x61933
cmpb $0x0, (%rcx)
je 0x6192f
incl 0x8(%rax)
jmp 0x61933
lock
incl 0x8(%rax)
movq (%rdi), %rax
leaq 0x38(%rsp), %rsi
leaq 0x18(%rsp), %rdx
movq %rbx, %rcx
callq *0x28(%rax)
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x61955
callq 0xdce4
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x61964
callq 0xdce4
movq 0xa0(%rbx), %rdi
callq 0x18e94
leaq 0x58(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x1ace1(%rip), %rsi     # 0x7c662
leaq 0x1acde(%rip), %rdx     # 0x7c666
leaq 0x48(%rsp), %rdi
callq 0xdfa8
movq 0xa0(%rbx), %rdi
leaq 0x48(%rsp), %rsi
callq 0x1861a
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x619b2
callq 0xa2b0
movq 0xa0(%rbx), %rdi
callq 0x18e22
movq 0x88(%r14), %rdi
movq (%r15), %rdx
movq 0x8(%r15), %rax
movq %rdx, 0x28(%rsp)
movq %rax, 0x30(%rsp)
testq %rax, %rax
je 0x619f6
movq 0x385c6(%rip), %rcx     # 0x99fa8
cmpb $0x0, (%rcx)
je 0x61a06
incl 0x8(%rax)
movq %rdx, 0x8(%rsp)
movq %rax, 0x10(%rsp)
jmp 0x61a20
movq %rdx, 0x8(%rsp)
movq $0x0, 0x10(%rsp)
jmp 0x61a2e
lock
incl 0x8(%rax)
movq (%r15), %rdx
movq 0x8(%r15), %rax
movq %rdx, 0x8(%rsp)
movq %rax, 0x10(%rsp)
testq %rax, %rax
je 0x61a2e
cmpb $0x0, (%rcx)
je 0x61a2a
incl 0x8(%rax)
jmp 0x61a2e
lock
incl 0x8(%rax)
movq (%rdi), %rax
leaq 0x28(%rsp), %rsi
leaq 0x8(%rsp), %rdx
movq %rbx, %rcx
callq *0x28(%rax)
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x61a50
callq 0xdce4
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x61a5f
callq 0xdce4
movq 0xa0(%rbx), %rdi
callq 0x18e94
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x61a89
callq 0xdce4
movq 0x30(%rsp), %rdi
jmp 0x61ac0
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x61aca
callq 0xa2b0
jmp 0x61aca
movq %rax, %rbx
jmp 0x61aca
movq %rax, %rbx
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x61abb
callq 0xdce4
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x61aca
callq 0xdce4
movq %rbx, %rdi
callq 0xa510
// File: /workspace/github_cpp_makefile_star2_O3/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 0x64105
cmpq $0x0, 0x88(%r14)
je 0x64105
movq (%rsi), %rax
leaq 0x88(%rsp), %rdi
callq *0x18(%rax)
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x13a1c(%rip), %rdx     # 0x77a4f
leaq 0x28(%rsp), %rdi
movq %rdx, %rsi
callq 0xdfa8
movq 0x88(%r14), %rax
movq 0x28(%rax), %rsi
leaq 0x68(%rsp), %rdi
callq 0x50bd4
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x139e9(%rip), %rdx     # 0x77a4f
leaq 0x8(%rsp), %rdi
movq %rdx, %rsi
callq 0xdfa8
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 0x722ed
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x640bc
callq 0xa2b0
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x640cb
callq 0xa2b0
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x640de
callq 0xa2b0
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x640ed
callq 0xa2b0
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x64122
callq 0xa2b0
jmp 0x64122
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x1871f(%rip), %rsi     # 0x7c832
leaq 0x18732(%rip), %rdx     # 0x7c84c
movq %rbx, %rdi
callq 0xdfa8
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 0x6414f
callq 0xa2b0
jmp 0x6414f
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x64163
callq 0xa2b0
jmp 0x64163
movq %rax, %rbx
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6417b
callq 0xa2b0
jmp 0x6417b
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x6418f
callq 0xa2b0
jmp 0x6418f
movq %rax, %rbx
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x641a5
callq 0xa2b0
movq %rbx, %rdi
callq 0xa510
nop
// File: /workspace/github_cpp_makefile_star2_O3/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, %r12
movq 0x88(%rdi), %r13
movq 0x90(%rdi), %r15
testq %r15, %r15
je 0x64226
movq 0x35d8d(%rip), %rcx     # 0x99fa8
cmpb $0x0, (%rcx)
je 0x6424c
incl 0x8(%r15)
jmp 0x64251
movq 0x78(%r12), %rdi
movq 0x48(%rdi), %rax
cmpq %rax, 0x28(%r13)
je 0x643bb
addq $0x78, %r12
movq %r13, (%rsp)
movq $0x0, 0x8(%rsp)
jmp 0x6428d
lock
incl 0x8(%r15)
movq 0x78(%r12), %rdi
movq 0x48(%rdi), %rax
cmpq %rax, 0x28(%r13)
je 0x64278
addq $0x78, %r12
movq %r13, (%rsp)
movq %r15, 0x8(%rsp)
cmpb $0x0, (%rcx)
je 0x64280
incl 0x8(%r15)
jmp 0x6428d
movq %r15, %r14
jmp 0x64317
lock
incl 0x8(%r15)
movq (%r12), %rdi
movq 0x48(%rdi), %rax
movq %rax, 0x40(%rsp)
movq 0x50(%rdi), %rax
movq %rax, 0x48(%rsp)
testq %rax, %rax
je 0x642b5
movq 0x35d01(%rip), %rcx     # 0x99fa8
cmpb $0x0, (%rcx)
je 0x642b1
incl 0x8(%rax)
jmp 0x642b5
lock
incl 0x8(%rax)
leaq 0x10(%rsp), %rdi
movq %rsp, %rsi
leaq 0x40(%rsp), %rdx
callq 0x6a814
movq 0x10(%rsp), %r13
movq 0x18(%rsp), %r14
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
testq %r15, %r15
je 0x642f5
movq %r15, %rdi
callq 0xdce4
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x642f5
callq 0xdce4
movq 0x48(%rsp), %rdi
testq %rdi, %rdi
je 0x64304
callq 0xdce4
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x64313
callq 0xdce4
movq (%r12), %rdi
leaq 0x36052(%rip), %rax     # 0x9a370
movq (%rax), %rcx
movq 0x8(%rax), %rax
movq %rcx, 0x30(%rsp)
movq %rax, 0x38(%rsp)
testq %rax, %rax
je 0x64349
movq 0x35c6d(%rip), %rcx     # 0x99fa8
cmpb $0x0, (%rcx)
je 0x64345
incl 0x8(%rax)
jmp 0x64349
lock
incl 0x8(%rax)
movq %r13, 0x20(%rsp)
movq %r14, 0x28(%rsp)
testq %r14, %r14
je 0x6436f
movq 0x35c49(%rip), %rax     # 0x99fa8
cmpb $0x0, (%rax)
je 0x6436a
incl 0x8(%r14)
jmp 0x6436f
lock
incl 0x8(%r14)
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 0x64391
callq 0xdce4
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x643a0
callq 0xdce4
testq %r14, %r14
je 0x643ad
movq %r14, %rdi
callq 0xdce4
addq $0x50, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
xorl %r14d, %r14d
jmp 0x64317
movq %rax, %rbx
movq 0x48(%rsp), %rdi
testq %rdi, %rdi
je 0x643d5
callq 0xdce4
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x6440a
callq 0xdce4
jmp 0x6440a
movq %rax, %rbx
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x643f8
callq 0xdce4
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x64407
callq 0xdce4
movq %r14, %r15
testq %r15, %r15
je 0x64417
movq %r15, %rdi
callq 0xdce4
movq %rbx, %rdi
callq 0xa510
nop
// File: /workspace/github_cpp_makefile_star2_O3/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 0x645ad
movq %rsi, %r14
movq 0x88(%rsi), %rsi
testq %rsi, %rsi
je 0x645ad
movq (%rsi), %rax
leaq 0x80(%rsp), %rdi
callq *0x18(%rax)
movq 0x78(%r14), %rax
movq 0x28(%rax), %rsi
leaq 0x60(%rsp), %rdi
callq 0x50bd4
leaq 0x30(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x13556(%rip), %rdx     # 0x77a4f
leaq 0x20(%rsp), %rdi
movq %rdx, %rsi
callq 0xdfa8
movq 0x78(%r14), %rsi
movq (%rsi), %rax
leaq 0x40(%rsp), %rdi
callq *0x18(%rax)
leaq 0x10(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1352a(%rip), %rdx     # 0x77a4f
movq %rsp, %rdi
movq %rdx, %rsi
callq 0xdfa8
leaq 0x80(%rsp), %rsi
leaq 0x60(%rsp), %rdx
leaq 0x20(%rsp), %rcx
leaq 0x40(%rsp), %r8
movq %rsp, %r9
movq %rbx, %rdi
callq 0x722ed
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x64560
callq 0xa2b0
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x64573
callq 0xa2b0
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x64582
callq 0xa2b0
leaq 0x70(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x64595
callq 0xa2b0
leaq 0x90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x645ca
callq 0xa2b0
jmp 0x645ca
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x18277(%rip), %rsi     # 0x7c832
leaq 0x1828a(%rip), %rdx     # 0x7c84c
movq %rbx, %rdi
callq 0xdfa8
movq %rbx, %rax
addq $0xa0, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x645f0
callq 0xa2b0
jmp 0x645f0
movq %rax, %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x64608
callq 0xa2b0
jmp 0x64608
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x6461c
callq 0xa2b0
jmp 0x6461c
movq %rax, %rbx
leaq 0x70(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x64634
callq 0xa2b0
jmp 0x64634
movq %rax, %rbx
leaq 0x90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6464a
callq 0xa2b0
movq %rbx, %rdi
callq 0xa510
// File: /workspace/github_cpp_makefile_star2_O3/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 %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rcx, %r14
movq %rdi, %r15
movq 0x78(%rdi), %rcx
movq 0x80(%rdi), %rbx
testq %rbx, %rbx
je 0x646c7
movq 0x358eb(%rip), %rdx     # 0x99fa8
cmpb $0x0, (%rdx)
je 0x646f3
incl 0x8(%rbx)
jmp 0x646f7
movq 0x88(%r15), %rdi
movq 0x38(%rdi), %rax
cmpq %rax, 0x28(%rcx)
je 0x647f1
addq $0x88, %r15
movq %rcx, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
jmp 0x6473c
lock
incl 0x8(%rbx)
movq 0x88(%r15), %rdi
movq 0x38(%rdi), %rax
cmpq %rax, 0x28(%rcx)
je 0x64723
addq $0x88, %r15
movq %rcx, 0x10(%rsp)
movq %rbx, 0x18(%rsp)
cmpb $0x0, (%rdx)
je 0x64731
incl 0x8(%rbx)
jmp 0x6473c
movq %rcx, (%rsp)
movq %rbx, 0x8(%rsp)
jmp 0x647d8
lock
incl 0x8(%rbx)
movq (%r15), %rdi
movq 0x38(%rdi), %rax
movq %rax, 0x48(%rsp)
movq 0x40(%rdi), %rax
movq %rax, 0x50(%rsp)
testq %rax, %rax
je 0x64764
movq 0x35852(%rip), %rcx     # 0x99fa8
cmpb $0x0, (%rcx)
je 0x64760
incl 0x8(%rax)
jmp 0x64764
lock
incl 0x8(%rax)
leaq 0x20(%rsp), %rdi
leaq 0x10(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0x6a814
movq 0x20(%rsp), %r13
movq 0x28(%rsp), %r12
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
testq %rbx, %rbx
je 0x647a6
movq %rbx, %rdi
callq 0xdce4
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x647a6
callq 0xdce4
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x647b5
callq 0xdce4
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x647c4
callq 0xdce4
movq (%r15), %rdi
movq %r13, (%rsp)
movq %r12, 0x8(%rsp)
testq %r12, %r12
je 0x647fe
movq %r12, %rbx
movq 0x357c9(%rip), %rax     # 0x99fa8
cmpb $0x0, (%rax)
je 0x647e9
incl 0x8(%rbx)
jmp 0x647ed
lock
incl 0x8(%rbx)
xorl %ebp, %ebp
jmp 0x64803
movq %rcx, (%rsp)
movq $0x0, 0x8(%rsp)
movb $0x1, %bpl
xorl %ebx, %ebx
leaq 0x35b66(%rip), %rax     # 0x9a370
movq (%rax), %rcx
movq 0x8(%rax), %rax
movq %rcx, 0x38(%rsp)
movq %rax, 0x40(%rsp)
testq %rax, %rax
je 0x64835
movq 0x35781(%rip), %rcx     # 0x99fa8
cmpb $0x0, (%rcx)
je 0x64831
incl 0x8(%rax)
jmp 0x64835
lock
incl 0x8(%rax)
movq (%rdi), %rax
movq %rsp, %rsi
leaq 0x38(%rsp), %rdx
movq %r14, %rcx
callq *0x28(%rax)
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x64855
callq 0xdce4
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x64864
callq 0xdce4
testb %bpl, %bpl
jne 0x64871
movq %rbx, %rdi
callq 0xdce4
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x64892
callq 0xdce4
movq 0x18(%rsp), %rdi
jmp 0x648b0
movq %rax, %r14
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x648ab
callq 0xdce4
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x648ba
callq 0xdce4
testq %rbx, %rbx
je 0x648c7
movq %rbx, %rdi
callq 0xdce4
movq %r14, %rdi
callq 0xa510
nop
// File: /workspace/github_cpp_makefile_star2_O3/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 0x64a89
movq %rsi, %r14
movq 0x78(%rsi), %rsi
testq %rsi, %rsi
je 0x64a89
cmpq $0x0, 0x98(%r14)
je 0x64a89
movq (%rsi), %rax
leaq 0x88(%rsp), %rdi
callq *0x18(%rax)
movq 0x88(%r14), %rax
movq 0x28(%rax), %rsi
leaq 0x68(%rsp), %rdi
callq 0x50bd4
movq 0x98(%r14), %rax
movq 0x28(%rax), %rsi
leaq 0x48(%rsp), %rdi
callq 0x50bd4
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 0x722ed
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x64a38
callq 0xa2b0
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x64a4b
callq 0xa2b0
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x64a5e
callq 0xa2b0
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x64a71
callq 0xa2b0
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x64aa6
callq 0xa2b0
jmp 0x64aa6
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x17d9b(%rip), %rsi     # 0x7c832
leaq 0x17dae(%rip), %rdx     # 0x7c84c
movq %rbx, %rdi
callq 0xdfa8
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 0x64acf
callq 0xa2b0
jmp 0x64acf
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x64ae7
callq 0xa2b0
jmp 0x64ae7
movq %rax, %rbx
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x64aff
callq 0xa2b0
jmp 0x64aff
movq %rax, %rbx
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x64b17
callq 0xa2b0
jmp 0x64b17
movq %rax, %rbx
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x64b2d
callq 0xa2b0
movq %rbx, %rdi
callq 0xa510
nop
// File: /workspace/github_cpp_makefile_star2_O3/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 0x1673a(%rip), %rsi     # 0x7c9f5
leaq 0x8(%rsp), %r14
movq %r14, %rdi
callq 0xdc11
movq %rbx, %rdi
movq %r14, %rsi
callq 0x714ab
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x662e6
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 0x66307
callq 0xa2b0
movq %rbx, %rdi
callq 0xa510
nop
// File: /workspace/github_cpp_makefile_star2_O3/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 0x66336
movq %rbx, %rdi
callq 0x66892
leaq 0x3409b(%rip), %rbp     # 0x9a3d8
movq (%rbp), %rax
movq %rax, (%rsp)
movq 0x78(%rbx), %r13
movq 0x18(%r13), %rdi
callq 0xa3a0
movq %rax, (%rbp)
testq %r15, %r15
je 0x66381
movq %rax, %r12
movq %r13, %rdi
callq 0x538de
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 0x663ae
movq (%rbp), %r15
movq 0x78(%rbx), %rdi
callq 0x53984
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_O3/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 0x67b2c
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_O3/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 0x15042(%rip), %rsi     # 0x7cb9f
leaq 0x1503e(%rip), %rdx     # 0x7cba2
leaq 0x40(%rsp), %rdi
callq 0xdfa8
movq 0xa0(%rbx), %rdi
leaq 0x40(%rsp), %rsi
callq 0x1861a
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x67b8e
callq 0xa2b0
movq 0xa0(%rbx), %rdi
callq 0x18e22
movq 0x78(%r14), %rdi
leaq 0x327cb(%rip), %r15     # 0x9a370
movq (%r15), %rdx
movq 0x8(%r15), %rax
movq %rdx, 0x30(%rsp)
movq %rax, 0x38(%rsp)
testq %rax, %rax
je 0x67bd6
movq 0x323e6(%rip), %rcx     # 0x99fa8
cmpb $0x0, (%rcx)
je 0x67be6
incl 0x8(%rax)
movq %rdx, 0x10(%rsp)
movq %rax, 0x18(%rsp)
jmp 0x67c00
movq %rdx, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
jmp 0x67c0e
lock
incl 0x8(%rax)
movq (%r15), %rdx
movq 0x8(%r15), %rax
movq %rdx, 0x10(%rsp)
movq %rax, 0x18(%rsp)
testq %rax, %rax
je 0x67c0e
cmpb $0x0, (%rcx)
je 0x67c0a
incl 0x8(%rax)
jmp 0x67c0e
lock
incl 0x8(%rax)
movq (%rdi), %rax
leaq 0x30(%rsp), %rsi
leaq 0x10(%rsp), %rdx
movq %rbx, %rcx
callq *0x28(%rax)
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x67c30
callq 0xdce4
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x67c3f
callq 0xdce4
movq 0xa0(%rbx), %rdi
callq 0x18e94
movq 0xa0(%rbx), %rdi
callq 0x18faa
movq 0x88(%r14), %rdi
movq (%r15), %rdx
movq 0x8(%r15), %rax
movq %rdx, 0x20(%rsp)
movq %rax, 0x28(%rsp)
testq %rax, %rax
je 0x67c8e
movq 0x3232d(%rip), %rcx     # 0x99fa8
cmpb $0x0, (%rcx)
je 0x67c9d
incl 0x8(%rax)
movq %rdx, (%rsp)
movq %rax, 0x8(%rsp)
jmp 0x67cb6
movq %rdx, (%rsp)
movq $0x0, 0x8(%rsp)
jmp 0x67cc4
lock
incl 0x8(%rax)
movq (%r15), %rdx
movq 0x8(%r15), %rax
movq %rdx, (%rsp)
movq %rax, 0x8(%rsp)
testq %rax, %rax
je 0x67cc4
cmpb $0x0, (%rcx)
je 0x67cc0
incl 0x8(%rax)
jmp 0x67cc4
lock
incl 0x8(%rax)
movq (%rdi), %rax
leaq 0x20(%rsp), %rsi
movq %rsp, %rdx
movq %rbx, %rcx
callq *0x28(%rax)
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x67ce4
callq 0xdce4
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x67cf3
callq 0xdce4
movq 0xa0(%rbx), %rdi
callq 0x18918
movq 0xa0(%rbx), %rdi
callq 0x19110
addq $0x60, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x67d27
callq 0xdce4
movq 0x28(%rsp), %rdi
jmp 0x67d45
movq %rax, %rbx
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x67d40
callq 0xdce4
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x67d68
callq 0xdce4
jmp 0x67d68
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x67d68
callq 0xa2b0
jmp 0x67d68
movq %rax, %rbx
movq %rbx, %rdi
callq 0xa510
// File: /workspace/github_cpp_makefile_star2_O3/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 0x6813f
movq %r14, %rdi
callq 0xa350
xorl %r14d, %r14d
movq %r14, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_cpp_makefile_star2_O3/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
sarq $0x4, %rcx
cmpq $0x1, %rcx
je 0x68a30
testq %rcx, %rcx
jne 0x68a39
movq 0x8(%r14), %rax
cmpq (%r14), %rax
jne 0x68a39
leaq 0x31942(%rip), %rax     # 0x9a370
jmp 0x68a75
movq 0x8(%r14), %rcx
cmpq (%r14), %rcx
je 0x68a75
movl $0xa8, %edi
callq 0xa2d0
movq %rax, %r12
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x68f92
movq %r12, (%rbx)
movq %rbx, %rdi
addq $0x8, %rdi
movq %r12, %rsi
callq 0x69860
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq (%rax), %rcx
movq %rcx, (%rbx)
movq 0x8(%rax), %rax
movq %rax, 0x8(%rbx)
testq %rax, %rax
je 0x68a66
movq 0x31519(%rip), %rcx     # 0x99fa8
cmpb $0x0, (%rcx)
je 0x68a99
incl 0x8(%rax)
jmp 0x68a66
lock
incl 0x8(%rax)
jmp 0x68a66
movq %rax, %rbx
movq %r12, %rdi
callq 0xa2b0
movq %rbx, %rdi
callq 0xa510
// File: /workspace/github_cpp_makefile_star2_O3/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 0x6963b
movq %rsi, %r14
leaq 0x58(%rsp), %r12
leaq 0x28(%rsp), %r13
leaq 0x48(%rsp), %rbp
movq %rsp, %rbx
movq (%r15), %rsi
testq %rsi, %rsi
je 0x695e5
movq (%rsi), %rax
movq %rbp, %rdi
callq *0x18(%rax)
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x17280
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x695d6
callq 0xa2b0
addq $0x10, %r15
cmpq 0x80(%r14), %r15
jne 0x695ab
jmp 0x6963b
leaq 0x38(%rsp), %rax
movq %rax, 0x28(%rsp)
movq %r13, %rdi
leaq 0x13785(%rip), %rsi     # 0x7cd7e
leaq 0x1378b(%rip), %rdx     # 0x7cd8b
callq 0xdfa8
movq %rbp, %rdi
movq %r13, %rsi
callq 0x714ab
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x17280
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x6962a
callq 0xa2b0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
jne 0x695d1
jmp 0x695d6
movq %rsp, %rsi
movq 0x20(%rsp), %rbx
movq %rbx, %rdi
callq 0x7158b
movq %rsp, %rdi
callq 0x14adc
movq %rbx, %rax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x69691
movq %rax, %rbx
jmp 0x69680
jmp 0x69691
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x69680
callq 0xa2b0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
jne 0x696a3
jmp 0x696a8
movq %rax, %rbx
jmp 0x696a8
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x696a8
callq 0xa2b0
movq %rsp, %rdi
callq 0x14adc
movq %rbx, %rdi
callq 0xa510
// File: /workspace/github_cpp_makefile_star2_O3/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 0x696fa
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 0x696cf
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 0x6976a
movq 0x30884(%rip), %r13     # 0x99fa8
movq (%r15), %rdi
movq 0x8(%r15), %r14
testq %r14, %r14
je 0x69742
cmpb $0x0, (%r13)
je 0x6973d
incl 0x8(%r14)
jmp 0x69742
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 0x69761
movq %r14, %rdi
callq 0xdce4
addq $0x10, %r15
cmpq %r12, %r15
jne 0x69724
movq %rbx, %rax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq %rax, %rbx
testq %r14, %r14
je 0x69787
movq %r14, %rdi
callq 0xdce4
movq %rbx, %rdi
callq 0xa510
nop
// File: /workspace/github_cpp_makefile_star2_O3/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 0x6a332
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 0x6a2e5
movq %rax, %rdi
callq 0xa350
xorl %eax, %eax
popq %rbx
retq
// File: /workspace/github_cpp_makefile_star2_O3/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 0x12b54(%rip), %rsi     # 0x7ceb4
leaq 0x12b53(%rip), %rdx     # 0x7ceba
leaq 0x8(%rsp), %r15
movq %r15, %rdi
callq 0xdfa8
movq 0xa0(%rbx), %rdi
movq %r15, %rsi
callq 0x1861a
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x6a392
callq 0xa2b0
movq 0xa0(%rbx), %rdi
callq 0x18e22
movq 0x78(%r14), %rdi
movq %rbx, %rsi
callq 0x4ff7c
movq 0xa0(%rbx), %rdi
callq 0x18e94
movq 0xa0(%rbx), %rdi
callq 0x18faa
movq 0x88(%r14), %rdi
movq %rbx, %rsi
callq 0x4ff7c
movq 0xa0(%rbx), %rdi
callq 0x18918
movq 0x98(%r14), %rdi
leaq 0x2ff85(%rip), %rax     # 0x9a370
cmpq (%rax), %rdi
je 0x6a404
movq %rbx, %rsi
callq 0x4ff7c
movq 0xa0(%rbx), %rdi
callq 0x18918
movq 0xa0(%rbx), %rdi
callq 0x19110
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x6a42e
callq 0xa2b0
movq %rbx, %rdi
callq 0xa510
// File: /workspace/github_cpp_makefile_star2_O3/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 0x50bd4
leaq 0x11982(%rip), %rcx     # 0x7cfbc
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 0x6b673
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x6b67a
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 0x714ab
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x6b6ad
callq 0xa2b0
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6b6c0
callq 0xa2b0
movq %rbx, %rax
addq $0x48, %rsp
popq %rbx
popq %r14
retq
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x6b6e2
callq 0xa2b0
jmp 0x6b6e2
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6b6f5
callq 0xa2b0
movq %rbx, %rdi
callq 0xa510
nop
// File: /workspace/github_cpp_makefile_star2_O3/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 0x6b7d8
movq (%rax), %rdi
movq %rbx, %rsi
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x4ff7c
movq %rdi, %r14
movq 0x28(%rdi), %rax
movq %rax, 0x28(%rsp)
movq 0x30(%rdi), %rax
movq %rax, 0x30(%rsp)
testq %rax, %rax
je 0x6b807
movq 0x2e7af(%rip), %rcx     # 0x99fa8
cmpb $0x0, (%rcx)
je 0x6b803
incl 0x8(%rax)
jmp 0x6b807
lock
incl 0x8(%rax)
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rdx
movq %rbx, %rsi
callq 0x1aab2
movq 0xa0(%rbx), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1861a
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6b83d
callq 0xa2b0
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x6b84c
callq 0xdce4
movq 0xa0(%rbx), %rdi
callq 0x18e22
movq 0x78(%r14), %r12
movq 0x80(%r14), %r15
cmpq %r15, %r12
je 0x6b906
movb $0x1, %al
leaq 0x8(%rsp), %r13
movq (%r12), %rbp
movq 0x8(%r12), %r14
testq %r14, %r14
je 0x6b898
movq 0x2e720(%rip), %rcx     # 0x99fa8
cmpb $0x0, (%rcx)
je 0x6b893
incl 0x8(%r14)
jmp 0x6b898
lock
incl 0x8(%r14)
testb $0x1, %al
jne 0x6b8df
leaq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq %r13, %rdi
leaq 0xee05(%rip), %rsi      # 0x7a6b5
leaq 0xee00(%rip), %rdx      # 0x7a6b7
callq 0xdfa8
movq 0xa0(%rbx), %rdi
movq %r13, %rsi
callq 0x1861a
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x6b8df
callq 0xa2b0
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x4ff7c
testq %r14, %r14
je 0x6b8f7
movq %r14, %rdi
callq 0xdce4
addq $0x10, %r12
xorl %eax, %eax
cmpq %r15, %r12
jne 0x6b873
movq 0xa0(%rbx), %rdi
callq 0x18e94
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 0x6b93c
callq 0xa2b0
jmp 0x6b93c
movq %rax, %rbx
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
jne 0x6b96e
jmp 0x6b973
jmp 0x6b963
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x6b966
callq 0xa2b0
jmp 0x6b966
movq %rax, %rbx
testq %r14, %r14
je 0x6b973
movq %r14, %rdi
callq 0xdce4
movq %rbx, %rdi
callq 0xa510
nop