// File: mertyildiran[P]Plexus/plexus/wrapper.cpp
// Function: PyInit_cplexus
PyMODINIT_FUNC PyInit_cplexus(void) /* create the module */
{
    PyObject* m;

    PyNetworkType.tp_new = PyType_GenericNew;
    PyNetworkType.tp_basicsize=sizeof(PyNetwork);
    PyNetworkType.tp_dealloc=(destructor) PyNetwork_dealloc;
    PyNetworkType.tp_flags=Py_TPFLAGS_DEFAULT;
    PyNetworkType.tp_doc="Network objects";
    PyNetworkType.tp_methods=PyNetwork_methods;
    PyNetworkType.tp_members=PyNetwork_members;
    PyNetworkType.tp_getset=PyNetwork_getseters;
    PyNetworkType.tp_init=(initproc)PyNetwork_init;

    PyNeuronType.tp_new = PyType_GenericNew;
    PyNeuronType.tp_basicsize=sizeof(PyNeuron);
    PyNeuronType.tp_dealloc=(destructor) PyNeuron_dealloc;
    PyNeuronType.tp_flags=Py_TPFLAGS_DEFAULT;
    PyNeuronType.tp_doc="Neuron objects";
    PyNeuronType.tp_methods=PyNeuron_methods;
    PyNeuronType.tp_members=PyNeuron_members;
    PyNeuronType.tp_getset=PyNeuron_getseters;
    PyNeuronType.tp_init=(initproc)PyNeuron_init;

    if (PyType_Ready(&PyNetworkType) < 0)
        return NULL;

    if (PyType_Ready(&PyNeuronType) < 0)
        return NULL;

    m = PyModule_Create(&moduledef);
    if (m == NULL)
        return NULL;

    Py_INCREF(&PyNetworkType);
    Py_INCREF(&PyNeuronType);

    /* Add Network object to the module */
    PyModule_AddObject(m, "Network", (PyObject *)&PyNetworkType);
    /* Add Neuron object to the module */
    PyModule_AddObject(m, "Neuron", (PyObject *)&PyNeuronType);
    return m;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq 0xd101(%rip), %rax      # 0x30fb0
movq %rax, 0xd552(%rip)      # 0x31408
movq $0x18, 0xd42f(%rip) # 0x312f0
leaq 0x188(%rip), %rax       # 0x24050
movq %rax, 0xd431(%rip)      # 0x31300
movq $0x0, 0xd49e(%rip) # 0x31378
leaq 0x3601(%rip), %rax      # 0x274e2
movq %rax, 0xd498(%rip)      # 0x31380
leaq 0xd581(%rip), %rax      # 0x31470
movq %rax, 0xd4c2(%rip)      # 0x313b8
leaq 0xdda3(%rip), %rax      # 0x31ca0
movq %rax, 0xd4bc(%rip)      # 0x313c0
leaq 0xd5c5(%rip), %rax      # 0x314d0
movq %rax, 0xd4b6(%rip)      # 0x313c8
leaq 0x187(%rip), %rax       # 0x240a0
movq %rax, 0xd4d8(%rip)      # 0x313f8
movq 0xd089(%rip), %rax      # 0x30fb0
movq %rax, 0xda4a(%rip)      # 0x31978
movq $0x18, 0xd927(%rip) # 0x31860
leaq 0x350(%rip), %rax       # 0x24290
movq %rax, 0xd929(%rip)      # 0x31870
movq $0x0, 0xd996(%rip) # 0x318e8
leaq 0x3599(%rip), %rax      # 0x274f2
movq %rax, 0xd990(%rip)      # 0x318f0
leaq 0xdd69(%rip), %rax      # 0x31cd0
movq %rax, 0xd9ba(%rip)      # 0x31928
leaq 0xdd7b(%rip), %rax      # 0x31cf0
movq %rax, 0xd9b4(%rip)      # 0x31930
leaq 0xda5d(%rip), %rax      # 0x319e0
movq %rax, 0xd9ae(%rip)      # 0x31938
leaq 0x35f(%rip), %rax       # 0x242f0
movq %rax, 0xd9d0(%rip)      # 0x31968
leaq 0xd331(%rip), %rdi      # 0x312d0
callq 0x163f0
cmpl $0x0, %eax
jge 0x23fb6
movq $0x0, -0x8(%rbp)
jmp 0x24045
leaq 0xd883(%rip), %rdi      # 0x31840
callq 0x163f0
cmpl $0x0, %eax
jge 0x23fd1
movq $0x0, -0x8(%rbp)
jmp 0x24045
leaq 0xdbc0(%rip), %rdi      # 0x31b98
movl $0x3f5, %esi            # imm = 0x3F5
callq 0x16440
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x23ff7
movq $0x0, -0x8(%rbp)
jmp 0x24045
leaq 0xd2d2(%rip), %rdi      # 0x312d0
callq 0x243e0
leaq 0xd836(%rip), %rdi      # 0x31840
callq 0x243e0
movq -0x10(%rbp), %rdi
leaq 0x34ee(%rip), %rsi      # 0x27508
leaq 0xd2af(%rip), %rdx      # 0x312d0
callq 0x160e0
movq -0x10(%rbp), %rdi
leaq 0x3a33(%rip), %rsi      # 0x27a64
leaq 0xd808(%rip), %rdx      # 0x31840
callq 0x160e0
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nop