// File: /workspace/github_c_makefile_star2_O3/nurse[P]nkf/nkf.c
// Function: module_connection
static int
module_connection(void)
{
    if (input_encoding) set_input_encoding(input_encoding);
    if (!output_encoding) {
	output_encoding = nkf_default_encoding();
    }
    if (!output_encoding) {
	if (noout_f || guess_f) output_encoding = nkf_enc_from_index(ISO_2022_JP);
	else return -1;
    }
    set_output_encoding(output_encoding);
    oconv = nkf_enc_to_oconv(output_encoding);
    o_putc = std_putc;
    if (nkf_enc_unicode_p(output_encoding))
	output_mode = UTF_8;

    if (x0201_f == NKF_UNSPECIFIED) {
	x0201_f = X0201_DEFAULT;
    }

    /* replace continuation module, from output side */

    /* output redirection */
#ifdef CHECK_OPTION
    if (noout_f || guess_f){
	o_putc = no_putc;
    }
#endif
    if (mimeout_f) {
	o_mputc = o_putc;
	o_putc = mime_putc;
	if (mimeout_f == TRUE) {
	    o_base64conv = oconv; oconv = base64_conv;
	}
	/* base64_count = 0; */
    }

    if (eolmode_f || guess_f) {
	o_eol_conv = oconv; oconv = eol_conv;
    }
    if (rot_f) {
	o_rot_conv = oconv; oconv = rot_conv;
    }
    if (iso2022jp_f) {
	o_iso2022jp_check_conv = oconv; oconv = iso2022jp_check_conv;
    }
    if (hira_f) {
	o_hira_conv = oconv; oconv = hira_conv;
    }
    if (fold_f) {
	o_fconv = oconv; oconv = fold_conv;
	f_line = 0;
    }
    if (alpha_f || x0201_f) {
	o_zconv = oconv; oconv = z_conv;
    }

    i_getc = std_getc;
    i_ungetc = std_ungetc;
    /* input redirection */
#ifdef INPUT_OPTION
    if (cap_f){
	i_cgetc = i_getc; i_getc = cap_getc;
	i_cungetc = i_ungetc; i_ungetc= cap_ungetc;
    }
    if (url_f){
	i_ugetc = i_getc; i_getc = url_getc;
	i_uungetc = i_ungetc; i_ungetc= url_ungetc;
    }
#endif
#ifdef NUMCHAR_OPTION
    if (numchar_f){
	i_ngetc = i_getc; i_getc = numchar_getc;
	i_nungetc = i_ungetc; i_ungetc= numchar_ungetc;
    }
#endif
#ifdef UNICODE_NORMALIZATION
    if (nfc_f){
	i_nfc_getc = i_getc; i_getc = nfc_getc;
	i_nfc_ungetc = i_ungetc; i_ungetc= nfc_ungetc;
    }
#endif
    if (mime_f && mimebuf_f==FIXED_MIME) {
	i_mgetc = i_getc; i_getc = mime_getc;
	i_mungetc = i_ungetc; i_ungetc = mime_ungetc;
    }
    if (broken_f & 1) {
	i_bgetc = i_getc; i_getc = broken_getc;
	i_bungetc = i_ungetc; i_ungetc = broken_ungetc;
    }
    if (input_encoding) {
	set_iconv(-TRUE, nkf_enc_to_iconv(input_encoding));
    } else {
	set_iconv(FALSE, e_iconv);
    }

    {
	struct input_code *p = input_code_list;
	while (p->name){
	    status_reinit(p++);
	}
    }
    return 0;
}

// Assembly:
movq 0x42d22(%rip), %rax     # 0x55420
testq %rax, %rax
je 0x12830
movl (%rax), %eax
decl %eax
cmpl $0x21, %eax
ja 0x12830
leaq 0x4acd(%rip), %rcx      # 0x171e8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x1, 0x3abb6(%rip)     # 0x4d2e4
jmp 0x12830
cmpl $-0x1, 0x3ab76(%rip)    # 0x4d2b0
jne 0x12746
movl $0x0, 0x3ab6a(%rip)     # 0x4d2b0
movb $0x1, 0x42cb7(%rip)     # 0x55404
movl $0x2, 0x42cb1(%rip)     # 0x55408
jmp 0x12830
movl $0x2, 0x3ab7e(%rip)     # 0x4d2e4
jmp 0x12830
movb $0x1, %al
movb %al, 0x3ac45(%rip)      # 0x4d3b8
movb %al, 0x3ac43(%rip)      # 0x4d3bc
jmp 0x12830
movb $0x1, 0x3ac37(%rip)     # 0x4d3bc
movb $0x0, 0x42c78(%rip)     # 0x55404
jmp 0x12830
movb $0x1, 0x3ac24(%rip)     # 0x4d3bc
movb $0x0, 0x42c65(%rip)     # 0x55404
cmpl $0x1, 0x3ab1a(%rip)     # 0x4d2c0
jne 0x12830
movl $0x0, 0x3ab0a(%rip)     # 0x4d2c0
jmp 0x12830
movb $0x1, 0x42c45(%rip)     # 0x55404
movl $0x3, 0x42c3f(%rip)     # 0x55408
jmp 0x12830
movb $0x1, 0x42d8e(%rip)     # 0x55560
jmp 0x12830
movb $0x1, 0x42d89(%rip)     # 0x55564
jmp 0x12830
cmpl $-0x1, 0x3aacc(%rip)    # 0x4d2b0
jne 0x127f0
movl $0x0, 0x3aac0(%rip)     # 0x4d2b0
movb $0x0, 0x42c0d(%rip)     # 0x55404
movl $0x1, 0x42c07(%rip)     # 0x55408
jmp 0x12830
movb $0x1, 0x3abae(%rip)     # 0x4d3b8
jmp 0x12830
cmpl $-0x1, 0x3aa9d(%rip)    # 0x4d2b0
jne 0x1281f
movl $0x0, 0x3aa91(%rip)     # 0x4d2b0
movb $0x0, 0x42bde(%rip)     # 0x55404
movl $0x0, 0x42bd8(%rip)     # 0x55408
pushq %rax
movq 0x42d10(%rip), %rax     # 0x55548
testq %rax, %rax
jne 0x12849
callq 0x1264d
movq %rax, 0x42cff(%rip)     # 0x55548
movl (%rax), %ecx
addl $-0x2, %ecx
cmpl $0x20, %ecx
ja 0x129a3
leaq 0x4a12(%rip), %rdx      # 0x17270
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movb $0x1, 0x42cc2(%rip)     # 0x55530
jmp 0x129a3
movb $0x1, %cl
movb %cl, 0x3ab3d(%rip)      # 0x4d3b8
movb %cl, 0x3ab3b(%rip)      # 0x4d3bc
jmp 0x1294b
movb $0x1, %cl
movb %cl, 0x42ca6(%rip)      # 0x55534
movb %cl, 0x42c9c(%rip)      # 0x55530
jmp 0x129a3
movb $0x1, 0x42c94(%rip)     # 0x55534
movb $0x0, 0x42c89(%rip)     # 0x55530
jmp 0x129a3
movb $0x1, 0x3ab09(%rip)     # 0x4d3bc
jmp 0x1294b
cmpl $-0x1, 0x3a9f1(%rip)    # 0x4d2b0
jne 0x128cb
movl $0x0, 0x3a9e5(%rip)     # 0x4d2b0
cmpl $0x1, 0x3a9ee(%rip)     # 0x4d2c0
jne 0x12999
movl $0x0, 0x3a9de(%rip)     # 0x4d2c0
jmp 0x12999
cmpl $-0x1, 0x3a9c2(%rip)    # 0x4d2b0
jne 0x128fa
movl $0x0, 0x3a9b6(%rip)     # 0x4d2b0
movb $0x1, 0x3aab7(%rip)     # 0x4d3b8
movl $0x1, 0x42afd(%rip)     # 0x55408
jmp 0x129a3
movl $0x3, 0x42aee(%rip)     # 0x55408
jmp 0x129a3
movb $0x0, 0x3aa92(%rip)     # 0x4d3b8
jmp 0x1292f
movb $0x1, 0x3aa89(%rip)     # 0x4d3b8
cmpl $0x1, 0x3a98a(%rip)     # 0x4d2c0
jne 0x1297a
movl $0x0, 0x3a97e(%rip)     # 0x4d2c0
jmp 0x1297a
movb $0x1, 0x3aa6d(%rip)     # 0x4d3b8
cmpl $0x1, 0x3a96e(%rip)     # 0x4d2c0
jne 0x129a3
movl $0x0, 0x3a962(%rip)     # 0x4d2c0
jmp 0x129a3
cmpl $-0x1, 0x3a949(%rip)    # 0x4d2b0
jne 0x12973
movl $0x0, 0x3a93d(%rip)     # 0x4d2b0
movb $0x1, 0x3aa3e(%rip)     # 0x4d3b8
movl $0x0, 0x42a84(%rip)     # 0x55408
jmp 0x129a3
cmpl $-0x1, 0x3a923(%rip)    # 0x4d2b0
jne 0x12999
movl $0x0, 0x3a917(%rip)     # 0x4d2b0
movl $0x2, 0x42a65(%rip)     # 0x55408
movq 0x10(%rax), %rcx
movq 0x10(%rcx), %rax
movq %rax, 0x3a906(%rip)     # 0x4d2b8
leaq -0xdba(%rip), %rdx      # 0x11bff
movq %rdx, 0x3a908(%rip)     # 0x4d2c8
leaq 0x33e39(%rip), %rsi     # 0x46800
cmpq %rsi, %rcx
je 0x129e4
leaq 0x33dfd(%rip), %rsi     # 0x467d0
cmpq %rsi, %rcx
je 0x129e4
leaq 0x33e09(%rip), %rsi     # 0x467e8
cmpq %rsi, %rcx
jne 0x129ee
movl $0x15, 0x42a2e(%rip)    # 0x5541c
movl 0x3a8bc(%rip), %ecx     # 0x4d2b0
cmpl $-0x1, %ecx
jne 0x12a08
movl $0x1, 0x3a8ad(%rip)     # 0x4d2b0
movl $0x1, %ecx
movl 0x3a9a2(%rip), %esi     # 0x4d3b0
testl %esi, %esi
setne %dil
orb 0x42b41(%rip), %dil     # 0x5555c
testb $0x1, %dil
je 0x12a2f
leaq 0x2a3(%rip), %rdx       # 0x12ccb
movq %rdx, 0x3a899(%rip)     # 0x4d2c8
movl 0x42b57(%rip), %edi     # 0x5558c
testl %edi, %edi
je 0x12a68
movq %rdx, 0x3a908(%rip)     # 0x4d348
leaq 0x285(%rip), %rdx       # 0x12ccc
movq %rdx, 0x3a87a(%rip)     # 0x4d2c8
cmpl $0x1, %edi
jne 0x12a68
movq %rax, 0x3a8be(%rip)     # 0x4d318
leaq 0xd27(%rip), %rax       # 0x13788
movq %rax, 0x3a850(%rip)     # 0x4d2b8
orl 0x42b26(%rip), %esi     # 0x55594
je 0x12a85
movq %rax, 0x3a889(%rip)     # 0x4d300
leaq 0xedc(%rip), %rax       # 0x1395a
movq %rax, 0x3a833(%rip)     # 0x4d2b8
cmpb $0x1, 0x42ae0(%rip)     # 0x5556c
jne 0x12aa3
movq %rax, 0x3a873(%rip)     # 0x4d308
leaq 0xfe1(%rip), %rax       # 0x13a7d
movq %rax, 0x3a815(%rip)     # 0x4d2b8
cmpb $0x1, 0x42956(%rip)     # 0x55400
jne 0x12ac1
movq %rax, 0x3a86d(%rip)     # 0x4d320
leaq 0x103d(%rip), %rax      # 0x13af7
movq %rax, 0x3a7f7(%rip)     # 0x4d2b8
cmpl $0x0, 0x42aa0(%rip)     # 0x55568
je 0x12adf
movq %rax, 0x3a83f(%rip)     # 0x4d310
leaq 0x109e(%rip), %rax      # 0x13b76
movq %rax, 0x3a7d9(%rip)     # 0x4d2b8
cmpb $0x1, 0x42a92(%rip)     # 0x55578
jne 0x12b07
movq %rax, 0x3a809(%rip)     # 0x4d2f8
leaq 0x115d(%rip), %rax      # 0x13c53
movq %rax, 0x3a7bb(%rip)     # 0x4d2b8
movl $0x0, 0x42ae9(%rip)     # 0x555f0
orl 0x42a63(%rip), %ecx     # 0x55570
je 0x12b24
movq %rax, 0x3a7da(%rip)     # 0x4d2f0
leaq 0x146b(%rip), %rax      # 0x13f88
movq %rax, 0x3a794(%rip)     # 0x4d2b8
leaq -0x4b8(%rip), %rax      # 0x12673
movq %rax, 0x3a7f6(%rip)     # 0x4d328
leaq -0x4ac(%rip), %rcx      # 0x1268d
movq %rcx, 0x3a7f0(%rip)     # 0x4d330
cmpb $0x1, 0x42a09(%rip)     # 0x55550
jne 0x12b65
leaq 0x1831(%rip), %rax      # 0x14381
movq %rax, 0x3a7d1(%rip)     # 0x4d328
leaq 0x183e(%rip), %rcx      # 0x1439c
movq %rcx, 0x3a7cb(%rip)     # 0x4d330
cmpb $0x1, 0x429e8(%rip)     # 0x55554
jne 0x12b98
movq %rax, 0x3a7fb(%rip)     # 0x4d370
leaq 0x1825(%rip), %rax      # 0x143a1
movq %rax, 0x3a7a5(%rip)     # 0x4d328
movq %rcx, 0x3a7ee(%rip)     # 0x4d378
leaq 0x182b(%rip), %rcx      # 0x143bc
movq %rcx, 0x3a798(%rip)     # 0x4d330
cmpb $0x1, 0x429b9(%rip)     # 0x55558
jne 0x12bcb
movq %rax, 0x3a7d8(%rip)     # 0x4d380
leaq 0x1816(%rip), %rax      # 0x143c5
movq %rax, 0x3a772(%rip)     # 0x4d328
movq %rcx, 0x3a7cb(%rip)     # 0x4d388
leaq 0x1935(%rip), %rcx      # 0x144f9
movq %rcx, 0x3a765(%rip)     # 0x4d330
cmpb $0x1, 0x4298e(%rip)     # 0x55560
jne 0x12bfe
movq %rax, 0x3a7b5(%rip)     # 0x4d390
leaq 0x1920(%rip), %rax      # 0x14502
movq %rax, 0x3a73f(%rip)     # 0x4d328
movq %rcx, 0x3a7a8(%rip)     # 0x4d398
leaq 0x1b0b(%rip), %rcx      # 0x14702
movq %rcx, 0x3a732(%rip)     # 0x4d330
cmpl $0x0, 0x3a69b(%rip)     # 0x4d2a0
je 0x12c3a
cmpl $0x7, 0x42976(%rip)     # 0x55584
jne 0x12c3a
movq %rax, 0x3a739(%rip)     # 0x4d350
leaq 0x1aed(%rip), %rax      # 0x1470b
movq %rax, 0x3a703(%rip)     # 0x4d328
movq %rcx, 0x3a72c(%rip)     # 0x4d358
leaq 0x231a(%rip), %rcx      # 0x14f4d
movq %rcx, 0x3a6f6(%rip)     # 0x4d330
testb $0x1, 0x4294f(%rip)     # 0x55590
je 0x12c6d
movq %rax, 0x3a6ee(%rip)     # 0x4d338
leaq 0x231d(%rip), %rax      # 0x14f6e
movq %rax, 0x3a6d0(%rip)     # 0x4d328
movq %rcx, 0x3a6e1(%rip)     # 0x4d340
leaq 0x2474(%rip), %rax      # 0x150da
movq %rax, 0x3a6c3(%rip)     # 0x4d330
movq 0x427ac(%rip), %rax     # 0x55420
testq %rax, %rax
je 0x12c88
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
jmp 0x12c91
leaq -0x6793(%rip), %rsi     # 0xc4fc
xorl %edi, %edi
callq 0x11c09
cmpq $0x0, 0x3a4b2(%rip)     # 0x4d150
je 0x12cc7
leaq 0x3a4b1(%rip), %rcx     # 0x4d158
movabsq $0x8000000000, %rax     # imm = 0x8000000000
xorl %edx, %edx
movq %rax, (%rcx)
movl %edx, 0x8(%rcx)
movl %edx, 0x28(%rcx)
cmpq $0x0, 0x30(%rcx)
leaq 0x38(%rcx), %rcx
jne 0x12cb3
xorl %eax, %eax
popq %rcx
retq