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;
}