// File: /workspace/github_c_makefile_star2_O0/nurse[P]nkf/nkf.c
// Function: numchar_getc
static nkf_char
numchar_getc(FILE *f)
{
    nkf_char (*g)(FILE *) = i_ngetc;
    nkf_char (*u)(nkf_char c ,FILE *f) = i_nungetc;
    int i = 0, j;
    nkf_char buf[12];
    nkf_char c = -1;

    buf[i] = (*g)(f);
    if (buf[i] == '&'){
	buf[++i] = (*g)(f);
	if (buf[i] == '#'){
	    c = 0;
	    buf[++i] = (*g)(f);
	    if (buf[i] == 'x' || buf[i] == 'X'){
		for (j = 0; j < 7; j++){
		    buf[++i] = (*g)(f);
		    if (!nkf_isxdigit(buf[i])){
			if (buf[i] != ';'){
			    c = -1;
			}
			break;
		    }
		    c <<= 4;
		    c |= hex2bin(buf[i]);
		}
	    }else{
		for (j = 0; j < 8; j++){
		    if (j){
			buf[++i] = (*g)(f);
		    }
		    if (!nkf_isdigit(buf[i])){
			if (buf[i] != ';'){
			    c = -1;
			}
			break;
		    }
		    c *= 10;
		    c += hex2bin(buf[i]);
		}
	    }
	}
    }
    if (c != -1){
	return nkf_char_unicode_new(c);
    }
    while (i > 0){
	(*u)(buf[i], f);
	--i;
    }
    return buf[0];
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x10(%rbp)
movq 0x3b1ba(%rip), %rax     # 0x52370
movq %rax, -0x18(%rbp)
movq 0x3b1b7(%rip), %rax     # 0x52378
movq %rax, -0x20(%rbp)
movl $0x0, -0x24(%rbp)
movl $0xffffffff, -0x64(%rbp) # imm = 0xFFFFFFFF
movq -0x18(%rbp), %rax
movq -0x10(%rbp), %rdi
callq *%rax
movl %eax, %ecx
movslq -0x24(%rbp), %rax
movl %ecx, -0x60(%rbp,%rax,4)
movslq -0x24(%rbp), %rax
cmpl $0x26, -0x60(%rbp,%rax,4)
jne 0x174c7
movq -0x18(%rbp), %rax
movq -0x10(%rbp), %rdi
callq *%rax
movl %eax, %ecx
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
cltq
movl %ecx, -0x60(%rbp,%rax,4)
movslq -0x24(%rbp), %rax
cmpl $0x23, -0x60(%rbp,%rax,4)
jne 0x174c5
movl $0x0, -0x64(%rbp)
movq -0x18(%rbp), %rax
movq -0x10(%rbp), %rdi
callq *%rax
movl %eax, %ecx
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
cltq
movl %ecx, -0x60(%rbp,%rax,4)
movslq -0x24(%rbp), %rax
cmpl $0x78, -0x60(%rbp,%rax,4)
je 0x1725c
movslq -0x24(%rbp), %rax
cmpl $0x58, -0x60(%rbp,%rax,4)
jne 0x173a9
movl $0x0, -0x28(%rbp)
cmpl $0x7, -0x28(%rbp)
jge 0x173a4
movq -0x18(%rbp), %rax
movq -0x10(%rbp), %rdi
callq *%rax
movl %eax, %ecx
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
cltq
movl %ecx, -0x60(%rbp,%rax,4)
movslq -0x24(%rbp), %rcx
movl $0x30, %eax
cmpl -0x60(%rbp,%rcx,4), %eax
jg 0x172a2
movslq -0x24(%rbp), %rax
cmpl $0x39, -0x60(%rbp,%rax,4)
jle 0x172ed
movslq -0x24(%rbp), %rcx
movl $0x61, %eax
cmpl -0x60(%rbp,%rcx,4), %eax
jg 0x172bc
movslq -0x24(%rbp), %rax
cmpl $0x66, -0x60(%rbp,%rax,4)
jle 0x172ed
movslq -0x24(%rbp), %rcx
movl $0x41, %eax
cmpl -0x60(%rbp,%rcx,4), %eax
jg 0x172d6
movslq -0x24(%rbp), %rax
cmpl $0x46, -0x60(%rbp,%rax,4)
jle 0x172ed
movslq -0x24(%rbp), %rax
cmpl $0x3b, -0x60(%rbp,%rax,4)
je 0x172e8
movl $0xffffffff, -0x64(%rbp) # imm = 0xFFFFFFFF
jmp 0x173a4
movl -0x64(%rbp), %eax
shll $0x4, %eax
movl %eax, -0x64(%rbp)
movslq -0x24(%rbp), %rcx
movl $0x30, %eax
cmpl -0x60(%rbp,%rcx,4), %eax
jg 0x17320
movslq -0x24(%rbp), %rax
cmpl $0x39, -0x60(%rbp,%rax,4)
jg 0x17320
movslq -0x24(%rbp), %rax
movl -0x60(%rbp,%rax,4), %eax
subl $0x30, %eax
movl %eax, -0x68(%rbp)
jmp 0x1738d
movslq -0x24(%rbp), %rcx
movl $0x41, %eax
cmpl -0x60(%rbp,%rcx,4), %eax
jg 0x1734d
movslq -0x24(%rbp), %rax
cmpl $0x46, -0x60(%rbp,%rax,4)
jg 0x1734d
movslq -0x24(%rbp), %rax
movl -0x60(%rbp,%rax,4), %eax
subl $0x41, %eax
addl $0xa, %eax
movl %eax, -0x6c(%rbp)
jmp 0x17387
movslq -0x24(%rbp), %rcx
movl $0x61, %eax
cmpl -0x60(%rbp,%rcx,4), %eax
jg 0x1737a
movslq -0x24(%rbp), %rax
cmpl $0x66, -0x60(%rbp,%rax,4)
jg 0x1737a
movslq -0x24(%rbp), %rax
movl -0x60(%rbp,%rax,4), %eax
subl $0x61, %eax
addl $0xa, %eax
movl %eax, -0x70(%rbp)
jmp 0x17381
xorl %eax, %eax
movl %eax, -0x70(%rbp)
jmp 0x17381
movl -0x70(%rbp), %eax
movl %eax, -0x6c(%rbp)
movl -0x6c(%rbp), %eax
movl %eax, -0x68(%rbp)
movl -0x68(%rbp), %eax
orl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x17263
jmp 0x174c3
movl $0x0, -0x28(%rbp)
cmpl $0x8, -0x28(%rbp)
jge 0x174c1
cmpl $0x0, -0x28(%rbp)
je 0x173db
movq -0x18(%rbp), %rax
movq -0x10(%rbp), %rdi
callq *%rax
movl %eax, %ecx
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
cltq
movl %ecx, -0x60(%rbp,%rax,4)
movslq -0x24(%rbp), %rcx
movl $0x30, %eax
cmpl -0x60(%rbp,%rcx,4), %eax
jg 0x173f5
movslq -0x24(%rbp), %rax
cmpl $0x39, -0x60(%rbp,%rax,4)
jle 0x1740c
movslq -0x24(%rbp), %rax
cmpl $0x3b, -0x60(%rbp,%rax,4)
je 0x17407
movl $0xffffffff, -0x64(%rbp) # imm = 0xFFFFFFFF
jmp 0x174c1
imull $0xa, -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
movslq -0x24(%rbp), %rcx
movl $0x30, %eax
cmpl -0x60(%rbp,%rcx,4), %eax
jg 0x1743d
movslq -0x24(%rbp), %rax
cmpl $0x39, -0x60(%rbp,%rax,4)
jg 0x1743d
movslq -0x24(%rbp), %rax
movl -0x60(%rbp,%rax,4), %eax
subl $0x30, %eax
movl %eax, -0x74(%rbp)
jmp 0x174aa
movslq -0x24(%rbp), %rcx
movl $0x41, %eax
cmpl -0x60(%rbp,%rcx,4), %eax
jg 0x1746a
movslq -0x24(%rbp), %rax
cmpl $0x46, -0x60(%rbp,%rax,4)
jg 0x1746a
movslq -0x24(%rbp), %rax
movl -0x60(%rbp,%rax,4), %eax
subl $0x41, %eax
addl $0xa, %eax
movl %eax, -0x78(%rbp)
jmp 0x174a4
movslq -0x24(%rbp), %rcx
movl $0x61, %eax
cmpl -0x60(%rbp,%rcx,4), %eax
jg 0x17497
movslq -0x24(%rbp), %rax
cmpl $0x66, -0x60(%rbp,%rax,4)
jg 0x17497
movslq -0x24(%rbp), %rax
movl -0x60(%rbp,%rax,4), %eax
subl $0x61, %eax
addl $0xa, %eax
movl %eax, -0x7c(%rbp)
jmp 0x1749e
xorl %eax, %eax
movl %eax, -0x7c(%rbp)
jmp 0x1749e
movl -0x7c(%rbp), %eax
movl %eax, -0x78(%rbp)
movl -0x78(%rbp), %eax
movl %eax, -0x74(%rbp)
movl -0x74(%rbp), %eax
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x173b0
jmp 0x174c3
jmp 0x174c5
jmp 0x174c7
cmpl $-0x1, -0x64(%rbp)
je 0x174da
movl -0x64(%rbp), %eax
orl $0x1000000, %eax        # imm = 0x1000000
movl %eax, -0x4(%rbp)
jmp 0x17505
jmp 0x174dc
cmpl $0x0, -0x24(%rbp)
jle 0x174ff
movq -0x20(%rbp), %rax
movslq -0x24(%rbp), %rcx
movl -0x60(%rbp,%rcx,4), %edi
movq -0x10(%rbp), %rsi
callq *%rax
movl -0x24(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x174dc
movl -0x60(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x80, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)