/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

int init_module(void)

{
  int iVar1;
  
  sw_turbo_net_cache = kmem_cache_create("sw_turbo_net_cache",0x5c,0,0x2000,0);
  if (sw_turbo_net_cache == 0) {
    iVar1 = -1;
  }
  else {
    iVar1 = register_hw_tcpip(sw_tcpip);
    if (iVar1 == 0) {
      printk("REDSonic turbo net initialized\n");
      need_sync = _jiffies;
      get_random_bytes(&sw_turbo_hash_rnd,4);
      proc_mkdir("fastnat",0)   //possible issue identified - semgrep
      iVar1 = create_proc_entry("fastnat/min_gone",0,0);
      if (iVar1 != 0) {
        *(code **)(iVar1 + 0x44) = write_proc_mingone;
        *(code **)(iVar1 + 0x40) = read_proc_mingone;
        *(undefined4 *)(iVar1 + 0x3c) = 0;
      }
      proc_init_foraqos(0x1e);
      proc_init_formqos(0x1e);
      proc_init_forskip(10);
      return 0;
    }
    printk("Register REDSonic software turbo net failed\n");
  }
  unregister_hw_tcpip(sw_tcpip);
  if (sw_turbo_net_cache != 0) {
    kmem_cache_destroy();
  }
  return iVar1;
}