// File: /workspace/github_cpp_makefile_star2_O3/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 $0xa8, %rsp
movq %rdx, %r14
movq %rsi, (%rsp)
movq %rdi, %r15
movl $0x8, %ebx
leaq 0x68(%rsp), %r12
leaq 0x3e2b(%rip), %r13      # 0xe893
leaq 0x8(%rsp), %rbp
leaq 0x78(%rsp), %rax
movq %rax, 0x68(%rsp)
leaq 0x8ee2(%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 0xcb7d
movq %rbp, %rdi
movq %r13, %rsi
callq 0x4610
leaq 0x58(%rsp), %rsi
movq %rsi, 0x48(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xaad3
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
jmp 0xaad9
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x50(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r15, %rsi
movq %r12, %rdx
leaq 0x48(%rsp), %rcx
callq 0xb63a
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0xab1d
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x42d0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xab39
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x42d0
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0xab55
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x42d0
addq $0x20, %rbx
cmpq $0x128, %rbx            # imm = 0x128
jne 0xaa6d
movq (%r14), %rsi
movq 0x8(%r14), %rcx
movq %r15, %rdi
xorl %edx, %edx
callq 0x4540
cmpq $-0x1, %rax
je 0xac11
movq %rax, %r13
leaq 0x68(%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 (%rsp), %r13
movq %r13, %rdi
movq %rbx, %rsi
callq 0xce90
movq %rax, %rdi
movq %r13, %rsi
callq 0x4030
incq 0x10(%r13)
movq (%r14), %rsi
movq 0x8(%r14), %rcx
movq %r15, %rdi
movq %r12, %rdx
callq 0x4540
movq %rax, %r13
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0xac01
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x42d0
cmpq $-0x1, %r13
je 0xac11
cmpq $-0x1, %r12
jne 0xab89
movq (%rsp), %rax
movq (%rax), %rax
leaq 0x68(%rsp), %rbx
leaq 0x78(%rsp), %rcx
movq %rcx, (%rbx)
movq 0x10(%rax), %rsi
movq 0x18(%rax), %rdx
addq %rsi, %rdx
movq %rbx, %rdi
callq 0x5370
leaq 0x3cc7(%rip), %rsi      # 0xe906
movq %rbx, %rdi
callq 0x40a0
testl %eax, %eax
leaq 0x58(%rsp), %r15
je 0xb0a0
leaq 0x48(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x3c31(%rip), %rdx      # 0xe894
movq %rdx, %rsi
callq 0x8438
leaq 0x8(%rsp), %r14
movq (%rsp), %rbx
movq %rbx, %rbp
movq (%rbp), %r13
cmpq 0x8(%rbx), %r13
je 0xb174
leaq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x10(%r13), %rsi
movq 0x18(%r13), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x5370
movq (%r13), %r15
cmpq %rbx, %r15
je 0xb158
leaq 0x38(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x10(%r15), %rsi
movq 0x18(%r15), %rdx
addq %rsi, %rdx
leaq 0x28(%rsp), %rdi
callq 0x5370
leaq 0x10(%r13), %rbp
movq %r14, %rdi
leaq 0x3c2a(%rip), %rbx      # 0xe906
movq %rbx, %rsi
callq 0x40a0
testl %eax, %eax
jne 0xad01
leaq 0x48(%rsp), %rdi
leaq 0x3c0c(%rip), %rsi      # 0xe900
callq 0x40a0
testl %eax, %eax
je 0xae7e
movq %r14, %rdi
movq %rbx, %rsi
callq 0x40a0
testl %eax, %eax
je 0xad6b
movb $0x1, %bl
leaq 0x48(%rsp), %rdi
movq %r14, %rsi
callq 0x4190
movq %r13, %rbp
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0xad3e
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x42d0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xad5a
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x42d0
testb %bl, %bl
movq (%rsp), %rbx
jne 0xac77
jmp 0xb174
leaq 0x48(%rsp), %rbx
movq %rbx, %rdi
callq 0xa37c
testb %al, %al
jne 0xada6
movq %rbx, %rdi
leaq 0x3641(%rip), %rsi      # 0xe3c7
callq 0x40a0
testl %eax, %eax
je 0xada6
movq %rbx, %rdi
leaq 0x3b69(%rip), %rsi      # 0xe902
callq 0x40a0
testl %eax, %eax
jne 0xad10
movq %r14, %rdi
leaq 0x3b56(%rip), %rsi      # 0xe906
callq 0x40a0
testl %eax, %eax
jne 0xadd0
movq %rbx, %rdi
leaq 0x3b43(%rip), %rsi      # 0xe906
callq 0x40a0
testl %eax, %eax
je 0xaf06
leaq 0x28(%rsp), %rdi
callq 0xa8e5
testb %al, %al
jne 0xadfe
leaq 0x28(%rsp), %rdi
callq 0xa846
testb %al, %al
jne 0xadfe
leaq 0x28(%rsp), %rdi
callq 0xa67e
testb %al, %al
je 0xaf8b
movq %r14, %rbx
movq (%rsp), %rdi
movq 0x8(%rdi), %r12
movq %r15, %rsi
callq 0xcee2
leaq 0x88(%rsp), %r14
movq %r14, %rdi
leaq 0x3ae3(%rip), %rsi      # 0xe906
leaq 0x28(%rsp), %rdx
callq 0xcb7d
movq %rbp, %rdi
movq %r14, %rsi
callq 0x4380
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0xae5d
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x42d0
movq %rbx, %r14
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x4190
cmpq %r12, %r15
jne 0xad10
xorl %ebx, %ebx
movq %r13, %rbp
jmp 0xad22
leaq 0x28(%rsp), %rdi
callq 0xa8e5
testb %al, %al
jne 0xae9e
leaq 0x28(%rsp), %rdi
callq 0xa846
testb %al, %al
je 0xad10
movq (%rsp), %rdi
movq %r15, %rsi
callq 0xcee2
leaq 0x88(%rsp), %rbx
movq %rbx, %rdi
leaq 0x3a4a(%rip), %rsi      # 0xe906
leaq 0x28(%rsp), %rdx
callq 0xcb7d
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x4380
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0xaef6
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x42d0
movq %r14, %rdi
movq %rbp, %rsi
callq 0x4190
jmp 0xad10
movq (%r13), %rbp
movq 0x8(%r13), %rbx
movq (%rsp), %rdi
movq %r13, %rsi
callq 0xcee2
leaq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rdx
movl $0x1, %r8d
xorl %esi, %esi
leaq 0x39d3(%rip), %rcx      # 0xe904
callq 0x44a0
movq 0x8(%rbx), %r15
addq $0x10, %r15
movq %r15, %rdi
callq 0xa37c
testb %al, %al
jne 0xaf5d
movq %r15, %rdi
leaq 0x39ac(%rip), %rsi      # 0xe900
callq 0x40a0
testl %eax, %eax
jne 0xaf69
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0xcee2
leaq 0x10(%rbp), %rsi
movq %r14, %rdi
callq 0x4190
movq (%rsp), %rax
cmpq 0x8(%rax), %rbp
je 0xb035
movq %rbp, %r13
jmp 0xad10
leaq 0x28(%rsp), %rdi
leaq 0x3969(%rip), %rsi      # 0xe900
callq 0x40a0
testl %eax, %eax
jne 0xad10
movq 0x18(%r13), %rdx
movl $0x2, %r8d
movq %rbp, %rdi
xorl %esi, %esi
leaq 0x3979(%rip), %rcx      # 0xe933
callq 0x44a0
movq %r14, %rdi
movq %rbp, %rsi
callq 0x4190
leaq 0x98(%rsp), %rax
movq %rax, 0x88(%rsp)
leaq 0x88(%rsp), %rdi
leaq 0x391f(%rip), %rsi      # 0xe908
leaq 0x3919(%rip), %rdx      # 0xe909
callq 0x8438
movl $0x30, %edi
callq 0x42c0
movq (%rsp), %rbx
movq %rax, %rcx
addq $0x20, %rcx
movq %rcx, 0x10(%rax)
movq 0x88(%rsp), %rdx
leaq 0x98(%rsp), %rbp
cmpq %rbp, %rdx
je 0xb03c
movq %rdx, 0x10(%rax)
movq 0x98(%rsp), %rcx
movq %rcx, 0x20(%rax)
jmp 0xb043
xorl %ebx, %ebx
jmp 0xad22
movups (%rbp), %xmm0
movups %xmm0, (%rcx)
movq 0x90(%rsp), %rcx
movq %rcx, 0x18(%rax)
movq %rbp, 0x88(%rsp)
movq $0x0, 0x90(%rsp)
movb $0x0, 0x98(%rsp)
movq %rax, %rdi
movq %r15, %rsi
callq 0x4030
incq 0x10(%rbx)
movq 0x88(%rsp), %rdi
cmpq %rbp, %rdi
je 0xad10
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x42d0
jmp 0xad10
movq (%rsp), %rbx
movq (%rbx), %rax
movq (%rax), %r14
cmpq %rbx, %r14
je 0xb37f
leaq 0x48(%rsp), %rdi
movq %r15, (%rdi)
movq 0x10(%r14), %rsi
movq 0x18(%r14), %rdx
addq %rsi, %rdx
callq 0x5370
leaq 0x48(%rsp), %rdi
callq 0xa8e5
leaq 0x18(%rsp), %r12
testb %al, %al
jne 0xb0f0
leaq 0x48(%rsp), %rdi
callq 0xa846
testb %al, %al
je 0xb3ad
movq (%rbx), %rsi
movq %rbx, %rdi
callq 0xcee2
leaq 0x8(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0xcc05
movq (%rbx), %rdi
addq $0x10, %rdi
leaq 0x8(%rsp), %rbx
movq %rbx, %rsi
callq 0x4380
movq (%rbx), %rdi
cmpq %r12, %rdi
je 0xb138
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x42d0
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
je 0xac54
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x42d0
jmp 0xac54
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xb174
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x42d0
leaq 0x48(%rsp), %rdi
movq 0x8(%rdi), %rdx
leaq 0x3710(%rip), %rcx      # 0xe894
xorl %esi, %esi
xorl %r8d, %r8d
callq 0x44a0
movq (%rbx), %r14
cmpq %rbx, %r14
je 0xb363
leaq 0x8(%rsp), %r15
leaq 0x3760(%rip), %r12      # 0xe906
leaq 0x48(%rsp), %rbp
leaq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x10(%r14), %rsi
movq 0x18(%r14), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x5370
movq %r15, %rdi
leaq 0x372e(%rip), %rsi      # 0xe900
callq 0x40a0
testl %eax, %eax
jne 0xb330
movq %rbp, %rdi
movq %r12, %rsi
callq 0x40a0
testl %eax, %eax
jne 0xb330
leaq 0x38(%rsp), %rax
movq %rax, 0x28(%rsp)
leaq 0x28(%rsp), %rdi
leaq 0x372c(%rip), %rsi      # 0xe934
leaq 0x3726(%rip), %rdx      # 0xe935
callq 0x8438
movl $0x30, %edi
callq 0x42c0
movq %rax, %rcx
addq $0x20, %rcx
movq %rcx, 0x10(%rax)
movq 0x28(%rsp), %rdx
leaq 0x38(%rsp), %r13
cmpq %r13, %rdx
je 0xb247
movq %rdx, 0x10(%rax)
movq 0x38(%rsp), %rcx
movq %rcx, 0x20(%rax)
jmp 0xb24f
movups (%r13), %xmm0
movups %xmm0, (%rcx)
movq 0x30(%rsp), %rcx
movq %rcx, 0x18(%rax)
movq %r13, 0x28(%rsp)
movq $0x0, 0x30(%rsp)
movb $0x0, 0x38(%rsp)
movq %rax, %rdi
movq %r14, %rsi
callq 0x4030
incq 0x10(%rbx)
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xb291
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x42d0
leaq 0x38(%rsp), %rax
movq %rax, 0x28(%rsp)
leaq 0x28(%rsp), %rdi
leaq 0x3661(%rip), %rsi      # 0xe908
leaq 0x365b(%rip), %rdx      # 0xe909
callq 0x8438
movl $0x30, %edi
callq 0x42c0
movq %rax, %rcx
addq $0x20, %rcx
movq %rcx, 0x10(%rax)
movq 0x28(%rsp), %rdx
leaq 0x38(%rsp), %r13
cmpq %r13, %rdx
je 0xb2e6
movq %rdx, 0x10(%rax)
movq 0x38(%rsp), %rcx
movq %rcx, 0x20(%rax)
jmp 0xb2ee
movups (%r13), %xmm0
movups %xmm0, (%rcx)
movq 0x30(%rsp), %rcx
movq %rcx, 0x18(%rax)
movq %r13, 0x28(%rsp)
movq $0x0, 0x30(%rsp)
movb $0x0, 0x38(%rsp)
movq %rax, %rdi
movq %r14, %rsi
callq 0x4030
incq 0x10(%rbx)
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xb330
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x42d0
movq %rbp, %rdi
movq %r15, %rsi
callq 0x4190
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xb357
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x42d0
movq (%r14), %r14
cmpq %rbx, %r14
jne 0xb1ab
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0xb37f
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x42d0
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0xb39b
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x42d0
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x354c(%rip), %rsi      # 0xe900
leaq 0x48(%rsp), %rdi
callq 0x40a0
testl %eax, %eax
je 0xb3d4
leaq 0x48(%rsp), %rdi
callq 0xa67e
testb %al, %al
je 0xb475
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
callq 0x5370
leaq 0x353f(%rip), %rsi      # 0xe934
leaq 0x8(%rsp), %rdi
callq 0x4610
movq (%rbx), %rdi
addq $0x10, %rdi
leaq 0x8(%rsp), %rbx
movq %rbx, %rsi
callq 0x4380
movq (%rbx), %rdi
cmpq %r12, %rdi
je 0xb428
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x42d0
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x34d1(%rip), %rsi      # 0xe908
leaq 0x34cb(%rip), %rdx      # 0xe909
callq 0x8438
movl $0x30, %edi
callq 0x42c0
movq (%rsp), %rbx
movq %rax, %rcx
addq $0x20, %rcx
movq %rcx, 0x10(%rax)
movq 0x8(%rsp), %rdx
cmpq %r12, %rdx
je 0xb4c8
movq %rdx, 0x10(%rax)
movq 0x18(%rsp), %rcx
movq %rcx, 0x20(%rax)
jmp 0xb4d0
leaq 0x348a(%rip), %rsi      # 0xe906
leaq 0x48(%rsp), %rdi
callq 0x40a0
testl %eax, %eax
jne 0xb138
leaq 0x3471(%rip), %rsi      # 0xe906
leaq 0x68(%rsp), %rdi
callq 0x40a0
testl %eax, %eax
jne 0xb138
movq 0x8(%r14), %rbx
movq (%rsp), %rdi
movq %r14, %rsi
callq 0xcee2
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0xcee2
jmp 0xb138
movups (%r12), %xmm0
movups %xmm0, (%rcx)
movq 0x10(%rsp), %rcx
movq %rcx, 0x18(%rax)
movq %r12, 0x8(%rsp)
movq $0x0, 0x10(%rsp)
movb $0x0, 0x18(%rsp)
movq %rax, %rdi
movq %r14, %rsi
callq 0x4030
incq 0x10(%rbx)
movq 0x8(%rsp), %rdi
jmp 0xb126
jmp 0xb50c
jmp 0xb5b5
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
jne 0xb5a6
jmp 0xb5b8
jmp 0xb5b5
movq %rax, %rbx
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0xb576
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x42d0
jmp 0xb576
jmp 0xb573
jmp 0xb5b5
jmp 0xb5d0
jmp 0xb573
jmp 0xb573
jmp 0xb5b5
jmp 0xb5b5
jmp 0xb5d0
jmp 0xb573
jmp 0xb573
jmp 0xb573
jmp 0xb573
jmp 0xb594
jmp 0xb573
jmp 0xb594
jmp 0xb594
jmp 0xb5b5
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0xb597
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x42d0
jmp 0xb597
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xb5b8
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x42d0
jmp 0xb5b8
movq %rax, %rbx
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0xb615
movq 0x58(%rsp), %rsi
jmp 0xb60d
jmp 0xb5d0
movq %rax, %rbx
jmp 0xb615
movq %rax, %rbx
jmp 0xb5f9
movq %rax, %rbx
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0xb5f9
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x42d0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xb615
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x42d0
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0xb631
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x42d0
movq %rbx, %rdi
callq 0x45a0
nop