// File: /workspace/github_cpp_makefile_star2_O1/Alcaro[P]bridges/arlib/json.cpp
// Function: jsonparser::next()
jsonparser::event jsonparser::next()
{
	uint8_t ch = nextch();
	if (m_want_key)
	{
		m_want_key = false;
		if (ch == '"') goto parse_key;
		else if (ch == '}') goto close_brace;
		else return do_error();
	}
	
	if (ch == '\0')
	{
		if (m_need_value)
		{
			m_need_value = false;
			return do_error();
		}
		if (m_nesting)
		{
			if (!m_unexpected_end)
			{
				m_unexpected_end = true;
				return do_error();
			}
			bool map = (m_nesting[m_nesting.size()-1] == true);
			m_nesting.resize(m_nesting.size()-1);
			return { map ? exit_map : exit_list };
		}
		return { finish };
	}
	if (m_need_value && (ch == ']' || ch == '}'))
	{
		m_need_value = false;
		m_data--;
		return do_error();
	}
	m_need_value = false;
	
	if (ch == '"')
	{
		bool is_key;
		is_key = false;
		if (false)
		{
		parse_key:
			is_key = true;
		}
		uint8_t * val_out_start = m_data;
		uint8_t * val_out = m_data;
		
		//most strings don't contain escapes, special case them
		uint8_t * fast_iter = m_data;
#ifdef __SSE2__
		while (fast_iter+16 <= m_data_end)
		{
			__m128i chs = _mm_loadu_si128((__m128i*)fast_iter);
			
			// xor 128 because signed compare; xor 2 to fold " to beside the control chars and not check it separately
			__m128i bad1 = _mm_cmplt_epi8(_mm_xor_si128(chs, _mm_set1_epi8(0x82)), _mm_set1_epi8((int8_t)(0x21^0x80)));
			__m128i bad2 = _mm_cmpeq_epi8(chs, _mm_set1_epi8(0x5C)); // can't find any way to optimize out the \ check
			__m128i bad = _mm_or_si128(bad1, bad2);
			int mask = _mm_movemask_epi8(bad); // always in uint16 range, but gcc doesn't know that; keeping it as int optimizes better
			if (mask == 0)
			{
				fast_iter += 16;
				continue;
			}
			fast_iter += ctz32(mask);
			val_out = fast_iter;
			m_data = fast_iter;
			if (LIKELY(*m_data == '"'))
			{
				m_data++;
				goto skip_escape_parse;
			}
			break;
		}
		//just take the slow path for the last 16 bytes of the document
#else
		while (true)
		{
			uint8_t ch = *fast_iter;
			if (UNLIKELY((ch^2) <= 32 || ch == '\\'))
			{
				val_out = fast_iter;
				m_data = fast_iter;
				if (LIKELY(ch == '"'))
				{
					m_data++;
					goto skip_escape_parse;
				}
				break;
			}
			fast_iter++;
		}
#endif
		
		while (true)
		{
			uint8_t ch = *(m_data++);
			if (ch == '\\')
			{
				uint8_t esc = *(m_data++);
				switch (esc)
				{
				case '"': *val_out++ =  '"'; break;
				case '\\':*val_out++ = '\\'; break;
				case '/': *val_out++ =  '/'; break;
				case 'b': *val_out++ = '\b'; break;
				case 'f': *val_out++ = '\f'; break;
				case 'n': *val_out++ = '\n'; break;
				case 'r': *val_out++ = '\r'; break;
				case 't': *val_out++ = '\t'; break;
				case 'u':
				{
					if (UNLIKELY(m_data+4 > m_data_end)) return do_error();
					
					uint32_t codepoint;
					if (UNLIKELY(!fromstringhex(arrayview<uint8_t>(m_data, 4), codepoint))) return do_error();
					m_data += 4;
					
					// curse utf16 forever
					if (codepoint >= 0xD800 && codepoint <= 0xDBFF && m_data[0] == '\\' && m_data[1] == 'u')
					{
						uint16_t low_sur;
						if (UNLIKELY(!fromstringhex(arrayview<uint8_t>(m_data+2, 4), low_sur))) return do_error();
						
						if (low_sur >= 0xDC00 && low_sur <= 0xDFFF)
						{
							m_data += 6;
							codepoint = 0x10000 + ((codepoint-0xD800)<<10) + (low_sur-0xDC00);
						}
					}
					// else leave as is, string::codepoint will return fffd for unpaired surrogates
					
					val_out += string::codepoint(val_out, codepoint);
					break;
				}
				default:
					m_data--;
					return do_error();
				}
				continue;
			}
			if (ch == '"') break;
			if (ch < 32)
			{
				m_data--;
				return do_error();
			}
			*val_out++ = ch;
		}
	skip_escape_parse:
		*val_out = '\0';
		cstring val(arrayview<uint8_t>(val_out_start, val_out-val_out_start), true);
		if (is_key)
		{
			if (nextch() != ':') return do_error();
			return { map_key, val };
		}
		else
		{
			if (!skipcomma()) return do_error();
			return { str, val };
		}
	}
	if (ch == '[')
	{
		m_nesting.append(false);
		return { enter_list };
	}
	if (ch == ']')
	{
		if (!m_nesting || m_nesting[m_nesting.size()-1] != false) return do_error();
		if (!skipcomma(2)) return do_error();
		m_nesting.resize(m_nesting.size()-1);
		return { exit_list };
	}
	if (ch == '{')
	{
		m_nesting.append(true);
		m_want_key = true;
		return { enter_map };
	}
	if (ch == '}')
	{
	close_brace:
		m_want_key = false;
		if (!m_nesting || m_nesting[m_nesting.size()-1] != true) return do_error();
		if (!skipcomma(2)) return do_error();
		m_nesting.resize(m_nesting.size()-1);
		return { exit_map };
	}
	if (ch == '-' || isdigit(ch))
	{
		m_data--;
		const uint8_t * start = m_data;
		if (*m_data == '-') m_data++;
		if (*m_data == '0') m_data++;
		else
		{
			if (!isdigit(*m_data)) return do_error();
			while (isdigit(*m_data)) m_data++;
		}
		if (*m_data == '.')
		{
			m_data++;
			if (!isdigit(*m_data)) return do_error();
			while (isdigit(*m_data)) m_data++;
		}
		if (*m_data == 'e' || *m_data == 'E')
		{
			m_data++;
			if (*m_data == '+' || *m_data == '-') m_data++;
			if (!isdigit(*m_data)) return do_error();
			while (isdigit(*m_data)) m_data++;
		}
		
		size_t len = m_data-start;
		if (!skipcomma()) return do_error();
		return { num, arrayview<uint8_t>(start, len) };
	}
	if (ch == 't' && m_data+3 <= m_data_end && readu_le32(m_data-1) == 0x65757274) // true
	{
		m_data += 3;
		if (!skipcomma()) return do_error();
		return { jtrue };
	}
	if (ch == 'f' && m_data+4 <= m_data_end && readu_le32(m_data) == 0x65736c61) // alse
	{
		m_data += 4;
		if (!skipcomma()) return do_error();
		return { jfalse };
	}
	if (ch == 'n' && m_data+3 <= m_data_end && readu_le32(m_data-1) == 0x6c6c756e) // null
	{
		m_data += 3;
		if (!skipcomma()) return do_error();
		return { jnull };
	}
	
	return do_error();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rsi, %r14
movq %rdi, %rbx
movq 0x10(%rsi), %rdi
movq 0x18(%rsi), %rax
leaq 0x1c7fb(%rip), %r13     # 0x2fd10
leaq 0x1(%rdi), %rdx
movq %rdx, 0x10(%r14)
movzbl (%rdi), %r8d
cmpq $0x20, %r8
jbe 0x1352f
movb $0x1, %sil
movl %r8d, %ecx
jmp 0x13539
cmpb $0x0, (%r13,%r8)
jns 0x13543
xorl %esi, %esi
movq %rdx, %rdi
testb %sil, %sil
je 0x13515
jmp 0x1355a
movb $0x1, %sil
cmpq %rax, %rdx
jbe 0x13556
movq %rdi, 0x10(%r14)
xorl %ecx, %ecx
movq %rdi, %rdx
jmp 0x13539
movb $0x1, %cl
jmp 0x13539
movb 0x20(%r14), %bpl
cmpb $0x1, %bpl
jne 0x135db
movb $0x0, 0x20(%r14)
cmpb $0x22, %cl
je 0x136ab
movzbl %cl, %eax
cmpl $0x7d, %eax
jne 0x13602
movb $0x0, 0x20(%r14)
movq 0x30(%r14), %rcx
testq %rcx, %rcx
je 0x13602
leaq 0x28(%r14), %r15
leaq -0x1(%rcx), %rax
movq %r15, %rdx
cmpq $0x41, %rcx
jb 0x135a0
movq (%r15), %rdx
movq %rax, %rcx
shrq $0x3, %rcx
movzbl (%rdx,%rcx), %ecx
andl $0x7, %eax
btl %eax, %ecx
jae 0x13602
movl $0x2, %esi
movq %r14, %rdi
callq 0x13432
testb %al, %al
je 0x13602
movq 0x30(%r14), %rsi
decq %rsi
movq %r15, %rdi
callq 0x51ac
movl $0xa, (%rbx)
jmp 0x1360d
movb 0x21(%r14), %dl
testb %cl, %cl
je 0x13627
xorb $0x1, %dl
movl %ecx, %esi
andb $-0x21, %sil
cmpb $0x5d, %sil
setne %sil
movb $0x0, 0x21(%r14)
orb %dl, %sil
jne 0x13649
decq 0x10(%r14)
movb $0x1, 0x23(%r14)
movl $0xb, (%rbx)
movb $0xf, 0x17(%rbx)
movb $0x0, 0x8(%rbx)
movq %rbx, %rax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
testb %dl, %dl
je 0x13a05
xorl %eax, %eax
movb %al, 0x21(%r14)
movb $0x1, 0x23(%r14)
movl $0xb, (%rbx)
movb $0xf, 0x17(%rbx)
movb %al, 0x8(%rbx)
jmp 0x13615
movzbl %cl, %edx
cmpl $0x5c, %edx
jg 0x13a61
cmpl $0x22, %edx
je 0x136ab
cmpl $0x2d, %edx
je 0x13b2c
cmpl $0x5b, %edx
jne 0x13a7c
leaq 0x28(%r14), %r15
movq 0x30(%r14), %rsi
incq %rsi
movq %r15, %rdi
callq 0x51ac
movq 0x30(%r14), %rax
leaq -0x1(%rax), %rcx
cmpq $0x41, %rax
jb 0x13691
movq 0x28(%r14), %r15
movq %rcx, %rax
movb $-0x2, %dl
rolb %cl, %dl
shrq $0x3, %rax
andb %dl, (%r15,%rax)
movl $0x6, (%rbx)
jmp 0x1360d
movq 0x10(%r14), %r15
movdqa 0x1c349(%rip), %xmm0    # 0x2fa00
movdqa 0x1c351(%rip), %xmm1    # 0x2fa10
movdqa 0x1c359(%rip), %xmm2    # 0x2fa20
movq %r15, %rdx
movq %r15, %r12
leaq 0x10(%rdx), %rcx
cmpq %rax, %rcx
ja 0x1373c
movdqu (%rdx), %xmm3
movdqa %xmm3, %xmm4
pxor %xmm0, %xmm4
movdqa %xmm1, %xmm5
pcmpgtb %xmm4, %xmm5
pcmpeqb %xmm2, %xmm3
por %xmm5, %xmm3
pmovmskb %xmm3, %esi
testl %esi, %esi
je 0x1371d
bsfl %esi, %esi
leaq (%rdx,%rsi), %rcx
movq %rcx, 0x10(%r14)
cmpb $0x22, (%rdx,%rsi)
jne 0x1372c
leaq 0x1(%rcx), %rdx
movq %rdx, 0x10(%r14)
movl $0x6, %esi
movq %rcx, %r12
jmp 0x13722
movl $0x4, %esi
movq %rcx, %rdx
cmpl $0x4, %esi
je 0x136cd
jmp 0x13733
movl $0x5, %esi
jmp 0x13718
cmpl $0x6, %esi
je 0x1398f
leaq 0x1c2fd(%rip), %r8      # 0x2fa40
leaq 0x18(%rsp), %rdi
movq 0x10(%r14), %rcx
leaq 0x1(%rcx), %rax
movq %rax, 0x10(%r14)
movzbl (%rcx), %edx
cmpl $0x22, %edx
je 0x1378f
cmpl $0x5c, %edx
jne 0x13799
leaq 0x2(%rcx), %rsi
movq %rsi, 0x10(%r14)
movzbl 0x1(%rcx), %edx
cmpl $0x61, %edx
jg 0x137cd
cmpl $0x22, %edx
je 0x137ea
cmpl $0x2f, %edx
je 0x137f4
cmpl $0x5c, %edx
jne 0x13816
movb $0x5c, (%r12)
jmp 0x13918
movl $0x8, %ecx
jmp 0x13920
cmpb $0x1f, %dl
ja 0x137bf
movq %rcx, 0x10(%r14)
movb $0x1, 0x23(%r14)
movl $0xb, (%rbx)
movb $0xf, 0x17(%rbx)
movb $0x0, 0x8(%rbx)
movl $0x1, %ecx
jmp 0x13920
movb %dl, (%r12)
incq %r12
xorl %ecx, %ecx
jmp 0x13920
leal -0x6e(%rdx), %r9d
cmpl $0x7, %r9d
ja 0x137fe
movslq (%r8,%r9,4), %rdx
addq %r8, %rdx
jmpq *%rdx
movb $0xa, (%r12)
jmp 0x13918
movb $0x22, (%r12)
jmp 0x13918
movb $0x2f, (%r12)
jmp 0x13918
cmpl $0x62, %edx
je 0x13913
cmpl $0x66, %edx
jne 0x13816
movb $0xc, (%r12)
jmp 0x13918
movq %rax, 0x10(%r14)
jmp 0x137a2
addq $0x6, %rcx
cmpq 0x18(%r14), %rcx
ja 0x13933
movl $0x4, %edx
xorl %ecx, %ecx
callq 0x5040
movq 0x18(%rsp), %rdi
movq 0x20(%rsp), %rsi
leaq 0x8(%rsp), %rdx
callq 0x1ba09
testb %al, %al
je 0x13954
movq 0x10(%r14), %rsi
leaq 0x4(%rsi), %rax
movq %rax, 0x10(%r14)
movl 0x8(%rsp), %ecx
movl $0xfffffc00, %edx       # imm = 0xFFFFFC00
andl %edx, %ecx
cmpl $0xd800, %ecx           # imm = 0xD800
jne 0x138e3
cmpb $0x5c, (%rax)
jne 0x138e3
cmpb $0x75, 0x5(%rsi)
jne 0x138e3
addq $0x6, %rsi
movl $0x4, %edx
leaq 0x28(%rsp), %rdi
xorl %ecx, %ecx
callq 0x5040
movq 0x28(%rsp), %rdi
movq 0x30(%rsp), %rsi
leaq 0x6(%rsp), %rdx
callq 0x1b961
testb %al, %al
je 0x1396e
movzwl 0x6(%rsp), %ecx
movl %ecx, %edx
andl $0xfc00, %edx           # imm = 0xFC00
cmpl $0xdc00, %edx           # imm = 0xDC00
jne 0x138da
addq $0x6, 0x10(%r14)
movl 0x8(%rsp), %edx
shll $0xa, %edx
addl %edx, %ecx
addl $0xfca02400, %ecx       # imm = 0xFCA02400
movl %ecx, 0x8(%rsp)
movl $0x1, %ecx
testb %al, %al
je 0x138f7
movl 0x8(%rsp), %esi
movq %r12, %rdi
callq 0x1a998
addq %rax, %r12
movl $0x7, %ecx
leaq 0x1c142(%rip), %r8      # 0x2fa40
leaq 0x18(%rsp), %rdi
jmp 0x13920
movb $0xd, (%r12)
jmp 0x13918
movb $0x9, (%r12)
jmp 0x13918
movb $0x8, (%r12)
incq %r12
movl $0x7, %ecx
testl %ecx, %ecx
je 0x13748
cmpl $0x7, %ecx
je 0x13748
jmp 0x13986
movb $0x1, 0x23(%r14)
movl $0xb, (%rbx)
movb $0xf, 0x17(%rbx)
movb $0x0, 0x8(%rbx)
movl $0x1, %ecx
leaq 0x1c0ee(%rip), %r8      # 0x2fa40
jmp 0x13920
movb $0x1, 0x23(%r14)
movl $0xb, (%rbx)
movb $0xf, 0x17(%rbx)
movb $0x0, 0x8(%rbx)
movl $0x1, %ecx
jmp 0x138f7
movb $0x1, 0x23(%r14)
movl $0xb, (%rbx)
movb $0xf, 0x17(%rbx)
movb $0x0, 0x8(%rbx)
jmp 0x138da
cmpl $0x8, %ecx
jne 0x13615
movb $0x0, (%r12)
subq %r15, %r12
leaq 0x8(%rsp), %rdi
movq %r15, %rsi
movq %r12, %rdx
movl $0x1, %ecx
callq 0x5040
testb %bpl, %bpl
je 0x13ae5
movq 0x10(%r14), %rdi
movq 0x18(%r14), %rax
leaq 0x1(%rdi), %rdx
movq %rdx, 0x10(%r14)
movzbl (%rdi), %r8d
cmpq $0x20, %r8
jbe 0x139d7
movb $0x1, %sil
movl %r8d, %ecx
jmp 0x139e1
cmpb $0x0, (%r13,%r8)
jns 0x139ee
xorl %esi, %esi
movq %rdx, %rdi
testb %sil, %sil
je 0x139bd
jmp 0x13b02
movb $0x1, %sil
cmpq %rax, %rdx
jbe 0x13a01
movq %rdi, 0x10(%r14)
xorl %ecx, %ecx
movq %rdi, %rdx
jmp 0x139e1
movb $0x1, %cl
jmp 0x139e1
movq 0x30(%r14), %rax
testq %rax, %rax
je 0x13b21
cmpb $0x0, 0x22(%r14)
je 0x13c48
addq $0x28, %r14
leaq -0x1(%rax), %rsi
movq %r14, %rcx
cmpq $0x41, %rax
jb 0x13a31
movq (%r14), %rcx
movq %rsi, %rax
shrq $0x3, %rax
movzbl (%rcx,%rax), %eax
movl %esi, %ecx
andl $0x7, %ecx
xorl %r15d, %r15d
btl %ecx, %eax
setb %r15b
movq %r14, %rdi
callq 0x51ac
leal (%r15,%r15,2), %eax
addl $0x7, %eax
movl %eax, (%rbx)
jmp 0x1360d
cmpl $0x5d, %edx
je 0x13c54
cmpl $0x7b, %edx
je 0x13cbb
cmpl $0x7d, %edx
je 0x1357e
testb $0x40, (%r13,%rdx)
jne 0x13b2c
cmpb $0x66, %cl
je 0x13d20
cmpl $0x6e, %edx
je 0x13d62
cmpl $0x74, %edx
jne 0x13602
movq 0x10(%r14), %rdi
leaq 0x3(%rdi), %rsi
cmpq %rax, %rsi
ja 0x13d12
cmpl $0x65757274, -0x1(%rdi) # imm = 0x65757274
jne 0x13d12
movq %rsi, 0x10(%r14)
movl $0x1, %esi
movq %r14, %rdi
callq 0x13432
testb %al, %al
je 0x13602
movl $0x1, (%rbx)
jmp 0x1360d
movl $0x1, %esi
movq %r14, %rdi
callq 0x13432
testb %al, %al
je 0x13602
movl $0x4, (%rbx)
jmp 0x13b11
cmpb $0x3a, %cl
jne 0x13602
movl $0x9, (%rbx)
movdqu 0x8(%rsp), %xmm0
movdqu %xmm0, 0x8(%rbx)
jmp 0x13615
movl $0xc, (%rbx)
jmp 0x1360d
movq 0x10(%r14), %rcx
leaq -0x1(%rcx), %r15
movq %r15, 0x10(%r14)
xorl %edx, %edx
cmpb $0x2d, -0x1(%rcx)
setne %dl
movq %r15, %rax
cmoveq %rcx, %rax
movq %rax, 0x10(%r14)
negq %rdx
movzbl (%rcx,%rdx), %ecx
cmpq $0x30, %rcx
jne 0x13cd9
incq %rax
movq %rax, 0x10(%r14)
movq 0x10(%r14), %rax
cmpb $0x2e, (%rax)
jne 0x13ba9
leaq 0x1(%rax), %rcx
movq %rcx, 0x10(%r14)
movzbl 0x1(%rax), %eax
testb $0x40, (%r13,%rax)
je 0x13602
movq 0x10(%r14), %rax
movzbl (%rax), %ecx
testb $0x40, (%r13,%rcx)
je 0x13ba9
incq %rax
movq %rax, 0x10(%r14)
movzbl (%rax), %ecx
incq %rax
testb $0x40, (%r13,%rcx)
jne 0x13b97
movq 0x10(%r14), %rax
movzbl (%rax), %ecx
orl $0x20, %ecx
cmpl $0x65, %ecx
jne 0x13c0d
leaq 0x1(%rax), %rcx
movq %rcx, 0x10(%r14)
movzbl 0x1(%rax), %ecx
cmpl $0x2d, %ecx
je 0x13bce
cmpl $0x2b, %ecx
jne 0x13bd6
addq $0x2, %rax
movq %rax, 0x10(%r14)
movq 0x10(%r14), %rax
movzbl (%rax), %eax
testb $0x40, (%r13,%rax)
je 0x13602
movq 0x10(%r14), %rax
movzbl (%rax), %ecx
testb $0x40, (%r13,%rcx)
je 0x13c0d
incq %rax
movq %rax, 0x10(%r14)
movzbl (%rax), %ecx
incq %rax
testb $0x40, (%r13,%rcx)
jne 0x13bfb
movq 0x10(%r14), %r12
movl $0x1, %esi
movq %r14, %rdi
callq 0x13432
testb %al, %al
je 0x13602
subq %r15, %r12
movl $0x5, (%rbx)
movq %rbx, %rdi
addq $0x8, %rdi
movq %r15, %rsi
movq %r12, %rdx
xorl %ecx, %ecx
callq 0x5040
jmp 0x13615
movw $0x101, 0x22(%r14)      # imm = 0x101
jmp 0x13607
movq 0x30(%r14), %rcx
testq %rcx, %rcx
je 0x13602
leaq 0x28(%r14), %r15
leaq -0x1(%rcx), %rax
movq %r15, %rdx
cmpq $0x41, %rcx
jb 0x13c75
movq (%r15), %rdx
movq %rax, %rcx
shrq $0x3, %rcx
movzbl (%rdx,%rcx), %ecx
andl $0x7, %eax
btl %eax, %ecx
jb 0x13602
movl $0x2, %esi
movq %r14, %rdi
callq 0x13432
testb %al, %al
je 0x13602
movq 0x30(%r14), %rsi
decq %rsi
movq %r15, %rdi
callq 0x51ac
movl $0x7, (%rbx)
jmp 0x1360d
leaq 0x28(%r14), %rdi
movl $0x1, %esi
callq 0x144b8
movb $0x1, 0x20(%r14)
movl $0x8, (%rbx)
jmp 0x1360d
testb $0x40, (%r13,%rcx)
je 0x13602
movq 0x10(%r14), %rax
movzbl (%rax), %ecx
testb $0x40, (%r13,%rcx)
je 0x13b64
incq %rax
movq %rax, 0x10(%r14)
movzbl (%rax), %ecx
incq %rax
testb $0x40, (%r13,%rcx)
jne 0x13cfb
jmp 0x13b64
cmpb $0x6e, %cl
je 0x13d62
cmpl $0x66, %edx
jne 0x13602
movq 0x10(%r14), %rsi
leaq 0x4(%rsi), %rdx
cmpq %rax, %rdx
ja 0x13d59
cmpl $0x65736c61, (%rsi)     # imm = 0x65736C61
jne 0x13d59
movq %rdx, 0x10(%r14)
movl $0x1, %esi
movq %r14, %rdi
callq 0x13432
testb %al, %al
je 0x13602
movl $0x2, (%rbx)
jmp 0x1360d
cmpb $0x6e, %cl
jne 0x13602
movq 0x10(%r14), %rdx
leaq 0x3(%rdx), %rcx
cmpq %rax, %rcx
ja 0x13602
cmpl $0x6c6c756e, -0x1(%rdx) # imm = 0x6C6C756E
jne 0x13602
movq %rcx, 0x10(%r14)
movl $0x1, %esi
movq %r14, %rdi
callq 0x13432
testb %al, %al
je 0x13602
movl $0x3, (%rbx)
jmp 0x1360d