void FUN_00404260(int param_1,int param_2)

{
  ssize_t sVar1;
  int iVar2;
  char *__fmt;
  undefined4 uVar3;
  undefined1 auStack_1010 [4096];
  
  if (*(int *)(param_2 + 0x10) != 0) {
    sloop_cancel_timeout(*(int *)(param_2 + 0x10));
  }
  *(undefined4 *)(param_2 + 0x10) = 0;
  sVar1 = recv(param_1,auStack_1010,0xfff,0)   //possible issue identified - semgrep
  if (sVar1 < 0) {
    uVar3 = *(undefined4 *)(*(int *)(param_2 + 0x18) + 8);
    __fmt = "recv() error from server \'%s\'\n";
  }
  else {
    iVar2 = *(int *)(param_2 + 0x18);
    if (sVar1 != 0) {
      auStack_1010[sVar1] = 0;
      (**(code **)(iVar2 + 0x14))(param_2,auStack_1010,sVar1);
      goto LAB_0040433c;
    }
    uVar3 = *(undefined4 *)(iVar2 + 8);
    __fmt = "Connection disconnected by server - \'%s\'";
  }
  syslog(4,__fmt,uVar3);
  *(undefined4 *)(param_2 + 0x38) = 3;
  FUN_004026ec(param_2);
LAB_0040433c:
  *(undefined4 *)(param_2 + 0xc) = 0;
  close(*(int *)(param_2 + 8));
  *(undefined4 *)(param_2 + 8) = 0xffffffff;
  return;
}