// File: /workspace/github_cpp_makefile_star2_O3/ClauParser[P]ClauParser/./include/clau_parser.h
// Function: clau_parser::LoadData::__LoadData(char const*, long const*, long, clau_parser::UserType*, int, int, clau_parser::UserType**, int*)
static bool __LoadData(const char* buffer, const int64_t* token_arr, int64_t token_arr_len, UserType* _global,
			int start_state, int last_state, UserType** next, int* err)
		{

			std::vector<int64_t> varVec;
			std::vector<int64_t> valVec;


			if (token_arr_len <= 0) {
				return false;
			}

			UserType& global = *_global;

			int state = start_state;
			size_t braceNum = 0;
			std::vector< UserType* > nestedUT(1);
			int64_t var = 0, val = 0;

			nestedUT.reserve(10);
			nestedUT[0] = &global;


			int64_t count = 0;
			const int64_t* x = token_arr;
			const int64_t* x_next = x;

			for (int64_t i = 0; i < token_arr_len; ++i) {
				x = x_next;
				{
					x_next = x + 1;
				}
				if (count > 0) {
					count--;
					continue;
				}
				int64_t len = Utility::GetLength(token_arr[i]);

				switch (state)
				{
				case 0:
				{
					// Left 1
					if (len == 1 && (-1 != Utility::Equal(TYPE_LEFT, Utility::GetType(token_arr[i])))) {
						if (!varVec.empty()) {
							nestedUT[braceNum]->ReserveIList(nestedUT[braceNum]->GetIListSize() + varVec.size());
							nestedUT[braceNum]->ReserveItemList(nestedUT[braceNum]->GetItemListSize() + varVec.size());

							for (size_t x = 0; x < varVec.size(); ++x) {
								nestedUT[braceNum]->AddItem(buffer + Utility::GetIdx(varVec[x]), Utility::GetLength(varVec[x]),
									buffer + Utility::GetIdx(valVec[x]), Utility::GetLength(valVec[x]));
							}

							varVec.clear();
							valVec.clear();
						}

						UserType temp("");

						nestedUT[braceNum]->AddUserTypeItem(temp);
						UserType* pTemp = nullptr;
						nestedUT[braceNum]->GetLastUserTypeItemRef(pTemp);

						braceNum++;

						/// new nestedUT
						if (nestedUT.size() == braceNum) {
							nestedUT.push_back(nullptr);
						}

						/// initial new nestedUT.
						nestedUT[braceNum] = pTemp;
						///

						state = 0;
					}
					// Right 2
					else if (len == 1 && (-1 != Utility::Equal(TYPE_RIGHT, Utility::GetType(token_arr[i])))) {
						state = 0;

						if (!varVec.empty()) {

							{
								nestedUT[braceNum]->ReserveIList(nestedUT[braceNum]->GetIListSize() + varVec.size());
								nestedUT[braceNum]->ReserveItemList(nestedUT[braceNum]->GetItemListSize() + varVec.size());

								for (size_t x = 0; x < varVec.size(); ++x) {
									nestedUT[braceNum]->AddItem(buffer + Utility::GetIdx(varVec[x]), Utility::GetLength(varVec[x]),
										buffer + Utility::GetIdx(valVec[x]), Utility::GetLength(valVec[x]));
								}
							}

							varVec.clear();
							valVec.clear();
						}

						if (braceNum == 0) {
							UserType ut;
							ut.AddUserTypeItem(UserType("#", 1)); // json -> "var_name" = val  // clautext, # is line comment delimiter.
							UserType* pTemp = nullptr;
							ut.GetLastUserTypeItemRef(pTemp);
							int utCount = 0;
							int itCount = 0;
							auto max = nestedUT[braceNum]->GetIListSize();
							for (size_t i = 0; i < max; ++i) {
								if (nestedUT[braceNum]->IsUserTypeList(i)) {
									ut.GetUserTypeList(0)->AddUserTypeItem(std::move(*(nestedUT[braceNum]->GetUserTypeList(utCount))));
									utCount++;
								}
								else {
									ut.GetUserTypeList(0)->AddItemType(std::move(nestedUT[braceNum]->GetItemList(itCount)));
									itCount++;
								}
							}

							nestedUT[braceNum]->Remove();
							nestedUT[braceNum]->AddUserTypeItem(std::move(*(ut.GetUserTypeList(0))));

							braceNum++;
						}

						{
							if (braceNum < nestedUT.size()) {
								nestedUT[braceNum] = nullptr;
							}
							braceNum--;
						}
					}
					else {
						if (x < token_arr + token_arr_len - 1) {
							int64_t _len = Utility::GetLength(token_arr[i + 1]);
							// EQ 3
							if (_len == 1 && -1 != Utility::Equal(TYPE_ASSIGN, Utility::GetType(token_arr[i + 1]))) {
								var = token_arr[i];

								state = 1;

								{
									count = 1;
								}
							}
							else {
								// var1
								if (x <= token_arr + token_arr_len - 1) {

									val = token_arr[i];

									varVec.push_back(check_syntax_error1(var, err));
									valVec.push_back(check_syntax_error1(val, err));

									val = 0;

									state = 0;

								}
							}
						}
						else
						{
							// var1
							if (x <= token_arr + token_arr_len - 1)
							{
								val = token_arr[i];
								varVec.push_back(check_syntax_error1(var, err));
								valVec.push_back(check_syntax_error1(val, err));
								val = 0;

								state = 0;
							}
						}
					}
				}
				break;
				case 1:
				{
					// LEFT 1
					if (len == 1 && (-1 != Utility::Equal(TYPE_LEFT, Utility::GetType(token_arr[i])))) {
						nestedUT[braceNum]->ReserveIList(nestedUT[braceNum]->GetIListSize() + varVec.size());
						nestedUT[braceNum]->ReserveItemList(nestedUT[braceNum]->GetItemListSize() + varVec.size());

						for (size_t x = 0; x < varVec.size(); ++x) {
							nestedUT[braceNum]->AddItem(buffer + Utility::GetIdx(varVec[x]), Utility::GetLength(varVec[x]),
								buffer + Utility::GetIdx(valVec[x]), Utility::GetLength(valVec[x]));
						}


						varVec.clear();
						valVec.clear();

						///
						{
							nestedUT[braceNum]->AddUserTypeItem(UserType(buffer + Utility::GetIdx(var), Utility::GetLength(var)));
							UserType* pTemp = nullptr;
							nestedUT[braceNum]->GetLastUserTypeItemRef(pTemp);
							var = 0;
							braceNum++;

							/// new nestedUT
							if (nestedUT.size() == braceNum) {
								nestedUT.push_back(nullptr);
							}

							/// initial new nestedUT.
							nestedUT[braceNum] = pTemp;
						}
						///
						state = 0;
					}
					else {
						if (x <= token_arr + token_arr_len - 1) {
							val = token_arr[i];

							varVec.push_back(check_syntax_error1(var, err));
							valVec.push_back(check_syntax_error1(val, err));
							var = 0; val = 0;

							state = 0;
						}
					}
				}
				break;
				default:
					// syntax err!!
					*err = -1;
					return false; // throw "syntax error ";
					break;
				}
			}

			if (next) {
				*next = nestedUT[braceNum];
			}

			if (varVec.empty() == false) {
				nestedUT[braceNum]->ReserveIList(nestedUT[braceNum]->GetIListSize() + varVec.size());
				nestedUT[braceNum]->ReserveItemList(nestedUT[braceNum]->GetItemListSize() + varVec.size());

				for (size_t x = 0; x < varVec.size(); ++x) {
					nestedUT[braceNum]->AddItem(buffer + Utility::GetIdx(varVec[x]), Utility::GetLength(varVec[x]),
						buffer + Utility::GetIdx(valVec[x]), Utility::GetLength(valVec[x]));
				}


				varVec.clear();
				valVec.clear();
			}

			if (state != last_state) {
				*err = -2;
				return false;
				// throw std::string("error final state is not last_state!  : ") + toStr(state);
			}
			if (x > token_arr + token_arr_len) {
				*err = -3;
				return false;
				//throw std::string("error x > buffer + buffer_len: ");
			}

			return true;
		}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x208, %rsp            # imm = 0x208
movq %rsi, 0x70(%rsp)
movq %rdi, %r15
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
xorl %edi, %edi
movq %rdi, 0x10(%rsp)
movq %rdi, 0x50(%rsp)
movaps %xmm0, 0x40(%rsp)
testq %rdx, %rdx
jle 0x5e32
movl %r9d, %ebx
movl %r8d, %r13d
movq %rcx, %r12
movq %rdx, %rbp
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
movl $0x8, %edi
callq 0x2190
movl %ebx, 0x84(%rsp)
leaq 0x20(%rsp), %rdi
movq %rax, (%rdi)
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, 0x10(%rdi)
movq $0x0, (%rax)
movq %rcx, 0x8(%rdi)
movl $0xa, %esi
callq 0x7fe2
leaq 0x20(%rsp), %rax
movq (%rax), %rax
movq %r12, (%rax)
movq 0x70(%rsp), %r14
leaq (%r14,%rbp,8), %rax
addq $-0x8, %rax
movq %rax, 0x78(%rsp)
xorl %r12d, %r12d
xorl %eax, %eax
movq $0x0, 0x60(%rsp)
xorl %ebx, %ebx
movq %rbp, 0x18(%rsp)
testq %rax, %rax
je 0x5253
xorl %eax, %eax
jmp 0x5ce1
movq 0x70(%rsp), %rax
movq (%rax,%r12,8), %rbp
movl %ebp, %eax
shrl $0x3, %eax
cmpl $0x1, %r13d
je 0x5403
testl %r13d, %r13d
jne 0x5e36
cmpl $0x1, %eax
leaq 0xa0(%rsp), %r13
jne 0x5589
movl %ebp, %eax
shrl %eax
andl $0x3, %eax
cmpl $0x2, %eax
je 0x5742
cmpl $0x1, %eax
jne 0x5589
movq (%rsp), %rax
movq 0x8(%rsp), %rcx
cmpq %rcx, %rax
je 0x539e
movq 0x20(%rsp), %rdx
movq (%rdx,%rbx,8), %rdi
movq 0x38(%rdi), %rsi
subq 0x30(%rdi), %rsi
sarq $0x2, %rsi
movq %rcx, %rdx
subq %rax, %rdx
sarq $0x3, %rdx
addq %rdx, %rsi
je 0x52f9
addq $0x30, %rdi
callq 0x829e
movq 0x20(%rsp), %rax
movq (%rax,%rbx,8), %rdi
movq (%rsp), %rax
movq 0x8(%rsp), %rcx
movq %rcx, %rdx
subq %rax, %rdx
sarq $0x3, %rdx
movq 0x50(%rdi), %rsi
subq 0x48(%rdi), %rsi
sarq $0x4, %rsi
movabsq $-0x3333333333333333, %r8 # imm = 0xCCCCCCCCCCCCCCCD
imulq %r8, %rsi
addq %rdx, %rsi
je 0x532a
addq $0x48, %rdi
callq 0x833a
movq (%rsp), %rax
movq 0x8(%rsp), %rcx
cmpq %rax, %rcx
je 0x538d
xorl %r13d, %r13d
movq 0x20(%rsp), %rcx
movq (%rcx,%rbx,8), %rdi
movq (%rax,%r13,8), %rdx
movq %rdx, %rsi
shrq $0x20, %rsi
addq %r15, %rsi
shrl $0x3, %edx
movq 0x40(%rsp), %rax
movq (%rax,%r13,8), %r8
movq %r8, %rcx
shrq $0x20, %rcx
addq %r15, %rcx
shrl $0x3, %r8d
callq 0x807e
incq %r13
movq (%rsp), %rax
movq 0x8(%rsp), %rcx
movq %rcx, %rdx
subq %rax, %rdx
sarq $0x3, %rdx
cmpq %rdx, %r13
jb 0x5332
cmpq %rax, %rcx
je 0x538d
movq %rax, 0x8(%rsp)
movq 0x40(%rsp), %rax
cmpq %rax, 0x48(%rsp)
je 0x539e
movq %rax, 0x48(%rsp)
leaq 0x148(%rsp), %r13
movq %r13, 0x138(%rsp)
leaq 0x138(%rsp), %rdi
leaq 0x4d2a(%rip), %rdx      # 0xa0e7
movq %rdx, %rsi
callq 0x8698
leaq 0xa0(%rsp), %rcx
movq %rcx, 0x90(%rsp)
movq 0x138(%rsp), %rax
cmpq %r13, %rax
je 0x5c1e
movq %rax, 0x90(%rsp)
movq 0x148(%rsp), %rax
movq %rax, 0xa0(%rsp)
jmp 0x5c26
xorq $0x1, %rax
movl %ebp, %ecx
andl $0x6, %ecx
xorq $0x2, %rcx
orq %rax, %rcx
jne 0x55bb
movq 0x20(%rsp), %rax
movq (%rax,%rbx,8), %rdi
movq 0x38(%rdi), %rsi
subq 0x30(%rdi), %rsi
sarq $0x2, %rsi
movq (%rsp), %rax
movq 0x8(%rsp), %rcx
movq %rcx, %rdx
subq %rax, %rdx
sarq $0x3, %rdx
addq %rdx, %rsi
je 0x546b
addq $0x30, %rdi
callq 0x829e
movq 0x20(%rsp), %rax
movq (%rax,%rbx,8), %rdi
movq (%rsp), %rax
movq 0x8(%rsp), %rcx
movq %rcx, %rdx
subq %rax, %rdx
sarq $0x3, %rdx
movq 0x50(%rdi), %rsi
subq 0x48(%rdi), %rsi
sarq $0x4, %rsi
movabsq $-0x3333333333333333, %r8 # imm = 0xCCCCCCCCCCCCCCCD
imulq %r8, %rsi
addq %rdx, %rsi
je 0x549c
addq $0x48, %rdi
callq 0x833a
movq (%rsp), %rax
movq 0x8(%rsp), %rcx
cmpq %rax, %rcx
je 0x54ff
xorl %r13d, %r13d
movq 0x20(%rsp), %rcx
movq (%rcx,%rbx,8), %rdi
movq (%rax,%r13,8), %rdx
movq %rdx, %rsi
shrq $0x20, %rsi
addq %r15, %rsi
shrl $0x3, %edx
movq 0x40(%rsp), %rax
movq (%rax,%r13,8), %r8
movq %r8, %rcx
shrq $0x20, %rcx
addq %r15, %rcx
shrl $0x3, %r8d
callq 0x807e
incq %r13
movq (%rsp), %rax
movq 0x8(%rsp), %rcx
movq %rcx, %rdx
subq %rax, %rdx
sarq $0x3, %rdx
cmpq %rdx, %r13
jb 0x54a4
cmpq %rax, %rcx
je 0x54ff
movq %rax, 0x8(%rsp)
movq 0x40(%rsp), %rax
cmpq %rax, 0x48(%rsp)
je 0x5510
movq %rax, 0x48(%rsp)
movq 0x20(%rsp), %rax
movq (%rax,%rbx,8), %r13
movq 0x60(%rsp), %rdx
movq %rdx, %rsi
shrq $0x20, %rsi
addq %r15, %rsi
shrl $0x3, %edx
leaq 0x148(%rsp), %rbp
movq %rbp, 0x138(%rsp)
addq %rsi, %rdx
leaq 0x138(%rsp), %rdi
callq 0x8698
leaq 0xa0(%rsp), %rcx
movq %rcx, 0x90(%rsp)
movq 0x138(%rsp), %rax
cmpq %rbp, %rax
je 0x5681
movq %rax, 0x90(%rsp)
movq 0x148(%rsp), %rax
movq %rax, 0xa0(%rsp)
jmp 0x5688
cmpq 0x78(%rsp), %r14
jae 0x55cf
movq 0x70(%rsp), %rax
movl 0x8(%rax,%r12,8), %eax
andl $-0x2, %eax
cmpl $0xe, %eax
jne 0x5a5f
movl $0x1, %r13d
movl $0x1, %eax
movq %rbp, 0x60(%rsp)
jmp 0x5cdc
cmpq 0x78(%rsp), %r14
jbe 0x562b
movl $0x1, %r13d
xorl %eax, %eax
jmp 0x5cdc
ja 0x573b
movq 0x60(%rsp), %rcx
movl %ecx, %eax
andl $-0x8, %eax
cmpl $0x8, %eax
jne 0x5602
movl %ecx, %eax
shrl %eax
andl $0x3, %eax
decq %rax
cmpq $0x2, %rax
ja 0x5602
movq 0x248(%rsp), %rax
movl $0xfffffffc, (%rax)     # imm = 0xFFFFFFFC
movq %rcx, 0x88(%rsp)
movq 0x8(%rsp), %rsi
cmpq 0x10(%rsp), %rsi
je 0x5b39
movq %rcx, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rsp)
jmp 0x5b49
movq 0x60(%rsp), %rcx
movl %ecx, %eax
andl $-0x8, %eax
cmpl $0x8, %eax
jne 0x5658
movl %ecx, %eax
shrl %eax
andl $0x3, %eax
decq %rax
cmpq $0x2, %rax
ja 0x5658
movq 0x248(%rsp), %rax
movl $0xfffffffc, (%rax)     # imm = 0xFFFFFFFC
movq %rcx, 0x88(%rsp)
movq 0x8(%rsp), %rsi
cmpq 0x10(%rsp), %rsi
je 0x5ab5
movq %rcx, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rsp)
jmp 0x5ac5
movups (%rbp), %xmm0
movups %xmm0, (%rcx)
movq 0x140(%rsp), %rax
movq %rax, 0x98(%rsp)
leaq 0x8649(%rip), %rax      # 0xdce8
movq %rax, 0x88(%rsp)
movl $0x82, %edx
leaq 0xb0(%rsp), %rdi
xorl %esi, %esi
callq 0x2100
movq %r13, %rdi
leaq 0x88(%rsp), %r13
movq %r13, %rsi
callq 0x3eb4
movq %r13, %rdi
callq 0x369a
movq 0x20(%rsp), %rax
movq (%rax,%rbx,8), %rdx
movq 0x68(%rdx), %rcx
cmpq %rcx, 0x60(%rdx)
je 0x56ef
movq -0x8(%rcx), %r13
jmp 0x56f2
xorl %r13d, %r13d
leaq 0x1(%rbx), %rbp
movq 0x28(%rsp), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
cmpq %rbp, %rcx
jne 0x572a
movq $0x0, 0x88(%rsp)
leaq 0x20(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x91aa
movq 0x20(%rsp), %rax
movq %r13, 0x8(%rax,%rbx,8)
movq $0x0, 0x60(%rsp)
movq %rbp, %rbx
xorl %eax, %eax
jmp 0x5cd9
movq (%rsp), %rax
movq 0x8(%rsp), %rcx
cmpq %rcx, %rax
movq 0x18(%rsp), %rbp
je 0x584f
movq 0x20(%rsp), %rdx
movq (%rdx,%rbx,8), %rdi
movq 0x38(%rdi), %rsi
subq 0x30(%rdi), %rsi
sarq $0x2, %rsi
movq %rcx, %rdx
subq %rax, %rdx
sarq $0x3, %rdx
addq %rdx, %rsi
je 0x57a2
addq $0x30, %rdi
callq 0x829e
movq 0x20(%rsp), %rax
movq (%rax,%rbx,8), %rdi
movq (%rsp), %rax
movq 0x8(%rsp), %rcx
movq %rcx, %rdx
subq %rax, %rdx
sarq $0x3, %rdx
movq 0x50(%rdi), %rsi
subq 0x48(%rdi), %rsi
sarq $0x4, %rsi
movabsq $-0x3333333333333333, %r8 # imm = 0xCCCCCCCCCCCCCCCD
imulq %r8, %rsi
addq %rdx, %rsi
je 0x57d3
addq $0x48, %rdi
callq 0x833a
movq (%rsp), %rax
movq 0x8(%rsp), %rcx
cmpq %rax, %rcx
je 0x583e
xorl %r13d, %r13d
movq 0x20(%rsp), %rcx
movq (%rcx,%rbx,8), %rdi
movq (%rax,%r13,8), %rdx
movq %rdx, %rsi
shrq $0x20, %rsi
addq %r15, %rsi
shrl $0x3, %edx
movq 0x40(%rsp), %rax
movq (%rax,%r13,8), %r8
movq %r8, %rcx
shrq $0x20, %rcx
addq %r15, %rcx
shrl $0x3, %r8d
callq 0x807e
incq %r13
movq (%rsp), %rax
movq 0x8(%rsp), %rcx
movq %rcx, %rdx
subq %rax, %rdx
sarq $0x3, %rdx
cmpq %rdx, %r13
jb 0x57db
cmpq %rax, %rcx
leaq 0xa0(%rsp), %r13
je 0x583e
movq %rax, 0x8(%rsp)
movq 0x40(%rsp), %rax
cmpq %rax, 0x48(%rsp)
je 0x584f
movq %rax, 0x48(%rsp)
testq %rbx, %rbx
jne 0x5a39
leaq 0x148(%rsp), %rbx
movq %rbx, 0x138(%rsp)
leaq 0x138(%rsp), %rdi
leaq 0x4870(%rip), %rdx      # 0xa0e7
movq %rdx, %rsi
callq 0x8698
leaq 0x8442(%rip), %rax      # 0xdcc8
movq %rax, 0x88(%rsp)
movq %r13, 0x90(%rsp)
movq 0x138(%rsp), %rsi
movq 0x140(%rsp), %rdx
addq %rsi, %rdx
leaq 0x90(%rsp), %rdi
callq 0x3bf8
leaq 0x842b(%rip), %rax      # 0xdce8
movq %rax, 0x88(%rsp)
movl $0x82, %edx
leaq 0xb0(%rsp), %rdi
xorl %esi, %esi
callq 0x2100
movq 0x138(%rsp), %rdi
cmpq %rbx, %rdi
je 0x58f6
movq 0x148(%rsp), %rsi
incq %rsi
callq 0x21a0
leaq 0x1f8(%rsp), %rax
movq %rax, 0x1e8(%rsp)
movw $0x23, 0x1f8(%rsp)
movl $0x1, %edx
movq %rdx, 0x1f0(%rsp)
leaq 0x150(%rsp), %rcx
movq %rcx, 0x140(%rsp)
movups (%rax), %xmm0
movups %xmm0, (%rcx)
movq %rdx, 0x148(%rsp)
leaq 0x83a6(%rip), %rax      # 0xdce8
movq %rax, 0x138(%rsp)
movl $0x82, %edx
leaq 0x160(%rsp), %rdi
xorl %esi, %esi
callq 0x2100
leaq 0x88(%rsp), %rdi
leaq 0x138(%rsp), %rbx
movq %rbx, %rsi
callq 0x3eb4
movq %rbx, %rdi
callq 0x369a
movq 0x20(%rsp), %rax
movq (%rax), %rdi
movq 0x38(%rdi), %rbp
subq 0x30(%rdi), %rbp
je 0x5a05
sarq $0x2, %rbp
cmpq $0x1, %rbp
adcq $0x0, %rbp
xorl %r13d, %r13d
movl $0x0, 0x6c(%rsp)
xorl %ebx, %ebx
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x30(%rax), %rcx
cmpl $0x2, (%rcx,%r13,4)
movq 0xe8(%rsp), %rcx
movq (%rcx), %rdi
jne 0x59db
movslq %ebx, %rcx
movq 0x60(%rax), %rax
movq (%rax,%rcx,8), %rsi
callq 0x3eb4
incl %ebx
jmp 0x59f5
movslq 0x6c(%rsp), %rcx
leaq (%rcx,%rcx,4), %rsi
shlq $0x4, %rsi
addq 0x48(%rax), %rsi
callq 0x81a4
incl 0x6c(%rsp)
incq %r13
cmpq %r13, %rbp
jne 0x59a9
movq 0x20(%rsp), %rax
movq (%rax), %rdi
callq 0x81f2
movq 0x20(%rsp), %rax
movq (%rax), %rdi
movq 0xe8(%rsp), %rax
movq (%rax), %rsi
callq 0x3eb4
leaq 0x88(%rsp), %rdi
callq 0x369a
movl $0x1, %ebx
movq 0x18(%rsp), %rbp
movq 0x20(%rsp), %rax
movq 0x28(%rsp), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
cmpq %rcx, %rbx
jae 0x5a57
movq $0x0, (%rax,%rbx,8)
decq %rbx
jmp 0x5c14
movq 0x60(%rsp), %rcx
movl %ecx, %eax
andl $-0x8, %eax
cmpl $0x8, %eax
jne 0x5a8c
movl %ecx, %eax
shrl %eax
andl $0x3, %eax
decq %rax
cmpq $0x2, %rax
ja 0x5a8c
movq 0x248(%rsp), %rax
movl $0xfffffffc, (%rax)     # imm = 0xFFFFFFFC
movq %rcx, 0x88(%rsp)
movq 0x8(%rsp), %rsi
cmpq 0x10(%rsp), %rsi
je 0x5b9e
movq %rcx, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rsp)
jmp 0x5bae
movq %rsp, %rdi
leaq 0x88(%rsp), %rdx
callq 0x7b74
movl %ebp, %eax
andl $-0x8, %eax
cmpl $0x8, %eax
jne 0x5aed
movl %ebp, %eax
shrl %eax
andl $0x3, %eax
decq %rax
cmpq $0x2, %rax
ja 0x5aed
movq 0x248(%rsp), %rax
movl $0xfffffffc, (%rax)     # imm = 0xFFFFFFFC
movq %rbp, 0x88(%rsp)
movq 0x48(%rsp), %rsi
cmpq 0x50(%rsp), %rsi
je 0x5b14
movq %rbp, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x48(%rsp)
movq 0x18(%rsp), %rbp
jmp 0x5b2b
leaq 0x40(%rsp), %rdi
leaq 0x88(%rsp), %rdx
callq 0x7b74
movq 0x18(%rsp), %rbp
movq $0x0, 0x60(%rsp)
jmp 0x5c14
movq %rsp, %rdi
leaq 0x88(%rsp), %rdx
callq 0x7b74
movl %ebp, %eax
andl $-0x8, %eax
cmpl $0x8, %eax
jne 0x5b71
movl %ebp, %eax
shrl %eax
andl $0x3, %eax
decq %rax
cmpq $0x2, %rax
ja 0x5b71
movq 0x248(%rsp), %rax
movl $0xfffffffc, (%rax)     # imm = 0xFFFFFFFC
movq %rbp, 0x88(%rsp)
movq 0x48(%rsp), %rsi
cmpq 0x50(%rsp), %rsi
jne 0x5bea
leaq 0x40(%rsp), %rdi
leaq 0x88(%rsp), %rdx
callq 0x7b74
movq 0x18(%rsp), %rbp
jmp 0x5c14
movq %rsp, %rdi
leaq 0x88(%rsp), %rdx
callq 0x7b74
movl %ebp, %eax
andl $-0x8, %eax
cmpl $0x8, %eax
jne 0x5bd6
movl %ebp, %eax
shrl %eax
andl $0x3, %eax
decq %rax
cmpq $0x2, %rax
ja 0x5bd6
movq 0x248(%rsp), %rax
movl $0xfffffffc, (%rax)     # imm = 0xFFFFFFFC
movq %rbp, 0x88(%rsp)
movq 0x48(%rsp), %rsi
cmpq 0x50(%rsp), %rsi
je 0x5bfd
movq %rbp, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x48(%rsp)
movq 0x18(%rsp), %rbp
jmp 0x5c14
leaq 0x40(%rsp), %rdi
leaq 0x88(%rsp), %rdx
callq 0x7b74
movq 0x18(%rsp), %rbp
xorl %eax, %eax
xorl %r13d, %r13d
jmp 0x5ce1
movups (%r13), %xmm0
movups %xmm0, (%rcx)
movq 0x140(%rsp), %rax
movq %rax, 0x98(%rsp)
leaq 0x80ab(%rip), %rax      # 0xdce8
movq %rax, 0x88(%rsp)
movl $0x82, %edx
leaq 0xb0(%rsp), %rdi
xorl %esi, %esi
callq 0x2100
movq 0x20(%rsp), %rax
movq (%rax,%rbx,8), %rdi
leaq 0x88(%rsp), %rsi
callq 0x80f8
movq 0x20(%rsp), %rax
movq (%rax,%rbx,8), %rdx
movq 0x68(%rdx), %rcx
cmpq %rcx, 0x60(%rdx)
je 0x5c88
movq -0x8(%rcx), %rbp
jmp 0x5c8a
xorl %ebp, %ebp
leaq 0x1(%rbx), %r13
movq 0x28(%rsp), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
cmpq %r13, %rcx
jne 0x5cc2
movq $0x0, 0x138(%rsp)
leaq 0x20(%rsp), %rdi
leaq 0x138(%rsp), %rsi
callq 0x91aa
movq 0x20(%rsp), %rax
movq %rbp, 0x8(%rax,%rbx,8)
leaq 0x88(%rsp), %rdi
callq 0x369a
xorl %eax, %eax
movq %r13, %rbx
xorl %r13d, %r13d
movq 0x18(%rsp), %rbp
addq $0x8, %r14
incq %r12
cmpq %rbp, %r12
jne 0x5247
movq 0x240(%rsp), %rcx
testq %rcx, %rcx
je 0x5d0a
movq 0x20(%rsp), %rax
movq (%rax,%rbx,8), %rax
movq %rax, (%rcx)
movq (%rsp), %rax
movq 0x8(%rsp), %rcx
cmpq %rcx, %rax
je 0x5e0a
movq 0x20(%rsp), %rdx
movq (%rdx,%rbx,8), %rdi
movq 0x38(%rdi), %rsi
subq 0x30(%rdi), %rsi
sarq $0x2, %rsi
movq %rcx, %rdx
subq %rax, %rdx
sarq $0x3, %rdx
addq %rdx, %rsi
je 0x5d65
addq $0x30, %rdi
callq 0x829e
movq 0x20(%rsp), %rax
movq (%rax,%rbx,8), %rdi
movq (%rsp), %rax
movq 0x8(%rsp), %rcx
movq %rcx, %rdx
subq %rax, %rdx
sarq $0x3, %rdx
movq 0x50(%rdi), %rsi
subq 0x48(%rdi), %rsi
sarq $0x4, %rsi
movabsq $-0x3333333333333333, %r8 # imm = 0xCCCCCCCCCCCCCCCD
imulq %r8, %rsi
addq %rdx, %rsi
je 0x5d96
addq $0x48, %rdi
callq 0x833a
movq (%rsp), %rax
movq 0x8(%rsp), %rcx
cmpq %rax, %rcx
je 0x5df9
xorl %r14d, %r14d
movq 0x20(%rsp), %rcx
movq (%rcx,%rbx,8), %rdi
movq (%rax,%r14,8), %rdx
movq %rdx, %rsi
shrq $0x20, %rsi
addq %r15, %rsi
shrl $0x3, %edx
movq 0x40(%rsp), %rax
movq (%rax,%r14,8), %r8
movq %r8, %rcx
shrq $0x20, %rcx
addq %r15, %rcx
shrl $0x3, %r8d
callq 0x807e
incq %r14
movq (%rsp), %rax
movq 0x8(%rsp), %rcx
movq %rcx, %rdx
subq %rax, %rdx
sarq $0x3, %rdx
cmpq %rdx, %r14
jb 0x5d9e
cmpq %rax, %rcx
je 0x5df9
movq %rax, 0x8(%rsp)
movq 0x40(%rsp), %rax
cmpq %rax, 0x48(%rsp)
je 0x5e0a
movq %rax, 0x48(%rsp)
movl $0xfffffffe, %eax       # imm = 0xFFFFFFFE
cmpl 0x84(%rsp), %r13d
jne 0x5e3b
movq 0x70(%rsp), %rax
leaq (%rax,%rbp,8), %rcx
movb $0x1, %bl
movl $0xfffffffd, %eax       # imm = 0xFFFFFFFD
cmpq %rcx, 0x78(%rsp)
ja 0x5e3b
jmp 0x5e47
xorl %ebx, %ebx
jmp 0x5e79
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movq 0x248(%rsp), %rcx
movl %eax, (%rcx)
xorl %ebx, %ebx
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x5e5e
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x21a0
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x5e75
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x21a0
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x5e8b
movq 0x10(%rsp), %rsi
subq %rdi, %rsi
callq 0x21a0
movl %ebx, %eax
addq $0x208, %rsp            # imm = 0x208
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x138(%rsp), %rdi
callq 0x369a
jmp 0x5f00
movq %rbx, %rcx
movq %rax, %rbx
movq 0x138(%rsp), %rdi
cmpq %rcx, %rdi
je 0x5f18
movq 0x148(%rsp), %rsi
incq %rsi
callq 0x21a0
jmp 0x5f18
jmp 0x5f15
jmp 0x5f15
jmp 0x5f15
jmp 0x5f15
jmp 0x5f15
jmp 0x5efd
jmp 0x5f15
jmp 0x5f15
jmp 0x5efd
jmp 0x5f15
jmp 0x5efd
jmp 0x5f15
jmp 0x5f15
movq %rax, %rbx
jmp 0x5f2f
jmp 0x5f15
jmp 0x5efd
jmp 0x5f15
jmp 0x5f15
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0x369a
jmp 0x5f18
jmp 0x5f15
jmp 0x5f15
jmp 0x5f15
movq %rax, %rbx
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x5f2f
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x21a0
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x5f46
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x21a0
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x5f5c
movq 0x10(%rsp), %rsi
subq %rdi, %rsi
callq 0x21a0
movq %rbx, %rdi
callq 0x22c0