// File: /workspace/github_c_makefile_star2_O0/niuyuling[P]CProxy/conf.c
// Function: parse_https_module
static void parse_https_module(char *content, conf * p)
{
    char *var, *val_begin, *val_end, *lineEnd;
    tcp *https_node = NULL;
    char *p1 = NULL, *s = NULL, *t = NULL;
    char *p2 = NULL;

    while ((lineEnd = set_var_val_lineEnd(content, &var, &val_begin, &val_end)) != NULL) {
        if (strcasecmp(var, "https_ip") == 0) {
            p->https_ip_len = val_end - val_begin;
            if (copy_new_mem(val_begin, p->https_ip_len, &p->https_ip) != 0)
                return;
        } else if (strcasecmp(var, "encode") == 0) {
            p->https_encode = atoi(val_begin);
        } else if (strcasecmp(var, "https_port") == 0) {
            p->https_port = atoi(val_begin);
        } else if (strcasecmp(var, "https_del") == 0) {
            p->https_del_len = val_end - val_begin;
            if (copy_new_mem(val_begin, p->https_del_len, &p->https_del) != 0)
                return;
        } else if (strcasecmp(var, "https_first") == 0) {

            p->https_first_len = val_end - val_begin;
            if (copy_new_mem(val_begin, p->https_first_len, &p->https_first) != 0)
                return;

        } else if (strcasecmp(var, "strrep") == 0) {
            // 链表操作,支持多个相同配置KEY
            https_node = (tcp *) malloc(sizeof(struct tcp));
            if (https_node == NULL)
                return;
            memset(https_node, 0, sizeof(struct tcp));
            https_node->strrep = strdup(val_begin);
            https_node->strrep_len = val_end - val_begin;

            p1 = strstr(val_begin, "->");
            for (t = p1; *t != '"'; ++t) ;
            https_node->strrep_t = strdup(t + 1);
            p2 = strchr(t + 1, '\0');
            https_node->strrep_t_len = p2 - (t + 1);

            for (s = p1 - 1; *s == ' '; s--) {
                if (s == val_begin)
                    return;
            }
            if (*s == '"')
                s--;

            https_node->strrep_s = strndup(val_begin, s - val_begin + 1);
            https_node->strrep_s_len = s - val_begin + 1;

            https_node->next = NULL;

            if (https_head_strrep == NULL) {
                https_head_strrep = https_node;
            } else {
                https_node->next = https_head_strrep;
                https_head_strrep = https_node;

                //https_node->next = https_head_strrep->next;
                //https_head_strrep->next = https_node;
            }
        } else if (strcasecmp(var, "regrep") == 0) {
            https_node = (tcp *) malloc(sizeof(struct tcp));
            if (https_node == NULL)
                return;
            memset(https_node, 0, sizeof(struct tcp));
            https_node->regrep = strdup(val_begin);
            https_node->regrep_len = val_end - val_begin;

            p1 = strstr(val_begin, "->");
            for (t = p1; *t != '"'; ++t) ;
            https_node->regrep_t = strdup(t + 1);
            p2 = strchr(t + 1, '\0');
            https_node->regrep_t_len = p2 - (t + 1);

            for (s = p1 - 1; *s == ' '; s--) {
                if (s == val_begin)
                    return;
            }
            if (*s == '"')
                s--;

            https_node->regrep_s = strndup(val_begin, s - val_begin + 1);
            https_node->regrep_s_len = s - val_begin + 1;

            https_node->next = NULL;
            if (https_head_regrep == NULL) {
                https_head_regrep = https_node;
            } else {
                https_node->next = https_head_regrep;
                https_head_regrep = https_node;

                //https_node->next = https_head_regrep->next;
                //https_head_regrep->next = https_node;
            }
        }

        content = strchr(lineEnd + 1, '\n');
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x38(%rbp)
movq $0x0, -0x40(%rbp)
movq $0x0, -0x48(%rbp)
movq $0x0, -0x50(%rbp)
movq $0x0, -0x58(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x18(%rbp), %rsi
leaq -0x20(%rbp), %rdx
leaq -0x28(%rbp), %rcx
callq 0xb830
movq %rax, -0x30(%rbp)
cmpq $0x0, %rax
je 0xb59b
movq -0x18(%rbp), %rdi
leaq 0x158f(%rip), %rsi      # 0xc645
callq 0x2040
cmpl $0x0, %eax
jne 0xb0fe
movq -0x28(%rbp), %rax
movq -0x20(%rbp), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x70(%rax)
movq -0x20(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x70(%rax), %esi
movq -0x10(%rbp), %rdx
addq $0x58, %rdx
callq 0x4c90
movsbl %al, %eax
cmpl $0x0, %eax
je 0xb0f9
jmp 0xb59b
jmp 0xb580
movq -0x18(%rbp), %rdi
leaq 0x14b0(%rip), %rsi      # 0xc5b9
callq 0x2040
cmpl $0x0, %eax
jne 0xb12a
movq -0x20(%rbp), %rdi
callq 0x24a0
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x7c(%rax)
jmp 0xb57e
movq -0x18(%rbp), %rdi
leaq 0x1519(%rip), %rsi      # 0xc64e
callq 0x2040
cmpl $0x0, %eax
jne 0xb156
movq -0x20(%rbp), %rdi
callq 0x24a0
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x50(%rax)
jmp 0xb57c
movq -0x18(%rbp), %rdi
leaq 0x14f8(%rip), %rsi      # 0xc659
callq 0x2040
cmpl $0x0, %eax
jne 0xb1a9
movq -0x28(%rbp), %rax
movq -0x20(%rbp), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x74(%rax)
movq -0x20(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x74(%rax), %esi
movq -0x10(%rbp), %rdx
addq $0x60, %rdx
callq 0x4c90
movsbl %al, %eax
cmpl $0x0, %eax
je 0xb1a4
jmp 0xb59b
jmp 0xb57a
movq -0x18(%rbp), %rdi
leaq 0x14af(%rip), %rsi      # 0xc663
callq 0x2040
cmpl $0x0, %eax
jne 0xb1fc
movq -0x28(%rbp), %rax
movq -0x20(%rbp), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x78(%rax)
movq -0x20(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x78(%rax), %esi
movq -0x10(%rbp), %rdx
addq $0x68, %rdx
callq 0x4c90
movsbl %al, %eax
cmpl $0x0, %eax
je 0xb1f7
jmp 0xb59b
jmp 0xb578
movq -0x18(%rbp), %rdi
leaq 0x142d(%rip), %rsi      # 0xc634
callq 0x2040
cmpl $0x0, %eax
jne 0xb3b9
movl $0x58, %edi
callq 0x2350
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
jne 0xb22f
jmp 0xb59b
movq -0x38(%rbp), %rdi
xorl %esi, %esi
movl $0x58, %edx
callq 0x21c0
movq -0x20(%rbp), %rdi
callq 0x2520
movq %rax, %rcx
movq -0x38(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
movq -0x20(%rbp), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq -0x38(%rbp), %rax
movl %ecx, 0x8(%rax)
movq -0x20(%rbp), %rdi
leaq 0x13ca(%rip), %rsi      # 0xc63b
callq 0x2570
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x22, %eax
je 0xb29e
jmp 0xb290
movq -0x50(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x50(%rbp)
jmp 0xb282
movq -0x50(%rbp), %rdi
addq $0x1, %rdi
callq 0x2520
movq %rax, %rcx
movq -0x38(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x50(%rbp), %rdi
addq $0x1, %rdi
xorl %esi, %esi
callq 0x2170
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq -0x50(%rbp), %rcx
addq $0x1, %rcx
subq %rcx, %rax
movl %eax, %ecx
movq -0x38(%rbp), %rax
movl %ecx, 0x24(%rax)
movq -0x40(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x20, %eax
jne 0xb318
movq -0x48(%rbp), %rax
cmpq -0x20(%rbp), %rax
jne 0xb308
jmp 0xb59b
jmp 0xb30a
movq -0x48(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x48(%rbp)
jmp 0xb2ed
movq -0x48(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x22, %eax
jne 0xb330
movq -0x48(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x48(%rbp)
movq -0x20(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0x20(%rbp), %rax
subq %rax, %rsi
addq $0x1, %rsi
callq 0x2270
movq %rax, %rcx
movq -0x38(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x48(%rbp), %rax
movq -0x20(%rbp), %rcx
subq %rcx, %rax
addq $0x1, %rax
movl %eax, %ecx
movq -0x38(%rbp), %rax
movl %ecx, 0x20(%rax)
movq -0x38(%rbp), %rax
movq $0x0, 0x50(%rax)
leaq 0x111ca(%rip), %rax     # 0x1c548
cmpq $0x0, (%rax)
jne 0xb394
movq -0x38(%rbp), %rcx
leaq 0x111b9(%rip), %rax     # 0x1c548
movq %rcx, (%rax)
jmp 0xb3b4
leaq 0x111ad(%rip), %rax     # 0x1c548
movq (%rax), %rcx
movq -0x38(%rbp), %rax
movq %rcx, 0x50(%rax)
movq -0x38(%rbp), %rcx
leaq 0x11197(%rip), %rax     # 0x1c548
movq %rcx, (%rax)
jmp 0xb576
movq -0x18(%rbp), %rdi
leaq 0x127a(%rip), %rsi      # 0xc63e
callq 0x2040
cmpl $0x0, %eax
jne 0xb574
movl $0x58, %edi
callq 0x2350
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
jne 0xb3ec
jmp 0xb59b
movq -0x38(%rbp), %rdi
xorl %esi, %esi
movl $0x58, %edx
callq 0x21c0
movq -0x20(%rbp), %rdi
callq 0x2520
movq %rax, %rcx
movq -0x38(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x28(%rbp), %rax
movq -0x20(%rbp), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq -0x38(%rbp), %rax
movl %ecx, 0x30(%rax)
movq -0x20(%rbp), %rdi
leaq 0x120c(%rip), %rsi      # 0xc63b
callq 0x2570
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x22, %eax
je 0xb45c
jmp 0xb44e
movq -0x50(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x50(%rbp)
jmp 0xb440
movq -0x50(%rbp), %rdi
addq $0x1, %rdi
callq 0x2520
movq %rax, %rcx
movq -0x38(%rbp), %rax
movq %rcx, 0x40(%rax)
movq -0x50(%rbp), %rdi
addq $0x1, %rdi
xorl %esi, %esi
callq 0x2170
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq -0x50(%rbp), %rcx
addq $0x1, %rcx
subq %rcx, %rax
movl %eax, %ecx
movq -0x38(%rbp), %rax
movl %ecx, 0x4c(%rax)
movq -0x40(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x20, %eax
jne 0xb4d6
movq -0x48(%rbp), %rax
cmpq -0x20(%rbp), %rax
jne 0xb4c6
jmp 0xb59b
jmp 0xb4c8
movq -0x48(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x48(%rbp)
jmp 0xb4ab
movq -0x48(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x22, %eax
jne 0xb4ee
movq -0x48(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x48(%rbp)
movq -0x20(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0x20(%rbp), %rax
subq %rax, %rsi
addq $0x1, %rsi
callq 0x2270
movq %rax, %rcx
movq -0x38(%rbp), %rax
movq %rcx, 0x38(%rax)
movq -0x48(%rbp), %rax
movq -0x20(%rbp), %rcx
subq %rcx, %rax
addq $0x1, %rax
movl %eax, %ecx
movq -0x38(%rbp), %rax
movl %ecx, 0x48(%rax)
movq -0x38(%rbp), %rax
movq $0x0, 0x50(%rax)
leaq 0x11014(%rip), %rax     # 0x1c550
cmpq $0x0, (%rax)
jne 0xb552
movq -0x38(%rbp), %rcx
leaq 0x11003(%rip), %rax     # 0x1c550
movq %rcx, (%rax)
jmp 0xb572
leaq 0x10ff7(%rip), %rax     # 0x1c550
movq (%rax), %rcx
movq -0x38(%rbp), %rax
movq %rcx, 0x50(%rax)
movq -0x38(%rbp), %rcx
leaq 0x10fe1(%rip), %rax     # 0x1c550
movq %rcx, (%rax)
jmp 0xb574
jmp 0xb576
jmp 0xb578
jmp 0xb57a
jmp 0xb57c
jmp 0xb57e
jmp 0xb580
movq -0x30(%rbp), %rdi
addq $0x1, %rdi
movl $0xa, %esi
callq 0x2170
movq %rax, -0x8(%rbp)
jmp 0xb088
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)