// File: 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:
subq $0x298, %rsp            # imm = 0x298
movq %rdi, 0x290(%rsp)
movq %rsi, 0x288(%rsp)
movq %rdx, 0x280(%rsp)
movq %rcx, 0x278(%rsp)
movq 0x290(%rsp), %rax
movq %rax, 0x100(%rsp)
testb $0x1, 0xa8(%rax)
je 0xbbd43
movq 0x278(%rsp), %rdi
callq 0xb1820
cmpl $0x0, %eax
jle 0xbbd43
movq 0x278(%rsp), %rdi
callq 0x97930
movq 0x100(%rsp), %rdi
addq $0x78, %rdi
callq 0x1bb50
movq %rax, 0xe8(%rsp)
leaq 0x5caf1(%rip), %rsi     # 0x118418
movq %rsi, 0xe0(%rsp)
leaq 0x268(%rsp), %rdi
movq %rdi, 0xf0(%rsp)
callq 0x1ac60
movq 0xe0(%rsp), %rsi
leaq 0x258(%rsp), %rdi
movq %rdi, 0xf8(%rsp)
callq 0x1ac60
movq 0xe8(%rsp), %rdi
movq 0xf0(%rsp), %rsi
movq 0xf8(%rsp), %rdx
movq 0x278(%rsp), %rcx
movq (%rdi), %rax
movq 0x28(%rax), %rax
callq *%rax
jmp 0xbb98c
leaq 0x258(%rsp), %rdi
callq 0x1acc0
leaq 0x268(%rsp), %rdi
callq 0x1acc0
movq 0x278(%rsp), %rdi
callq 0x97a00
movq 0x278(%rsp), %rax
movq %rax, 0xd0(%rsp)
leaq 0x227(%rsp), %rdi
movq %rdi, 0xd8(%rsp)
callq 0xb690
movq 0xd8(%rsp), %rdx
leaq 0x1bae8(%rip), %rsi     # 0xd74cf
leaq 0x228(%rsp), %rdi
callq 0xb4c0
jmp 0xbb9f6
movq 0xd0(%rsp), %rdi
leaq 0x228(%rsp), %rsi
callq 0x96750
jmp 0xbba0d
leaq 0x228(%rsp), %rdi
callq 0xb6e8
leaq 0x227(%rsp), %rdi
callq 0xb3f0
movq 0x278(%rsp), %rdi
callq 0x97930
movq 0x100(%rsp), %rdi
addq $0x88, %rdi
callq 0x1bb50
movq %rax, 0xb8(%rsp)
leaq 0x5c9c1(%rip), %rsi     # 0x118418
movq %rsi, 0xb0(%rsp)
leaq 0x210(%rsp), %rdi
movq %rdi, 0xc0(%rsp)
callq 0x1ac60
movq 0xb0(%rsp), %rsi
leaq 0x200(%rsp), %rdi
movq %rdi, 0xc8(%rsp)
callq 0x1ac60
movq 0xb8(%rsp), %rdi
movq 0xc0(%rsp), %rsi
movq 0xc8(%rsp), %rdx
movq 0x278(%rsp), %rcx
movq (%rdi), %rax
movq 0x28(%rax), %rax
callq *%rax
jmp 0xbbabc
leaq 0x200(%rsp), %rdi
callq 0x1acc0
leaq 0x210(%rsp), %rdi
callq 0x1acc0
movq 0x278(%rsp), %rdi
callq 0x97a00
movq 0x278(%rsp), %rax
movq %rax, 0xa0(%rsp)
leaq 0x1df(%rsp), %rdi
movq %rdi, 0xa8(%rsp)
callq 0xb690
movq 0xa8(%rsp), %rdx
leaq 0x1b9bc(%rip), %rsi     # 0xd74d3
leaq 0x1e0(%rsp), %rdi
callq 0xb4c0
jmp 0xbbb26
movq 0xa0(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
callq 0x96750
jmp 0xbbb3d
leaq 0x1e0(%rsp), %rdi
callq 0xb6e8
leaq 0x1df(%rsp), %rdi
callq 0xb3f0
movq 0x278(%rsp), %rdi
callq 0x97930
movq 0x100(%rsp), %rdi
addq $0x98, %rdi
callq 0x1bb50
movq %rax, 0x88(%rsp)
leaq 0x5c891(%rip), %rsi     # 0x118418
movq %rsi, 0x80(%rsp)
leaq 0x1c8(%rsp), %rdi
movq %rdi, 0x90(%rsp)
callq 0x1ac60
movq 0x80(%rsp), %rsi
leaq 0x1b8(%rsp), %rdi
movq %rdi, 0x98(%rsp)
callq 0x1ac60
movq 0x88(%rsp), %rdi
movq 0x90(%rsp), %rsi
movq 0x98(%rsp), %rdx
movq 0x278(%rsp), %rcx
movq (%rdi), %rax
movq 0x28(%rax), %rax
callq *%rax
jmp 0xbbbec
leaq 0x1b8(%rsp), %rdi
callq 0x1acc0
leaq 0x1c8(%rsp), %rdi
callq 0x1acc0
movq 0x278(%rsp), %rdi
callq 0x97a00
jmp 0xbc13b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
leaq 0x258(%rsp), %rdi
callq 0x1acc0
leaq 0x268(%rsp), %rdi
callq 0x1acc0
jmp 0xbc143
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
jmp 0xbbc82
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
leaq 0x228(%rsp), %rdi
callq 0xb6e8
leaq 0x227(%rsp), %rdi
callq 0xb3f0
jmp 0xbc143
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
leaq 0x200(%rsp), %rdi
callq 0x1acc0
leaq 0x210(%rsp), %rdi
callq 0x1acc0
jmp 0xbc143
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
jmp 0xbbcfe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
leaq 0x1e0(%rsp), %rdi
callq 0xb6e8
leaq 0x1df(%rsp), %rdi
callq 0xb3f0
jmp 0xbc143
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
leaq 0x1b8(%rsp), %rdi
callq 0x1acc0
leaq 0x1c8(%rsp), %rdi
callq 0x1acc0
jmp 0xbc143
movq 0x278(%rsp), %rax
movq %rax, 0x70(%rsp)
leaq 0x197(%rsp), %rdi
movq %rdi, 0x78(%rsp)
callq 0xb690
movq 0x78(%rsp), %rdx
leaq 0x1b661(%rip), %rsi     # 0xd73cf
leaq 0x198(%rsp), %rdi
callq 0xb4c0
jmp 0xbbd7d
movq 0x70(%rsp), %rdi
leaq 0x198(%rsp), %rsi
callq 0x96750
jmp 0xbbd91
leaq 0x198(%rsp), %rdi
callq 0xb6e8
leaq 0x197(%rsp), %rdi
callq 0xb3f0
movq 0x278(%rsp), %rdi
callq 0x97930
movq 0x100(%rsp), %rdi
addq $0x78, %rdi
callq 0x1bb50
movq %rax, 0x58(%rsp)
leaq 0x5c643(%rip), %rsi     # 0x118418
movq %rsi, 0x50(%rsp)
leaq 0x180(%rsp), %rdi
movq %rdi, 0x60(%rsp)
callq 0x1ac60
movq 0x50(%rsp), %rsi
leaq 0x170(%rsp), %rdi
movq %rdi, 0x68(%rsp)
callq 0x1ac60
movq 0x58(%rsp), %rdi
movq 0x60(%rsp), %rsi
movq 0x68(%rsp), %rdx
movq 0x278(%rsp), %rcx
movq (%rdi), %rax
movq 0x28(%rax), %rax
callq *%rax
jmp 0xbbe25
leaq 0x170(%rsp), %rdi
callq 0x1acc0
leaq 0x180(%rsp), %rdi
callq 0x1acc0
movq 0x278(%rsp), %rdi
callq 0x97a00
movq 0x278(%rsp), %rdi
callq 0x99d80
movq 0x100(%rsp), %rdi
addq $0x88, %rdi
callq 0x1bb50
movq %rax, 0x38(%rsp)
leaq 0x5c59f(%rip), %rsi     # 0x118418
movq %rsi, 0x30(%rsp)
leaq 0x160(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0x1ac60
movq 0x30(%rsp), %rsi
leaq 0x150(%rsp), %rdi
movq %rdi, 0x48(%rsp)
callq 0x1ac60
movq 0x38(%rsp), %rdi
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x278(%rsp), %rcx
movq (%rdi), %rax
movq 0x28(%rax), %rax
callq *%rax
jmp 0xbbec9
leaq 0x150(%rsp), %rdi
callq 0x1acc0
leaq 0x160(%rsp), %rdi
callq 0x1acc0
movq 0x278(%rsp), %rdi
callq 0x99d60
movq 0x278(%rsp), %rdi
callq 0x99da0
movq 0x278(%rsp), %rax
movq %rax, 0x20(%rsp)
leaq 0x12f(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0xb690
movq 0x28(%rsp), %rdx
leaq 0x15ce6(%rip), %rsi     # 0xd1c0e
leaq 0x130(%rsp), %rdi
callq 0xb4c0
jmp 0xbbf37
movq 0x20(%rsp), %rdi
leaq 0x130(%rsp), %rsi
callq 0x96750
jmp 0xbbf4b
leaq 0x130(%rsp), %rdi
callq 0xb6e8
leaq 0x12f(%rsp), %rdi
callq 0xb3f0
movq 0x278(%rsp), %rdi
callq 0x99d80
movq 0x100(%rsp), %rdi
addq $0x98, %rdi
callq 0x1bb50
movq %rax, 0x8(%rsp)
leaq 0x5c486(%rip), %rsi     # 0x118418
movq %rsi, (%rsp)
leaq 0x118(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0x1ac60
movq (%rsp), %rsi
leaq 0x108(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x1ac60
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq 0x278(%rsp), %rcx
movq (%rdi), %rax
movq 0x28(%rax), %rax
callq *%rax
jmp 0xbbfe0
leaq 0x108(%rsp), %rdi
callq 0x1acc0
leaq 0x118(%rsp), %rdi
callq 0x1acc0
movq 0x278(%rsp), %rdi
callq 0x99d60
movq 0x278(%rsp), %rdi
callq 0x99da0
jmp 0xbc13b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
jmp 0xbc050
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
leaq 0x198(%rsp), %rdi
callq 0xb6e8
leaq 0x197(%rsp), %rdi
callq 0xb3f0
jmp 0xbc143
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
leaq 0x170(%rsp), %rdi
callq 0x1acc0
leaq 0x180(%rsp), %rdi
callq 0x1acc0
jmp 0xbc143
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
leaq 0x150(%rsp), %rdi
callq 0x1acc0
leaq 0x160(%rsp), %rdi
callq 0x1acc0
jmp 0xbc143
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
jmp 0xbc0fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
leaq 0x130(%rsp), %rdi
callq 0xb6e8
leaq 0x12f(%rsp), %rdi
callq 0xb3f0
jmp 0xbc143
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x250(%rsp)
movl %eax, 0x24c(%rsp)
leaq 0x108(%rsp), %rdi
callq 0x1acc0
leaq 0x118(%rsp), %rdi
callq 0x1acc0
jmp 0xbc143
addq $0x298, %rsp            # imm = 0x298
retq
movq 0x250(%rsp), %rdi
callq 0xb680