// File: /workspace/github_c_makefile_star2_O3/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 0x872e
movq %rcx, %rbx
movq %rsi, %r12
movq %rdi, %r13
movq %rdx, 0x8(%rsp)
xorl %r15d, %r15d
movabsq $0x100002600, %r14      # imm = 0x100002600
movzbl (%r13), %eax
cmpq $0x20, %rax
ja 0x865b
btq %rax, %r14
jae 0x8652
movq %r13, %rbp
incq %rbp
movq %rbp, %r13
jmp 0x8636
testq %rax, %rax
je 0x8731
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 0x86db
movq %rax, %rcx
decq %rax
movzbl -0x1(%rcx), %edx
cmpl $0x9, %edx
je 0x8684
cmpl $0x20, %edx
je 0x8684
movb $0x0, (%rcx)
incq %r13
movzbl (%r13), %eax
cmpl $0x1f, %eax
jg 0x86af
cmpl $0x9, %eax
je 0x869b
jmp 0x86e6
cmpl $0x20, %eax
je 0x869b
cmpl $0x22, %eax
jne 0x86ea
leaq 0x1(%r13), %rdi
movq 0x8(%rsp), %rax
movq %rdi, (%rax)
leaq 0xe61(%rip), %rsi       # 0x952d
callq 0x2540
movq %rax, (%rbx)
testq %rax, %rax
je 0x86f2
jmp 0x8715
testq %rbp, %rbp
jne 0x864a
jmp 0x8731
testl %eax, %eax
je 0x872e
movq 0x8(%rsp), %rax
movq %r13, (%rax)
movq %r13, %rdi
movl $0x3b, %esi
callq 0x2160
movq %rax, (%rbx)
testq %rbp, %rbp
je 0x8710
cmpq %rbp, %rax
ja 0x864a
testq %rax, %rax
je 0x8743
movq 0x8(%rsp), %r14
movb $0x0, (%rax)
movq (%rbx), %r15
movq (%r14), %rdi
movl %r15d, %eax
subl %edi, %eax
movl %eax, 0x14(%rsp)
jmp 0x8763
xorl %r15d, %r15d
movq %r15, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x8(%rsp), %r14
movq (%r14), %r12
movq %r12, %rdi
callq 0x2140
movl %eax, 0x14(%rsp)
movslq %eax, %r15
addq %r12, %r15
movq %r15, (%rbx)
movq (%r14), %rdi
leaq 0x14(%rsp), %r12
movq %r12, %rsi
callq 0x877c
movslq (%r12), %rax
addq (%r14), %rax
movq %rax, (%rbx)
jmp 0x8731