// File: /workspace/github_c_makefile_star2_O1/jfriesse[P]omping/cli.c
// Function: cli_parse
int
cli_parse(int argc, char * const argv[], struct omping_instance *instance)
{
	struct ai_item *ai_item;
	struct ifaddrs *ifa_list, *ifa_local;
	char *ep;
	char *mcast_addr_s;
	const char *port_s;
	double numd;
	int ch;
	int force;
	int no_ai;
	int num;
	int res;
	int rate_limit_time_set;
	int show_ver;
	int wait_for_finish_time_set;
	unsigned int ifa_flags;

	instance->auto_exit = 1;
	instance->cont_stat = 0;
	instance->dup_buf_items = MIN_DUP_BUF_ITEMS;
	instance->ip_ver = 0;
	instance->local_ifname = NULL;
	mcast_addr_s = NULL;
	instance->op_mode = OMPING_OP_MODE_NORMAL;
	instance->quiet = 0;
	instance->send_count_queries = 0;
	instance->sndbuf_size = 0;
	instance->single_addr = 0;
	instance->rate_limit_time = 0;
	instance->rcvbuf_size = 0;
	instance->timeout_time = 0;
	instance->ttl = DEFAULT_TTL;
	instance->transport_method = SF_TM_ASM;
	instance->wait_time = DEFAULT_WAIT_TIME;
	instance->wait_for_finish_time = 0;

	force = 0;
	ifa_flags = IFF_MULTICAST;
	port_s = DEFAULT_PORT_S;
	rate_limit_time_set = 0;
	show_ver = 0;
	wait_for_finish_time_set = 0;

	logging_set_verbose(0);

	while ((ch = getopt(argc, argv, "46CDEFqVvc:i:M:m:O:p:R:r:S:T:t:w:")) != -1) {
		switch (ch) {
		case '4':
			instance->ip_ver = 4;
			break;
		case '6':
			instance->ip_ver = 6;
			break;
		case 'C':
			instance->cont_stat++;
			break;
		case 'D':
			instance->dup_buf_items = 0;
			break;
		case 'E':
			instance->auto_exit = 0;
			break;
		case 'F':
			force++;
			break;
		case 'q':
			instance->quiet++;
			break;
		case 'V':
			show_ver++;
			break;
		case 'v':
			logging_set_verbose(logging_get_verbose() + 1);
			break;
		case 'c':
			numd = strtod(optarg, &ep);
			if (numd < 1 || *ep != '\0' || (uint64_t)numd >= ((uint64_t)~0)) {
				warnx("illegal number, -c argument -- %s", optarg);
				goto error_usage_exit;
			}
			instance->send_count_queries= (uint64_t)numd;
			break;
		case 'i':
			numd = strtod(optarg, &ep);
			if (numd < 0 || *ep != '\0' || numd * 1000 > INT32_MAX) {
				warnx("illegal number, -i argument -- %s", optarg);
				goto error_usage_exit;
			}
			instance->wait_time = (int)(numd * 1000.0);
			break;
		case 'M':
			if (strcmp(optarg, "asm") == 0) {
				instance->transport_method = SF_TM_ASM;
				ifa_flags = IFF_MULTICAST;
			} else if (strcmp(optarg, "ssm") == 0 && sf_is_ssm_supported()) {
				instance->transport_method = SF_TM_SSM;
				ifa_flags = IFF_MULTICAST;
			} else if (strcmp(optarg, "ipbc") == 0 && sf_is_ipbc_supported()) {
				instance->transport_method = SF_TM_IPBC;
				ifa_flags = IFF_BROADCAST;
			} else {
				warnx("illegal parameter, -M argument -- %s", optarg);
				goto error_usage_exit;
			}
			break;
		case 'm':
			mcast_addr_s = optarg;
			break;
		case 'O':
			if (strcmp(optarg, "normal") == 0) {
				instance->op_mode = OMPING_OP_MODE_NORMAL;
			/*
			 * Temporarily disabled
			 *
			} else if (strcmp(optarg, "server") == 0) {
				*op_mode = OMPING_OP_MODE_SERVER;
			*/
			} else if (strcmp(optarg, "client") == 0) {
				instance->op_mode = OMPING_OP_MODE_CLIENT;
			} else {
				warnx("illegal parameter, -O argument -- %s", optarg);
				goto error_usage_exit;
			}
			break;
		case 'p':
			port_s = optarg;
			break;
		case 'R':
			numd = strtod(optarg, &ep);
			if (numd < MIN_RCVBUF_SIZE || *ep != '\0' || numd > INT32_MAX) {
				warnx("illegal number, -R argument -- %s", optarg);
				goto error_usage_exit;
			}
			instance->rcvbuf_size = (int)numd;
			break;
		case 'r':
			numd = strtod(optarg, &ep);
			if (numd < 0 || *ep != '\0' || numd * 1000 > INT32_MAX) {
				warnx("illegal number, -r argument -- %s", optarg);
				goto error_usage_exit;
			}
			instance->rate_limit_time = (int)(numd * 1000.0);
			rate_limit_time_set = 1;
			break;
		case 'S':
			numd = strtod(optarg, &ep);
			if (numd < MIN_SNDBUF_SIZE || *ep != '\0' || numd > INT32_MAX) {
				warnx("illegal number, -S argument -- %s", optarg);
				goto error_usage_exit;
			}
			instance->sndbuf_size = (int)numd;
			break;
		case 't':
			num = strtol(optarg, &ep, 10);
			if (num <= 0 || num > ((uint8_t)~0) || *ep != '\0') {
				warnx("illegal number, -t argument -- %s", optarg);
				goto error_usage_exit;
			}
			instance->ttl = num;
			break;
		case 'T':
			numd = strtod(optarg, &ep);
			if (numd < 0 || *ep != '\0' || numd * 1000 > INT32_MAX) {
				warnx("illegal number, -T argument -- %s", optarg);
				goto error_usage_exit;
			}
			instance->timeout_time = (int)(numd * 1000.0);
			break;
		case 'w':
			numd = strtod(optarg, &ep);
			if ((numd < 0 && numd != -1) || *ep != '\0' || numd * 1000 > INT32_MAX) {
				warnx("illegal number, -w argument -- %s", optarg);
				goto error_usage_exit;
			}
			wait_for_finish_time_set = 1;
			instance->wait_for_finish_time = (int)(numd * 1000.0);
			break;
		case '?':
			goto error_usage_exit;
			/* NOTREACHED */
			break;

		}
	}

	argc -= optind;
	argv += optind;

	/*
	 * Param checking
	 */
	if (show_ver == 1) {
		cliprint_version();
		exit(0);
	}

	if (show_ver > 1) {
		if (instance->op_mode != OMPING_OP_MODE_NORMAL) {
			warnx("op_mode must be set to normal for remote version display.");
			goto error_usage_exit;
		}

		instance->op_mode = OMPING_OP_MODE_SHOW_VERSION;
	}

	if (force < 1) {
		if (instance->wait_time < DEFAULT_WAIT_TIME) {
			warnx("illegal nmber, -i argument %u ms < %u ms. Use -F to force.",
			    instance->wait_time, DEFAULT_WAIT_TIME);
			goto error_usage_exit;
		}

		if (instance->ttl < DEFAULT_TTL) {
			warnx("illegal nmber, -t argument %u < %u. Use -F to force.",
			    instance->ttl, DEFAULT_TTL);
			goto error_usage_exit;
		}
	}

	if (force < 2) {
		if (instance->wait_time == 0) {
			warnx("illegal nmber, -i argument %u ms < 1 ms. Use -FF to force.",
			    instance->wait_time);
			goto error_usage_exit;
		}
	}

	if (instance->transport_method == SF_TM_IPBC) {
		if (instance->ip_ver == 6) {
			warnx("illegal transport method, -M argument ipbc is mutually exclusive "
			    "with -6 option");
			goto error_usage_exit;
		}

		instance->ip_ver = 4;
	}

	/*
	 * Computed params
	 */
	if (!wait_for_finish_time_set) {
		instance->wait_for_finish_time = instance->wait_time * DEFAULT_WFF_TIME_MUL;
		if (instance->wait_for_finish_time < DEFAULT_WAIT_TIME) {
			instance->wait_for_finish_time = DEFAULT_WAIT_TIME;
		}
	}

	if (instance->wait_time == 0) {
		instance->dup_buf_items = 0;
	} else {
		/*
		 * + 1 is for eliminate trucate errors
		 */
		instance->dup_buf_items = ((DUP_BUF_SECS * 1000) / instance->wait_time) + 1;

		if (instance->dup_buf_items < MIN_DUP_BUF_ITEMS) {
			instance->dup_buf_items = MIN_DUP_BUF_ITEMS;
		}
	}

	if (!rate_limit_time_set) {
		instance->rate_limit_time = instance->wait_time;

	}

	TAILQ_INIT(&instance->remote_addrs);

	no_ai = aii_parse_remote_addrs(&instance->remote_addrs, argc, argv, port_s,
	    instance->ip_ver);
	if (no_ai < 1) {
		warnx("at least one remote addresses should be specified");
		goto error_usage_exit;
	}

	instance->ip_ver = aii_return_ip_ver(&instance->remote_addrs, instance->ip_ver,
	    mcast_addr_s, port_s);

	if (aii_find_local(&instance->remote_addrs, &instance->ip_ver, &ifa_list, &ifa_local,
	    &ai_item, ifa_flags) < 0) {
		errx(1, "Can't find local address in arguments");
	}

	/*
	 * Change aii_list to struct of sockaddr_storage(s)
	 */
	aii_list_ai_to_sa(&instance->remote_addrs, instance->ip_ver);

	/*
	 * Find local addr and copy that. Also remove that from list
	 */
	aii_ifa_local_to_ai(&instance->remote_addrs, ai_item, ifa_local, instance->ip_ver,
	    &instance->local_addr, &instance->single_addr);

	/*
	 * Store local ifname
	 */
	instance->local_ifname = strdup(ifa_local->ifa_name);
	if (instance->local_ifname == NULL) {
		errx(1, "Can't alloc memory");
	}

	switch (instance->transport_method) {
	case SF_TM_ASM:
	case SF_TM_SSM:
		/*
		 * Convert mcast addr to something useful
		 */
		aii_mcast_to_ai(instance->ip_ver, &instance->mcast_addr, mcast_addr_s, port_s);
		break;
	case SF_TM_IPBC:
		/*
		 * Convert broadcast addr to something useful
		 */
		res = aii_ipbc_to_ai(&instance->mcast_addr, mcast_addr_s, port_s, ifa_local);
		if (res == -1) {
			warnx("illegal broadcast address, -M argument doesn't match with local"
			    " broadcast address");
			goto error_usage_exit;
		}
		break;
	}

	/*
	 * Assign port from mcast_addr
	 */
	instance->port = af_sa_port(AF_CAST_SA(&instance->mcast_addr.sas));

	freeifaddrs(ifa_list);

	return (0);

error_usage_exit:
	cliprint_usage();
	exit(1);
	/* NOTREACHED */
	return (-1);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rdx, %rbx
movq %rsi, %r15
movl %edi, %ebp
movq $0x1, 0x168(%rdx)
movl $0x400, 0x170(%rdx)     # imm = 0x400
leaq 0x178(%rdx), %r13
movl $0x0, 0x178(%rdx)
xorl %ecx, %ecx
movq %rcx, 0x150(%rdx)
leaq 0x180(%rdx), %rax
movq %rax, 0x40(%rsp)
leaq 0x18c(%rdx), %rax
movq %rax, 0x38(%rsp)
xorpd %xmm0, %xmm0
movupd %xmm0, 0x158(%rdx)
movupd %xmm0, 0x180(%rdx)
movq $0x0, 0x18(%rsp)
movq %rcx, 0x190(%rdx)
movb $0x40, 0x1aa(%rdx)
movabsq $0x3e800000000, %rax    # imm = 0x3E800000000
movq %rax, 0x19c(%rdx)
xorl %edi, %edi
callq 0x4bc4
movl $0x1000, 0x8(%rsp)      # imm = 0x1000
leaq 0x6c4d(%rip), %rax      # 0xa654
movq %rax, 0x28(%rsp)
leaq 0x6c46(%rip), %r12      # 0xa659
movq 0xb5be(%rip), %r14      # 0xefd8
movq $0x0, 0x20(%rsp)
movl $0x0, 0x10(%rsp)
movl $0x0, 0x14(%rsp)
movl $0x0, 0xc(%rsp)
movl %ebp, %edi
movq %r15, %rsi
movq %r12, %rdx
callq 0x22b0
cmpl $0x3e, %eax
jg 0x3a65
cmpl $0x34, %eax
je 0x3a85
cmpl $0x36, %eax
jne 0x3b06
movl $0x6, (%r13)
jmp 0x3a3b
leal -0x3f(%rax), %ecx
cmpl $0x17, %ecx
ja 0x3a8f
leaq 0x6b2c(%rip), %rdx      # 0xa5a0
movslq (%rdx,%rcx,4), %rax
addq %rdx, %rax
jmpq *%rax
incl 0x16c(%rbx)
jmp 0x3a3b
movl $0x4, (%r13)
jmp 0x3a3b
addl $-0x63, %eax
cmpl $0x14, %eax
ja 0x3a3b
leaq 0x6b62(%rip), %rcx      # 0xa600
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq (%r14), %rdi
movq %rsp, %rsi
callq 0x20b0
movsd 0x6ace(%rip), %xmm1     # 0xa588
ucomisd %xmm0, %xmm1
ja 0x40f2
movq (%rsp), %rax
cmpb $0x0, (%rax)
jne 0x40f2
cvttsd2si %xmm0, %rcx
movq %rcx, %rdx
subsd 0x6aaf(%rip), %xmm0     # 0xa590
cvttsd2si %xmm0, %rax
sarq $0x3f, %rdx
andq %rdx, %rax
orq %rcx, %rax
cmpq $-0x1, %rax
je 0x40f2
movq %rax, 0x160(%rbx)
jmp 0x3a3b
cmpl $-0x1, %eax
jne 0x3a3b
jmp 0x3e9f
movq (%r14), %rdi
movq %rsp, %rsi
callq 0x20b0
movsd 0x6a59(%rip), %xmm1     # 0xa580
ucomisd %xmm0, %xmm1
ja 0x410a
ucomisd 0x6a3f(%rip), %xmm0     # 0xa578
ja 0x410a
movq (%rsp), %rax
cmpb $0x0, (%rax)
jne 0x410a
cvttsd2si %xmm0, %eax
movl %eax, 0x188(%rbx)
jmp 0x3a3b
movq (%r14), %r14
movq %r14, %rdi
leaq 0x6b89(%rip), %rsi      # 0xa6f1
callq 0x2190
testl %eax, %eax
je 0x3e52
movq %r14, %rdi
leaq 0x6b79(%rip), %rsi      # 0xa6f8
callq 0x2190
testl %eax, %eax
jne 0x412e
movl $0x1, 0x150(%rbx)
movq 0xb43b(%rip), %r14      # 0xefd8
jmp 0x3a3b
movq (%r14), %rdi
movq %rsp, %rsi
callq 0x20b0
xorpd %xmm1, %xmm1
ucomisd %xmm0, %xmm1
ja 0x40c2
movq (%rsp), %rax
cmpb $0x0, (%rax)
jne 0x40c2
mulsd 0x69a0(%rip), %xmm0     # 0xa570
ucomisd 0x69a0(%rip), %xmm0     # 0xa578
ja 0x40c2
cvttsd2si %xmm0, %eax
movl %eax, 0x194(%rbx)
jmp 0x3a3b
movl $0x0, 0x170(%rbx)
jmp 0x3a3b
movq (%r14), %r14
movq %r14, %rdi
leaq 0x6ab6(%rip), %rsi      # 0xa6bf
callq 0x2190
testl %eax, %eax
je 0x3e68
movq %r14, %rdi
leaq 0x6aa3(%rip), %rsi      # 0xa6c3
callq 0x2190
testl %eax, %eax
je 0x3e74
movq 0xb3a4(%rip), %r14      # 0xefd8
movq (%r14), %rdi
leaq 0x6a89(%rip), %rsi      # 0xa6c7
callq 0x2190
testl %eax, %eax
jne 0x4122
callq 0x85db
testl %eax, %eax
je 0x4122
movl $0x2, 0x154(%rbx)
movl $0x2, 0x8(%rsp)
jmp 0x3a3b
movq (%r14), %rdi
movq %rsp, %rsi
callq 0x20b0
movsd 0x68fe(%rip), %xmm1     # 0xa580
ucomisd %xmm0, %xmm1
ja 0x40fe
ucomisd 0x68e4(%rip), %xmm0     # 0xa578
ja 0x40fe
movq (%rsp), %rax
cmpb $0x0, (%rax)
jne 0x40fe
cvttsd2si %xmm0, %eax
movl %eax, 0x190(%rbx)
jmp 0x3a3b
movq 0x18(%rsp), %rax
incl %eax
movq %rax, 0x18(%rsp)
jmp 0x3a3b
movl $0x0, 0x168(%rbx)
jmp 0x3a3b
incl 0x14(%rsp)
jmp 0x3a3b
movq 0x40(%rsp), %rax
incl (%rax)
jmp 0x3a3b
movq (%r14), %rax
movq %rax, 0x20(%rsp)
jmp 0x3a3b
movq (%r14), %rax
movq %rax, 0x28(%rsp)
jmp 0x3a3b
callq 0x4a07
leal 0x1(%rax), %edi
callq 0x4bc4
jmp 0x3a3b
movq (%r14), %rdi
movq %rsp, %rsi
callq 0x20b0
xorpd %xmm1, %xmm1
ucomisd %xmm0, %xmm1
ja 0x40e6
movq (%rsp), %rax
cmpb $0x0, (%rax)
jne 0x40e6
mulsd 0x682b(%rip), %xmm0     # 0xa570
ucomisd 0x682b(%rip), %xmm0     # 0xa578
ja 0x40e6
cvttsd2si %xmm0, %eax
movl %eax, 0x1a0(%rbx)
jmp 0x3a3b
movq (%r14), %rdi
movq %rsp, %rsi
callq 0x20b0
xorpd %xmm1, %xmm1
ucomisd %xmm0, %xmm1
ja 0x40da
movq (%rsp), %rax
cmpb $0x0, (%rax)
jne 0x40da
mulsd 0x67e0(%rip), %xmm0     # 0xa570
ucomisd 0x67e0(%rip), %xmm0     # 0xa578
ja 0x40da
cvttsd2si %xmm0, %eax
movl %eax, 0x184(%rbx)
movl $0x1, 0x10(%rsp)
jmp 0x3a3b
movq (%r14), %rdi
movq %rsp, %rsi
movl $0xa, %edx
callq 0x21e0
leal -0x100(%rax), %ecx
cmpl $0xffffff01, %ecx       # imm = 0xFFFFFF01
jb 0x4116
movq (%rsp), %rcx
cmpb $0x0, (%rcx)
jne 0x4116
movb %al, 0x1aa(%rbx)
jmp 0x3a3b
movq (%r14), %rdi
movq %rsp, %rsi
callq 0x20b0
xorpd %xmm1, %xmm1
ucomisd %xmm0, %xmm1
jbe 0x3e18
ucomisd 0x675c(%rip), %xmm0     # 0xa568
jne 0x40ce
jp 0x40ce
movq (%rsp), %rax
cmpb $0x0, (%rax)
jne 0x40ce
mulsd 0x6743(%rip), %xmm0     # 0xa570
ucomisd 0x6743(%rip), %xmm0     # 0xa578
ja 0x40ce
cvttsd2si %xmm0, %eax
movl %eax, 0x19c(%rbx)
movl $0x1, 0xc(%rsp)
jmp 0x3a3b
movl $0x0, 0x150(%rbx)
movq 0xb175(%rip), %r14      # 0xefd8
jmp 0x3a3b
movl $0x0, 0x154(%rbx)
jmp 0x3e8b
callq 0x85e1
testl %eax, %eax
je 0x3c2d
movl $0x1, 0x154(%rbx)
movl $0x1000, 0x8(%rsp)      # imm = 0x1000
movq 0xb13e(%rip), %r14      # 0xefd8
jmp 0x3a3b
cmpl $0x1, 0x14(%rsp)
je 0x414e
movq 0xb11f(%rip), %rax      # 0xefd0
movslq (%rax), %rcx
movq 0x18(%rsp), %rax
jle 0x3ed2
cmpl $0x0, 0x150(%rbx)
jne 0x417f
movl $0x3, 0x150(%rbx)
testl %eax, %eax
jg 0x3ef8
movl 0x1a0(%rbx), %esi
cmpl $0x3e7, %esi            # imm = 0x3E7
jle 0x41a3
movzbl 0x1aa(%rbx), %esi
cmpl $0x3f, %esi
jbe 0x41b1
cmpl $0x1, %eax
jg 0x3f0a
cmpl $0x0, 0x1a0(%rbx)
je 0x4188
cmpl $0x2, 0x154(%rbx)
jne 0x3f26
cmpl $0x6, (%r13)
je 0x419a
movl $0x4, (%r13)
cmpl $0x0, 0xc(%rsp)
jne 0x3f49
movl 0x1a0(%rbx), %eax
leal (%rax,%rax,2), %edx
cmpl $0x14e, %eax            # imm = 0x14E
movl $0x3e8, %eax            # imm = 0x3E8
cmovgel %edx, %eax
movl %eax, 0x19c(%rbx)
movl 0x1a0(%rbx), %esi
testl %esi, %esi
je 0x3f6e
movl $0x1d4c0, %eax          # imm = 0x1D4C0
xorl %edx, %edx
idivl %esi
leal 0x1(%rax), %edx
cmpl $0x3ff, %eax            # imm = 0x3FF
movl $0x400, %eax            # imm = 0x400
cmovgel %edx, %eax
jmp 0x3f70
xorl %eax, %eax
subl %ecx, %ebp
leaq (%r15,%rcx,8), %rdx
movl %eax, 0x170(%rbx)
cmpl $0x0, 0x10(%rsp)
jne 0x3f89
movl %esi, 0x184(%rbx)
leaq 0x140(%rbx), %r14
movq $0x0, 0x140(%rbx)
movq %r14, 0x148(%rbx)
movl 0x178(%rbx), %r8d
movq %r14, %rdi
movl %ebp, %esi
movq 0x28(%rsp), %r15
movq %r15, %rcx
callq 0x352e
testl %eax, %eax
jle 0x415a
movl (%r13), %esi
movq %r14, %rdi
movq 0x20(%rsp), %r12
movq %r12, %rdx
movq %r15, %rcx
callq 0x36a4
movl %eax, (%r13)
leaq 0x48(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %rdi
movq %r13, %rsi
movl 0x8(%rsp), %r9d
callq 0x2e96
testl %eax, %eax
js 0x4163
movl 0x178(%rbx), %esi
movq %r14, %rdi
callq 0x2d94
movq 0x50(%rsp), %rsi
movq 0x30(%rsp), %rdx
movl 0x178(%rbx), %ecx
movq %r14, %rdi
movq %rbx, %r8
movq 0x38(%rsp), %r9
callq 0x3143
movq 0x30(%rsp), %r14
movq 0x8(%r14), %rdi
callq 0x2310
movq %rax, 0x158(%rbx)
testq %rax, %rax
je 0x416c
cmpl $0x2, 0x154(%rbx)
jae 0x4074
movl 0x178(%rbx), %edi
leaq 0x98(%rbx), %rsi
movq %r12, %rdx
movq %r15, %rcx
callq 0x33ee
jmp 0x4094
jne 0x4094
leaq 0x98(%rbx), %rdi
movq %r12, %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x3285
cmpl $-0x1, %eax
je 0x41c9
leaq 0x98(%rbx), %rdi
callq 0x2c20
movw %ax, 0x1a8(%rbx)
movq 0x48(%rsp), %rdi
callq 0x2280
xorl %eax, %eax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%r14), %rsi
leaq 0x66e0(%rip), %rdi      # 0xa7ac
jmp 0x4138
movq (%r14), %rsi
leaq 0x66f6(%rip), %rdi      # 0xa7ce
jmp 0x4138
movq (%r14), %rsi
leaq 0x6662(%rip), %rdi      # 0xa746
jmp 0x4138
movq (%r14), %rsi
leaq 0x65ad(%rip), %rdi      # 0xa69d
jmp 0x4138
movq (%r14), %rsi
leaq 0x657f(%rip), %rdi      # 0xa67b
jmp 0x4138
movq (%r14), %rsi
leaq 0x6660(%rip), %rdi      # 0xa768
jmp 0x4138
movq (%r14), %rsi
leaq 0x6610(%rip), %rdi      # 0xa724
jmp 0x4138
movq (%r14), %rsi
leaq 0x666a(%rip), %rdi      # 0xa78a
jmp 0x4138
movq (%r14), %rsi
leaq 0x65a0(%rip), %rdi      # 0xa6cc
jmp 0x4138
leaq 0x65ca(%rip), %rdi      # 0xa6ff
movq %r14, %rsi
xorl %eax, %eax
callq 0x2110
callq 0x47ea
movl $0x1, %edi
callq 0x22e0
callq 0x482a
xorl %edi, %edi
callq 0x22e0
leaq 0x67c4(%rip), %rdi      # 0xa925
jmp 0x41d0
leaq 0x67ed(%rip), %rsi      # 0xa957
jmp 0x4173
leaq 0x607d(%rip), %rsi      # 0xa1f0
movl $0x1, %edi
xorl %eax, %eax
callq 0x20f0
leaq 0x666a(%rip), %rdi      # 0xa7f0
jmp 0x41d0
leaq 0x670b(%rip), %rdi      # 0xa89a
xorl %esi, %esi
xorl %eax, %eax
callq 0x2110
jmp 0x413f
leaq 0x6734(%rip), %rdi      # 0xa8d5
jmp 0x41d0
leaq 0x6680(%rip), %rdi      # 0xa82a
movl $0x3e8, %edx            # imm = 0x3E8
jmp 0x41bd
leaq 0x66ad(%rip), %rdi      # 0xa865
movl $0x40, %edx
xorl %eax, %eax
callq 0x2110
jmp 0x413f
leaq 0x67ad(%rip), %rdi      # 0xa97d
xorl %eax, %eax
callq 0x2110
jmp 0x413f