// File: /workspace/github_cpp_makefile_star2_O3/menhits[P]phplus/src/main.cpp
// Function: main
int main(int argc, char ** argv)
{
	Flags flags=getFlags(argc, argv);
	
	if (flags.flagError)
	{
		cout << "coba '-h' untuk menampilkan bantuan" << endl;
		return 0;
	}
	
	if (flags.help)
	{
		cout << "PHPLUS Versi " << VERSION_X << "." << VERSION_Y << "." << VERSION_Z << endl;
		cout << "usage: Phplus [options] [source file] [options]" << endl;
		cout << "\noptions: " << endl;
		cout << "-v, -version      Menampilkan versi dari Phplus" << endl;
		cout << "-d, -debug        Menampilkan info debugging sebelum menjalankan program" << endl;
		cout << "-r, -run          Menjalankan program dengan interpreter" << endl;
		cout << "                    	aktif secara default jika tidak ada transpiling commands yang dijalankan" << endl;
		cout << "                    	pada dasarnya, apapun setelah -r sudah tersetujui" << endl;
		cout << "-cpp [file]       Transpile ke C++ dan menyimpan output file yang diberikan" << endl;
		cout << "-bin [file]       Transpile, compile dengan GCC dan menyimpan binary" << endl;
		cout << "-e, -execute      Transpile, compile dan execute file binary" << endl;
		cout << "                    beberapa kombinasi dari -cpp, -bin and -e dapat digunakan" << endl;
		cout << "                    seperti -r, apapun setelah -e akan disetujui" << endl;
		cout << "-h, -help         Menampilkan bantuan saat ini dan keluar" << endl;
		cout << endl;
		cout << endl;
		
		return 0;
	}
	
	if (flags.version)
	{
		cout << "Phplus version " << VERSION_X << "." << VERSION_Y << "." << VERSION_Z << endl;
		return 0;
	}
	
	PhplusProgram program;
	
	if (flags.inFiles.empty())
	{
		cout << "Tidak ada sumber file yang spesifik" << endl;
		cout << "coba '-h' untuk menampilkan bantuan" << endl;
		return 0;
	}
	else if (flags.inFiles.size()>1)
	{
		cout << "Sumber file multiple spesifik, Phplus tidak mendukungnya saat ini" << endl;
		cout << "coba '-h' untuk menampilkan bantuan" << endl;
		return 0;
	}
	
	program.resolveProgram(flags.inFiles[0], flags.debug);
	
	if (flags.runInterpreted)
	{
		if (error.getIfErrorLogged())
		{
			if (flags.debug)
				cout << endl << ">>>>>>    Eksekusi dibatalkan karena terdapat error    <<<<<<" << endl;
			else
				cout << "Mohon bersabar, ini ujian\nprogram tidak dijalankan karena terdapat error" << endl;
		}
		else
		{
			if (flags.debug)
				cout << endl << "Menjalankan program..." << endl << endl;
			
			program.execute();
		}
	}
	
	if (!flags.cppOutFile.empty() || !flags.binOutFile.empty() || flags.runCompiled)
	{
		string cppCode=program.getCpp();
		
		if (error.getIfErrorLogged())
		{
			if (flags.debug)
				cout << endl << ">>>>>>    transpiling gagal   <<<<<<" << endl;
			else
				cout << "transpiling gagal" << endl;
		}
		else
		{
			string cppFileName=flags.cppOutFile;
			
			if (cppFileName.empty())
				cppFileName="tmp_pp_transpiled.cpp";
			
			if (flags.debug)
				cout << endl << putStringInBox(cppCode, "C++ code", true, false, -1) << endl;
			
			writeFile(cppFileName, cppCode, flags.debug);
			
			if (!flags.binOutFile.empty() || flags.runCompiled)
			{
				string binFileName=flags.binOutFile;
				
				if (binFileName.empty())
					binFileName="tmp_pp_compiled";
				
				string cmd;
				cmd="g++ -std=c++11 '"+cppFileName+"' -o '"+binFileName+"'";
				
				if (flags.debug)
					cout << "menjalankan '"+cmd+"'" << endl;
				
				runCmd(cmd, true);
				
				if (flags.runCompiled)
				{
					if (flags.debug)
						cout << endl;
					
					cmd = "./"+binFileName + " --menjalankan-dari-phplus " + str::join(cmdLineArgs, " ", false);
					
					if (flags.debug)
						cout << "menjalankan '"+cmd+"'" << endl << endl;
					
					runCmd(cmd, true);
				}
				
				if (flags.binOutFile.empty())
					remove(binFileName.c_str());
			}
			
			if (flags.cppOutFile.empty())
				remove(cppFileName.c_str());
		}
	}
	
	if (flags.debug)
		cout << endl << "Semua selesai" << endl;
	
	return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2f8, %rsp            # imm = 0x2F8
movq %rsi, %rdx
movl %edi, %esi
leaq 0xe0(%rsp), %rbx
movq %rbx, %rdi
callq 0x5a5ac
cmpb $0x1, 0x81(%rbx)
jne 0x594a4
movq 0x40b22(%rip), %rdi     # 0x99fb0
leaq 0x22781(%rip), %rsi     # 0x7bc16
movl $0x23, %edx
callq 0xa320
jmp 0x59903
cmpb $0x1, 0x119(%rsp)
jne 0x59997
movq 0x40af7(%rip), %rdi     # 0x99fb0
leaq 0x2277a(%rip), %rsi     # 0x7bc3a
movl $0xd, %edx
callq 0xa320
movq 0x40adf(%rip), %rdi     # 0x99fb0
xorl %esi, %esi
callq 0xa500
movq %rax, %rbx
leaq 0x2166d(%rip), %rsi     # 0x7ab4f
movl $0x1, %edx
movq %rax, %rdi
callq 0xa320
movq %rbx, %rdi
xorl %esi, %esi
callq 0xa500
movq %rax, %rbx
leaq 0x2164c(%rip), %rsi     # 0x7ab4f
movl $0x1, %edx
movq %rax, %rdi
callq 0xa320
movq %rbx, %rdi
movl $0x1, %esi
callq 0xa500
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0xa2c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0xa030
movq %rax, %rdi
callq 0xa200
movq 0x40a62(%rip), %rbx     # 0x99fb0
leaq 0x226f3(%rip), %rsi     # 0x7bc48
movl $0x2f, %edx
movq %rbx, %rdi
callq 0xa320
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0xa2c0
movsbl %al, %esi
movq 0x40a30(%rip), %rdi     # 0x99fb0
callq 0xa030
movq %rax, %rdi
callq 0xa200
movq 0x40a1c(%rip), %rbx     # 0x99fb0
leaq 0x226dd(%rip), %rsi     # 0x7bc78
movl $0xa, %edx
movq %rbx, %rdi
callq 0xa320
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0xa2c0
movsbl %al, %esi
movq 0x409ea(%rip), %rdi     # 0x99fb0
callq 0xa030
movq %rax, %rdi
callq 0xa200
movq 0x409d6(%rip), %rbx     # 0x99fb0
leaq 0x226a2(%rip), %rsi     # 0x7bc83
movl $0x2f, %edx
movq %rbx, %rdi
callq 0xa320
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0xa2c0
movsbl %al, %esi
movq 0x409a4(%rip), %rdi     # 0x99fb0
callq 0xa030
movq %rax, %rdi
callq 0xa200
movq 0x40990(%rip), %rbx     # 0x99fb0
leaq 0x2268c(%rip), %rsi     # 0x7bcb3
movl $0x48, %edx
movq %rbx, %rdi
callq 0xa320
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0xa2c0
movsbl %al, %esi
movq 0x4095e(%rip), %rdi     # 0x99fb0
callq 0xa030
movq %rax, %rdi
callq 0xa200
movq 0x4094a(%rip), %rbx     # 0x99fb0
leaq 0x2268f(%rip), %rsi     # 0x7bcfc
movl $0x38, %edx
movq %rbx, %rdi
callq 0xa320
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0xa2c0
movsbl %al, %esi
movq 0x40918(%rip), %rdi     # 0x99fb0
callq 0xa030
movq %rax, %rdi
callq 0xa200
movq 0x40904(%rip), %rbx     # 0x99fb0
leaq 0x22682(%rip), %rsi     # 0x7bd35
movl $0x5d, %edx
movq %rbx, %rdi
callq 0xa320
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0xa2c0
movsbl %al, %esi
movq 0x408d2(%rip), %rdi     # 0x99fb0
callq 0xa030
movq %rax, %rdi
callq 0xa200
movq 0x408be(%rip), %rbx     # 0x99fb0
leaq 0x2269a(%rip), %rsi     # 0x7bd93
movl $0x46, %edx
movq %rbx, %rdi
callq 0xa320
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0xa2c0
movsbl %al, %esi
movq 0x4088c(%rip), %rdi     # 0x99fb0
callq 0xa030
movq %rax, %rdi
callq 0xa200
movq 0x40878(%rip), %rbx     # 0x99fb0
leaq 0x2269b(%rip), %rsi     # 0x7bdda
movl $0x4b, %edx
movq %rbx, %rdi
callq 0xa320
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0xa2c0
movsbl %al, %esi
movq 0x40846(%rip), %rdi     # 0x99fb0
callq 0xa030
movq %rax, %rdi
callq 0xa200
movq 0x40832(%rip), %rbx     # 0x99fb0
leaq 0x226a1(%rip), %rsi     # 0x7be26
movl $0x44, %edx
movq %rbx, %rdi
callq 0xa320
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0xa2c0
movsbl %al, %esi
movq 0x40800(%rip), %rdi     # 0x99fb0
callq 0xa030
movq %rax, %rdi
callq 0xa200
movq 0x407ec(%rip), %rbx     # 0x99fb0
leaq 0x226a0(%rip), %rsi     # 0x7be6b
movl $0x3c, %edx
movq %rbx, %rdi
callq 0xa320
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0xa2c0
movsbl %al, %esi
movq 0x407ba(%rip), %rdi     # 0x99fb0
callq 0xa030
movq %rax, %rdi
callq 0xa200
movq 0x407a6(%rip), %rbx     # 0x99fb0
leaq 0x22697(%rip), %rsi     # 0x7bea8
movl $0x4d, %edx
movq %rbx, %rdi
callq 0xa320
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0xa2c0
movsbl %al, %esi
movq 0x40774(%rip), %rdi     # 0x99fb0
callq 0xa030
movq %rax, %rdi
callq 0xa200
movq 0x40760(%rip), %rbx     # 0x99fb0
leaq 0x2269f(%rip), %rsi     # 0x7bef6
movl $0x40, %edx
movq %rbx, %rdi
callq 0xa320
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0xa2c0
movsbl %al, %esi
movq 0x4072e(%rip), %rdi     # 0x99fb0
callq 0xa030
movq %rax, %rdi
callq 0xa200
movq 0x4071a(%rip), %rbx     # 0x99fb0
leaq 0x2269a(%rip), %rsi     # 0x7bf37
movl $0x39, %edx
movq %rbx, %rdi
callq 0xa320
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0xa2c0
movsbl %al, %esi
movq 0x406e8(%rip), %rbx     # 0x99fb0
movq %rbx, %rdi
callq 0xa030
movq %rax, %rdi
callq 0xa200
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0xa2c0
movsbl %al, %esi
movq 0x406ba(%rip), %rdi     # 0x99fb0
callq 0xa030
movq %rax, %rdi
callq 0xa200
movq 0x406a6(%rip), %rbx     # 0x99fb0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0xa2c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0xa030
movq %rax, %rdi
callq 0xa200
leaq 0x150(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x59947
callq 0xa2b0
leaq 0x130(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5995d
callq 0xa2b0
leaq 0x100(%rsp), %rbx
movq %rbx, %rdi
callq 0x14adc
movq -0x20(%rbx), %rdi
leaq 0xf0(%rsp), %rax
cmpq %rax, %rdi
je 0x59983
callq 0xa2b0
xorl %eax, %eax
addq $0x2f8, %rsp            # imm = 0x2F8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpb $0x1, 0x11a(%rsp)
jne 0x59a2c
movq 0x40604(%rip), %rdi     # 0x99fb0
leaq 0x225be(%rip), %rsi     # 0x7bf71
movl $0xf, %edx
callq 0xa320
movq 0x405ec(%rip), %rdi     # 0x99fb0
xorl %esi, %esi
callq 0xa500
movq %rax, %rbx
leaq 0x2117a(%rip), %rsi     # 0x7ab4f
movl $0x1, %edx
movq %rax, %rdi
callq 0xa320
movq %rbx, %rdi
xorl %esi, %esi
callq 0xa500
movq %rax, %rbx
leaq 0x21159(%rip), %rsi     # 0x7ab4f
movl $0x1, %edx
movq %rax, %rdi
callq 0xa320
movq %rbx, %rdi
movl $0x1, %esi
callq 0xa500
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0xa2c0
jmp 0x5991e
leaq 0x268(%rsp), %rdi
callq 0x2c5c8
movq 0x100(%rsp), %rax
movq 0x108(%rsp), %rcx
cmpq %rcx, %rax
je 0x59a69
subq %rax, %rcx
cmpq $0x21, %rcx
jb 0x59b07
movl $0x41, %edx
leaq 0x2253e(%rip), %rsi     # 0x7bfa5
jmp 0x59a75
movl $0x23, %edx
leaq 0x2250c(%rip), %rsi     # 0x7bf81
movq 0x40534(%rip), %rbx     # 0x99fb0
movq %rbx, %rdi
callq 0xa320
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0xa2c0
movsbl %al, %esi
movq 0x4050e(%rip), %rdi     # 0x99fb0
callq 0xa030
movq %rax, %rdi
callq 0xa200
movq 0x404fa(%rip), %rbx     # 0x99fb0
leaq 0x22159(%rip), %rsi     # 0x7bc16
movl $0x23, %edx
movq %rbx, %rdi
callq 0xa320
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0xa2c0
movsbl %al, %esi
movq 0x404c8(%rip), %rdi     # 0x99fb0
callq 0xa030
movq %rax, %rdi
callq 0xa200
leaq 0x268(%rsp), %rdi
callq 0x5aac4
jmp 0x59931
leaq 0x218(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x208(%rsp), %rdi
callq 0xde0c
movzbl 0x118(%rsp), %edx
leaq 0x268(%rsp), %rdi
leaq 0x208(%rsp), %rsi
callq 0x2c658
movq 0x208(%rsp), %rdi
cmpq %r14, %rdi
je 0x59b59
callq 0xa2b0
cmpb $0x1, 0x11b(%rsp)
jne 0x59c0c
leaq 0x407a5(%rip), %rcx     # 0x9a313
movb 0x118(%rsp), %al
cmpb $0x1, (%rcx)
jne 0x59ba3
testb %al, %al
je 0x59be9
movq 0x4042b(%rip), %rdi     # 0x99fb0
callq 0xa1a0
movq %rax, %rbx
leaq 0x22453(%rip), %rsi     # 0x7bfe7
movl $0x3d, %edx
movq %rax, %rdi
callq 0xa320
jmp 0x59c04
testb %al, %al
je 0x59bda
movq 0x40402(%rip), %rdi     # 0x99fb0
callq 0xa1a0
movq %rax, %rbx
leaq 0x224b1(%rip), %rsi     # 0x7c06e
movl $0x16, %edx
movq %rax, %rdi
callq 0xa320
movq %rbx, %rdi
callq 0xa1a0
movq %rax, %rdi
callq 0xa1a0
leaq 0x268(%rsp), %rdi
callq 0x2d25e
jmp 0x59c0c
movq 0x403c0(%rip), %rbx     # 0x99fb0
leaq 0x2242e(%rip), %rsi     # 0x7c025
movl $0x48, %edx
movq %rbx, %rdi
callq 0xa320
movq %rbx, %rdi
callq 0xa1a0
movq 0x148(%rsp), %rax
orq 0x128(%rsp), %rax
jne 0x59c2c
cmpb $0x1, 0x160(%rsp)
jne 0x5a37c
leaq 0x1e8(%rsp), %rdi
leaq 0x268(%rsp), %rsi
callq 0x2d0b4
leaq 0x406cb(%rip), %rax     # 0x9a313
cmpb $0x1, (%rax)
jne 0x59c83
cmpb $0x1, 0x118(%rsp)
jne 0x59d82
movq 0x4034e(%rip), %rdi     # 0x99fb0
callq 0xa1a0
movq %rax, %rbx
leaq 0x22414(%rip), %rsi     # 0x7c085
movl $0x24, %edx
movq %rax, %rdi
callq 0xa320
jmp 0x59d9d
leaq 0x90(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x120(%rsp), %rsi
movq 0x128(%rsp), %rdx
addq %rsi, %rdx
leaq 0x80(%rsp), %rdi
callq 0xde0c
cmpq $0x0, 0x88(%rsp)
jne 0x59cce
leaq 0x223fb(%rip), %rsi     # 0x7c0bc
leaq 0x80(%rsp), %rdi
callq 0xa3b0
cmpb $0x1, 0x118(%rsp)
jne 0x59daa
movq 0x402cd(%rip), %rdi     # 0x99fb0
callq 0xa1a0
movq %rax, %rbx
leaq 0x1d8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x21a1c(%rip), %rsi     # 0x7b71a
leaq 0x21a1d(%rip), %rdx     # 0x7b722
leaq 0x1c8(%rsp), %rdi
callq 0xdfa8
leaq 0x40(%rsp), %rdi
leaq 0x1e8(%rsp), %rsi
leaq 0x1c8(%rsp), %rdx
movl $0x1, %ecx
xorl %r8d, %r8d
movl $0xffffffff, %r9d       # imm = 0xFFFFFFFF
callq 0x5cf38
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq %rbx, %rdi
callq 0xa320
movq %rax, %rdi
callq 0xa1a0
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x59d67
callq 0xa2b0
movq 0x1c8(%rsp), %rdi
cmpq %r14, %rdi
je 0x59d79
callq 0xa2b0
movb 0x118(%rsp), %al
jmp 0x59dac
movq 0x40227(%rip), %rbx     # 0x99fb0
leaq 0x2231a(%rip), %rsi     # 0x7c0aa
movl $0x11, %edx
movq %rbx, %rdi
callq 0xa320
movq %rbx, %rdi
callq 0xa1a0
jmp 0x5a366
xorl %eax, %eax
movzbl %al, %edx
andl $0x1, %edx
leaq 0x80(%rsp), %rdi
leaq 0x1e8(%rsp), %rsi
callq 0x5e6db
movq 0x148(%rsp), %rdx
testq %rdx, %rdx
jne 0x59de2
cmpb $0x1, 0x160(%rsp)
jne 0x5a33c
leaq 0x50(%rsp), %rax
movq %rax, -0x10(%rax)
movq 0x140(%rsp), %rsi
addq %rsi, %rdx
leaq 0x40(%rsp), %rdi
callq 0xde0c
cmpq $0x0, 0x48(%rsp)
jne 0x59e19
leaq 0x222c3(%rip), %rsi     # 0x7c0d2
leaq 0x40(%rsp), %rdi
callq 0xa3b0
leaq 0x70(%rsp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x222ae(%rip), %rsi     # 0x7c0e2
leaq 0xc0(%rsp), %rdi
leaq 0x80(%rsp), %rdx
callq 0xdc11
leaq 0x222a3(%rip), %rsi     # 0x7c0f3
leaq 0xc0(%rsp), %rdi
callq 0xa560
leaq 0xb0(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x59e8d
movq %rdx, 0xa0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xb0(%rsp)
jmp 0x59e94
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq 0x8(%rax), %rdx
leaq 0xa0(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rdx
callq 0x5aa69
leaq 0x223a1(%rip), %rsi     # 0x7c26a
leaq 0x20(%rsp), %rdi
callq 0xa560
leaq 0x10(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x59ef9
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x59f00
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rsp, %rbx
movq %rdx, 0x8(%rbx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x60(%rsp), %rdi
movq %rbx, %rsi
callq 0xa370
movq (%rbx), %rdi
cmpq %r14, %rdi
je 0x59f34
callq 0xa2b0
leaq 0x30(%rsp), %r13
movq -0x10(%r13), %rdi
cmpq %r13, %rdi
je 0x59f47
callq 0xa2b0
movq 0xa0(%rsp), %rdi
cmpq %rbp, %rdi
je 0x59f59
callq 0xa2b0
leaq 0xd0(%rsp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x59f6f
callq 0xa2b0
cmpb $0x1, 0x118(%rsp)
jne 0x5a01e
leaq 0x22176(%rip), %rsi     # 0x7c0fa
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rdx
callq 0xdc11
leaq 0x222d0(%rip), %rsi     # 0x7c26a
leaq 0x20(%rsp), %rdi
callq 0xa560
movq %r14, (%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x59fc5
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x59fcc
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x3ffbc(%rip), %rdi     # 0x99fb0
callq 0xa320
movq %rax, %rdi
callq 0xa1a0
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x5a00f
callq 0xa2b0
movq 0x20(%rsp), %rdi
cmpq %r13, %rdi
je 0x5a01e
callq 0xa2b0
leaq 0x1b8(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x60(%rsp), %rsi
movq 0x68(%rsp), %rdx
addq %rsi, %rdx
leaq 0x1a8(%rsp), %rdi
callq 0xde0c
leaq 0x248(%rsp), %rdi
leaq 0x1a8(%rsp), %rsi
movl $0x1, %edx
callq 0x5eda8
leaq 0x258(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5a075
callq 0xa2b0
movq 0x1a8(%rsp), %rdi
cmpq %r12, %rdi
je 0x5a087
callq 0xa2b0
cmpb $0x1, 0x160(%rsp)
jne 0x5a2f7
cmpb $0x1, 0x118(%rsp)
jne 0x5a0ab
movq 0x3ff0a(%rip), %rdi     # 0x99fb0
callq 0xa1a0
leaq 0x22056(%rip), %rsi     # 0x7c108
leaq 0xa0(%rsp), %rdi
leaq 0x40(%rsp), %rdx
callq 0xdc11
leaq 0x22040(%rip), %rsi     # 0x7c10b
leaq 0xa0(%rsp), %rdi
callq 0xa560
movq %r13, 0x20(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5a0fb
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x5a103
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, 0x28(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x198(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x1d96d(%rip), %rsi     # 0x77a9c
leaq 0x1d967(%rip), %rdx     # 0x77a9d
leaq 0x188(%rsp), %rdi
callq 0xdfa8
leaq 0x4032e(%rip), %rsi     # 0x9a478
leaq 0xc0(%rsp), %rdi
leaq 0x188(%rsp), %rdx
xorl %ecx, %ecx
callq 0x6f7ca
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
leaq 0xc0(%rsp), %rdx
callq 0x159ca
leaq 0x60(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0xa370
movq (%rbx), %rdi
cmpq %r14, %rdi
je 0x5a193
callq 0xa2b0
movq 0xc0(%rsp), %rdi
cmpq %r15, %rdi
je 0x5a1a5
callq 0xa2b0
movq 0x188(%rsp), %rdi
cmpq %r12, %rdi
je 0x5a1b7
callq 0xa2b0
movq 0x20(%rsp), %rdi
cmpq %r13, %rdi
je 0x5a1c6
callq 0xa2b0
movq 0xa0(%rsp), %rdi
cmpq %rbp, %rdi
je 0x5a1d8
callq 0xa2b0
cmpb $0x1, 0x118(%rsp)
jne 0x5a28f
leaq 0x21f0d(%rip), %rsi     # 0x7c0fa
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rdx
callq 0xdc11
leaq 0x22067(%rip), %rsi     # 0x7c26a
leaq 0x20(%rsp), %rdi
callq 0xa560
movq %r14, (%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5a22e
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x5a235
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x3fd53(%rip), %rdi     # 0x99fb0
callq 0xa320
movq %rax, %rdi
callq 0xa1a0
movq %rax, %rdi
callq 0xa1a0
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x5a280
callq 0xa2b0
movq 0x20(%rsp), %rdi
cmpq %r13, %rdi
je 0x5a28f
callq 0xa2b0
leaq 0x178(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x60(%rsp), %rsi
movq 0x68(%rsp), %rdx
addq %rsi, %rdx
leaq 0x168(%rsp), %rdi
callq 0xde0c
leaq 0x228(%rsp), %rdi
leaq 0x168(%rsp), %rsi
movl $0x1, %edx
callq 0x5eda8
leaq 0x238(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5a2e5
callq 0xa2b0
movq 0x168(%rsp), %rdi
cmpq %r14, %rdi
je 0x5a2f7
callq 0xa2b0
cmpq $0x0, 0x148(%rsp)
jne 0x5a30c
movq 0x40(%rsp), %rdi
callq 0xa530
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
leaq 0x90(%rsp), %r15
leaq 0x50(%rsp), %rbx
je 0x5a32d
callq 0xa2b0
movq 0x40(%rsp), %rdi
cmpq %rbx, %rdi
je 0x5a33c
callq 0xa2b0
cmpq $0x0, 0x128(%rsp)
jne 0x5a354
movq 0x80(%rsp), %rdi
callq 0xa530
movq 0x80(%rsp), %rdi
cmpq %r15, %rdi
je 0x5a366
callq 0xa2b0
leaq 0x1f8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5a37c
callq 0xa2b0
cmpb $0x1, 0x118(%rsp)
jne 0x59af5
movq 0x3fc1f(%rip), %rdi     # 0x99fb0
callq 0xa1a0
movq %rax, %rbx
leaq 0x21d87(%rip), %rsi     # 0x7c127
movl $0xd, %edx
movq %rax, %rdi
callq 0xa320
movq %rbx, %rdi
callq 0xa1a0
jmp 0x59af5
jmp 0x5a445
jmp 0x5a505
movq %rax, %rbx
jmp 0x5a51c
movq %rax, %rbx
movq 0x168(%rsp), %rdi
cmpq %r14, %rdi
jne 0x5a4d3
jmp 0x5a508
movq %rax, %rbx
movq 0xc0(%rsp), %rdi
cmpq %r15, %rdi
je 0x5a3ff
callq 0xa2b0
jmp 0x5a3ff
movq %rax, %rbx
movq 0x188(%rsp), %rdi
cmpq %r12, %rdi
je 0x5a416
callq 0xa2b0
jmp 0x5a416
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r13, %rdi
je 0x5a42a
callq 0xa2b0
jmp 0x5a42a
movq %rax, %rbx
movq 0xa0(%rsp), %rdi
cmpq %rbp, %rdi
jne 0x5a4d3
jmp 0x5a508
jmp 0x5a505
movq %rax, %rbx
jmp 0x5a484
jmp 0x5a505
movq %rax, %rbx
jmp 0x5a4f4
jmp 0x5a532
jmp 0x5a473
movq %rax, %rbx
movq 0x1a8(%rsp), %rdi
cmpq %r12, %rdi
jne 0x5a4d3
jmp 0x5a508
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x5a484
callq 0xa2b0
movq 0x20(%rsp), %rdi
cmpq %r13, %rdi
jne 0x5a4d3
jmp 0x5a508
movq %rax, %rbx
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5a4ab
callq 0xa2b0
jmp 0x5a4ab
movq %rax, %rbx
movq 0xa0(%rsp), %rdi
cmpq %rbp, %rdi
je 0x5a4c2
callq 0xa2b0
jmp 0x5a4c2
movq %rax, %rbx
leaq 0xd0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5a508
callq 0xa2b0
jmp 0x5a508
jmp 0x5a505
jmp 0x5a532
movq %rax, %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5a4f4
callq 0xa2b0
movq 0x1c8(%rsp), %rdi
cmpq %r14, %rdi
jne 0x5a52b
jmp 0x5a535
jmp 0x5a553
movq %rax, %rbx
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x5a51c
callq 0xa2b0
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x5a535
callq 0xa2b0
jmp 0x5a535
movq %rax, %rbx
movq 0x80(%rsp), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x5a556
callq 0xa2b0
jmp 0x5a556
jmp 0x5a582
movq %rax, %rbx
leaq 0x1f8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5a585
callq 0xa2b0
jmp 0x5a585
movq %rax, %rbx
movq 0x208(%rsp), %rdi
cmpq %r14, %rdi
jne 0x5a567
jmp 0x5a585
jmp 0x5a594
movq %rax, %rbx
leaq 0x268(%rsp), %rdi
callq 0x5aac4
jmp 0x5a597
movq %rax, %rbx
leaq 0xe0(%rsp), %rdi
callq 0x5ab42
movq %rbx, %rdi
callq 0xa510