// File: /workspace/github_c_makefile_star2_O0/GangZhuo[P]dohclient/src/config.c
// Function: conf_load_from_file
int conf_load_from_file(config_t* conf, const char* config_file, int force)
{
	FILE* pf;
	char line[2048], * ln;
	char* option, * name, * value;
	int len = 0, cnf_index = -1;
    int have_channel = !!conf->channels;
    int have_channel_args = !!conf->channel_args;

	pf = fopen(config_file, "r");
	if (!pf) {
		loge("failed to open %s\n", config_file);
		return -1;
	}

#define is_true_val(s) \
   (strcmp((s), "1") == 0 || \
    strcmp((s), "on") == 0 || \
	strcmp((s), "true") == 0 || \
	strcmp((s), "yes") == 0 || \
	strcmp((s), "enabled") == 0)

	while (!feof(pf)) {
		memset(line, 0, sizeof(line));
		fgets(line, sizeof(line) - 1, pf);
		ln = line;
		ln = ltrim(ln);
		ln = rtrim(ln);
		if (*ln == '\0' || *ln == '#')
			continue;

		if (strncmp(ln, "config", 6) == 0 &&
			isspace(ln[6]) &&
			strncmp((ln = ltrim(ln + 6)), "cfg", 3) == 0 &&
			(ln[3] == '\0' || isspace((int)(*((unsigned char*)ln + 3))))) {
			cnf_index++;
			if (cnf_index > 0) /*only parse first 'config cfg'*/
				break;
			continue;
		}

		if (cnf_index != 0)
			continue;

		parse_option(ln, &option, &name, &value);

		if (strcmp(option, "option") != 0 || !name || !value || !(*name) || !(*value)) {
			loge("invalid option: %s %s %s\n", option, name, value);
			fclose(pf);
			return -1;
		}

		if (strcmp(name, "bind_addr") == 0 && strlen(value)) {
			if (force || !conf->listen_addr) {
				free(conf->listen_addr);
				conf->listen_addr = strdup(value);
			}
		}
		else if (strcmp(name, "bind_port") == 0 && strlen(value)) {
			if (force || !conf->listen_port) {
				free(conf->listen_port);
				conf->listen_port = strdup(value);
			}
		}
		else if (strcmp(name, "timeout") == 0 && strlen(value)) {
			if (force || conf->timeout <= 0) {
				conf->timeout = atoi(value);
			}
		}
		else if (strcmp(name, "pid_file") == 0 && strlen(value)) {
			if (force || !conf->pid_file) {
				free(conf->pid_file);
				conf->pid_file = strdup(value);
			}
		}
		else if (strcmp(name, "log_file") == 0 && strlen(value)) {
			if (force || !conf->log_file) {
				free(conf->log_file);
				conf->log_file = strdup(value);
			}
		}
		else if (strcmp(name, "log_level") == 0 && strlen(value)) {
			if (force || conf->log_level == LOG_DEFAULT_LEVEL) {
				conf->log_level = atoi(value);
			}
		}
		else if (strcmp(name, "chnroute") == 0 && strlen(value)) {
			if (force || !conf->chnroute) {
				free(conf->chnroute);
				conf->chnroute = strdup(value);
			}
		}
		else if (strcmp(name, "blacklist") == 0 && strlen(value)) {
			if (force || !conf->blacklist) {
				free(conf->blacklist);
				conf->blacklist = strdup(value);
			}
		}
		else if (strcmp(name, "hosts") == 0 && strlen(value)) {
			if (force || !conf->hosts) {
				free(conf->hosts);
				conf->hosts = strdup(value);
			}
		}
		else if (strcmp(name, "proxy") == 0 && strlen(value)) {
			if (force || !conf->proxy) {
				free(conf->proxy);
				conf->proxy = strdup(value);
			}
		}
		else if (strcmp(name, "channel") == 0 && strlen(value)) {
			if (force || !have_channel) {
				if (conf_add_channel(conf, value)) {
					return -1;
				}
			}
		}
		else if (strcmp(name, "channel_args") == 0 && strlen(value)) {
			if (force || !have_channel_args) {
				if (conf_add_channel_args(conf, value)) {
					return -1;
				}
			}
		}
		else if (strcmp(name, "cache_timeout") == 0 && strlen(value)) {
			if (force || conf->cache_timeout < 0) {
				conf->cache_timeout = atoi(value);
			}
		}
		else if (strcmp(name, "mode") == 0 && strlen(value)) {
			if (force || conf->channel_choose_mode < 0) {
				conf->channel_choose_mode = atoi(value);
			}
		}
		else if (strcmp(name, "cache_api") == 0 && strlen(value)) {
			if (force || !conf->cache_api) {
				free(conf->cache_api);
				conf->cache_api = strdup(value);
			}
		}
		else if (strcmp(name, "cache_db") == 0 && strlen(value)) {
			if (force || !conf->cachedb) {
				free(conf->cachedb);
				conf->cachedb = strdup(value);
			}
		}
		else if (strcmp(name, "cache_autosave") == 0 && strlen(value)) {
			if (force || !conf->cachedb_autosave) {
				free(conf->cachedb_autosave);
				conf->cachedb_autosave = strdup(value);
			}
		}
		else if (strcmp(name, "wwwroot") == 0 && strlen(value)) {
			if (force || !conf->wwwroot) {
				free(conf->wwwroot);
				conf->wwwroot = strdup(value);
			}
		}
		else {
			/*do nothing*/
		}
	}

	fclose(pf);

#undef is_true_val

	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x870, %rsp            # imm = 0x870
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movl %edx, -0x1c(%rbp)
movl $0x0, -0x854(%rbp)
movl $0xffffffff, -0x858(%rbp) # imm = 0xFFFFFFFF
movq -0x10(%rbp), %rax
cmpq $0x0, 0x70(%rax)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x85c(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x78(%rax)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x860(%rbp)
movq -0x18(%rbp), %rdi
leaq 0x18cc8(%rip), %rsi     # 0x36013
callq 0x3440
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x1d3a1
jmp 0x1d35d
movb $0x0, %al
callq 0x242d0
cmpl $0x3, (%rax)
jl 0x1d393
movq -0x18(%rbp), %r9
movl $0x3, %edi
leaq 0x19e70(%rip), %rsi     # 0x371e9
leaq 0x19f68(%rip), %rdx     # 0x372e8
movl $0x14d, %ecx            # imm = 0x14D
leaq 0x19f70(%rip), %r8      # 0x372fc
movb $0x0, %al
callq 0x243b0
jmp 0x1d395
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x1dcf1
jmp 0x1d3a3
movq -0x28(%rbp), %rdi
callq 0x3570
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x1d3bd
jmp 0x1dce1
leaq -0x830(%rbp), %rdi
xorl %esi, %esi
movl $0x800, %edx            # imm = 0x800
callq 0x3200
leaq -0x830(%rbp), %rdi
movq -0x28(%rbp), %rdx
movl $0x7ff, %esi            # imm = 0x7FF
callq 0x3590
leaq -0x830(%rbp), %rax
movq %rax, -0x838(%rbp)
movq -0x838(%rbp), %rdi
callq 0x2ef90
movq %rax, -0x838(%rbp)
movq -0x838(%rbp), %rdi
callq 0x2f010
movq %rax, -0x838(%rbp)
movq -0x838(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x1d437
movq -0x838(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x23, %eax
jne 0x1d43c
jmp 0x1d3a3
movq -0x838(%rbp), %rdi
leaq 0x19cc7(%rip), %rsi     # 0x37111
movl $0x6, %edx
callq 0x31a0
cmpl $0x0, %eax
jne 0x1d50b
callq 0x33e0
movq (%rax), %rax
movq -0x838(%rbp), %rcx
movsbl 0x6(%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x2000, %eax           # imm = 0x2000
cmpl $0x0, %eax
je 0x1d50b
movq -0x838(%rbp), %rdi
addq $0x6, %rdi
callq 0x2ef90
movq %rax, %rdi
movq %rdi, -0x838(%rbp)
leaq 0x19e69(%rip), %rsi     # 0x3730f
movl $0x3, %edx
callq 0x31a0
cmpl $0x0, %eax
jne 0x1d50b
movq -0x838(%rbp), %rax
movsbl 0x3(%rax), %eax
cmpl $0x0, %eax
je 0x1d4e9
callq 0x33e0
movq (%rax), %rax
movq -0x838(%rbp), %rcx
movzbl 0x3(%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x2000, %eax           # imm = 0x2000
cmpl $0x0, %eax
je 0x1d50b
movl -0x858(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x858(%rbp)
cmpl $0x0, -0x858(%rbp)
jle 0x1d506
jmp 0x1dce1
jmp 0x1d3a3
cmpl $0x0, -0x858(%rbp)
je 0x1d519
jmp 0x1d3a3
movq -0x838(%rbp), %rdi
leaq -0x840(%rbp), %rsi
leaq -0x848(%rbp), %rdx
leaq -0x850(%rbp), %rcx
callq 0x1dd00
movq -0x840(%rbp), %rdi
leaq 0x19dcb(%rip), %rsi     # 0x37313
callq 0x3500
cmpl $0x0, %eax
jne 0x1d57e
cmpq $0x0, -0x848(%rbp)
je 0x1d57e
cmpq $0x0, -0x850(%rbp)
je 0x1d57e
movq -0x848(%rbp), %rax
cmpb $0x0, (%rax)
je 0x1d57e
movq -0x850(%rbp), %rax
cmpb $0x0, (%rax)
jne 0x1d5e7
jmp 0x1d580
movb $0x0, %al
callq 0x242d0
cmpl $0x3, (%rax)
jl 0x1d5d0
movq -0x840(%rbp), %r9
movq -0x848(%rbp), %r10
movq -0x850(%rbp), %rax
movl $0x3, %edi
leaq 0x19c3c(%rip), %rsi     # 0x371e9
leaq 0x19d34(%rip), %rdx     # 0x372e8
movl $0x171, %ecx            # imm = 0x171
leaq 0x19d5a(%rip), %r8      # 0x3731a
movq %r10, (%rsp)
movq %rax, 0x8(%rsp)
movb $0x0, %al
callq 0x243b0
jmp 0x1d5d2
movq -0x28(%rbp), %rdi
callq 0x33a0
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x1dcf1
movq -0x848(%rbp), %rdi
leaq 0x19d3f(%rip), %rsi     # 0x37334
callq 0x3500
cmpl $0x0, %eax
jne 0x1d648
movq -0x850(%rbp), %rdi
callq 0x3180
cmpq $0x0, %rax
je 0x1d648
cmpl $0x0, -0x1c(%rbp)
jne 0x1d621
movq -0x10(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x1d643
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x3460
movq -0x850(%rbp), %rdi
callq 0x3620
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
jmp 0x1dcdc
movq -0x848(%rbp), %rdi
leaq 0x19ce8(%rip), %rsi     # 0x3733e
callq 0x3500
cmpl $0x0, %eax
jne 0x1d6ac
movq -0x850(%rbp), %rdi
callq 0x3180
cmpq $0x0, %rax
je 0x1d6ac
cmpl $0x0, -0x1c(%rbp)
jne 0x1d683
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x1d6a7
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x3460
movq -0x850(%rbp), %rdi
callq 0x3620
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
jmp 0x1dcda
movq -0x848(%rbp), %rdi
leaq 0x19a8f(%rip), %rsi     # 0x37149
callq 0x3500
cmpl $0x0, %eax
jne 0x1d706
movq -0x850(%rbp), %rdi
callq 0x3180
cmpq $0x0, %rax
je 0x1d706
cmpl $0x0, -0x1c(%rbp)
jne 0x1d6e9
movq -0x10(%rbp), %rax
cmpl $0x0, 0x88(%rax)
jg 0x1d701
movq -0x850(%rbp), %rdi
callq 0x3580
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x88(%rax)
jmp 0x1dcd8
movq -0x848(%rbp), %rdi
leaq 0x19c34(%rip), %rsi     # 0x37348
callq 0x3500
cmpl $0x0, %eax
jne 0x1d76a
movq -0x850(%rbp), %rdi
callq 0x3180
cmpq $0x0, %rax
je 0x1d76a
cmpl $0x0, -0x1c(%rbp)
jne 0x1d741
movq -0x10(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x1d765
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x3460
movq -0x850(%rbp), %rdi
callq 0x3620
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x10(%rax)
jmp 0x1dcd6
movq -0x848(%rbp), %rdi
leaq 0x19bd9(%rip), %rsi     # 0x37351
callq 0x3500
cmpl $0x0, %eax
jne 0x1d7ce
movq -0x850(%rbp), %rdi
callq 0x3180
cmpq $0x0, %rax
je 0x1d7ce
cmpl $0x0, -0x1c(%rbp)
jne 0x1d7a5
movq -0x10(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x1d7c9
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x3460
movq -0x850(%rbp), %rdi
callq 0x3620
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x18(%rax)
jmp 0x1dcd4
movq -0x848(%rbp), %rdi
leaq 0x19b7e(%rip), %rsi     # 0x3735a
callq 0x3500
cmpl $0x0, %eax
jne 0x1d828
movq -0x850(%rbp), %rdi
callq 0x3180
cmpq $0x0, %rax
je 0x1d828
cmpl $0x0, -0x1c(%rbp)
jne 0x1d80b
movq -0x10(%rbp), %rax
cmpl $0x5, 0x90(%rax)
jne 0x1d823
movq -0x850(%rbp), %rdi
callq 0x3580
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x90(%rax)
jmp 0x1dcd2
movq -0x848(%rbp), %rdi
leaq 0x198ed(%rip), %rsi     # 0x37123
callq 0x3500
cmpl $0x0, %eax
jne 0x1d88c
movq -0x850(%rbp), %rdi
callq 0x3180
cmpq $0x0, %rax
je 0x1d88c
cmpl $0x0, -0x1c(%rbp)
jne 0x1d863
movq -0x10(%rbp), %rax
cmpq $0x0, 0x38(%rax)
jne 0x1d887
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rdi
callq 0x3460
movq -0x850(%rbp), %rdi
callq 0x3620
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x38(%rax)
jmp 0x1dcd0
movq -0x848(%rbp), %rdi
leaq 0x1989f(%rip), %rsi     # 0x37139
callq 0x3500
cmpl $0x0, %eax
jne 0x1d8f0
movq -0x850(%rbp), %rdi
callq 0x3180
cmpq $0x0, %rax
je 0x1d8f0
cmpl $0x0, -0x1c(%rbp)
jne 0x1d8c7
movq -0x10(%rbp), %rax
cmpq $0x0, 0x40(%rax)
jne 0x1d8eb
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rdi
callq 0x3460
movq -0x850(%rbp), %rdi
callq 0x3620
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x40(%rax)
jmp 0x1dcce
movq -0x848(%rbp), %rdi
leaq 0x182d6(%rip), %rsi     # 0x35bd4
callq 0x3500
cmpl $0x0, %eax
jne 0x1d954
movq -0x850(%rbp), %rdi
callq 0x3180
cmpq $0x0, %rax
je 0x1d954
cmpl $0x0, -0x1c(%rbp)
jne 0x1d92b
movq -0x10(%rbp), %rax
cmpq $0x0, 0x48(%rax)
jne 0x1d94f
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rdi
callq 0x3460
movq -0x850(%rbp), %rdi
callq 0x3620
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x48(%rax)
jmp 0x1dccc
movq -0x848(%rbp), %rdi
leaq 0x18779(%rip), %rsi     # 0x360db
callq 0x3500
cmpl $0x0, %eax
jne 0x1d9b8
movq -0x850(%rbp), %rdi
callq 0x3180
cmpq $0x0, %rax
je 0x1d9b8
cmpl $0x0, -0x1c(%rbp)
jne 0x1d98f
movq -0x10(%rbp), %rax
cmpq $0x0, 0x30(%rax)
jne 0x1d9b3
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x3460
movq -0x850(%rbp), %rdi
callq 0x3620
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x30(%rax)
jmp 0x1dcca
movq -0x848(%rbp), %rdi
leaq 0x1878a(%rip), %rsi     # 0x36150
callq 0x3500
cmpl $0x0, %eax
jne 0x1da19
movq -0x850(%rbp), %rdi
callq 0x3180
cmpq $0x0, %rax
je 0x1da19
cmpl $0x0, -0x1c(%rbp)
jne 0x1d9f1
cmpl $0x0, -0x85c(%rbp)
jne 0x1da14
movq -0x10(%rbp), %rdi
movq -0x850(%rbp), %rsi
callq 0x1c970
cmpl $0x0, %eax
je 0x1da12
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x1dcf1
jmp 0x1da14
jmp 0x1dcc8
movq -0x848(%rbp), %rdi
leaq 0x19987(%rip), %rsi     # 0x373ae
callq 0x3500
cmpl $0x0, %eax
jne 0x1da7a
movq -0x850(%rbp), %rdi
callq 0x3180
cmpq $0x0, %rax
je 0x1da7a
cmpl $0x0, -0x1c(%rbp)
jne 0x1da52
cmpl $0x0, -0x860(%rbp)
jne 0x1da75
movq -0x10(%rbp), %rdi
movq -0x850(%rbp), %rsi
callq 0x1ca80
cmpl $0x0, %eax
je 0x1da73
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x1dcf1
jmp 0x1da75
jmp 0x1dcc6
movq -0x848(%rbp), %rdi
leaq 0x198dc(%rip), %rsi     # 0x37364
callq 0x3500
cmpl $0x0, %eax
jne 0x1dad4
movq -0x850(%rbp), %rdi
callq 0x3180
cmpq $0x0, %rax
je 0x1dad4
cmpl $0x0, -0x1c(%rbp)
jne 0x1dab7
movq -0x10(%rbp), %rax
cmpl $0x0, 0x8c(%rax)
jge 0x1dacf
movq -0x850(%rbp), %rdi
callq 0x3580
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x8c(%rax)
jmp 0x1dcc4
movq -0x848(%rbp), %rdi
leaq 0x1966f(%rip), %rsi     # 0x37151
callq 0x3500
cmpl $0x0, %eax
jne 0x1db2e
movq -0x850(%rbp), %rdi
callq 0x3180
cmpq $0x0, %rax
je 0x1db2e
cmpl $0x0, -0x1c(%rbp)
jne 0x1db11
movq -0x10(%rbp), %rax
cmpl $0x0, 0x80(%rax)
jge 0x1db29
movq -0x850(%rbp), %rdi
callq 0x3580
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x80(%rax)
jmp 0x1dcc2
movq -0x848(%rbp), %rdi
leaq 0x19836(%rip), %rsi     # 0x37372
callq 0x3500
cmpl $0x0, %eax
jne 0x1db92
movq -0x850(%rbp), %rdi
callq 0x3180
cmpq $0x0, %rax
je 0x1db92
cmpl $0x0, -0x1c(%rbp)
jne 0x1db69
movq -0x10(%rbp), %rax
cmpq $0x0, 0x68(%rax)
jne 0x1db8d
movq -0x10(%rbp), %rax
movq 0x68(%rax), %rdi
callq 0x3460
movq -0x850(%rbp), %rdi
callq 0x3620
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x68(%rax)
jmp 0x1dcc0
movq -0x848(%rbp), %rdi
leaq 0x197dc(%rip), %rsi     # 0x3737c
callq 0x3500
cmpl $0x0, %eax
jne 0x1dbf6
movq -0x850(%rbp), %rdi
callq 0x3180
cmpq $0x0, %rax
je 0x1dbf6
cmpl $0x0, -0x1c(%rbp)
jne 0x1dbcd
movq -0x10(%rbp), %rax
cmpq $0x0, 0x58(%rax)
jne 0x1dbf1
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rdi
callq 0x3460
movq -0x850(%rbp), %rdi
callq 0x3620
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x58(%rax)
jmp 0x1dcbe
movq -0x848(%rbp), %rdi
leaq 0x19781(%rip), %rsi     # 0x37385
callq 0x3500
cmpl $0x0, %eax
jne 0x1dc57
movq -0x850(%rbp), %rdi
callq 0x3180
cmpq $0x0, %rax
je 0x1dc57
cmpl $0x0, -0x1c(%rbp)
jne 0x1dc31
movq -0x10(%rbp), %rax
cmpq $0x0, 0x60(%rax)
jne 0x1dc55
movq -0x10(%rbp), %rax
movq 0x60(%rax), %rdi
callq 0x3460
movq -0x850(%rbp), %rdi
callq 0x3620
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x60(%rax)
jmp 0x1dcbc
movq -0x848(%rbp), %rdi
leaq 0x19513(%rip), %rsi     # 0x37178
callq 0x3500
cmpl $0x0, %eax
jne 0x1dcb8
movq -0x850(%rbp), %rdi
callq 0x3180
cmpq $0x0, %rax
je 0x1dcb8
cmpl $0x0, -0x1c(%rbp)
jne 0x1dc92
movq -0x10(%rbp), %rax
cmpq $0x0, 0x50(%rax)
jne 0x1dcb6
movq -0x10(%rbp), %rax
movq 0x50(%rax), %rdi
callq 0x3460
movq -0x850(%rbp), %rdi
callq 0x3620
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x50(%rax)
jmp 0x1dcba
jmp 0x1dcba
jmp 0x1dcbc
jmp 0x1dcbe
jmp 0x1dcc0
jmp 0x1dcc2
jmp 0x1dcc4
jmp 0x1dcc6
jmp 0x1dcc8
jmp 0x1dcca
jmp 0x1dccc
jmp 0x1dcce
jmp 0x1dcd0
jmp 0x1dcd2
jmp 0x1dcd4
jmp 0x1dcd6
jmp 0x1dcd8
jmp 0x1dcda
jmp 0x1dcdc
jmp 0x1d3a3
movq -0x28(%rbp), %rdi
callq 0x33a0
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x870, %rsp            # imm = 0x870
popq %rbp
retq
nopl (%rax)