// File: ys1998[P]spsim/src/main.cpp
// Function: print_std(std::deque<Instruction, std::allocator<Instruction>>)
void print_std(Buffer<Instruction> output_order){
	std::cout << "Space-Time Diagram\n";

	std::string IF =  "\033[1;43m  IF  \033[0m";
	std::string DE =  "\033[1;42m  DE  \033[0m";
	std::string RF1 = "\033[1;41m  RF1 \033[0m";
	std::string RF2 = "\033[1;46m  RF2 \033[0m";
	std::string EX =  "\033[1;44m EXEC \033[0m";
	std::string MEM = "\033[1;47;30m  MEM \033[0m";
	std::string WB =  "\033[1;45m  WB  \033[0m";
	std::string ST =  "\033[1;100m  STL \033[0m";
	std::string sp =  "      ";

	for(auto instr : output_order){
		int i = 1;
		std::cout << instr.text << "\t";
		while(i < instr.WB && i++ < instr.IF)
			std::cout << sp;
		std::cout << IF;
		while(i < instr.WB && i++ < instr.DE)
			std::cout << ST;
		std::cout << DE;
		while(i++ < instr.RF1)
			std::cout << ST;
		std::cout << RF1;
		while(i++ < instr.EXEC)
			std::cout << ST;
		std::cout << EX;
		if(std::get<0>(instr.type()) == OPCODE["lw"] || std::get<0>(instr.type()) == OPCODE["sw"]){
//			while(i++ < instr.EXEC + LATENCY_ADD)
//				std::cout << EX;
			while(i++ < instr.RF2)
				std::cout << ST;
			std::cout << RF2;
			while (i++ < instr.MEM)
				std::cout << ST;
			std::cout << MEM;
			while(i++ < instr.WB)
				std::cout << ST;
			std::cout << WB;
			std::cout << std::endl;
		}
		else {
			int latency = 1;
			if(std::get<0>(instr.type()) == 0){
				if(std::get<1>(instr.type()) == FUNCT["add"])
					latency = LATENCY_ADD;
				else if(std::get<1>(instr.type()) == FUNCT["sub"])
					latency = LATENCY_SUB;
				else if(std::get<1>(instr.type()) == FUNCT["mult"])
					latency = LATENCY_MULT;
				else if(std::get<1>(instr.type()) == FUNCT["div"])
					latency = LATENCY_DIV;
			}
			while(i++ < instr.EXEC + latency)
				std::cout << EX;
			while(i++ < instr.WB)
				std::cout << ST;
			std::cout << WB;
			std::cout << std::endl;
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x490, %rsp            # imm = 0x490
movq %rdi, -0x380(%rbp)
movq %rdi, -0x8(%rbp)
movq 0x17f63(%rip), %rdi     # 0x2efd0
leaq 0xb30e(%rip), %rsi      # 0x22382
callq 0x3290
leaq -0x29(%rbp), %rdi
movq %rdi, -0x378(%rbp)
callq 0x3490
movq -0x378(%rbp), %rdx
leaq 0xb2ff(%rip), %rsi      # 0x22396
leaq -0x28(%rbp), %rdi
callq 0x6020
jmp 0x170a2
leaq -0x29(%rbp), %rdi
callq 0x3300
leaq -0x61(%rbp), %rdi
movq %rdi, -0x388(%rbp)
callq 0x3490
movq -0x388(%rbp), %rdx
leaq 0xb2df(%rip), %rsi      # 0x223a8
leaq -0x60(%rbp), %rdi
callq 0x6020
jmp 0x170d4
leaq -0x61(%rbp), %rdi
callq 0x3300
leaq -0x89(%rbp), %rdi
movq %rdi, -0x390(%rbp)
callq 0x3490
movq -0x390(%rbp), %rdx
leaq 0xb2bc(%rip), %rsi      # 0x223ba
leaq -0x88(%rbp), %rdi
callq 0x6020
jmp 0x1710c
leaq -0x89(%rbp), %rdi
callq 0x3300
leaq -0xb1(%rbp), %rdi
movq %rdi, -0x398(%rbp)
callq 0x3490
movq -0x398(%rbp), %rdx
leaq 0xb293(%rip), %rsi      # 0x223cc
leaq -0xb0(%rbp), %rdi
callq 0x6020
jmp 0x17147
leaq -0xb1(%rbp), %rdi
callq 0x3300
leaq -0xd9(%rbp), %rdi
movq %rdi, -0x3a0(%rbp)
callq 0x3490
movq -0x3a0(%rbp), %rdx
leaq 0xb26a(%rip), %rsi      # 0x223de
leaq -0xd8(%rbp), %rdi
callq 0x6020
jmp 0x17182
leaq -0xd9(%rbp), %rdi
callq 0x3300
leaq -0x101(%rbp), %rdi
movq %rdi, -0x3a8(%rbp)
callq 0x3490
movq -0x3a8(%rbp), %rdx
leaq 0xb241(%rip), %rsi      # 0x223f0
leaq -0x100(%rbp), %rdi
callq 0x6020
jmp 0x171bd
leaq -0x101(%rbp), %rdi
callq 0x3300
leaq -0x129(%rbp), %rdi
movq %rdi, -0x3b0(%rbp)
callq 0x3490
movq -0x3b0(%rbp), %rdx
leaq 0xb21b(%rip), %rsi      # 0x22405
leaq -0x128(%rbp), %rdi
callq 0x6020
jmp 0x171f8
leaq -0x129(%rbp), %rdi
callq 0x3300
leaq -0x151(%rbp), %rdi
movq %rdi, -0x3b8(%rbp)
callq 0x3490
movq -0x3b8(%rbp), %rdx
leaq 0xb1f2(%rip), %rsi      # 0x22417
leaq -0x150(%rbp), %rdi
callq 0x6020
jmp 0x17233
leaq -0x151(%rbp), %rdi
callq 0x3300
leaq -0x179(%rbp), %rdi
movq %rdi, -0x3c0(%rbp)
callq 0x3490
movq -0x3c0(%rbp), %rdx
leaq 0xb1ca(%rip), %rsi      # 0x2242a
leaq -0x178(%rbp), %rdi
callq 0x6020
jmp 0x1726e
leaq -0x179(%rbp), %rdi
callq 0x3300
movq -0x380(%rbp), %rax
movq %rax, -0x188(%rbp)
movq -0x188(%rbp), %rsi
leaq -0x1a8(%rbp), %rdi
callq 0xad70
movq -0x188(%rbp), %rsi
leaq -0x1c8(%rbp), %rdi
callq 0xca10
leaq -0x1a8(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
callq 0xc920
testb $0x1, %al
jne 0x172ca
jmp 0x17d80
leaq -0x1a8(%rbp), %rdi
callq 0xbbb0
movq %rax, %rsi
leaq -0x240(%rbp), %rdi
callq 0x6c70
jmp 0x172e7
movl $0x1, -0x244(%rbp)
leaq -0x1f0(%rbp), %rsi
movq 0x17cd1(%rip), %rdi     # 0x2efd0
callq 0x3280
movq %rax, -0x3c8(%rbp)
jmp 0x1730d
movq -0x3c8(%rbp), %rdi
leaq 0xafd1(%rip), %rsi      # 0x222ec
callq 0x3290
jmp 0x17322
jmp 0x17324
movl -0x244(%rbp), %ecx
xorl %eax, %eax
cmpl -0x1f4(%rbp), %ecx
movb %al, -0x3c9(%rbp)
jge 0x1735a
movl -0x244(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x244(%rbp)
cmpl -0x20c(%rbp), %eax
setl %al
movb %al, -0x3c9(%rbp)
movb -0x3c9(%rbp), %al
testb $0x1, %al
jne 0x17369
jmp 0x174a1
movq 0x17c60(%rip), %rdi     # 0x2efd0
leaq -0x178(%rbp), %rsi
callq 0x3280
jmp 0x1737e
jmp 0x17324
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x29(%rbp), %rdi
callq 0x3300
jmp 0x17e55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x61(%rbp), %rdi
callq 0x3300
jmp 0x17e4c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x89(%rbp), %rdi
callq 0x3300
jmp 0x17e43
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xb1(%rbp), %rdi
callq 0x3300
jmp 0x17e37
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xd9(%rbp), %rdi
callq 0x3300
jmp 0x17e2b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x101(%rbp), %rdi
callq 0x3300
jmp 0x17e1f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x129(%rbp), %rdi
callq 0x3300
jmp 0x17e13
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x151(%rbp), %rdi
callq 0x3300
jmp 0x17e07
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x179(%rbp), %rdi
callq 0x3300
jmp 0x17dfb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x17def
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x17d72
movq 0x17b28(%rip), %rdi     # 0x2efd0
leaq -0x28(%rbp), %rsi
callq 0x3280
jmp 0x174b3
jmp 0x174b5
movl -0x244(%rbp), %ecx
xorl %eax, %eax
cmpl -0x1f4(%rbp), %ecx
movb %al, -0x3ca(%rbp)
jge 0x174eb
movl -0x244(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x244(%rbp)
cmpl -0x208(%rbp), %eax
setl %al
movb %al, -0x3ca(%rbp)
movb -0x3ca(%rbp), %al
testb $0x1, %al
jne 0x174f7
jmp 0x1750e
movq 0x17ad2(%rip), %rdi     # 0x2efd0
leaq -0x150(%rbp), %rsi
callq 0x3280
jmp 0x1750c
jmp 0x174b5
movq 0x17abb(%rip), %rdi     # 0x2efd0
leaq -0x60(%rbp), %rsi
callq 0x3280
jmp 0x17520
jmp 0x17522
movl -0x244(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x244(%rbp)
cmpl -0x204(%rbp), %eax
jge 0x17552
movq 0x17a8e(%rip), %rdi     # 0x2efd0
leaq -0x150(%rbp), %rsi
callq 0x3280
jmp 0x17550
jmp 0x17522
movq 0x17a77(%rip), %rdi     # 0x2efd0
leaq -0x88(%rbp), %rsi
callq 0x3280
jmp 0x17567
jmp 0x17569
movl -0x244(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x244(%rbp)
cmpl -0x200(%rbp), %eax
jge 0x17599
movq 0x17a47(%rip), %rdi     # 0x2efd0
leaq -0x150(%rbp), %rsi
callq 0x3280
jmp 0x17597
jmp 0x17569
movq 0x17a30(%rip), %rdi     # 0x2efd0
leaq -0xd8(%rbp), %rsi
callq 0x3280
jmp 0x175ae
movb $0x0, -0x2a2(%rbp)
movb $0x0, -0x2a3(%rbp)
leaq -0x24c(%rbp), %rdi
leaq -0x240(%rbp), %rsi
callq 0x105b0
jmp 0x175d1
leaq -0x24c(%rbp), %rdi
callq 0x6210
movl (%rax), %eax
movl %eax, -0x3dc(%rbp)
leaq -0x271(%rbp), %rdi
movq %rdi, -0x3d8(%rbp)
callq 0x3490
movq -0x3d8(%rbp), %rdx
leaq 0xaa67(%rip), %rsi      # 0x2206d
leaq -0x270(%rbp), %rdi
callq 0x6020
jmp 0x17614
leaq 0x17cad(%rip), %rdi     # 0x2f2c8
leaq -0x270(%rbp), %rsi
callq 0x5f40
movq %rax, -0x3e8(%rbp)
jmp 0x17630
movl -0x3dc(%rbp), %ecx
movq -0x3e8(%rbp), %rdx
movb $0x1, %al
cmpl (%rdx), %ecx
movb %al, -0x3e9(%rbp)
je 0x176e7
leaq -0x27c(%rbp), %rdi
leaq -0x240(%rbp), %rsi
callq 0x105b0
jmp 0x17662
leaq -0x27c(%rbp), %rdi
callq 0x6210
movl (%rax), %eax
movl %eax, -0x3fc(%rbp)
leaq -0x2a1(%rbp), %rdi
movq %rdi, -0x3f8(%rbp)
callq 0x3490
movq -0x3f8(%rbp), %rdx
movb $0x1, -0x2a2(%rbp)
leaq 0xa97f(%rip), %rsi      # 0x2201d
leaq -0x2a0(%rbp), %rdi
callq 0x6020
jmp 0x176ac
movb $0x1, -0x2a3(%rbp)
leaq 0x17c0e(%rip), %rdi     # 0x2f2c8
leaq -0x2a0(%rbp), %rsi
callq 0x5f40
movq %rax, -0x408(%rbp)
jmp 0x176cf
movl -0x3fc(%rbp), %eax
movq -0x408(%rbp), %rcx
cmpl (%rcx), %eax
sete %al
movb %al, -0x3e9(%rbp)
movb -0x3e9(%rbp), %al
movb %al, -0x409(%rbp)
testb $0x1, -0x2a3(%rbp)
jne 0x176fe
jmp 0x1770a
leaq -0x2a0(%rbp), %rdi
callq 0x31e0
testb $0x1, -0x2a2(%rbp)
jne 0x17715
jmp 0x17721
leaq -0x2a1(%rbp), %rdi
callq 0x3300
leaq -0x270(%rbp), %rdi
callq 0x31e0
leaq -0x271(%rbp), %rdi
callq 0x3300
movb -0x409(%rbp), %al
testb $0x1, %al
jne 0x17748
jmp 0x178c0
jmp 0x1774a
movl -0x244(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x244(%rbp)
cmpl -0x1fc(%rbp), %eax
jge 0x17803
movq 0x17862(%rip), %rdi     # 0x2efd0
leaq -0x150(%rbp), %rsi
callq 0x3280
jmp 0x1777c
jmp 0x1774a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x177f2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x177e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x177cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
testb $0x1, -0x2a3(%rbp)
jne 0x177bf
jmp 0x177cb
leaq -0x2a0(%rbp), %rdi
callq 0x31e0
jmp 0x177cd
testb $0x1, -0x2a2(%rbp)
jne 0x177d8
jmp 0x177e4
leaq -0x2a1(%rbp), %rdi
callq 0x3300
jmp 0x177e6
leaq -0x270(%rbp), %rdi
callq 0x31e0
leaq -0x271(%rbp), %rdi
callq 0x3300
jmp 0x17d72
movq 0x177c6(%rip), %rdi     # 0x2efd0
leaq -0xb0(%rbp), %rsi
callq 0x3280
jmp 0x17818
jmp 0x1781a
movl -0x244(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x244(%rbp)
cmpl -0x1f8(%rbp), %eax
jge 0x1784a
movq 0x17796(%rip), %rdi     # 0x2efd0
leaq -0x150(%rbp), %rsi
callq 0x3280
jmp 0x17848
jmp 0x1781a
movq 0x1777f(%rip), %rdi     # 0x2efd0
leaq -0x100(%rbp), %rsi
callq 0x3280
jmp 0x1785f
jmp 0x17861
movl -0x244(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x244(%rbp)
cmpl -0x1f4(%rbp), %eax
jge 0x17891
movq 0x1774f(%rip), %rdi     # 0x2efd0
leaq -0x150(%rbp), %rsi
callq 0x3280
jmp 0x1788f
jmp 0x17861
movq 0x17738(%rip), %rdi     # 0x2efd0
leaq -0x128(%rbp), %rsi
callq 0x3280
jmp 0x178a6
movq 0x17723(%rip), %rdi     # 0x2efd0
movq 0x1770c(%rip), %rsi     # 0x2efc0
callq 0x32e0
jmp 0x178bb
jmp 0x17d55
movl $0x1, -0x2a8(%rbp)
leaq -0x2b0(%rbp), %rdi
leaq -0x240(%rbp), %rsi
callq 0x105b0
jmp 0x178df
leaq -0x2b0(%rbp), %rdi
callq 0x6210
cmpl $0x0, (%rax)
jne 0x17cbd
leaq -0x2b8(%rbp), %rdi
leaq -0x240(%rbp), %rsi
callq 0x105b0
jmp 0x17909
leaq -0x2b8(%rbp), %rdi
callq 0x61f0
movl (%rax), %eax
movl %eax, -0x41c(%rbp)
leaq -0x2d9(%rbp), %rdi
movq %rdi, -0x418(%rbp)
callq 0x3490
movq -0x418(%rbp), %rdx
leaq 0xa6c6(%rip), %rsi      # 0x22004
leaq -0x2d8(%rbp), %rdi
callq 0x6020
jmp 0x1794c
leaq 0x179a5(%rip), %rdi     # 0x2f2f8
leaq -0x2d8(%rbp), %rsi
callq 0x5f40
movq %rax, -0x428(%rbp)
jmp 0x17968
movq -0x428(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x42c(%rbp)
leaq -0x2d8(%rbp), %rdi
callq 0x31e0
leaq -0x2d9(%rbp), %rdi
callq 0x3300
movl -0x42c(%rbp), %ecx
movl -0x41c(%rbp), %eax
cmpl %ecx, %eax
jne 0x179e5
movl $0x1, -0x2a8(%rbp)
jmp 0x17cbb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x179d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x2d8(%rbp), %rdi
callq 0x31e0
leaq -0x2d9(%rbp), %rdi
callq 0x3300
jmp 0x17d72
leaq -0x2e4(%rbp), %rdi
leaq -0x240(%rbp), %rsi
callq 0x105b0
jmp 0x179fa
leaq -0x2e4(%rbp), %rdi
callq 0x61f0
movl (%rax), %eax
movl %eax, -0x43c(%rbp)
leaq -0x309(%rbp), %rdi
movq %rdi, -0x438(%rbp)
callq 0x3490
movq -0x438(%rbp), %rdx
leaq 0xa5d9(%rip), %rsi      # 0x22008
leaq -0x308(%rbp), %rdi
callq 0x6020
jmp 0x17a3d
leaq 0x178b4(%rip), %rdi     # 0x2f2f8
leaq -0x308(%rbp), %rsi
callq 0x5f40
movq %rax, -0x448(%rbp)
jmp 0x17a59
movq -0x448(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x44c(%rbp)
leaq -0x308(%rbp), %rdi
callq 0x31e0
leaq -0x309(%rbp), %rdi
callq 0x3300
movl -0x44c(%rbp), %ecx
movl -0x43c(%rbp), %eax
cmpl %ecx, %eax
jne 0x17ad6
movl $0x1, -0x2a8(%rbp)
jmp 0x17cb9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x17ac5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x308(%rbp), %rdi
callq 0x31e0
leaq -0x309(%rbp), %rdi
callq 0x3300
jmp 0x17d72
leaq -0x314(%rbp), %rdi
leaq -0x240(%rbp), %rsi
callq 0x105b0
jmp 0x17aeb
leaq -0x314(%rbp), %rdi
callq 0x61f0
movl (%rax), %eax
movl %eax, -0x45c(%rbp)
leaq -0x339(%rbp), %rdi
movq %rdi, -0x458(%rbp)
callq 0x3490
movq -0x458(%rbp), %rdx
leaq 0xa4f4(%rip), %rsi      # 0x22014
leaq -0x338(%rbp), %rdi
callq 0x6020
jmp 0x17b2e
leaq 0x177c3(%rip), %rdi     # 0x2f2f8
leaq -0x338(%rbp), %rsi
callq 0x5f40
movq %rax, -0x468(%rbp)
jmp 0x17b4a
movq -0x468(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x46c(%rbp)
leaq -0x338(%rbp), %rdi
callq 0x31e0
leaq -0x339(%rbp), %rdi
callq 0x3300
movl -0x46c(%rbp), %ecx
movl -0x45c(%rbp), %eax
cmpl %ecx, %eax
jne 0x17bc7
movl $0x6, -0x2a8(%rbp)
jmp 0x17cb7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x17bb6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x338(%rbp), %rdi
callq 0x31e0
leaq -0x339(%rbp), %rdi
callq 0x3300
jmp 0x17d72
leaq -0x344(%rbp), %rdi
leaq -0x240(%rbp), %rsi
callq 0x105b0
jmp 0x17bdc
leaq -0x344(%rbp), %rdi
callq 0x61f0
movl (%rax), %eax
movl %eax, -0x47c(%rbp)
leaq -0x369(%rbp), %rdi
movq %rdi, -0x478(%rbp)
callq 0x3490
movq -0x478(%rbp), %rdx
leaq 0xa408(%rip), %rsi      # 0x22019
leaq -0x368(%rbp), %rdi
callq 0x6020
jmp 0x17c1f
leaq 0x176d2(%rip), %rdi     # 0x2f2f8
leaq -0x368(%rbp), %rsi
callq 0x5f40
movq %rax, -0x488(%rbp)
jmp 0x17c3b
movq -0x488(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x48c(%rbp)
leaq -0x368(%rbp), %rdi
callq 0x31e0
leaq -0x369(%rbp), %rdi
callq 0x3300
movl -0x48c(%rbp), %ecx
movl -0x47c(%rbp), %eax
cmpl %ecx, %eax
jne 0x17cb5
movl $0x23, -0x2a8(%rbp)
jmp 0x17cb5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x17ca4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x368(%rbp), %rdi
callq 0x31e0
leaq -0x369(%rbp), %rdi
callq 0x3300
jmp 0x17d72
jmp 0x17cb7
jmp 0x17cb9
jmp 0x17cbb
jmp 0x17cbd
jmp 0x17cbf
movl -0x244(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x244(%rbp)
movl -0x200(%rbp), %ecx
addl -0x2a8(%rbp), %ecx
cmpl %ecx, %eax
jge 0x17cf7
movq 0x172e9(%rip), %rdi     # 0x2efd0
leaq -0xd8(%rbp), %rsi
callq 0x3280
jmp 0x17cf5
jmp 0x17cbf
jmp 0x17cf9
movl -0x244(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x244(%rbp)
cmpl -0x1f4(%rbp), %eax
jge 0x17d29
movq 0x172b7(%rip), %rdi     # 0x2efd0
leaq -0x150(%rbp), %rsi
callq 0x3280
jmp 0x17d27
jmp 0x17cf9
movq 0x172a0(%rip), %rdi     # 0x2efd0
leaq -0x128(%rbp), %rsi
callq 0x3280
jmp 0x17d3e
movq 0x1728b(%rip), %rdi     # 0x2efd0
movq 0x17274(%rip), %rsi     # 0x2efc0
callq 0x32e0
jmp 0x17d53
jmp 0x17d55
leaq -0x240(%rbp), %rdi
callq 0x61d0
leaq -0x1a8(%rbp), %rdi
callq 0xc8d0
jmp 0x172ae
leaq -0x240(%rbp), %rdi
callq 0x61d0
jmp 0x17def
leaq -0x178(%rbp), %rdi
callq 0x31e0
leaq -0x150(%rbp), %rdi
callq 0x31e0
leaq -0x128(%rbp), %rdi
callq 0x31e0
leaq -0x100(%rbp), %rdi
callq 0x31e0
leaq -0xd8(%rbp), %rdi
callq 0x31e0
leaq -0xb0(%rbp), %rdi
callq 0x31e0
leaq -0x88(%rbp), %rdi
callq 0x31e0
leaq -0x60(%rbp), %rdi
callq 0x31e0
leaq -0x28(%rbp), %rdi
callq 0x31e0
addq $0x490, %rsp            # imm = 0x490
popq %rbp
retq
leaq -0x178(%rbp), %rdi
callq 0x31e0
leaq -0x150(%rbp), %rdi
callq 0x31e0
leaq -0x128(%rbp), %rdi
callq 0x31e0
leaq -0x100(%rbp), %rdi
callq 0x31e0
leaq -0xd8(%rbp), %rdi
callq 0x31e0
leaq -0xb0(%rbp), %rdi
callq 0x31e0
leaq -0x88(%rbp), %rdi
callq 0x31e0
leaq -0x60(%rbp), %rdi
callq 0x31e0
leaq -0x28(%rbp), %rdi
callq 0x31e0
movq -0x38(%rbp), %rdi
callq 0x3480
nop