// File: /workspace/github_c_makefile_star2_O1/lyda[P]tz/zic.c
// Function: inzsub
static int
inzsub(fields, nfields, iscont)
register char ** const	fields;
const int		nfields;
const int		iscont;
{
	register char *		cp;
	static struct zone	z;
	register int		i_gmtoff, i_rule, i_format;
	register int		i_untilyear, i_untilmonth;
	register int		i_untilday, i_untiltime;
	register int		hasuntil;

	if (iscont) {
		i_gmtoff = ZFC_GMTOFF;
		i_rule = ZFC_RULE;
		i_format = ZFC_FORMAT;
		i_untilyear = ZFC_TILYEAR;
		i_untilmonth = ZFC_TILMONTH;
		i_untilday = ZFC_TILDAY;
		i_untiltime = ZFC_TILTIME;
		z.z_name = NULL;
	} else {
		i_gmtoff = ZF_GMTOFF;
		i_rule = ZF_RULE;
		i_format = ZF_FORMAT;
		i_untilyear = ZF_TILYEAR;
		i_untilmonth = ZF_TILMONTH;
		i_untilday = ZF_TILDAY;
		i_untiltime = ZF_TILTIME;
		z.z_name = ecpyalloc(fields[ZF_NAME]);
	}
	z.z_filename = filename;
	z.z_linenum = linenum;
	z.z_gmtoff = gethms(fields[i_gmtoff], _("invalid UTC offset"), TRUE);
	if ((cp = strchr(fields[i_format], '%')) != 0) {
		if (*++cp != 's' || strchr(cp, '%') != 0) {
			error(_("invalid abbreviation format"));
			return FALSE;
		}
	}
	z.z_rule = ecpyalloc(fields[i_rule]);
	z.z_format = ecpyalloc(fields[i_format]);
	if (max_format_len < strlen(z.z_format))
		max_format_len = strlen(z.z_format);
	hasuntil = nfields > i_untilyear;
	if (hasuntil) {
		z.z_untilrule.r_filename = filename;
		z.z_untilrule.r_linenum = linenum;
		rulesub(&z.z_untilrule,
			fields[i_untilyear],
			"only",
			"",
			(nfields > i_untilmonth) ?
			fields[i_untilmonth] : "Jan",
			(nfields > i_untilday) ? fields[i_untilday] : "1",
			(nfields > i_untiltime) ? fields[i_untiltime] : "0");
		z.z_untiltime = rpytime(&z.z_untilrule,
			z.z_untilrule.r_loyear);
		if (iscont && nzones > 0 &&
			z.z_untiltime > min_time &&
			z.z_untiltime < max_time &&
			zones[nzones - 1].z_untiltime > min_time &&
			zones[nzones - 1].z_untiltime < max_time &&
			zones[nzones - 1].z_untiltime >= z.z_untiltime) {
				error(_(
"Zone continuation line end time is not after end time of previous line"
					));
				return FALSE;
		}
	}
	zones = (struct zone *) (void *) erealloc((char *) zones,
		(int) ((nzones + 1) * sizeof *zones));
	zones[nzones++] = z;
	/*
	** If there was an UNTIL field on this line,
	** there's more information about the zone on the next line.
	*/
	return hasuntil;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %esi, %ebp
movq %rdi, %r14
movl %edx, 0x14(%rsp)
testl %edx, %edx
je 0x5d57
movl $0x6, 0x10(%rsp)
movl $0x5, 0x8(%rsp)
movl $0x4, 0xc(%rsp)
movl $0x3, %r12d
movl $0x2, %r13d
movl $0x1, %ebx
xorl %r15d, %r15d
xorl %eax, %eax
jmp 0x5d99
movq 0x8(%r14), %rdi
callq 0x9c6b
movq %rax, %r15
movq %rax, %rdi
callq 0x58e3
movl $0x8, 0x10(%rsp)
movl $0x7, 0x8(%rsp)
movl $0x6, 0xc(%rsp)
movl $0x5, %r12d
movl $0x4, %r13d
movl $0x3, %ebx
movl $0x2, %eax
movq %r15, 0x84d8(%rip)      # 0xe278
movq 0x8481(%rip), %rcx      # 0xe228
movq %rcx, 0x84ba(%rip)      # 0xe268
movl 0x847c(%rip), %ecx      # 0xe230
movl %ecx, 0x84b6(%rip)      # 0xe270
movq (%r14,%rax,8), %rdi
leaq 0x47e2(%rip), %rsi      # 0xa5a7
movl $0x1, %edx
callq 0x5a35
movq %rax, 0x84aa(%rip)      # 0xe280
movq (%r14,%r13,8), %rdi
movl $0x25, %esi
callq 0x2100
testq %rax, %rax
je 0x5e0c
cmpb $0x73, 0x1(%rax)
jne 0x5ffc
incq %rax
movq %rax, %rdi
movl $0x25, %esi
callq 0x2100
testq %rax, %rax
jne 0x5ffc
movq (%r14,%rbx,8), %rdi
callq 0x9c6b
movq %rax, %r15
movq %rax, %rdi
callq 0x58e3
movq %r15, 0x8461(%rip)      # 0xe288
movq (%r14,%r13,8), %rdi
callq 0x9c6b
movq %rax, %r15
movq %rax, %rdi
callq 0x58e3
movq %r15, 0x844e(%rip)      # 0xe290
movslq 0x84df(%rip), %rbx      # 0xe328
movq %r15, %rdi
callq 0x20e0
cmpq %rbx, %rax
jbe 0x5e5c
movl %eax, 0x84cc(%rip)      # 0xe328
xorl %r15d, %r15d
cmpl %ebp, %r12d
setl %r13b
jge 0x5f8b
movq 0x83b5(%rip), %rax      # 0xe228
movq %rax, 0x8436(%rip)      # 0xe2b0
movl 0x83b0(%rip), %eax      # 0xe230
movl %eax, 0x8432(%rip)      # 0xe2b8
movl %r12d, %eax
movl 0xc(%rsp), %ecx
cmpl %ebp, %ecx
jge 0x5e99
movl %ecx, %ecx
movq (%r14,%rcx,8), %r8
jmp 0x5ea0
leaq 0x473b(%rip), %r8       # 0xa5db
movl 0x8(%rsp), %ecx
cmpl %ebp, %ecx
jge 0x5eb0
movl %ecx, %ecx
movq (%r14,%rcx,8), %r9
jmp 0x5eb7
leaq 0x4728(%rip), %r9       # 0xa5df
movq (%r14,%rax,8), %rsi
movl 0x10(%rsp), %eax
cmpl %ebp, %eax
jge 0x5ecb
movl %eax, %eax
movq (%r14,%rax,8), %rax
jmp 0x5ed2
leaq 0x4f27(%rip), %rax      # 0xadf9
cmpl $0x0, 0x14(%rsp)
setne %bpl
movq %rax, (%rsp)
leaq 0x83ca(%rip), %rbx      # 0xe2b0
leaq 0x46e9(%rip), %rdx      # 0xa5d6
leaq 0x43e4(%rip), %rcx      # 0xa2d8
movq %rbx, %rdi
callq 0x6016
movl 0x83c6(%rip), %esi      # 0xe2c8
movq %rbx, %rdi
callq 0x6371
movq %rax, 0x840f(%rip)      # 0xe320
movl 0x82f1(%rip), %ecx      # 0xe208
testl %ecx, %ecx
setg %dl
andb %bpl, %dl
cmpb $0x1, %dl
jne 0x5f8b
movabsq $0x7fffffffffffffff, %rdi # imm = 0x7FFFFFFFFFFFFFFF
xorl %edx, %edx
cmpb $0x0, 0x8311(%rip)      # 0xe248
leaq 0x1(%rdi), %rsi
cmovneq %rsi, %rdx
cmpq %rdx, %rax
jle 0x5f8b
xorl %esi, %esi
cmpb $0x0, 0x8303(%rip)      # 0xe250
cmovneq %rdi, %rsi
cmpq %rsi, %rax
jge 0x5f8b
movl %ecx, %ecx
movq 0x82b1(%rip), %rdi      # 0xe210
leaq (%rcx,%rcx,2), %rcx
shlq $0x6, %rcx
movq -0x8(%rdi,%rcx), %rcx
cmpq %rdx, %rcx
setle %dl
cmpq %rsi, %rcx
setge %sil
orb %dl, %sil
cmpq %rax, %rcx
setl %al
orb %sil, %al
je 0x600d
movb %r13b, %r15b
movq 0x827b(%rip), %rdi      # 0xe210
movl 0x826d(%rip), %eax      # 0xe208
leal (%rax,%rax,2), %esi
shll $0x6, %esi
addl $0xc0, %esi
callq 0x9bda
movq %rax, %rbx
movq %rax, %rdi
callq 0x58e3
movq %rbx, 0x8252(%rip)      # 0xe210
movslq 0x8243(%rip), %rax      # 0xe208
leal 0x1(%rax), %ecx
movl %ecx, 0x823a(%rip)      # 0xe208
leaq (%rax,%rax,2), %rdi
shlq $0x6, %rdi
addq %rbx, %rdi
leaq 0x8288(%rip), %rsi      # 0xe268
movl $0xc0, %edx
callq 0x21e0
movl %r15d, %eax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x45b7(%rip), %rdi      # 0xa5ba
callq 0x2300
xorl %r15d, %r15d
jmp 0x5fea
leaq 0x45cd(%rip), %rdi      # 0xa5e1
jmp 0x6003