int FUN_0045c090(int *param_1,int param_2)
{
int iVar1;
int iVar2;
int iVar3;
iVar2 = *param_1;
if (iVar2 < param_2) {
if (param_1[2] < param_2) {
iVar3 = ((param_2 + 3) / 3) * 4;
if (param_1[1] == 0) {
iVar1 = FUN_0043a36c(iVar3,"buffer.c",0x93);
}
else {
iVar1 = FUN_0043a870(param_1[1],param_1[2],iVar3,"buffer.c",0x95);
}
if (iVar1 == 0) {
FUN_00433604(7,0x69,0x41,"buffer.c",0x98);
return 0;
}
iVar2 = *param_1;
param_1[2] = iVar3;
param_1[1] = iVar1;
iVar1 = iVar1 + iVar2;
}
else {
iVar1 = param_1[1] + iVar2;
}
iVar2 = param_2 - iVar2;
}
else {
iVar1 = param_1[1] + param_2;
iVar2 = iVar2 - param_2;
}
FUN_00483cc0(iVar1,0,iVar2);
*param_1 = param_2;
return param_2;
}