// File: /workspace/github_cpp_makefile_star2_O1/havluj[P]spreadsheet/src/CExpressionParser.cpp
// Function: CExpressionParser::Tokenize(std::__cxx11::list<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
void CExpressionParser::Tokenize(std::list<std::string>& tokens,
	  const std::string& delimiter) {
    // Insert whitepaces before and after each special characters
    size_t size = sizeof (charSet) / sizeof (std::string);

    for (int i = 0; i < static_cast<int> (size); i++) {
	  std::string s = charSet[i];
	  ReplaceAll(m_strInput, s, " " + s + " ");
    }

    size_t next_pos = 0;
    size_t init_pos = m_strInput.find_first_not_of(delimiter, next_pos);

    while (next_pos != std::string::npos &&
		init_pos != std::string::npos) {
	  // Get next delimiter position    
	  next_pos = m_strInput.find(delimiter, init_pos);

	  std::string token = m_strInput.substr(init_pos, next_pos - init_pos);
	  tokens.push_back(token);

	  init_pos = m_strInput.find_first_not_of(delimiter, next_pos);
    }

    // Deal with start token being a minus sign
    std::string firstToken = tokens.front();
    if (firstToken == "-") {
	  std::list<std::string>::iterator it = tokens.begin();
	  it++;

	  if (it == tokens.end()) {
		return;
	  }

	  std::string nextToken = *(it);

	  if (IsNumber(nextToken) || IsFloat(nextToken)) {
		tokens.pop_front();
		tokens.front() = firstToken + nextToken;
	  } else if (nextToken == "(" || IsFunction(nextToken)) {
		tokens.front() = firstToken + "1";
		tokens.insert(it, "*");
	  }// minus minus is a plus
	  else if (nextToken == "-" && firstToken == "-") {
		std::list<std::string>::iterator nit = it;
		std::advance(nit, -1);
		tokens.erase(it);
		tokens.erase(nit);
	  }
    }

    // Deal with minus sign after opening parenthesis or operator
    typedef std::list<std::string>::iterator t_iter;
    std::string prevToken = "";
    for (t_iter it = tokens.begin(); it != std::prev(tokens.end()); it++) {
	  std::string token = *it;

	  std::list<std::string>::iterator nit = it;
	  std::advance(nit, 1);

	  if (nit == tokens.end()) {
		break;
	  }

	  std::string ntoken = *nit;

	  if (token == "-" && prevToken == "(") {
		if (IsNumber(ntoken) || IsFloat(ntoken)) {
		    tokens.erase(nit);
		    *it = "-" + ntoken;
		    token = *it;
		}
	  } else if (token == "-" &&
		    (IsOperator(prevToken) || prevToken == "^" || prevToken == "%")) {
		// Minus minus becomes a plus
		if (token == "-" && prevToken == "-") {
		    std::list<std::string>::iterator nit = it;
		    std::list<std::string>::iterator nnit = nit;
		    nnit++;
		    std::advance(nit, -1);
		    tokens.erase(it);
		    //tokens.erase( nit );
		    *nit = "+";

		    std::list<std::string>::iterator pnit = nit;
		    std::advance(pnit, -1);

		    if (IsOperator(*pnit) || *pnit == "(") {
			  tokens.erase(nit);
		    }

		    token = *nnit;
		    it = nnit;

		    if (it == std::prev(tokens.end())) {
			  break;
		    }
		} else if (IsNumber(ntoken) || IsFloat(ntoken) || IsFunction(ntoken)) {
		    bool exit = false;
		    if (nit == std::prev(tokens.end())) {
			  exit = true;
		    }

		    tokens.erase(nit);
		    *it = "-" + ntoken;
		    token = *it;

		    if (exit) break;
		} else if (ntoken == "(") {
		    *it = "-1";
		    token = *it;
		    tokens.insert(nit, "*");
		}
	  }

	  prevToken = token;
    }

    // Deal with minus sign before opening parenthesis
    prevToken = "";
    t_iter prevIt;

    for (t_iter it = tokens.begin(); it != tokens.end(); it++) {
	  std::string token = *it;

	  if (token == "(" && prevToken == "-") {
		tokens.insert(it, "1");
		tokens.insert(it, "*");
	  }

	  prevToken = token;
	  prevIt = it;
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb8, %rsp
movq %rdx, %r14
movq %rsi, 0x8(%rsp)
movq %rdi, %r15
movl $0x8, %ebx
leaq 0x78(%rsp), %r12
leaq 0x3d74(%rip), %r13      # 0xe883
leaq 0x10(%rsp), %rbp
leaq 0x88(%rsp), %rax
movq %rax, 0x78(%rsp)
leaq 0x8e38(%rip), %rax      # 0x13960
movq -0x8(%rbx,%rax), %rsi
movq (%rbx,%rax), %rdx
addq %rsi, %rdx
movq %r12, %rdi
callq 0x5370
movq %rbp, %rdi
movq %r13, %rsi
movq %r12, %rdx
callq 0xcc2f
movq %rbp, %rdi
movq %r13, %rsi
callq 0x4610
leaq 0x60(%rsp), %rsi
movq %rsi, 0x50(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xab7d
movq %rdx, 0x50(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x60(%rsp)
jmp 0xab83
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x58(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r15, %rsi
movq %r12, %rdx
leaq 0x50(%rsp), %rcx
callq 0xb730
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0xabc7
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x42d0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0xabe3
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x42d0
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xac05
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x42d0
addq $0x20, %rbx
cmpq $0x128, %rbx            # imm = 0x128
jne 0xab14
movq (%r14), %rsi
movq 0x8(%r14), %rcx
movq %r15, %rdi
xorl %edx, %edx
callq 0x4540
cmpq $-0x1, %rax
movq 0x8(%rsp), %rbp
je 0xacc8
movq %rax, %r13
leaq 0x78(%rsp), %rbx
movq (%r14), %rsi
movq 0x8(%r14), %rcx
movq %r15, %rdi
movq %r13, %rdx
callq 0x4580
movq %rax, %r12
movq %rax, %rcx
subq %r13, %rcx
movq %rbx, %rdi
movq %r15, %rsi
movq %r13, %rdx
callq 0x42e0
movq %rbp, %rdi
movq %rbx, %rsi
callq 0xcf34
movq %rax, %rdi
movq %rbp, %rsi
callq 0x4030
incq 0x10(%rbp)
movq (%r14), %rsi
movq 0x8(%r14), %rcx
movq %r15, %rdi
movq %r12, %rdx
callq 0x4540
movq %rax, %r13
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xacb8
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x42d0
cmpq $-0x1, %r13
je 0xacc8
cmpq $-0x1, %r12
jne 0xac3e
movq (%rbp), %rax
leaq 0x78(%rsp), %rbx
leaq 0x88(%rsp), %rcx
movq %rcx, (%rbx)
movq 0x10(%rax), %rsi
movq 0x18(%rax), %rdx
addq %rsi, %rdx
movq %rbx, %rdi
callq 0x5370
leaq 0x3c00(%rip), %rsi      # 0xe8f6
movq %rbx, %rdi
callq 0x40a0
testl %eax, %eax
leaq 0x60(%rsp), %r15
leaq 0x20(%rsp), %r12
je 0xb190
leaq 0x50(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x3b65(%rip), %rdx      # 0xe884
movq %rdx, %rsi
callq 0x84ba
leaq 0x40(%rsp), %rbx
leaq 0xa8(%rsp), %r14
movq (%rbp), %r13
movq 0x8(%rsp), %rax
cmpq 0x8(%rax), %r13
je 0xb259
movq %r12, 0x10(%rsp)
movq 0x10(%r13), %rsi
movq 0x18(%r13), %rdx
addq %rsi, %rdx
leaq 0x10(%rsp), %rdi
callq 0x5370
movq (%r13), %r15
cmpq 0x8(%rsp), %r15
je 0xb242
movq %r12, %rbp
movq %rbx, 0x30(%rsp)
movq 0x10(%r15), %rsi
movq 0x18(%r15), %rdx
addq %rsi, %rdx
leaq 0x30(%rsp), %rdi
callq 0x5370
leaq 0x10(%r13), %rax
movq %rax, 0x70(%rsp)
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
leaq 0x3b51(%rip), %r12      # 0xe8f6
movq %r12, %rsi
callq 0x40a0
testl %eax, %eax
jne 0xadca
leaq 0x50(%rsp), %rdi
leaq 0x3b33(%rip), %rsi      # 0xe8f0
callq 0x40a0
testl %eax, %eax
je 0xaf5f
movq %rbx, %rdi
movq %r12, %rsi
callq 0x40a0
testl %eax, %eax
je 0xae35
movq %rbp, %r12
xorl %ebx, %ebx
leaq 0x50(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x4190
movq %r13, %rbp
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0xae0c
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x42d0
movq 0x10(%rsp), %rdi
cmpq %r12, %rdi
je 0xae23
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x42d0
testl %ebx, %ebx
leaq 0x40(%rsp), %rbx
je 0xad34
jmp 0xb259
leaq 0x50(%rsp), %rbp
movq %rbp, %rdi
callq 0xa418
testb %al, %al
jne 0xae76
movq %rbp, %rdi
leaq 0x3577(%rip), %rsi      # 0xe3c7
callq 0x40a0
testl %eax, %eax
je 0xae76
movq %rbp, %rdi
leaq 0x3a8f(%rip), %rsi      # 0xe8f2
callq 0x40a0
testl %eax, %eax
je 0xae76
leaq 0x20(%rsp), %r12
jmp 0xaddc
movq %rbx, %rdi
leaq 0x3a76(%rip), %rsi      # 0xe8f6
callq 0x40a0
testl %eax, %eax
jne 0xaea0
movq %rbp, %rdi
leaq 0x3a63(%rip), %rsi      # 0xe8f6
callq 0x40a0
testl %eax, %eax
je 0xafec
leaq 0x30(%rsp), %rdi
callq 0xa987
leaq 0x20(%rsp), %r12
testb %al, %al
jne 0xaed3
leaq 0x30(%rsp), %rdi
callq 0xa8e8
testb %al, %al
jne 0xaed3
leaq 0x30(%rsp), %rdi
callq 0xa71e
testb %al, %al
je 0xb088
movq 0x8(%rsp), %rdi
movq 0x8(%rdi), %r12
movq %r15, %rsi
callq 0xcf86
leaq 0x98(%rsp), %rbx
movq %rbx, %rdi
leaq 0x3a00(%rip), %rsi      # 0xe8f6
leaq 0x30(%rsp), %rdx
callq 0xcc2f
movq 0x70(%rsp), %rdi
movq %rbx, %rsi
callq 0x4380
movq 0x98(%rsp), %rdi
cmpq %r14, %rdi
leaq 0x10(%rsp), %rbx
je 0xaf2f
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x42d0
movq %rbx, %rdi
movq 0x70(%rsp), %rsi
callq 0x4190
movl $0x0, %ebx
movq %r13, %rbp
cmpq %r12, %r15
movl $0x7, %eax
cmovel %eax, %ebx
leaq 0x20(%rsp), %r12
jne 0xaddc
jmp 0xadf0
leaq 0x30(%rsp), %rdi
callq 0xa987
movq %rbp, %r12
testb %al, %al
jne 0xaf82
leaq 0x30(%rsp), %rdi
callq 0xa8e8
testb %al, %al
je 0xaddc
movq 0x8(%rsp), %rdi
movq %r15, %rsi
callq 0xcf86
leaq 0x98(%rsp), %rbx
movq %rbx, %rdi
leaq 0x3955(%rip), %rsi      # 0xe8f6
leaq 0x30(%rsp), %rdx
callq 0xcc2f
movq 0x70(%rsp), %rdi
movq %rbx, %rsi
callq 0x4380
movq 0x98(%rsp), %rdi
cmpq %r14, %rdi
leaq 0x10(%rsp), %rbx
je 0xafda
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x42d0
movq %rbx, %rdi
movq 0x70(%rsp), %rsi
callq 0x4190
jmp 0xaddc
movq (%r13), %rbp
movq 0x8(%r13), %rbx
movq 0x8(%rsp), %rdi
movq %r13, %rsi
callq 0xcf86
leaq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rdx
movl $0x1, %r8d
xorl %esi, %esi
leaq 0x38dc(%rip), %rcx      # 0xe8f4
callq 0x44a0
leaq 0x20(%rsp), %r12
movq 0x8(%rbx), %r15
addq $0x10, %r15
movq %r15, %rdi
callq 0xa418
testb %al, %al
jne 0xb049
movq %r15, %rdi
leaq 0x38b0(%rip), %rsi      # 0xe8f0
callq 0x40a0
testl %eax, %eax
jne 0xb056
movq 0x8(%rsp), %rdi
movq %rbx, %rsi
callq 0xcf86
leaq 0x10(%rbp), %rsi
leaq 0x10(%rsp), %rdi
callq 0x4190
movl $0x0, %ebx
movq %rbp, %r13
movq 0x8(%rsp), %rax
cmpq 0x8(%rax), %rbp
movl $0x7, %eax
cmovel %eax, %ebx
jne 0xaddc
jmp 0xadf0
leaq 0x30(%rsp), %rdi
leaq 0x385c(%rip), %rsi      # 0xe8f0
callq 0x40a0
testl %eax, %eax
jne 0xaddc
movq 0x18(%r13), %rdx
movl $0x2, %r8d
movq 0x70(%rsp), %rdi
xorl %esi, %esi
leaq 0x386a(%rip), %rcx      # 0xe923
callq 0x44a0
leaq 0x10(%rsp), %rdi
movq 0x70(%rsp), %rsi
callq 0x4190
movq %r14, 0x98(%rsp)
leaq 0x98(%rsp), %rdi
leaq 0x3814(%rip), %rsi      # 0xe8f8
leaq 0x380e(%rip), %rdx      # 0xe8f9
callq 0x84ba
movl $0x30, %edi
callq 0x42c0
movq 0x8(%rsp), %rbx
movq %rax, %rcx
addq $0x20, %rcx
movq %rcx, 0x10(%rax)
movq 0x98(%rsp), %rdx
movq %r14, %rbp
cmpq %r14, %rdx
je 0xb12c
movq %rdx, 0x10(%rax)
movq 0xa8(%rsp), %rcx
movq %rcx, 0x20(%rax)
jmp 0xb133
movups (%rbp), %xmm0
movups %xmm0, (%rcx)
movq 0xa0(%rsp), %rcx
movq %rcx, 0x18(%rax)
movq %rbp, 0x98(%rsp)
movq $0x0, 0xa0(%rsp)
movb $0x0, 0xa8(%rsp)
movq %rax, %rdi
movq %r15, %rsi
callq 0x4030
incq 0x10(%rbx)
movq 0x98(%rsp), %rdi
cmpq %rbp, %rdi
je 0xaddc
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x42d0
jmp 0xaddc
movq (%rbp), %rax
movq (%rax), %r14
cmpq %rbp, %r14
je 0xb460
leaq 0x50(%rsp), %rdi
movq %r15, (%rdi)
movq 0x10(%r14), %rsi
movq 0x18(%r14), %rdx
addq %rsi, %rdx
callq 0x5370
leaq 0x50(%rsp), %rdi
callq 0xa987
testb %al, %al
jne 0xb1d8
leaq 0x50(%rsp), %rdi
callq 0xa8e8
testb %al, %al
je 0xb494
movq (%rbp), %rsi
movq %rbp, %rdi
callq 0xcf86
leaq 0x10(%rsp), %rdi
leaq 0x78(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0xccb7
movq (%rbp), %rdi
addq $0x10, %rdi
leaq 0x10(%rsp), %rbx
movq %rbx, %rsi
callq 0x4380
movq (%rbx), %rdi
cmpq %r12, %rdi
je 0xb222
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x42d0
movq 0x50(%rsp), %rdi
cmpq %r15, %rdi
je 0xad10
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x42d0
jmp 0xad10
movq 0x10(%rsp), %rdi
cmpq %r12, %rdi
je 0xb259
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x42d0
leaq 0x50(%rsp), %rdi
movq 0x8(%rdi), %rdx
leaq 0x361b(%rip), %rcx      # 0xe884
xorl %esi, %esi
xorl %r8d, %r8d
callq 0x44a0
movq 0x8(%rsp), %rax
movq (%rax), %r14
cmpq %rax, %r14
je 0xb444
leaq 0x10(%rsp), %r15
leaq 0x3660(%rip), %r12      # 0xe8f0
leaq 0x365f(%rip), %r13      # 0xe8f6
leaq 0x50(%rsp), %rbp
leaq 0x20(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%r14), %rsi
movq 0x18(%r14), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x5370
movq %r15, %rdi
movq %r12, %rsi
callq 0x40a0
testl %eax, %eax
jne 0xb40f
movq %rbp, %rdi
movq %r13, %rsi
callq 0x40a0
testl %eax, %eax
jne 0xb40f
movq %rbx, 0x30(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0x3634(%rip), %rsi      # 0xe924
leaq 0x362e(%rip), %rdx      # 0xe925
callq 0x84ba
movl $0x30, %edi
callq 0x42c0
movq %rax, %rcx
addq $0x20, %rcx
movq %rcx, 0x10(%rax)
movq 0x30(%rsp), %rdx
cmpq %rbx, %rdx
je 0xb32a
movq %rdx, 0x10(%rax)
movq 0x40(%rsp), %rcx
movq %rcx, 0x20(%rax)
jmp 0xb330
movups (%rbx), %xmm0
movups %xmm0, (%rcx)
movq 0x38(%rsp), %rcx
movq %rcx, 0x18(%rax)
movq %rbx, 0x30(%rsp)
movq $0x0, 0x38(%rsp)
movb $0x0, 0x40(%rsp)
movq %rax, %rdi
movq %r14, %rsi
callq 0x4030
movq 0x8(%rsp), %rax
incq 0x10(%rax)
movq 0x30(%rsp), %rdi
cmpq %rbx, %rdi
je 0xb377
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x42d0
movq %rbx, 0x30(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0x3570(%rip), %rsi      # 0xe8f8
leaq 0x356a(%rip), %rdx      # 0xe8f9
callq 0x84ba
movl $0x30, %edi
callq 0x42c0
movq %rax, %rcx
addq $0x20, %rcx
movq %rcx, 0x10(%rax)
movq 0x30(%rsp), %rdx
cmpq %rbx, %rdx
je 0xb3c2
movq %rdx, 0x10(%rax)
movq 0x40(%rsp), %rcx
movq %rcx, 0x20(%rax)
jmp 0xb3c8
movups (%rbx), %xmm0
movups %xmm0, (%rcx)
movq 0x38(%rsp), %rcx
movq %rcx, 0x18(%rax)
movq %rbx, 0x30(%rsp)
movq $0x0, 0x38(%rsp)
movb $0x0, 0x40(%rsp)
movq %rax, %rdi
movq %r14, %rsi
callq 0x4030
movq 0x8(%rsp), %rax
incq 0x10(%rax)
movq 0x30(%rsp), %rdi
cmpq %rbx, %rdi
je 0xb40f
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x42d0
movq %rbp, %rdi
movq %r15, %rsi
callq 0x4190
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0xb436
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x42d0
movq (%r14), %r14
cmpq 0x8(%rsp), %r14
jne 0xb29c
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0xb460
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x42d0
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xb482
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x42d0
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x3455(%rip), %rsi      # 0xe8f0
leaq 0x50(%rsp), %rdi
callq 0x40a0
testl %eax, %eax
je 0xb4bb
leaq 0x50(%rsp), %rdi
callq 0xa71e
testb %al, %al
je 0xb55c
leaq 0x10(%rsp), %rdi
movq %r12, (%rdi)
movq 0x78(%rsp), %rsi
movq 0x80(%rsp), %rdx
addq %rsi, %rdx
callq 0x5370
leaq 0x3445(%rip), %rsi      # 0xe924
leaq 0x10(%rsp), %rdi
callq 0x4610
movq (%rbp), %rdi
addq $0x10, %rdi
leaq 0x10(%rsp), %rbx
movq %rbx, %rsi
callq 0x4380
movq (%rbx), %rdi
cmpq %r12, %rdi
je 0xb513
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x42d0
leaq 0x10(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x33d6(%rip), %rsi      # 0xe8f8
leaq 0x33d0(%rip), %rdx      # 0xe8f9
callq 0x84ba
movl $0x30, %edi
callq 0x42c0
movq %rax, %rcx
addq $0x20, %rcx
movq %rcx, 0x10(%rax)
movq 0x10(%rsp), %rdx
cmpq %r12, %rdx
je 0xb5ad
movq %rdx, 0x10(%rax)
movq 0x20(%rsp), %rcx
movq %rcx, 0x20(%rax)
jmp 0xb5b5
leaq 0x3393(%rip), %rsi      # 0xe8f6
leaq 0x50(%rsp), %rdi
callq 0x40a0
testl %eax, %eax
jne 0xb222
leaq 0x337a(%rip), %rsi      # 0xe8f6
leaq 0x78(%rsp), %rdi
callq 0x40a0
testl %eax, %eax
jne 0xb222
movq 0x8(%r14), %rbx
movq %rbp, %rdi
movq %r14, %rsi
callq 0xcf86
movq %rbp, %rdi
movq %rbx, %rsi
callq 0xcf86
jmp 0xb222
movups (%r12), %xmm0
movups %xmm0, (%rcx)
movq 0x18(%rsp), %rcx
movq %rcx, 0x18(%rax)
movq %r12, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
movb $0x0, 0x20(%rsp)
movq %rax, %rdi
movq %r14, %rsi
callq 0x4030
incq 0x10(%rbp)
movq 0x10(%rsp), %rdi
jmp 0xb210
jmp 0xb5f1
jmp 0xb6a5
movq %rax, %rbx
movq 0x10(%rsp), %rdi
cmpq %r12, %rdi
jne 0xb696
jmp 0xb6a8
jmp 0xb6a5
movq %rax, %rbx
movq 0x98(%rsp), %rdi
cmpq %r14, %rdi
je 0xb666
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x42d0
jmp 0xb666
jmp 0xb663
jmp 0xb6a5
jmp 0xb6c0
jmp 0xb663
jmp 0xb663
jmp 0xb6a5
jmp 0xb6a5
jmp 0xb6c0
jmp 0xb663
jmp 0xb663
jmp 0xb663
jmp 0xb64b
jmp 0xb684
movq %rbx, %rcx
movq %rax, %rbx
movq 0x30(%rsp), %rdi
cmpq %rcx, %rdi
jne 0xb675
jmp 0xb687
jmp 0xb684
jmp 0xb684
jmp 0xb6a5
movq %rax, %rbx
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0xb687
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x42d0
jmp 0xb687
movq %rax, %rbx
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0xb6a8
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x42d0
jmp 0xb6a8
movq %rax, %rbx
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0xb705
movq 0x60(%rsp), %rsi
jmp 0xb6fd
jmp 0xb6c0
movq %rax, %rbx
jmp 0xb705
movq %rax, %rbx
jmp 0xb6e9
movq %rax, %rbx
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0xb6e9
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x42d0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0xb705
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x42d0
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xb727
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x42d0
movq %rbx, %rdi
callq 0x45a0
nop