// File: ClauParser[P]ClauParser/./include/clau_parser.h
// Function: clau_parser::InFileReserver::ScanningNew(char*, unsigned long, int, long*&, unsigned long&, bool)
static void ScanningNew(char* text, const size_t length, const int thr_num,
			int64_t*& _token_arr, size_t& _token_arr_size, bool use_simd)
		{
			std::vector<std::thread> thr(thr_num);
			std::vector<size_t> start(thr_num);
			std::vector<size_t> last(thr_num);

			{
				start[0] = 0;

				for (int i = 1; i < thr_num; ++i) {
					start[i] = length / thr_num * i;

					for (size_t x = start[i]; x <= length; ++x) {
						if (Utility::isWhitespace(text[x]) || '\0' == text[x] ||
							LoadDataOption::Left == text[x] || LoadDataOption::Right == text[x] || LoadDataOption::Assignment == text[x]) {
							start[i] = x;
							break;
						}
					}
				}
				for (int i = 0; i < thr_num - 1; ++i) {
					last[i] = start[i + 1];
					for (size_t x = last[i]; x <= length; ++x) {
						if (Utility::isWhitespace(text[x]) || '\0' == text[x] ||
							LoadDataOption::Left == text[x] || LoadDataOption::Right == text[x] || LoadDataOption::Assignment == text[x]) {
							last[i] = x;
							break;
						}
					}
				}
				last[thr_num - 1] = length + 1;
			}
			size_t real_token_arr_count = 0;

			int64_t* tokens = new int64_t[length + 1];


			std::vector<size_t> token_arr_size(thr_num);
			auto a = std::chrono::steady_clock::now();
			for (int i = 0; i < thr_num; ++i) {
				if (use_simd) {
					thr[i] = std::thread(_ScanningWithSimd, text + start[i], start[i], last[i] - start[i], std::ref(tokens), std::ref(token_arr_size[i]));
				}
				else {
					thr[i] = std::thread(_Scanning, text + start[i], start[i], last[i] - start[i], std::ref(tokens), std::ref(token_arr_size[i]));
				}
			}

			for (int i = 0; i < thr_num; ++i) {
				thr[i].join();
			}
			auto b = std::chrono::steady_clock::now();
			int state = 0;
			int new_state = state;

			int64_t qouted_start = -4;
			int64_t slush_start = -5;

			for (size_t t = 0; t < thr_num; ++t) {
				for (size_t j = 0; j < token_arr_size[t]; ++j) {
					const int64_t i = start[t] + j;

					////std::cout << tokens[i] << "\n";
					//Utility::PrintToken(text, tokens[i]);
					//

					const bool isToken2 = Utility::IsToken2(tokens[i]);


					if (!isToken2 && state == 0) {
						tokens[real_token_arr_count] = tokens[i];
						real_token_arr_count++;
					}
					else {
						const char ch = text[Utility::GetIdx(tokens[i])];
						const int64_t idx = Utility::GetIdx(tokens[i]);

						//if (isToken2) {
						new_state = (isToken2 && 0 == state && '\"' == ch) ? 1 : new_state;
						qouted_start = (isToken2 && 0 == state && '\"' == ch) ? i : qouted_start;

						/*if (0 == state && '\"' == ch) {
							state = 1;
							qouted_start = i;
						}
						else
						if (0 == state && LoadDataOption::LineComment == ch) {
							state = 2;
						}
						else if (1 == state && '\\' == ch) {
							state = 3;
							slush_start = idx;
						}
						else if (1 == state && '\"' == ch) {
							state = 0;

							{
								int64_t idx = Utility::GetIdx(tokens[qouted_start]);
								int64_t len = Utility::GetLength(tokens[qouted_start]);

								len = Utility::GetIdx(tokens[i]) - idx + 1;

								tokens[real_token_arr_count] = Utility::Get(idx, len, text[idx]);

								//	Utility::PrintToken(text, tokens[real_token_arr_count]);


								real_token_arr_count++;
							}
						}
						else if (3 == state) {
							if (idx != slush_start + 1) {
								--j; // --i;
							}
							state = 1;
						}
						else if (2 == state && ('\n' == ch || '\0' == ch)) {
							state = 0;
						}}
					else if (0 == state) { //
						tokens[real_token_arr_count] = tokens[i];

						//	Utility::PrintToken(text, tokens[real_token_arr_count]);

						real_token_arr_count++;
					}
						*/
						new_state = (isToken2 && 0 == state && LoadDataOption::LineComment == ch) ? 2 : new_state;

						new_state = (isToken2 && 1 == state && '\\' == ch) ? 3 : new_state;

						slush_start = (isToken2 && 1 == state && '\\' == ch) ? idx : slush_start;

						new_state = (isToken2 && 1 == state && '\"' == ch) ? 0 : new_state;
						{
							int64_t idx = (isToken2 && 1 == state && '\"' == ch) ? Utility::GetIdx(tokens[qouted_start]) : -1;
							int64_t len = (isToken2 && 1 == state && '\"' == ch) ? Utility::GetLength(tokens[qouted_start]) : -1;
							len = (isToken2 && 1 == state && '\"' == ch) ? Utility::GetIdx(tokens[i]) - idx + 1 : -1;

							if (isToken2 && 1 == state && '\"' == ch) {
								tokens[real_token_arr_count] = Utility::Get2(idx, len);
								real_token_arr_count++;
							}
						}
						j = (isToken2 && 3 == state && idx != slush_start + 1) ? j - 1 : j;

						new_state = (isToken2 && 3 == state) ? 1 : new_state;

						new_state = (isToken2 && 2 == state && ('\n' == ch || '\0' == ch)) ? 0 : new_state;
						state = new_state;
					}
				}
			}
			auto c = std::chrono::steady_clock::now();
			auto dur = std::chrono::duration_cast<std::chrono::milliseconds>(b - a);
			auto dur2 = std::chrono::duration_cast<std::chrono::milliseconds>(c - b);

			//std::cout << dur.count() << "ms\n";
			//std::cout << dur2.count() << "ms\n";

			{
				if (0 != state) {
					//std::cout << "[ERROR] state [" << state << "] is not zero \n";
				}
			}


			{
				_token_arr = tokens;
				_token_arr_size = real_token_arr_count;
			}
		}

// Assembly:
subq $0x348, %rsp            # imm = 0x348
movb %r9b, %al
movq %rdi, 0x340(%rsp)
movq %rsi, 0x338(%rsp)
movl %edx, 0x334(%rsp)
movq %rcx, 0x328(%rsp)
movq %r8, 0x320(%rsp)
andb $0x1, %al
movb %al, 0x31f(%rsp)
movslq 0x334(%rsp), %rax
movq %rax, 0x168(%rsp)
leaq 0x2ff(%rsp), %rdi
movq %rdi, 0x170(%rsp)
callq 0xa560
movq 0x168(%rsp), %rsi
movq 0x170(%rsp), %rdx
leaq 0x300(%rsp), %rdi
callq 0xa570
jmp 0xd6ae
leaq 0x2ff(%rsp), %rdi
callq 0xa5f0
movslq 0x334(%rsp), %rax
movq %rax, 0x158(%rsp)
leaq 0x2cf(%rsp), %rdi
movq %rdi, 0x160(%rsp)
callq 0xea00
movq 0x158(%rsp), %rsi
movq 0x160(%rsp), %rdx
leaq 0x2d0(%rsp), %rdi
callq 0xea10
jmp 0xd6ff
leaq 0x2cf(%rsp), %rdi
callq 0xea90
movslq 0x334(%rsp), %rax
movq %rax, 0x148(%rsp)
leaq 0x2af(%rsp), %rdi
movq %rdi, 0x150(%rsp)
callq 0xea00
movq 0x148(%rsp), %rsi
movq 0x150(%rsp), %rdx
leaq 0x2b0(%rsp), %rdi
callq 0xea10
jmp 0xd750
leaq 0x2af(%rsp), %rdi
callq 0xea90
leaq 0x2d0(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xeaa0
movq $0x0, (%rax)
movl $0x1, 0x2a8(%rsp)
movl 0x2a8(%rsp), %eax
cmpl 0x334(%rsp), %eax
jge 0xd97f
movq 0x338(%rsp), %rax
movslq 0x334(%rsp), %rcx
xorl %edx, %edx
divq %rcx
movslq 0x2a8(%rsp), %rcx
imulq %rcx, %rax
movq %rax, 0x140(%rsp)
movslq 0x2a8(%rsp), %rsi
leaq 0x2d0(%rsp), %rdi
callq 0xeaa0
movq 0x140(%rsp), %rcx
movq %rcx, (%rax)
movslq 0x2a8(%rsp), %rsi
leaq 0x2d0(%rsp), %rdi
callq 0xeaa0
movq (%rax), %rax
movq %rax, 0x2a0(%rsp)
movq 0x2a0(%rsp), %rax
cmpq 0x338(%rsp), %rax
ja 0xd967
movq 0x340(%rsp), %rax
movq 0x2a0(%rsp), %rcx
movsbl (%rax,%rcx), %edi
callq 0xe9c0
testb $0x1, %al
jne 0xd8a5
movq 0x340(%rsp), %rax
movq 0x2a0(%rsp), %rcx
movsbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0xd8a5
movq 0x340(%rsp), %rax
movq 0x2a0(%rsp), %rcx
movsbl (%rax,%rcx), %ecx
movl $0x7b, %eax
cmpl %ecx, %eax
je 0xd8a5
movq 0x340(%rsp), %rax
movq 0x2a0(%rsp), %rcx
movsbl (%rax,%rcx), %ecx
movl $0x7d, %eax
cmpl %ecx, %eax
je 0xd8a5
movq 0x340(%rsp), %rax
movq 0x2a0(%rsp), %rcx
movsbl (%rax,%rcx), %ecx
movl $0x3d, %eax
cmpl %ecx, %eax
jne 0xd94c
movq 0x2a0(%rsp), %rax
movq %rax, 0x138(%rsp)
movslq 0x2a8(%rsp), %rsi
leaq 0x2d0(%rsp), %rdi
callq 0xeaa0
movq 0x138(%rsp), %rcx
movq %rcx, (%rax)
jmp 0xd967
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f0(%rsp)
movl %eax, 0x2ec(%rsp)
leaq 0x2ff(%rsp), %rdi
callq 0xa5f0
jmp 0xe7ae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f0(%rsp)
movl %eax, 0x2ec(%rsp)
leaq 0x2cf(%rsp), %rdi
callq 0xea90
jmp 0xe7a1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f0(%rsp)
movl %eax, 0x2ec(%rsp)
leaq 0x2af(%rsp), %rdi
callq 0xea90
jmp 0xe794
jmp 0xd94e
movq 0x2a0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x2a0(%rsp)
jmp 0xd7fd
jmp 0xd969
movl 0x2a8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x2a8(%rsp)
jmp 0xd780
movl $0x0, 0x29c(%rsp)
movl 0x29c(%rsp), %eax
movl 0x334(%rsp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0xdb11
movl 0x29c(%rsp), %eax
addl $0x1, %eax
movslq %eax, %rsi
leaq 0x2d0(%rsp), %rdi
callq 0xeaa0
movq (%rax), %rax
movq %rax, 0x130(%rsp)
movslq 0x29c(%rsp), %rsi
leaq 0x2b0(%rsp), %rdi
callq 0xeaa0
movq 0x130(%rsp), %rcx
movq %rcx, (%rax)
movslq 0x29c(%rsp), %rsi
leaq 0x2b0(%rsp), %rdi
callq 0xeaa0
movq (%rax), %rax
movq %rax, 0x290(%rsp)
movq 0x290(%rsp), %rax
cmpq 0x338(%rsp), %rax
ja 0xdaf9
movq 0x340(%rsp), %rax
movq 0x290(%rsp), %rcx
movsbl (%rax,%rcx), %edi
callq 0xe9c0
testb $0x1, %al
jne 0xdaac
movq 0x340(%rsp), %rax
movq 0x290(%rsp), %rcx
movsbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0xdaac
movq 0x340(%rsp), %rax
movq 0x290(%rsp), %rcx
movsbl (%rax,%rcx), %ecx
movl $0x7b, %eax
cmpl %ecx, %eax
je 0xdaac
movq 0x340(%rsp), %rax
movq 0x290(%rsp), %rcx
movsbl (%rax,%rcx), %ecx
movl $0x7d, %eax
cmpl %ecx, %eax
je 0xdaac
movq 0x340(%rsp), %rax
movq 0x290(%rsp), %rcx
movsbl (%rax,%rcx), %ecx
movl $0x3d, %eax
cmpl %ecx, %eax
jne 0xdade
movq 0x290(%rsp), %rax
movq %rax, 0x128(%rsp)
movslq 0x29c(%rsp), %rsi
leaq 0x2b0(%rsp), %rdi
callq 0xeaa0
movq 0x128(%rsp), %rcx
movq %rcx, (%rax)
jmp 0xdaf9
jmp 0xdae0
movq 0x290(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x290(%rsp)
jmp 0xda08
jmp 0xdafb
movl 0x29c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x29c(%rsp)
jmp 0xd98a
movq 0x338(%rsp), %rax
incq %rax
movq %rax, 0x118(%rsp)
movl 0x334(%rsp), %eax
decl %eax
movslq %eax, %rsi
leaq 0x2b0(%rsp), %rdi
callq 0xeaa0
movq 0x118(%rsp), %rcx
movq %rcx, (%rax)
movq $0x0, 0x288(%rsp)
movq 0x338(%rsp), %rax
incq %rax
movl $0x8, %ecx
mulq %rcx
movq %rax, %rdi
movq $-0x1, %rax
cmovoq %rax, %rdi
callq 0x3040
movq %rax, 0x120(%rsp)
jmp 0xdb84
movq 0x120(%rsp), %rax
movq %rax, 0x280(%rsp)
movslq 0x334(%rsp), %rax
movq %rax, 0x108(%rsp)
leaq 0x267(%rsp), %rdi
movq %rdi, 0x110(%rsp)
callq 0xea00
movq 0x108(%rsp), %rsi
movq 0x110(%rsp), %rdx
leaq 0x268(%rsp), %rdi
callq 0xea10
jmp 0xdbd8
leaq 0x267(%rsp), %rdi
callq 0xea90
callq 0x3330
movq %rax, 0x258(%rsp)
movl $0x0, 0x254(%rsp)
movl 0x254(%rsp), %eax
cmpl 0x334(%rsp), %eax
jge 0xdf63
testb $0x1, 0x31f(%rsp)
je 0xddea
movq 0x340(%rsp), %rax
movq %rax, 0xe8(%rsp)
movslq 0x254(%rsp), %rsi
leaq 0x2d0(%rsp), %rdi
movq %rdi, 0xf0(%rsp)
callq 0xeaa0
movq 0xf0(%rsp), %rdi
movq %rax, %rcx
movq 0xe8(%rsp), %rax
movq (%rcx), %rcx
addq %rcx, %rax
movq %rax, 0x240(%rsp)
movslq 0x254(%rsp), %rsi
callq 0xeaa0
movq %rax, 0x100(%rsp)
movslq 0x254(%rsp), %rsi
leaq 0x2b0(%rsp), %rdi
callq 0xeaa0
movq 0xf0(%rsp), %rdi
movq (%rax), %rax
movq %rax, 0xf8(%rsp)
movslq 0x254(%rsp), %rsi
callq 0xeaa0
movq %rax, %rcx
movq 0xf8(%rsp), %rax
movq (%rcx), %rcx
subq %rcx, %rax
movq %rax, 0x238(%rsp)
leaq 0x280(%rsp), %rdi
callq 0xf3b0
movq %rax, 0x230(%rsp)
movslq 0x254(%rsp), %rsi
leaq 0x268(%rsp), %rdi
callq 0xeaa0
movq %rax, %rdi
callq 0xf3e0
movq 0x100(%rsp), %rcx
movq %rax, 0x228(%rsp)
movq %rsp, %rax
leaq 0x228(%rsp), %rdx
movq %rdx, (%rax)
leaq 0xd99(%rip), %rsi       # 0xeac0
leaq 0x248(%rsp), %rdi
leaq 0x240(%rsp), %rdx
leaq 0x238(%rsp), %r8
leaq 0x230(%rsp), %r9
callq 0xf410
jmp 0xdd4e
movslq 0x254(%rsp), %rsi
leaq 0x300(%rsp), %rdi
callq 0xc200
movq %rax, %rdi
leaq 0x248(%rsp), %rsi
callq 0xc220
leaq 0x248(%rsp), %rdi
callq 0xc260
jmp 0xdf4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f0(%rsp)
movl %eax, 0x2ec(%rsp)
jmp 0xe787
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f0(%rsp)
movl %eax, 0x2ec(%rsp)
leaq 0x267(%rsp), %rdi
callq 0xea90
jmp 0xe787
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2f0(%rsp)
movl %eax, 0x2ec(%rsp)
leaq 0x268(%rsp), %rdi
callq 0xfea0
jmp 0xe787
movq 0x340(%rsp), %rax
movq %rax, 0xc8(%rsp)
movslq 0x254(%rsp), %rsi
leaq 0x2d0(%rsp), %rdi
movq %rdi, 0xd0(%rsp)
callq 0xeaa0
movq 0xd0(%rsp), %rdi
movq %rax, %rcx
movq 0xc8(%rsp), %rax
movq (%rcx), %rcx
addq %rcx, %rax
movq %rax, 0x218(%rsp)
movslq 0x254(%rsp), %rsi
callq 0xeaa0
movq %rax, 0xe0(%rsp)
movslq 0x254(%rsp), %rsi
leaq 0x2b0(%rsp), %rdi
callq 0xeaa0
movq 0xd0(%rsp), %rdi
movq (%rax), %rax
movq %rax, 0xd8(%rsp)
movslq 0x254(%rsp), %rsi
callq 0xeaa0
movq %rax, %rcx
movq 0xd8(%rsp), %rax
movq (%rcx), %rcx
subq %rcx, %rax
movq %rax, 0x210(%rsp)
leaq 0x280(%rsp), %rdi
callq 0xf3b0
movq %rax, 0x208(%rsp)
movslq 0x254(%rsp), %rsi
leaq 0x268(%rsp), %rdi
callq 0xeaa0
movq %rax, %rdi
callq 0xf3e0
movq 0xe0(%rsp), %rcx
movq %rax, 0x200(%rsp)
movq %rsp, %rax
leaq 0x200(%rsp), %rdx
movq %rdx, (%rax)
leaq 0x161e(%rip), %rsi      # 0xf510
leaq 0x220(%rsp), %rdi
leaq 0x218(%rsp), %rdx
leaq 0x210(%rsp), %r8
leaq 0x208(%rsp), %r9
callq 0xf410
jmp 0xdf19
movslq 0x254(%rsp), %rsi
leaq 0x300(%rsp), %rdi
callq 0xc200
movq %rax, %rdi
leaq 0x220(%rsp), %rsi
callq 0xc220
leaq 0x220(%rsp), %rdi
callq 0xc260
jmp 0xdf4d
movl 0x254(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x254(%rsp)
jmp 0xdbfd
movl $0x0, 0x1fc(%rsp)
movl 0x1fc(%rsp), %eax
cmpl 0x334(%rsp), %eax
jge 0xdfb2
movslq 0x1fc(%rsp), %rsi
leaq 0x300(%rsp), %rdi
callq 0xc200
movq %rax, %rdi
callq 0x33b0
jmp 0xdf9d
jmp 0xdf9f
movl 0x1fc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1fc(%rsp)
jmp 0xdf6e
callq 0x3330
movq %rax, 0x1f0(%rsp)
movl $0x0, 0x1ec(%rsp)
movl 0x1ec(%rsp), %eax
movl %eax, 0x1e8(%rsp)
movq $-0x4, 0x1e0(%rsp)
movq $-0x5, 0x1d8(%rsp)
movq $0x0, 0x1d0(%rsp)
movq 0x1d0(%rsp), %rax
movslq 0x334(%rsp), %rcx
cmpq %rcx, %rax
jae 0xe677
movq $0x0, 0x1c8(%rsp)
movq 0x1c8(%rsp), %rax
movq %rax, 0xc0(%rsp)
movq 0x1d0(%rsp), %rsi
leaq 0x268(%rsp), %rdi
callq 0xeaa0
movq %rax, %rcx
movq 0xc0(%rsp), %rax
cmpq (%rcx), %rax
jae 0xe65c
movq 0x1d0(%rsp), %rsi
leaq 0x2d0(%rsp), %rdi
callq 0xeaa0
movq (%rax), %rax
movq 0x1c8(%rsp), %rcx
addq %rcx, %rax
movq %rax, 0x1c0(%rsp)
movq 0x280(%rsp), %rax
movq 0x1c0(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0xfe10
movb %al, 0xbf(%rsp)
jmp 0xe0a7
movb 0xbf(%rsp), %al
andb $0x1, %al
movb %al, 0x1bf(%rsp)
testb $0x1, 0x1bf(%rsp)
jne 0xe10c
cmpl $0x0, 0x1ec(%rsp)
jne 0xe10c
movq 0x280(%rsp), %rax
movq 0x1c0(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
movq 0x280(%rsp), %rax
movq 0x288(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x288(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x288(%rsp)
jmp 0xe641
movq 0x340(%rsp), %rax
movq %rax, 0xa8(%rsp)
movq 0x280(%rsp), %rax
movq 0x1c0(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0xfe30
movq %rax, 0xb0(%rsp)
jmp 0xe13f
movq 0xa8(%rsp), %rax
movq 0xb0(%rsp), %rcx
movb (%rax,%rcx), %al
movb %al, 0x1be(%rsp)
movq 0x280(%rsp), %rax
movq 0x1c0(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0xfe30
movq %rax, 0xa0(%rsp)
jmp 0xe17c
movq 0xa0(%rsp), %rax
movq %rax, 0x1b0(%rsp)
testb $0x1, 0x1bf(%rsp)
je 0xe1c0
xorl %eax, %eax
cmpl 0x1ec(%rsp), %eax
jne 0xe1c0
movsbl 0x1be(%rsp), %ecx
movl $0x22, %eax
cmpl %ecx, %eax
jne 0xe1c0
movl $0x1, %eax
movl %eax, 0x9c(%rsp)
jmp 0xe1ce
movl 0x1e8(%rsp), %eax
movl %eax, 0x9c(%rsp)
movl 0x9c(%rsp), %eax
movl %eax, 0x1e8(%rsp)
testb $0x1, 0x1bf(%rsp)
je 0xe214
xorl %eax, %eax
cmpl 0x1ec(%rsp), %eax
jne 0xe214
movsbl 0x1be(%rsp), %ecx
movl $0x22, %eax
cmpl %ecx, %eax
jne 0xe214
movq 0x1c0(%rsp), %rax
movq %rax, 0x90(%rsp)
jmp 0xe224
movq 0x1e0(%rsp), %rax
movq %rax, 0x90(%rsp)
movq 0x90(%rsp), %rax
movq %rax, 0x1e0(%rsp)
testb $0x1, 0x1bf(%rsp)
je 0xe268
xorl %eax, %eax
cmpl 0x1ec(%rsp), %eax
jne 0xe268
movsbl 0x1be(%rsp), %ecx
movl $0x23, %eax
cmpl %ecx, %eax
jne 0xe268
movl $0x2, %eax
movl %eax, 0x8c(%rsp)
jmp 0xe276
movl 0x1e8(%rsp), %eax
movl %eax, 0x8c(%rsp)
movl 0x8c(%rsp), %eax
movl %eax, 0x1e8(%rsp)
testb $0x1, 0x1bf(%rsp)
je 0xe2bb
movl $0x1, %eax
cmpl 0x1ec(%rsp), %eax
jne 0xe2bb
movsbl 0x1be(%rsp), %ecx
movl $0x5c, %eax
cmpl %ecx, %eax
jne 0xe2bb
movl $0x3, %eax
movl %eax, 0x88(%rsp)
jmp 0xe2c9
movl 0x1e8(%rsp), %eax
movl %eax, 0x88(%rsp)
movl 0x88(%rsp), %eax
movl %eax, 0x1e8(%rsp)
testb $0x1, 0x1bf(%rsp)
je 0xe312
movl $0x1, %eax
cmpl 0x1ec(%rsp), %eax
jne 0xe312
movsbl 0x1be(%rsp), %ecx
movl $0x5c, %eax
cmpl %ecx, %eax
jne 0xe312
movq 0x1b0(%rsp), %rax
movq %rax, 0x80(%rsp)
jmp 0xe322
movq 0x1d8(%rsp), %rax
movq %rax, 0x80(%rsp)
movq 0x80(%rsp), %rax
movq %rax, 0x1d8(%rsp)
testb $0x1, 0x1bf(%rsp)
je 0xe363
movl $0x1, %eax
cmpl 0x1ec(%rsp), %eax
jne 0xe363
movsbl 0x1be(%rsp), %ecx
movl $0x22, %eax
cmpl %ecx, %eax
jne 0xe363
xorl %eax, %eax
movl %eax, 0x7c(%rsp)
jmp 0xe36e
movl 0x1e8(%rsp), %eax
movl %eax, 0x7c(%rsp)
movl 0x7c(%rsp), %eax
movl %eax, 0x1e8(%rsp)
testb $0x1, 0x1bf(%rsp)
je 0xe3ce
movl $0x1, %eax
cmpl 0x1ec(%rsp), %eax
jne 0xe3ce
movsbl 0x1be(%rsp), %ecx
movl $0x22, %eax
cmpl %ecx, %eax
jne 0xe3ce
movq 0x280(%rsp), %rax
movq 0x1e0(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0xfe30
movq %rax, 0x70(%rsp)
jmp 0xe3c2
movq 0x70(%rsp), %rax
movq %rax, 0x68(%rsp)
jmp 0xe3dc
movq $-0x1, %rax
movq %rax, 0x68(%rsp)
jmp 0xe3dc
movq 0x68(%rsp), %rax
movq %rax, 0x1a8(%rsp)
testb $0x1, 0x1bf(%rsp)
je 0xe43e
movl $0x1, %eax
cmpl 0x1ec(%rsp), %eax
jne 0xe43e
movsbl 0x1be(%rsp), %ecx
movl $0x22, %eax
cmpl %ecx, %eax
jne 0xe43e
movq 0x280(%rsp), %rax
movq 0x1e0(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0xfe50
movq %rax, 0x60(%rsp)
jmp 0xe432
movq 0x60(%rsp), %rax
movq %rax, 0x58(%rsp)
jmp 0xe44c
movq $-0x1, %rax
movq %rax, 0x58(%rsp)
jmp 0xe44c
movq 0x58(%rsp), %rax
movq %rax, 0x1a0(%rsp)
testb $0x1, 0x1bf(%rsp)
je 0xe4ba
movl $0x1, %eax
cmpl 0x1ec(%rsp), %eax
jne 0xe4ba
movsbl 0x1be(%rsp), %ecx
movl $0x22, %eax
cmpl %ecx, %eax
jne 0xe4ba
movq 0x280(%rsp), %rax
movq 0x1c0(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0xfe30
movq %rax, 0x50(%rsp)
jmp 0xe4a2
movq 0x50(%rsp), %rax
subq 0x1a8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x48(%rsp)
jmp 0xe4c8
movq $-0x1, %rax
movq %rax, 0x48(%rsp)
jmp 0xe4c8
movq 0x48(%rsp), %rax
movq %rax, 0x1a0(%rsp)
testb $0x1, 0x1bf(%rsp)
je 0xe547
movl $0x1, %eax
cmpl 0x1ec(%rsp), %eax
jne 0xe547
movsbl 0x1be(%rsp), %ecx
movl $0x22, %eax
cmpl %ecx, %eax
jne 0xe547
movq 0x1a8(%rsp), %rdi
movq 0x1a0(%rsp), %rsi
callq 0xfe70
movq %rax, 0x40(%rsp)
jmp 0xe51a
movq 0x40(%rsp), %rdx
movq 0x280(%rsp), %rax
movq 0x288(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x288(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x288(%rsp)
testb $0x1, 0x1bf(%rsp)
je 0xe58b
movl $0x3, %eax
cmpl 0x1ec(%rsp), %eax
jne 0xe58b
movq 0x1b0(%rsp), %rax
movq 0x1d8(%rsp), %rcx
addq $0x1, %rcx
cmpq %rcx, %rax
je 0xe58b
movq 0x1c8(%rsp), %rax
subq $0x1, %rax
movq %rax, 0x38(%rsp)
jmp 0xe598
movq 0x1c8(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rax
movq %rax, 0x1c8(%rsp)
testb $0x1, 0x1bf(%rsp)
je 0xe5c8
movl $0x3, %eax
cmpl 0x1ec(%rsp), %eax
jne 0xe5c8
movl $0x1, %eax
movl %eax, 0x34(%rsp)
jmp 0xe5d3
movl 0x1e8(%rsp), %eax
movl %eax, 0x34(%rsp)
movl 0x34(%rsp), %eax
movl %eax, 0x1e8(%rsp)
testb $0x1, 0x1bf(%rsp)
je 0xe61d
movl $0x2, %eax
cmpl 0x1ec(%rsp), %eax
jne 0xe61d
movsbl 0x1be(%rsp), %ecx
movl $0xa, %eax
cmpl %ecx, %eax
je 0xe615
movsbl 0x1be(%rsp), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0xe61d
xorl %eax, %eax
movl %eax, 0x30(%rsp)
jmp 0xe628
movl 0x1e8(%rsp), %eax
movl %eax, 0x30(%rsp)
movl 0x30(%rsp), %eax
movl %eax, 0x1e8(%rsp)
movl 0x1e8(%rsp), %eax
movl %eax, 0x1ec(%rsp)
jmp 0xe643
movq 0x1c8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x1c8(%rsp)
jmp 0xe021
jmp 0xe65e
movq 0x1d0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x1d0(%rsp)
jmp 0xdffc
callq 0x3330
movq %rax, 0x198(%rsp)
leaq 0x1f0(%rsp), %rdi
leaq 0x258(%rsp), %rsi
callq 0x5430
movq %rax, 0x28(%rsp)
jmp 0xe6a0
movq 0x28(%rsp), %rax
movq %rax, 0x188(%rsp)
leaq 0x188(%rsp), %rdi
callq 0x5400
movq %rax, 0x20(%rsp)
jmp 0xe6c1
movq 0x20(%rsp), %rax
movq %rax, 0x190(%rsp)
leaq 0x198(%rsp), %rdi
leaq 0x1f0(%rsp), %rsi
callq 0x5430
movq %rax, 0x18(%rsp)
jmp 0xe6ea
movq 0x18(%rsp), %rax
movq %rax, 0x178(%rsp)
leaq 0x178(%rsp), %rdi
callq 0x5400
movq %rax, 0x10(%rsp)
jmp 0xe70b
movq 0x10(%rsp), %rax
movq %rax, 0x180(%rsp)
xorl %eax, %eax
cmpl 0x1ec(%rsp), %eax
je 0xe725
jmp 0xe725
movq 0x280(%rsp), %rcx
movq 0x328(%rsp), %rax
movq %rcx, (%rax)
movq 0x288(%rsp), %rcx
movq 0x320(%rsp), %rax
movq %rcx, (%rax)
leaq 0x268(%rsp), %rdi
callq 0xfea0
leaq 0x2b0(%rsp), %rdi
callq 0xfea0
leaq 0x2d0(%rsp), %rdi
callq 0xfea0
leaq 0x300(%rsp), %rdi
callq 0xc930
addq $0x348, %rsp            # imm = 0x348
retq
leaq 0x2b0(%rsp), %rdi
callq 0xfea0
leaq 0x2d0(%rsp), %rdi
callq 0xfea0
leaq 0x300(%rsp), %rdi
callq 0xc930
movq 0x2f0(%rsp), %rdi
callq 0x33d0
nopl (%rax,%rax)