// File: /workspace/github_c_makefile_star2_O2/wtarreau[P]httpterm/httpterm.c
// Function: cfg_parse_global
int cfg_parse_global(char *file, int linenum, char **args) {

    if (!strcmp(args[0], "global")) {  /* new section */
	/* no option, nothing special to do */
	return 0;
    }
    else if (!strcmp(args[0], "daemon")) {
	global.mode |= MODE_DAEMON;
    }
    else if (!strcmp(args[0], "debug")) {
	global.mode |= MODE_DEBUG;
    }
    else if (!strcmp(args[0], "sendzero")) {
	global.flags |= GFLAGS_SEND_ZERO;
    }
    else if (!strcmp(args[0], "nosplice")) {
	global.flags |= GFLAGS_NO_SPLICE;
    }
    else if (!strcmp(args[0], "noepoll")) {
	cfg_polling_mechanism &= ~POLL_USE_EPOLL;
    }
    else if (!strcmp(args[0], "nopoll")) {
	cfg_polling_mechanism &= ~POLL_USE_POLL;
    }
    else if (!strcmp(args[0], "quiet")) {
	global.mode |= MODE_QUIET;
    }
    else if (!strcmp(args[0], "uid")) {
	if (global.uid != 0) {
	    Alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
	    return 0;
	}
	if (*(args[1]) == 0) {
	    Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
	    return -1;
	}
	global.uid = atol(args[1]);
    }
    else if (!strcmp(args[0], "gid")) {
	if (global.gid != 0) {
	    Alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
	    return 0;
	}
	if (*(args[1]) == 0) {
	    Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
	    return -1;
	}
	global.gid = atol(args[1]);
    }
    else if (!strcmp(args[0], "nbproc")) {
	if (global.nbproc != 0) {
	    Alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
	    return 0;
	}
	if (*(args[1]) == 0) {
	    Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
	    return -1;
	}
	global.nbproc = atol(args[1]);
    }
    else if (!strcmp(args[0], "maxconn")) {
	if (global.maxconn != 0) {
	    Alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
	    return 0;
	}
	if (*(args[1]) == 0) {
	    Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
	    return -1;
	}
	global.maxconn = atol(args[1]);
#ifdef SYSTEM_MAXCONN
	if (global.maxconn > DEFAULT_MAXCONN && cfg_maxconn <= DEFAULT_MAXCONN) {
	    Alert("parsing [%s:%d] : maxconn value %d too high for this system.\nLimiting to %d. Please use '-n' to force the value.\n", file, linenum, global.maxconn, DEFAULT_MAXCONN);
	    global.maxconn = DEFAULT_MAXCONN;
	}
#endif /* SYSTEM_MAXCONN */
	/* we want to update the default instance's maxconn too */
	if (!cfg_maxconn)
	    defproxy.maxconn = global.maxconn;
    }
    else if (!strcmp(args[0], "ulimit-n")) {
	if (global.rlimit_nofile != 0) {
	    Alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
	    return 0;
	}
	if (*(args[1]) == 0) {
	    Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
	    return -1;
	}
	global.rlimit_nofile = atol(args[1]);
    }
    else if (!strcmp(args[0], "chroot")) {
	if (global.chroot != NULL) {
	    Alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
	    return 0;
	}
	if (*(args[1]) == 0) {
	    Alert("parsing [%s:%d] : '%s' expects a directory as an argument.\n", file, linenum, args[0]);
	    return -1;
	}
	global.chroot = strdup(args[1]);
    }
    else if (!strcmp(args[0], "pidfile")) {
	if (global.pidfile != NULL) {
	    Alert("parsing [%s:%d] : '%s' already specified. Continuing.\n", file, linenum, args[0]);
	    return 0;
	}
	if (*(args[1]) == 0) {
	    Alert("parsing [%s:%d] : '%s' expects a file name as an argument.\n", file, linenum, args[0]);
	    return -1;
	}
	global.pidfile = strdup(args[1]);
    }
    else if (!strcmp(args[0], "pipesize")) {
	if (*(args[1]) == 0) {
	    Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
	    return -1;
	}
	pipesize = atol(args[1]);
    }
    else {
	Alert("parsing [%s:%d] : unknown keyword '%s' in '%s' section\n", file, linenum, args[0], "global");
	return -1;
    }
    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rdx, %r12
movl %esi, %ebp
movq %rdi, %r15
movq (%rdx), %r14
leaq 0x4392(%rip), %rsi      # 0xa3ec
movq %r14, %rdi
callq 0x2200
xorl %ebx, %ebx
testl %eax, %eax
je 0x6394
leaq 0x4380(%rip), %rsi      # 0xa3f3
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x61e7
leaq 0x4370(%rip), %rsi      # 0xa3fa
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x61f3
leaq 0x435f(%rip), %rsi      # 0xa400
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x61ff
leaq 0x4351(%rip), %rsi      # 0xa409
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x620b
leaq 0x4343(%rip), %rsi      # 0xa412
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x6217
leaq 0x4334(%rip), %rsi      # 0xa41a
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x6223
leaq 0x4324(%rip), %rsi      # 0xa421
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x622f
leaq 0x4313(%rip), %rsi      # 0xa427
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x623b
leaq 0x436c(%rip), %rsi      # 0xa497
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x6266
leaq 0x4359(%rip), %rsi      # 0xa49b
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x6291
leaq 0x4349(%rip), %rsi      # 0xa4a2
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x62bc
leaq 0x433a(%rip), %rsi      # 0xa4aa
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x62fa
leaq 0x432c(%rip), %rsi      # 0xa4b3
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x631a
leaq 0x4358(%rip), %rsi      # 0xa4f6
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x6340
leaq 0x4385(%rip), %rsi      # 0xa53a
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x6364
leaq 0x4377(%rip), %rdi      # 0xa543
leaq 0x4219(%rip), %r8       # 0xa3ec
movq %r15, %rsi
movl %ebp, %edx
movq %r14, %rcx
xorl %eax, %eax
callq 0x29aa
jmp 0x6391
orb $0x8, 0x81da(%rip)      # 0xe3c8
jmp 0x6394
orb $0x1, 0x81ce(%rip)      # 0xe3c8
jmp 0x6394
orb $0x1, 0x81da(%rip)      # 0xe3e0
jmp 0x6394
orb $0x2, 0x81ce(%rip)      # 0xe3e0
jmp 0x6394
andb $-0x5, 0x8136(%rip)     # 0xe354
jmp 0x6394
andb $-0x3, 0x812a(%rip)     # 0xe354
jmp 0x6394
orb $0x10, 0x8192(%rip)     # 0xe3c8
jmp 0x6394
cmpl $0x0, 0x814e(%rip)      # 0xe390
jne 0x634a
movq 0x8(%r12), %rdi
cmpb $0x0, (%rdi)
je 0x637b
callq 0x2320
movl %eax, 0x812f(%rip)      # 0xe390
jmp 0x6394
cmpl $0x0, 0x812b(%rip)      # 0xe398
jne 0x634a
movq 0x8(%r12), %rdi
cmpb $0x0, (%rdi)
je 0x637b
callq 0x2320
movl %eax, 0x810c(%rip)      # 0xe398
jmp 0x6394
cmpl $0x0, 0x8108(%rip)      # 0xe3a0
jne 0x634a
movq 0x8(%r12), %rdi
cmpb $0x0, (%rdi)
je 0x637b
callq 0x2320
movl %eax, 0x80e9(%rip)      # 0xe3a0
jmp 0x6394
cmpl $0x0, 0x80e5(%rip)      # 0xe3a8
jne 0x634a
movq 0x8(%r12), %rdi
cmpb $0x0, (%rdi)
je 0x637b
callq 0x2320
movl %eax, 0x80c6(%rip)      # 0xe3a8
cmpl $0x0, 0x8047(%rip)      # 0xe330
jne 0x6394
movl %eax, 0x291a3(%rip)     # 0x2f498
jmp 0x6394
cmpl $0x0, 0x80b7(%rip)      # 0xe3b8
jne 0x634a
movq 0x8(%r12), %rdi
cmpb $0x0, (%rdi)
je 0x637b
callq 0x2320
movl %eax, 0x80a0(%rip)      # 0xe3b8
jmp 0x6394
cmpq $0x0, 0x80ae(%rip)      # 0xe3d0
jne 0x634a
movq 0x8(%r12), %rdi
cmpb $0x0, (%rdi)
je 0x63b7
callq 0x23e0
movq %rax, 0x8092(%rip)      # 0xe3d0
jmp 0x6394
cmpq $0x0, 0x8090(%rip)      # 0xe3d8
je 0x639f
leaq 0x40da(%rip), %rdi      # 0xa42b
xorl %ebx, %ebx
movq %r15, %rsi
movl %ebp, %edx
movq %r14, %rcx
xorl %eax, %eax
callq 0x29aa
jmp 0x6394
movq 0x8(%r12), %rdi
cmpb $0x0, (%rdi)
je 0x637b
callq 0x2320
movl %eax, 0x7eb7(%rip)      # 0xe230
jmp 0x6394
leaq 0x40e0(%rip), %rdi      # 0xa462
movq %r15, %rsi
movl %ebp, %edx
movq %r14, %rcx
xorl %eax, %eax
callq 0x29aa
pushq $-0x1
popq %rbx
movl %ebx, %eax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq 0x8(%r12), %rdi
cmpb $0x0, (%rdi)
je 0x63c0
callq 0x23e0
movq %rax, 0x8023(%rip)      # 0xe3d8
jmp 0x6394
leaq 0x40fc(%rip), %rdi      # 0xa4ba
jmp 0x6382
leaq 0x4137(%rip), %rdi      # 0xa4fe
jmp 0x6382