void FUN_00403874(int param_1,void *param_2,uint param_3)

{
  bool bVar1;
  int iVar2;
  char *pcVar3;
  uint uVar4;
  
  iVar2 = sobj_empty(*(undefined4 *)(param_1 + 0x128));
  uVar4 = 0;
  if (iVar2 == 0) {
    if ((*(FILE **)(param_1 + 300) != (FILE *)0x0) && (param_3 != 0)) {
      fwrite(param_2,1,param_3,*(FILE **)(param_1 + 300));
      *(uint *)(param_1 + 0x130) = *(int *)(param_1 + 0x130) + param_3;
    }
  }
  else {
    while( true ) {
      bVar1 = param_3 <= uVar4;
      pcVar3 = (char *)((int)param_2 + uVar4);
      uVar4 = uVar4 + 1;
      if (bVar1) break;
      sobj_add_char(*(undefined4 *)(param_1 + 0x124),(int)*pcVar3);
    }
  }
  return;
}