// File: /workspace/github_cpp_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x4b8, %rsp            # imm = 0x4B8
movq %rsi, %rbx
movl $0x10, %edi
callq 0x21f0
leaq 0x249c(%rip), %rdi      # 0x502c
movl $0x64, %esi
movl $0x64, %edx
movl $0x258, %ecx            # imm = 0x258
movl $0x15e, %r8d            # imm = 0x15E
movl $0x14, %r9d
callq 0x2050
movq %rax, 0x4e81(%rip)      # 0x7a38
movq %rax, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
xorl %edx, %edx
callq 0x2040
movq %rax, 0x4e63(%rip)      # 0x7a30
movq %rax, %rdi
xorl %esi, %esi
movl $0xff, %edx
movl $0xff, %ecx
movl $0xff, %r8d
callq 0x22e0
movq 0x4e42(%rip), %rdi      # 0x7a30
leaq 0x45fb(%rip), %rsi      # 0x71f0
callq 0x2130
leaq -0x70(%rbp), %r14
movq %r14, %rdi
movq %rbx, %rdx
callq 0x25ec
leaq -0x40(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq (%r14), %rsi
movq 0x8(%r14), %rdx
addq %rsi, %rdx
leaq -0x50(%rbp), %rdi
callq 0x434c
leaq 0x240c(%rip), %rsi      # 0x5037
leaq -0x50(%rbp), %rdi
callq 0x2390
leaq -0x1c0(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
leaq -0x1d0(%rbp), %rdi
callq 0x434c
leaq 0x23e6(%rip), %rsi      # 0x5043
leaq -0x1d0(%rbp), %rdi
callq 0x2390
leaq -0x180(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
leaq -0x190(%rbp), %rdi
callq 0x434c
leaq 0x23be(%rip), %rsi      # 0x5050
leaq -0x190(%rbp), %rdi
callq 0x2390
leaq -0x2c0(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x23d6(%rip), %rsi      # 0x5086
leaq 0x23df(%rip), %rdx      # 0x5096
leaq -0x2d0(%rbp), %rdi
callq 0x43ea
leaq -0x2d0(%rbp), %rdi
callq 0x285e
movq -0x2d0(%rbp), %rdi
cmpq %rbx, %rdi
je 0x2cea
movq -0x2c0(%rbp), %rsi
incq %rsi
callq 0x2240
movq 0x42df(%rip), %rbx      # 0x6fd0
leaq 0x239f(%rip), %rsi      # 0x5097
movl $0x13, %edx
movq %rbx, %rdi
callq 0x2290
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq 0x42ad(%rip), %rdi      # 0x6fd0
callq 0x2030
movq %rax, %rdi
callq 0x2150
leaq -0xe0(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
leaq -0xf0(%rbp), %rdi
callq 0x434c
leaq 0x2352(%rip), %rsi      # 0x50ab
leaq -0xf0(%rbp), %rdi
callq 0x2390
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
leaq -0xf0(%rbp), %rdi
callq 0x20c0
leaq -0x4c8(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2da6
movq %rdx, -0x4d8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x4c8(%rbp)
jmp 0x2dad
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq -0x4d8(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x22f9(%rip), %rsi      # 0x50cb
callq 0x2390
leaq -0x200(%rbp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2e04
movq %rdx, -0x210(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x200(%rbp)
jmp 0x2e0a
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x208(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x4d8(%rbp), %rdi
cmpq %r15, %rdi
je 0x2e3f
movq -0x4c8(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0xf0(%rbp), %rdi
cmpq %rbx, %rdi
je 0x2e5a
movq -0xe0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x210(%rbp), %rdi
callq 0x21d0
leaq -0xf0(%rbp), %rdi
movq %rbx, (%rdi)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
callq 0x434c
leaq 0x2286(%rip), %rsi      # 0x510d
leaq -0xf0(%rbp), %rdi
callq 0x2390
movq -0xf0(%rbp), %rsi
leaq -0x2b0(%rbp), %rdi
callq 0x271e
leaq -0xc0(%rbp), %r12
movq %r12, -0x10(%r12)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
leaq -0xd0(%rbp), %rdi
callq 0x434c
leaq 0x2258(%rip), %rsi      # 0x5128
leaq -0xd0(%rbp), %rdi
callq 0x2390
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
leaq -0xd0(%rbp), %rdi
callq 0x20c0
movq %r15, -0x4d8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2f19
movq %rdx, -0x4d8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x4c8(%rbp)
jmp 0x2f20
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq -0x4d8(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x21ea(%rip), %rsi      # 0x512f
callq 0x2390
leaq -0x1e0(%rbp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2f77
movq %rdx, -0x1f0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x1e0(%rbp)
jmp 0x2f7d
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x1e8(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x4d8(%rbp), %rdi
cmpq %r15, %rdi
je 0x2fb2
movq -0x4c8(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0xd0(%rbp), %rdi
cmpq %r12, %rdi
je 0x2fcd
movq -0xc0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x1f0(%rbp), %rsi
leaq -0xd0(%rbp), %rdi
callq 0x271e
leaq -0x1a0(%rbp), %rax
movq %rax, -0x10(%rax)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
leaq -0x1b0(%rbp), %rdi
callq 0x434c
leaq 0x2126(%rip), %rsi      # 0x512f
leaq -0x1b0(%rbp), %rdi
callq 0x2390
leaq -0x280(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x2111(%rip), %rsi      # 0x5138
leaq 0x211d(%rip), %rdx      # 0x514b
leaq -0x290(%rbp), %rdi
callq 0x43ea
leaq -0x290(%rbp), %rdi
callq 0x285e
movq -0x290(%rbp), %rdi
cmpq %rbx, %rdi
je 0x3061
movq -0x280(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x1b0(%rbp), %rsi
leaq -0x4d8(%rbp), %rdi
movl $0x8, %edx
callq 0x2380
leaq -0x4d8(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
movl -0x4b8(%rbp,%rax), %ebx
callq 0x2090
testl %ebx, %ebx
je 0x322f
leaq -0x260(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x209f(%rip), %rsi      # 0x514c
leaq 0x20ac(%rip), %rdx      # 0x5160
leaq -0x270(%rbp), %rdi
callq 0x43ea
leaq -0x270(%rbp), %rdi
callq 0x285e
movq -0x270(%rbp), %rdi
cmpq %rbx, %rdi
je 0x30e7
movq -0x260(%rbp), %rsi
incq %rsi
callq 0x2240
leaq -0x80(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
leaq -0x90(%rbp), %rdi
callq 0x434c
leaq 0x2054(%rip), %rsi      # 0x5161
leaq -0x90(%rbp), %rdi
callq 0x2390
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
leaq -0x90(%rbp), %rdi
callq 0x20c0
leaq -0xa0(%rbp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x315a
movq %rdx, -0xb0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xa0(%rbp)
jmp 0x3161
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq -0xb0(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1fa9(%rip), %rsi      # 0x512f
callq 0x2390
movq %r15, -0x4d8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x31b4
movq %rdx, -0x4d8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x4c8(%rbp)
jmp 0x31bb
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, -0x4d0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0xb0(%rbp), %rdi
cmpq %r14, %rdi
je 0x31f0
movq -0xa0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x90(%rbp), %rdi
cmpq %rbx, %rdi
je 0x3208
movq -0x80(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x4d8(%rbp), %rdi
callq 0x21d0
movq -0x4d8(%rbp), %rdi
cmpq %r15, %rdi
je 0x322f
movq -0x4c8(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0xc8(%rbp), %rbx
movq -0x2a8(%rbp), %r14
cmpq %rbx, %r14
movq %rbx, %rdx
cmovbq %r14, %rdx
testq %rdx, %rdx
je 0x326e
movq -0x2b0(%rbp), %rsi
movq -0xd0(%rbp), %rdi
callq 0x2250
cmpq %r14, %rbx
jne 0x3277
testl %eax, %eax
je 0x35c5
jmp 0x3277
cmpq %r14, %rbx
je 0x35c5
leaq -0x100(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
leaq -0x110(%rbp), %rdi
callq 0x434c
leaq 0x1ec9(%rip), %rsi      # 0x5169
leaq -0x110(%rbp), %rdi
callq 0x2390
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
leaq -0x110(%rbp), %rdi
callq 0x20c0
leaq -0x160(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x32ed
movq %rdx, -0x170(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x160(%rbp)
jmp 0x32f4
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq -0x170(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1e55(%rip), %rsi      # 0x516e
callq 0x2390
leaq -0x120(%rbp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x334b
movq %rdx, -0x130(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x120(%rbp)
jmp 0x3351
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq -0x130(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
callq 0x20c0
leaq -0x140(%rbp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x33a9
movq %rdx, -0x150(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x140(%rbp)
jmp 0x33b1
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq -0x150(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1da4(%rip), %rsi      # 0x517a
callq 0x2390
leaq -0x80(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3402
movq %rdx, -0x90(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x80(%rbp)
jmp 0x3408
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
leaq -0x90(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
callq 0x20c0
leaq -0xa0(%rbp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3461
movq %rdx, -0xb0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xa0(%rbp)
jmp 0x3469
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
leaq -0xb0(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1ca1(%rip), %rsi      # 0x512f
callq 0x2390
leaq -0x4c8(%rbp), %rsi
movq %rsi, -0x4d8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x34c3
movq %rdx, -0x4d8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x4c8(%rbp)
jmp 0x34c9
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x4d0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0xb0(%rbp), %rdi
cmpq %r12, %rdi
je 0x34fe
movq -0xa0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x90(%rbp), %rdi
cmpq %rbx, %rdi
leaq -0xc0(%rbp), %r12
je 0x351d
movq -0x80(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x150(%rbp), %rdi
cmpq %r13, %rdi
je 0x3538
movq -0x140(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x130(%rbp), %rdi
leaq -0x120(%rbp), %rax
cmpq %rax, %rdi
je 0x355a
movq -0x120(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x170(%rbp), %rdi
cmpq %r15, %rdi
je 0x3575
movq -0x160(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x110(%rbp), %rdi
cmpq %r14, %rdi
leaq -0x4c8(%rbp), %r15
je 0x3597
movq -0x100(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x4d8(%rbp), %rdi
callq 0x21d0
movb $0x1, 0x447f(%rip)      # 0x7a29
movq -0x4d8(%rbp), %rdi
cmpq %r15, %rdi
je 0x35c5
movq -0x4c8(%rbp), %rsi
incq %rsi
callq 0x2240
cmpb $0x1, 0x445d(%rip)      # 0x7a29
jne 0x369b
leaq -0x240(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x1bb0(%rip), %rsi      # 0x5194
leaq 0x1bb6(%rip), %rdx      # 0x51a1
leaq -0x250(%rbp), %rdi
callq 0x43ea
leaq -0x250(%rbp), %rdi
callq 0x285e
movq -0x250(%rbp), %rdi
cmpq %rbx, %rdi
je 0x361e
movq -0x240(%rbp), %rsi
incq %rsi
callq 0x2240
leaq -0x100(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
leaq -0x110(%rbp), %rdi
callq 0x434c
leaq 0x1b5b(%rip), %rsi      # 0x51a2
leaq -0x110(%rbp), %rdi
callq 0x2390
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
leaq -0x110(%rbp), %rdi
callq 0x20c0
leaq -0x160(%rbp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x37af
movq %rdx, -0x170(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x160(%rbp)
jmp 0x37b7
leaq -0x220(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x1b6c(%rip), %rsi      # 0x5219
leaq 0x1b7c(%rip), %rdx      # 0x5230
leaq -0x230(%rbp), %rdi
callq 0x43ea
leaq -0x230(%rbp), %rdi
callq 0x285e
movq -0x230(%rbp), %rdi
cmpq %rbx, %rdi
je 0x36e7
movq -0x220(%rbp), %rsi
incq %rsi
callq 0x2240
movq 0x38e2(%rip), %rdi      # 0x6fd0
leaq 0x1b3c(%rip), %rsi      # 0x5231
movl $0x11, %edx
callq 0x2290
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
movq 0x38c2(%rip), %rdi      # 0x6fd0
callq 0x2290
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2150
movq 0x388c(%rip), %rdi      # 0x6fd0
leaq 0x1af8(%rip), %rsi      # 0x5243
movl $0x15, %edx
callq 0x2290
movq -0x190(%rbp), %rsi
movq -0x188(%rbp), %rdx
movq 0x3866(%rip), %rdi      # 0x6fd0
callq 0x2290
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2150
callq 0x2060
movq -0x190(%rbp), %rdi
callq 0x21d0
jmp 0x3acb
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq -0x170(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x19d0(%rip), %rsi      # 0x51ac
callq 0x2390
leaq -0x120(%rbp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x380e
movq %rdx, -0x130(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x120(%rbp)
jmp 0x3814
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq -0x130(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
callq 0x20c0
leaq -0x140(%rbp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x386c
movq %rdx, -0x150(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x140(%rbp)
jmp 0x3872
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq -0x150(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1949(%rip), %rsi      # 0x51e0
callq 0x2390
leaq -0x80(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x38c3
movq %rdx, -0x90(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x80(%rbp)
jmp 0x38c9
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
leaq -0x90(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
callq 0x20c0
leaq -0xa0(%rbp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3922
movq %rdx, -0xb0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xa0(%rbp)
jmp 0x392a
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
leaq -0xb0(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x18a4(%rip), %rsi      # 0x51f3
callq 0x2390
movq %r15, -0x4d8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x397d
movq %rdx, -0x4d8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x4c8(%rbp)
jmp 0x3984
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, -0x4d0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0xb0(%rbp), %rdi
cmpq %r12, %rdi
je 0x39b9
movq -0xa0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x90(%rbp), %rdi
cmpq %rbx, %rdi
leaq -0xc0(%rbp), %r12
je 0x39d8
movq -0x80(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x150(%rbp), %rdi
leaq -0x140(%rbp), %rax
cmpq %rax, %rdi
je 0x39fa
movq -0x140(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x130(%rbp), %rdi
leaq -0x120(%rbp), %rax
cmpq %rax, %rdi
je 0x3a1c
movq -0x120(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x170(%rbp), %rdi
cmpq %r13, %rdi
je 0x3a37
movq -0x160(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x110(%rbp), %rdi
cmpq %r14, %rdi
je 0x3a52
movq -0x100(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x4d8(%rbp), %rdi
callq 0x21d0
movq 0x356b(%rip), %rbx      # 0x6fd0
leaq 0x178f(%rip), %rsi      # 0x51fb
movl $0x1d, %edx
movq %rbx, %rdi
callq 0x2290
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq 0x3539(%rip), %rdi      # 0x6fd0
callq 0x2030
movq %rax, %rdi
callq 0x2150
movq -0x1d0(%rbp), %rdi
callq 0x21d0
movq -0x4d8(%rbp), %rdi
cmpq %r15, %rdi
je 0x3acb
movq -0x4c8(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x1b0(%rbp), %rdi
leaq -0x1a0(%rbp), %rax
cmpq %rax, %rdi
je 0x3aed
movq -0x1a0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0xd0(%rbp), %rdi
cmpq %r12, %rdi
leaq -0x40(%rbp), %rbx
leaq -0x1c0(%rbp), %r14
leaq -0x180(%rbp), %r15
je 0x3b1a
movq -0xc0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x1f0(%rbp), %rdi
leaq -0x1e0(%rbp), %rax
cmpq %rax, %rdi
je 0x3b3c
movq -0x1e0(%rbp), %rsi
incq %rsi
callq 0x2240
leaq -0x2a0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3b5b
movq -0x2a0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0xf0(%rbp), %rdi
leaq -0xe0(%rbp), %rax
cmpq %rax, %rdi
je 0x3b7d
movq -0xe0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x210(%rbp), %rdi
leaq -0x200(%rbp), %rax
cmpq %rax, %rdi
je 0x3b9f
movq -0x200(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x190(%rbp), %rdi
cmpq %r15, %rdi
je 0x3bba
movq -0x180(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x1d0(%rbp), %rdi
cmpq %r14, %rdi
je 0x3bd5
movq -0x1c0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x50(%rbp), %rdi
cmpq %rbx, %rdi
je 0x3bea
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2240
leaq -0x60(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3c03
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x2240
xorl %eax, %eax
addq $0x4b8, %rsp            # imm = 0x4B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, -0x30(%rbp)
movq -0xb0(%rbp), %rdi
cmpq %r12, %rdi
je 0x3c3c
movq -0xa0(%rbp), %rsi
incq %rsi
callq 0x2240
jmp 0x3c3c
movq %rax, -0x30(%rbp)
movq -0x90(%rbp), %rdi
cmpq %rbx, %rdi
je 0x3c5a
movq -0x80(%rbp), %rsi
incq %rsi
callq 0x2240
jmp 0x3c5a
movq %rax, -0x30(%rbp)
movq -0x150(%rbp), %rdi
leaq -0x140(%rbp), %rax
cmpq %rax, %rdi
je 0x3c82
movq -0x140(%rbp), %rsi
incq %rsi
callq 0x2240
jmp 0x3c82
movq %rax, -0x30(%rbp)
movq -0x130(%rbp), %rdi
leaq -0x120(%rbp), %rax
cmpq %rax, %rdi
je 0x3caa
movq -0x120(%rbp), %rsi
incq %rsi
callq 0x2240
jmp 0x3caa
movq %rax, -0x30(%rbp)
movq -0x170(%rbp), %rdi
cmpq %r13, %rdi
jne 0x3db5
jmp 0x3dcc
jmp 0x3dc8
jmp 0x3ffb
jmp 0x3dc8
movq %rax, -0x30(%rbp)
movq -0xb0(%rbp), %rdi
cmpq %r12, %rdi
je 0x3cf8
movq -0xa0(%rbp), %rsi
incq %rsi
callq 0x2240
jmp 0x3cf8
jmp 0x4025
movq %rax, -0x30(%rbp)
movq -0x90(%rbp), %rdi
cmpq %rbx, %rdi
je 0x3d56
movq -0x80(%rbp), %rsi
incq %rsi
callq 0x2240
jmp 0x3d56
movq %rax, -0x30(%rbp)
movq -0x230(%rbp), %rdi
cmpq %rbx, %rdi
je 0x4029
movq -0x220(%rbp), %rsi
jmp 0x4012
movq %rax, -0x30(%rbp)
movq -0x250(%rbp), %rdi
cmpq %rbx, %rdi
je 0x4029
movq -0x240(%rbp), %rsi
jmp 0x4012
movq %rax, -0x30(%rbp)
movq -0x150(%rbp), %rdi
cmpq %r13, %rdi
je 0x3d81
movq -0x140(%rbp), %rsi
incq %rsi
callq 0x2240
jmp 0x3d81
jmp 0x4025
jmp 0x4025
movq %rax, -0x30(%rbp)
movq -0x130(%rbp), %rdi
leaq -0x120(%rbp), %rax
cmpq %rax, %rdi
je 0x3da9
movq -0x120(%rbp), %rsi
incq %rsi
callq 0x2240
jmp 0x3da9
movq %rax, -0x30(%rbp)
movq -0x170(%rbp), %rdi
cmpq %r15, %rdi
je 0x3dcc
movq -0x160(%rbp), %rsi
incq %rsi
callq 0x2240
jmp 0x3dcc
jmp 0x3dc8
movq %rax, -0x30(%rbp)
movq -0x110(%rbp), %rdi
cmpq %r14, %rdi
je 0x4029
movq -0x100(%rbp), %rsi
jmp 0x4012
jmp 0x4025
jmp 0x3ffb
movq %rax, -0x30(%rbp)
movq -0xb0(%rbp), %rdi
cmpq %r14, %rdi
je 0x3e19
movq -0xa0(%rbp), %rsi
incq %rsi
callq 0x2240
jmp 0x3e19
jmp 0x3e15
movq %rax, -0x30(%rbp)
movq -0x90(%rbp), %rdi
cmpq %rbx, %rdi
je 0x4029
movq -0x80(%rbp), %rsi
jmp 0x4012
jmp 0x4025
movq %rax, -0x30(%rbp)
movq -0x270(%rbp), %rdi
cmpq %rbx, %rdi
je 0x4029
movq -0x260(%rbp), %rsi
jmp 0x4012
jmp 0x4025
movq %rax, -0x30(%rbp)
movq -0x290(%rbp), %rdi
cmpq %rbx, %rdi
je 0x4029
movq -0x280(%rbp), %rsi
jmp 0x4012
jmp 0x4025
jmp 0x4025
movq %rax, -0x30(%rbp)
jmp 0x404b
movq %rax, -0x30(%rbp)
jmp 0x406d
movq %rax, -0x30(%rbp)
movq -0x4d8(%rbp), %rdi
cmpq %r15, %rdi
je 0x3ebd
movq -0x4c8(%rbp), %rsi
incq %rsi
callq 0x2240
jmp 0x3ebd
movq %rax, -0x30(%rbp)
movq -0xd0(%rbp), %rdi
leaq -0xc0(%rbp), %rax
cmpq %rax, %rdi
jne 0x3ee9
jmp 0x408f
movq %rax, -0x30(%rbp)
movq -0xd0(%rbp), %rdi
cmpq %r12, %rdi
je 0x408f
movq -0xc0(%rbp), %rsi
jmp 0x4087
movq %rax, -0x30(%rbp)
jmp 0x408f
movq %rax, -0x30(%rbp)
jmp 0x40ae
movq %rax, -0x30(%rbp)
movq -0xf0(%rbp), %rdi
cmpq %rbx, %rdi
jne 0x40c1
jmp 0x40d0
jmp 0x3f22
movq %rax, -0x30(%rbp)
jmp 0x40d0
movq %rax, -0x30(%rbp)
movq -0x4d8(%rbp), %rdi
cmpq %r15, %rdi
je 0x3f52
movq -0x4c8(%rbp), %rsi
incq %rsi
callq 0x2240
jmp 0x3f52
jmp 0x3f4e
movq %rax, -0x30(%rbp)
movq -0xf0(%rbp), %rdi
cmpq %rbx, %rdi
je 0x40f2
movq -0xe0(%rbp), %rsi
jmp 0x40ea
jmp 0x401c
movq %rax, -0x30(%rbp)
movq -0x2d0(%rbp), %rdi
cmpq %rbx, %rdi
je 0x40f2
movq -0x2c0(%rbp), %rsi
jmp 0x40ea
jmp 0x401c
movq %rax, -0x30(%rbp)
movq -0x190(%rbp), %rdi
cmpq %rbx, %rdi
jne 0x4105
jmp 0x4114
movq %rax, -0x30(%rbp)
jmp 0x4114
movq %rax, -0x30(%rbp)
movq -0x1d0(%rbp), %rdi
cmpq %rbx, %rdi
jne 0x4127
jmp 0x4136
movq %rax, -0x30(%rbp)
jmp 0x4136
movq %rax, -0x30(%rbp)
movq -0x50(%rbp), %rdi
cmpq %rbx, %rdi
jne 0x4143
jmp 0x414f
movq %rax, -0x30(%rbp)
jmp 0x414f
movq %rax, -0x30(%rbp)
movq -0x4d8(%rbp), %rdi
cmpq %r15, %rdi
je 0x4029
movq -0x4c8(%rbp), %rsi
incq %rsi
callq 0x2240
jmp 0x4029
movq %rax, -0x30(%rbp)
jmp 0x40f2
movq %rax, -0x30(%rbp)
movq -0x1b0(%rbp), %rdi
leaq -0x1a0(%rbp), %rax
cmpq %rax, %rdi
je 0x404b
movq -0x1a0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0xd0(%rbp), %rdi
leaq -0xc0(%rbp), %rax
cmpq %rax, %rdi
je 0x406d
movq -0xc0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x1f0(%rbp), %rdi
leaq -0x1e0(%rbp), %rax
cmpq %rax, %rdi
je 0x408f
movq -0x1e0(%rbp), %rsi
incq %rsi
callq 0x2240
leaq -0x2a0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x40ae
movq -0x2a0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0xf0(%rbp), %rdi
leaq -0xe0(%rbp), %rax
cmpq %rax, %rdi
je 0x40d0
movq -0xe0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x210(%rbp), %rdi
leaq -0x200(%rbp), %rax
cmpq %rax, %rdi
je 0x40f2
movq -0x200(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x4114
movq -0x180(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x1d0(%rbp), %rdi
leaq -0x1c0(%rbp), %rax
cmpq %rax, %rdi
je 0x4136
movq -0x1c0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x414f
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2240
leaq -0x60(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4168
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x30(%rbp), %rdi
callq 0x2360
nop