// File: /workspace/github_c_makefile_star2_O0/nurse[P]nkf/nkf.c
// Function: mime_begin_strict
static nkf_char
mime_begin_strict(FILE *f)
{
    nkf_char c1 = 0;
    int i,j,k;
    const unsigned char *p,*q;
    nkf_char r[MAXRECOVER];    /* recovery buffer, max mime pattern length */

    mime_decode_mode = FALSE;
    /* =? has been checked */
    j = 0;
    p = mime_pattern[j];
    r[0]='='; r[1]='?';

    for(i=2;p[i]>SP;i++) {                   /* start at =? */
	if (((r[i] = c1 = (*i_getc)(f))==EOF) || nkf_toupper(c1) != p[i]) {
	    /* pattern fails, try next one */
	    q = p;
	    while (mime_pattern[++j]) {
		p = mime_pattern[j];
		for(k=2;k<i;k++)              /* assume length(p) > i */
		    if (p[k]!=q[k]) break;
		if (k==i && nkf_toupper(c1)==p[k]) break;
	    }
	    p = mime_pattern[j];
	    if (p) continue;  /* found next one, continue */
	    /* all fails, output from recovery buffer */
	    (*i_ungetc)(c1,f);
	    for(j=0;j<i;j++) {
		(*oconv)(0,r[j]);
	    }
	    return c1;
	}
    }
    mime_decode_mode = p[i-2];

    mime_iconv_back = iconv;
    set_iconv(FALSE, mime_priority_func[j]);
    clr_code_score(find_inputcode_byfunc(mime_priority_func[j]), SCORE_iMIME);

    if (mime_decode_mode=='B') {
	mimebuf_f = unbuf_f;
	if (!unbuf_f) {
	    /* do MIME integrity check */
	    return mime_integrity(f,mime_pattern[j]);
	}
    }
    switch_mime_getc();
    mimebuf_f = TRUE;
    return c1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
movl $0x0, 0x40350(%rip)     # 0x5a5e0
movl $0x0, -0x1c(%rbp)
movslq -0x1c(%rbp), %rcx
leaq 0x380fe(%rip), %rax     # 0x523a0
movq (%rax,%rcx,8), %rax
movq %rax, -0x28(%rbp)
movl $0x3d, -0x80(%rbp)
movl $0x3f, -0x7c(%rbp)
movl $0x2, -0x18(%rbp)
movq -0x28(%rbp), %rax
movslq -0x18(%rbp), %rcx
movzbl (%rax,%rcx), %eax
cmpl $0x20, %eax
jle 0x1a465
movq 0x3802d(%rip), %rax     # 0x52308
movq -0x10(%rbp), %rdi
callq *%rax
movl %eax, -0x14(%rbp)
movslq -0x18(%rbp), %rcx
movl %eax, -0x80(%rbp,%rcx,4)
cmpl $-0x1, %eax
je 0x1a332
movl $0x61, %eax
cmpl -0x14(%rbp), %eax
jg 0x1a30f
cmpl $0x7a, -0x14(%rbp)
jg 0x1a30f
movl -0x14(%rbp), %eax
subl $0x20, %eax
movl %eax, -0x84(%rbp)
jmp 0x1a318
movl -0x14(%rbp), %eax
movl %eax, -0x84(%rbp)
movl -0x84(%rbp), %eax
movq -0x28(%rbp), %rcx
movslq -0x18(%rbp), %rdx
movzbl (%rcx,%rdx), %ecx
cmpl %ecx, %eax
je 0x1a455
movq -0x28(%rbp), %rax
movq %rax, -0x30(%rbp)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
movslq %eax, %rcx
leaq 0x38053(%rip), %rax     # 0x523a0
cmpq $0x0, (%rax,%rcx,8)
je 0x1a3f1
movslq -0x1c(%rbp), %rcx
leaq 0x3803d(%rip), %rax     # 0x523a0
movq (%rax,%rcx,8), %rax
movq %rax, -0x28(%rbp)
movl $0x2, -0x20(%rbp)
movl -0x20(%rbp), %eax
cmpl -0x18(%rbp), %eax
jge 0x1a3a5
movq -0x28(%rbp), %rax
movslq -0x20(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movq -0x30(%rbp), %rcx
movslq -0x20(%rbp), %rdx
movzbl (%rcx,%rdx), %ecx
cmpl %ecx, %eax
je 0x1a398
jmp 0x1a3a5
jmp 0x1a39a
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x1a372
movl -0x20(%rbp), %eax
cmpl -0x18(%rbp), %eax
jne 0x1a3ec
movl $0x61, %eax
cmpl -0x14(%rbp), %eax
jg 0x1a3cb
cmpl $0x7a, -0x14(%rbp)
jg 0x1a3cb
movl -0x14(%rbp), %eax
subl $0x20, %eax
movl %eax, -0x88(%rbp)
jmp 0x1a3d4
movl -0x14(%rbp), %eax
movl %eax, -0x88(%rbp)
movl -0x88(%rbp), %eax
movq -0x28(%rbp), %rcx
movslq -0x20(%rbp), %rdx
movzbl (%rcx,%rdx), %ecx
cmpl %ecx, %eax
jne 0x1a3ec
jmp 0x1a3f1
jmp 0x1a33a
movslq -0x1c(%rbp), %rcx
leaq 0x37fa4(%rip), %rax     # 0x523a0
movq (%rax,%rcx,8), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x1a40d
jmp 0x1a457
movq 0x37efc(%rip), %rax     # 0x52310
movl -0x14(%rbp), %edi
movq -0x10(%rbp), %rsi
callq *%rax
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0x18(%rbp), %eax
jge 0x1a44a
movq 0x37e65(%rip), %rax     # 0x52298
movslq -0x1c(%rbp), %rcx
movl -0x80(%rbp,%rcx,4), %esi
xorl %edi, %edi
callq *%rax
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x1a424
movl -0x14(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x1a513
jmp 0x1a457
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x1a2bf
movq -0x28(%rbp), %rax
movl -0x18(%rbp), %ecx
subl $0x2, %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %eax
movl %eax, 0x40164(%rip)     # 0x5a5e0
movq 0x37e35(%rip), %rax     # 0x522b8
movq %rax, 0x405ee(%rip)     # 0x5aa78
movslq -0x1c(%rbp), %rcx
leaq 0x31e6b(%rip), %rax     # 0x4c300
movq (%rax,%rcx,8), %rsi
xorl %edi, %edi
callq 0x135a0
movslq -0x1c(%rbp), %rcx
leaq 0x31e55(%rip), %rax     # 0x4c300
movq (%rax,%rcx,8), %rdi
callq 0x13660
movq %rax, %rdi
movl $0x80, %esi
callq 0x1abf0
cmpl $0x42, 0x40118(%rip)    # 0x5a5e0
jne 0x1a4fe
movl 0x37f50(%rip), %eax     # 0x52420
movl %eax, 0x4010e(%rip)     # 0x5a5e4
cmpl $0x0, 0x37f43(%rip)     # 0x52420
jne 0x1a4fc
movq -0x10(%rbp), %rdi
movslq -0x1c(%rbp), %rcx
leaq 0x37eb2(%rip), %rax     # 0x523a0
movq (%rax,%rcx,8), %rsi
callq 0x1ac20
movl %eax, -0x4(%rbp)
jmp 0x1a513
jmp 0x1a4fe
callq 0x1adf0
movl $0x1, 0x400d7(%rip)     # 0x5a5e4
movl -0x14(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x90, %rsp
popq %rbp
retq
nop