// File: /workspace/github_cpp_makefile_star2_O1/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 0x24a2(%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, 0x4e87(%rip)      # 0x7a38
movq %rax, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
xorl %edx, %edx
callq 0x2040
movq %rax, 0x4e69(%rip)      # 0x7a30
movq %rax, %rdi
xorl %esi, %esi
movl $0xff, %edx
movl $0xff, %ecx
movl $0xff, %r8d
callq 0x22e0
movq 0x4e48(%rip), %rdi      # 0x7a30
leaq 0x4601(%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 0x4372
leaq 0x2412(%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 0x4372
leaq 0x23ec(%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 0x4372
leaq 0x23c4(%rip), %rsi      # 0x5050
leaq -0x190(%rbp), %rdi
callq 0x2390
leaq -0x2c0(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x23dc(%rip), %rsi      # 0x5086
leaq 0x23e5(%rip), %rdx      # 0x5096
leaq -0x2d0(%rbp), %rdi
callq 0x440c
leaq -0x2d0(%rbp), %rdi
callq 0x2864
movq -0x2d0(%rbp), %rdi
cmpq %rbx, %rdi
je 0x2ce4
movq -0x2c0(%rbp), %rsi
incq %rsi
callq 0x2240
movq 0x42e5(%rip), %rbx      # 0x6fd0
leaq 0x23a5(%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 0x42b3(%rip), %rdi      # 0x6fd0
callq 0x2030
movq %rax, %rdi
callq 0x2150
leaq -0x100(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
leaq -0x110(%rbp), %rdi
callq 0x4372
leaq 0x2358(%rip), %rsi      # 0x50ab
leaq -0x110(%rbp), %rdi
callq 0x2390
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
leaq -0x110(%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 0x2da0
movq %rdx, -0x4d8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x4c8(%rbp)
jmp 0x2da7
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 0x22ff(%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 0x2dfe
movq %rdx, -0x210(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x200(%rbp)
jmp 0x2e04
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 0x2e39
movq -0x4c8(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x110(%rbp), %rdi
cmpq %rbx, %rdi
je 0x2e54
movq -0x100(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x210(%rbp), %rdi
callq 0x21d0
leaq -0x110(%rbp), %rdi
movq %rbx, (%rdi)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
callq 0x4372
leaq 0x228c(%rip), %rsi      # 0x510d
leaq -0x110(%rbp), %rdi
callq 0x2390
movq -0x110(%rbp), %rsi
leaq -0x2b0(%rbp), %rdi
callq 0x271e
leaq -0xe0(%rbp), %r12
movq %r12, -0x10(%r12)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
leaq -0xf0(%rbp), %rdi
callq 0x4372
leaq 0x225e(%rip), %rsi      # 0x5128
leaq -0xf0(%rbp), %rdi
callq 0x2390
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
leaq -0xf0(%rbp), %rdi
callq 0x20c0
movq %r15, -0x4d8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2f13
movq %rdx, -0x4d8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x4c8(%rbp)
jmp 0x2f1a
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 0x21f0(%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 0x2f71
movq %rdx, -0x1f0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x1e0(%rbp)
jmp 0x2f77
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 0x2fac
movq -0x4c8(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0xf0(%rbp), %rdi
cmpq %r12, %rdi
je 0x2fc7
movq -0xe0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x1f0(%rbp), %rsi
leaq -0xf0(%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 0x4372
leaq 0x212c(%rip), %rsi      # 0x512f
leaq -0x1b0(%rbp), %rdi
callq 0x2390
leaq -0x280(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x2117(%rip), %rsi      # 0x5138
leaq 0x2123(%rip), %rdx      # 0x514b
leaq -0x290(%rbp), %rdi
callq 0x440c
leaq -0x290(%rbp), %rdi
callq 0x2864
movq -0x290(%rbp), %rdi
cmpq %rbx, %rdi
je 0x305b
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 0x3229
leaq -0x260(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x20a5(%rip), %rsi      # 0x514c
leaq 0x20b2(%rip), %rdx      # 0x5160
leaq -0x270(%rbp), %rdi
callq 0x440c
leaq -0x270(%rbp), %rdi
callq 0x2864
movq -0x270(%rbp), %rdi
cmpq %rbx, %rdi
je 0x30e1
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 0x4372
leaq 0x205a(%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 0x3154
movq %rdx, -0xb0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xa0(%rbp)
jmp 0x315b
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 0x1faf(%rip), %rsi      # 0x512f
callq 0x2390
movq %r15, -0x4d8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x31ae
movq %rdx, -0x4d8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x4c8(%rbp)
jmp 0x31b5
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 0x31ea
movq -0xa0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x90(%rbp), %rdi
cmpq %rbx, %rdi
je 0x3202
movq -0x80(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x4d8(%rbp), %rdi
callq 0x21d0
movq -0x4d8(%rbp), %rdi
cmpq %r15, %rdi
je 0x3229
movq -0x4c8(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0xe8(%rbp), %rbx
movq -0x2a8(%rbp), %r14
cmpq %rbx, %r14
movq %rbx, %rdx
cmovbq %r14, %rdx
testq %rdx, %rdx
je 0x3260
movq -0x2b0(%rbp), %rsi
movq -0xf0(%rbp), %rdi
callq 0x2250
testl %eax, %eax
sete %al
jmp 0x3262
movb $0x1, %al
cmpq %r14, %rbx
sete %cl
testb %cl, %al
jne 0x35c4
leaq -0xc0(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
leaq -0xd0(%rbp), %rdi
callq 0x4372
leaq 0x1ed0(%rip), %rsi      # 0x5169
leaq -0xd0(%rbp), %rdi
callq 0x2390
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
leaq -0xd0(%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 0x32e6
movq %rdx, -0x170(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x160(%rbp)
jmp 0x32ed
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 0x1e5c(%rip), %rsi      # 0x516e
callq 0x2390
leaq -0x120(%rbp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3344
movq %rdx, -0x130(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x120(%rbp)
jmp 0x334c
movups (%rcx), %xmm0
movups %xmm0, (%r13)
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), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x33a7
movq %rsi, %r14
movq %rdx, -0x150(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x140(%rbp)
jmp 0x33b0
movups (%rcx), %xmm0
movq %rsi, %r14
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 0x1da5(%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 0x3401
movq %rdx, -0x90(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x80(%rbp)
jmp 0x3407
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 0x3460
movq %rdx, -0xb0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xa0(%rbp)
jmp 0x3468
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 0x1ca2(%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 0x34c2
movq %rdx, -0x4d8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x4c8(%rbp)
jmp 0x34c8
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 0x34fd
movq -0xa0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x90(%rbp), %rdi
cmpq %rbx, %rdi
leaq -0xe0(%rbp), %r12
je 0x351c
movq -0x80(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x150(%rbp), %rdi
cmpq %r14, %rdi
je 0x3537
movq -0x140(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x130(%rbp), %rdi
cmpq %r13, %rdi
je 0x3552
movq -0x120(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x170(%rbp), %rdi
cmpq %r15, %rdi
je 0x356d
movq -0x160(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0xd0(%rbp), %rdi
leaq -0xc0(%rbp), %rax
cmpq %rax, %rdi
leaq -0x4c8(%rbp), %r15
je 0x3596
movq -0xc0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x4d8(%rbp), %rdi
callq 0x21d0
movb $0x1, 0x4480(%rip)      # 0x7a29
movq -0x4d8(%rbp), %rdi
cmpq %r15, %rdi
je 0x35c4
movq -0x4c8(%rbp), %rsi
incq %rsi
callq 0x2240
cmpb $0x1, 0x445e(%rip)      # 0x7a29
jne 0x369a
leaq -0x240(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x1bb1(%rip), %rsi      # 0x5194
leaq 0x1bb7(%rip), %rdx      # 0x51a1
leaq -0x250(%rbp), %rdi
callq 0x440c
leaq -0x250(%rbp), %rdi
callq 0x2864
movq -0x250(%rbp), %rdi
cmpq %rbx, %rdi
je 0x361d
movq -0x240(%rbp), %rsi
incq %rsi
callq 0x2240
leaq -0xc0(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
leaq -0xd0(%rbp), %rdi
callq 0x4372
leaq 0x1b5c(%rip), %rsi      # 0x51a2
leaq -0xd0(%rbp), %rdi
callq 0x2390
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
leaq -0xd0(%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 0x37ae
movq %rdx, -0x170(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x160(%rbp)
jmp 0x37b6
leaq -0x220(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x1b6d(%rip), %rsi      # 0x5219
leaq 0x1b7d(%rip), %rdx      # 0x5230
leaq -0x230(%rbp), %rdi
callq 0x440c
leaq -0x230(%rbp), %rdi
callq 0x2864
movq -0x230(%rbp), %rdi
cmpq %rbx, %rdi
je 0x36e6
movq -0x220(%rbp), %rsi
incq %rsi
callq 0x2240
movq 0x38e3(%rip), %rdi      # 0x6fd0
leaq 0x1b3d(%rip), %rsi      # 0x5231
movl $0x11, %edx
callq 0x2290
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
movq 0x38c3(%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 0x388d(%rip), %rdi      # 0x6fd0
leaq 0x1af9(%rip), %rsi      # 0x5243
movl $0x15, %edx
callq 0x2290
movq -0x190(%rbp), %rsi
movq -0x188(%rbp), %rdx
movq 0x3867(%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 0x3aca
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 0x19d1(%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 0x380d
movq %rdx, -0x130(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x120(%rbp)
jmp 0x3813
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 0x386b
movq %rdx, -0x150(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x140(%rbp)
jmp 0x3871
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 0x194a(%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 0x38c2
movq %rdx, -0x90(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x80(%rbp)
jmp 0x38c8
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 0x3921
movq %rdx, -0xb0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xa0(%rbp)
jmp 0x3929
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 0x18a5(%rip), %rsi      # 0x51f3
callq 0x2390
movq %r15, -0x4d8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x397c
movq %rdx, -0x4d8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x4c8(%rbp)
jmp 0x3983
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 0x39b8
movq -0xa0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x90(%rbp), %rdi
cmpq %rbx, %rdi
leaq -0xe0(%rbp), %r12
je 0x39d7
movq -0x80(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x150(%rbp), %rdi
leaq -0x140(%rbp), %rax
cmpq %rax, %rdi
je 0x39f9
movq -0x140(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x130(%rbp), %rdi
leaq -0x120(%rbp), %rax
cmpq %rax, %rdi
je 0x3a1b
movq -0x120(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x170(%rbp), %rdi
cmpq %r13, %rdi
je 0x3a36
movq -0x160(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0xd0(%rbp), %rdi
cmpq %r14, %rdi
je 0x3a51
movq -0xc0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x4d8(%rbp), %rdi
callq 0x21d0
movq 0x356c(%rip), %rbx      # 0x6fd0
leaq 0x1790(%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 0x353a(%rip), %rdi      # 0x6fd0
callq 0x2030
movq %rax, %rdi
callq 0x2150
movq -0x1d0(%rbp), %rdi
callq 0x21d0
movq -0x4d8(%rbp), %rdi
cmpq %r15, %rdi
je 0x3aca
movq -0x4c8(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x1b0(%rbp), %rdi
leaq -0x1a0(%rbp), %rax
cmpq %rax, %rdi
je 0x3aec
movq -0x1a0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0xf0(%rbp), %rdi
cmpq %r12, %rdi
leaq -0x40(%rbp), %rbx
leaq -0x1c0(%rbp), %r14
leaq -0x180(%rbp), %r15
je 0x3b19
movq -0xe0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x1f0(%rbp), %rdi
leaq -0x1e0(%rbp), %rax
cmpq %rax, %rdi
je 0x3b3b
movq -0x1e0(%rbp), %rsi
incq %rsi
callq 0x2240
leaq -0x2a0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3b5a
movq -0x2a0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x110(%rbp), %rdi
leaq -0x100(%rbp), %rax
cmpq %rax, %rdi
je 0x3b7c
movq -0x100(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x210(%rbp), %rdi
leaq -0x200(%rbp), %rax
cmpq %rax, %rdi
je 0x3b9e
movq -0x200(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x190(%rbp), %rdi
cmpq %r15, %rdi
je 0x3bb9
movq -0x180(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x1d0(%rbp), %rdi
cmpq %r14, %rdi
je 0x3bd4
movq -0x1c0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x50(%rbp), %rdi
cmpq %rbx, %rdi
je 0x3be9
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2240
leaq -0x60(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3c02
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 0x3c3b
movq -0xa0(%rbp), %rsi
incq %rsi
callq 0x2240
jmp 0x3c3b
movq %rax, -0x30(%rbp)
movq -0x90(%rbp), %rdi
cmpq %rbx, %rdi
je 0x3c59
movq -0x80(%rbp), %rsi
incq %rsi
callq 0x2240
jmp 0x3c59
movq %rax, -0x30(%rbp)
movq -0x150(%rbp), %rdi
leaq -0x140(%rbp), %rax
cmpq %rax, %rdi
je 0x3c81
movq -0x140(%rbp), %rsi
incq %rsi
callq 0x2240
jmp 0x3c81
movq %rax, -0x30(%rbp)
movq -0x130(%rbp), %rdi
leaq -0x120(%rbp), %rax
cmpq %rax, %rdi
je 0x3ca9
movq -0x120(%rbp), %rsi
incq %rsi
callq 0x2240
jmp 0x3ca9
movq %rax, -0x30(%rbp)
movq -0x170(%rbp), %rdi
cmpq %r13, %rdi
je 0x3cd1
movq -0x160(%rbp), %rsi
incq %rsi
callq 0x2240
jmp 0x3cd1
jmp 0x3ccd
jmp 0x4026
movq %rax, -0x30(%rbp)
movq -0xd0(%rbp), %rdi
cmpq %r14, %rdi
jne 0x3df2
jmp 0x4054
movq %rax, -0x30(%rbp)
movq -0xb0(%rbp), %rdi
cmpq %r12, %rdi
je 0x3d10
movq -0xa0(%rbp), %rsi
incq %rsi
callq 0x2240
jmp 0x3d10
jmp 0x4050
movq %rax, -0x30(%rbp)
movq -0x90(%rbp), %rdi
cmpq %rbx, %rdi
je 0x3d6e
movq -0x80(%rbp), %rsi
incq %rsi
callq 0x2240
jmp 0x3d6e
movq %rax, -0x30(%rbp)
movq -0x230(%rbp), %rdi
cmpq %rbx, %rdi
je 0x4054
movq -0x220(%rbp), %rsi
jmp 0x403d
movq %rax, -0x30(%rbp)
movq -0x250(%rbp), %rdi
cmpq %rbx, %rdi
je 0x4054
movq -0x240(%rbp), %rsi
jmp 0x403d
movq %rax, -0x30(%rbp)
movq -0x150(%rbp), %rdi
cmpq %r14, %rdi
je 0x3d99
movq -0x140(%rbp), %rsi
incq %rsi
callq 0x2240
jmp 0x3d99
jmp 0x4050
jmp 0x4050
movq %rax, -0x30(%rbp)
movq -0x130(%rbp), %rdi
cmpq %r13, %rdi
je 0x3dba
movq -0x120(%rbp), %rsi
incq %rsi
callq 0x2240
jmp 0x3dba
movq %rax, -0x30(%rbp)
movq -0x170(%rbp), %rdi
cmpq %r15, %rdi
je 0x3ddb
movq -0x160(%rbp), %rsi
incq %rsi
callq 0x2240
jmp 0x3ddb
movq %rax, -0x30(%rbp)
movq -0xd0(%rbp), %rdi
leaq -0xc0(%rbp), %rax
cmpq %rax, %rdi
je 0x4054
movq -0xc0(%rbp), %rsi
jmp 0x403d
movq %rax, -0x30(%rbp)
movq -0xd0(%rbp), %rdi
cmpq %rbx, %rdi
jne 0x3df2
jmp 0x4054
jmp 0x4050
jmp 0x4026
movq %rax, -0x30(%rbp)
movq -0xb0(%rbp), %rdi
cmpq %r14, %rdi
je 0x3e44
movq -0xa0(%rbp), %rsi
incq %rsi
callq 0x2240
jmp 0x3e44
jmp 0x3e40
movq %rax, -0x30(%rbp)
movq -0x90(%rbp), %rdi
cmpq %rbx, %rdi
je 0x4054
movq -0x80(%rbp), %rsi
jmp 0x403d
jmp 0x4050
movq %rax, -0x30(%rbp)
movq -0x270(%rbp), %rdi
cmpq %rbx, %rdi
je 0x4054
movq -0x260(%rbp), %rsi
jmp 0x403d
jmp 0x4050
movq %rax, -0x30(%rbp)
movq -0x290(%rbp), %rdi
cmpq %rbx, %rdi
je 0x4054
movq -0x280(%rbp), %rsi
jmp 0x403d
jmp 0x4050
jmp 0x4050
movq %rax, -0x30(%rbp)
jmp 0x4076
movq %rax, -0x30(%rbp)
jmp 0x4098
movq %rax, -0x30(%rbp)
movq -0x4d8(%rbp), %rdi
cmpq %r15, %rdi
je 0x3ee8
movq -0x4c8(%rbp), %rsi
incq %rsi
callq 0x2240
jmp 0x3ee8
movq %rax, -0x30(%rbp)
movq -0xf0(%rbp), %rdi
leaq -0xe0(%rbp), %rax
cmpq %rax, %rdi
jne 0x3f14
jmp 0x40ba
movq %rax, -0x30(%rbp)
movq -0xf0(%rbp), %rdi
cmpq %r12, %rdi
je 0x40ba
movq -0xe0(%rbp), %rsi
jmp 0x40b2
movq %rax, -0x30(%rbp)
jmp 0x40ba
movq %rax, -0x30(%rbp)
jmp 0x40d9
movq %rax, -0x30(%rbp)
movq -0x110(%rbp), %rdi
cmpq %rbx, %rdi
jne 0x40ec
jmp 0x40fb
jmp 0x3f4d
movq %rax, -0x30(%rbp)
jmp 0x40fb
movq %rax, -0x30(%rbp)
movq -0x4d8(%rbp), %rdi
cmpq %r15, %rdi
je 0x3f7d
movq -0x4c8(%rbp), %rsi
incq %rsi
callq 0x2240
jmp 0x3f7d
jmp 0x3f79
movq %rax, -0x30(%rbp)
movq -0x110(%rbp), %rdi
cmpq %rbx, %rdi
je 0x411d
movq -0x100(%rbp), %rsi
jmp 0x4115
jmp 0x4047
movq %rax, -0x30(%rbp)
movq -0x2d0(%rbp), %rdi
cmpq %rbx, %rdi
je 0x411d
movq -0x2c0(%rbp), %rsi
jmp 0x4115
jmp 0x4047
movq %rax, -0x30(%rbp)
movq -0x190(%rbp), %rdi
cmpq %rbx, %rdi
jne 0x4130
jmp 0x413f
movq %rax, -0x30(%rbp)
jmp 0x413f
movq %rax, -0x30(%rbp)
movq -0x1d0(%rbp), %rdi
cmpq %rbx, %rdi
jne 0x4152
jmp 0x4161
movq %rax, -0x30(%rbp)
jmp 0x4161
movq %rax, -0x30(%rbp)
movq -0x50(%rbp), %rdi
cmpq %rbx, %rdi
jne 0x416e
jmp 0x417a
movq %rax, -0x30(%rbp)
jmp 0x417a
movq %rax, -0x30(%rbp)
movq -0x4d8(%rbp), %rdi
cmpq %r15, %rdi
je 0x4054
movq -0x4c8(%rbp), %rsi
incq %rsi
callq 0x2240
jmp 0x4054
movq %rax, -0x30(%rbp)
jmp 0x411d
movq %rax, -0x30(%rbp)
movq -0x1b0(%rbp), %rdi
leaq -0x1a0(%rbp), %rax
cmpq %rax, %rdi
je 0x4076
movq -0x1a0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0xf0(%rbp), %rdi
leaq -0xe0(%rbp), %rax
cmpq %rax, %rdi
je 0x4098
movq -0xe0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x1f0(%rbp), %rdi
leaq -0x1e0(%rbp), %rax
cmpq %rax, %rdi
je 0x40ba
movq -0x1e0(%rbp), %rsi
incq %rsi
callq 0x2240
leaq -0x2a0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x40d9
movq -0x2a0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x110(%rbp), %rdi
leaq -0x100(%rbp), %rax
cmpq %rax, %rdi
je 0x40fb
movq -0x100(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x210(%rbp), %rdi
leaq -0x200(%rbp), %rax
cmpq %rax, %rdi
je 0x411d
movq -0x200(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x413f
movq -0x180(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x1d0(%rbp), %rdi
leaq -0x1c0(%rbp), %rax
cmpq %rax, %rdi
je 0x4161
movq -0x1c0(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x417a
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2240
leaq -0x60(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4193
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x2240
movq -0x30(%rbp), %rdi
callq 0x2360