// File: /workspace/github_c_makefile_star2_O0/NedFreed[P]msglint/msglint.c
// Function: tokenize
static msgtoken *tokenize(msgcontext *ctx, const char *dat, int len,
			  int flags, dbinfo *db)
{
    msgtoken *head, *last, **pcur;
    const char *start = dat;
    int clevel, spmask, tflags, toknum = 0;

    if ((flags & HEADTYPE_MASK) == UNSTRUCTURED) {
	head = NULL;
	pcur = &head;
	return (newmsgtoken(&pcur, tok_text, start, len, toknum++));
    }
    spmask = (flags & TSPECIAL) ? TSPECIAL_BIT : SPECIAL_BIT;
    head = last = NULL;
    pcur = &head;
    while (len > 0) {
	/* identify a comment */
	if (*dat == '(') {
	    if (dat != start) {
		last = newmsgtoken(&pcur, tok_atom, start, dat - start,
				   toknum++);
	    }
	    if (last != NULL) last->whiteafter |= 2;
	    start = dat;
	    clevel = 1;
	    ++dat, --len;
	    while (len > 0 && (*dat != ')' || --clevel > 0)) {
		if (*dat == '\\' && len > 1 &&
		    (dat[1] == '(' || dat[1] == ')')) {
		    wprintf(db, w_warn, "quoted comment delimiters unwise");
		    dat += 2, len -= 2;
		    continue;
	        }
		if (*dat == '(') {
		    wprintf(db, w_warn, "nested comments unwise");
		    ++clevel;
		} else if ((unsigned char) *dat > 127) {
		    wprintf(db, w_error, "8-bit");
		    if (ctx->mpart != NULL) {
		        ctx->mpart->saw8bit = 1;
		    }
		}
		++dat, --len;
	    }
	    if (len == 0) {
		wprintf(db, w_error, "unbalanced comment");
	    } else {
		++dat, --len;
	    }
	    newmsgtoken(&pcur, tok_comment, start, dat - start, toknum++);
	    start = dat;
	    continue;
	}

	/* identify a quoted-string */
	if (*dat == '"') {
	    if (dat != start) {
		last = newmsgtoken(&pcur, tok_atom, start, dat - start,
				   toknum++);
	    }
	    tflags = QSTRING_ATOM;
	    start = dat;
	    ++dat, --len;
	    while (len > 0 && *dat != '"') {
		if (*dat == '\\' && len > 1 && dat[1] == '"') {
		    dat += 2, len -= 2;
		    tflags = 0;
		} else {
		    if (tflags &&
			(special_table[(unsigned char) *dat] & spmask) != 0) {
			tflags = 0;
		    }
		    if (*dat == '\n' || *dat == '\r') {
			wprintf(db, w_warn, "newlines in quoted string don't "
			       "work well", db);
		    } else if ((unsigned char) *dat > 127) {
			wprintf(db, w_error, "8-bit", db);
		        if (ctx->mpart != NULL) {
		            ctx->mpart->saw8bit = 1;
		        }
		    }
		    ++dat, --len;
		}
	    }
	    if (tflags && dat - start - 1 > 78) tflags = 0;
	    last = newmsgtoken(&pcur, tok_qstring, start + 1, dat - start - 1,
			       toknum++);
	    last->flags = tflags;
	    if (len == 0) {
		wprintf(db, w_error, "unbalanced quote");
	    } else {
		++dat, --len;
	    }
	    start = dat;
	    continue;
	}

	/* identify a domain literal */
	if (*dat == '[') {
	    if (dat != start) {
		last = newmsgtoken(&pcur, tok_atom, start, dat - start,
				   toknum++);
	    }
	    start = dat;
	    ++dat, --len;
	    while (len > 0 && *dat != ']') {
		if (*dat == '\\' && len > 1 && dat[1] == ']') {
		    dat += 2;
		    len -= 2;
		    wprintf(db, w_warn, "quoted domain separators in domain "
			   "literal unwise");
		    continue;
		}
		if ((unsigned char) *dat >= 128) {
		    wprintf(db, w_error, "8-bit in domain literal %c", *dat);
		    if (ctx->mpart != NULL) {
		        ctx->mpart->saw8bit = 1;
		    }
		} else if (!isdigit(*dat) && *dat != '.') {
		    wprintf(db, w_warn, "unwise domain-literal char %d",
			    *dat);
		}
		++dat, --len;
	    }
	    if (len == 0) {
		wprintf(db, w_error, "unbalanced domain literal");
	    } else {
		++dat, --len;
	    }
	    last = newmsgtoken(&pcur, tok_dstring, start, dat - start,
			       toknum++);
	    start = dat;
	    continue;
	}

	/* handle specials */
	if (special_table[(unsigned char) *dat] & spmask) {
	    if (dat != start) {
		newmsgtoken(&pcur, tok_atom, start, dat - start, toknum++);
	    }
	    last = newmsgtoken(&pcur, tok_special, dat, 1, toknum++);
	    if (*dat == ';' && (flags & SEMIEND)) {
		++dat, --len;
		while (len > 0 &&
		       (dat[len - 1] == '\n' || dat[len - 1] == '\r')) {
		    --len;
		}
		newmsgtoken(&pcur, tok_text, dat, len, toknum++);
		return (head);
	    }
	    ++dat, --len;
	    start = dat;
	    continue;
	}

	/* handle whitespace */
	if (*dat == ' ' || *dat == '\t' || *dat == '\r' || *dat == '\n') {
	    if (dat != start) {
		last = newmsgtoken(&pcur, tok_atom, start, dat - start,
				   toknum++);
	    }
	    if (last != NULL) last->whiteafter |= 1;
	    ++dat, --len;
	    start = dat;
	    continue;
	}

	/* skip illegal characters */
	if (*dat < ' ' || (unsigned char) *dat > 126) {
	    if ((unsigned char) *dat >= 128 && ctx->mpart != NULL) {
	        ctx->mpart->saw8bit = 1;
	    }
	    if (dat != start) {
		last = newmsgtoken(&pcur, tok_atom, start, dat - start,
				   toknum++);
	    }
	    wprintf(db, w_error, "illegal syntax character %c", *dat);
	    while (len > 0 && (*dat < ' ' || (unsigned char) *dat > 126)) {
		++dat, --len;
	    }
	    start = dat;
	    continue;
	}

	/* it's an atom char, just advance */
	++dat, --len;
    }
    if (dat != start) {
	newmsgtoken(&pcur, tok_atom, start, dat - start, toknum++);
    }

    return (head);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movl %edx, -0x1c(%rbp)
movl %ecx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x48(%rbp)
movl $0x0, -0x58(%rbp)
movl -0x20(%rbp), %eax
andl $0x3, %eax
cmpl $0x0, %eax
jne 0x623f
movq $0x0, -0x30(%rbp)
leaq -0x30(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x48(%rbp), %rdx
movl -0x1c(%rbp), %ecx
movl -0x58(%rbp), %r8d
movl %r8d, %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
leaq -0x40(%rbp), %rdi
movl $0x6, %esi
callq 0x9e00
movq %rax, -0x8(%rbp)
jmp 0x6c25
movl -0x20(%rbp), %edx
andl $0x2, %edx
movl $0x1, %eax
movl $0x2, %ecx
cmpl $0x0, %edx
cmovnel %ecx, %eax
movl %eax, -0x50(%rbp)
movq $0x0, -0x38(%rbp)
movq $0x0, -0x30(%rbp)
leaq -0x30(%rbp), %rax
movq %rax, -0x40(%rbp)
cmpl $0x0, -0x1c(%rbp)
jle 0x6be7
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x28, %eax
jne 0x6497
movq -0x18(%rbp), %rax
cmpq -0x48(%rbp), %rax
je 0x62c4
movq -0x48(%rbp), %rdx
movq -0x18(%rbp), %rax
movq -0x48(%rbp), %rcx
subq %rcx, %rax
movl %eax, %ecx
movl -0x58(%rbp), %r8d
movl %r8d, %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
leaq -0x40(%rbp), %rdi
movl $0x2, %esi
callq 0x9e00
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
je 0x62d8
movq -0x38(%rbp), %rax
movl 0x20(%rax), %ecx
orl $0x2, %ecx
movl %ecx, 0x20(%rax)
movq -0x18(%rbp), %rax
movq %rax, -0x48(%rbp)
movl $0x1, -0x4c(%rbp)
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
movl -0x1c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x1c(%rbp)
xorl %eax, %eax
cmpl $0x0, -0x1c(%rbp)
movb %al, -0x59(%rbp)
jle 0x6330
movq -0x18(%rbp), %rax
movsbl (%rax), %ecx
movb $0x1, %al
cmpl $0x29, %ecx
movb %al, -0x5a(%rbp)
jne 0x632a
movl -0x4c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x4c(%rbp)
cmpl $0x0, %eax
setg %al
movb %al, -0x5a(%rbp)
movb -0x5a(%rbp), %al
movb %al, -0x59(%rbp)
movb -0x59(%rbp), %al
testb $0x1, %al
jne 0x633c
jmp 0x6428
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5c, %eax
jne 0x639b
cmpl $0x1, -0x1c(%rbp)
jle 0x639b
movq -0x18(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x28, %eax
je 0x6368
movq -0x18(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x29, %eax
jne 0x639b
movq -0x28(%rbp), %rdi
leaq 0x8ffe(%rip), %rsi      # 0xf371
leaq 0xacd9(%rip), %rdx      # 0x11053
movb $0x0, %al
callq 0x2e50
movq -0x18(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x18(%rbp)
movl -0x1c(%rbp), %eax
subl $0x2, %eax
movl %eax, -0x1c(%rbp)
jmp 0x62fc
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x28, %eax
jne 0x63cb
movq -0x28(%rbp), %rdi
leaq 0x8fbf(%rip), %rsi      # 0xf371
leaq 0xacbb(%rip), %rdx      # 0x11074
movb $0x0, %al
callq 0x2e50
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x640e
movq -0x18(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x7f, %eax
jle 0x640c
movq -0x28(%rbp), %rdi
leaq 0x9334(%rip), %rsi      # 0xf716
leaq 0xaca2(%rip), %rdx      # 0x1108b
movb $0x0, %al
callq 0x2e50
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x640a
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movl $0x1, 0x5c(%rax)
jmp 0x640c
jmp 0x640e
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
movl -0x1c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x62fc
cmpl $0x0, -0x1c(%rbp)
jne 0x6449
movq -0x28(%rbp), %rdi
leaq 0x92dd(%rip), %rsi      # 0xf716
leaq 0xac51(%rip), %rdx      # 0x11091
movb $0x0, %al
callq 0x2e50
jmp 0x645e
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
movl -0x1c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x1c(%rbp)
movq -0x48(%rbp), %rdx
movq -0x18(%rbp), %rax
movq -0x48(%rbp), %rcx
subq %rcx, %rax
movl %eax, %ecx
movl -0x58(%rbp), %r8d
movl %r8d, %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
leaq -0x40(%rbp), %rdi
movl $0x5, %esi
callq 0x9e00
movq -0x18(%rbp), %rax
movq %rax, -0x48(%rbp)
jmp 0x6270
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x22, %eax
jne 0x66d4
movq -0x18(%rbp), %rax
cmpq -0x48(%rbp), %rax
je 0x64e1
movq -0x48(%rbp), %rdx
movq -0x18(%rbp), %rax
movq -0x48(%rbp), %rcx
subq %rcx, %rax
movl %eax, %ecx
movl -0x58(%rbp), %r8d
movl %r8d, %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
leaq -0x40(%rbp), %rdi
movl $0x2, %esi
callq 0x9e00
movq %rax, -0x38(%rbp)
movl $0x1, -0x54(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
movl -0x1c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x1c(%rbp)
xorl %eax, %eax
cmpl $0x0, -0x1c(%rbp)
movb %al, -0x5b(%rbp)
jle 0x6520
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x22, %eax
setne %al
movb %al, -0x5b(%rbp)
movb -0x5b(%rbp), %al
testb $0x1, %al
jne 0x652c
jmp 0x662d
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5c, %eax
jne 0x656c
cmpl $0x1, -0x1c(%rbp)
jle 0x656c
movq -0x18(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x22, %eax
jne 0x656c
movq -0x18(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x18(%rbp)
movl -0x1c(%rbp), %eax
subl $0x2, %eax
movl %eax, -0x1c(%rbp)
movl $0x0, -0x54(%rbp)
jmp 0x6628
cmpl $0x0, -0x54(%rbp)
je 0x6595
movq -0x18(%rbp), %rax
movzbl (%rax), %eax
movl %eax, %ecx
leaq 0xe88e(%rip), %rax      # 0x14e10
movzbl (%rax,%rcx), %eax
andl -0x50(%rbp), %eax
cmpl $0x0, %eax
je 0x6595
movl $0x0, -0x54(%rbp)
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
je 0x65ad
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0xd, %eax
jne 0x65cc
movq -0x28(%rbp), %rdi
movq -0x28(%rbp), %rcx
leaq 0x8db5(%rip), %rsi      # 0xf371
leaq 0xaae1(%rip), %rdx      # 0x110a4
movb $0x0, %al
callq 0x2e50
jmp 0x6613
movq -0x18(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x7f, %eax
jle 0x6611
movq -0x28(%rbp), %rdi
movq -0x28(%rbp), %rcx
leaq 0x912f(%rip), %rsi      # 0xf716
leaq 0xaa9d(%rip), %rdx      # 0x1108b
movb $0x0, %al
callq 0x2e50
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x660f
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movl $0x1, 0x5c(%rax)
jmp 0x6611
jmp 0x6613
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
movl -0x1c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x6505
cmpl $0x0, -0x54(%rbp)
je 0x664f
movq -0x18(%rbp), %rax
movq -0x48(%rbp), %rcx
subq %rcx, %rax
subq $0x1, %rax
cmpq $0x4e, %rax
jle 0x664f
movl $0x0, -0x54(%rbp)
movq -0x48(%rbp), %rdx
addq $0x1, %rdx
movq -0x18(%rbp), %rax
movq -0x48(%rbp), %rcx
subq %rcx, %rax
subq $0x1, %rax
movl %eax, %ecx
movl -0x58(%rbp), %r8d
movl %r8d, %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
leaq -0x40(%rbp), %rdi
movl $0x3, %esi
callq 0x9e00
movq %rax, -0x38(%rbp)
movl -0x54(%rbp), %ecx
movq -0x38(%rbp), %rax
movl %ecx, 0x24(%rax)
cmpl $0x0, -0x1c(%rbp)
jne 0x66b2
movq -0x28(%rbp), %rdi
leaq 0x9074(%rip), %rsi      # 0xf716
leaq 0xaa25(%rip), %rdx      # 0x110ce
movb $0x0, %al
callq 0x2e50
jmp 0x66c7
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
movl -0x1c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x1c(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x48(%rbp)
jmp 0x6270
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5b, %eax
jne 0x68d6
movq -0x18(%rbp), %rax
cmpq -0x48(%rbp), %rax
je 0x671e
movq -0x48(%rbp), %rdx
movq -0x18(%rbp), %rax
movq -0x48(%rbp), %rcx
subq %rcx, %rax
movl %eax, %ecx
movl -0x58(%rbp), %r8d
movl %r8d, %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
leaq -0x40(%rbp), %rdi
movl $0x2, %esi
callq 0x9e00
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
movl -0x1c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x1c(%rbp)
xorl %eax, %eax
cmpl $0x0, -0x1c(%rbp)
movb %al, -0x5c(%rbp)
jle 0x6756
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5d, %eax
setne %al
movb %al, -0x5c(%rbp)
movb -0x5c(%rbp), %al
testb $0x1, %al
jne 0x6762
jmp 0x6863
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5c, %eax
jne 0x67b1
cmpl $0x1, -0x1c(%rbp)
jle 0x67b1
movq -0x18(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x5d, %eax
jne 0x67b1
movq -0x18(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x18(%rbp)
movl -0x1c(%rbp), %eax
subl $0x2, %eax
movl %eax, -0x1c(%rbp)
movq -0x28(%rbp), %rdi
leaq 0x8bd0(%rip), %rsi      # 0xf371
leaq 0xa937(%rip), %rdx      # 0x110df
movb $0x0, %al
callq 0x2e50
jmp 0x673b
movq -0x18(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x80, %eax
jl 0x67fb
movq -0x28(%rbp), %rdi
movq -0x18(%rbp), %rax
movsbl (%rax), %ecx
leaq 0x8f45(%rip), %rsi      # 0xf716
leaq 0xa939(%rip), %rdx      # 0x11111
movb $0x0, %al
callq 0x2e50
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x67f9
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movl $0x1, 0x5c(%rax)
jmp 0x6849
callq 0x21d0
movq (%rax), %rax
movq -0x18(%rbp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
jne 0x6847
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2e, %eax
je 0x6847
movq -0x28(%rbp), %rdi
movq -0x18(%rbp), %rax
movsbl (%rax), %ecx
leaq 0x8b38(%rip), %rsi      # 0xf371
leaq 0xa8ec(%rip), %rdx      # 0x1112c
movb $0x0, %al
callq 0x2e50
jmp 0x6849
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
movl -0x1c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x673b
cmpl $0x0, -0x1c(%rbp)
jne 0x6884
movq -0x28(%rbp), %rdi
leaq 0x8ea2(%rip), %rsi      # 0xf716
leaq 0xa8cf(%rip), %rdx      # 0x1114a
movb $0x0, %al
callq 0x2e50
jmp 0x6899
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
movl -0x1c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x1c(%rbp)
movq -0x48(%rbp), %rdx
movq -0x18(%rbp), %rax
movq -0x48(%rbp), %rcx
subq %rcx, %rax
movl %eax, %ecx
movl -0x58(%rbp), %r8d
movl %r8d, %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
leaq -0x40(%rbp), %rdi
movl $0x4, %esi
callq 0x9e00
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x48(%rbp)
jmp 0x6270
movq -0x18(%rbp), %rax
movzbl (%rax), %eax
movl %eax, %ecx
leaq 0xe52a(%rip), %rax      # 0x14e10
movzbl (%rax,%rcx), %eax
andl -0x50(%rbp), %eax
cmpl $0x0, %eax
je 0x6a30
movq -0x18(%rbp), %rax
cmpq -0x48(%rbp), %rax
je 0x692c
movq -0x48(%rbp), %rdx
movq -0x18(%rbp), %rax
movq -0x48(%rbp), %rcx
subq %rcx, %rax
movl %eax, %ecx
movl -0x58(%rbp), %r8d
movl %r8d, %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
leaq -0x40(%rbp), %rdi
movl $0x2, %esi
callq 0x9e00
movq -0x18(%rbp), %rdx
movl -0x58(%rbp), %r8d
movl %r8d, %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
leaq -0x40(%rbp), %rdi
movl $0x1, %ecx
movl %ecx, %esi
callq 0x9e00
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3b, %eax
jne 0x6a0e
movl -0x20(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x6a0e
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
movl -0x1c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x1c(%rbp)
xorl %eax, %eax
cmpl $0x0, -0x1c(%rbp)
movb %al, -0x5d(%rbp)
jle 0x69cb
movq -0x18(%rbp), %rax
movl -0x1c(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %ecx
movb $0x1, %al
cmpl $0xa, %ecx
movb %al, -0x5e(%rbp)
je 0x69c5
movq -0x18(%rbp), %rax
movl -0x1c(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %eax
cmpl $0xd, %eax
sete %al
movb %al, -0x5e(%rbp)
movb -0x5e(%rbp), %al
movb %al, -0x5d(%rbp)
movb -0x5d(%rbp), %al
testb $0x1, %al
jne 0x69d4
jmp 0x69df
movl -0x1c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x6985
movq -0x18(%rbp), %rdx
movl -0x1c(%rbp), %ecx
movl -0x58(%rbp), %r8d
movl %r8d, %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
leaq -0x40(%rbp), %rdi
movl $0x6, %esi
callq 0x9e00
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x6c25
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
movl -0x1c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x1c(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x48(%rbp)
jmp 0x6270
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x20, %eax
je 0x6a60
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
je 0x6a60
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0xd, %eax
je 0x6a60
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
jne 0x6ad0
movq -0x18(%rbp), %rax
cmpq -0x48(%rbp), %rax
je 0x6a9a
movq -0x48(%rbp), %rdx
movq -0x18(%rbp), %rax
movq -0x48(%rbp), %rcx
subq %rcx, %rax
movl %eax, %ecx
movl -0x58(%rbp), %r8d
movl %r8d, %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
leaq -0x40(%rbp), %rdi
movl $0x2, %esi
callq 0x9e00
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
je 0x6aae
movq -0x38(%rbp), %rax
movl 0x20(%rax), %ecx
orl $0x1, %ecx
movl %ecx, 0x20(%rax)
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
movl -0x1c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x1c(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x48(%rbp)
jmp 0x6270
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x20, %eax
jl 0x6aec
movq -0x18(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x7e, %eax
jle 0x6bcd
movq -0x18(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x80, %eax
jl 0x6b14
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x6b14
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movl $0x1, 0x5c(%rax)
movq -0x18(%rbp), %rax
cmpq -0x48(%rbp), %rax
je 0x6b4e
movq -0x48(%rbp), %rdx
movq -0x18(%rbp), %rax
movq -0x48(%rbp), %rcx
subq %rcx, %rax
movl %eax, %ecx
movl -0x58(%rbp), %r8d
movl %r8d, %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
leaq -0x40(%rbp), %rdi
movl $0x2, %esi
callq 0x9e00
movq %rax, -0x38(%rbp)
movq -0x28(%rbp), %rdi
movq -0x18(%rbp), %rax
movsbl (%rax), %ecx
leaq 0x8bb6(%rip), %rsi      # 0xf716
leaq 0xa5fd(%rip), %rdx      # 0x11164
movb $0x0, %al
callq 0x2e50
xorl %eax, %eax
cmpl $0x0, -0x1c(%rbp)
movb %al, -0x5f(%rbp)
jle 0x6ba0
movq -0x18(%rbp), %rax
movsbl (%rax), %ecx
movb $0x1, %al
cmpl $0x20, %ecx
movb %al, -0x60(%rbp)
jl 0x6b9a
movq -0x18(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x7e, %eax
setg %al
movb %al, -0x60(%rbp)
movb -0x60(%rbp), %al
movb %al, -0x5f(%rbp)
movb -0x5f(%rbp), %al
testb $0x1, %al
jne 0x6ba9
jmp 0x6bc0
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
movl -0x1c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x6b6e
movq -0x18(%rbp), %rax
movq %rax, -0x48(%rbp)
jmp 0x6270
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
movl -0x1c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x6270
movq -0x18(%rbp), %rax
cmpq -0x48(%rbp), %rax
je 0x6c1d
movq -0x48(%rbp), %rdx
movq -0x18(%rbp), %rax
movq -0x48(%rbp), %rcx
subq %rcx, %rax
movl %eax, %ecx
movl -0x58(%rbp), %r8d
movl %r8d, %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
leaq -0x40(%rbp), %rdi
movl $0x2, %esi
callq 0x9e00
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x60, %rsp
popq %rbp
retq
nop