// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/BranchAction.cpp
// Function: BranchAction::addToProg(std::shared_ptr<ActionData>, std::shared_ptr<ActionData>, CppProgram*)
void addToProg(Action inLeft, Action inRight, CppProgram* prog)
	{
		Action leftInTmp = leftInput;
		Action rightInTmp = rightInput;
		
		if (leftInTmp->getReturnType()!=action->getInLeftType())
			leftInTmp=cppTupleCastAction(leftInTmp, action->getInLeftType());
		
		if (rightInTmp->getReturnType()!=action->getInRightType())
			rightInTmp=cppTupleCastAction(rightInTmp, action->getInRightType());
		
		action->addToProg(leftInTmp, rightInTmp, prog);
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
movq %rcx, %rbp
movq %rdi, %r12
movq 0x88(%rdi), %rbx
movq 0x90(%rdi), %r13
testq %r13, %r13
je 0x63d6b
movq 0x3524d(%rip), %rax     # 0x98fa8
cmpb $0x0, (%rax)
je 0x63d66
incl 0x8(%r13)
jmp 0x63d6b
lock
incl 0x8(%r13)
movq 0x98(%r12), %r14
movq 0xa0(%r12), %r15
testq %r15, %r15
je 0x63d97
movq 0x35221(%rip), %rax     # 0x98fa8
cmpb $0x0, (%rax)
je 0x63d92
incl 0x8(%r15)
jmp 0x63d97
lock
incl 0x8(%r15)
movq 0x78(%r12), %rax
movq 0x28(%rbx), %rcx
cmpq 0x38(%rax), %rcx
je 0x63dca
movq %rbx, 0x78(%rsp)
movq %r13, 0x80(%rsp)
testq %r13, %r13
je 0x63dd9
movq 0x351e9(%rip), %rax     # 0x98fa8
cmpb $0x0, (%rax)
je 0x63dd4
incl 0x8(%r13)
jmp 0x63dd9
movq %r13, 0x8(%rsp)
jmp 0x63e72
lock
incl 0x8(%r13)
movq 0x78(%r12), %rax
movq 0x38(%rax), %rcx
movq %rcx, 0x68(%rsp)
movq 0x40(%rax), %rax
movq %rax, 0x70(%rsp)
testq %rax, %rax
je 0x63e0a
movq 0x351ac(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x63e06
incl 0x8(%rax)
jmp 0x63e0a
lock
incl 0x8(%rax)
leaq 0x10(%rsp), %rdi
leaq 0x78(%rsp), %rsi
leaq 0x68(%rsp), %rdx
callq 0x69908
movq 0x10(%rsp), %rbx
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
testq %r13, %r13
je 0x63e42
movq %r13, %rdi
callq 0xdcba
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x63e51
callq 0xdcba
movq 0x70(%rsp), %rdi
testq %rdi, %rdi
je 0x63e60
callq 0xdcba
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x63e72
callq 0xdcba
movq 0x78(%r12), %rax
movq 0x28(%r14), %rcx
cmpq 0x48(%rax), %rcx
je 0x63ea2
movq %r14, 0x58(%rsp)
movq %r15, 0x60(%rsp)
testq %r15, %r15
je 0x63eb7
movq 0x35111(%rip), %rax     # 0x98fa8
cmpb $0x0, (%rax)
je 0x63eb2
incl 0x8(%r15)
jmp 0x63eb7
movq %rbp, %r13
movq %r15, %rbp
movq 0x8(%rsp), %r15
jmp 0x63f50
lock
incl 0x8(%r15)
movq 0x78(%r12), %rax
movq 0x48(%rax), %rcx
movq %rcx, 0x48(%rsp)
movq 0x50(%rax), %rax
movq %rax, 0x50(%rsp)
testq %rax, %rax
je 0x63ee8
movq 0x350ce(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x63ee4
incl 0x8(%rax)
jmp 0x63ee8
lock
incl 0x8(%rax)
movq %rbp, %r13
leaq 0x10(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0x69908
movq 0x10(%rsp), %r14
movq 0x18(%rsp), %rbp
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
testq %r15, %r15
je 0x63f1e
movq %r15, %rdi
callq 0xdcba
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x63f2d
callq 0xdcba
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
movq 0x8(%rsp), %r15
je 0x63f41
callq 0xdcba
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x63f50
callq 0xdcba
movq 0x78(%r12), %rdi
movq %rbx, 0x38(%rsp)
movq %r15, 0x40(%rsp)
testq %r15, %r15
je 0x63f7b
movq 0x3503d(%rip), %rax     # 0x98fa8
cmpb $0x0, (%rax)
je 0x63f76
incl 0x8(%r15)
jmp 0x63f7b
lock
incl 0x8(%r15)
movq %r14, 0x28(%rsp)
movq %rbp, 0x30(%rsp)
testq %rbp, %rbp
je 0x63f9f
movq 0x35017(%rip), %rax     # 0x98fa8
cmpb $0x0, (%rax)
je 0x63f9b
incl 0x8(%rbp)
jmp 0x63f9f
lock
incl 0x8(%rbp)
movq (%rdi), %rax
leaq 0x38(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %r13, %rcx
callq *0x28(%rax)
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x63fc1
callq 0xdcba
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x63fd0
callq 0xdcba
testq %rbp, %rbp
je 0x63fdd
movq %rbp, %rdi
callq 0xdcba
testq %r15, %r15
je 0x63fea
movq %r15, %rdi
callq 0xdcba
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x6400e
callq 0xdcba
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x6401d
callq 0xdcba
movq 0x8(%rsp), %r13
jmp 0x64073
movq %rax, %rbx
movq 0x70(%rsp), %rdi
testq %rdi, %rdi
je 0x64036
callq 0xdcba
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x64073
callq 0xdcba
jmp 0x64073
movq %rax, %rbx
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x6405c
callq 0xdcba
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x6406b
callq 0xdcba
movq 0x8(%rsp), %r13
movq %rbp, %r15
testq %r15, %r15
je 0x64080
movq %r15, %rdi
callq 0xdcba
testq %r13, %r13
je 0x6408d
movq %r13, %rdi
callq 0xdcba
movq %rbx, %rdi
callq 0xa510
nop