// File: /workspace/github_c_makefile_star2_O0/niuyuling[P]CProxy/conf.c
// Function: parse_http_module
static void parse_http_module(char *content, conf * p)
{
    char *var, *val_begin, *val_end, *lineEnd;
    tcp *http_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, "http_ip") == 0) {
            p->http_ip_len = val_end - val_begin;
            if (copy_new_mem(val_begin, p->http_ip_len, &p->http_ip) != 0)
                return;
        } else if (strcasecmp(var, "encode") == 0) {
            p->http_encode = atoi(val_begin);
        } else if (strcasecmp(var, "http_port") == 0) {
            p->http_port = atoi(val_begin);
        } else if (strcasecmp(var, "http_del") == 0) {
            p->http_del_len = val_end - val_begin;
            if (copy_new_mem(val_begin, p->http_del_len, &p->http_del) != 0)
                return;
        } else if (strcasecmp(var, "http_first") == 0) {
            p->http_first_len = val_end - val_begin;
            if (copy_new_mem(val_begin, p->http_first_len, &p->http_first) != 0)
                return;
        } else if (strcasecmp(var, "strrep") == 0) {
            http_node = (tcp *) malloc(sizeof(struct tcp));
            if (http_node == NULL)
                return;
            memset(http_node, 0, sizeof(struct tcp));
            http_node->strrep = strdup(val_begin);
            http_node->strrep_len = val_end - val_begin;

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

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

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

            http_node->next = NULL;
            if (http_head_strrep == NULL) {
                http_head_strrep = http_node;
            } else {
                http_node->next = http_head_strrep;
                http_head_strrep = http_node;

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

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

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

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

            http_node->next = NULL;
            if (http_head_regrep == NULL) {
                http_head_regrep = http_node;
            } else {
                http_node->next = http_head_regrep;
                http_head_regrep = http_node;

                //http_node->next = http_head_regrep->next;
                //http_head_regrep->next = http_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 0xb03b
movq -0x18(%rbp), %rdi
leaq 0x1ab8(%rip), %rsi      # 0xc60e
callq 0x2040
cmpl $0x0, %eax
jne 0xab9e
movq -0x28(%rbp), %rax
movq -0x20(%rbp), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x40(%rax)
movq -0x20(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x40(%rax), %esi
movq -0x10(%rbp), %rdx
addq $0x28, %rdx
callq 0x4c90
movsbl %al, %eax
cmpl $0x0, %eax
je 0xab99
jmp 0xb03b
jmp 0xb020
movq -0x18(%rbp), %rdi
leaq 0x1a10(%rip), %rsi      # 0xc5b9
callq 0x2040
cmpl $0x0, %eax
jne 0xabca
movq -0x20(%rbp), %rdi
callq 0x24a0
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x4c(%rax)
jmp 0xb01e
movq -0x18(%rbp), %rdi
leaq 0x1a41(%rip), %rsi      # 0xc616
callq 0x2040
cmpl $0x0, %eax
jne 0xabf6
movq -0x20(%rbp), %rdi
callq 0x24a0
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x20(%rax)
jmp 0xb01c
movq -0x18(%rbp), %rdi
leaq 0x1a1f(%rip), %rsi      # 0xc620
callq 0x2040
cmpl $0x0, %eax
jne 0xac49
movq -0x28(%rbp), %rax
movq -0x20(%rbp), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x44(%rax)
movq -0x20(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x44(%rax), %esi
movq -0x10(%rbp), %rdx
addq $0x30, %rdx
callq 0x4c90
movsbl %al, %eax
cmpl $0x0, %eax
je 0xac44
jmp 0xb03b
jmp 0xb01a
movq -0x18(%rbp), %rdi
leaq 0x19d5(%rip), %rsi      # 0xc629
callq 0x2040
cmpl $0x0, %eax
jne 0xac9c
movq -0x28(%rbp), %rax
movq -0x20(%rbp), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x48(%rax)
movq -0x20(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x48(%rax), %esi
movq -0x10(%rbp), %rdx
addq $0x38, %rdx
callq 0x4c90
movsbl %al, %eax
cmpl $0x0, %eax
je 0xac97
jmp 0xb03b
jmp 0xb018
movq -0x18(%rbp), %rdi
leaq 0x198d(%rip), %rsi      # 0xc634
callq 0x2040
cmpl $0x0, %eax
jne 0xae59
movl $0x58, %edi
callq 0x2350
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
jne 0xaccf
jmp 0xb03b
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 0x192a(%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 0xad3e
jmp 0xad30
movq -0x50(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x50(%rbp)
jmp 0xad22
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 0xadb8
movq -0x48(%rbp), %rax
cmpq -0x20(%rbp), %rax
jne 0xada8
jmp 0xb03b
jmp 0xadaa
movq -0x48(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x48(%rbp)
jmp 0xad8d
movq -0x48(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x22, %eax
jne 0xadd0
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 0x1171a(%rip), %rax     # 0x1c538
cmpq $0x0, (%rax)
jne 0xae34
movq -0x38(%rbp), %rcx
leaq 0x11709(%rip), %rax     # 0x1c538
movq %rcx, (%rax)
jmp 0xae54
leaq 0x116fd(%rip), %rax     # 0x1c538
movq (%rax), %rcx
movq -0x38(%rbp), %rax
movq %rcx, 0x50(%rax)
movq -0x38(%rbp), %rcx
leaq 0x116e7(%rip), %rax     # 0x1c538
movq %rcx, (%rax)
jmp 0xb016
movq -0x18(%rbp), %rdi
leaq 0x17da(%rip), %rsi      # 0xc63e
callq 0x2040
cmpl $0x0, %eax
jne 0xb014
movl $0x58, %edi
callq 0x2350
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
jne 0xae8c
jmp 0xb03b
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 0x176c(%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 0xaefc
jmp 0xaeee
movq -0x50(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x50(%rbp)
jmp 0xaee0
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 0xaf76
movq -0x48(%rbp), %rax
cmpq -0x20(%rbp), %rax
jne 0xaf66
jmp 0xb03b
jmp 0xaf68
movq -0x48(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x48(%rbp)
jmp 0xaf4b
movq -0x48(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x22, %eax
jne 0xaf8e
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 0x11564(%rip), %rax     # 0x1c540
cmpq $0x0, (%rax)
jne 0xaff2
movq -0x38(%rbp), %rcx
leaq 0x11553(%rip), %rax     # 0x1c540
movq %rcx, (%rax)
jmp 0xb012
leaq 0x11547(%rip), %rax     # 0x1c540
movq (%rax), %rcx
movq -0x38(%rbp), %rax
movq %rcx, 0x50(%rax)
movq -0x38(%rbp), %rcx
leaq 0x11531(%rip), %rax     # 0x1c540
movq %rcx, (%rax)
jmp 0xb014
jmp 0xb016
jmp 0xb018
jmp 0xb01a
jmp 0xb01c
jmp 0xb01e
jmp 0xb020
movq -0x30(%rbp), %rdi
addq $0x1, %rdi
movl $0xa, %esi
callq 0x2170
movq %rax, -0x8(%rbp)
jmp 0xab28
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)