// File: /workspace/github_c_makefile_star2_O0/nurse[P]nkf/nkf.c
// Function: hex_getc
static nkf_char
hex_getc(nkf_char ch, FILE *f, nkf_char (*g)(FILE *f), nkf_char (*u)(nkf_char c, FILE *f))
{
    nkf_char c1, c2, c3;
    c1 = (*g)(f);
    if (c1 != ch){
	return c1;
    }
    c2 = (*g)(f);
    if (!nkf_isxdigit(c2)){
	(*u)(c2, f);
	return c1;
    }
    c3 = (*g)(f);
    if (!nkf_isxdigit(c3)){
	(*u)(c2, f);
	(*u)(c3, f);
	return c1;
    }
    return (hex2bin(c2) << 4) | hex2bin(c3);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq -0x10(%rbp), %rdi
callq *%rax
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
cmpl -0x8(%rbp), %eax
je 0x18da7
movl -0x24(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x18f46
movq -0x18(%rbp), %rax
movq -0x10(%rbp), %rdi
callq *%rax
movl %eax, -0x28(%rbp)
movl $0x30, %eax
cmpl -0x28(%rbp), %eax
jg 0x18dc4
cmpl $0x39, -0x28(%rbp)
jle 0x18dfc
movl $0x61, %eax
cmpl -0x28(%rbp), %eax
jg 0x18dd4
cmpl $0x66, -0x28(%rbp)
jle 0x18dfc
movl $0x41, %eax
cmpl -0x28(%rbp), %eax
jg 0x18de4
cmpl $0x46, -0x28(%rbp)
jle 0x18dfc
movq -0x20(%rbp), %rax
movl -0x28(%rbp), %edi
movq -0x10(%rbp), %rsi
callq *%rax
movl -0x24(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x18f46
movq -0x18(%rbp), %rax
movq -0x10(%rbp), %rdi
callq *%rax
movl %eax, -0x2c(%rbp)
movl $0x30, %eax
cmpl -0x2c(%rbp), %eax
jg 0x18e19
cmpl $0x39, -0x2c(%rbp)
jle 0x18e5e
movl $0x61, %eax
cmpl -0x2c(%rbp), %eax
jg 0x18e29
cmpl $0x66, -0x2c(%rbp)
jle 0x18e5e
movl $0x41, %eax
cmpl -0x2c(%rbp), %eax
jg 0x18e39
cmpl $0x46, -0x2c(%rbp)
jle 0x18e5e
movq -0x20(%rbp), %rax
movl -0x28(%rbp), %edi
movq -0x10(%rbp), %rsi
callq *%rax
movq -0x20(%rbp), %rax
movl -0x2c(%rbp), %edi
movq -0x10(%rbp), %rsi
callq *%rax
movl -0x24(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x18f46
movl $0x30, %eax
cmpl -0x28(%rbp), %eax
jg 0x18e79
cmpl $0x39, -0x28(%rbp)
jg 0x18e79
movl -0x28(%rbp), %eax
subl $0x30, %eax
movl %eax, -0x30(%rbp)
jmp 0x18ec8
movl $0x41, %eax
cmpl -0x28(%rbp), %eax
jg 0x18e97
cmpl $0x46, -0x28(%rbp)
jg 0x18e97
movl -0x28(%rbp), %eax
subl $0x41, %eax
addl $0xa, %eax
movl %eax, -0x34(%rbp)
jmp 0x18ec2
movl $0x61, %eax
cmpl -0x28(%rbp), %eax
jg 0x18eb5
cmpl $0x66, -0x28(%rbp)
jg 0x18eb5
movl -0x28(%rbp), %eax
subl $0x61, %eax
addl $0xa, %eax
movl %eax, -0x38(%rbp)
jmp 0x18ebc
xorl %eax, %eax
movl %eax, -0x38(%rbp)
jmp 0x18ebc
movl -0x38(%rbp), %eax
movl %eax, -0x34(%rbp)
movl -0x34(%rbp), %eax
movl %eax, -0x30(%rbp)
movl -0x30(%rbp), %eax
shll $0x4, %eax
movl %eax, -0x3c(%rbp)
movl $0x30, %eax
cmpl -0x2c(%rbp), %eax
jg 0x18eec
cmpl $0x39, -0x2c(%rbp)
jg 0x18eec
movl -0x2c(%rbp), %eax
subl $0x30, %eax
movl %eax, -0x40(%rbp)
jmp 0x18f3b
movl $0x41, %eax
cmpl -0x2c(%rbp), %eax
jg 0x18f0a
cmpl $0x46, -0x2c(%rbp)
jg 0x18f0a
movl -0x2c(%rbp), %eax
subl $0x41, %eax
addl $0xa, %eax
movl %eax, -0x44(%rbp)
jmp 0x18f35
movl $0x61, %eax
cmpl -0x2c(%rbp), %eax
jg 0x18f28
cmpl $0x66, -0x2c(%rbp)
jg 0x18f28
movl -0x2c(%rbp), %eax
subl $0x61, %eax
addl $0xa, %eax
movl %eax, -0x48(%rbp)
jmp 0x18f2f
xorl %eax, %eax
movl %eax, -0x48(%rbp)
jmp 0x18f2f
movl -0x48(%rbp), %eax
movl %eax, -0x44(%rbp)
movl -0x44(%rbp), %eax
movl %eax, -0x40(%rbp)
movl -0x3c(%rbp), %eax
movl -0x40(%rbp), %ecx
orl %ecx, %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x50, %rsp
popq %rbp
retq
nop