def METHOD_NAME(program):
    mem = program.memory
    num_methods = 0
    # Python extension module method table start address
    addr = 0x10003010
    while True:
        # read pointer to method name
        char_ptr_addr = mem[addr].int32
        addr += 0x04
        # if null then it's the end of table
        if char_ptr_addr == 0:
            break
        # read method name
        method_name = mem[char_ptr_addr].c_str
        # read method address
        method_addr = mem[addr].int32
        # go to next method entry
        addr += 0x0C
        # set procedure name for method based on name defined at table entry
        program.procedures[method_addr] = '{}_wrapper'.format(method_name)
        # move decompiled code of procedure to separate file
        program.procedures[method_addr].file = '{}.c'.format(method_name)
        num_methods += 1
    program.procedures[0x10001140] = \
        'PyObject *unused_wrapper(PyObject *self, PyObject *args)'
    program.globals[0x10003010] = 'PyMethodDef methods[{}]'.format(num_methods)
    exclude_dll_main(program)
    comments = []
    dump_procedures(program, comments)
    get_procedure(program, 0x00000001, comments)
    get_procedure(program, 0x1000149E, comments)
    get_procedure(program, 0x1000149D, comments)
    check_procedure(program, 0x00000002, comments)
    check_procedure(program, 0x100010F0, comments)
    check_procedure(program, 0x100010F1, comments)
    test_memory_reading(program, comments)
    program.comments[0x10001170] = "\n".join(comments)
    program.comments[0x10001183] = \
        'This is initialization of Python extension module'
    program.procedures[0x10001196] = "empty_procedure_loaded"