// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/src/deark-modules.c
// Function: disable_modules_as_requested
static void disable_modules_as_requested(deark *c)
{
	int k;
	u8 *mod_set;

	if(!c->onlymods_string && !c->disablemods_string &&
		!c->onlydetectmods_string && !c->nodetectmods_string)
	{
		return;
	}

	mod_set = de_malloc(c, c->num_modules);

	if(c->onlymods_string) {
		module_list_string_to_set(c, c->onlymods_string, mod_set);
		// Disable modules not in the list
		for(k=0; k<c->num_modules; k++) {
			if(!mod_set[k]) {
				disable_module(c, &c->module_info[k]);
			}
		}
	}

	if(c->disablemods_string) {
		de_zeromem(mod_set, c->num_modules);
		module_list_string_to_set(c, c->disablemods_string, mod_set);
		// Disable modules in the list
		for(k=0; k<c->num_modules; k++) {
			if(mod_set[k]) {
				disable_module(c, &c->module_info[k]);
			}
		}
	}

	if(c->onlydetectmods_string) {
		de_zeromem(mod_set, c->num_modules);
		module_list_string_to_set(c, c->onlydetectmods_string, mod_set);
		// Set MODFLAG_DISABLEDETECT for modules not in the list
		for(k=0; k<c->num_modules; k++) {
			if(!mod_set[k]) {
				c->module_info[k].flags |= DE_MODFLAG_DISABLEDETECT;
			}
		}
	}

	if(c->nodetectmods_string) {
		de_zeromem(mod_set, c->num_modules);
		module_list_string_to_set(c, c->nodetectmods_string, mod_set);
		// Set MODFLAG_DISABLEDETECT for modules in the list
		for(k=0; k<c->num_modules; k++) {
			if(mod_set[k]) {
				c->module_info[k].flags |= DE_MODFLAG_DISABLEDETECT;
			}
		}
	}

	de_free(c, mod_set);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x170(%rax)
jne 0x1acc9
movq -0x8(%rbp), %rax
cmpq $0x0, 0x178(%rax)
jne 0x1acc9
movq -0x8(%rbp), %rax
cmpq $0x0, 0x180(%rax)
jne 0x1acc9
movq -0x8(%rbp), %rax
cmpq $0x0, 0x188(%rax)
jne 0x1acc9
jmp 0x1af22
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movslq 0x1a8(%rax), %rsi
callq 0x15b780
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x170(%rax)
je 0x1ad59
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x170(%rax), %rsi
movq -0x18(%rbp), %rdx
callq 0x1af30
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x1a8(%rcx), %eax
jge 0x1ad57
movq -0x18(%rbp), %rax
movslq -0xc(%rbp), %rcx
cmpb $0x0, (%rax,%rcx)
jne 0x1ad4a
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x1b0(%rax), %rsi
movslq -0xc(%rbp), %rax
imulq $0x48, %rax, %rax
addq %rax, %rsi
callq 0x1b020
jmp 0x1ad4c
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x1ad0e
jmp 0x1ad59
movq -0x8(%rbp), %rax
cmpq $0x0, 0x178(%rax)
je 0x1adeb
movq -0x18(%rbp), %rdi
movq -0x8(%rbp), %rax
movslq 0x1a8(%rax), %rdx
xorl %esi, %esi
callq 0x19140
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x178(%rax), %rsi
movq -0x18(%rbp), %rdx
callq 0x1af30
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x1a8(%rcx), %eax
jge 0x1ade9
movq -0x18(%rbp), %rax
movslq -0xc(%rbp), %rcx
cmpb $0x0, (%rax,%rcx)
je 0x1addc
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x1b0(%rax), %rsi
movslq -0xc(%rbp), %rax
imulq $0x48, %rax, %rax
addq %rax, %rsi
callq 0x1b020
jmp 0x1adde
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x1ada0
jmp 0x1adeb
movq -0x8(%rbp), %rax
cmpq $0x0, 0x180(%rax)
je 0x1ae80
movq -0x18(%rbp), %rdi
movq -0x8(%rbp), %rax
movslq 0x1a8(%rax), %rdx
xorl %esi, %esi
callq 0x19140
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x180(%rax), %rsi
movq -0x18(%rbp), %rdx
callq 0x1af30
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x1a8(%rcx), %eax
jge 0x1ae7e
movq -0x18(%rbp), %rax
movslq -0xc(%rbp), %rcx
cmpb $0x0, (%rax,%rcx)
jne 0x1ae71
movq -0x8(%rbp), %rax
movq 0x1b0(%rax), %rax
movslq -0xc(%rbp), %rcx
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movl 0x30(%rax), %ecx
orl $0x100, %ecx            # imm = 0x100
movl %ecx, 0x30(%rax)
jmp 0x1ae73
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x1ae32
jmp 0x1ae80
movq -0x8(%rbp), %rax
cmpq $0x0, 0x188(%rax)
je 0x1af15
movq -0x18(%rbp), %rdi
movq -0x8(%rbp), %rax
movslq 0x1a8(%rax), %rdx
xorl %esi, %esi
callq 0x19140
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x188(%rax), %rsi
movq -0x18(%rbp), %rdx
callq 0x1af30
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x1a8(%rcx), %eax
jge 0x1af13
movq -0x18(%rbp), %rax
movslq -0xc(%rbp), %rcx
cmpb $0x0, (%rax,%rcx)
je 0x1af06
movq -0x8(%rbp), %rax
movq 0x1b0(%rax), %rax
movslq -0xc(%rbp), %rcx
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movl 0x30(%rax), %ecx
orl $0x100, %ecx            # imm = 0x100
movl %ecx, 0x30(%rax)
jmp 0x1af08
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x1aec7
jmp 0x1af15
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x15b820
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)