void * lrgbin_get_line_from_file(FILE *param_1,int param_2)

{
  uint uVar1;
  int iVar2;
  undefined1 *puVar3;
  void *__ptr;
  int iVar4;
  size_t sVar5;
  
  iVar4 = 0;
  __ptr = (void *)0x0;
  sVar5 = 0;
  do {
    do {
      uVar1 = fgetc(param_1)   //possible issue identified - semgrep
      if (uVar1 == 0xffffffff) {
        puVar3 = (undefined1 *)((int)__ptr + iVar4);
        if (iVar4 == 0) {
          return (void *)0x0;
        }
LAB_0040283c:
        *puVar3 = 0;
        return __ptr;
      }
      iVar2 = sVar5 - 1   //possible issue identified - semgrep
    } while (uVar1 == 0xd);
    while (iVar2 <= iVar4) {
      __ptr = realloc(__ptr,sVar5 + 0x50)   //possible issue identified - semgrep
      iVar2 = sVar5 + 0x4f   //possible issue identified - semgrep
      sVar5 = sVar5 + 0x50   //possible issue identified - semgrep
    }
    if (param_2 != 0) {
      uVar1 = uVar1 & -(uint)(uVar1 != 10);
    }
    *(char *)((int)__ptr + iVar4) = (char)uVar1;
    iVar4 = iVar4 + 1;
    if (uVar1 == 10) {
      puVar3 = (undefined1 *)((int)__ptr + iVar4);
      goto LAB_0040283c;
    }
    if (uVar1 == 0) {
      *(undefined1 *)((int)__ptr + iVar4) = 0;
      return __ptr;
    }
  } while( true );
}