// File: /workspace/github_c_makefile_star2_O2/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 0x4206d(%rip), %rax     # 0x54410
testq %rax, %rax
je 0x124c2
movl (%rax), %eax
decl %eax
cmpl $0x21, %eax
ja 0x124c2
leaq 0x3e28(%rip), %rcx      # 0x161e8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x1, 0x39f01(%rip)     # 0x4c2d4
jmp 0x124c2
cmpl $-0x1, 0x39ec1(%rip)    # 0x4c2a0
jne 0x123e8
andl $0x0, 0x39eb8(%rip)     # 0x4c2a0
movb $0x1, 0x42005(%rip)     # 0x543f4
movl $0x2, 0x41fff(%rip)     # 0x543f8
jmp 0x124c2
movl $0x2, 0x39ecc(%rip)     # 0x4c2d4
jmp 0x124c2
movb $0x1, %al
movb %al, 0x39f93(%rip)      # 0x4c3a8
movb %al, 0x39f91(%rip)      # 0x4c3ac
jmp 0x124c2
movb $0x1, 0x39f85(%rip)     # 0x4c3ac
movb $0x0, 0x41fc6(%rip)     # 0x543f4
jmp 0x124c2
movb $0x1, 0x39f72(%rip)     # 0x4c3ac
movb $0x0, 0x41fb3(%rip)     # 0x543f4
cmpl $0x1, 0x39e68(%rip)     # 0x4c2b0
jne 0x124c2
andl $0x0, 0x39e5f(%rip)     # 0x4c2b0
jmp 0x124c2
movb $0x1, 0x41f9a(%rip)     # 0x543f4
movl $0x3, 0x41f94(%rip)     # 0x543f8
jmp 0x124c2
movb $0x1, 0x420e3(%rip)     # 0x54550
jmp 0x124c2
movb $0x1, 0x420de(%rip)     # 0x54554
jmp 0x124c2
cmpl $-0x1, 0x39e21(%rip)    # 0x4c2a0
jne 0x12488
andl $0x0, 0x39e18(%rip)     # 0x4c2a0
movb $0x0, 0x41f65(%rip)     # 0x543f4
movl $0x1, 0x41f5f(%rip)     # 0x543f8
jmp 0x124c2
movb $0x1, 0x39f06(%rip)     # 0x4c3a8
jmp 0x124c2
cmpl $-0x1, 0x39df5(%rip)    # 0x4c2a0
jne 0x124b4
andl $0x0, 0x39dec(%rip)     # 0x4c2a0
movb $0x0, 0x41f39(%rip)     # 0x543f4
andl $0x0, 0x41f36(%rip)     # 0x543f8
pushq %rax
movq 0x4206e(%rip), %rax     # 0x54538
testq %rax, %rax
jne 0x124db
callq 0x122ea
movq %rax, 0x4205d(%rip)     # 0x54538
movl (%rax), %ecx
addl $-0x2, %ecx
cmpl $0x20, %ecx
ja 0x1261a
leaq 0x3d80(%rip), %rdx      # 0x16270
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movb $0x1, 0x42020(%rip)     # 0x54520
jmp 0x1261a
movb $0x1, %cl
movb %cl, 0x39e9b(%rip)      # 0x4c3a8
movb %cl, 0x39e99(%rip)      # 0x4c3ac
jmp 0x125ce
movb $0x1, %cl
movb %cl, 0x42004(%rip)      # 0x54524
movb %cl, 0x41ffa(%rip)      # 0x54520
jmp 0x1261a
movb $0x1, 0x41ff2(%rip)     # 0x54524
movb $0x0, 0x41fe7(%rip)     # 0x54520
jmp 0x1261a
movb $0x1, 0x39e67(%rip)     # 0x4c3ac
jmp 0x125ce
cmpl $-0x1, 0x39d4f(%rip)    # 0x4c2a0
jne 0x1255a
andl $0x0, 0x39d46(%rip)     # 0x4c2a0
cmpl $0x1, 0x39d4f(%rip)     # 0x4c2b0
jne 0x12610
andl $0x0, 0x39d42(%rip)     # 0x4c2b0
jmp 0x12610
cmpl $-0x1, 0x39d26(%rip)    # 0x4c2a0
jne 0x12583
andl $0x0, 0x39d1d(%rip)     # 0x4c2a0
movb $0x1, 0x39e1e(%rip)     # 0x4c3a8
movl $0x1, 0x41e64(%rip)     # 0x543f8
jmp 0x1261a
movl $0x3, 0x41e55(%rip)     # 0x543f8
jmp 0x1261a
movb $0x0, 0x39dfc(%rip)     # 0x4c3a8
jmp 0x125b5
movb $0x1, 0x39df3(%rip)     # 0x4c3a8
cmpl $0x1, 0x39cf4(%rip)     # 0x4c2b0
jne 0x125f7
andl $0x0, 0x39ceb(%rip)     # 0x4c2b0
jmp 0x125f7
movb $0x1, 0x39dda(%rip)     # 0x4c3a8
cmpl $0x1, 0x39cdb(%rip)     # 0x4c2b0
jne 0x1261a
andl $0x0, 0x39cd2(%rip)     # 0x4c2b0
jmp 0x1261a
cmpl $-0x1, 0x39cb9(%rip)    # 0x4c2a0
jne 0x125f0
andl $0x0, 0x39cb0(%rip)     # 0x4c2a0
movb $0x1, 0x39db1(%rip)     # 0x4c3a8
andl $0x0, 0x41dfa(%rip)     # 0x543f8
jmp 0x1261a
cmpl $-0x1, 0x39c99(%rip)    # 0x4c2a0
jne 0x12610
andl $0x0, 0x39c90(%rip)     # 0x4c2a0
movl $0x2, 0x41dde(%rip)     # 0x543f8
movq 0x10(%rax), %rcx
movq 0x10(%rcx), %rax
movq %rax, 0x39c7f(%rip)     # 0x4c2a8
leaq -0xcd8(%rip), %rdx      # 0x11958
movq %rdx, 0x39c81(%rip)     # 0x4c2b8
leaq 0x331d2(%rip), %rsi     # 0x45810
cmpq %rsi, %rcx
je 0x1265b
leaq 0x33196(%rip), %rsi     # 0x457e0
cmpq %rsi, %rcx
je 0x1265b
leaq 0x331a2(%rip), %rsi     # 0x457f8
cmpq %rsi, %rcx
jne 0x12665
movl $0x15, 0x41da7(%rip)    # 0x5440c
movl 0x39c35(%rip), %ecx     # 0x4c2a0
cmpl $-0x1, %ecx
jne 0x1267d
movl $0x1, 0x39c26(%rip)     # 0x4c2a0
pushq $0x1
popq %rcx
movl 0x39d1d(%rip), %esi     # 0x4c3a0
testl %esi, %esi
setne %dil
orb 0x41ebc(%rip), %dil     # 0x5454c
testb $0x1, %dil
je 0x126a4
leaq 0x296(%rip), %rdx       # 0x12933
movq %rdx, 0x39c14(%rip)     # 0x4c2b8
movl 0x41ed2(%rip), %edi     # 0x5457c
testl %edi, %edi
je 0x126dd
movq %rdx, 0x39c83(%rip)     # 0x4c338
leaq 0x278(%rip), %rdx       # 0x12934
movq %rdx, 0x39bf5(%rip)     # 0x4c2b8
cmpl $0x1, %edi
jne 0x126dd
movq %rax, 0x39c39(%rip)     # 0x4c308
leaq 0xa6b(%rip), %rax       # 0x13141
movq %rax, 0x39bcb(%rip)     # 0x4c2a8
orl 0x41ea1(%rip), %esi     # 0x54584
je 0x126fa
movq %rax, 0x39c04(%rip)     # 0x4c2f0
leaq 0xb78(%rip), %rax       # 0x1326b
movq %rax, 0x39bae(%rip)     # 0x4c2a8
cmpb $0x1, 0x41e5b(%rip)     # 0x5455c
jne 0x12718
movq %rax, 0x39bee(%rip)     # 0x4c2f8
leaq 0xc69(%rip), %rax       # 0x1337a
movq %rax, 0x39b90(%rip)     # 0x4c2a8
cmpb $0x1, 0x41cd1(%rip)     # 0x543f0
jne 0x12736
movq %rax, 0x39be8(%rip)     # 0x4c310
leaq 0xcc5(%rip), %rax       # 0x133f4
movq %rax, 0x39b72(%rip)     # 0x4c2a8
cmpl $0x0, 0x41e1b(%rip)     # 0x54558
je 0x12754
movq %rax, 0x39bba(%rip)     # 0x4c300
leaq 0xd24(%rip), %rax       # 0x13471
movq %rax, 0x39b54(%rip)     # 0x4c2a8
cmpb $0x1, 0x41e0d(%rip)     # 0x54568
jne 0x12779
movq %rax, 0x39b84(%rip)     # 0x4c2e8
leaq 0xdd8(%rip), %rax       # 0x13543
movq %rax, 0x39b36(%rip)     # 0x4c2a8
andl $0x0, 0x41e67(%rip)     # 0x545e0
orl 0x41de1(%rip), %ecx     # 0x54560
je 0x12796
movq %rax, 0x39b58(%rip)     # 0x4c2e0
leaq 0x1075(%rip), %rax      # 0x13804
movq %rax, 0x39b12(%rip)     # 0x4c2a8
leaq -0x48f(%rip), %rax      # 0x1230e
movq %rax, 0x39b74(%rip)     # 0x4c318
leaq -0x483(%rip), %rcx      # 0x12328
movq %rcx, 0x39b6e(%rip)     # 0x4c320
cmpb $0x1, 0x41d87(%rip)     # 0x54540
jne 0x127d7
leaq 0x1420(%rip), %rax      # 0x13be2
movq %rax, 0x39b4f(%rip)     # 0x4c318
leaq 0x142b(%rip), %rcx      # 0x13bfb
movq %rcx, 0x39b49(%rip)     # 0x4c320
cmpb $0x1, 0x41d66(%rip)     # 0x54544
jne 0x1280a
movq %rax, 0x39b79(%rip)     # 0x4c360
leaq 0x1412(%rip), %rax      # 0x13c00
movq %rax, 0x39b23(%rip)     # 0x4c318
movq %rcx, 0x39b6c(%rip)     # 0x4c368
leaq 0x1416(%rip), %rcx      # 0x13c19
movq %rcx, 0x39b16(%rip)     # 0x4c320
cmpb $0x1, 0x41d37(%rip)     # 0x54548
jne 0x1283d
movq %rax, 0x39b56(%rip)     # 0x4c370
leaq 0x1401(%rip), %rax      # 0x13c22
movq %rax, 0x39af0(%rip)     # 0x4c318
movq %rcx, 0x39b49(%rip)     # 0x4c378
leaq 0x1541(%rip), %rcx      # 0x13d77
movq %rcx, 0x39ae3(%rip)     # 0x4c320
cmpb $0x1, 0x41d0c(%rip)     # 0x54550
jne 0x12870
movq %rax, 0x39b33(%rip)     # 0x4c380
leaq 0x152c(%rip), %rax      # 0x13d80
movq %rax, 0x39abd(%rip)     # 0x4c318
movq %rcx, 0x39b26(%rip)     # 0x4c388
leaq 0x16a0(%rip), %rcx      # 0x13f09
movq %rcx, 0x39ab0(%rip)     # 0x4c320
cmpl $0x0, 0x39a19(%rip)     # 0x4c290
je 0x128ac
cmpl $0x7, 0x41cf4(%rip)     # 0x54574
jne 0x128ac
movq %rax, 0x39ab7(%rip)     # 0x4c340
leaq 0x1682(%rip), %rax      # 0x13f12
movq %rax, 0x39a81(%rip)     # 0x4c318
movq %rcx, 0x39aaa(%rip)     # 0x4c348
leaq 0x1d80(%rip), %rcx      # 0x14625
movq %rcx, 0x39a74(%rip)     # 0x4c320
testb $0x1, 0x41ccd(%rip)     # 0x54580
je 0x128df
movq %rax, 0x39a6c(%rip)     # 0x4c328
leaq 0x1d83(%rip), %rax      # 0x14646
movq %rax, 0x39a4e(%rip)     # 0x4c318
movq %rcx, 0x39a5f(%rip)     # 0x4c330
leaq 0x1e80(%rip), %rax      # 0x14758
movq %rax, 0x39a41(%rip)     # 0x4c320
movq 0x41b2a(%rip), %rax     # 0x54410
testq %rax, %rax
je 0x128f8
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
pushq $-0x1
popq %rdi
jmp 0x12901
leaq -0x65a3(%rip), %rsi     # 0xc35c
xorl %edi, %edi
callq 0x11962
leaq 0x39833(%rip), %rax     # 0x4c140
movabsq $0x8000000000, %rcx     # imm = 0x8000000000
cmpq $0x0, (%rax)
je 0x1292f
movq %rcx, 0x8(%rax)
andl $0x0, 0x10(%rax)
andl $0x0, 0x30(%rax)
addq $0x38, %rax
jmp 0x12917
xorl %eax, %eax
popq %rcx
retq