// File: /workspace/github_c_makefile_star2_O0/ammarfaizi2[P]riyuu/src/third_party/cjson/cJSON_Utils.c
// Function: compare_pointers(unsigned char const*, unsigned char const*, int)
static cJSON_bool compare_pointers(const unsigned char *name, const unsigned char *pointer, const cJSON_bool case_sensitive)
{
    if ((name == NULL) || (pointer == NULL))
    {
        return false;
    }

    for (; (*name != '\0') && (*pointer != '\0') && (*pointer != '/'); (void)name++, pointer++) /* compare until next '/' */
    {
        if (*pointer == '~')
        {
            /* check for escaped '~' (~0) and '/' (~1) */
            if (((pointer[1] != '0') || (*name != '~')) && ((pointer[1] != '1') || (*name != '/')))
            {
                /* invalid escape sequence or wrong character in *name */
                return false;
            }
            else
            {
                pointer++;
            }
        }
        else if ((!case_sensitive && (tolower(*name) != tolower(*pointer))) || (case_sensitive && (*name != *pointer)))
        {
            return false;
        }
    }
    if (((*pointer != 0) && (*pointer != '/')) != (*name != 0))
    {
        /* one string has ended, the other not */
        return false;;
    }

    return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movl %edx, -0x1c(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x9781
cmpq $0x0, -0x18(%rbp)
jne 0x978d
movl $0x0, -0x4(%rbp)
jmp 0x98e1
jmp 0x978f
movq -0x10(%rbp), %rax
movzbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x1d(%rbp)
je 0x97c1
movq -0x18(%rbp), %rax
movzbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x1d(%rbp)
je 0x97c1
movq -0x18(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x2f, %eax
setne %al
movb %al, -0x1d(%rbp)
movb -0x1d(%rbp), %al
testb $0x1, %al
jne 0x97cd
jmp 0x9891
movq -0x18(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x7e, %eax
jne 0x9825
movq -0x18(%rbp), %rax
movzbl 0x1(%rax), %eax
cmpl $0x30, %eax
jne 0x97f2
movq -0x10(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x7e, %eax
je 0x9817
movq -0x18(%rbp), %rax
movzbl 0x1(%rax), %eax
cmpl $0x31, %eax
jne 0x980b
movq -0x10(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x2f, %eax
je 0x9817
movl $0x0, -0x4(%rbp)
jmp 0x98e1
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x9872
cmpl $0x0, -0x1c(%rbp)
jne 0x984f
movq -0x10(%rbp), %rax
movzbl (%rax), %edi
callq 0x2280
movl %eax, -0x24(%rbp)
movq -0x18(%rbp), %rax
movzbl (%rax), %edi
callq 0x2280
movl %eax, %ecx
movl -0x24(%rbp), %eax
cmpl %ecx, %eax
jne 0x9867
cmpl $0x0, -0x1c(%rbp)
je 0x9870
movq -0x10(%rbp), %rax
movzbl (%rax), %eax
movq -0x18(%rbp), %rcx
movzbl (%rcx), %ecx
cmpl %ecx, %eax
je 0x9870
movl $0x0, -0x4(%rbp)
jmp 0x98e1
jmp 0x9872
jmp 0x9874
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x978f
movq -0x18(%rbp), %rax
movzbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x25(%rbp)
je 0x98b2
movq -0x18(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x2f, %eax
setne %al
movb %al, -0x25(%rbp)
movb -0x25(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movq -0x10(%rbp), %rcx
movzbl (%rcx), %ecx
cmpl $0x0, %ecx
setne %cl
andb $0x1, %cl
movzbl %cl, %ecx
cmpl %ecx, %eax
je 0x98da
movl $0x0, -0x4(%rbp)
jmp 0x98e1
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)