// File: /workspace/github_c_makefile_star2_O0/lyda[P]tz/zic.c
// Function: associate
static void
associate(void)
{
	register struct zone *	zp;
	register struct rule *	rp;
	register int		base, out;
	register int		i, j;

	if (nrules != 0) {
		(void) qsort((void *) rules, (size_t) nrules,
			(size_t) sizeof *rules, rcomp);
		for (i = 0; i < nrules - 1; ++i) {
			if (strcmp(rules[i].r_name,
				rules[i + 1].r_name) != 0)
					continue;
			if (strcmp(rules[i].r_filename,
				rules[i + 1].r_filename) == 0)
					continue;
			eat(rules[i].r_filename, rules[i].r_linenum);
			warning(_("same rule name in multiple files"));
			eat(rules[i + 1].r_filename, rules[i + 1].r_linenum);
			warning(_("same rule name in multiple files"));
			for (j = i + 2; j < nrules; ++j) {
				if (strcmp(rules[i].r_name,
					rules[j].r_name) != 0)
						break;
				if (strcmp(rules[i].r_filename,
					rules[j].r_filename) == 0)
						continue;
				if (strcmp(rules[i + 1].r_filename,
					rules[j].r_filename) == 0)
						continue;
				break;
			}
			i = j - 1;
		}
	}
	for (i = 0; i < nzones; ++i) {
		zp = &zones[i];
		zp->z_rules = NULL;
		zp->z_nrules = 0;
	}
	for (base = 0; base < nrules; base = out) {
		rp = &rules[base];
		for (out = base + 1; out < nrules; ++out)
			if (strcmp(rp->r_name, rules[out].r_name) != 0)
				break;
		for (i = 0; i < nzones; ++i) {
			zp = &zones[i];
			if (strcmp(zp->z_rule, rp->r_name) != 0)
				continue;
			zp->z_rules = rp;
			zp->z_nrules = out - base;
		}
	}
	for (i = 0; i < nzones; ++i) {
		zp = &zones[i];
		if (zp->z_nrules == 0) {
			/*
			** Maybe we have a local standard time offset.
			*/
			eat(zp->z_filename, zp->z_linenum);
			zp->z_stdoff = gethms(zp->z_rule, _("unruly zone"),
				TRUE);
			/*
			** Note, though, that if there's no rule,
			** a '%s' in the format is a bad thing.
			*/
			if (strchr(zp->z_format, '%') != 0)
				error(_("%s in ruleless zone"));
		}
	}
	if (errors)
		exit(EXIT_FAILURE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
cmpl $0x0, 0xf409(%rip)      # 0x12238
je 0x305a
movq 0xf404(%rip), %rdi      # 0x12240
movslq 0xf3f5(%rip), %rsi      # 0x12238
movl $0x70, %edx
leaq 0x14f1(%rip), %rcx      # 0x4340
callq 0x20b0
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movl 0xf3d4(%rip), %ecx      # 0x12238
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x3058
movq 0xf3ca(%rip), %rax      # 0x12240
movslq -0x1c(%rbp), %rcx
imulq $0x70, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rdi
movq 0xf3b4(%rip), %rax      # 0x12240
movl -0x1c(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
imulq $0x70, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rsi
callq 0x2160
cmpl $0x0, %eax
je 0x2eaf
jmp 0x304a
movq 0xf38a(%rip), %rax      # 0x12240
movslq -0x1c(%rbp), %rcx
imulq $0x70, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rdi
movq 0xf375(%rip), %rax      # 0x12240
movl -0x1c(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
imulq $0x70, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rsi
callq 0x2160
cmpl $0x0, %eax
jne 0x2eed
jmp 0x304a
movq 0xf34c(%rip), %rax      # 0x12240
movslq -0x1c(%rbp), %rcx
imulq $0x70, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rdi
movq 0xf337(%rip), %rax      # 0x12240
movslq -0x1c(%rbp), %rcx
imulq $0x70, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %esi
callq 0x3d60
leaq 0xb56c(%rip), %rdi      # 0xe48f
callq 0x4000
movq 0xf311(%rip), %rax      # 0x12240
movl -0x1c(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
imulq $0x70, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rdi
movq 0xf2f7(%rip), %rax      # 0x12240
movl -0x1c(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
imulq $0x70, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %esi
callq 0x3d60
leaq 0xb527(%rip), %rdi      # 0xe48f
callq 0x4000
movl -0x1c(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x20(%rbp)
movl -0x20(%rbp), %eax
cmpl 0xf2b9(%rip), %eax      # 0x12238
jge 0x3041
movq 0xf2b4(%rip), %rax      # 0x12240
movslq -0x1c(%rbp), %rcx
imulq $0x70, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rdi
movq 0xf29e(%rip), %rax      # 0x12240
movslq -0x20(%rbp), %rcx
imulq $0x70, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rsi
callq 0x2160
cmpl $0x0, %eax
je 0x2fc0
jmp 0x3041
movq 0xf279(%rip), %rax      # 0x12240
movslq -0x1c(%rbp), %rcx
imulq $0x70, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rdi
movq 0xf264(%rip), %rax      # 0x12240
movslq -0x20(%rbp), %rcx
imulq $0x70, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rsi
callq 0x2160
cmpl $0x0, %eax
jne 0x2ff6
jmp 0x3033
movq 0xf243(%rip), %rax      # 0x12240
movl -0x1c(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
imulq $0x70, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rdi
movq 0xf229(%rip), %rax      # 0x12240
movslq -0x20(%rbp), %rcx
imulq $0x70, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rsi
callq 0x2160
cmpl $0x0, %eax
jne 0x3031
jmp 0x3033
jmp 0x3041
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x2f76
movl -0x20(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x2e5b
jmp 0x305a
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
cmpl 0xf17e(%rip), %eax      # 0x121e8
jge 0x30a7
movq 0xf17d(%rip), %rax      # 0x121f0
movslq -0x1c(%rbp), %rcx
imulq $0xc0, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq $0x0, 0x38(%rax)
movq -0x8(%rbp), %rax
movl $0x0, 0x40(%rax)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x3061
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
cmpl 0xf181(%rip), %eax      # 0x12238
jge 0x3196
movq 0xf17c(%rip), %rax      # 0x12240
movslq -0x14(%rbp), %rcx
imulq $0x70, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x10(%rbp)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
cmpl 0xf153(%rip), %eax      # 0x12238
jge 0x311e
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
movq 0xf14a(%rip), %rax      # 0x12240
movslq -0x18(%rbp), %rcx
imulq $0x70, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rsi
callq 0x2160
cmpl $0x0, %eax
je 0x3111
jmp 0x311e
jmp 0x3113
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x30dc
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
cmpl 0xf0ba(%rip), %eax      # 0x121e8
jge 0x3189
movq 0xf0b9(%rip), %rax      # 0x121f0
movslq -0x1c(%rbp), %rcx
imulq $0xc0, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0x2160
cmpl $0x0, %eax
je 0x3165
jmp 0x317e
movq -0x10(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x38(%rax)
movl -0x18(%rbp), %ecx
subl -0x14(%rbp), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x40(%rax)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x3125
jmp 0x318b
movl -0x18(%rbp), %eax
movl %eax, -0x14(%rbp)
jmp 0x30ae
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
cmpl 0xf042(%rip), %eax      # 0x121e8
jge 0x323c
movq 0xf03d(%rip), %rax      # 0x121f0
movslq -0x1c(%rbp), %rcx
imulq $0xc0, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x40(%rax)
jne 0x322c
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movl 0x8(%rax), %esi
callq 0x3d60
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
leaq 0xb2bf(%rip), %rsi      # 0xe4b0
movl $0x1, %edx
callq 0x4370
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rdi
movl $0x25, %esi
callq 0x20f0
cmpq $0x0, %rax
je 0x322a
leaq 0xb297(%rip), %rdi      # 0xe4bc
callq 0x4110
jmp 0x322c
jmp 0x322e
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x319d
cmpl $0x0, 0xefa1(%rip)      # 0x121e4
je 0x324f
movl $0x1, %edi
callq 0x2270
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)