// File: /workspace/github_cpp_makefile_star2_O1/lhydave[P]SysYCompilerLab/front/node.cpp
// Function: sysY_AST::cond_exp_node::traverse()
void cond_exp_node::traverse()
{
	if (right == nullptr) // leaf node
	{
		left->reduce();
		left->new_temp();
		code += left->code;
		if (true_label != fall_label && false_label != fall_label) // if-else
		{
			code += "\tif " + left->eeyore_name + " == 1 goto l" +
				to_string(true_label) + "\n";
			code += "\tgoto l" + to_string(false_label) + "\n";
		}
		else if (true_label != fall_label) // if false_label
			code += "\tif " + left->eeyore_name + " == 1 goto l" +
				to_string(true_label) + "\n";
		else if (false_label != fall_label)
			code += "\tif " + left->eeyore_name + " == 0 goto l" +
				to_string(false_label) + "\n";
		return;
	}
	// inner node
	if (op == OR)
	{
		auto c_left = static_cast<cond_exp_node *>(left);
		auto c_right = static_cast<cond_exp_node *>(right);

		if (true_label != fall_label)
			c_left->true_label = true_label;
		else
			c_left->true_label = stmt_node::new_label();
		c_left->false_label = fall_label;
		c_left->traverse();

		c_right->false_label = false_label;
		c_right->true_label = true_label;
		c_right->traverse();

		code += c_left->code + c_right->code;
		if (true_label == fall_label)
			code += "l" + to_string(c_left->true_label) + ":\n";
	}
	else if (op == AND)
	{
		auto c_left = static_cast<cond_exp_node *>(left);
		auto c_right = static_cast<cond_exp_node *>(right);
		c_left->true_label = fall_label;
		c_left->false_label = false_label;
		c_left->traverse();

		c_right->false_label = false_label;
		c_right->true_label = true_label;
		c_right->traverse();
		code += c_left->code + c_right->code;
		// code += "l" + to_string(c_right->true_label) + ":\n";
	}
	else
	{
		dbg_printf("should not have other operator!\n");
		throw -1;
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa8, %rsp
movq %rdi, %r14
movq 0xa8(%rdi), %rbx
testq %rbx, %rbx
je 0xbc8c
movl 0x90(%r14), %eax
cmpl $0xd, %eax
je 0xbd43
cmpl $0xe, %eax
jne 0xc83a
movq 0xa0(%r14), %r15
movl 0xb0(%r14), %ecx
movl 0x297e5(%rip), %eax     # 0x3535c
cmpl %eax, %ecx
jne 0xbb8a
movl 0x297d7(%rip), %ecx     # 0x35358
leal 0x1(%rcx), %edx
movl %edx, 0x297ce(%rip)     # 0x35358
movl %ecx, 0xb0(%r15)
movl %eax, 0xb4(%r15)
movq %r15, %rdi
callq 0xbb26
movl 0xb4(%r14), %eax
movl %eax, 0xb4(%rbx)
movl 0xb0(%r14), %eax
movl %eax, 0xb0(%rbx)
movq %rbx, %rdi
callq 0xbb26
leaq 0x18(%r15), %rsi
addq $0x18, %rbx
leaq 0x8(%rsp), %r12
movq %r12, %rdi
movq %rbx, %rdx
callq 0x11e5a
leaq 0x18(%r14), %rbx
movq (%r12), %rsi
movq 0x8(%r12), %rdx
movq %rbx, %rdi
callq 0x50c0
leaq 0x18(%rsp), %r12
movq -0x10(%r12), %rdi
cmpq %r12, %rdi
je 0xbc0b
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5240
movl 0xb0(%r14), %eax
cmpl 0x29744(%rip), %eax     # 0x3535c
jne 0xc828
movl 0xb0(%r15), %r13d
movl %r13d, %ebp
negl %ebp
cmovsl %r13d, %ebp
movl $0x1, %r14d
cmpl $0xa, %ebp
jb 0xbfd0
movl $0x4, %r14d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %ebp, %ecx
cmpl $0x63, %ecx
jbe 0xbfc7
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0xbfcd
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0xbfd0
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r14d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0xbc4a
addl $-0x3, %r14d
jmp 0xbfd0
movq 0xa0(%r14), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
movq 0xa0(%r14), %rdi
movq (%rdi), %rax
callq *0x10(%rax)
movq 0xa0(%r14), %rax
leaq 0x18(%r14), %rbx
movq 0x18(%rax), %rsi
movq 0x20(%rax), %rdx
movq %rbx, %rdi
callq 0x50c0
movl 0xb0(%r14), %ecx
movl 0x2968e(%rip), %eax     # 0x3535c
cmpl %eax, %ecx
jne 0xbddb
cmpl %eax, 0xb4(%r14)
je 0xc828
movq 0xa0(%r14), %rdx
addq $0x70, %rdx
leaq 0x1cf2d(%rip), %rsi     # 0x28c22
leaq 0x88(%rsp), %r15
movq %r15, %rdi
callq 0x11eb4
leaq 0x1cf28(%rip), %rsi     # 0x28c34
movq %r15, %rdi
callq 0x5510
leaq 0x58(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xbeab
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
jmp 0xbeb3
movq 0xa0(%r14), %r15
movl 0x2960c(%rip), %eax     # 0x3535c
movl %eax, 0xb0(%r15)
movl 0xb4(%r14), %eax
movl %eax, 0xb4(%r15)
movq %r15, %rdi
callq 0xbb26
movl 0xb4(%r14), %eax
movl %eax, 0xb4(%rbx)
movl 0xb0(%r14), %eax
movl %eax, 0xb0(%rbx)
movq %rbx, %rdi
callq 0xbb26
addq $0x18, %r15
addq $0x18, %rbx
leaq 0x8(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x11e5a
addq $0x18, %r14
movq (%r12), %rsi
movq 0x8(%r12), %rdx
movq %r14, %rdi
callq 0x50c0
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc828
movq 0x18(%rsp), %rsi
jmp 0xc820
cmpl %eax, 0xb4(%r14)
jne 0xbe4c
cmpl %eax, %ecx
je 0xbcd6
movq 0xa0(%r14), %rdx
addq $0x70, %rdx
leaq 0x1ce24(%rip), %rsi     # 0x28c22
leaq 0x88(%rsp), %r15
movq %r15, %rdi
callq 0x11eb4
leaq 0x1ce12(%rip), %rsi     # 0x28c27
movq %r15, %rdi
callq 0x5510
leaq 0x58(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xc10f
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
jmp 0xc117
movq 0xa0(%r14), %rdx
addq $0x70, %rdx
leaq 0x1cdc4(%rip), %rsi     # 0x28c22
leaq 0x88(%rsp), %r15
movq %r15, %rdi
callq 0x11eb4
leaq 0x1cdb2(%rip), %rsi     # 0x28c27
movq %r15, %rdi
callq 0x5510
leaq 0x58(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xbf39
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
jmp 0xbf41
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x50(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl 0xb4(%r14), %r14d
movl %r14d, %ebp
negl %ebp
cmovsl %r14d, %ebp
movl $0x1, %r15d
cmpl $0xa, %ebp
jb 0xc1a6
movl $0x4, %r15d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %ebp, %ecx
cmpl $0x63, %ecx
jbe 0xc19d
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0xc1a3
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0xc1a6
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r15d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0xbef7
addl $-0x3, %r15d
jmp 0xc1a6
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, 0x50(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl 0xb0(%r14), %r15d
movl %r15d, %ebp
negl %ebp
cmovsl %r15d, %ebp
movl $0x1, %r12d
cmpl $0xa, %ebp
jb 0xc2f2
movl $0x4, %r12d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %ebp, %ecx
cmpl $0x63, %ecx
jbe 0xc2e9
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0xc2ef
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0xc2f2
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r12d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0xbf85
addl $-0x3, %r12d
jmp 0xc2f2
addl $-0x2, %r14d
jmp 0xbfd0
decl %r14d
shrl $0x1f, %r13d
movl %r13d, %esi
addl %r14d, %esi
leaq 0x58(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x48(%rsp), %r15
movq %r15, %rdi
movl $0x2d, %edx
callq 0x52b0
movq (%r15), %rdi
addq %r13, %rdi
movl %r14d, %esi
movl %ebp, %edx
callq 0x1230e
leaq 0x1c9f8(%rip), %rcx     # 0x28a04
movl $0x1, %r8d
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x5290
leaq 0x38(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xc045
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0xc04c
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq 0x28(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1c98c(%rip), %rsi     # 0x289fb
callq 0x5510
movq %r12, 0x8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xc097
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0xc09f
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x50c0
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xc0e0
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5240
movq 0x28(%rsp), %rdi
cmpq %r14, %rdi
je 0xc0f7
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x5240
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
jne 0xc656
jmp 0xc828
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x50(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl 0xb0(%r14), %r14d
movl %r14d, %ebp
negl %ebp
cmovsl %r14d, %ebp
movl $0x1, %r15d
cmpl $0xa, %ebp
jb 0xc669
movl $0x4, %r15d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %ebp, %ecx
cmpl $0x63, %ecx
jbe 0xc660
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0xc666
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0xc669
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r15d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0xc15b
addl $-0x3, %r15d
jmp 0xc669
addl $-0x2, %r15d
jmp 0xc1a6
decl %r15d
shrl $0x1f, %r14d
leal (%r15,%r14), %esi
leaq 0x78(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x68(%rsp), %rdi
movl $0x2d, %edx
callq 0x52b0
addq 0x68(%rsp), %r14
movq %r14, %rdi
movl %r15d, %esi
movl %ebp, %edx
callq 0x1230e
movq 0x48(%rsp), %rcx
movq 0x50(%rsp), %r8
movq 0x70(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r12, %rcx
je 0xc1fa
movq 0x58(%rsp), %rsi
cmpq %rsi, %rax
jbe 0xc215
movl $0xf, %esi
cmpq %r13, 0x68(%rsp)
je 0xc210
movq 0x78(%rsp), %rsi
cmpq %rsi, %rax
jbe 0xc226
movq 0x68(%rsp), %rsi
leaq 0x48(%rsp), %rdi
callq 0x50c0
jmp 0xc234
leaq 0x68(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x5290
leaq 0x38(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0xc258
movq %rsi, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0xc25e
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x30(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x1c75a(%rip), %rsi     # 0x289dc
leaq 0x28(%rsp), %rdi
callq 0x5510
leaq 0x18(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xc2b3
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0xc2ba
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x50c0
jmp 0xc7a7
addl $-0x2, %r12d
jmp 0xc2f2
decl %r12d
shrl $0x1f, %r15d
leal (%r12,%r15), %esi
leaq 0x78(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x68(%rsp), %rdi
movl $0x2d, %edx
callq 0x52b0
addq 0x68(%rsp), %r15
movq %r15, %rdi
movl %r12d, %esi
movl %ebp, %edx
callq 0x1230e
movq 0x48(%rsp), %rcx
movq 0x50(%rsp), %r8
movq 0x70(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r13, %rcx
je 0xc346
movq 0x58(%rsp), %rsi
cmpq %rsi, %rax
leaq 0x78(%rsp), %r15
jbe 0xc366
movl $0xf, %esi
cmpq %r15, 0x68(%rsp)
je 0xc361
movq 0x78(%rsp), %rsi
cmpq %rsi, %rax
jbe 0xc377
movq 0x68(%rsp), %rsi
leaq 0x48(%rsp), %rdi
callq 0x50c0
jmp 0xc385
leaq 0x68(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x5290
leaq 0x38(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0xc3a9
movq %rsi, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0xc3af
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x30(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x1c609(%rip), %rsi     # 0x289dc
leaq 0x28(%rsp), %rdi
callq 0x5510
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xc405
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0xc40d
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x50c0
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xc44e
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5240
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc469
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x5240
movq 0x68(%rsp), %rdi
cmpq %r15, %rdi
je 0xc480
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x5240
movq 0x48(%rsp), %rdi
cmpq %r13, %rdi
je 0xc497
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x5240
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc4b8
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x5240
movl 0xb4(%r14), %r13d
movl %r13d, %ebp
negl %ebp
cmovsl %r13d, %ebp
movl $0x1, %r14d
cmpl $0xa, %ebp
jb 0xc51c
movl $0x4, %r14d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %ebp, %ecx
cmpl $0x63, %ecx
jbe 0xc513
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0xc519
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0xc51c
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r14d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0xc4e0
addl $-0x3, %r14d
jmp 0xc51c
addl $-0x2, %r14d
jmp 0xc51c
decl %r14d
shrl $0x1f, %r13d
movl %r13d, %esi
addl %r14d, %esi
leaq 0x48(%rsp), %r15
leaq 0x58(%rsp), %rax
movq %rax, (%r15)
movq %r15, %rdi
movl $0x2d, %edx
callq 0x52b0
movq (%r15), %rdi
addq %r13, %rdi
movl %r14d, %esi
movl %ebp, %edx
callq 0x1230e
leaq 0x1c4a7(%rip), %rcx     # 0x289fe
movl $0x7, %r8d
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x5290
leaq 0x38(%rsp), %r15
movq %r15, 0x28(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xc591
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0xc598
movups (%rcx), %xmm0
movups %xmm0, (%r15)
leaq 0x58(%rsp), %r14
movq 0x8(%rax), %rdx
leaq 0x28(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1c41c(%rip), %rsi     # 0x289dc
callq 0x5510
movq %r12, 0x8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xc5e8
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0xc5f0
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x50c0
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xc631
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5240
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0xc648
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x5240
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
je 0xc828
movq 0x58(%rsp), %rsi
jmp 0xc820
addl $-0x2, %r15d
jmp 0xc669
decl %r15d
shrl $0x1f, %r14d
leal (%r15,%r14), %esi
leaq 0x78(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x68(%rsp), %rdi
movl $0x2d, %edx
callq 0x52b0
addq 0x68(%rsp), %r14
movq %r14, %rdi
movl %r15d, %esi
movl %ebp, %edx
callq 0x1230e
movq 0x48(%rsp), %rcx
movq 0x50(%rsp), %r8
movq 0x70(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r12, %rcx
je 0xc6bd
movq 0x58(%rsp), %rsi
cmpq %rsi, %rax
jbe 0xc6d8
movl $0xf, %esi
cmpq %r13, 0x68(%rsp)
je 0xc6d3
movq 0x78(%rsp), %rsi
cmpq %rsi, %rax
jbe 0xc6e9
movq 0x68(%rsp), %rsi
leaq 0x48(%rsp), %rdi
callq 0x50c0
jmp 0xc6f7
leaq 0x68(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x5290
leaq 0x38(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0xc71b
movq %rsi, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0xc721
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x30(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x1c297(%rip), %rsi     # 0x289dc
leaq 0x28(%rsp), %rdi
callq 0x5510
leaq 0x18(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xc776
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0xc77d
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x50c0
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0xc7be
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5240
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc7d9
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x5240
movq 0x68(%rsp), %rdi
cmpq %r13, %rdi
je 0xc7f0
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x5240
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0xc807
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x5240
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc828
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x5240
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x4, %edi
callq 0x5120
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
movq 0x28737(%rip), %rsi     # 0x34f88
movq %rax, %rdi
xorl %edx, %edx
callq 0x5490
jmp 0xc923
jmp 0xc93f
jmp 0xc95f
jmp 0xc97b
jmp 0xc997
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xc893
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5240
jmp 0xc893
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
jne 0xc9de
jmp 0xc9f0
jmp 0xc9ed
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xc8cf
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5240
jmp 0xc8cf
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc8ef
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x5240
jmp 0xc8ef
movq %rax, %rbx
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0xc910
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x5240
jmp 0xc910
movq %rax, %rbx
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
jne 0xc988
jmp 0xc99a
jmp 0xc997
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0xc942
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5240
jmp 0xc942
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc962
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x5240
jmp 0xc962
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r13, %rdi
je 0xc97e
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x5240
jmp 0xc97e
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0xc99a
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x5240
jmp 0xc99a
movq %rax, %rbx
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xca26
movq 0x98(%rsp), %rsi
jmp 0xca1e
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xc9d4
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5240
jmp 0xc9d4
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r14, %rdi
je 0xc9f0
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x5240
jmp 0xc9f0
movq %rax, %rbx
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0xca26
movq 0x58(%rsp), %rsi
jmp 0xca1e
jmp 0xca08
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xca26
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5240
movq %rbx, %rdi
callq 0x54c0