// File: pranavmodx[P]modlang/src/ast.cpp
// Function: IfExpression::getStringRepr[abi:cxx11]()
std::string IfExpression::getStringRepr()
{
	std::string res = "if " + std::string("(") + condition->getStringRepr() + ")" + " { " + consequence->getStringRepr() + " }";
	if (alternative != nullptr)
		res += " else {" + alternative->getStringRepr() + " }";

	return res;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1b0, %rsp            # imm = 0x1B0
movq %rdi, -0x1b0(%rbp)
movq %rdi, %rax
movq %rax, -0x1a8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x1a0(%rbp)
movb $0x0, -0x11(%rbp)
leaq -0xd9(%rbp), %rdi
movq %rdi, -0x198(%rbp)
callq 0x54a0
movq -0x198(%rbp), %rdx
leaq 0x2b69a(%rip), %rsi     # 0x4536e
leaq -0xd8(%rbp), %rdi
callq 0x134c0
jmp 0x19ce2
leaq 0x2b66f(%rip), %rsi     # 0x45358
leaq -0xb8(%rbp), %rdi
leaq -0xd8(%rbp), %rdx
callq 0x1bde0
jmp 0x19cfe
movq -0x1a0(%rbp), %rax
movq 0x48(%rax), %rsi
movq (%rsi), %rax
movq 0x8(%rax), %rax
leaq -0x110(%rbp), %rdi
callq *%rax
jmp 0x19d1b
leaq -0x98(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
leaq -0x110(%rbp), %rdx
callq 0x1bb80
jmp 0x19d37
leaq 0x2bf48(%rip), %rdx     # 0x45c86
leaq -0x78(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x1bb10
jmp 0x19d50
leaq 0x2b605(%rip), %rdx     # 0x4535c
leaq -0x58(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x1bb10
jmp 0x19d66
movq -0x1a0(%rbp), %rax
movq 0x50(%rax), %rsi
movq (%rsi), %rax
movq 0x8(%rax), %rax
leaq -0x130(%rbp), %rdi
callq *%rax
jmp 0x19d83
leaq -0x38(%rbp), %rdi
leaq -0x58(%rbp), %rsi
leaq -0x130(%rbp), %rdx
callq 0x1bb80
jmp 0x19d99
movq -0x1b0(%rbp), %rdi
leaq 0x2b5ae(%rip), %rdx     # 0x45355
leaq -0x38(%rbp), %rsi
callq 0x1bb10
jmp 0x19db2
leaq -0x38(%rbp), %rdi
callq 0x5518
leaq -0x130(%rbp), %rdi
callq 0x5518
leaq -0x58(%rbp), %rdi
callq 0x5518
leaq -0x78(%rbp), %rdi
callq 0x5518
leaq -0x98(%rbp), %rdi
callq 0x5518
leaq -0x110(%rbp), %rdi
callq 0x5518
leaq -0xb8(%rbp), %rdi
callq 0x5518
leaq -0xd8(%rbp), %rdi
callq 0x5518
leaq -0xd9(%rbp), %rdi
callq 0x52f0
movq -0x1a0(%rbp), %rax
cmpq $0x0, 0x58(%rax)
je 0x1a057
movq -0x1a0(%rbp), %rax
movq 0x58(%rax), %rsi
movq (%rsi), %rax
movq 0x8(%rax), %rax
leaq -0x190(%rbp), %rdi
callq *%rax
jmp 0x19e44
leaq 0x2b515(%rip), %rsi     # 0x45360
leaq -0x170(%rbp), %rdi
leaq -0x190(%rbp), %rdx
callq 0x1bde0
jmp 0x19e60
leaq 0x2b4ee(%rip), %rdx     # 0x45355
leaq -0x150(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x1bb10
jmp 0x19e7c
movq -0x1b0(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0x5370
jmp 0x19e91
leaq -0x150(%rbp), %rdi
callq 0x5518
leaq -0x170(%rbp), %rdi
callq 0x5518
leaq -0x190(%rbp), %rdi
callq 0x5518
jmp 0x1a057
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
jmp 0x19fcf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
jmp 0x19fc3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
jmp 0x19fb7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
jmp 0x19fab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
jmp 0x19f9f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
jmp 0x19f96
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
jmp 0x19f8d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
jmp 0x19f81
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x5518
leaq -0x130(%rbp), %rdi
callq 0x5518
leaq -0x58(%rbp), %rdi
callq 0x5518
leaq -0x78(%rbp), %rdi
callq 0x5518
leaq -0x98(%rbp), %rdi
callq 0x5518
leaq -0x110(%rbp), %rdi
callq 0x5518
leaq -0xb8(%rbp), %rdi
callq 0x5518
leaq -0xd8(%rbp), %rdi
callq 0x5518
leaq -0xd9(%rbp), %rdi
callq 0x52f0
jmp 0x1a089
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
jmp 0x1a07d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
jmp 0x1a049
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
jmp 0x1a03d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x5518
leaq -0x170(%rbp), %rdi
callq 0x5518
leaq -0x190(%rbp), %rdi
callq 0x5518
jmp 0x1a07d
movb $0x1, -0x11(%rbp)
testb $0x1, -0x11(%rbp)
jne 0x1a06d
movq -0x1b0(%rbp), %rdi
callq 0x5518
movq -0x1a8(%rbp), %rax
addq $0x1b0, %rsp            # imm = 0x1B0
popq %rbp
retq
movq -0x1b0(%rbp), %rdi
callq 0x5518
movq -0xe8(%rbp), %rdi
callq 0x5490
nopw %cs:(%rax,%rax)