// File: /workspace/github_c_makefile_star2_O2/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 $0x68, %rsp
movq %rdx, %rbx
movq %rsi, %r15
movq $0x1, 0x168(%rdx)
movl $0x400, 0x170(%rdx)     # imm = 0x400
andl $0x0, 0x178(%rdx)
movl %edi, %ebp
andq $0x0, 0x150(%rdx)
leaq 0x178(%rdx), %rax
movq %rax, 0x20(%rsp)
leaq 0x180(%rdx), %rax
movq %rax, 0x50(%rsp)
leaq 0x18c(%rdx), %rax
movq %rax, 0x48(%rsp)
xorpd %xmm0, %xmm0
movupd %xmm0, 0x158(%rdx)
andq $0x0, 0x190(%rdx)
movupd %xmm0, 0x180(%rdx)
movb $0x40, 0x1aa(%rdx)
movabsq $0x3e800000000, %rax    # imm = 0x3E800000000
movq %rax, 0x19c(%rdx)
movq $0x0, 0x28(%rsp)
xorl %edi, %edi
callq 0x4a82
movl $0x1000, 0x10(%rsp)     # imm = 0x1000
leaq 0x5d7b(%rip), %rax      # 0x9654
movq %rax, 0x38(%rsp)
leaq 0x5d74(%rip), %r12      # 0x9659
movq 0xb6ec(%rip), %r13      # 0xefd8
leaq 0x5cad(%rip), %r14      # 0x95a0
movq $0x0, 0x30(%rsp)
movl $0x0, 0x18(%rsp)
movl $0x0, 0x1c(%rsp)
movl $0x0, 0x14(%rsp)
movl %ebp, %edi
movq %r15, %rsi
movq %r12, %rdx
callq 0x22c0
leal -0x3f(%rax), %ecx
cmpl $0x17, %ecx
jbe 0x39a8
leal -0x63(%rax), %ecx
cmpl $0x14, %ecx
ja 0x39bc
leaq 0x5cc4(%rip), %rdx      # 0x9600
movslq (%rdx,%rcx,4), %rax
addq %rdx, %rax
jmpq *%rax
movq (%r13), %rdi
leaq 0x8(%rsp), %rsi
callq 0x20b0
movsd 0x5c2d(%rip), %xmm1     # 0x9588
ucomisd %xmm0, %xmm1
ja 0x3fec
movq 0x8(%rsp), %rax
cmpb $0x0, (%rax)
jne 0x3fec
cvttsd2si %xmm0, %rcx
movq %rcx, %rdx
subsd 0x5c0d(%rip), %xmm0     # 0x9590
cvttsd2si %xmm0, %rax
sarq $0x3f, %rdx
andq %rdx, %rax
orq %rcx, %rax
cmpq $-0x1, %rax
je 0x3fec
movq %rax, 0x160(%rbx)
jmp 0x3914
movslq (%r14,%rcx,4), %rax
addq %r14, %rax
jmpq *%rax
incl 0x16c(%rbx)
jmp 0x3914
cmpl $0x34, %eax
je 0x3d3f
cmpl $0x36, %eax
je 0x3d2f
cmpl $-0x1, %eax
jne 0x3914
jmp 0x3da1
movq (%r13), %r13
movq %r13, %rdi
leaq 0x5cd5(%rip), %rsi      # 0x96bf
callq 0x21a0
testl %eax, %eax
je 0x3d4f
movq %r13, %rdi
leaq 0x5cc2(%rip), %rsi      # 0x96c3
callq 0x21a0
testl %eax, %eax
je 0x3d6b
movq %r13, %rdi
leaq 0x5caf(%rip), %rsi      # 0x96c7
callq 0x21a0
testl %eax, %eax
jne 0x404d
callq 0x80d4
testl %eax, %eax
je 0x4043
movl $0x2, 0x154(%rbx)
pushq $0x2
popq %rax
movl %eax, 0x10(%rsp)
movq 0xb58e(%rip), %r13      # 0xefd8
jmp 0x3914
andl $0x0, 0x170(%rbx)
jmp 0x3914
movq 0x28(%rsp), %rax
incl %eax
movq %rax, 0x28(%rsp)
jmp 0x3914
movq (%r13), %rdi
leaq 0x8(%rsp), %rsi
callq 0x20b0
xorpd %xmm1, %xmm1
ucomisd %xmm0, %xmm1
ja 0x3fd2
movq 0x8(%rsp), %rax
cmpb $0x0, (%rax)
jne 0x3fd2
mulsd 0x5ad2(%rip), %xmm0     # 0x9570
ucomisd 0x5ad2(%rip), %xmm0     # 0x9578
ja 0x3fd2
cvttsd2si %xmm0, %eax
movl %eax, 0x194(%rbx)
jmp 0x3914
andl $0x0, 0x168(%rbx)
jmp 0x3914
movq (%r13), %rdi
leaq 0x8(%rsp), %rsi
callq 0x20b0
movsd 0x5aa3(%rip), %xmm1     # 0x9580
ucomisd %xmm0, %xmm1
ja 0x4020
ucomisd 0x5a89(%rip), %xmm0     # 0x9578
ja 0x4020
movq 0x8(%rsp), %rax
cmpb $0x0, (%rax)
jne 0x4020
cvttsd2si %xmm0, %eax
movl %eax, 0x190(%rbx)
jmp 0x3914
movq (%r13), %r13
movq %r13, %rdi
leaq 0x5bd1(%rip), %rsi      # 0x96f1
callq 0x21a0
testl %eax, %eax
je 0x3d58
movq %r13, %rdi
leaq 0x5bc1(%rip), %rsi      # 0x96f8
callq 0x21a0
testl %eax, %eax
jne 0x403a
movl $0x1, 0x150(%rbx)
movq 0xb483(%rip), %r13      # 0xefd8
jmp 0x3914
movq (%r13), %rdi
leaq 0x8(%rsp), %rsi
callq 0x20b0
movsd 0x5a10(%rip), %xmm1     # 0x9580
ucomisd %xmm0, %xmm1
ja 0x4013
ucomisd 0x59f6(%rip), %xmm0     # 0x9578
ja 0x4013
movq 0x8(%rsp), %rax
cmpb $0x0, (%rax)
jne 0x4013
cvttsd2si %xmm0, %eax
movl %eax, 0x188(%rbx)
jmp 0x3914
incl 0x1c(%rsp)
jmp 0x3914
movq 0x50(%rsp), %rax
incl (%rax)
jmp 0x3914
movq (%r13), %rax
movq %rax, 0x30(%rsp)
jmp 0x3914
movq (%r13), %rax
movq %rax, 0x38(%rsp)
jmp 0x3914
callq 0x48ce
leal 0x1(%rax), %edi
callq 0x4a82
jmp 0x3914
movq (%r13), %rdi
leaq 0x8(%rsp), %rsi
callq 0x20b0
xorpd %xmm1, %xmm1
ucomisd %xmm0, %xmm1
ja 0x3ff9
movq 0x8(%rsp), %rax
cmpb $0x0, (%rax)
jne 0x3ff9
mulsd 0x5956(%rip), %xmm0     # 0x9570
ucomisd 0x5956(%rip), %xmm0     # 0x9578
ja 0x3ff9
cvttsd2si %xmm0, %eax
movl %eax, 0x1a0(%rbx)
jmp 0x3914
movq (%r13), %rdi
leaq 0x8(%rsp), %rsi
callq 0x20b0
xorpd %xmm1, %xmm1
ucomisd %xmm0, %xmm1
ja 0x4006
movq 0x8(%rsp), %rax
cmpb $0x0, (%rax)
jne 0x4006
mulsd 0x5907(%rip), %xmm0     # 0x9570
ucomisd 0x5907(%rip), %xmm0     # 0x9578
ja 0x4006
cvttsd2si %xmm0, %eax
movl %eax, 0x184(%rbx)
pushq $0x1
popq %rax
movl %eax, 0x18(%rsp)
jmp 0x3914
movq (%r13), %rdi
leaq 0x8(%rsp), %rsi
pushq $0xa
popq %rdx
callq 0x21f0
leal -0x100(%rax), %ecx
cmpl $0xffffff01, %ecx       # imm = 0xFFFFFF01
jb 0x402d
movq 0x8(%rsp), %rcx
cmpb $0x0, (%rcx)
jne 0x402d
movb %al, 0x1aa(%rbx)
jmp 0x3914
movq (%r13), %rdi
leaq 0x8(%rsp), %rsi
callq 0x20b0
xorpd %xmm1, %xmm1
ucomisd %xmm0, %xmm1
jbe 0x3cf5
ucomisd 0x587f(%rip), %xmm0     # 0x9568
jne 0x3fdf
jp 0x3fdf
movq 0x8(%rsp), %rax
cmpb $0x0, (%rax)
jne 0x3fdf
mulsd 0x5865(%rip), %xmm0     # 0x9570
ucomisd 0x5865(%rip), %xmm0     # 0x9578
ja 0x3fdf
cvttsd2si %xmm0, %eax
movl %eax, 0x19c(%rbx)
pushq $0x1
popq %rax
movl %eax, 0x14(%rsp)
jmp 0x3914
movq 0x20(%rsp), %rax
movl $0x6, (%rax)
jmp 0x3914
movq 0x20(%rsp), %rax
movl $0x4, (%rax)
jmp 0x3914
andl $0x0, 0x154(%rbx)
jmp 0x3d7e
andl $0x0, 0x150(%rbx)
movq 0xb272(%rip), %r13      # 0xefd8
jmp 0x3914
callq 0x80d8
testl %eax, %eax
je 0x3d92
movl $0x1, 0x154(%rbx)
movl $0x1000, 0x10(%rsp)     # imm = 0x1000
movq 0xb24b(%rip), %r13      # 0xefd8
jmp 0x3914
movq 0xb23f(%rip), %rax      # 0xefd8
movq (%rax), %r13
jmp 0x3a0e
cmpl $0x1, 0x1c(%rsp)
je 0x406b
movq 0xb21d(%rip), %rax      # 0xefd0
movslq (%rax), %rcx
movq 0x20(%rsp), %r13
movq 0x28(%rsp), %rax
jle 0x3dd9
cmpl $0x0, 0x150(%rbx)
jne 0x409a
movl $0x3, 0x150(%rbx)
testl %eax, %eax
jle 0x3e00
cmpl $0x1, %eax
jne 0x3e22
cmpl $0x0, 0x1a0(%rbx)
jne 0x3e22
leaq 0x5aa8(%rip), %rdi      # 0x989a
xorl %esi, %esi
xorl %eax, %eax
callq 0x2110
jmp 0x405e
movl 0x1a0(%rbx), %esi
cmpl $0x3e7, %esi            # imm = 0x3E7
jle 0x40ac
movzbl 0x1aa(%rbx), %esi
cmpl $0x3f, %esi
jbe 0x40ba
cmpl $0x2, 0x154(%rbx)
jne 0x3e3e
cmpl $0x6, (%r13)
je 0x40a3
movl $0x4, (%r13)
movl 0x1a0(%rbx), %esi
cmpl $0x0, 0x14(%rsp)
jne 0x3e62
leal (%rsi,%rsi,2), %eax
cmpl $0x14e, %esi            # imm = 0x14E
movl $0x3e8, %edx            # imm = 0x3E8
cmovgel %eax, %edx
movl %edx, 0x19c(%rbx)
testl %esi, %esi
je 0x3e81
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 0x3e83
xorl %eax, %eax
subl %ecx, %ebp
leaq (%r15,%rcx,8), %rdx
movl %eax, 0x170(%rbx)
cmpl $0x0, 0x18(%rsp)
jne 0x3e9c
movl %esi, 0x184(%rbx)
andq $0x0, 0x140(%rbx)
leaq 0x140(%rbx), %r14
movq %r14, 0x148(%rbx)
movl 0x178(%rbx), %r8d
movq %r14, %rdi
movl %ebp, %esi
movq 0x38(%rsp), %r15
movq %r15, %rcx
callq 0x3463
testl %eax, %eax
jle 0x4077
movl (%r13), %esi
movq %r14, %rdi
movq 0x30(%rsp), %r12
movq %r12, %rdx
movq %r15, %rcx
callq 0x35a6
movl %eax, (%r13)
leaq 0x58(%rsp), %rdx
leaq 0x40(%rsp), %rcx
leaq 0x60(%rsp), %r8
movq %r14, %rdi
movq %r13, %rsi
movl 0x10(%rsp), %r9d
callq 0x2e04
testl %eax, %eax
js 0x4080
movl 0x178(%rbx), %esi
movq %r14, %rdi
callq 0x2d06
movq 0x60(%rsp), %rsi
movq 0x40(%rsp), %rdx
movl 0x178(%rbx), %ecx
movq %r14, %rdi
movq %rbx, %r8
movq 0x48(%rsp), %r9
callq 0x309f
movq 0x40(%rsp), %r14
movq 0x8(%r14), %rdi
callq 0x2320
movq %rax, 0x158(%rbx)
testq %rax, %rax
je 0x4089
cmpl $0x2, 0x154(%rbx)
jae 0x3f84
movl 0x178(%rbx), %edi
leaq 0x98(%rbx), %rsi
movq %r12, %rdx
movq %r15, %rcx
callq 0x332e
jmp 0x3fa4
jne 0x3fa4
leaq 0x98(%rbx), %rdi
movq %r12, %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x31d4
cmpl $-0x1, %eax
je 0x40cd
leaq 0x98(%rbx), %rdi
callq 0x2bae
movw %ax, 0x1a8(%rbx)
movq 0x58(%rsp), %rdi
callq 0x2290
xorl %eax, %eax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%r13), %rsi
leaq 0x57cf(%rip), %rdi      # 0x97ac
jmp 0x4057
movq (%r13), %rsi
leaq 0x57e4(%rip), %rdi      # 0x97ce
jmp 0x4057
movq (%r13), %rsi
leaq 0x5684(%rip), %rdi      # 0x967b
jmp 0x4057
movq (%r13), %rsi
leaq 0x5699(%rip), %rdi      # 0x969d
jmp 0x4057
movq (%r13), %rsi
leaq 0x5735(%rip), %rdi      # 0x9746
jmp 0x4057
movq (%r13), %rsi
leaq 0x5706(%rip), %rdi      # 0x9724
jmp 0x4057
movq (%r13), %rsi
leaq 0x573d(%rip), %rdi      # 0x9768
jmp 0x4057
movq (%r13), %rsi
leaq 0x5752(%rip), %rdi      # 0x978a
jmp 0x4057
leaq 0x56be(%rip), %rdi      # 0x96ff
jmp 0x4054
movq 0xaf8e(%rip), %rax      # 0xefd8
movq (%rax), %r13
leaq 0x5678(%rip), %rdi      # 0x96cc
movq %r13, %rsi
xorl %eax, %eax
callq 0x2110
callq 0x46d2
pushq $0x1
popq %rdi
callq 0x22f0
callq 0x4712
xorl %edi, %edi
callq 0x22f0
leaq 0x58a7(%rip), %rdi      # 0x9925
jmp 0x40d4
leaq 0x58d0(%rip), %rsi      # 0x9957
jmp 0x4090
leaq 0x5160(%rip), %rsi      # 0x91f0
pushq $0x1
popq %rdi
xorl %eax, %eax
callq 0x20f0
leaq 0x574f(%rip), %rdi      # 0x97f0
jmp 0x40d4
leaq 0x582b(%rip), %rdi      # 0x98d5
jmp 0x40d4
leaq 0x5777(%rip), %rdi      # 0x982a
movl $0x3e8, %edx            # imm = 0x3E8
jmp 0x40c4
leaq 0x57a4(%rip), %rdi      # 0x9865
pushq $0x40
popq %rdx
xorl %eax, %eax
callq 0x2110
jmp 0x405e
leaq 0x58a9(%rip), %rdi      # 0x997d
xorl %eax, %eax
callq 0x2110
jmp 0x405e
nopl (%rax)