// File: /workspace/github_c_makefile_star2_O3/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 0x404d(%rip), %rsi      # 0xa4dc
movq %r14, %rdi
callq 0x2200
xorl %ebx, %ebx
testl %eax, %eax
je 0x67cb
leaq 0x403b(%rip), %rsi      # 0xa4e3
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x661c
leaq 0x402b(%rip), %rsi      # 0xa4ea
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x6628
leaq 0x401a(%rip), %rsi      # 0xa4f0
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x6634
leaq 0x400c(%rip), %rsi      # 0xa4f9
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x6640
leaq 0x3ffe(%rip), %rsi      # 0xa502
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x664c
leaq 0x3fef(%rip), %rsi      # 0xa50a
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x6658
leaq 0x3fdf(%rip), %rsi      # 0xa511
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x6664
leaq 0x3fce(%rip), %rsi      # 0xa517
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x6670
leaq 0x4027(%rip), %rsi      # 0xa587
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x669b
leaq 0x4014(%rip), %rsi      # 0xa58b
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x66c6
leaq 0x4004(%rip), %rsi      # 0xa592
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x66f1
leaq 0x3ff5(%rip), %rsi      # 0xa59a
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x672f
leaq 0x3fe7(%rip), %rsi      # 0xa5a3
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x674f
leaq 0x4013(%rip), %rsi      # 0xa5e6
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x6775
leaq 0x4040(%rip), %rsi      # 0xa62a
movq %r14, %rdi
callq 0x2200
testl %eax, %eax
je 0x6799
leaq 0x4032(%rip), %rdi      # 0xa633
leaq 0x3ed4(%rip), %r8       # 0xa4dc
movq %r15, %rsi
movl %ebp, %edx
movq %r14, %rcx
xorl %eax, %eax
callq 0x29fa
jmp 0x67c6
orb $0x8, 0x6da5(%rip)      # 0xd3c8
jmp 0x67cb
orb $0x1, 0x6d99(%rip)      # 0xd3c8
jmp 0x67cb
orb $0x1, 0x6da5(%rip)      # 0xd3e0
jmp 0x67cb
orb $0x2, 0x6d99(%rip)      # 0xd3e0
jmp 0x67cb
andb $-0x5, 0x6d01(%rip)     # 0xd354
jmp 0x67cb
andb $-0x3, 0x6cf5(%rip)     # 0xd354
jmp 0x67cb
orb $0x10, 0x6d5d(%rip)     # 0xd3c8
jmp 0x67cb
cmpl $0x0, 0x6d19(%rip)      # 0xd390
jne 0x677f
movq 0x8(%r12), %rdi
cmpb $0x0, (%rdi)
je 0x67b0
callq 0x2320
movl %eax, 0x6cfa(%rip)      # 0xd390
jmp 0x67cb
cmpl $0x0, 0x6cf6(%rip)      # 0xd398
jne 0x677f
movq 0x8(%r12), %rdi
cmpb $0x0, (%rdi)
je 0x67b0
callq 0x2320
movl %eax, 0x6cd7(%rip)      # 0xd398
jmp 0x67cb
cmpl $0x0, 0x6cd3(%rip)      # 0xd3a0
jne 0x677f
movq 0x8(%r12), %rdi
cmpb $0x0, (%rdi)
je 0x67b0
callq 0x2320
movl %eax, 0x6cb4(%rip)      # 0xd3a0
jmp 0x67cb
cmpl $0x0, 0x6cb0(%rip)      # 0xd3a8
jne 0x677f
movq 0x8(%r12), %rdi
cmpb $0x0, (%rdi)
je 0x67b0
callq 0x2320
movl %eax, 0x6c91(%rip)      # 0xd3a8
cmpl $0x0, 0x6c12(%rip)      # 0xd330
jne 0x67cb
movl %eax, 0x27d6e(%rip)     # 0x2e498
jmp 0x67cb
cmpl $0x0, 0x6c82(%rip)      # 0xd3b8
jne 0x677f
movq 0x8(%r12), %rdi
cmpb $0x0, (%rdi)
je 0x67b0
callq 0x2320
movl %eax, 0x6c6b(%rip)      # 0xd3b8
jmp 0x67cb
cmpq $0x0, 0x6c79(%rip)      # 0xd3d0
jne 0x677f
movq 0x8(%r12), %rdi
cmpb $0x0, (%rdi)
je 0x67ee
callq 0x23e0
movq %rax, 0x6c5d(%rip)      # 0xd3d0
jmp 0x67cb
cmpq $0x0, 0x6c5b(%rip)      # 0xd3d8
je 0x67d6
leaq 0x3d95(%rip), %rdi      # 0xa51b
xorl %ebx, %ebx
movq %r15, %rsi
movl %ebp, %edx
movq %r14, %rcx
xorl %eax, %eax
callq 0x29fa
jmp 0x67cb
movq 0x8(%r12), %rdi
cmpb $0x0, (%rdi)
je 0x67b0
callq 0x2320
movl %eax, 0x6a82(%rip)      # 0xd230
jmp 0x67cb
leaq 0x3d9b(%rip), %rdi      # 0xa552
movq %r15, %rsi
movl %ebp, %edx
movq %r14, %rcx
xorl %eax, %eax
callq 0x29fa
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 0x67f7
callq 0x23e0
movq %rax, 0x6bec(%rip)      # 0xd3d8
jmp 0x67cb
leaq 0x3db5(%rip), %rdi      # 0xa5aa
jmp 0x67b7
leaq 0x3df0(%rip), %rdi      # 0xa5ee
jmp 0x67b7