// File: /workspace/github_cpp_makefile_star2_O1/menhits[P]phplus/src/Actions/IfAction.cpp
// Function: IfElseAction::addToProg(std::shared_ptr<ActionData>, std::shared_ptr<ActionData>, CppProgram*)
void addToProg(Action inLeft, Action inRight, CppProgram* prog)
	{
		if (returnVal && prog->getExprLevel()>0)
		{
			prog->pushExpr();
				condition->addToProg(voidAction, voidAction, prog);
			prog->popExpr();
			prog->code(" ? ");
			prog->pushExpr();
				ifAction->addToProg(voidAction, voidAction, prog);
			prog->popExpr();
			prog->code(" : ");
			prog->pushExpr();
				elseAction->addToProg(voidAction, voidAction, prog);
			prog->popExpr();
		}
		else
		{
			prog->code("if ");
			prog->pushExpr();
				condition->addToProg(voidAction, voidAction, prog);
			prog->popExpr();
			prog->pushBlock();
				ifAction->addToProg(voidAction, voidAction, prog);
				prog->endln();
			prog->popBlock();
			prog->code("else");
			prog->pushBlock();
				elseAction->addToProg(voidAction, voidAction, prog);
				prog->endln();
			prog->popBlock();
		}
	}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0xe8, %rsp
movq %rcx, %rbx
movq %rdi, %r14
cmpb $0x1, 0xa8(%rdi)
jne 0x67310
movq 0xa0(%rbx), %rdi
cmpl $0x0, 0x28(%rdi)
jle 0x67310
callq 0x18b54
movq 0x78(%r14), %rdi
leaq 0x32098(%rip), %r15     # 0x99370
movq (%r15), %rcx
movq 0x8(%r15), %rax
movq %rcx, 0xd8(%rsp)
movq %rax, 0xe0(%rsp)
testq %rax, %rax
je 0x675b5
movq 0x31ca9(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x675b1
incl 0x8(%rax)
jmp 0x675b5
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x148bf(%rip), %rsi     # 0x7bbdf
leaq 0x148bb(%rip), %rdx     # 0x7bbe2
leaq 0x8(%rsp), %rdi
callq 0xdf6a
movq 0xa0(%rbx), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1834e
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x67351
callq 0xa2b0
movq 0xa0(%rbx), %rdi
callq 0x18b54
movq 0x78(%r14), %rdi
leaq 0x32008(%rip), %r12     # 0x99370
movq (%r12), %rcx
movq 0x8(%r12), %rax
movq %rcx, 0x78(%rsp)
movq %rax, 0x80(%rsp)
testq %rax, %rax
je 0x67398
movq 0x31c1e(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x67394
incl 0x8(%rax)
jmp 0x67398
lock
incl 0x8(%rax)
movq (%r12), %rcx
movq 0x8(%r12), %rax
movq %rcx, 0x68(%rsp)
movq %rax, 0x70(%rsp)
testq %rax, %rax
je 0x673c5
movq 0x31bf1(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x673c1
incl 0x8(%rax)
jmp 0x673c5
lock
incl 0x8(%rax)
movq (%rdi), %rax
leaq 0x78(%rsp), %rsi
leaq 0x68(%rsp), %rdx
movq %rbx, %rcx
callq *0x28(%rax)
movq 0x70(%rsp), %rdi
testq %rdi, %rdi
je 0x673e7
callq 0xdcba
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x673f9
callq 0xdcba
movq 0xa0(%rbx), %rdi
callq 0x18bc6
movq 0xa0(%rbx), %rdi
callq 0x18ce0
movq 0x88(%r14), %rdi
movq (%r12), %rcx
movq 0x8(%r12), %rax
movq %rcx, 0x58(%rsp)
movq %rax, 0x60(%rsp)
testq %rax, %rax
je 0x67445
movq 0x31b71(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x67441
incl 0x8(%rax)
jmp 0x67445
lock
incl 0x8(%rax)
movq (%r12), %rcx
movq 0x8(%r12), %rax
movq %rcx, 0x48(%rsp)
movq %rax, 0x50(%rsp)
testq %rax, %rax
je 0x67472
movq 0x31b44(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x6746e
incl 0x8(%rax)
jmp 0x67472
lock
incl 0x8(%rax)
movq (%rdi), %rax
leaq 0x58(%rsp), %rsi
leaq 0x48(%rsp), %rdx
movq %rbx, %rcx
callq *0x28(%rax)
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x67494
callq 0xdcba
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x674a3
callq 0xdcba
movq 0xa0(%rbx), %rdi
callq 0x18652
movq 0xa0(%rbx), %rdi
callq 0x18e48
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0xf774(%rip), %rsi      # 0x76c3e
leaq 0xf771(%rip), %rdx      # 0x76c42
callq 0xdf6a
movq 0xa0(%rbx), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1834e
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x674f6
callq 0xa2b0
movq 0xa0(%rbx), %rdi
callq 0x18ce0
movq 0x98(%r14), %rdi
movq (%r12), %rcx
movq 0x8(%r12), %rax
movq %rcx, 0x38(%rsp)
movq %rax, 0x40(%rsp)
testq %rax, %rax
je 0x67536
movq 0x31a80(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x67532
incl 0x8(%rax)
jmp 0x67536
lock
incl 0x8(%rax)
movq (%r12), %rcx
movq 0x8(%r12), %rax
movq %rcx, 0x28(%rsp)
movq %rax, 0x30(%rsp)
testq %rax, %rax
je 0x67563
movq 0x31a53(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x6755f
incl 0x8(%rax)
jmp 0x67563
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 0x67585
callq 0xdcba
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x67594
callq 0xdcba
movq 0xa0(%rbx), %rdi
callq 0x18652
movq 0xa0(%rbx), %rdi
callq 0x18e48
jmp 0x67828
lock
incl 0x8(%rax)
movq (%r15), %rcx
movq 0x8(%r15), %rax
movq %rcx, 0xc8(%rsp)
movq %rax, 0xd0(%rsp)
testq %rax, %rax
je 0x675e6
movq 0x319d0(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x675e2
incl 0x8(%rax)
jmp 0x675e6
lock
incl 0x8(%rax)
movq (%rdi), %rax
leaq 0xd8(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
movq %rbx, %rcx
callq *0x28(%rax)
movq 0xd0(%rsp), %rdi
testq %rdi, %rdi
je 0x67611
callq 0xdcba
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
je 0x67623
callq 0xdcba
movq 0xa0(%rbx), %rdi
callq 0x18bc6
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x1469f(%rip), %rsi     # 0x7bcdf
leaq 0x1469b(%rip), %rdx     # 0x7bce2
leaq 0x8(%rsp), %rdi
callq 0xdf6a
movq 0xa0(%rbx), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1834e
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x67671
callq 0xa2b0
movq 0xa0(%rbx), %rdi
callq 0x18b54
movq 0x88(%r14), %rdi
movq (%r15), %rcx
movq 0x8(%r15), %rax
movq %rcx, 0xb8(%rsp)
movq %rax, 0xc0(%rsp)
testq %rax, %rax
je 0x676b5
movq 0x31901(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x676b1
incl 0x8(%rax)
jmp 0x676b5
lock
incl 0x8(%rax)
movq (%r15), %rcx
movq 0x8(%r15), %rax
movq %rcx, 0xa8(%rsp)
movq %rax, 0xb0(%rsp)
testq %rax, %rax
je 0x676e6
movq 0x318d0(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x676e2
incl 0x8(%rax)
jmp 0x676e6
lock
incl 0x8(%rax)
movq (%rdi), %rax
leaq 0xb8(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
movq %rbx, %rcx
callq *0x28(%rax)
movq 0xb0(%rsp), %rdi
testq %rdi, %rdi
je 0x67711
callq 0xdcba
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0x67723
callq 0xdcba
movq 0xa0(%rbx), %rdi
callq 0x18bc6
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x145a5(%rip), %rsi     # 0x7bce3
leaq 0x145a1(%rip), %rdx     # 0x7bce6
callq 0xdf6a
movq 0xa0(%rbx), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1834e
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x6776a
callq 0xa2b0
movq 0xa0(%rbx), %rdi
callq 0x18b54
movq 0x98(%r14), %rdi
movq (%r15), %rcx
movq 0x8(%r15), %rax
movq %rcx, 0x98(%rsp)
movq %rax, 0xa0(%rsp)
testq %rax, %rax
je 0x677ae
movq 0x31808(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x677aa
incl 0x8(%rax)
jmp 0x677ae
lock
incl 0x8(%rax)
movq (%r15), %rcx
movq 0x8(%r15), %rax
movq %rcx, 0x88(%rsp)
movq %rax, 0x90(%rsp)
testq %rax, %rax
je 0x677df
movq 0x317d7(%rip), %rcx     # 0x98fa8
cmpb $0x0, (%rcx)
je 0x677db
incl 0x8(%rax)
jmp 0x677df
lock
incl 0x8(%rax)
movq (%rdi), %rax
leaq 0x98(%rsp), %rsi
leaq 0x88(%rsp), %rdx
movq %rbx, %rcx
callq *0x28(%rax)
movq 0x90(%rsp), %rdi
testq %rdi, %rdi
je 0x6780a
callq 0xdcba
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x6781c
callq 0xdcba
movq 0xa0(%rbx), %rdi
callq 0x18bc6
addq $0xe8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x90(%rsp), %rdi
testq %rdi, %rdi
je 0x6784c
callq 0xdcba
movq 0xa0(%rsp), %rdi
jmp 0x6790c
jmp 0x67882
jmp 0x6792c
movq %rax, %rbx
movq 0xb0(%rsp), %rdi
testq %rdi, %rdi
je 0x67875
callq 0xdcba
movq 0xc0(%rsp), %rdi
jmp 0x6790c
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
jne 0x67925
jmp 0x6792f
jmp 0x6792c
movq %rax, %rbx
movq 0xd0(%rsp), %rdi
testq %rdi, %rdi
je 0x678b2
callq 0xdcba
movq 0xe0(%rsp), %rdi
jmp 0x6790c
movq %rax, %rbx
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x678ce
callq 0xdcba
movq 0x40(%rsp), %rdi
jmp 0x6790c
jmp 0x67918
jmp 0x6792c
movq %rax, %rbx
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x678eb
callq 0xdcba
movq 0x60(%rsp), %rdi
jmp 0x6790c
movq %rax, %rbx
movq 0x70(%rsp), %rdi
testq %rdi, %rdi
je 0x67904
callq 0xdcba
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x6792f
callq 0xdcba
jmp 0x6792f
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x6792f
callq 0xa2b0
jmp 0x6792f
movq %rax, %rbx
movq %rbx, %rdi
callq 0xa510
nop