// File: yanlinlin82[P]jsonxx/./json.hpp
// Function: yll::json::parse_value(char const*&, yll::json&, bool)
static bool parse_value(const char*& s, json& v, bool strict) {
			skip_spaces(s);
			if (*s == '"') {
				return parse_string(s, v);
			}
			if (*s == '+' || *s == '-' || *s == '.' || isdigit(*s)) {
				const char* p = s;
				if (parse_number(p, v)) {
					if (strict) {
						s = p;
						return true;
					}
					if (is_valid_separator(*p)) {
						s = p;
						return true;
					}
				} else if (strict) {
					return false;
				}
				// otherwise, try to parse as string
			}
			if (*s == '{') {
				return parse_object(s, v, strict);
			} else if (*s == '[') {
				return parse_array(s, v, strict);
			} else if (match_symbol(s, text_null)) {
				v.clear(type::null);
				return true;
			} else if (match_symbol(s, text_true)) {
				v = true;
				return true;
			} else if (match_symbol(s, text_false)) {
				v = false;
				return true;
			} else if (!strict) {
				return parse_string(s, v, false);
			} else {
				return false;
			}
		}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x160, %rsp            # imm = 0x160
movb %dl, %al
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
andb $0x1, %al
movb %al, -0x19(%rbp)
movq -0x10(%rbp), %rdi
callq 0x11b60
movq -0x10(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x22, %eax
jne 0x1188e
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movl $0x1, %edx
callq 0x11c30
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x11b46
movq -0x10(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x2b, %eax
je 0x118cf
movq -0x10(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
je 0x118cf
movq -0x10(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x2e, %eax
je 0x118cf
movq -0x10(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %edi
callq 0x3310
cmpl $0x0, %eax
je 0x11942
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rsi
leaq -0x28(%rbp), %rdi
callq 0x12090
testb $0x1, %al
jne 0x118ed
jmp 0x1192f
testb $0x1, -0x19(%rbp)
je 0x11907
movq -0x28(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x11b46
movq -0x28(%rbp), %rax
movsbl (%rax), %edi
callq 0x122f0
testb $0x1, %al
jne 0x11919
jmp 0x1192d
movq -0x28(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x11b46
jmp 0x11940
testb $0x1, -0x19(%rbp)
je 0x1193e
movb $0x0, -0x1(%rbp)
jmp 0x11b46
jmp 0x11940
jmp 0x11942
movq -0x10(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x7b, %eax
jne 0x11970
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movb -0x19(%rbp), %al
andb $0x1, %al
movzbl %al, %edx
callq 0x12340
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x11b46
movq -0x10(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x5b, %eax
jne 0x1199e
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movb -0x19(%rbp), %al
andb $0x1, %al
movzbl %al, %edx
callq 0x12730
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x11b46
movq -0x10(%rbp), %rdi
leaq 0xa92f(%rip), %rsi      # 0x1c2d8
callq 0x129d0
testb $0x1, %al
jne 0x119b7
jmp 0x11a4b
movq -0x18(%rbp), %rax
movq %rax, -0x150(%rbp)
leaq -0x49(%rbp), %rdi
movq %rdi, -0x148(%rbp)
callq 0x34f0
movq -0x148(%rbp), %rdx
leaq 0x3304(%rip), %rsi      # 0x14ce4
leaq -0x48(%rbp), %rdi
callq 0x7fb0
jmp 0x119eb
movq -0x150(%rbp), %rdi
xorl %esi, %esi
leaq -0x48(%rbp), %rdx
callq 0x10830
jmp 0x119ff
leaq -0x48(%rbp), %rdi
callq 0x3578
leaq -0x49(%rbp), %rdi
callq 0x33a0
movb $0x1, -0x1(%rbp)
jmp 0x11b46
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x11a3d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x3578
leaq -0x49(%rbp), %rdi
callq 0x33a0
jmp 0x11b54
movq -0x10(%rbp), %rdi
leaq 0xa8aa(%rip), %rsi      # 0x1c300
callq 0x129d0
testb $0x1, %al
jne 0x11a61
jmp 0x11abd
leaq -0xd0(%rbp), %rdi
movq %rdi, -0x158(%rbp)
movl $0x1, %esi
callq 0x8120
movq -0x158(%rbp), %rsi
movq -0x18(%rbp), %rdi
callq 0x8db0
jmp 0x11a8b
leaq -0xd0(%rbp), %rdi
callq 0x8b00
movb $0x1, -0x1(%rbp)
jmp 0x11b46
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x8b00
jmp 0x11b54
movq -0x10(%rbp), %rdi
leaq 0xa860(%rip), %rsi      # 0x1c328
callq 0x129d0
testb $0x1, %al
jne 0x11ad3
jmp 0x11b26
leaq -0x140(%rbp), %rdi
movq %rdi, -0x160(%rbp)
xorl %esi, %esi
callq 0x8120
movq -0x160(%rbp), %rsi
movq -0x18(%rbp), %rdi
callq 0x8db0
jmp 0x11afa
leaq -0x140(%rbp), %rdi
callq 0x8b00
movb $0x1, -0x1(%rbp)
jmp 0x11b46
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x140(%rbp), %rdi
callq 0x8b00
jmp 0x11b54
testb $0x1, -0x19(%rbp)
jne 0x11b42
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
xorl %edx, %edx
callq 0x11c30
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x11b46
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x160, %rsp            # imm = 0x160
popq %rbp
retq
movq -0x58(%rbp), %rdi
callq 0x34e0
nopl (%rax)