// File: UltiRTS[P]gameLauncher/launcher.cpp
// Function: main
int main(int argc,char* argv[]) {
	SDL_Init(SDL_INIT_AUDIO);
	Windows = SDL_CreateWindow("TestString",100,100,600,350,SDL_WINDOW_SHOWN | SDL_WINDOW_BORDERLESS);
	WindowRen = SDL_CreateRenderer(Windows,-1,0);
	// SDL_Event event;
	SDL_SetRenderDrawColor(WindowRen, 0, 255, 255, 255);
	SDL_RenderFillRect(WindowRen, &rect);
/*
	while(true) {
		while (SDL_PollEvent(&event)) {
			if (event.type == SDL_QUIT) {
				SDL_Quit();
				return 0;
			}
		}
	SDL_Delay(2);
	}
	return 0;
*/
	string basePath = getPath(argc, argv);
	string busyboxPath = basePath + "busybox.exe";
	string launcherPath = basePath + "launcher.exe";
	string enginePath = basePath + "Current_Engine-master/spring --menu 'Chobby $VERSION'";
	rollLowerRightCMD("Prob_path active");

	cout << "Checking for update" << endl;
	string updateCMD = busyboxPath + " rm -rf /dev/shm/version.zip &&" + busyboxPath +
		" wget -P /dev/shm http://files.ultirts.net/newrelease/version.zip";
	//get the newest version and avoid writing to the actual disk if possible
	system(updateCMD.c_str());
	//using some simple compression to prevent little hackers
	string readRemoteVerCMD = busyboxPath + " zcat /dev/shm/version.zip";
	//need to get the actual output, risky but have to
	string version = exec(readRemoteVerCMD.c_str());
	//using some simple compression to prevent little hackers
	string readLocalVerCMD = busyboxPath + " zcat " + basePath + "localver";
	//need to get the actual output, risky but have to
	string lVersion = exec(readLocalVerCMD.c_str());
	string localVerPath = basePath + "localver";
	rollLowerRightCMD("Prob_version active");
	//check first run
	if (!exists(localVerPath.c_str())) {
		rollLowerRightCMD("Prob_init_run active");
		string initVer = busyboxPath + " touch " + basePath + "localver";
		system(initVer.c_str()); //initialize the version pool
	}
	if (lVersion.compare(version) != 0) {
		string cpCMD = busyboxPath+" rm "+basePath+"localver &&" + busyboxPath + " mv /dev/shm/version.zip " + basePath + "localver";
		system(cpCMD.c_str()); //get the newest version and avoid writing to the actual disk if possible
		isUpdated = true;
	}
	//isUpdated is from version query
	if (isUpdated) {
		rollLowerRightCMD("Update active");
		string updater = busyboxPath + " wget -P " + basePath +
			" http://files.ultirts.net/newrelease/updater && cd " + basePath +
			" && chmod +Xx * &&" + basePath + "updater";
		system(updater.c_str()); //get the newest version and avoid writing to the actual disk if possible
		cout << "Updated, running new launcher"<<endl;
		system(launcherPath.c_str());
		return 0;
	} else {
		rollLowerRightCMD("Querying default engine");
		cout << "launcher path is "<< basePath<<endl;
		cout << "infering engine path "<< enginePath<<endl;
		SDL_Quit();
		system(enginePath.c_str());
	}
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x550, %rsp            # imm = 0x550
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0x10, %edi
callq 0x3260
leaq 0x3e82(%rip), %rdi      # 0x802c
movl $0x64, %edx
movl $0x258, %ecx            # imm = 0x258
movl $0x15e, %r8d            # imm = 0x15E
movl $0x14, %r9d
movl %edx, %esi
callq 0x3050
movq %rax, 0x88ea(%rip)      # 0xcab8
movq 0x88e3(%rip), %rdi      # 0xcab8
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
xorl %edx, %edx
movl %edx, -0x4dc(%rbp)
callq 0x3040
movl -0x4dc(%rbp), %esi
movq %rax, 0x88bc(%rip)      # 0xcab0
movq 0x88b5(%rip), %rdi      # 0xcab0
movl $0xff, %r8d
movl %r8d, %edx
movl %r8d, %ecx
callq 0x33a0
movq 0x889d(%rip), %rdi      # 0xcab0
leaq 0x8056(%rip), %rsi      # 0xc270
callq 0x3150
movl -0x8(%rbp), %esi
movq -0x10(%rbp), %rdx
leaq -0x30(%rbp), %rdi
movq %rdi, -0x4d8(%rbp)
callq 0x38d0
movq -0x4d8(%rbp), %rsi
leaq 0x3df3(%rip), %rdx      # 0x8037
leaq -0x50(%rbp), %rdi
callq 0x54b0
jmp 0x424f
leaq 0x3ded(%rip), %rdx      # 0x8043
leaq -0x80(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x54b0
jmp 0x4265
leaq 0x3de4(%rip), %rdx      # 0x8050
leaq -0xa0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x54b0
jmp 0x427e
leaq -0xc1(%rbp), %rdi
movq %rdi, -0x4e8(%rbp)
callq 0x3440
movq -0x4e8(%rbp), %rdx
leaq 0x3de7(%rip), %rsi      # 0x8086
leaq -0xc0(%rbp), %rdi
callq 0x4f00
jmp 0x42ad
leaq -0xc0(%rbp), %rdi
callq 0x3d10
jmp 0x42bb
leaq -0xc0(%rbp), %rdi
callq 0x3180
leaq -0xc1(%rbp), %rdi
callq 0x3300
movq 0x7cee(%rip), %rdi      # 0xbfc8
leaq 0x3db6(%rip), %rsi      # 0x8097
callq 0x32a0
movq %rax, -0x4f0(%rbp)
jmp 0x42ef
movq -0x4f0(%rbp), %rdi
movq 0x7cb3(%rip), %rsi      # 0xbfb0
callq 0x32e0
jmp 0x4304
leaq 0x3da0(%rip), %rdx      # 0x80ab
leaq -0x128(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x54b0
jmp 0x431d
leaq -0x108(%rbp), %rdi
leaq -0x128(%rbp), %rsi
leaq -0x50(%rbp), %rdx
callq 0x5580
jmp 0x4336
leaq 0x3d8e(%rip), %rdx      # 0x80cb
leaq -0xe8(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x5530
jmp 0x4352
leaq -0x108(%rbp), %rdi
callq 0x3180
leaq -0x128(%rbp), %rdi
callq 0x3180
leaq -0xe8(%rbp), %rdi
callq 0x3100
movq %rax, %rdi
callq 0x3230
jmp 0x4380
leaq 0x3d86(%rip), %rdx      # 0x810d
leaq -0x148(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x54b0
jmp 0x4399
leaq -0x148(%rbp), %rdi
callq 0x3100
movq %rax, %rsi
leaq -0x168(%rbp), %rdi
callq 0x3ab0
jmp 0x43b6
leaq 0x3d6b(%rip), %rdx      # 0x8128
leaq -0x1c8(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x54b0
jmp 0x43cf
leaq -0x1a8(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0x5580
jmp 0x43e8
leaq 0x3d40(%rip), %rdx      # 0x812f
leaq -0x188(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x5530
jmp 0x4404
leaq -0x1a8(%rbp), %rdi
callq 0x3180
leaq -0x1c8(%rbp), %rdi
callq 0x3180
leaq -0x188(%rbp), %rdi
callq 0x3100
movq %rax, %rsi
leaq -0x1e8(%rbp), %rdi
callq 0x3ab0
jmp 0x4439
leaq 0x3cef(%rip), %rdx      # 0x812f
leaq -0x208(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x54b0
jmp 0x4452
leaq -0x229(%rbp), %rdi
movq %rdi, -0x4f8(%rbp)
callq 0x3440
movq -0x4f8(%rbp), %rdx
leaq 0x3cc5(%rip), %rsi      # 0x8138
leaq -0x228(%rbp), %rdi
callq 0x4f00
jmp 0x4481
leaq -0x228(%rbp), %rdi
callq 0x3d10
jmp 0x448f
leaq -0x228(%rbp), %rdi
callq 0x3180
leaq -0x229(%rbp), %rdi
callq 0x3300
leaq -0x208(%rbp), %rdi
callq 0x3100
movq %rax, %rdi
callq 0x3a20
movb %al, -0x4f9(%rbp)
jmp 0x44c3
movb -0x4f9(%rbp), %al
testb $0x1, %al
jne 0x47c6
jmp 0x44d3
leaq -0x251(%rbp), %rdi
movq %rdi, -0x508(%rbp)
callq 0x3440
movq -0x508(%rbp), %rdx
leaq 0x3c58(%rip), %rsi      # 0x814c
leaq -0x250(%rbp), %rdi
callq 0x4f00
jmp 0x4502
leaq -0x250(%rbp), %rdi
callq 0x3d10
jmp 0x4510
leaq -0x250(%rbp), %rdi
callq 0x3180
leaq -0x251(%rbp), %rdi
callq 0x3300
leaq 0x3c32(%rip), %rdx      # 0x8161
leaq -0x2b8(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x54b0
jmp 0x4541
leaq -0x298(%rbp), %rdi
leaq -0x2b8(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0x5580
jmp 0x455a
leaq 0x3bce(%rip), %rdx      # 0x812f
leaq -0x278(%rbp), %rdi
leaq -0x298(%rbp), %rsi
callq 0x5530
jmp 0x4576
leaq -0x298(%rbp), %rdi
callq 0x3180
leaq -0x2b8(%rbp), %rdi
callq 0x3180
leaq -0x278(%rbp), %rdi
callq 0x3100
movq %rax, %rdi
callq 0x3230
jmp 0x45a4
leaq -0x278(%rbp), %rdi
callq 0x3180
jmp 0x47c6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4ee5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4edc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4ed3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x460e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x3180
leaq -0xc1(%rbp), %rdi
callq 0x3300
jmp 0x4ec7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4ec7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4656
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x108(%rbp), %rdi
callq 0x3180
leaq -0x128(%rbp), %rdi
callq 0x3180
jmp 0x4ec7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4ebb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4eaf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4ea3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x46c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x3180
leaq -0x1c8(%rbp), %rdi
callq 0x3180
jmp 0x4ea3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4e97
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4e8b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4719
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x228(%rbp), %rdi
callq 0x3180
leaq -0x229(%rbp), %rdi
callq 0x3300
jmp 0x4e7f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4e7f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4761
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x250(%rbp), %rdi
callq 0x3180
leaq -0x251(%rbp), %rdi
callq 0x3300
jmp 0x4e7f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4798
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x298(%rbp), %rdi
callq 0x3180
leaq -0x2b8(%rbp), %rdi
callq 0x3180
jmp 0x4e7f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x278(%rbp), %rdi
callq 0x3180
jmp 0x4e7f
leaq -0x1e8(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0x3030
movl %eax, -0x50c(%rbp)
jmp 0x47e1
movl -0x50c(%rbp), %eax
cmpl $0x0, %eax
je 0x49dd
leaq 0x3972(%rip), %rdx      # 0x8169
leaq -0x398(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x54b0
jmp 0x4809
leaq -0x378(%rbp), %rdi
leaq -0x398(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0x5580
jmp 0x4822
leaq 0x3945(%rip), %rdx      # 0x816e
leaq -0x358(%rbp), %rdi
leaq -0x378(%rbp), %rsi
callq 0x5530
jmp 0x483e
leaq -0x338(%rbp), %rdi
leaq -0x358(%rbp), %rsi
leaq -0x50(%rbp), %rdx
callq 0x5580
jmp 0x4857
leaq 0x391c(%rip), %rdx      # 0x817a
leaq -0x318(%rbp), %rdi
leaq -0x338(%rbp), %rsi
callq 0x5530
jmp 0x4873
leaq -0x2f8(%rbp), %rdi
leaq -0x318(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0x5580
jmp 0x488c
leaq 0x389c(%rip), %rdx      # 0x812f
leaq -0x2d8(%rbp), %rdi
leaq -0x2f8(%rbp), %rsi
callq 0x5530
jmp 0x48a8
leaq -0x2f8(%rbp), %rdi
callq 0x3180
leaq -0x318(%rbp), %rdi
callq 0x3180
leaq -0x338(%rbp), %rdi
callq 0x3180
leaq -0x358(%rbp), %rdi
callq 0x3180
leaq -0x378(%rbp), %rdi
callq 0x3180
leaq -0x398(%rbp), %rdi
callq 0x3180
leaq -0x2d8(%rbp), %rdi
callq 0x3100
movq %rax, %rdi
callq 0x3230
jmp 0x4906
movb $0x1, 0x819c(%rip)      # 0xcaa9
leaq -0x2d8(%rbp), %rdi
callq 0x3180
jmp 0x49dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x49af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x49a3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4997
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x498b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x497f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x2f8(%rbp), %rdi
callq 0x3180
leaq -0x318(%rbp), %rdi
callq 0x3180
leaq -0x338(%rbp), %rdi
callq 0x3180
leaq -0x358(%rbp), %rdi
callq 0x3180
leaq -0x378(%rbp), %rdi
callq 0x3180
leaq -0x398(%rbp), %rdi
callq 0x3180
jmp 0x4e7f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x2d8(%rbp), %rdi
callq 0x3180
jmp 0x4e7f
testb $0x1, 0x80c5(%rip)      # 0xcaa9
je 0x4cb1
leaq -0x3b9(%rbp), %rdi
movq %rdi, -0x518(%rbp)
callq 0x3440
movq -0x518(%rbp), %rdx
leaq 0x3789(%rip), %rsi      # 0x8194
leaq -0x3b8(%rbp), %rdi
callq 0x4f00
jmp 0x4a19
leaq -0x3b8(%rbp), %rdi
callq 0x3d10
jmp 0x4a27
leaq -0x3b8(%rbp), %rdi
callq 0x3180
leaq -0x3b9(%rbp), %rdi
callq 0x3300
leaq 0x375c(%rip), %rdx      # 0x81a2
leaq -0x4a0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x54b0
jmp 0x4a58
leaq -0x480(%rbp), %rdi
leaq -0x4a0(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0x5580
jmp 0x4a71
leaq 0x3734(%rip), %rdx      # 0x81ac
leaq -0x460(%rbp), %rdi
leaq -0x480(%rbp), %rsi
callq 0x5530
jmp 0x4a8d
leaq -0x440(%rbp), %rdi
leaq -0x460(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0x5580
jmp 0x4aa6
leaq 0x3733(%rip), %rdx      # 0x81e0
leaq -0x420(%rbp), %rdi
leaq -0x440(%rbp), %rsi
callq 0x5530
jmp 0x4ac2
leaq -0x400(%rbp), %rdi
leaq -0x420(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0x5580
jmp 0x4adb
leaq 0x3711(%rip), %rdx      # 0x81f3
leaq -0x3e0(%rbp), %rdi
leaq -0x400(%rbp), %rsi
callq 0x5530
jmp 0x4af7
leaq -0x400(%rbp), %rdi
callq 0x3180
leaq -0x420(%rbp), %rdi
callq 0x3180
leaq -0x440(%rbp), %rdi
callq 0x3180
leaq -0x460(%rbp), %rdi
callq 0x3180
leaq -0x480(%rbp), %rdi
callq 0x3180
leaq -0x4a0(%rbp), %rdi
callq 0x3180
leaq -0x3e0(%rbp), %rdi
callq 0x3100
movq %rax, %rdi
callq 0x3230
jmp 0x4b55
movq 0x746c(%rip), %rdi      # 0xbfc8
leaq 0x3698(%rip), %rsi      # 0x81fb
callq 0x32a0
movq %rax, -0x520(%rbp)
jmp 0x4b71
movq -0x520(%rbp), %rdi
movq 0x7431(%rip), %rsi      # 0xbfb0
callq 0x32e0
jmp 0x4b86
leaq -0x80(%rbp), %rdi
callq 0x3100
movq %rax, %rdi
callq 0x3230
jmp 0x4b99
movl $0x0, -0x4(%rbp)
movl $0x1, -0x4a4(%rbp)
leaq -0x3e0(%rbp), %rdi
callq 0x3180
jmp 0x4e04
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4be1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x3b8(%rbp), %rdi
callq 0x3180
leaq -0x3b9(%rbp), %rdi
callq 0x3300
jmp 0x4e7f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4c83
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4c77
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4c6b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4c5f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4c53
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x400(%rbp), %rdi
callq 0x3180
leaq -0x420(%rbp), %rdi
callq 0x3180
leaq -0x440(%rbp), %rdi
callq 0x3180
leaq -0x460(%rbp), %rdi
callq 0x3180
leaq -0x480(%rbp), %rdi
callq 0x3180
leaq -0x4a0(%rbp), %rdi
callq 0x3180
jmp 0x4e7f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x3e0(%rbp), %rdi
callq 0x3180
jmp 0x4e7f
leaq -0x4c9(%rbp), %rdi
movq %rdi, -0x528(%rbp)
callq 0x3440
movq -0x528(%rbp), %rdx
leaq 0x3547(%rip), %rsi      # 0x8219
leaq -0x4c8(%rbp), %rdi
callq 0x4f00
jmp 0x4ce0
leaq -0x4c8(%rbp), %rdi
callq 0x3d10
jmp 0x4cee
leaq -0x4c8(%rbp), %rdi
callq 0x3180
leaq -0x4c9(%rbp), %rdi
callq 0x3300
movq 0x72bb(%rip), %rdi      # 0xbfc8
leaq 0x351d(%rip), %rsi      # 0x8231
callq 0x32a0
movq %rax, -0x530(%rbp)
jmp 0x4d22
movq -0x530(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x3250
movq %rax, -0x538(%rbp)
jmp 0x4d3b
movq -0x538(%rbp), %rdi
movq 0x7267(%rip), %rsi      # 0xbfb0
callq 0x32e0
jmp 0x4d50
movq 0x7271(%rip), %rdi      # 0xbfc8
leaq 0x34e5(%rip), %rsi      # 0x8243
callq 0x32a0
movq %rax, -0x540(%rbp)
jmp 0x4d6c
movq -0x540(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x3250
movq %rax, -0x548(%rbp)
jmp 0x4d88
movq -0x548(%rbp), %rdi
movq 0x721a(%rip), %rsi      # 0xbfb0
callq 0x32e0
jmp 0x4d9d
callq 0x3060
jmp 0x4da4
leaq -0xa0(%rbp), %rdi
callq 0x3100
movq %rax, %rdi
callq 0x3230
jmp 0x4dba
jmp 0x4df3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4de2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x4c8(%rbp), %rdi
callq 0x3180
leaq -0x4c9(%rbp), %rdi
callq 0x3300
jmp 0x4e7f
movl $0x0, -0x4(%rbp)
movl $0x1, -0x4a4(%rbp)
leaq -0x208(%rbp), %rdi
callq 0x3180
leaq -0x1e8(%rbp), %rdi
callq 0x3180
leaq -0x188(%rbp), %rdi
callq 0x3180
leaq -0x168(%rbp), %rdi
callq 0x3180
leaq -0x148(%rbp), %rdi
callq 0x3180
leaq -0xe8(%rbp), %rdi
callq 0x3180
leaq -0xa0(%rbp), %rdi
callq 0x3180
leaq -0x80(%rbp), %rdi
callq 0x3180
leaq -0x50(%rbp), %rdi
callq 0x3180
leaq -0x30(%rbp), %rdi
callq 0x3180
movl -0x4(%rbp), %eax
addq $0x550, %rsp            # imm = 0x550
popq %rbp
retq
leaq -0x208(%rbp), %rdi
callq 0x3180
leaq -0x1e8(%rbp), %rdi
callq 0x3180
leaq -0x188(%rbp), %rdi
callq 0x3180
leaq -0x168(%rbp), %rdi
callq 0x3180
leaq -0x148(%rbp), %rdi
callq 0x3180
leaq -0xe8(%rbp), %rdi
callq 0x3180
leaq -0xa0(%rbp), %rdi
callq 0x3180
leaq -0x80(%rbp), %rdi
callq 0x3180
leaq -0x50(%rbp), %rdi
callq 0x3180
leaq -0x30(%rbp), %rdi
callq 0x3180
movq -0x58(%rbp), %rdi
callq 0x3430
nopw (%rax,%rax)