// File: /workspace/github_c_makefile_star2_O0/lyda[P]tz/localtime.c
// Function: tzparse
static int
tzparse(name, sp, lastditch)
const char *			name;
register struct state * const	sp;
const int			lastditch;
{
	const char *			stdname;
	const char *			dstname;
	size_t				stdlen;
	size_t				dstlen;
	long				stdoffset;
	long				dstoffset;
	register time_t *		atp;
	register unsigned char *	typep;
	register char *			cp;
	register int			load_result;
	static struct ttinfo		zttinfo;

	INITIALIZE(dstname);
	stdname = name;
	if (lastditch) {
		stdlen = strlen(name);	/* length of standard zone name */
		name += stdlen;
		if (stdlen >= sizeof sp->chars)
			stdlen = (sizeof sp->chars) - 1;
		stdoffset = 0;
	} else {
		if (*name == '<') {
			name++;
			stdname = name;
			name = getqzname(name, '>');
			if (*name != '>')
				return (-1);
			stdlen = name - stdname;
			name++;
		} else {
			name = getzname(name);
			stdlen = name - stdname;
		}
		if (*name == '\0')
			return -1;
		name = getoffset(name, &stdoffset);
		if (name == NULL)
			return -1;
	}
	load_result = tzload(TZDEFRULES, sp, FALSE);
	if (load_result != 0)
		sp->leapcnt = 0;		/* so, we're off a little */
	if (*name != '\0') {
		if (*name == '<') {
			dstname = ++name;
			name = getqzname(name, '>');
			if (*name != '>')
				return -1;
			dstlen = name - dstname;
			name++;
		} else {
			dstname = name;
			name = getzname(name);
			dstlen = name - dstname; /* length of DST zone name */
		}
		if (*name != '\0' && *name != ',' && *name != ';') {
			name = getoffset(name, &dstoffset);
			if (name == NULL)
				return -1;
		} else	dstoffset = stdoffset - SECSPERHOUR;
		if (*name == '\0' && load_result != 0)
			name = TZDEFRULESTRING;
		if (*name == ',' || *name == ';') {
			struct rule	start;
			struct rule	end;
			register int	year;
			register time_t	janfirst;
			time_t		starttime;
			time_t		endtime;

			++name;
			if ((name = getrule(name, &start)) == NULL)
				return -1;
			if (*name++ != ',')
				return -1;
			if ((name = getrule(name, &end)) == NULL)
				return -1;
			if (*name != '\0')
				return -1;
			sp->typecnt = 2;	/* standard time and DST */
			/*
			** Two transitions per year, from EPOCH_YEAR forward.
			*/
			sp->ttis[0] = sp->ttis[1] = zttinfo;
			sp->ttis[0].tt_gmtoff = -dstoffset;
			sp->ttis[0].tt_isdst = 1;
			sp->ttis[0].tt_abbrind = stdlen + 1;
			sp->ttis[1].tt_gmtoff = -stdoffset;
			sp->ttis[1].tt_isdst = 0;
			sp->ttis[1].tt_abbrind = 0;
			atp = sp->ats;
			typep = sp->types;
			janfirst = 0;
			sp->timecnt = 0;
			for (year = EPOCH_YEAR;
			    sp->timecnt + 2 <= TZ_MAX_TIMES;
			    ++year) {
			    	time_t	newfirst;

				starttime = transtime(janfirst, year, &start,
					stdoffset);
				endtime = transtime(janfirst, year, &end,
					dstoffset);
				if (starttime > endtime) {
					*atp++ = endtime;
					*typep++ = 1;	/* DST ends */
					*atp++ = starttime;
					*typep++ = 0;	/* DST begins */
				} else {
					*atp++ = starttime;
					*typep++ = 0;	/* DST begins */
					*atp++ = endtime;
					*typep++ = 1;	/* DST ends */
				}
				sp->timecnt += 2;
				newfirst = janfirst;
				newfirst += year_lengths[isleap(year)] *
					SECSPERDAY;
				if (newfirst <= janfirst)
					break;
				janfirst = newfirst;
			}
		} else {
			register long	theirstdoffset;
			register long	theirdstoffset;
			register long	theiroffset;
			register int	isdst;
			register int	i;
			register int	j;

			if (*name != '\0')
				return -1;
			/*
			** Initial values of theirstdoffset and theirdstoffset.
			*/
			theirstdoffset = 0;
			for (i = 0; i < sp->timecnt; ++i) {
				j = sp->types[i];
				if (!sp->ttis[j].tt_isdst) {
					theirstdoffset =
						-sp->ttis[j].tt_gmtoff;
					break;
				}
			}
			theirdstoffset = 0;
			for (i = 0; i < sp->timecnt; ++i) {
				j = sp->types[i];
				if (sp->ttis[j].tt_isdst) {
					theirdstoffset =
						-sp->ttis[j].tt_gmtoff;
					break;
				}
			}
			/*
			** Initially we're assumed to be in standard time.
			*/
			isdst = FALSE;
			theiroffset = theirstdoffset;
			/*
			** Now juggle transition times and types
			** tracking offsets as you do.
			*/
			for (i = 0; i < sp->timecnt; ++i) {
				j = sp->types[i];
				sp->types[i] = sp->ttis[j].tt_isdst;
				if (sp->ttis[j].tt_ttisgmt) {
					/* No adjustment to transition time */
				} else {
					/*
					** If summer time is in effect, and the
					** transition time was not specified as
					** standard time, add the summer time
					** offset to the transition time;
					** otherwise, add the standard time
					** offset to the transition time.
					*/
					/*
					** Transitions from DST to DDST
					** will effectively disappear since
					** POSIX provides for only one DST
					** offset.
					*/
					if (isdst && !sp->ttis[j].tt_ttisstd) {
						sp->ats[i] += dstoffset -
							theirdstoffset;
					} else {
						sp->ats[i] += stdoffset -
							theirstdoffset;
					}
				}
				theiroffset = -sp->ttis[j].tt_gmtoff;
				if (sp->ttis[j].tt_isdst)
					theirdstoffset = theiroffset;
				else	theirstdoffset = theiroffset;
			}
			/*
			** Finally, fill in ttis.
			*/
			sp->ttis[0] = sp->ttis[1] = zttinfo;
			sp->ttis[0].tt_gmtoff = -stdoffset;
			sp->ttis[0].tt_isdst = FALSE;
			sp->ttis[0].tt_abbrind = 0;
			sp->ttis[1].tt_gmtoff = -dstoffset;
			sp->ttis[1].tt_isdst = TRUE;
			sp->ttis[1].tt_abbrind = stdlen + 1;
			sp->typecnt = 2;
		}
	} else {
		dstlen = 0;
		sp->typecnt = 1;		/* only standard time */
		sp->timecnt = 0;
		sp->ttis[0] = zttinfo;
		sp->ttis[0].tt_gmtoff = -stdoffset;
		sp->ttis[0].tt_isdst = 0;
		sp->ttis[0].tt_abbrind = 0;
	}
	sp->charcnt = stdlen + 1;
	if (dstlen != 0)
		sp->charcnt += dstlen + 1;
	if ((size_t) sp->charcnt > sizeof sp->chars)
		return -1;
	cp = sp->chars;
	(void) strncpy(cp, stdname, stdlen);
	cp += stdlen;
	*cp++ = '\0';
	if (dstlen != 0) {
		(void) strncpy(cp, dstname, dstlen);
		*(cp + dstlen) = '\0';
	}
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movl %edx, -0x1c(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
cmpl $0x0, -0x1c(%rbp)
je 0x3384
movq -0x10(%rbp), %rdi
callq 0x10a0
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
addq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
cmpq $0x200, -0x38(%rbp)     # imm = 0x200
jb 0x3377
movq $0x1ff, -0x38(%rbp)     # imm = 0x1FF
movq $0x0, -0x48(%rbp)
jmp 0x3445
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3c, %eax
jne 0x33eb
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
movl $0x3e, %esi
callq 0x4a30
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3e, %eax
je 0x33ce
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x3ddb
movq -0x10(%rbp), %rax
movq -0x28(%rbp), %rcx
subq %rcx, %rax
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
jmp 0x3407
movq -0x10(%rbp), %rdi
callq 0x4a80
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq -0x28(%rbp), %rcx
subq %rcx, %rax
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
jne 0x341f
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x3ddb
movq -0x10(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x4b00
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x3443
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x3ddb
jmp 0x3445
movq -0x18(%rbp), %rsi
leaq 0x3df7(%rip), %rdi      # 0x7247
xorl %edx, %edx
callq 0x2730
movl %eax, -0x6c(%rbp)
cmpl $0x0, -0x6c(%rbp)
je 0x346a
movq -0x18(%rbp), %rax
movl $0x0, (%rax)
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x3cb1
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3c, %eax
jne 0x34dd
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rdi
movl $0x3e, %esi
callq 0x4a30
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3e, %eax
je 0x34c0
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x3ddb
movq -0x10(%rbp), %rax
movq -0x30(%rbp), %rcx
subq %rcx, %rax
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
jmp 0x3501
movq -0x10(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rdi
callq 0x4a80
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq -0x30(%rbp), %rcx
subq %rcx, %rax
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x354b
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2c, %eax
je 0x354b
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3b, %eax
je 0x354b
movq -0x10(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x4b00
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x3549
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x3ddb
jmp 0x3559
movq -0x48(%rbp), %rax
subq $0xe10, %rax            # imm = 0xE10
movq %rax, -0x50(%rbp)
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
jne 0x3576
cmpl $0x0, -0x6c(%rbp)
je 0x3576
leaq 0x3ce0(%rip), %rax      # 0x7252
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2c, %eax
je 0x3592
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3b, %eax
jne 0x3923
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x4ba0
movq %rax, -0x10(%rbp)
cmpq $0x0, %rax
jne 0x35c4
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x3ddb
movq -0x10(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x10(%rbp)
movsbl (%rax), %eax
cmpl $0x2c, %eax
je 0x35e7
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x3ddb
movq -0x10(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x4ba0
movq %rax, -0x10(%rbp)
cmpq $0x0, %rax
jne 0x360d
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x3ddb
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x3625
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x3ddb
movq -0x18(%rbp), %rax
movl $0x2, 0x8(%rax)
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movq 0xa811(%rip), %rdx      # 0xde50
movq %rdx, 0x2a60(%rcx)
movq 0xa80b(%rip), %rdx      # 0xde58
movq %rdx, 0x2a68(%rcx)
movq 0xa805(%rip), %rdx      # 0xde60
movq %rdx, 0x2a70(%rcx)
movq 0x2a60(%rcx), %rdx
movq %rdx, 0x2a48(%rax)
movq 0x2a68(%rcx), %rdx
movq %rdx, 0x2a50(%rax)
movq 0x2a70(%rcx), %rcx
movq %rcx, 0x2a58(%rax)
xorl %eax, %eax
movl %eax, %ecx
subq -0x50(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x2a48(%rax)
movq -0x18(%rbp), %rax
movl $0x1, 0x2a50(%rax)
movq -0x38(%rbp), %rax
addq $0x1, %rax
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x2a54(%rax)
xorl %eax, %eax
movl %eax, %ecx
subq -0x48(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x2a60(%rax)
movq -0x18(%rbp), %rax
movl $0x0, 0x2a68(%rax)
movq -0x18(%rbp), %rax
movl $0x0, 0x2a6c(%rax)
movq -0x18(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x58(%rbp)
movq -0x18(%rbp), %rax
addq $0x2598, %rax           # imm = 0x2598
movq %rax, -0x60(%rbp)
movq $0x0, -0xb0(%rbp)
movq -0x18(%rbp), %rax
movl $0x0, 0x4(%rax)
movl $0x7b2, -0xa4(%rbp)     # imm = 0x7B2
movq -0x18(%rbp), %rax
movl 0x4(%rax), %eax
addl $0x2, %eax
cmpl $0x4b0, %eax            # imm = 0x4B0
jg 0x391e
movq -0xb0(%rbp), %rdi
movl -0xa4(%rbp), %esi
movq -0x48(%rbp), %rcx
leaq -0x88(%rbp), %rdx
callq 0x4d90
movq %rax, -0xb8(%rbp)
movq -0xb0(%rbp), %rdi
movl -0xa4(%rbp), %esi
movq -0x50(%rbp), %rcx
leaq -0xa0(%rbp), %rdx
callq 0x4d90
movq %rax, -0xc0(%rbp)
movq -0xb8(%rbp), %rax
cmpq -0xc0(%rbp), %rax
jle 0x37ef
movq -0xc0(%rbp), %rcx
movq -0x58(%rbp), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, -0x58(%rbp)
movq %rcx, (%rax)
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movb $0x1, (%rax)
movq -0xb8(%rbp), %rcx
movq -0x58(%rbp), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, -0x58(%rbp)
movq %rcx, (%rax)
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movb $0x0, (%rax)
jmp 0x3845
movq -0xb8(%rbp), %rcx
movq -0x58(%rbp), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, -0x58(%rbp)
movq %rcx, (%rax)
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movb $0x0, (%rax)
movq -0xc0(%rbp), %rcx
movq -0x58(%rbp), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, -0x58(%rbp)
movq %rcx, (%rax)
movq -0x60(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x60(%rbp)
movb $0x1, (%rax)
movq -0x18(%rbp), %rax
movl 0x4(%rax), %ecx
addl $0x2, %ecx
movl %ecx, 0x4(%rax)
movq -0xb0(%rbp), %rax
movq %rax, -0xc8(%rbp)
movl -0xa4(%rbp), %eax
movl $0x4, %ecx
cltd
idivl %ecx
xorl %eax, %eax
cmpl $0x0, %edx
movb %al, -0xed(%rbp)
jne 0x38bc
movl -0xa4(%rbp), %eax
movl $0x64, %ecx
cltd
idivl %ecx
movb $0x1, %al
cmpl $0x0, %edx
movb %al, -0xee(%rbp)
jne 0x38b0
movl -0xa4(%rbp), %eax
movl $0x190, %ecx            # imm = 0x190
cltd
idivl %ecx
cmpl $0x0, %edx
sete %al
movb %al, -0xee(%rbp)
movb -0xee(%rbp), %al
movb %al, -0xed(%rbp)
movb -0xed(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movslq %eax, %rcx
leaq 0x3a13(%rip), %rax      # 0x72e4
movslq (%rax,%rcx,4), %rax
imulq $0x15180, %rax, %rax    # imm = 0x15180
addq -0xc8(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq -0xc8(%rbp), %rax
cmpq -0xb0(%rbp), %rax
jg 0x38fc
jmp 0x391e
movq -0xc8(%rbp), %rax
movq %rax, -0xb0(%rbp)
movl -0xa4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xa4(%rbp)
jmp 0x372a
jmp 0x3caf
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x393b
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x3ddb
movq $0x0, -0xd0(%rbp)
movl $0x0, -0xe8(%rbp)
movl -0xe8(%rbp), %eax
movq -0x18(%rbp), %rcx
cmpl 0x4(%rcx), %eax
jge 0x39d0
movq -0x18(%rbp), %rax
movslq -0xe8(%rbp), %rcx
movzbl 0x2598(%rax,%rcx), %eax
movl %eax, -0xec(%rbp)
movq -0x18(%rbp), %rax
addq $0x2a48, %rax           # imm = 0x2A48
movslq -0xec(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x8(%rax)
jne 0x39bd
movq -0x18(%rbp), %rcx
addq $0x2a48, %rcx           # imm = 0x2A48
movslq -0xec(%rbp), %rax
imulq $0x18, %rax, %rax
addq %rax, %rcx
xorl %eax, %eax
subq (%rcx), %rax
movq %rax, -0xd0(%rbp)
jmp 0x39d0
jmp 0x39bf
movl -0xe8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xe8(%rbp)
jmp 0x3950
movq $0x0, -0xd8(%rbp)
movl $0x0, -0xe8(%rbp)
movl -0xe8(%rbp), %eax
movq -0x18(%rbp), %rcx
cmpl 0x4(%rcx), %eax
jge 0x3a65
movq -0x18(%rbp), %rax
movslq -0xe8(%rbp), %rcx
movzbl 0x2598(%rax,%rcx), %eax
movl %eax, -0xec(%rbp)
movq -0x18(%rbp), %rax
addq $0x2a48, %rax           # imm = 0x2A48
movslq -0xec(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x8(%rax)
je 0x3a52
movq -0x18(%rbp), %rcx
addq $0x2a48, %rcx           # imm = 0x2A48
movslq -0xec(%rbp), %rax
imulq $0x18, %rax, %rax
addq %rax, %rcx
xorl %eax, %eax
subq (%rcx), %rax
movq %rax, -0xd8(%rbp)
jmp 0x3a65
jmp 0x3a54
movl -0xe8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xe8(%rbp)
jmp 0x39e5
movl $0x0, -0xe4(%rbp)
movq -0xd0(%rbp), %rax
movq %rax, -0xe0(%rbp)
movl $0x0, -0xe8(%rbp)
movl -0xe8(%rbp), %eax
movq -0x18(%rbp), %rcx
cmpl 0x4(%rcx), %eax
jge 0x3be4
movq -0x18(%rbp), %rax
movslq -0xe8(%rbp), %rcx
movzbl 0x2598(%rax,%rcx), %eax
movl %eax, -0xec(%rbp)
movq -0x18(%rbp), %rax
addq $0x2a48, %rax           # imm = 0x2A48
movslq -0xec(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movb %al, %dl
movq -0x18(%rbp), %rax
movslq -0xe8(%rbp), %rcx
movb %dl, 0x2598(%rax,%rcx)
movq -0x18(%rbp), %rax
addq $0x2a48, %rax           # imm = 0x2A48
movslq -0xec(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x14(%rax)
je 0x3b02
jmp 0x3b6d
cmpl $0x0, -0xe4(%rbp)
je 0x3b4b
movq -0x18(%rbp), %rax
addq $0x2a48, %rax           # imm = 0x2A48
movslq -0xec(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x10(%rax)
jne 0x3b4b
movq -0x50(%rbp), %rdx
subq -0xd8(%rbp), %rdx
movq -0x18(%rbp), %rax
movslq -0xe8(%rbp), %rcx
addq 0x18(%rax,%rcx,8), %rdx
movq %rdx, 0x18(%rax,%rcx,8)
jmp 0x3b6b
movq -0x48(%rbp), %rdx
subq -0xd0(%rbp), %rdx
movq -0x18(%rbp), %rax
movslq -0xe8(%rbp), %rcx
addq 0x18(%rax,%rcx,8), %rdx
movq %rdx, 0x18(%rax,%rcx,8)
jmp 0x3b6d
movq -0x18(%rbp), %rcx
addq $0x2a48, %rcx           # imm = 0x2A48
movslq -0xec(%rbp), %rax
imulq $0x18, %rax, %rax
addq %rax, %rcx
xorl %eax, %eax
subq (%rcx), %rax
movq %rax, -0xe0(%rbp)
movq -0x18(%rbp), %rax
addq $0x2a48, %rax           # imm = 0x2A48
movslq -0xec(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x8(%rax)
je 0x3bc0
movq -0xe0(%rbp), %rax
movq %rax, -0xd8(%rbp)
jmp 0x3bce
movq -0xe0(%rbp), %rax
movq %rax, -0xd0(%rbp)
jmp 0x3bd0
movl -0xe8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xe8(%rbp)
jmp 0x3a87
movq -0x18(%rbp), %rax
movq -0x18(%rbp), %rcx
movq 0xa25d(%rip), %rdx      # 0xde50
movq %rdx, 0x2a60(%rcx)
movq 0xa257(%rip), %rdx      # 0xde58
movq %rdx, 0x2a68(%rcx)
movq 0xa251(%rip), %rdx      # 0xde60
movq %rdx, 0x2a70(%rcx)
movq 0x2a60(%rcx), %rdx
movq %rdx, 0x2a48(%rax)
movq 0x2a68(%rcx), %rdx
movq %rdx, 0x2a50(%rax)
movq 0x2a70(%rcx), %rcx
movq %rcx, 0x2a58(%rax)
xorl %eax, %eax
movl %eax, %ecx
subq -0x48(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x2a48(%rax)
movq -0x18(%rbp), %rax
movl $0x0, 0x2a50(%rax)
movq -0x18(%rbp), %rax
movl $0x0, 0x2a54(%rax)
xorl %eax, %eax
movl %eax, %ecx
subq -0x50(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x2a60(%rax)
movq -0x18(%rbp), %rax
movl $0x1, 0x2a68(%rax)
movq -0x38(%rbp), %rax
addq $0x1, %rax
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x2a6c(%rax)
movq -0x18(%rbp), %rax
movl $0x2, 0x8(%rax)
jmp 0x3d2c
movq $0x0, -0x40(%rbp)
movq -0x18(%rbp), %rax
movl $0x1, 0x8(%rax)
movq -0x18(%rbp), %rax
movl $0x0, 0x4(%rax)
movq -0x18(%rbp), %rax
movq 0xa176(%rip), %rcx      # 0xde50
movq %rcx, 0x2a48(%rax)
movq 0xa170(%rip), %rcx      # 0xde58
movq %rcx, 0x2a50(%rax)
movq 0xa16a(%rip), %rcx      # 0xde60
movq %rcx, 0x2a58(%rax)
xorl %eax, %eax
movl %eax, %ecx
subq -0x48(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x2a48(%rax)
movq -0x18(%rbp), %rax
movl $0x0, 0x2a50(%rax)
movq -0x18(%rbp), %rax
movl $0x0, 0x2a54(%rax)
movq -0x38(%rbp), %rax
addq $0x1, %rax
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0xc(%rax)
cmpq $0x0, -0x40(%rbp)
je 0x3d5a
movq -0x40(%rbp), %rdx
addq $0x1, %rdx
movq -0x18(%rbp), %rax
movslq 0xc(%rax), %rcx
addq %rdx, %rcx
movl %ecx, 0xc(%rax)
movq -0x18(%rbp), %rax
movslq 0xc(%rax), %rax
cmpq $0x200, %rax            # imm = 0x200
jbe 0x3d73
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x3ddb
movq -0x18(%rbp), %rax
addq $0x4248, %rax           # imm = 0x4248
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rdi
movq -0x28(%rbp), %rsi
movq -0x38(%rbp), %rdx
callq 0x1060
movq -0x38(%rbp), %rax
addq -0x68(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x68(%rbp)
movb $0x0, (%rax)
cmpq $0x0, -0x40(%rbp)
je 0x3dd4
movq -0x68(%rbp), %rdi
movq -0x30(%rbp), %rsi
movq -0x40(%rbp), %rdx
callq 0x1060
movq -0x68(%rbp), %rax
movq -0x40(%rbp), %rcx
movb $0x0, (%rax,%rcx)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0xf0, %rsp
popq %rbp
retq
nopw (%rax,%rax)