// File: /workspace/github_c_makefile_star2_O1/niuyuling[P]CProxy/conf.c
// Function: set_var_val_lineEnd
static char *set_var_val_lineEnd(char *content, char **var, char **val_begin, char **val_end)
{
    char *p, *pn, *lineEnd;
    ;
    int val_len;

    while (1) {
        if (content == NULL)
            return NULL;

        for (; *content == ' ' || *content == '\t' || *content == '\r' || *content == '\n'; content++) ;
        if (*content == '\0')
            return NULL;
        *var = content;
        pn = strchr(content, '\n');
        p = strchr(content, '=');
        if (p == NULL) {
            if (pn) {
                content = pn + 1;
                continue;
            } else
                return NULL;
        }
        content = p;
        //将变量以\0结束
        for (p--; *p == ' ' || *p == '\t'; p--) ;
        *(p + 1) = '\0';
        //值的首地址
        for (content++; *content == ' ' || *content == '\t'; content++) ;
        if (*content == '\0')
            return NULL;
        //双引号引起来的值支持换行
        if (*content == '"') {
            *val_begin = content + 1;
            *val_end = strstr(*val_begin, "\";");
            if (*val_end != NULL)
                break;
        } else
            *val_begin = content;
        *val_end = strchr(content, ';');
        if (pn && *val_end > pn) {
            content = pn + 1;
            continue;
        }
        break;
    }

    if (*val_end) {
        **val_end = '\0';
        val_len = *val_end - *val_begin;
        lineEnd = *val_end;
    } else {
        val_len = strlen(*val_begin);
        *val_end = lineEnd = *val_begin + val_len;
    }
    string_pretreatment(*val_begin, &val_len);
    *val_end = *val_begin + val_len;
    //printf("var[%s]\nbegin[%s]\n\n", *var, *val_begin);
    return lineEnd;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
testq %rdi, %rdi
je 0x87e2
movq %rcx, %rbx
movq %rsi, %r12
movq %rdi, %r13
movq %rdx, 0x10(%rsp)
xorl %r15d, %r15d
movabsq $0x100002600, %r14      # imm = 0x100002600
movzbl (%r13), %eax
cmpq $0x20, %rax
ja 0x870c
btq %rax, %r14
jae 0x8703
movq %r13, %rbp
incq %rbp
movq %rbp, %r13
jmp 0x86e7
testq %rax, %rax
je 0x87e5
movq %r13, (%r12)
movq %r13, %rdi
movl $0xa, %esi
callq 0x2160
movq %rax, %rbp
movq %r13, %rdi
movl $0x3d, %esi
callq 0x2160
movq %rax, %r13
testq %rax, %rax
je 0x878c
movq %rax, %rcx
decq %rax
movzbl -0x1(%rcx), %edx
cmpl $0x9, %edx
je 0x8735
cmpl $0x20, %edx
je 0x8735
movb $0x0, (%rcx)
incq %r13
movzbl (%r13), %eax
cmpl $0x1f, %eax
jg 0x8760
cmpl $0x9, %eax
je 0x874c
jmp 0x8797
cmpl $0x20, %eax
je 0x874c
cmpl $0x22, %eax
jne 0x879b
leaq 0x1(%r13), %rdi
movq 0x10(%rsp), %rax
movq %rdi, (%rax)
leaq 0xdb4(%rip), %rsi       # 0x9531
callq 0x2530
movq %rax, (%rbx)
testq %rax, %rax
je 0x87a3
jmp 0x87c1
testq %rbp, %rbp
jne 0x86fb
jmp 0x87e5
testl %eax, %eax
je 0x87e2
movq 0x10(%rsp), %rax
movq %r13, (%rax)
movq %r13, %rdi
movl $0x3b, %esi
callq 0x2160
movq %rax, (%rbx)
testq %rbp, %rbp
je 0x87c1
cmpq %rbp, %rax
ja 0x86fb
movq (%rbx), %rax
testq %rax, %rax
je 0x87f7
movb $0x0, (%rax)
movq (%rbx), %r15
movq 0x10(%rsp), %r14
movl (%r14), %eax
movl %r15d, %ecx
subl %eax, %ecx
movl %ecx, 0xc(%rsp)
jmp 0x8814
xorl %r15d, %r15d
movq %r15, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x10(%rsp), %r14
movq (%r14), %r12
movq %r12, %rdi
callq 0x2140
movl %eax, 0xc(%rsp)
movslq %eax, %r15
addq %r12, %r15
movq %r15, (%rbx)
movq (%r14), %rdi
leaq 0xc(%rsp), %r12
movq %r12, %rsi
callq 0x8830
movslq (%r12), %rax
addq (%r14), %rax
movq %rax, (%rbx)
jmp 0x87e5