undefined4 arc4random(void)

{
  undefined4 *puVar1;
  uint uVar2;
  undefined4 local_18 [3];
  
  if (DAT_0043e460 < 0) {
    DAT_0043e460 = open("/dev/urandom",0,0x180)   //possible issue identified - semgrep
    if (DAT_0043e460 < 0) {
      uVar2 = 1;
      err(1,"/dev/urandom");
      if (uVar2 != 0) {
        puVar1 = (undefined4 *)(&DAT_00441134 + (uVar2 & 0xf) * 4);
        while (puVar1 = (undefined4 *)*puVar1, puVar1 != (undefined4 *)0x0) {
          if (puVar1[1] == uVar2) {
            return puVar1[2];
          }
        }
      }
      return 0xffffffff;
    }
  }
  read(DAT_0043e460,local_18,4)   //possible issue identified - semgrep
  return local_18[0];
}