// File: /workspace/github_c_makefile_star2_O3/uhlin[P]enhanced-duc/source/main.c
// Function: main
int
main(int argc, char *argv[])
{
	char conf[DUC_PATH_MAX] = "/etc/enhanced-duc.conf";
	struct program_options opt = {
		.want_usage              = false,
		.want_create_config_file = false,
		.want_debug              = false,
		.want_update_once        = false,
		.want_daemon             = false,
	};

	if (sighand_init() == -1)
		log_warn(0, "Initialization of signal handling failed");
	if (atexit(program_clean_up) == -1)
		log_warn(errno, "Failed to register a clean up function");
	block_signals();
	duc_set_terminate();

	(void) setlocale(LC_ALL, "");
	process_options(argc, argv, &opt, &conf[0], nitems(conf));

	if (opt.want_usage) {
		usage();
		/* NOTREACHED */
	}
	if (opt.want_create_config_file) {
		char *path = NULL;

		while ((path = get_answer("Create where?",
					  TYPE_STRING,
					  &conf[0])) == NULL) {
			/* continue */;
		}

		create_config_file(path);
		free(path);
		exit(0);
	}
	if (opt.want_debug)
		turn_on_debug_mode();
	if (opt.want_update_once)
		set_cycle_off();
	if (opt.want_daemon) {
		/*
		 * Detach the program from the controlling terminal
		 * and continue execution...
		 */

		daemonize();
	}

	log_msg("%s %s has started", g_programName, g_programVersion);
	log_msg("reading %s...", conf);
	read_config_file(conf);
	check_some_settings_strictly();

	/* Drop root privileges. */
	if (geteuid() == UID_SUPER_USER) {
		force_priv_drop();
		log_msg("EUID = %ld", (long int) geteuid());
	}

	net_init();
	start_update_cycle();

	return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x428, %rsp            # imm = 0x428
movq %rsi, %rbx
movl %edi, %ebp
leaq 0x3b43(%rip), %rsi      # 0x9480
leaq 0x230(%rsp), %rdi
movl $0x1f4, %edx            # imm = 0x1F4
callq 0x4350
xorl %eax, %eax
movb %al, 0x6(%rsp)
movb %al, 0x7(%rsp)
callq 0x806e
cmpl $-0x1, %eax
jne 0x5973
leaq 0x3d58(%rip), %rsi      # 0x96c2
xorl %edi, %edi
xorl %eax, %eax
callq 0x588f
leaq 0x269a(%rip), %rdi      # 0x8014
callq 0x8850
cmpl $-0x1, %eax
jne 0x5999
callq 0x4050
movl (%rax), %edi
leaq 0x3d59(%rip), %rsi      # 0x96eb
xorl %eax, %eax
callq 0x588f
callq 0x7f94
callq 0x82c0
leaq 0x4501(%rip), %rsi      # 0x9eab
movl $0x6, %edi
callq 0x43a0
movabsq $0x426f443a7863683a, %rax # imm = 0x426F443A7863683A
leaq 0x30(%rsp), %r14
movq %rax, (%r14)
movb $0x0, 0x8(%r14)
movl $0x0, 0x18(%rsp)
movq 0x85b6(%rip), %r13      # 0xdf90
leaq 0x444c(%rip), %r15      # 0x9e2d
leaq 0x230(%rsp), %r12
movl $0x0, 0x14(%rsp)
movl $0x0, 0x8(%rsp)
movl %ebp, %edi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x40d0
cmpl $0x67, %eax
jle 0x5a28
cmpl $0x78, %eax
jne 0x5a3e
movq (%r13), %rcx
movl $0x1f4, %esi            # imm = 0x1F4
movq %r12, %rdi
movq %r15, %rdx
xorl %eax, %eax
callq 0x4710
jmp 0x59f9
cmpl $0x41, %eax
jg 0x5a50
cmpl $-0x1, %eax
je 0x5aa0
cmpl $0x3a, %eax
je 0x5a78
cmpl $0x3f, %eax
jne 0x59f9
jmp 0x5a81
cmpl $0x68, %eax
je 0x5a8d
cmpl $0x6f, %eax
jne 0x59f9
movb $0x1, %al
movl %eax, 0x14(%rsp)
jmp 0x59f9
cmpl $0x42, %eax
je 0x5a61
cmpl $0x44, %eax
je 0x5a69
cmpl $0x63, %eax
jne 0x59f9
jmp 0x5a71
movb $0x1, %al
movl %eax, 0x8(%rsp)
jmp 0x59f9
movb $0x1, %al
movl %eax, 0x18(%rsp)
jmp 0x59f9
leaq 0x7(%rsp), %rax
jmp 0x5a92
leaq 0x3cd5(%rip), %rdi      # 0x9754
jmp 0x5a88
leaq 0x3cef(%rip), %rdi      # 0x9777
callq 0x4830
leaq 0x6(%rsp), %rax
movb $0x1, (%rax)
testb $0x1, 0x6(%rsp)
jne 0x5c5e
cmpb $0x1, 0x7(%rsp)
je 0x5c09
testb $0x1, 0x18(%rsp)
je 0x5abc
leaq 0x8c59(%rip), %rax      # 0xe712
movb $0x1, (%rax)
testb $0x1, 0x14(%rsp)
je 0x5aca
movb $0x1, 0x8cba(%rip)      # 0xe784
testb $0x1, 0x8(%rsp)
je 0x5ad6
callq 0x4d7c
leaq 0x3c43(%rip), %rdi      # 0x9720
leaq 0x395c(%rip), %rsi      # 0x9440
leaq 0x3962(%rip), %rdx      # 0x944d
xorl %eax, %eax
callq 0x57fa
leaq 0x3c39(%rip), %rdi      # 0x9732
leaq 0x230(%rsp), %rbx
movq %rbx, %rsi
xorl %eax, %eax
callq 0x57fa
movq %rbx, %rdi
callq 0x7dc9
callq 0x79c1
callq 0x4280
testl %eax, %eax
jne 0x5bcc
leaq 0x3b48(%rip), %rdi      # 0x9674
callq 0x4340
movq %rax, %rbx
leaq 0x3ea5(%rip), %rdi      # 0x99e0
xorl %eax, %eax
callq 0x57fa
testq %rbx, %rbx
je 0x5c63
leaq 0x3b29(%rip), %rdi      # 0x967b
callq 0x8332
testb %al, %al
je 0x5c47
leaq 0x3b15(%rip), %rdi      # 0x967b
callq 0x46a0
testl %eax, %eax
jne 0x5c47
movl 0x14(%rbx), %edi
callq 0x47a0
cmpl $-0x1, %eax
je 0x5c7a
movl 0x14(%rbx), %edi
callq 0x45d0
cmpl $-0x1, %eax
je 0x5c8d
movl 0x10(%rbx), %edi
callq 0x47d0
cmpl $-0x1, %eax
je 0x5ca0
movl 0x10(%rbx), %edi
callq 0x41b0
cmpl $-0x1, %eax
je 0x5cb3
callq 0x4280
movl %eax, %esi
leaq 0x3b7b(%rip), %rdi      # 0x9740
xorl %eax, %eax
callq 0x57fa
callq 0x7495
xorps %xmm0, %xmm0
movaps %xmm0, 0x8bf5(%rip)     # 0xe7d0
movaps %xmm0, 0x8bde(%rip)     # 0xe7c0
movaps %xmm0, 0x8bc7(%rip)     # 0xe7b0
movaps %xmm0, 0x8bb0(%rip)     # 0xe7a0
movaps %xmm0, 0x8b99(%rip)     # 0xe790
cmpb $0x0, 0x8b86(%rip)      # 0xe784
jne 0x5cd5
jmp 0x5cc6
leaq 0x3b02(%rip), %rbx      # 0x9712
leaq 0x230(%rsp), %r14
movq %rbx, %rdi
movl $0x2, %esi
movq %r14, %rdx
callq 0x75d9
testq %rax, %rax
je 0x5c18
movq %rax, %r15
movq %rax, %rdi
callq 0x7c39
movq %r15, %rdi
callq 0x4540
xorl %edi, %edi
callq 0x4550
callq 0x4050
movl (%rax), %edi
leaq 0x3dc1(%rip), %rsi      # 0x9a16
leaq 0x3a1f(%rip), %rdx      # 0x967b
jmp 0x5c73
callq 0x635c
leaq 0x3d92(%rip), %rsi      # 0x99fc
leaq 0x3a03(%rip), %rdx      # 0x9674
xorl %edi, %edi
xorl %eax, %eax
callq 0x55ac
callq 0x4050
movl (%rax), %edi
leaq 0x3d97(%rip), %rsi      # 0x9a1f
jmp 0x6314
callq 0x4050
movl (%rax), %edi
leaq 0x3d8b(%rip), %rsi      # 0x9a26
jmp 0x6314
callq 0x4050
movl (%rax), %edi
leaq 0x3d80(%rip), %rsi      # 0x9a2e
jmp 0x6314
callq 0x4050
movl (%rax), %edi
leaq 0x3d74(%rip), %rsi      # 0x9a35
jmp 0x6314
callq 0x7269
xorl %ebp, %ebp
testl %eax, %eax
jne 0x6274
leaq 0x3d8e(%rip), %rdi      # 0x9a6a
callq 0x7889
movq %rax, %rdi
callq 0x86ae
movq %rax, %rbx
movb (%rax), %al
testb %al, %al
je 0x631b
movq %rbx, %r15
incq %r15
leaq 0x397d(%rip), %r14      # 0x9680
movsbl %al, %ebp
movl $0x42, %edx
movq %r14, %rdi
movl %ebp, %esi
callq 0x44c0
testq %rax, %rax
je 0x62f6
movb (%r15), %al
incq %r15
testb %al, %al
jne 0x5d03
leaq 0x3e05(%rip), %rsi      # 0x9b34
movq %rbx, %rdi
callq 0x46f0
testq %rax, %rax
je 0x6324
leaq 0x8a49(%rip), %r12      # 0xe790
xorl %r15d, %r15d
leaq 0x3de3(%rip), %r14      # 0x9b34
movq %r15, %r13
movq %rax, %rdi
callq 0x86ae
movq %rax, (%r12)
incq %r15
xorl %edi, %edi
movq %r14, %rsi
callq 0x46f0
cmpq $0x8, %r13
ja 0x5d7c
addq $0x8, %r12
testq %rax, %rax
jne 0x5d51
leaq 0x3de6(%rip), %rdi      # 0x9b69
movq %r15, %rsi
xorl %eax, %eax
callq 0x5721
movq %rbx, %rdi
callq 0x4540
leaq 0x89f4(%rip), %r15      # 0xe790
leaq 0x30(%rsp), %r12
xorl %r13d, %r13d
xorl %ebp, %ebp
movq (%r13,%r15), %rsi
testq %rsi, %rsi
je 0x624b
testb $0x1, %bpl
jne 0x624b
leaq 0x3c78(%rip), %rdi      # 0x9a3d
xorl %eax, %eax
callq 0x57fa
movq (%r13,%r15), %rbx
leaq 0x3c79(%rip), %rdi      # 0x9a51
callq 0x7889
testq %rbx, %rbx
je 0x6308
movq %rax, %r14
testq %rax, %rax
je 0x6308
callq 0x707e
cmpl $-0x1, %eax
je 0x5fbb
movq %r13, 0x8(%rsp)
movl $0x1f4, %edx            # imm = 0x1F4
movq %r12, %rdi
xorl %esi, %esi
callq 0x4220
movq %r14, %rdi
leaq 0x3f36(%rip), %rsi      # 0x9d54
callq 0x4640
testl %eax, %eax
je 0x5e44
leaq 0x3f5a(%rip), %rdi      # 0x9d88
leaq 0x3f47(%rip), %rsi      # 0x9d7c
movq %rbx, %rdx
movq %r14, %rcx
xorl %eax, %eax
callq 0x85f8
jmp 0x5e5c
leaq 0x3f15(%rip), %rdi      # 0x9d60
leaq 0x3f2a(%rip), %rsi      # 0x9d7c
movq %rbx, %rdx
xorl %eax, %eax
callq 0x85f8
movq %rax, %r13
movq %rbp, 0x18(%rsp)
leaq 0x3f4a(%rip), %rdi      # 0x9db5
callq 0x7889
leaq 0x3f35(%rip), %rdi      # 0x9dac
movq %rax, %rsi
xorl %eax, %eax
callq 0x85f8
movq %rax, %r15
leaq 0x3f3c(%rip), %rdi      # 0x9dc7
callq 0x7889
movq %rax, %rbx
leaq 0x48f7(%rip), %rdi      # 0xa791
callq 0x7889
leaq 0x3f1b(%rip), %rdi      # 0x9dc1
movq %rbx, %rsi
movq %rax, %rdx
xorl %eax, %eax
callq 0x85f8
movq %rax, %rbx
movq %rax, %rdi
callq 0x41c0
movl $0x1f4, %ecx            # imm = 0x1F4
movq %rbx, %rdi
movq %rax, %rsi
movq %r12, %rdx
callq 0x4c20
testl %eax, %eax
js 0x5f44
leaq 0x3f14(%rip), %rdi      # 0x9df0
movq %r12, %rsi
xorl %eax, %eax
callq 0x85f8
movq %rax, %rbp
leaq 0x467a(%rip), %rdi      # 0xa56a
leaq 0x3549(%rip), %rsi      # 0x9440
leaq 0x354f(%rip), %rdx      # 0x944d
leaq 0x355b(%rip), %rcx      # 0x9460
xorl %eax, %eax
callq 0x85f8
movq %rax, %r14
leaq 0x3ef2(%rip), %rdi      # 0x9e08
xorl %eax, %eax
callq 0x5721
leaq 0x3efd(%rip), %rdi      # 0x9e21
movq %r13, %rsi
movq %r15, %rdx
movq %rbp, %rcx
movq %r14, %r8
xorl %eax, %eax
leaq 0x8507(%rip), %r9       # 0xe440
callq *(%r9)
testl %eax, %eax
setne %r12b
jmp 0x5f5f
movl $0x5a, %edi
leaq 0x3e80(%rip), %rsi      # 0x9dd0
xorl %eax, %eax
callq 0x588f
movb $0x1, %r12b
xorl %r14d, %r14d
xorl %ebp, %ebp
testq %r13, %r13
je 0x5f6c
movq %r13, %rdi
callq 0x4540
testq %r15, %r15
je 0x5f79
movq %r15, %rdi
callq 0x4540
testq %rbx, %rbx
movq 0x8(%rsp), %r13
je 0x5f8b
movq %rbx, %rdi
callq 0x4540
testq %rbp, %rbp
leaq 0x87fb(%rip), %r15      # 0xe790
je 0x5f9f
movq %rbp, %rdi
callq 0x4540
testq %r14, %r14
je 0x5fac
movq %r14, %rdi
callq 0x4540
testb %r12b, %r12b
leaq 0x30(%rsp), %r12
movq 0x18(%rsp), %rbp
je 0x5fe6
callq 0x7228
xorl %edi, %edi
leaq 0x3a90(%rip), %rsi      # 0x9a59
xorl %eax, %eax
callq 0x588f
leaq 0x8(%r13), %rax
cmpq $0x48, %r13
movq %rax, %r13
jb 0x5da6
jmp 0x624b
movl $0x7d0, %edi            # imm = 0x7D0
movl $0x1, %esi
callq 0x873e
movq %rax, %r13
movl $0x7d0, %esi            # imm = 0x7D0
movq %rax, %rdi
leaq 0x8441(%rip), %rbx      # 0xe448
callq *(%rbx)
cmpl $-0x1, %eax
je 0x60aa
movl $0x1f4, %edx            # imm = 0x1F4
movq %r12, %rdi
xorl %esi, %esi
callq 0x4220
movl $0x1f4, %esi            # imm = 0x1F4
movq %r12, %rdi
callq *(%rbx)
cmpb $0x0, 0x30(%rsp)
leaq 0x3e72(%rip), %r14      # 0x9ea9
je 0x6068
movl $0x7d0, %edx            # imm = 0x7D0
movq %r13, %rdi
movq %r12, %rsi
callq 0x81fc
cmpq $0x7d0, %rax            # imm = 0x7D0
jb 0x6068
xorl %ebx, %ebx
xorl %edi, %edi
leaq 0x3dd4(%rip), %rsi      # 0x9e30
xorl %eax, %eax
callq 0x588f
jmp 0x61a7
testq %r13, %r13
je 0x618e
cmpb $0x0, (%r13)
je 0x618e
movq %r13, %rdi
callq 0x86ae
movq %rax, %rbx
movq %rax, %rdi
movq %r14, %rsi
callq 0x4780
testq %rax, %rax
je 0x60b1
cmpb $0xd, (%rax)
sete %cl
shlb $0x2, %cl
addb $0x4e, %cl
movb %cl, (%rax)
movq %rbx, %rdi
jmp 0x608a
xorl %ebx, %ebx
jmp 0x61a7
leaq 0x3df4(%rip), %rdi      # 0x9eac
movq %rbx, %rsi
xorl %eax, %eax
callq 0x5721
movq %rbx, %rdi
callq 0x4540
movq %r13, %rdi
callq 0x86ae
movq %rax, %rdi
callq 0x84bc
movq %rax, %r14
movq %rax, %rdi
movl $0xa, %esi
callq 0x44b0
testq %rax, %rax
je 0x6186
incq %rax
movq %rax, %rdi
callq 0x86ae
movq %rax, %rdi
callq 0x8440
movq %rax, %rbx
movq %r14, %rdi
callq 0x4540
leaq 0x3dc4(%rip), %rdi      # 0x9edc
movq %rbx, %rsi
xorl %eax, %eax
callq 0x5721
movl $0x5, %edx
movq %rbx, %rdi
leaq 0x3dc5(%rip), %rsi      # 0x9ef6
callq 0x41d0
testl %eax, %eax
je 0x61cb
movl $0x6, %edx
movq %rbx, %rdi
leaq 0x3daf(%rip), %rsi      # 0x9efc
callq 0x41d0
testl %eax, %eax
je 0x61dc
movq $-0x10, %r14
leaq 0x79a8(%rip), %rax      # 0xdb10
movq 0x10(%r14,%rax), %rdi
movq %rbx, %rsi
callq 0x4640
testl %eax, %eax
je 0x61f6
addq $0x10, %r14
cmpq $0x6f, %r14
jbe 0x6161
movq %rbx, %r14
movq %r14, %rdi
callq 0x4540
xorl %ebx, %ebx
xorl %edi, %edi
leaq 0x3c94(%rip), %rsi      # 0x9e2d
leaq 0x3b9b(%rip), %rdx      # 0x9d3b
xorl %eax, %eax
callq 0x588f
callq 0x7228
testq %r13, %r13
je 0x61b9
movq %r13, %rdi
callq 0x4540
testb %bl, %bl
movq 0x8(%rsp), %r13
je 0x5fc0
jmp 0x5fd0
movq %rbx, %rdi
callq 0x4540
leaq 0x39d6(%rip), %rdi      # 0x9bb0
jmp 0x61eb
movq %rbx, %rdi
callq 0x4540
leaq 0x39e4(%rip), %rdi      # 0x9bcf
xorl %eax, %eax
callq 0x57fa
movb $0x1, %bl
jmp 0x61a7
movq %rbx, %rdi
callq 0x4540
leaq 0x790b(%rip), %rax      # 0xdb10
movl 0x18(%r14,%rax), %eax
cmpq $0x7, %rax
ja 0x618e
leaq 0x3205(%rip), %rcx      # 0x9420
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
cmpb $0x0, 0x8559(%rip)      # 0xe784
leaq 0x3aa6(%rip), %rsi      # 0x9cd8
leaq 0x3ae3(%rip), %rax      # 0x9d1c
cmovneq %rax, %rsi
xorl %edi, %edi
xorl %eax, %eax
callq 0x588f
movb $0x1, %bpl
jmp 0x61f2
movq $-0x8, %rbx
movq 0x8(%rbx,%r15), %rdi
testq %rdi, %rdi
je 0x6261
callq 0x4540
movq $0x0, 0x8(%rbx,%r15)
addq $0x8, %rbx
cmpq $0x48, %rbx
jb 0x6252
cmpb $0x0, 0x8509(%rip)      # 0xe784
jne 0x62e2
movups 0x787c(%rip), %xmm0     # 0xdb00
movaps %xmm0, 0x40(%rsp)
movups 0x7860(%rip), %xmm0     # 0xdaf0
movaps %xmm0, 0x30(%rsp)
movl $0x708, %esi            # imm = 0x708
testb $0x1, %bpl
jne 0x62ad
leaq 0x30(%rsp), %rdi
callq 0x78ec
movq %rax, %rsi
leaq 0x20(%rsp), %rbx
movq %rsi, (%rbx)
movq $0x0, 0x8(%rbx)
leaq 0x37c7(%rip), %rdi      # 0x9a8b
xorl %eax, %eax
callq 0x5721
movq %rbx, %rdi
xorl %esi, %esi
callq 0x4130
cmpb $0x1, 0x84a8(%rip)      # 0xe784
jne 0x5cc6
xorl %eax, %eax
addq $0x428, %rsp            # imm = 0x428
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x37e8(%rip), %rsi      # 0x9ae5
xorl %edi, %edi
movl %ebp, %edx
xorl %eax, %eax
callq 0x55ac
leaq 0x3895(%rip), %rsi      # 0x9ba4
movl $0x16, %edi
xorl %eax, %eax
callq 0x55ac
leaq 0x3782(%rip), %rsi      # 0x9aa4
jmp 0x630f
leaq 0x380b(%rip), %rsi      # 0x9b36
xorl %edi, %edi
jmp 0x6314
leaq 0x3983(%rip), %rsi      # 0x9cb9
jmp 0x632b
leaq 0x394f(%rip), %rsi      # 0x9c8e
jmp 0x632b
leaq 0x38fe(%rip), %rsi      # 0x9c46
jmp 0x632b
leaq 0x38ce(%rip), %rsi      # 0x9c1f
jmp 0x632b
leaq 0x388b(%rip), %rsi      # 0x9be5
jmp 0x632b