/* WARNING: Removing unreachable block (ram,0x00409abc) */
/* WARNING: Removing unreachable block (ram,0x00409adc) */
/* WARNING: Removing unreachable block (ram,0x00409afc) */

void FUN_00409a30(int param_1,int param_2,int param_3,int param_4,uint param_5)

{
  byte *pbVar1;
  byte *pbVar2;
  byte *pbVar3;
  uint uVar4;
  int iVar5;
  
  iVar5 = 0;
  uVar4 = 0;
  do {
    if ((int)param_5 < 8) {
      if ((param_5 & 7) == 0) {
        if ((int)param_5 < 1) {
          if (param_1 == 1) {
            param_5 = 0;
            uVar4 = 0xff;
          }
          else {
            param_5 = 0;
            uVar4 = 0;
          }
        }
      }
      else {
        if (param_1 == 0) {
          uVar4 = -(1 << (8U - (int)param_5 % 8 & 0x1f));
LAB_00409af0:
          uVar4 = uVar4 & 0xff;
        }
        else {
          uVar4 = 0;
          if (param_1 == 1) {
            uVar4 = (1 << (8U - (int)param_5 % 8 & 0x1f)) - 1;
            goto LAB_00409af0;
          }
        }
        param_5 = param_5 - (int)param_5 % 8;
      }
    }
    else {
      uVar4 = 0xff;
      if (param_1 != 0) {
        uVar4 = 0;
      }
      param_5 = param_5 - 8;
    }
    pbVar1 = (byte *)(param_2 + iVar5);
    pbVar3 = (byte *)(param_3 + iVar5);
    pbVar2 = (byte *)(param_4 + iVar5);
    iVar5 = iVar5 + 1;
    *pbVar3 = (byte)uVar4 & *pbVar1;
    *pbVar2 = (byte)uVar4;
    if (iVar5 == 0x10) {
      return;
    }
  } while( true );
}