int br_init(void)

{
  bool bVar1;
  undefined4 *__s;
  undefined4 uVar2;
  int *piVar3;
  int iVar4;
  int iVar5;
  undefined4 *puVar6;
  int iVar7;
  undefined4 local_a0 [33];
  
  br_socket_fd = socket(2,2,0);
  if (br_socket_fd < 0) {
    piVar3 = __errno_location();
    iVar5 = *piVar3;
  }
  else {
    iVar4 = br_get_version();
    iVar5 = 0x3039;
    if (iVar4 == 1) {
      puVar6 = local_a0;
      iVar4 = br_ioctl(1,puVar6,0x20);
      if (iVar4 < 0) {
        piVar3 = __errno_location();
        iVar7 = *piVar3;
      }
      else {
        bridge_list = (undefined4 *)0x0;
        iVar5 = 0;
        do {
          bVar1 = iVar4 <= iVar5;
          iVar5 = iVar5 + 1;
          if (bVar1) {
            return 0;
          }
          __s = (undefined4 *)malloc(0x49c)   //possible issue identified - semgrep
          memset(__s,0,0x49c)   //possible issue identified - semgrep
          uVar2 = *puVar6;
          *__s = bridge_list;
          __s[1] = uVar2;
          __s[6] = 0;
          bridge_list = __s;
          iVar7 = FUN_004094e4(__s);
          puVar6 = puVar6 + 1;
        } while ((iVar7 == 0) && (iVar7 = FUN_00409398(__s), iVar7 == 0));
        while (bridge_list != (undefined4 *)0x0) {
          puVar6 = (undefined4 *)*bridge_list;
          FUN_00409200(bridge_list);
          bridge_list = puVar6;
        }
      }
      return iVar7;
    }
  }
  return iVar5;
}