undefined1 * FUN_0043a36c(int param_1,undefined4 param_2,undefined4 param_3)

{
  undefined1 *puVar1;
  
  if (0 < param_1) {
    DAT_004af810 = 0;
    if (DAT_004bb960 != (code *)0x0) {
      DAT_004af814 = 0;
      (*DAT_004bb960)(0,param_1,param_2,param_3,0);
    }
    puVar1 = (undefined1 *)(*(code *)PTR_thunk_FUN_0048470c_004af834)(param_1,param_2,param_3);
    if (DAT_004bb960 != (code *)0x0) {
      (*DAT_004bb960)(puVar1,param_1,param_2,param_3,1);
    }
    if ((puVar1 != (undefined1 *)0x0) && (0x800 < param_1)) {
      *puVar1 = DAT_004bb970;
    }
    return puVar1;
  }
  return (undefined1 *)0x0;
}