// File: /workspace/github_c_makefile_star2_O1/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 0x3f85(%rip), %rsi      # 0xa3ec
movq %r14, %rdi
callq 0x2200
xorl %ebx, %ebx
testl %eax, %eax
je 0x67a3
leaq 0x3f73(%rip), %rsi      # 0xa3f3
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x65f4
leaq 0x3f63(%rip), %rsi      # 0xa3fa
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x6600
leaq 0x3f52(%rip), %rsi      # 0xa400
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x660c
leaq 0x3f44(%rip), %rsi      # 0xa409
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x6618
leaq 0x3f36(%rip), %rsi      # 0xa412
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x6624
leaq 0x3f27(%rip), %rsi      # 0xa41a
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x6630
leaq 0x3f17(%rip), %rsi      # 0xa421
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x663c
leaq 0x3f06(%rip), %rsi      # 0xa427
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x6648
leaq 0x3f5f(%rip), %rsi      # 0xa497
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x6673
leaq 0x3f4c(%rip), %rsi      # 0xa49b
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x669e
leaq 0x3f3c(%rip), %rsi      # 0xa4a2
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x66c9
leaq 0x3f2d(%rip), %rsi      # 0xa4aa
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x6707
leaq 0x3f1f(%rip), %rsi      # 0xa4b3
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x6727
leaq 0x3f4b(%rip), %rsi      # 0xa4f6
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x674d
leaq 0x3f78(%rip), %rsi      # 0xa53a
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x6771
leaq 0x3f6a(%rip), %rdi      # 0xa543
leaq 0x3e0c(%rip), %r8       # 0xa3ec
movq %r15, %rsi
movl %ebp, %edx
movq %r14, %rcx
xorl %eax, %eax
callq 0x2a00
jmp 0x679e
orb $0x8, 0x6dcd(%rip)      # 0xd3c8
jmp 0x67a3
orb $0x1, 0x6dc1(%rip)      # 0xd3c8
jmp 0x67a3
orb $0x1, 0x6dcd(%rip)      # 0xd3e0
jmp 0x67a3
orb $0x2, 0x6dc1(%rip)      # 0xd3e0
jmp 0x67a3
andb $-0x5, 0x6d29(%rip)     # 0xd354
jmp 0x67a3
andb $-0x3, 0x6d1d(%rip)     # 0xd354
jmp 0x67a3
orb $0x10, 0x6d85(%rip)     # 0xd3c8
jmp 0x67a3
cmpl $0x0, 0x6d41(%rip)      # 0xd390
jne 0x6757
movq 0x8(%r12), %rdi
cmpb $0x0, (%rdi)
je 0x6788
callq 0x2320
movl %eax, 0x6d22(%rip)      # 0xd390
jmp 0x67a3
cmpl $0x0, 0x6d1e(%rip)      # 0xd398
jne 0x6757
movq 0x8(%r12), %rdi
cmpb $0x0, (%rdi)
je 0x6788
callq 0x2320
movl %eax, 0x6cff(%rip)      # 0xd398
jmp 0x67a3
cmpl $0x0, 0x6cfb(%rip)      # 0xd3a0
jne 0x6757
movq 0x8(%r12), %rdi
cmpb $0x0, (%rdi)
je 0x6788
callq 0x2320
movl %eax, 0x6cdc(%rip)      # 0xd3a0
jmp 0x67a3
cmpl $0x0, 0x6cd8(%rip)      # 0xd3a8
jne 0x6757
movq 0x8(%r12), %rdi
cmpb $0x0, (%rdi)
je 0x6788
callq 0x2320
movl %eax, 0x6cb9(%rip)      # 0xd3a8
cmpl $0x0, 0x6c3a(%rip)      # 0xd330
jne 0x67a3
movl %eax, 0x27d96(%rip)     # 0x2e498
jmp 0x67a3
cmpl $0x0, 0x6caa(%rip)      # 0xd3b8
jne 0x6757
movq 0x8(%r12), %rdi
cmpb $0x0, (%rdi)
je 0x6788
callq 0x2320
movl %eax, 0x6c93(%rip)      # 0xd3b8
jmp 0x67a3
cmpq $0x0, 0x6ca1(%rip)      # 0xd3d0
jne 0x6757
movq 0x8(%r12), %rdi
cmpb $0x0, (%rdi)
je 0x67c6
callq 0x23e0
movq %rax, 0x6c85(%rip)      # 0xd3d0
jmp 0x67a3
cmpq $0x0, 0x6c83(%rip)      # 0xd3d8
je 0x67ae
leaq 0x3ccd(%rip), %rdi      # 0xa42b
xorl %ebx, %ebx
movq %r15, %rsi
movl %ebp, %edx
movq %r14, %rcx
xorl %eax, %eax
callq 0x2a00
jmp 0x67a3
movq 0x8(%r12), %rdi
cmpb $0x0, (%rdi)
je 0x6788
callq 0x2320
movl %eax, 0x6aaa(%rip)      # 0xd230
jmp 0x67a3
leaq 0x3cd3(%rip), %rdi      # 0xa462
movq %r15, %rsi
movl %ebp, %edx
movq %r14, %rcx
xorl %eax, %eax
callq 0x2a00
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
movl %ebx, %eax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq 0x8(%r12), %rdi
cmpb $0x0, (%rdi)
je 0x67cf
callq 0x23e0
movq %rax, 0x6c14(%rip)      # 0xd3d8
jmp 0x67a3
leaq 0x3ced(%rip), %rdi      # 0xa4ba
jmp 0x678f
leaq 0x3d28(%rip), %rdi      # 0xa4fe
jmp 0x678f