// File: /workspace/github_c_makefile_star2_O0/DReichLab[P]adna/sam.c
// Function: sam_parse1
int sam_parse1(kstring_t *s, bam_hdr_t *h, bam1_t *b)
{
#define _read_token(_p) (_p); for (; *(_p) && *(_p) != '\t'; ++(_p)); if (*(_p) != '\t') goto err_ret; *(_p)++ = 0
#define _read_token_aux(_p) (_p); for (; *(_p) && *(_p) != '\t'; ++(_p)); *(_p)++ = 0 // this is different in that it does not test *(_p)=='\t'
#define _get_mem(type_t, _x, _s, _l) ks_resize((_s), (_s)->l + (_l)); *(_x) = (type_t*)((_s)->s + (_s)->l); (_s)->l += (_l)
#define _parse_err(cond, msg) do { if ((cond) && hts_verbose >= 1) { fprintf(stderr, "[E::%s] " msg "\n", __func__); goto err_ret; } } while (0)
#define _parse_warn(cond, msg) if ((cond) && hts_verbose >= 2) fprintf(stderr, "[W::%s] " msg "\n", __func__)

	uint8_t *t;
	char *p = s->s, *q;
	int i;
	kstring_t str;
	bam1_core_t *c = &b->core;

	str.l = b->l_data = 0;
	str.s = (char*)b->data; str.m = b->m_data;
	memset(c, 0, 32);
	if (h->cigar_tab == 0) {
		h->cigar_tab = (uint8_t*)calloc(128, 1);
		for (i = 0; BAM_CIGAR_STR[i]; ++i)
			h->cigar_tab[(int)BAM_CIGAR_STR[i]] = i;
	}
	// qname
	q = _read_token(p);
	kputsn_(q, p - q, &str);
	c->l_qname = p - q;
	// flag
	c->flag = strtol(p, &p, 0);
	if (*p++ != '\t') goto err_ret; // malformated flag
	// chr
	q = _read_token(p);
	if (strcmp(q, "*")) {
		_parse_err(h->n_targets == 0, "missing SAM header");
		c->tid = bam_name2id(h, q);
		_parse_warn(c->tid < 0, "urecognized reference name; treated as unmapped");
	} else c->tid = -1;
	// pos
	c->pos = strtol(p, &p, 10) - 1;
	if (*p++ != '\t') goto err_ret;
	if (c->pos < 0 && c->tid >= 0) {
		_parse_warn(1, "mapped query cannot have zero coordinate; treated as unmapped");
		c->tid = -1;
	}
	if (c->tid < 0) c->flag |= BAM_FUNMAP;
	// mapq
	c->qual = strtol(p, &p, 10);
	if (*p++ != '\t') goto err_ret;
	// cigar
	if (*p != '*') {
		uint32_t *cigar;
		for (q = p, c->n_cigar = 0; *q && *q != '\t'; ++q)
			if (!isdigit(*q)) ++c->n_cigar;
		_get_mem(uint32_t, &cigar, &str, c->n_cigar<<2);
		for (i = 0, q = p; i < c->n_cigar; ++i, ++q) {
			int op;
			cigar[i] = strtol(q, &q, 10)<<BAM_CIGAR_SHIFT;
			op = (uint8_t)*q >= 128? -1 : h->cigar_tab[(int)*q];
			_parse_err(op < 0, "urecognized CIGAR operator");
			cigar[i] |= op;
		}
		p = q + 1;
		i = bam_cigar2rlen(c->n_cigar, cigar);
	} else {
		_parse_warn(!(c->flag&BAM_FUNMAP), "mapped query must have a CIGAR; treated as unmapped");
		c->flag |= BAM_FUNMAP;
		q = _read_token(p);
		i = 1;
	}
	c->bin = hts_reg2bin(c->pos, c->pos + i, 14, 5);
	// mate chr
	q = _read_token(p);
	if (strcmp(q, "=") == 0) c->mtid = c->tid;
	else if (strcmp(q, "*") == 0) c->mtid = -1;
	else c->mtid = bam_name2id(h, q);
	// mpos
	c->mpos = strtol(p, &p, 10) - 1;
	if (*p++ != '\t') goto err_ret;
	if (c->mpos < 0 && c->mtid >= 0) {
		_parse_warn(1, "mapped mate cannot have zero coordinate; treated as unmapped");
		c->mtid = -1;
	}
	// tlen
	c->isize = strtol(p, &p, 10);
	if (*p++ != '\t') goto err_ret;
	// seq
	q = _read_token(p);
	if (strcmp(q, "*")) {
		c->l_qseq = p - q - 1;
		i = bam_cigar2qlen(c->n_cigar, (uint32_t*)(str.s + c->l_qname));
		_parse_err(c->n_cigar && i != c->l_qseq, "CIGAR and query sequence are of different length");
		i = (c->l_qseq + 1) >> 1;
		_get_mem(uint8_t, &t, &str, i);
		memset(t, 0, i);
		for (i = 0; i < c->l_qseq; ++i)
			t[i>>1] |= seq_nt16_table[(int)q[i]] << ((~i&1)<<2);
	} else c->l_qseq = 0;
	// qual
	q = _read_token_aux(p);
	_get_mem(uint8_t, &t, &str, c->l_qseq);
	if (strcmp(q, "*")) {
		_parse_err(p - q - 1 != c->l_qseq, "SEQ and QUAL are of different length");
		for (i = 0; i < c->l_qseq; ++i) t[i] = q[i] - 33;
	} else memset(t, 0xff, c->l_qseq);
	// aux
	while (p < s->s + s->l) {
		uint8_t type;
		q = _read_token_aux(p); // FIXME: can be accelerated for long 'B' arrays
		_parse_err(p - q - 1 < 6, "incomplete aux field");
		kputsn_(q, 2, &str);
		q += 3; type = *q++; ++q; // q points to value
		if (type == 'A' || type == 'a' || type == 'c' || type == 'C') {
			kputc_('A', &str);
			kputc_(*q, &str);
		} else if (type == 'i' || type == 'I') {
			long x;
			x = strtol(q, &q, 10);
			if (x < 0) {
				if (x >= INT8_MIN) {
					kputc_('c', &str); kputc_(x, &str);
				} else if (x >= INT16_MIN) {
					int16_t y = x;
					kputc_('s', &str); kputsn_((char*)&y, 2, &str);
				} else {
					int32_t y = x;
					kputc_('i', &str); kputsn_(&y, 4, &str);
				}
			} else {
				if (x <= UINT8_MAX) {
					kputc_('C', &str); kputc_(x, &str);
				} else if (x <= UINT16_MAX) {
					uint16_t y = x;
					kputc_('S', &str); kputsn_(&y, 2, &str);
				} else {
					uint32_t y = x;
					kputc_('I', &str); kputsn_(&y, 4, &str);
				}
			}
		} else if (type == 'f') {
			float x;
			x = strtod(q, &q);
			kputc_('f', &str); kputsn_(&x, 4, &str);
		} else if (type == 'Z' || type == 'H') {
			kputc_('Z', &str);kputsn_(q, p - q, &str); // note that this include the trailing NULL
		} else if (type == 'B') {
			int32_t n;
			char *r;
			_parse_err(p - q - 1 < 3, "incomplete B-typed aux field");
			type = *q++; // q points to the first ',' following the typing byte
			for (r = q, n = 0; *r; ++r)
				if (*r == ',') ++n;
			kputc_('B', &str); kputc_(type, &str); kputsn_(&n, 4, &str);
			// FIXME: to evaluate which is faster: a) aligned array and then memmove(); b) unaligned array; c) kputsn_()
			if (type == 'c')      while (q + 1 < p) { int8_t   x = strtol(q + 1, &q, 0); kputc_(x, &str); }
			else if (type == 'C') while (q + 1 < p) { uint8_t  x = strtol(q + 1, &q, 0); kputc_(x, &str); }
			else if (type == 's') while (q + 1 < p) { int16_t  x = strtol(q + 1, &q, 0); kputsn_(&x, 2, &str); }
			else if (type == 'S') while (q + 1 < p) { uint16_t x = strtol(q + 1, &q, 0); kputsn_(&x, 2, &str); }
			else if (type == 'i') while (q + 1 < p) { int32_t  x = strtol(q + 1, &q, 0); kputsn_(&x, 4, &str); }
			else if (type == 'I') while (q + 1 < p) { uint32_t x = strtol(q + 1, &q, 0); kputsn_(&x, 4, &str); }
			else if (type == 'f') while (q + 1 < p) { float    x = strtod(q + 1, &q);    kputsn_(&x, 4, &str); }
			else _parse_err(1, "unrecognized type");
		} else _parse_err(1, "unrecognized type");
	}
	b->data = (uint8_t*)str.s; b->l_data = str.l; b->m_data = str.m;
	return 0;

#undef _parse_warn
#undef _parse_err
#undef _get_mem
#undef _read_token_aux
#undef _read_token
err_ret:
	b->data = (uint8_t*)str.s; b->l_data = str.l; b->m_data = str.m;
	return -2;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x20(%rbp), %rax
movl $0x0, 0x20(%rax)
movq $0x0, -0x58(%rbp)
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x20(%rbp), %rax
movslq 0x24(%rax), %rax
movq %rax, -0x50(%rbp)
movq -0x60(%rbp), %rdi
xorl %esi, %esi
movl $0x20, %edx
callq 0x21b0
movq -0x18(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jne 0xe732
movl $0x80, %edi
movl $0x1, %esi
callq 0x2200
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x18(%rax)
movl $0x0, -0x3c(%rbp)
movslq -0x3c(%rbp), %rcx
leaq 0x4da9(%rip), %rax      # 0x134a6
cmpb $0x0, (%rax,%rcx)
je 0xe730
movl -0x3c(%rbp), %eax
movb %al, %dl
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movslq -0x3c(%rbp), %rsi
leaq 0x4d8b(%rip), %rcx      # 0x134a6
movsbl (%rcx,%rsi), %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xe6f2
jmp 0xe732
movq -0x30(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0xad(%rbp)
je 0xe761
movq -0x30(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
setne %al
movb %al, -0xad(%rbp)
movb -0xad(%rbp), %al
testb $0x1, %al
jne 0xe76d
jmp 0xe77d
jmp 0xe76f
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0xe73a
movq -0x30(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
je 0xe78e
jmp 0xf974
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x30(%rbp)
movb $0x0, (%rax)
movq -0x38(%rbp), %rdi
movq -0x30(%rbp), %rax
movq -0x38(%rbp), %rcx
subq %rcx, %rax
movl %eax, %esi
leaq -0x58(%rbp), %rdx
callq 0xf9b0
movq -0x30(%rbp), %rax
movq -0x38(%rbp), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq -0x60(%rbp), %rax
movl %ecx, %ecx
movl %ecx, %edx
movq 0x8(%rax), %rcx
andq $0xff, %rdx
shlq $0x18, %rdx
movabsq $-0xff000001, %rsi      # imm = 0xFFFFFFFF00FFFFFF
andq %rsi, %rcx
orq %rdx, %rcx
movq %rcx, 0x8(%rax)
movq -0x30(%rbp), %rdi
leaq -0x30(%rbp), %rsi
xorl %edx, %edx
callq 0x2240
movl %eax, %ecx
movq -0x60(%rbp), %rax
movl %ecx, %ecx
movl %ecx, %edx
movq 0x8(%rax), %rcx
andq $0xffff, %rdx           # imm = 0xFFFF
shlq $0x20, %rdx
movabsq $-0xffff00000001, %rsi  # imm = 0xFFFF0000FFFFFFFF
andq %rsi, %rcx
orq %rdx, %rcx
movq %rcx, 0x8(%rax)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x30(%rbp)
movsbl (%rax), %eax
cmpl $0x9, %eax
je 0xe84a
jmp 0xf974
movq -0x30(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0xae(%rbp)
je 0xe879
movq -0x30(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
setne %al
movb %al, -0xae(%rbp)
movb -0xae(%rbp), %al
testb $0x1, %al
jne 0xe885
jmp 0xe895
jmp 0xe887
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0xe852
movq -0x30(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
je 0xe8a6
jmp 0xf974
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x30(%rbp)
movb $0x0, (%rax)
movq -0x38(%rbp), %rdi
leaq 0x4e4a(%rip), %rsi      # 0x1370d
callq 0x2210
cmpl $0x0, %eax
je 0xe959
jmp 0xe8d3
movq -0x18(%rbp), %rax
cmpl $0x0, (%rax)
jne 0xe90c
leaq 0x894d(%rip), %rax      # 0x17230
cmpl $0x1, (%rax)
jl 0xe90c
movq 0x8709(%rip), %rax      # 0x16ff8
movq (%rax), %rdi
leaq 0x4bb8(%rip), %rsi      # 0x134b1
leaq 0x4bcd(%rip), %rdx      # 0x134cd
movb $0x0, %al
callq 0x2230
jmp 0xf974
jmp 0xe90e
movq -0x18(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0xcd80
movl %eax, %ecx
movq -0x60(%rbp), %rax
movl %ecx, (%rax)
movq -0x60(%rbp), %rax
cmpl $0x0, (%rax)
jge 0xe957
leaq 0x88fd(%rip), %rax      # 0x17230
cmpl $0x2, (%rax)
jl 0xe957
movq 0x86b9(%rip), %rax      # 0x16ff8
movq (%rax), %rdi
leaq 0x4b8f(%rip), %rsi      # 0x134d8
leaq 0x4b7d(%rip), %rdx      # 0x134cd
movb $0x0, %al
callq 0x2230
jmp 0xe963
movq -0x60(%rbp), %rax
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
movq -0x30(%rbp), %rdi
leaq -0x30(%rbp), %rsi
movl $0xa, %edx
callq 0x2240
subq $0x1, %rax
movl %eax, %ecx
movq -0x60(%rbp), %rax
movl %ecx, 0x4(%rax)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x30(%rbp)
movsbl (%rax), %eax
cmpl $0x9, %eax
je 0xe99e
jmp 0xf974
movq -0x60(%rbp), %rax
cmpl $0x0, 0x4(%rax)
jge 0xe9e6
movq -0x60(%rbp), %rax
cmpl $0x0, (%rax)
jl 0xe9e6
leaq 0x8878(%rip), %rax      # 0x17230
cmpl $0x2, (%rax)
jl 0xe9dc
movq 0x8634(%rip), %rax      # 0x16ff8
movq (%rax), %rdi
leaq 0x4b43(%rip), %rsi      # 0x13511
leaq 0x4af8(%rip), %rdx      # 0x134cd
movb $0x0, %al
callq 0x2230
movq -0x60(%rbp), %rax
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
movq -0x60(%rbp), %rax
cmpl $0x0, (%rax)
jge 0xea2c
movq -0x60(%rbp), %rax
movq 0x8(%rax), %rcx
shrq $0x20, %rcx
andq $0xffff, %rcx           # imm = 0xFFFF
orl $0x4, %ecx
movl %ecx, %ecx
movl %ecx, %edx
movq 0x8(%rax), %rcx
andq $0xffff, %rdx           # imm = 0xFFFF
shlq $0x20, %rdx
movabsq $-0xffff00000001, %rsi  # imm = 0xFFFF0000FFFFFFFF
andq %rsi, %rcx
orq %rdx, %rcx
movq %rcx, 0x8(%rax)
movq -0x30(%rbp), %rdi
leaq -0x30(%rbp), %rsi
movl $0xa, %edx
callq 0x2240
movl %eax, %ecx
movq -0x60(%rbp), %rax
movl %ecx, %ecx
movl %ecx, %edx
movq 0x8(%rax), %rcx
andq $0xff, %rdx
shlq $0x10, %rdx
andq $-0xff0001, %rcx        # imm = 0xFF00FFFF
orq %rdx, %rcx
movq %rcx, 0x8(%rax)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x30(%rbp)
movsbl (%rax), %eax
cmpl $0x9, %eax
je 0xea81
jmp 0xf974
movq -0x30(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2a, %eax
je 0xecac
movq -0x30(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x60(%rbp), %rax
movabsq $0xffffffffffff, %rcx   # imm = 0xFFFFFFFFFFFF
andq 0x8(%rax), %rcx
orq $0x0, %rcx
movq %rcx, 0x8(%rax)
movq -0x38(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0xaf(%rbp)
je 0xeada
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
setne %al
movb %al, -0xaf(%rbp)
movb -0xaf(%rbp), %al
testb $0x1, %al
jne 0xeae6
jmp 0xeb4f
callq 0x2430
movq (%rax), %rax
movq -0x38(%rbp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
jne 0xeb3c
movq -0x60(%rbp), %rax
movq 0x8(%rax), %rcx
shrq $0x30, %rcx
addl $0x1, %ecx
movl %ecx, %ecx
movl %ecx, %edx
movq 0x8(%rax), %rcx
andq $0xffff, %rdx           # imm = 0xFFFF
shlq $0x30, %rdx
movabsq $0xffffffffffff, %rsi   # imm = 0xFFFFFFFFFFFF
andq %rsi, %rcx
orq %rdx, %rcx
movq %rcx, 0x8(%rax)
jmp 0xeb3e
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0xeab3
movq -0x58(%rbp), %rsi
movq -0x60(%rbp), %rax
movq 0x8(%rax), %rax
shrq $0x30, %rax
shll $0x2, %eax
cltq
addq %rax, %rsi
leaq -0x58(%rbp), %rdi
callq 0xfae0
movq -0x48(%rbp), %rax
addq -0x58(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x60(%rbp), %rax
movq 0x8(%rax), %rax
shrq $0x30, %rax
shll $0x2, %eax
cltq
addq -0x58(%rbp), %rax
movq %rax, -0x58(%rbp)
movl $0x0, -0x3c(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x38(%rbp)
movl -0x3c(%rbp), %eax
movq -0x60(%rbp), %rcx
movq 0x8(%rcx), %rcx
shrq $0x30, %rcx
cmpl %ecx, %eax
jge 0xec81
movq -0x38(%rbp), %rdi
leaq -0x38(%rbp), %rsi
movl $0xa, %edx
callq 0x2240
shlq $0x4, %rax
movl %eax, %edx
movq -0x68(%rbp), %rax
movslq -0x3c(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movq -0x38(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x80, %eax
jl 0xebf9
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl %eax, -0xb4(%rbp)
jmp 0xec15
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x38(%rbp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %eax
movl %eax, -0xb4(%rbp)
movl -0xb4(%rbp), %eax
movl %eax, -0x6c(%rbp)
cmpl $0x0, -0x6c(%rbp)
jge 0xec54
leaq 0x8605(%rip), %rax      # 0x17230
cmpl $0x1, (%rax)
jl 0xec54
movq 0x83c1(%rip), %rax      # 0x16ff8
movq (%rax), %rdi
leaq 0x4917(%rip), %rsi      # 0x13558
leaq 0x4885(%rip), %rdx      # 0x134cd
movb $0x0, %al
callq 0x2230
jmp 0xf974
jmp 0xec56
movl -0x6c(%rbp), %edx
movq -0x68(%rbp), %rax
movslq -0x3c(%rbp), %rcx
orl (%rax,%rcx,4), %edx
movl %edx, (%rax,%rcx,4)
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0xeba4
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
movq -0x60(%rbp), %rax
movq 0x8(%rax), %rax
shrq $0x30, %rax
movl %eax, %edi
movq -0x68(%rbp), %rsi
callq 0xd020
movl %eax, -0x3c(%rbp)
jmp 0xeda3
movq -0x60(%rbp), %rax
movq 0x8(%rax), %rax
shrq $0x20, %rax
andq $0xffff, %rax           # imm = 0xFFFF
andl $0x4, %eax
cmpl $0x0, %eax
jne 0xecf1
leaq 0x8563(%rip), %rax      # 0x17230
cmpl $0x2, (%rax)
jl 0xecf1
movq 0x831f(%rip), %rax      # 0x16ff8
movq (%rax), %rdi
leaq 0x4899(%rip), %rsi      # 0x1357c
leaq 0x47e3(%rip), %rdx      # 0x134cd
movb $0x0, %al
callq 0x2230
movq -0x60(%rbp), %rax
movq 0x8(%rax), %rcx
shrq $0x20, %rcx
andq $0xffff, %rcx           # imm = 0xFFFF
orl $0x4, %ecx
movl %ecx, %ecx
movl %ecx, %edx
movq 0x8(%rax), %rcx
andq $0xffff, %rdx           # imm = 0xFFFF
shlq $0x20, %rdx
movabsq $-0xffff00000001, %rsi  # imm = 0xFFFF0000FFFFFFFF
andq %rsi, %rcx
orq %rdx, %rcx
movq %rcx, 0x8(%rax)
movq -0x30(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0xb5(%rbp)
je 0xed5d
movq -0x30(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
setne %al
movb %al, -0xb5(%rbp)
movb -0xb5(%rbp), %al
testb $0x1, %al
jne 0xed69
jmp 0xed79
jmp 0xed6b
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0xed36
movq -0x30(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
je 0xed8a
jmp 0xf974
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x30(%rbp)
movb $0x0, (%rax)
movl $0x1, -0x3c(%rbp)
movq -0x60(%rbp), %rax
movslq 0x4(%rax), %rdi
movq -0x60(%rbp), %rax
movl 0x4(%rax), %eax
addl -0x3c(%rbp), %eax
movslq %eax, %rsi
movl $0xe, %edx
movl $0x5, %ecx
callq 0xfbd0
movl %eax, %ecx
movq -0x60(%rbp), %rax
movl %ecx, %ecx
movl %ecx, %edx
movq 0x8(%rax), %rcx
andq $0xffff, %rdx           # imm = 0xFFFF
andq $-0x10000, %rcx         # imm = 0xFFFF0000
orq %rdx, %rcx
movq %rcx, 0x8(%rax)
movq -0x30(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0xb6(%rbp)
je 0xee19
movq -0x30(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
setne %al
movb %al, -0xb6(%rbp)
movb -0xb6(%rbp), %al
testb $0x1, %al
jne 0xee25
jmp 0xee35
jmp 0xee27
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0xedf2
movq -0x30(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
je 0xee46
jmp 0xf974
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x30(%rbp)
movb $0x0, (%rax)
movq -0x38(%rbp), %rdi
leaq 0x4756(%rip), %rsi      # 0x135b9
callq 0x2210
cmpl $0x0, %eax
jne 0xee7c
movq -0x60(%rbp), %rax
movl (%rax), %ecx
movq -0x60(%rbp), %rax
movl %ecx, 0x14(%rax)
jmp 0xeeb6
movq -0x38(%rbp), %rdi
leaq 0x4886(%rip), %rsi      # 0x1370d
callq 0x2210
cmpl $0x0, %eax
jne 0xee9e
movq -0x60(%rbp), %rax
movl $0xffffffff, 0x14(%rax) # imm = 0xFFFFFFFF
jmp 0xeeb4
movq -0x18(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0xcd80
movl %eax, %ecx
movq -0x60(%rbp), %rax
movl %ecx, 0x14(%rax)
jmp 0xeeb6
movq -0x30(%rbp), %rdi
leaq -0x30(%rbp), %rsi
movl $0xa, %edx
callq 0x2240
subq $0x1, %rax
movl %eax, %ecx
movq -0x60(%rbp), %rax
movl %ecx, 0x18(%rax)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x30(%rbp)
movsbl (%rax), %eax
cmpl $0x9, %eax
je 0xeef1
jmp 0xf974
movq -0x60(%rbp), %rax
cmpl $0x0, 0x18(%rax)
jge 0xef3b
movq -0x60(%rbp), %rax
cmpl $0x0, 0x14(%rax)
jl 0xef3b
leaq 0x8324(%rip), %rax      # 0x17230
cmpl $0x2, (%rax)
jl 0xef30
movq 0x80e0(%rip), %rax      # 0x16ff8
movq (%rax), %rdi
leaq 0x4699(%rip), %rsi      # 0x135bb
leaq 0x45a4(%rip), %rdx      # 0x134cd
movb $0x0, %al
callq 0x2230
movq -0x60(%rbp), %rax
movl $0xffffffff, 0x14(%rax) # imm = 0xFFFFFFFF
movq -0x30(%rbp), %rdi
leaq -0x30(%rbp), %rsi
movl $0xa, %edx
callq 0x2240
movl %eax, %ecx
movq -0x60(%rbp), %rax
movl %ecx, 0x1c(%rax)
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x30(%rbp)
movsbl (%rax), %eax
cmpl $0x9, %eax
je 0xef72
jmp 0xf974
movq -0x30(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0xb7(%rbp)
je 0xefa1
movq -0x30(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
setne %al
movb %al, -0xb7(%rbp)
movb -0xb7(%rbp), %al
testb $0x1, %al
jne 0xefad
jmp 0xefbd
jmp 0xefaf
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0xef7a
movq -0x30(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
je 0xefce
jmp 0xf974
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x30(%rbp)
movb $0x0, (%rax)
movq -0x38(%rbp), %rdi
leaq 0x4722(%rip), %rsi      # 0x1370d
callq 0x2210
cmpl $0x0, %eax
je 0xf138
movq -0x30(%rbp), %rax
movq -0x38(%rbp), %rcx
subq %rcx, %rax
subq $0x1, %rax
movl %eax, %ecx
movq -0x60(%rbp), %rax
movl %ecx, 0x10(%rax)
movq -0x60(%rbp), %rax
movq 0x8(%rax), %rax
shrq $0x30, %rax
movl %eax, %edi
movq -0x48(%rbp), %rsi
movq -0x60(%rbp), %rax
movq 0x8(%rax), %rax
shrq $0x18, %rax
andq $0xff, %rax
cltq
addq %rax, %rsi
callq 0xcfb0
movl %eax, -0x3c(%rbp)
movq -0x60(%rbp), %rax
movq 0x8(%rax), %rax
shrq $0x30, %rax
cmpl $0x0, %eax
je 0xf08f
movl -0x3c(%rbp), %eax
movq -0x60(%rbp), %rcx
cmpl 0x10(%rcx), %eax
je 0xf08f
leaq 0x81ca(%rip), %rax      # 0x17230
cmpl $0x1, (%rax)
jl 0xf08f
movq 0x7f86(%rip), %rax      # 0x16ff8
movq (%rax), %rdi
leaq 0x4585(%rip), %rsi      # 0x13601
leaq 0x444a(%rip), %rdx      # 0x134cd
movb $0x0, %al
callq 0x2230
jmp 0xf974
jmp 0xf091
movq -0x60(%rbp), %rax
movl 0x10(%rax), %eax
addl $0x1, %eax
sarl %eax
movl %eax, -0x3c(%rbp)
movq -0x58(%rbp), %rsi
movslq -0x3c(%rbp), %rax
addq %rax, %rsi
leaq -0x58(%rbp), %rdi
callq 0xfae0
movq -0x48(%rbp), %rax
addq -0x58(%rbp), %rax
movq %rax, -0x28(%rbp)
movslq -0x3c(%rbp), %rax
addq -0x58(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x28(%rbp), %rdi
movslq -0x3c(%rbp), %rdx
xorl %esi, %esi
callq 0x21b0
movl $0x0, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
movq -0x60(%rbp), %rcx
cmpl 0x10(%rcx), %eax
jge 0xf136
movq -0x38(%rbp), %rax
movslq -0x3c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
movslq %eax, %rcx
leaq 0x813c(%rip), %rax      # 0x17240
movzbl (%rax,%rcx), %esi
movl -0x3c(%rbp), %ecx
xorl $-0x1, %ecx
andl $0x1, %ecx
shll $0x2, %ecx
shll %cl, %esi
movq -0x28(%rbp), %rax
movl -0x3c(%rbp), %ecx
sarl %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %edx
orl %esi, %edx
movb %dl, (%rax,%rcx)
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xf0e2
jmp 0xf143
movq -0x60(%rbp), %rax
movl $0x0, 0x10(%rax)
movq -0x30(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0xb8(%rbp)
je 0xf172
movq -0x30(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
setne %al
movb %al, -0xb8(%rbp)
movb -0xb8(%rbp), %al
testb $0x1, %al
jne 0xf17e
jmp 0xf18e
jmp 0xf180
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0xf14b
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x30(%rbp)
movb $0x0, (%rax)
movq -0x58(%rbp), %rsi
movq -0x60(%rbp), %rax
movslq 0x10(%rax), %rax
addq %rax, %rsi
leaq -0x58(%rbp), %rdi
callq 0xfae0
movq -0x48(%rbp), %rax
addq -0x58(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x60(%rbp), %rax
movslq 0x10(%rax), %rax
addq -0x58(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x38(%rbp), %rdi
leaq 0x452e(%rip), %rsi      # 0x1370d
callq 0x2210
cmpl $0x0, %eax
je 0xf279
jmp 0xf1ef
movq -0x30(%rbp), %rax
movq -0x38(%rbp), %rcx
subq %rcx, %rax
subq $0x1, %rax
movq -0x60(%rbp), %rcx
movslq 0x10(%rcx), %rcx
cmpq %rcx, %rax
je 0xf23b
leaq 0x801e(%rip), %rax      # 0x17230
cmpl $0x1, (%rax)
jl 0xf23b
movq 0x7dda(%rip), %rax      # 0x16ff8
movq (%rax), %rdi
leaq 0x4413(%rip), %rsi      # 0x1363b
leaq 0x429e(%rip), %rdx      # 0x134cd
movb $0x0, %al
callq 0x2230
jmp 0xf974
jmp 0xf23d
movl $0x0, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
movq -0x60(%rbp), %rcx
cmpl 0x10(%rcx), %eax
jge 0xf277
movq -0x38(%rbp), %rax
movslq -0x3c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
subl $0x21, %eax
movb %al, %dl
movq -0x28(%rbp), %rax
movslq -0x3c(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xf244
jmp 0xf28f
movq -0x28(%rbp), %rdi
movq -0x60(%rbp), %rax
movslq 0x10(%rax), %rdx
movl $0xff, %esi
callq 0x21b0
jmp 0xf291
movq -0x30(%rbp), %rax
movq -0x10(%rbp), %rcx
movq 0x10(%rcx), %rcx
movq -0x10(%rbp), %rdx
addq (%rdx), %rcx
cmpq %rcx, %rax
jae 0xf945
movq -0x30(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0xb9(%rbp)
je 0xf2dc
movq -0x30(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
setne %al
movb %al, -0xb9(%rbp)
movb -0xb9(%rbp), %al
testb $0x1, %al
jne 0xf2e8
jmp 0xf2f8
jmp 0xf2ea
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0xf2b5
movq -0x30(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x30(%rbp)
movb $0x0, (%rax)
movq -0x30(%rbp), %rax
movq -0x38(%rbp), %rcx
subq %rcx, %rax
subq $0x1, %rax
cmpq $0x6, %rax
jge 0xf34f
leaq 0x7f0a(%rip), %rax      # 0x17230
cmpl $0x1, (%rax)
jl 0xf34f
movq 0x7cc6(%rip), %rax      # 0x16ff8
movq (%rax), %rdi
leaq 0x432d(%rip), %rsi      # 0x13669
leaq 0x418a(%rip), %rdx      # 0x134cd
movb $0x0, %al
callq 0x2230
jmp 0xf974
jmp 0xf351
movq -0x38(%rbp), %rdi
movl $0x2, %esi
leaq -0x58(%rbp), %rdx
callq 0xf9b0
movq -0x38(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movb (%rax), %al
movb %al, -0x6d(%rbp)
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
movzbl -0x6d(%rbp), %eax
cmpl $0x41, %eax
je 0xf3b3
movzbl -0x6d(%rbp), %eax
cmpl $0x61, %eax
je 0xf3b3
movzbl -0x6d(%rbp), %eax
cmpl $0x63, %eax
je 0xf3b3
movzbl -0x6d(%rbp), %eax
cmpl $0x43, %eax
jne 0xf3d6
movl $0x41, %edi
leaq -0x58(%rbp), %rsi
callq 0xfc90
movq -0x38(%rbp), %rax
movsbl (%rax), %edi
leaq -0x58(%rbp), %rsi
callq 0xfc90
jmp 0xf940
movzbl -0x6d(%rbp), %eax
cmpl $0x69, %eax
je 0xf3ec
movzbl -0x6d(%rbp), %eax
cmpl $0x49, %eax
jne 0xf52e
movq -0x38(%rbp), %rdi
leaq -0x38(%rbp), %rsi
movl $0xa, %edx
callq 0x2240
movq %rax, -0x78(%rbp)
cmpq $0x0, -0x78(%rbp)
jge 0xf495
cmpq $-0x80, -0x78(%rbp)
jl 0xf433
movl $0x63, %edi
leaq -0x58(%rbp), %rsi
callq 0xfc90
movq -0x78(%rbp), %rax
movl %eax, %edi
leaq -0x58(%rbp), %rsi
callq 0xfc90
jmp 0xf490
cmpq $-0x8000, -0x78(%rbp)   # imm = 0x8000
jl 0xf467
movq -0x78(%rbp), %rax
movw %ax, -0x7a(%rbp)
movl $0x73, %edi
leaq -0x58(%rbp), %rsi
callq 0xfc90
leaq -0x7a(%rbp), %rdi
movl $0x2, %esi
leaq -0x58(%rbp), %rdx
callq 0xf9b0
jmp 0xf48e
movq -0x78(%rbp), %rax
movl %eax, -0x80(%rbp)
movl $0x69, %edi
leaq -0x58(%rbp), %rsi
callq 0xfc90
leaq -0x80(%rbp), %rdi
movl $0x4, %esi
leaq -0x58(%rbp), %rdx
callq 0xf9b0
jmp 0xf490
jmp 0xf529
cmpq $0xff, -0x78(%rbp)
jg 0xf4be
movl $0x43, %edi
leaq -0x58(%rbp), %rsi
callq 0xfc90
movq -0x78(%rbp), %rax
movl %eax, %edi
leaq -0x58(%rbp), %rsi
callq 0xfc90
jmp 0xf527
cmpq $0xffff, -0x78(%rbp)    # imm = 0xFFFF
jg 0xf4f8
movq -0x78(%rbp), %rax
movw %ax, -0x82(%rbp)
movl $0x53, %edi
leaq -0x58(%rbp), %rsi
callq 0xfc90
leaq -0x82(%rbp), %rdi
movl $0x2, %esi
leaq -0x58(%rbp), %rdx
callq 0xf9b0
jmp 0xf525
movq -0x78(%rbp), %rax
movl %eax, -0x88(%rbp)
movl $0x49, %edi
leaq -0x58(%rbp), %rsi
callq 0xfc90
leaq -0x88(%rbp), %rdi
movl $0x4, %esi
leaq -0x58(%rbp), %rdx
callq 0xf9b0
jmp 0xf527
jmp 0xf529
jmp 0xf93e
movzbl -0x6d(%rbp), %eax
cmpl $0x66, %eax
jne 0xf578
movq -0x38(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x20f0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x8c(%rbp)
movl $0x66, %edi
leaq -0x58(%rbp), %rsi
callq 0xfc90
leaq -0x8c(%rbp), %rdi
movl $0x4, %esi
leaq -0x58(%rbp), %rdx
callq 0xf9b0
jmp 0xf93c
movzbl -0x6d(%rbp), %eax
cmpl $0x5a, %eax
je 0xf58a
movzbl -0x6d(%rbp), %eax
cmpl $0x48, %eax
jne 0xf5b7
movl $0x5a, %edi
leaq -0x58(%rbp), %rsi
callq 0xfc90
movq -0x38(%rbp), %rdi
movq -0x30(%rbp), %rax
movq -0x38(%rbp), %rcx
subq %rcx, %rax
movl %eax, %esi
leaq -0x58(%rbp), %rdx
callq 0xf9b0
jmp 0xf93a
movzbl -0x6d(%rbp), %eax
cmpl $0x42, %eax
jne 0xf905
jmp 0xf5c6
movq -0x30(%rbp), %rax
movq -0x38(%rbp), %rcx
subq %rcx, %rax
subq $0x1, %rax
cmpq $0x3, %rax
jge 0xf60b
leaq 0x7c4e(%rip), %rax      # 0x17230
cmpl $0x1, (%rax)
jl 0xf60b
movq 0x7a0a(%rip), %rax      # 0x16ff8
movq (%rax), %rdi
leaq 0x408f(%rip), %rsi      # 0x13687
leaq 0x3ece(%rip), %rdx      # 0x134cd
movb $0x0, %al
callq 0x2230
jmp 0xf974
jmp 0xf60d
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movb (%rax), %al
movb %al, -0x6d(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x98(%rbp)
movl $0x0, -0x90(%rbp)
movq -0x98(%rbp), %rax
cmpb $0x0, (%rax)
je 0xf676
movq -0x98(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2c, %eax
jne 0xf660
movl -0x90(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x90(%rbp)
jmp 0xf662
movq -0x98(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x98(%rbp)
jmp 0xf636
movl $0x42, %edi
leaq -0x58(%rbp), %rsi
callq 0xfc90
movzbl -0x6d(%rbp), %edi
leaq -0x58(%rbp), %rsi
callq 0xfc90
leaq -0x90(%rbp), %rdi
movl $0x4, %esi
leaq -0x58(%rbp), %rdx
callq 0xf9b0
movzbl -0x6d(%rbp), %eax
cmpl $0x63, %eax
jne 0xf6ef
jmp 0xf6b1
movq -0x38(%rbp), %rax
addq $0x1, %rax
cmpq -0x30(%rbp), %rax
jae 0xf6ea
movq -0x38(%rbp), %rdi
addq $0x1, %rdi
leaq -0x38(%rbp), %rsi
xorl %edx, %edx
callq 0x2240
movb %al, -0x99(%rbp)
movsbl -0x99(%rbp), %edi
leaq -0x58(%rbp), %rsi
callq 0xfc90
jmp 0xf6b1
jmp 0xf903
movzbl -0x6d(%rbp), %eax
cmpl $0x43, %eax
jne 0xf738
jmp 0xf6fa
movq -0x38(%rbp), %rax
addq $0x1, %rax
cmpq -0x30(%rbp), %rax
jae 0xf733
movq -0x38(%rbp), %rdi
addq $0x1, %rdi
leaq -0x38(%rbp), %rsi
xorl %edx, %edx
callq 0x2240
movb %al, -0x9a(%rbp)
movzbl -0x9a(%rbp), %edi
leaq -0x58(%rbp), %rsi
callq 0xfc90
jmp 0xf6fa
jmp 0xf901
movzbl -0x6d(%rbp), %eax
cmpl $0x73, %eax
jne 0xf787
jmp 0xf743
movq -0x38(%rbp), %rax
addq $0x1, %rax
cmpq -0x30(%rbp), %rax
jae 0xf782
movq -0x38(%rbp), %rdi
addq $0x1, %rdi
leaq -0x38(%rbp), %rsi
xorl %edx, %edx
callq 0x2240
movw %ax, -0x9c(%rbp)
leaq -0x9c(%rbp), %rdi
movl $0x2, %esi
leaq -0x58(%rbp), %rdx
callq 0xf9b0
jmp 0xf743
jmp 0xf8ff
movzbl -0x6d(%rbp), %eax
cmpl $0x53, %eax
jne 0xf7d6
jmp 0xf792
movq -0x38(%rbp), %rax
addq $0x1, %rax
cmpq -0x30(%rbp), %rax
jae 0xf7d1
movq -0x38(%rbp), %rdi
addq $0x1, %rdi
leaq -0x38(%rbp), %rsi
xorl %edx, %edx
callq 0x2240
movw %ax, -0x9e(%rbp)
leaq -0x9e(%rbp), %rdi
movl $0x2, %esi
leaq -0x58(%rbp), %rdx
callq 0xf9b0
jmp 0xf792
jmp 0xf8fd
movzbl -0x6d(%rbp), %eax
cmpl $0x69, %eax
jne 0xf824
jmp 0xf7e1
movq -0x38(%rbp), %rax
addq $0x1, %rax
cmpq -0x30(%rbp), %rax
jae 0xf81f
movq -0x38(%rbp), %rdi
addq $0x1, %rdi
leaq -0x38(%rbp), %rsi
xorl %edx, %edx
callq 0x2240
movl %eax, -0xa4(%rbp)
leaq -0xa4(%rbp), %rdi
movl $0x4, %esi
leaq -0x58(%rbp), %rdx
callq 0xf9b0
jmp 0xf7e1
jmp 0xf8fb
movzbl -0x6d(%rbp), %eax
cmpl $0x49, %eax
jne 0xf872
jmp 0xf82f
movq -0x38(%rbp), %rax
addq $0x1, %rax
cmpq -0x30(%rbp), %rax
jae 0xf86d
movq -0x38(%rbp), %rdi
addq $0x1, %rdi
leaq -0x38(%rbp), %rsi
xorl %edx, %edx
callq 0x2240
movl %eax, -0xa8(%rbp)
leaq -0xa8(%rbp), %rdi
movl $0x4, %esi
leaq -0x58(%rbp), %rdx
callq 0xf9b0
jmp 0xf82f
jmp 0xf8f9
movzbl -0x6d(%rbp), %eax
cmpl $0x66, %eax
jne 0xf8c1
jmp 0xf87d
movq -0x38(%rbp), %rax
addq $0x1, %rax
cmpq -0x30(%rbp), %rax
jae 0xf8bf
movq -0x38(%rbp), %rdi
addq $0x1, %rdi
leaq -0x38(%rbp), %rsi
callq 0x20f0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xac(%rbp)
leaq -0xac(%rbp), %rdi
movl $0x4, %esi
leaq -0x58(%rbp), %rdx
callq 0xf9b0
jmp 0xf87d
jmp 0xf8f7
jmp 0xf8c3
leaq 0x7966(%rip), %rax      # 0x17230
cmpl $0x1, (%rax)
jl 0xf8f3
movq 0x7722(%rip), %rax      # 0x16ff8
movq (%rax), %rdi
leaq 0x3dcd(%rip), %rsi      # 0x136ad
leaq 0x3be6(%rip), %rdx      # 0x134cd
movb $0x0, %al
callq 0x2230
jmp 0xf974
jmp 0xf8f5
jmp 0xf8f7
jmp 0xf8f9
jmp 0xf8fb
jmp 0xf8fd
jmp 0xf8ff
jmp 0xf901
jmp 0xf903
jmp 0xf938
jmp 0xf907
leaq 0x7922(%rip), %rax      # 0x17230
cmpl $0x1, (%rax)
jl 0xf934
movq 0x76de(%rip), %rax      # 0x16ff8
movq (%rax), %rdi
leaq 0x3d89(%rip), %rsi      # 0x136ad
leaq 0x3ba2(%rip), %rdx      # 0x134cd
movb $0x0, %al
callq 0x2230
jmp 0xf974
jmp 0xf936
jmp 0xf938
jmp 0xf93a
jmp 0xf93c
jmp 0xf93e
jmp 0xf940
jmp 0xf291
movq -0x48(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x58(%rbp), %rax
movl %eax, %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x20(%rax)
movq -0x50(%rbp), %rax
movl %eax, %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x24(%rax)
movl $0x0, -0x4(%rbp)
jmp 0xf9a1
movq -0x48(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x58(%rbp), %rax
movl %eax, %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x20(%rax)
movq -0x50(%rbp), %rax
movl %eax, %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x24(%rax)
movl $0xfffffffe, -0x4(%rbp) # imm = 0xFFFFFFFE
movl -0x4(%rbp), %eax
addq $0xc0, %rsp
popq %rbp
retq
nopl (%rax)