// File: /workspace/github_c_makefile_star2_O3/nurse[P]nkf/nkf.c
// Function: j_oconv
static void
j_oconv(nkf_char c2, nkf_char c1)
{
#ifdef NUMCHAR_OPTION
    if (c2 == 0 && nkf_char_unicode_p(c1)){
	w16e_conv(c1, &c2, &c1);
	if (c2 == 0 && nkf_char_unicode_p(c1)){
	    c2 = c1 & VALUE_MASK;
	    if (ms_ucs_map_f && 0xE000 <= c2 && c2 <= 0xE757) {
		/* CP5022x UDC */
		c1 &= 0xFFF;
		c2 = 0x7F + c1 / 94;
		c1 = 0x21 + c1 % 94;
	    } else {
		if (encode_fallback) (*encode_fallback)(c1);
		return;
	    }
	}
    }
#endif
    if (c2 == 0) {
	output_ascii_escape_sequence(ASCII);
	(*o_putc)(c1);
    }
    else if (c2 == EOF) {
	output_ascii_escape_sequence(ASCII);
	(*o_putc)(EOF);
    }
    else if (c2 == ISO_8859_1) {
	output_ascii_escape_sequence(ISO_8859_1);
	(*o_putc)(c1|0x80);
    }
    else if (c2 == JIS_X_0201_1976_K) {
	output_escape_sequence(JIS_X_0201_1976_K);
	(*o_putc)(c1);
#ifdef X0212_ENABLE
    } else if (is_eucg3(c2)){
	output_escape_sequence(x0213_f ? JIS_X_0213_2 : JIS_X_0212);
	(*o_putc)(c2 & 0x7f);
	(*o_putc)(c1);
#endif
    } else {
	if(ms_ucs_map_f
	   ? c2<0x20 || 0x92<c2 || c1<0x20 || 0x7e<c1
	   : c2<0x20 || 0x7e<c2 || c1<0x20 || 0x7e<c1) return;
	output_escape_sequence(x0213_f ? JIS_X_0213_1 : JIS_X_0208);
	(*o_putc)(c2);
	(*o_putc)(c1);
    }
}

// Assembly:
pushq %rbx
subq $0x10, %rsp
movl %edi, 0xc(%rsp)
movl %esi, 0x8(%rsp)
movl %esi, %eax
andl $0xff000000, %eax       # imm = 0xFF000000
xorl $0x1000000, %eax        # imm = 0x1000000
orl %edi, %eax
jne 0xc93e
leaq 0xc(%rsp), %rbx
leaq 0x8(%rsp), %rdx
movl %esi, %edi
movq %rbx, %rsi
callq 0x1191d
movl (%rbx), %edi
testl %edi, %edi
je 0xc9ad
testl %edi, %edi
jg 0xc958
cmpl $-0x1, %edi
je 0xca8d
testl %edi, %edi
je 0xca17
jmp 0xca56
cmpl $0x1, %edi
je 0xcacd
cmpl $0x1013, %edi           # imm = 0x1013
jne 0xca56
cmpl $0x1013, 0x48aa5(%rip)  # imm = 0x1013
je 0xcb77
movl $0x1b, %edi
callq *0x40940(%rip)          # 0x4d2c8
movl $0x28, %edi
callq *0x40935(%rip)          # 0x4d2c8
movl $0x49, %edi
callq *0x4092a(%rip)          # 0x4d2c8
movl $0x1013, 0x48a74(%rip)  # imm = 0x1013
jmp 0xcb77
movl 0x8(%rsp), %eax
movl %eax, %ecx
andl $0xff000000, %ecx       # imm = 0xFF000000
cmpl $0x1000000, %ecx        # imm = 0x1000000
jne 0xca17
movl %eax, %ecx
andl $0xffffff, %ecx         # imm = 0xFFFFFF
movl %ecx, 0xc(%rsp)
addl $0xffff2000, %ecx       # imm = 0xFFFF2000
cmpl $0x757, %ecx            # imm = 0x757
ja 0xcb2f
cmpl $0x0, 0x48a22(%rip)     # 0x55408
je 0xcb2f
andl $0xfff, %eax            # imm = 0xFFF
imull $0xae5, %eax, %ecx      # imm = 0xAE5
shrl $0x12, %ecx
leal 0x7f(%rcx), %edi
movl %edi, 0xc(%rsp)
imull $0x5e, %ecx, %ecx
negl %ecx
addl %ecx, %eax
addl $0x21, %eax
movzwl %ax, %eax
movl %eax, 0x8(%rsp)
jmp 0xc93e
cmpl $0x2, 0x489fe(%rip)     # 0x5541c
jb 0xcb77
movl $0x1b, %edi
callq *0x40899(%rip)          # 0x4d2c8
movl $0x28, %edi
callq *0x4088e(%rip)          # 0x4d2c8
movzbl 0x4088f(%rip), %edi     # 0x4d2d0
callq *0x40881(%rip)          # 0x4d2c8
movl $0x0, 0x489cb(%rip)     # 0x5541c
jmp 0xcb77
movl %edi, %eax
andl $0xff00, %eax           # imm = 0xFF00
cmpl $0x8f00, %eax           # imm = 0x8F00
jne 0xcb0e
cmpb $0x0, 0x4094d(%rip)     # 0x4d3bc
movl $0x1229, %eax           # imm = 0x1229
movl $0x1159, %edi           # imm = 0x1159
cmovnel %eax, %edi
callq 0x11a4a
movl 0xc(%rsp), %edi
andl $0x7f, %edi
jmp 0xcb71
cmpl $0x2, 0x48988(%rip)     # 0x5541c
jb 0xcac3
movl $0x1b, %edi
callq *0x40827(%rip)          # 0x4d2c8
movl $0x28, %edi
callq *0x4081c(%rip)          # 0x4d2c8
movzbl 0x4081d(%rip), %edi     # 0x4d2d0
callq *0x4080f(%rip)          # 0x4d2c8
movl $0x0, 0x48959(%rip)     # 0x5541c
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
jmp 0xcb7b
cmpl $0x2, 0x48948(%rip)     # 0x5541c
jb 0xcb03
movl $0x1b, %edi
callq *0x407e7(%rip)          # 0x4d2c8
movl $0x28, %edi
callq *0x407dc(%rip)          # 0x4d2c8
movzbl 0x407dd(%rip), %edi     # 0x4d2d0
callq *0x407cf(%rip)          # 0x4d2c8
movl $0x1, 0x48919(%rip)     # 0x5541c
movl $0x80, %edi
orl 0x8(%rsp), %edi
jmp 0xcb7b
movl 0x8(%rsp), %eax
addl $-0x7f, %eax
cmpl $0x0, 0x488ec(%rip)     # 0x55408
je 0xcb41
cmpl $-0x5f, %eax
setb %al
addl $0xffffff6d, %edi       # imm = 0xFFFFFF6D
cmpl $-0x73, %edi
jmp 0xcb4d
movq 0x488da(%rip), %rcx     # 0x55410
testq %rcx, %rcx
je 0xcb81
movl %eax, %edi
callq *%rcx
jmp 0xcb81
cmpl $-0x5f, %eax
setb %al
addl $-0x7f, %edi
cmpl $-0x5f, %edi
setb %cl
orb %al, %cl
jne 0xcb81
cmpb $0x0, 0x40861(%rip)     # 0x4d3bc
movl $0x1233, %eax           # imm = 0x1233
movl $0x1168, %edi           # imm = 0x1168
cmovnel %eax, %edi
callq 0x11a4a
movl 0xc(%rsp), %edi
callq *0x40751(%rip)          # 0x4d2c8
movl 0x8(%rsp), %edi
callq *0x40747(%rip)          # 0x4d2c8
addq $0x10, %rsp
popq %rbx
retq