// File: /workspace/github_c_makefile_star2_O0/qq-smart[P]qq_sh_server/core/qq_json.c
// Function: parse_hex4
static unsigned parse_hex4(const char *str)
{
	unsigned h=0;
	if (*str>='0' && *str<='9') h+=(*str)-'0'; else if (*str>='A' && *str<='F') h+=10+(*str)-'A'; else if (*str>='a' && *str<='f') h+=10+(*str)-'a'; else return 0;
	h=h<<4;str++;
	if (*str>='0' && *str<='9') h+=(*str)-'0'; else if (*str>='A' && *str<='F') h+=10+(*str)-'A'; else if (*str>='a' && *str<='f') h+=10+(*str)-'a'; else return 0;
	h=h<<4;str++;
	if (*str>='0' && *str<='9') h+=(*str)-'0'; else if (*str>='A' && *str<='F') h+=10+(*str)-'A'; else if (*str>='a' && *str<='f') h+=10+(*str)-'a'; else return 0;
	h=h<<4;str++;
	if (*str>='0' && *str<='9') h+=(*str)-'0'; else if (*str>='A' && *str<='F') h+=10+(*str)-'A'; else if (*str>='a' && *str<='f') h+=10+(*str)-'a'; else return 0;
	return h;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x30, %eax
jl 0x77a9
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x39, %eax
jg 0x77a9
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
subl $0x30, %eax
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
jmp 0x7813
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x41, %eax
jl 0x77d6
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x46, %eax
jg 0x77d6
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
addl $0xa, %eax
subl $0x41, %eax
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
jmp 0x7811
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x61, %eax
jl 0x7803
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x66, %eax
jg 0x7803
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
addl $0xa, %eax
subl $0x61, %eax
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
jmp 0x780f
movl $0x0, -0x4(%rbp)
jmp 0x7a11
jmp 0x7811
jmp 0x7813
movl -0x14(%rbp), %eax
shll $0x4, %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x30, %eax
jl 0x7852
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x39, %eax
jg 0x7852
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
subl $0x30, %eax
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
jmp 0x78bc
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x41, %eax
jl 0x787f
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x46, %eax
jg 0x787f
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
addl $0xa, %eax
subl $0x41, %eax
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
jmp 0x78ba
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x61, %eax
jl 0x78ac
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x66, %eax
jg 0x78ac
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
addl $0xa, %eax
subl $0x61, %eax
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
jmp 0x78b8
movl $0x0, -0x4(%rbp)
jmp 0x7a11
jmp 0x78ba
jmp 0x78bc
movl -0x14(%rbp), %eax
shll $0x4, %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x30, %eax
jl 0x78fb
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x39, %eax
jg 0x78fb
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
subl $0x30, %eax
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
jmp 0x7965
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x41, %eax
jl 0x7928
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x46, %eax
jg 0x7928
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
addl $0xa, %eax
subl $0x41, %eax
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
jmp 0x7963
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x61, %eax
jl 0x7955
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x66, %eax
jg 0x7955
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
addl $0xa, %eax
subl $0x61, %eax
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
jmp 0x7961
movl $0x0, -0x4(%rbp)
jmp 0x7a11
jmp 0x7963
jmp 0x7965
movl -0x14(%rbp), %eax
shll $0x4, %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x30, %eax
jl 0x79a4
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x39, %eax
jg 0x79a4
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
subl $0x30, %eax
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
jmp 0x7a0b
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x41, %eax
jl 0x79d1
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x46, %eax
jg 0x79d1
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
addl $0xa, %eax
subl $0x41, %eax
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
jmp 0x7a09
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x61, %eax
jl 0x79fe
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x66, %eax
jg 0x79fe
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
addl $0xa, %eax
subl $0x61, %eax
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
jmp 0x7a07
movl $0x0, -0x4(%rbp)
jmp 0x7a11
jmp 0x7a09
jmp 0x7a0b
movl -0x14(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
nopw %cs:(%rax,%rax)