// File: /workspace/github_c_makefile_star2_O0/WojciechMula[P]pyahocorasick/src/pyahocorasick.c
// Function: PyInit_ahocorasick
PyMODINIT_FUNC
init_function(void) {
    PyObject* module;

#ifdef MEMORY_DEBUG
    PyErr_WarnEx(PyExc_RuntimeWarning,
                 "This is a developer version of pyahocorasick. "
                 "The module was compiled with flag MEMORY_DEBUG.", 1);
    initialize_memory_debug();
#endif

#ifdef PYCALLS_INJECT_FAULTS
    PyErr_WarnEx(PyExc_RuntimeWarning,
                 "This is a developer version of pyahocorasick. "
                 "The module was compiled with flag PYCALLS_INJECT_FAULTS.", 1);
    initialize_pycallfault();
#endif

#if DEBUG_LAYOUT
    PyErr_WarnEx(PyExc_RuntimeWarning,
                 "This is a developer version of pyahocorasick. "
                 "The module was compiled with flag DEBUG_LAYOUT.", 1);
    trienode_dump_layout();
#endif

    automaton_as_sequence.sq_length   = automaton_len;
    automaton_as_sequence.sq_contains = automaton_contains;

    automaton_type.tp_as_sequence = &automaton_as_sequence;

#ifdef PY3K
    module = PyModule_Create(&ahocorasick_module);
#else
    module = Py_InitModule3("ahocorasick", ahocorasick_module_methods, module_doc);
#endif
    if (module == NULL)
        init_return(NULL);


    if (PyType_Ready(&automaton_type) < 0) {
        Py_DECREF(module);
        init_return(NULL);
    }
    else
        PyModule_AddObject(module, "Automaton", (PyObject*)&automaton_type);

#define add_enum_const(name) PyModule_AddIntConstant(module, #name, name)
    add_enum_const(TRIE);
    add_enum_const(AHOCORASICK);
    add_enum_const(EMPTY);

    add_enum_const(STORE_LENGTH);
    add_enum_const(STORE_INTS);
    add_enum_const(STORE_ANY);

    add_enum_const(KEY_STRING);
    add_enum_const(KEY_SEQUENCE);

    add_enum_const(MATCH_EXACT_LENGTH);
    add_enum_const(MATCH_AT_MOST_PREFIX);
    add_enum_const(MATCH_AT_LEAST_PREFIX);
#undef add_enum_const

#ifdef AHOCORASICK_UNICODE
    PyModule_AddIntConstant(module, "unicode", 1);
#else
    PyModule_AddIntConstant(module, "unicode", 0);
#endif

    init_return(module);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
leaq 0x1a1(%rip), %rax       # 0x5770
movq %rax, 0xd6d2(%rip)      # 0x12ca8
leaq 0x1b3(%rip), %rax       # 0x5790
movq %rax, 0xd6fc(%rip)      # 0x12ce0
leaq 0xd6bd(%rip), %rax      # 0x12ca8
movq %rax, 0xcc46(%rip)      # 0x12238
leaq 0xcd6f(%rip), %rdi      # 0x12368
movl $0x3f5, %esi            # imm = 0x3F5
callq 0x3200
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x561b
movq $0x0, -0x8(%rbp)
jmp 0x575b
leaq 0xcbae(%rip), %rdi      # 0x121d0
callq 0x3180
cmpl $0x0, %eax
jge 0x5642
movq -0x10(%rbp), %rdi
callq 0x3a90
movq $0x0, -0x8(%rbp)
jmp 0x575b
movq -0x10(%rbp), %rdi
leaq 0x715a(%rip), %rsi      # 0xc7a7
leaq 0xcb7c(%rip), %rdx      # 0x121d0
callq 0x32c0
movq -0x10(%rbp), %rdi
leaq 0x6cc1(%rip), %rsi      # 0xc325
movl $0x1, %edx
callq 0x3050
movq -0x10(%rbp), %rdi
leaq 0x6f11(%rip), %rsi      # 0xc58a
movl $0x2, %edx
callq 0x3050
movq -0x10(%rbp), %rdi
leaq 0x6c9c(%rip), %rsi      # 0xc32a
xorl %eax, %eax
movl %eax, %edx
callq 0x3050
movq -0x10(%rbp), %rdi
leaq 0x6c8e(%rip), %rsi      # 0xc330
movl $0x14, %edx
callq 0x3050
movq -0x10(%rbp), %rdi
leaq 0x6c86(%rip), %rsi      # 0xc33d
movl $0xa, %edx
callq 0x3050
movq -0x10(%rbp), %rdi
leaq 0x6e7f(%rip), %rsi      # 0xc54b
movl $0x1e, %edx
callq 0x3050
movq -0x10(%rbp), %rdi
leaq 0x6c67(%rip), %rsi      # 0xc348
movl $0x64, %edx
callq 0x3050
movq -0x10(%rbp), %rdi
leaq 0x6ec7(%rip), %rsi      # 0xc5bd
movl $0xc8, %edx
callq 0x3050
movq -0x10(%rbp), %rdi
leaq 0x6c48(%rip), %rsi      # 0xc353
xorl %eax, %eax
movl %eax, %edx
callq 0x3050
movq -0x10(%rbp), %rdi
leaq 0x6c47(%rip), %rsi      # 0xc366
movl $0x1, %edx
callq 0x3050
movq -0x10(%rbp), %rdi
leaq 0x744f(%rip), %rsi      # 0xcb83
movl $0x2, %edx
callq 0x3050
movq -0x10(%rbp), %rdi
leaq 0x6c32(%rip), %rsi      # 0xc37b
movl $0x1, %edx
callq 0x3050
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)