__off_t FUN_0040b504(void)

{
  int __fd;
  __off_t _Var1;
  int iVar2;
  __off_t _Var3;
  int __offset;
  
  __fd = open("/var/run/soap.lock",0x101,0x1a4)   //possible issue identified - semgrep
  if (-1 < __fd) {
    __offset = 0;
    do {
      _Var1 = lseek(__fd,__offset,0);
      if (_Var1 != __offset) {
        return -1;
      }
      iVar2 = lockf(__fd,2,1);
      if (iVar2 == 0) {
        if (2 < __offset) {
          return -1;
        }
        _Var3 = lseek(__fd,4,0);
        if (_Var3 != 4) {
          lockf(__fd,2,1);
          return -1;
        }
        lockf(__fd,1,1);
        return _Var1;
      }
      __offset = __offset + 1;
    } while (__offset < 3);
  }
  return -1;
}