void FUN_0040e9cc(uint param_1,char *param_2,undefined4 param_3)

{
  long lVar1;
  time_t tVar2;
  tm *__tp;
  char *pcVar3;
  int local_a0;
  char acStack_9c [64];
  sysinfo local_5c;
  
  lVar1 = atol(param_2);
  sysinfo(&local_5c);
  tVar2 = time((time_t *)0x0);
  local_a0 = tVar2 - (local_5c.uptime - lVar1)   //possible issue identified - semgrep
  memset(acStack_9c,0,0x40)   //possible issue identified - semgrep
  if (param_1 < 5) {
    switch(param_1) {
    case 0:
      __tp = localtime(&local_a0);
      pcVar3 = s__m__d__Y__T_004335a0;
      break;
    case 1:
      __tp = localtime(&local_a0);
      pcVar3 = "%Y-%m-%dT%T";
      break;
    case 2:
      __tp = gmtime(&local_a0);
      pcVar3 = "%a, %d %b %Y %T GMT";
      break;
    case 3:
      __tp = gmtime(&local_a0);
      pcVar3 = PTR_s__A___d__b__y__T_GMT_004334fc;
      break;
    case 4:
      pcVar3 = ctime(&local_a0);
      sobj_add_string(param_3,pcVar3);
      goto LAB_0040eb6c;
    }
    strftime(acStack_9c,0x40,pcVar3,__tp);
  }
LAB_0040eb6c:
  sobj_add_string(param_3,acStack_9c);
  return;
}