// File: /workspace/github_c_makefile_star2_O0/lyda[P]tz/zic.c
// Function: newabbr
static void
newabbr(string)
const char * const	string;
{
	register int	i;

	if (strcmp(string, GRANDPARENTED) != 0) {
		register const char *	cp;
		register char *		wp;

		/*
		** Want one to ZIC_MAX_ABBR_LEN_WO_WARN alphabetics
		** optionally followed by a + or - and a number from 1 to 14.
		*/
		cp = string;
		wp = NULL;
		while (isascii((unsigned char) *cp) &&
			isalpha((unsigned char) *cp))
				++cp;
		if (cp - string == 0)
wp = _("time zone abbreviation lacks alphabetic at start");
		if (noise && cp - string > 3)
wp = _("time zone abbreviation has more than 3 alphabetics");
		if (cp - string > ZIC_MAX_ABBR_LEN_WO_WARN)
wp = _("time zone abbreviation has too many alphabetics");
		if (wp == NULL && (*cp == '+' || *cp == '-')) {
			++cp;
			if (isascii((unsigned char) *cp) &&
				isdigit((unsigned char) *cp))
					if (*cp++ == '1' &&
						*cp >= '0' && *cp <= '4')
							++cp;
		}
		if (*cp != '\0')
wp = _("time zone abbreviation differs from POSIX standard");
		if (wp != NULL) {
			wp = ecpyalloc(wp);
			wp = ecatalloc(wp, " (");
			wp = ecatalloc(wp, string);
			wp = ecatalloc(wp, ")");
			warning(wp);
			ifree(wp);
		}
	}
	i = strlen(string) + 1;
	if (charcnt + i > TZ_MAX_CHARS) {
		error(_("too many, or too long, time zone abbreviations"));
		exit(EXIT_FAILURE);
	}
	(void) strcpy(&chars[charcnt], string);
	charcnt += eitol(i);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x652d(%rip), %rsi      # 0xed14
callq 0x2160
cmpl $0x0, %eax
je 0x89e6
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
movq -0x18(%rbp), %rax
movzbl (%rax), %ecx
andl $-0x80, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x21(%rbp)
jne 0x883d
callq 0x22a0
movq (%rax), %rax
movq -0x18(%rbp), %rcx
movzbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x400, %eax            # imm = 0x400
cmpl $0x0, %eax
setne %al
movb %al, -0x21(%rbp)
movb -0x21(%rbp), %al
testb $0x1, %al
jne 0x8846
jmp 0x8854
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x8805
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
subq %rcx, %rax
cmpq $0x0, %rax
jne 0x8870
leaq 0x64d9(%rip), %rax      # 0xed45
movq %rax, -0x20(%rbp)
cmpl $0x0, 0x9969(%rip)      # 0x121e0
je 0x8895
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
subq %rcx, %rax
cmpq $0x3, %rax
jle 0x8895
leaq 0x64e5(%rip), %rax      # 0xed76
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
subq %rcx, %rax
cmpq $0x6, %rax
jle 0x88b1
leaq 0x64fc(%rip), %rax      # 0xeda9
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x894e
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2b, %eax
je 0x88d4
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
jne 0x894e
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movzbl (%rax), %eax
andl $-0x80, %eax
cmpl $0x0, %eax
jne 0x894c
callq 0x22a0
movq (%rax), %rax
movq -0x18(%rbp), %rcx
movzbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
je 0x894c
movq -0x18(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x18(%rbp)
movsbl (%rax), %eax
cmpl $0x31, %eax
jne 0x894a
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x30, %eax
jl 0x894a
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x34, %eax
jg 0x894a
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x894c
jmp 0x894e
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x8965
leaq 0x6478(%rip), %rax      # 0xedd9
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x89e4
movq -0x20(%rbp), %rdi
callq 0xd140
movq %rax, %rdi
callq 0x40b0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
leaq 0x6480(%rip), %rsi      # 0xee0c
callq 0xd090
movq %rax, %rdi
callq 0x40b0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
movq -0x8(%rbp), %rsi
callq 0xd090
movq %rax, %rdi
callq 0x40b0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
leaq 0x6072(%rip), %rsi      # 0xea33
callq 0xd090
movq %rax, %rdi
callq 0x40b0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x4000
movq -0x20(%rbp), %rdi
callq 0xd160
jmp 0x89e6
movq -0x8(%rbp), %rdi
callq 0x20d0
addq $0x1, %rax
movl %eax, -0xc(%rbp)
movl 0x9d10(%rip), %eax      # 0x1270c
addl -0xc(%rbp), %eax
cmpl $0x32, %eax
jle 0x8a1a
leaq 0x6404(%rip), %rdi      # 0xee0f
callq 0x4110
movl $0x1, %edi
callq 0x2270
movslq 0x9ceb(%rip), %rax      # 0x1270c
leaq 0xa5f8(%rip), %rdi      # 0x13020
addq %rax, %rdi
movq -0x8(%rbp), %rsi
callq 0x2080
movl -0xc(%rbp), %edi
callq 0x4660
movq %rax, %rcx
movslq 0x9cc6(%rip), %rax      # 0x1270c
addq %rcx, %rax
movl %eax, 0x9cbd(%rip)      # 0x1270c
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)