typedef unsigned char   undefined;

typedef unsigned int    uint;
typedef unsigned char    undefined1;
typedef unsigned int    undefined2;
typedef unsigned long    undefined4;
typedef unsigned int    word;
typedef struct OLD_IMAGE_DOS_HEADER OLD_IMAGE_DOS_HEADER, *POLD_IMAGE_DOS_HEADER;

struct OLD_IMAGE_DOS_HEADER {
    char e_magic[2]; // Magic number
    word e_cblp; // Bytes of last page
    word e_cp; // Pages in file
    word e_crlc; // Relocations
    word e_cparhdr; // Size of header in paragraphs
    word e_minalloc; // Minimum extra paragraphs needed
    word e_maxalloc; // Maximum extra paragraphs needed
    word e_ss; // Initial (relative) SS value
    word e_sp; // Initial SP value
    word e_csum; // Checksum
    word e_ip; // Initial IP value
    word e_cs; // Initial (relative) CS value
    word e_lfarlc; // File address of relocation table
    word e_ovno; // Overlay number
};

typedef struct OLD_IMAGE_DOS_RELOC OLD_IMAGE_DOS_RELOC, *POLD_IMAGE_DOS_RELOC;

struct OLD_IMAGE_DOS_RELOC {
    word offset;
    word segment;
};



undefined DAT_0000_000c;
undefined1 DAT_1000_092c;
undefined1 DAT_1000_0931;
undefined4 UNK_0000_0020;
undefined4 UNK_0000_0024;
undefined4 UNK_0000_0028;
undefined2 LAB_1000_000b+1;
undefined2 LAB_1000_000d+1;
undefined DAT_0000_0bc2;
undefined *UNK_0000_0bbc;
undefined DAT_0000_0b96;
undefined DAT_0000_1150;
undefined DAT_0000_117c;
undefined DAT_0000_117a;
undefined DAT_0000_00e2;
undefined1 DAT_0000_00e4;
undefined1 DAT_0000_00e7;
undefined DAT_0000_00e6;
undefined2 DAT_1000_12c4;
undefined2 DAT_1000_12c6;
int DAT_1000_14d4;
int DAT_1000_14d6;
int UNK_0000_00bc;
int UNK_0000_00be;
undefined LAB_0000_11e8;
undefined2 DAT_1000_0ce6;
undefined2 DAT_1000_0cdc;
undefined2 DAT_1000_0cec;
int DAT_11bd_0f09;
undefined DAT_0000_11e2;
undefined DAT_0000_0088;
undefined DAT_f000_fffe;
undefined1 LAB_1000_031f;
undefined1 LAB_1000_0ef3+2;
undefined1 LAB_11bd_7cae+1;
undefined1 DAT_0000_0004;
undefined1 UNK_0000_0000;
undefined1 UNK_0000_0001;
undefined1 UNK_0000_0002;
undefined1 UNK_0000_0003;
undefined1 UNK_0000_0005;
undefined1 *UNK_0000_0467;
undefined2 UNK_0000_0469;
undefined2 UNK_0000_0467;
undefined2 DAT_11bd_12ca;
char DAT_f000_fffe;
undefined2 UNK_0000_0000;
undefined2 UNK_0000_0002;
undefined s_premature_EOF_1000_17b6;
undefined2 DAT_11bd_04be;
undefined2 LAB_11bd_0225;
undefined2 LAB_11bd_5193+1;
undefined2 LAB_11bd_52b6;
undefined2 LAB_11bd_52b8;
uint DAT_11bd_04be;
uint DAT_1000_17c4;
undefined DAT_0000_0008;
int LAB_11bd_517e;
uint LAB_11bd_5180;
undefined2 LAB_11bd_5180+2;
undefined2 *LAB_11bd_5183+1;
undefined2 LAB_11bd_5188;
int LAB_11bd_518a;
uint LAB_11bd_518c;
undefined2 *LAB_11bd_518c+2;
undefined2 LAB_11bd_5192;
ulong LAB_11bd_5196;
int LAB_11bd_5196+4;
undefined4 LAB_11bd_5244;
undefined2 *LAB_11bd_5248;
ulong LAB_11bd_524c;
int DAT_1000_12c4;
undefined1 LAB_11bd_517b;
undefined1 DAT_1000_0f7a;
int DAT_1000_0f7b;
undefined1 DAT_11bd_1137;
undefined2 DAT_11bd_1138;
int UNK_0000_019c;
int UNK_0000_019e;
undefined2 DAT_11bd_0f09;
undefined FUN_11bd_5ad6;
undefined DAT_0000_0004;
undefined4 UNK_0000_077c;
int LAB_11bd_5e26;
undefined4 LAB_11bd_5e28;
undefined DAT_e000_0020;
undefined2 LAB_11bd_5e26;
undefined FUN_11bd_5fe2;
ulong LAB_11bd_5e28;
char DAT_8000_324e;
char DAT_8000_43a2;
undefined DAT_8000_3bbe;
undefined DAT_8000_3bb6;
undefined DAT_8000_4172;
undefined DAT_8000_3b9e;
undefined DAT_0000_0c9c;
byte DAT_0000_00e6;
undefined DAT_0000_0e14;
undefined DAT_0000_1a13;
undefined1 DAT_0000_1a15;
undefined1 DAT_0000_1a18;
undefined DAT_0000_0e16;

uint __cdecl16far FUN_1000_0b12(uint param_1)

{
  undefined2 *puVar1;
  undefined2 *puVar2;
  code *pcVar3;
  uint uVar4;
  int iVar5;
  int iVar6;
  uint uVar7;
  int extraout_DX;
  undefined2 *puVar8;
  undefined2 *puVar9;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  bool bVar10;
  int in_stack_00000002;
  
  uVar4 = (uint)(*(byte *)0x9f5 | *(byte *)0xe6a);
  if (((*(byte *)0x9f5 | *(byte *)0xe6a) == 0) &&
     (uVar4 = (*(int *)0xce6 - *(int *)0xcde) - param_1,
     (uint)(*(int *)0xce6 - *(int *)0xcde) < param_1 || uVar4 == 0)) {
    iVar5 = ((0xf - uVar4 >> 4) + *(int *)0xb10 + 1) - *(int *)0xcec;
    iVar6 = (*(int *)0xb10 + 1) - in_stack_00000002;
    bVar10 = iVar6 * 8 < 0;
    uVar7 = iVar6 * 0x10;
    pcVar3 = (code *)swi(0x21);
    (*pcVar3)();
    uVar4 = 0;
    if (!bVar10) {
      *(int *)0x5a = iVar5;
      *(int *)0xb10 = *(int *)0xb10 + extraout_DX;
      *(int *)0xce6 = *(int *)0xce6 + extraout_DX * 0x10;
      uVar4 = in_stack_00000002 + extraout_DX;
      puVar8 = (undefined2 *)(uVar7 - 2);
      puVar9 = puVar8;
      for (uVar7 = uVar7 >> 1; uVar7 != 0; uVar7 = uVar7 - 1) {
        puVar2 = puVar9;
        puVar9 = puVar9 + -1;
        puVar1 = puVar8;
        puVar8 = puVar8 + -1;
        *puVar2 = *puVar1;
      }
      *(uint *)0x28b9 = uVar4;
      *(uint *)0x9f1 = uVar4;
      *(uint *)0x9b6 = uVar4;
      *(uint *)0x20 = uVar4;
      if (*(int *)0xa12 == 0) {
        *(int *)0xa10 = *(int *)0xa10 + (uVar4 - in_stack_00000002);
      }
      if (*(int *)&DAT_0000_000c == in_stack_00000002) {
        *(uint *)&DAT_0000_000c = uVar4;
      }
      iVar6 = 0;
      iVar5 = 0x27;
      do {
        if (*(int *)(iVar6 + 0xf8c) == in_stack_00000002) {
          *(uint *)(iVar6 + 0xf8c) = uVar4;
        }
        if (*(int *)(iVar6 + 0x1028) == in_stack_00000002) {
          *(uint *)(iVar6 + 0x1028) = uVar4;
        }
        if (*(int *)(iVar6 + 0x22) == in_stack_00000002) {
          *(uint *)(iVar6 + 0x22) = uVar4;
        }
        iVar6 = iVar6 + 4;
        iVar5 = iVar5 + -1;
      } while (iVar5 != 0);
      if ((0x2e < *(byte *)0x34) &&
         (iVar5 = (uint)*(byte *)0x34 * 4, *(int *)(iVar5 + 2) == in_stack_00000002)) {
        *(uint *)(iVar5 + 2) = uVar4;
      }
      *(uint *)0x12ca = uVar4;
    }
  }
  return uVar4;
}



void __cdecl16near FUN_11bd_016c(void)

{
  undefined2 *puVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  undefined2 unaff_DS;
  unkbyte10 in_ST0;
  unkbyte10 in_ST1;
  unkbyte10 in_ST2;
  unkbyte10 in_ST3;
  unkbyte10 in_ST4;
  unkbyte10 in_ST5;
  unkbyte10 in_ST6;
  unkbyte10 in_ST7;
  
  iVar4 = 0;
  iVar3 = 0;
  iVar2 = 0x100;
  do {
    *(undefined2 *)(iVar4 + 0xc6) = 0;
    *(undefined2 *)(iVar4 + 0xc4) = 0x8e00;
    *(undefined2 *)(iVar4 + 0xc2) = 0x70;
    *(int *)(iVar4 + 0xc0) = iVar3;
    iVar3 = iVar3 + 4;
    iVar4 = iVar4 + 8;
    iVar2 = iVar2 + -1;
  } while (iVar2 != 0);
  iVar2 = 0x11;
  iVar3 = 0x4235;
  iVar4 = 0;
  do {
    *(int *)(iVar4 + 0xc0) = iVar3;
    iVar3 = iVar3 + 0x1c;
    iVar4 = iVar4 + 8;
    iVar2 = iVar2 + -1;
  } while (iVar2 != 0);
  *(undefined2 *)0x128 = 0x1fb8;
  *(undefined2 *)0x1b8 = 0x84;
  *(undefined2 *)0x1c0 = 0xc80;
  *(undefined2 *)0x1c2 = 0x18;
  *(undefined2 *)0x1c8 = 0xc9e;
  *(undefined2 *)0x1d8 = 0x5eb;
  *(undefined2 *)0x248 = 0x44d6;
  if (*(char *)0x2e == '\v') {
    *(undefined2 *)0x3f8 = 0x2c83;
    *(undefined2 *)0x3fa = 0x18;
  }
  FUN_11bd_2081();
  if ((*(byte *)0x47 & 1) != 0) {
    *(undefined2 *)0x170 = 0x4fa;
    *(undefined2 *)0x1b0 = 0xc7c;
    *(undefined2 *)0x1b2 = 0x18;
    if (*(char *)0x51 != '\0') {
      *(undefined2 *)((uint)(byte)(*(char *)0x51 + 5) * 8 + 0xc0) = 0x556;
    }
  }
  if (*(char *)0x3e != '\0') {
    if ((undefined2 *)*(undefined2 *)0xf82 != (undefined2 *)0x0) {
      puVar1 = (undefined2 *)*(undefined2 *)0xf82;
      *puVar1 = 0x37f;
      puVar1[2] = 0;
      puVar1[4] = 0xffff;
      *(undefined4 *)(puVar1 + 10) = 0;
      *(undefined4 *)(puVar1 + 6) = 0;
      puVar1[9] = 0;
      *(unkbyte10 *)(puVar1 + 0xe) = in_ST0;
      *(unkbyte10 *)(puVar1 + 0x13) = in_ST1;
      *(unkbyte10 *)(puVar1 + 0x18) = in_ST2;
      *(unkbyte10 *)(puVar1 + 0x1d) = in_ST3;
      *(unkbyte10 *)(puVar1 + 0x22) = in_ST4;
      *(unkbyte10 *)(puVar1 + 0x27) = in_ST5;
      *(unkbyte10 *)(puVar1 + 0x2c) = in_ST6;
      *(unkbyte10 *)(puVar1 + 0x31) = in_ST7;
    }
    DAT_1000_092c = 0x9b;
    DAT_1000_0931 = 0x9b;
  }
  return;
}



void __cdecl16near FUN_11bd_0246(void)

{
  undefined2 unaff_DS;
  
  FUN_11bd_0d15();
  (*(code *)*(undefined2 *)0x97a)();
  FUN_11bd_0d0c();
  return;
}



// WARNING: Unable to track spacebase fully for stack

undefined4 FUN_11bd_0251(void)

{
  int iVar1;
  undefined2 *puVar2;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  
  FUN_11bd_0246();
  iVar1 = *(int *)0x996;
  uRam0001000c = *(undefined2 *)(iVar1 + 0xe);
                    // WARNING: Read-only address (ram,0x0001000c) is written
  uRam0001000e = *(undefined2 *)(iVar1 + 2);
  puVar2 = (undefined2 *)(iVar1 + -2);
                    // WARNING: Read-only address (ram,0x0001000e) is written
  *(undefined2 *)(iVar1 + -2) = 0x1e3c;
  FUN_11bd_0290();
  uRam00000020 = *(undefined4 *)(iVar1 + 0x1e);
  uRam00000024 = *(undefined4 *)(iVar1 + 0x22);
  uRam00000028 = *(undefined4 *)(iVar1 + 0x26);
  *(undefined2 *)0x996 = *puVar2;
  return CONCAT22(puVar2[9],puVar2[0xb]);
}



// WARNING: Globals starting with '_' overlap smaller symbols at the same address

void FUN_11bd_0290(void)

{
  undefined2 unaff_DS;
  
  (*(code *)*(undefined2 *)0x9c0)();
  LocalDescriptorTableRegister(0x68);
                    // WARNING: Could not recover jumptable at 0x00011e81. Too many branches
                    // WARNING: Treating indirect jump as call
  (*_DAT_0000_0bc2)();
  return;
}



// WARNING: Globals starting with '_' overlap smaller symbols at the same address

void FUN_11bd_0293(void)

{
  undefined2 unaff_DS;
  
  (*(code *)*(undefined2 *)0x9c0)();
  LocalDescriptorTableRegister(0x68);
                    // WARNING: Could not recover jumptable at 0x00011e81. Too many branches
                    // WARNING: Treating indirect jump as call
  (*_DAT_0000_0bc2)();
  return;
}



undefined1 __cdecl16near FUN_11bd_0733(void)

{
  undefined1 in_AL;
  undefined1 uVar1;
  
  out(0x22,in_AL);
  uVar1 = in(0x23);
  return uVar1;
}



void FUN_11bd_0929(void)

{
                    // WARNING: Could not recover jumptable at 0x000124fd. Too many branches
                    // WARNING: Treating indirect jump as call
  (*pcRam00000bbc)();
  return;
}



void FUN_11bd_092c(void)

{
  undefined2 unaff_DS;
  
                    // WARNING: Could not recover jumptable at 0x000124fd. Too many branches
                    // WARNING: Treating indirect jump as call
  (*(code *)*(undefined2 *)0x9bc)();
  return;
}



void FUN_11bd_0931(void)

{
  undefined2 unaff_DS;
  
                    // WARNING: Could not recover jumptable at 0x00012504. Too many branches
                    // WARNING: Treating indirect jump as call
  (*(code *)*(undefined2 *)0x9be)();
  return;
}



void __cdecl16near FUN_11bd_0bd1(void)

{
  undefined1 extraout_AH;
  
  FUN_11bd_0c28();
  out(100,0xd1);
  FUN_11bd_0c28();
  out(0x60,extraout_AH);
  FUN_11bd_0c28();
  return;
}



void __cdecl16near FUN_11bd_0be9(void)

{
  undefined2 unaff_DS;
  bool bVar1;
  bool bVar2;
  
  FUN_11bd_0bd1();
  bVar1 = (*(byte *)0x14 & 1) == 0;
  if (!bVar1) {
    do {
      bVar2 = bVar1;
      FUN_11bd_0c0d();
      bVar1 = true;
    } while (bVar2);
    return;
  }
  out(100,0xff);
  FUN_11bd_0c28();
  return;
}



void __cdecl16near FUN_11bd_0c0d(void)

{
  int *piVar1;
  int *piVar2;
  int iVar3;
  int *piVar4;
  int *piVar5;
  
  piVar4 = (int *)0x20;
  piVar5 = (int *)0x30;
  iVar3 = 4;
  do {
    if (iVar3 == 0) {
      return;
    }
    iVar3 = iVar3 + -1;
    piVar2 = piVar5;
    piVar5 = piVar5 + 1;
    piVar1 = piVar4;
    piVar4 = piVar4 + 1;
  } while (*piVar1 == *piVar2);
  return;
}



// WARNING: Unable to track spacebase fully for stack
// WARNING: Globals starting with '_' overlap smaller symbols at the same address

void __cdecl16near FUN_11bd_0c28(void)

{
  byte bVar1;
  char cVar2;
  char in_CL;
  char cVar3;
  int iVar4;
  byte bVar5;
  byte *in_BX;
  int unaff_BP;
  int unaff_SI;
  char *unaff_DI;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  int in_stack_0000000c;
  undefined2 uStack_c;
  
  iVar4 = 0;
  do {
    bVar1 = in(100);
    if ((bVar1 & 2) == 0) {
      return;
    }
    iVar4 = iVar4 + -1;
  } while (iVar4 != 0);
  FUN_11bd_22ad();
  FUN_11bd_0c9b();
  in_BX[(int)unaff_DI] = in_BX[(int)unaff_DI] + in_CL;
  cVar2 = FUN_11bd_0c9b();
  cVar3 = (char)iVar4;
  bVar5 = (char)((uint)iVar4 >> 8) + cVar2;
  unaff_DI[unaff_BP] = unaff_DI[unaff_BP] + cVar2;
  cVar2 = FUN_11bd_0c9b();
  *unaff_DI = *unaff_DI + cVar2 + -0x19;
  FUN_11bd_0c9b();
  FUN_11bd_0c9b();
  bVar1 = FUN_11bd_0c9f();
  in_BX[unaff_SI] = in_BX[unaff_SI] ^ (bVar1 | bVar5 | (byte)unaff_BP);
  *(char *)0x20e8 = *(char *)0x20e8 + cVar3;
  *in_BX = *in_BX + cVar3;
  FUN_11bd_0c9b();
  FUN_11bd_0c9b();
  *in_BX = *in_BX & (byte)in_BX;
  uStack_c = _DAT_0000_0b96;
  _DAT_0000_0b96 = &uStack_c;
  *(undefined2 *)(_DAT_0000_1150 + -2) = 0x28c7;
  FUN_11bd_092c();
  if (in_stack_0000000c == 0) {
    LOCK();
    UNLOCK();
  }
  FUN_11bd_0251();
  return;
}



// WARNING: Unable to track spacebase fully for stack
// WARNING: Globals starting with '_' overlap smaller symbols at the same address

void FUN_11bd_0c9b(void)

{
  int iVar1;
  undefined2 in_CX;
  undefined2 in_DX;
  undefined2 in_BX;
  byte *pbVar2;
  int iVar3;
  undefined2 unaff_BP;
  int *piVar4;
  undefined2 unaff_SI;
  undefined2 *puVar5;
  undefined2 unaff_DI;
  undefined2 unaff_ES;
  int unaff_SS;
  undefined2 uVar6;
  int iStack_1c;
  
  iVar1 = (int)_DAT_0000_0b96;
  _DAT_0000_117a = (undefined2 *)CONCAT22(unaff_SS,&stack0xfff8);
  if (unaff_SS == 0x20) {
    piVar4 = &iStack_1c;
    iStack_1c = (int)_DAT_0000_0b96;
  }
  else {
    iVar3 = (int)_DAT_0000_0b96 + -0x180;
    *(undefined2 *)((int)_DAT_0000_0b96 + -0x182) = 0x20;
    *(undefined2 *)(iVar1 + -0x184) = in_CX;
    *(undefined2 *)(iVar1 + -0x186) = in_DX;
    *(undefined2 *)(iVar1 + -0x188) = in_BX;
    *(int *)(iVar1 + -0x18a) = iVar3;
    *(undefined2 *)(iVar1 + -0x18c) = unaff_BP;
    *(undefined2 *)(iVar1 + -0x18e) = unaff_SI;
    *(undefined2 *)(iVar1 + -400) = unaff_DI;
    *(undefined2 *)(iVar1 + -0x192) = unaff_ES;
    *(undefined2 *)(iVar1 + -0x194) = 0x20;
    *(undefined2 *)(iVar1 + -0x196) = _DAT_0000_117c;
    piVar4 = (int *)(iVar1 + -0x198);
    *(int *)(iVar1 + -0x198) = (int)_DAT_0000_0b96;
    uVar6 = (undefined2)((ulong)_DAT_0000_117a >> 0x10);
    puVar5 = (undefined2 *)_DAT_0000_117a;
    *(undefined2 *)(iVar1 + -0x194) = *_DAT_0000_117a;
    *(undefined2 *)(iVar1 + -0x182) = puVar5[1];
    *(undefined2 *)(iVar1 + -0x180) = puVar5[2];
    *(undefined4 *)(iVar1 + -0x17e) = *(undefined4 *)(puVar5 + 3);
    *(undefined2 *)(iVar1 + -0x18a) = puVar5 + 5;
    *(undefined4 *)(iVar1 + -0x17a) = *(undefined4 *)(puVar5 + 5);
    *(undefined4 *)(iVar1 + -0x176) = *(undefined4 *)(puVar5 + 7);
    *(undefined4 *)(iVar1 + -0x172) = *(undefined4 *)(puVar5 + 9);
  }
  _DAT_0000_0b96 = (undefined1 *)piVar4;
  *(undefined2 *)(_DAT_0000_1150 + -2) = 0x28c7;
  FUN_11bd_092c();
  pbVar2 = (byte *)*(undefined2 *)((int)piVar4 + 0x18);
  if (pbVar2 == (byte *)0x0) {
    LOCK();
    pbVar2 = (byte *)*(undefined2 *)((int)piVar4 + 0x1c);
    *(undefined2 *)((int)piVar4 + 0x1c) = 0;
    UNLOCK();
  }
  *(uint *)((int)piVar4 + 0x18) = (uint)*pbVar2;
  FUN_11bd_0251();
  return;
}



// WARNING: Unable to track spacebase fully for stack
// WARNING: Globals starting with '_' overlap smaller symbols at the same address

void FUN_11bd_0c9f(void)

{
  int iVar1;
  undefined2 in_CX;
  undefined2 in_DX;
  undefined2 in_BX;
  byte *pbVar2;
  int iVar3;
  undefined2 unaff_BP;
  int *piVar4;
  undefined2 unaff_SI;
  undefined2 *puVar5;
  undefined2 unaff_DI;
  undefined2 unaff_ES;
  int unaff_SS;
  undefined2 uVar6;
  int iStack_18;
  
  iVar1 = (int)_DAT_0000_0b96;
  _DAT_0000_117a = (undefined2 *)CONCAT22(unaff_SS,&stack0xfffc);
  if (unaff_SS == 0x20) {
    piVar4 = &iStack_18;
    iStack_18 = (int)_DAT_0000_0b96;
  }
  else {
    iVar3 = (int)_DAT_0000_0b96 + -0x180;
    *(undefined2 *)((int)_DAT_0000_0b96 + -0x182) = 0x20;
    *(undefined2 *)(iVar1 + -0x184) = in_CX;
    *(undefined2 *)(iVar1 + -0x186) = in_DX;
    *(undefined2 *)(iVar1 + -0x188) = in_BX;
    *(int *)(iVar1 + -0x18a) = iVar3;
    *(undefined2 *)(iVar1 + -0x18c) = unaff_BP;
    *(undefined2 *)(iVar1 + -0x18e) = unaff_SI;
    *(undefined2 *)(iVar1 + -400) = unaff_DI;
    *(undefined2 *)(iVar1 + -0x192) = unaff_ES;
    *(undefined2 *)(iVar1 + -0x194) = 0x20;
    *(undefined2 *)(iVar1 + -0x196) = _DAT_0000_117c;
    piVar4 = (int *)(iVar1 + -0x198);
    *(int *)(iVar1 + -0x198) = (int)_DAT_0000_0b96;
    uVar6 = (undefined2)((ulong)_DAT_0000_117a >> 0x10);
    puVar5 = (undefined2 *)_DAT_0000_117a;
    *(undefined2 *)(iVar1 + -0x194) = *_DAT_0000_117a;
    *(undefined2 *)(iVar1 + -0x182) = puVar5[1];
    *(undefined2 *)(iVar1 + -0x180) = puVar5[2];
    *(undefined4 *)(iVar1 + -0x17e) = *(undefined4 *)(puVar5 + 3);
    *(undefined2 *)(iVar1 + -0x18a) = puVar5 + 5;
    *(undefined4 *)(iVar1 + -0x17a) = *(undefined4 *)(puVar5 + 5);
    *(undefined4 *)(iVar1 + -0x176) = *(undefined4 *)(puVar5 + 7);
    *(undefined4 *)(iVar1 + -0x172) = *(undefined4 *)(puVar5 + 9);
  }
  _DAT_0000_0b96 = (undefined1 *)piVar4;
  *(undefined2 *)(_DAT_0000_1150 + -2) = 0x28c7;
  FUN_11bd_092c();
  pbVar2 = (byte *)*(undefined2 *)((int)piVar4 + 0x18);
  if (pbVar2 == (byte *)0x0) {
    LOCK();
    pbVar2 = (byte *)*(undefined2 *)((int)piVar4 + 0x1c);
    *(undefined2 *)((int)piVar4 + 0x1c) = 0;
    UNLOCK();
  }
  *(uint *)((int)piVar4 + 0x18) = (uint)*pbVar2;
  FUN_11bd_0251();
  return;
}



void __cdecl16near FUN_11bd_0d0c(void)

{
  FUN_11bd_1298(0x1026);
  return;
}



void __cdecl16near FUN_11bd_0d15(void)

{
  FUN_11bd_1280(0x1026);
  FUN_11bd_1298(0xf8a);
  return;
}



int __cdecl16far FUN_11bd_0d26(undefined4 param_1,undefined4 param_2)

{
  undefined2 *puVar1;
  undefined2 *puVar2;
  uint uVar3;
  int iVar4;
  undefined2 *puVar5;
  undefined2 *puVar6;
  int unaff_SS;
  int iVar7;
  
  iVar7 = (int)((ulong)param_2 >> 0x10);
  iVar4 = (int)param_2;
  if (unaff_SS == iVar7) {
    uVar3 = iVar4 - (int)&stack0xfff6;
    puVar5 = (undefined2 *)(iVar4 - uVar3);
    puVar6 = (undefined2 *)((int)param_1 - uVar3);
    for (uVar3 = uVar3 >> 1; uVar3 != 0; uVar3 = uVar3 - 1) {
      puVar2 = puVar6;
      puVar6 = puVar6 + 1;
      puVar1 = puVar5;
      puVar5 = puVar5 + 1;
      *puVar2 = *puVar1;
    }
  }
  else {
    iVar4 = 0;
  }
  return iVar4;
}



void __cdecl16near FUN_11bd_0d62(void)

{
  return;
}



undefined2 __cdecl16far FUN_11bd_0d80(void)

{
  undefined2 uVar1;
  undefined2 unaff_DS;
  undefined1 in_ZF;
  
  FUN_11bd_0d62();
  if ((bool)in_ZF) {
    FUN_11bd_0d62();
    FUN_11bd_0d62(unaff_DS);
    if ((bool)in_ZF) {
      LOCK();
      UNLOCK();
      uVar1 = FUN_11bd_0931();
      return uVar1;
    }
  }
  return 0;
}



undefined2 __cdecl16far FUN_11bd_0db2(void)

{
  FUN_11bd_0293();
  return 1;
}



void __cdecl16near FUN_11bd_0ef4(void)

{
  code *pcVar1;
  
  pcVar1 = (code *)swi(0x15);
  (*pcVar1)();
  return;
}



void __cdecl16near FUN_11bd_11c1(void)

{
  FUN_11bd_0d80();
  return;
}



uint __cdecl16near FUN_11bd_11dd(uint param_1)

{
  return (param_1 + 0x10 >> 1 | (uint)(0xffef < param_1) << 0xf) >> 3;
}



// WARNING: Globals starting with '_' overlap smaller symbols at the same address

void __cdecl16near
FUN_11bd_11ed(undefined2 param_1,undefined2 param_2,undefined1 *param_3,int param_4)

{
  undefined1 *puVar1;
  undefined1 *puVar2;
  undefined1 *puVar3;
  undefined2 unaff_ES;
  
  FUN_11bd_0290();
  _DAT_0000_00e2 = param_1;
  DAT_0000_00e4 = (undefined1)param_2;
  DAT_0000_00e7 = (undefined1)((uint)param_2 >> 8);
  puVar3 = (undefined1 *)0x0;
  for (; param_4 != 0; param_4 = param_4 + -1) {
    puVar2 = param_3;
    param_3 = param_3 + 1;
    puVar1 = puVar3;
    puVar3 = puVar3 + 1;
    *puVar2 = *puVar1;
  }
  FUN_11bd_0929();
  return;
}



// WARNING: Globals starting with '_' overlap smaller symbols at the same address

void __cdecl16near
FUN_11bd_1222(undefined2 param_1,undefined1 param_2,undefined2 *param_3,uint param_4)

{
  undefined2 *puVar1;
  undefined2 *puVar2;
  uint uVar3;
  undefined2 *puVar4;
  undefined2 unaff_DS;
  
  FUN_11bd_0290();
  _DAT_0000_00e2 = param_1;
  DAT_0000_00e4 = param_2;
  puVar4 = (undefined2 *)0x0;
  for (uVar3 = param_4 >> 1; uVar3 != 0; uVar3 = uVar3 - 1) {
    puVar2 = puVar4;
    puVar4 = puVar4 + 1;
    puVar1 = param_3;
    param_3 = param_3 + 1;
    *puVar2 = *puVar1;
  }
  for (uVar3 = (uint)((param_4 & 1) != 0); uVar3 != 0; uVar3 = uVar3 - 1) {
    puVar2 = puVar4;
    puVar4 = (undefined2 *)((int)puVar4 + 1);
    puVar1 = param_3;
    param_3 = (undefined2 *)((int)param_3 + 1);
    *(undefined1 *)puVar2 = *(undefined1 *)puVar1;
  }
  _DAT_0000_00e6 = 0;
  FUN_11bd_0929();
  return;
}



byte __cdecl16near FUN_11bd_1266(void)

{
  byte in_IF;
  
  return in_IF & 1;
}



void __cdecl16near FUN_11bd_1280(undefined2 *param_1)

{
  undefined2 *puVar1;
  undefined2 *puVar2;
  int iVar3;
  undefined2 *puVar4;
  undefined2 unaff_SS;
  
  puVar4 = (undefined2 *)0x20;
  for (iVar3 = 0x4e; iVar3 != 0; iVar3 = iVar3 + -1) {
    puVar2 = param_1;
    param_1 = param_1 + 1;
    puVar1 = puVar4;
    puVar4 = puVar4 + 1;
    *puVar2 = *puVar1;
  }
  return;
}



void __cdecl16near FUN_11bd_1298(undefined2 *param_1)

{
  int iVar1;
  undefined2 *puVar2;
  undefined2 unaff_DS;
  
  iVar1 = 8;
  puVar2 = (undefined2 *)0x20;
  do {
    if ((*(char *)(iVar1 + 0x10be) != '\0') && ((char)iVar1 != *(char *)0x34)) {
      *puVar2 = *param_1;
      puVar2[1] = param_1[1];
    }
    puVar2 = puVar2 + 2;
    param_1 = param_1 + 2;
    iVar1 = iVar1 + 1;
  } while ((byte)iVar1 < 0x2f);
  return;
}



// WARNING: Globals starting with '_' overlap smaller symbols at the same address

void __cdecl16near FUN_11bd_13ad(void)

{
  int *piVar1;
  int iVar2;
  int iVar3;
  int in_CX;
  undefined2 uVar4;
  undefined2 *puVar5;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  undefined2 uVar6;
  undefined1 in_ZF;
  
  FUN_11bd_166b();
  if ((bool)in_ZF) {
    puVar5 = (undefined2 *)((uint)*(byte *)0x34 * 4);
    if (puVar5[1] == 0x11bd) {
      uVar6 = (undefined2)((ulong)_DAT_1000_12c4 >> 0x10);
      uVar4 = DAT_1000_12c4;
      if (*(char *)0x34 != '\x15') {
        uVar6 = (undefined2)((ulong)*(undefined4 *)0xf84 >> 0x10);
        uVar4 = (undefined2)*(undefined4 *)0xf84;
      }
      *puVar5 = uVar4;
      puVar5[1] = uVar6;
      return;
    }
    while( true ) {
      if ((in_CX != puVar5[-1]) || (puVar5 != (undefined2 *)puVar5[-2])) goto LAB_11bd_1427;
      piVar1 = puVar5 + -3;
      if (*piVar1 == 0x11bd) break;
      puVar5 = (undefined2 *)puVar5[-4];
      in_CX = *piVar1;
    }
    puVar5[-4] = DAT_1000_12c4;
    puVar5[-3] = DAT_1000_12c6;
    iVar2 = *(int *)0x0;
    if (iVar2 == 0) {
      iVar2 = *(int *)0x10;
    }
    if ((iVar2 != 0) && (iVar3 = iVar2 + -0x10, *(int *)0x1 == iVar3)) goto LAB_11bd_142a;
  }
LAB_11bd_1427:
  iVar3 = -1;
LAB_11bd_142a:
  *(int *)0x1 = iVar3;
  return;
}



uint __cdecl16near FUN_11bd_1438(void)

{
  undefined2 unaff_DS;
  
  return *(uint *)0xf88 | 1;
}



void __cdecl16near FUN_11bd_1497(undefined2 param_1)

{
  code *pcVar1;
  
  FUN_11bd_2620(param_1,param_1);
  pcVar1 = (code *)swi(0x21);
  (*pcVar1)();
  return;
}



void __cdecl16near FUN_11bd_14ac(undefined2 param_1)

{
  undefined2 uVar1;
  undefined2 unaff_DS;
  
  uVar1 = *(undefined2 *)0xac2;
  *(undefined2 *)0xac2 = 0x14c4;
  FUN_11bd_22ad(param_1);
  *(undefined2 *)0xac2 = uVar1;
  return;
}



undefined4 __cdecl16near FUN_11bd_166b(void)

{
  undefined2 in_AX;
  undefined2 in_DX;
  undefined2 unaff_SS;
  
  if (DAT_1000_14d6 != 0 || DAT_1000_14d4 != 0) {
    if (iRam000000be == 0x1000) {
      iRam000000bc = DAT_1000_14d4;
      iRam000000be = DAT_1000_14d6;
    }
    if ((*(uint *)0x1582 & 1) != 0) {
      *(undefined2 *)0x9c0 = 0x1706;
      (*(code *)*(undefined2 *)0x155c)(0x1000);
    }
  }
  DAT_1000_14d4 = 0;
  DAT_1000_14d6 = 0;
  return CONCAT22(in_DX,in_AX);
}



void __cdecl16near FUN_11bd_17d8(void)

{
  FUN_11bd_1497(0xaac);
  return;
}



void __cdecl16near FUN_11bd_17e1(undefined2 param_1)

{
  FUN_11bd_17f3(param_1,0);
  return;
}



void __cdecl16near FUN_11bd_17f3(undefined2 param_1,int param_2)

{
  undefined2 unaff_DS;
  
  FUN_11bd_1497(0xe18);
  FUN_11bd_1497(0xac4);
  FUN_11bd_1497(param_1);
  if (param_2 != 0) {
    FUN_11bd_1497(0xacd);
    FUN_11bd_1497(param_2);
    FUN_11bd_1497(0xad0);
  }
  FUN_11bd_17d8();
  if (*(int *)0x11d4 == 0) {
    *(undefined2 *)0x11d4 = 0xffff;
  }
  (*(code *)*(undefined2 *)0xac2)(*(undefined2 *)0x11d4);
  return;
}



void __cdecl16near FUN_11bd_1847(int param_1,uint param_2)

{
  int iVar1;
  undefined2 unaff_DS;
  undefined1 local_8 [4];
  undefined1 local_4 [2];
  
  if (param_1 != 0) {
    FUN_11bd_1497(param_1);
    FUN_11bd_1497(0xad2);
  }
  iVar1 = 5;
  while (iVar1 = iVar1 + -1, -1 < iVar1) {
    local_4[-iVar1] =
         *(undefined1 *)((param_2 >> (((char)iVar1 + -1) * '\x04' & 0x1fU) & 0xf) + 0xab0);
  }
  local_4[0] = 0;
  FUN_11bd_1497(local_8);
  if (param_1 != 0) {
    FUN_11bd_1497(0xad4);
  }
  return;
}



void __cdecl16near FUN_11bd_18a4(undefined2 param_1)

{
  undefined2 unaff_DS;
  
  FUN_11bd_25ee(*(int *)0x11f8 + 0x1190,param_1);
  return;
}



void __cdecl16near FUN_11bd_18ba(undefined2 param_1)

{
  int iVar1;
  undefined2 unaff_DS;
  
  iVar1 = FUN_11bd_2620(0x1190);
  if (iVar1 == *(int *)0x11f8) {
    FUN_11bd_18a4(param_1);
  }
  return;
}



int __cdecl16near FUN_11bd_18d6(int param_1)

{
  if (param_1 - 0x61U < 0x1a) {
    return param_1 + -0x20;
  }
  return param_1;
}



void __cdecl16near FUN_11bd_18f1(undefined1 *param_1,char *param_2)

{
  undefined1 uVar1;
  undefined2 unaff_DS;
  
  while( true ) {
    if (*param_2 == 0) break;
    uVar1 = FUN_11bd_18d6((int)*param_2);
    *param_1 = uVar1;
    param_1 = param_1 + 1;
    param_2 = param_2 + 1;
  }
  *param_1 = 0;
  return;
}



void __cdecl16near FUN_11bd_191d(undefined2 param_1)

{
  char *pcVar1;
  int iVar2;
  undefined2 unaff_DS;
  undefined2 local_4;
  
  FUN_11bd_18f1(0x1190,param_1);
  local_4 = FUN_11bd_2620(0x1190);
  *(int *)0x11f8 = local_4;
  while( true ) {
    iVar2 = local_4 + -1;
    if ((iVar2 < 0) || (*(char *)(local_4 + 0x118f) == '\\')) break;
    pcVar1 = (char *)(local_4 + 0x118f);
    local_4 = iVar2;
    if (*pcVar1 == '.') {
      *(int *)0x11f8 = iVar2;
    }
  }
  return;
}



undefined2 __cdecl16near FUN_11bd_195d(char *param_1,char *param_2)

{
  char *pcVar1;
  char *pcVar2;
  undefined2 unaff_DS;
  
  do {
    if (*param_2 == '\0') {
      return 1;
    }
    pcVar1 = param_2;
    pcVar2 = param_1;
    param_1 = param_1 + 1;
    param_2 = param_2 + 1;
  } while (*pcVar2 == *pcVar1);
  return 0;
}



void __cdecl16near FUN_11bd_198a(void)

{
  undefined2 unaff_DS;
  
  (*(code *)*(undefined2 *)0x1e)(0x11bd,0x18,0x20,0x20,0x20);
  return;
}



void __cdecl16near FUN_11bd_199a(void)

{
  uint uVar1;
  undefined2 uVar2;
  undefined1 extraout_DL;
  uint uVar3;
  char cVar4;
  undefined2 unaff_DS;
  long lVar5;
  undefined4 uVar6;
  char local_10;
  char local_c;
  undefined1 local_4;
  
  lVar5 = FUN_11bd_27a4();
  uVar1 = (uint)lVar5;
  *(uint *)0x8e2 = uVar1;
  cVar4 = (char)((ulong)lVar5 >> 0x10);
  *(char *)0x8e4 = cVar4;
  lVar5 = lVar5 + 0x8c0;
  uVar3 = (uint)lVar5;
  *(uint *)0x976 = uVar3;
  *(undefined2 *)0x978 = (int)((ulong)lVar5 >> 0x10);
  *(undefined2 *)0x8c8 = 0x9f;
  *(uint *)0x8ca = uVar3;
  local_c = (char)((ulong)lVar5 >> 0x10);
  *(char *)0x8cc = local_c;
  local_c = local_c + (0xff5f < uVar3);
  *(uint *)0x912 = uVar1 + 0x960;
  *(char *)0x914 = local_c;
  *(undefined2 *)0x8ce = 0;
  *(undefined2 *)0x916 = 0;
  local_10 = local_c - (uVar1 + 0x960 < 0x8a0);
  *(int *)0x8d2 = uVar1 + 0xc0;
  *(char *)0x8d4 = local_10;
  uVar2 = FUN_11bd_27a4();
  *(undefined2 *)0x90a = uVar2;
  *(undefined2 *)0x8da = uVar2;
  *(undefined1 *)0x90c = extraout_DL;
  *(undefined1 *)0x8dc = extraout_DL;
  *(int *)0x91a = uVar1 + 0xd74;
  *(char *)0x91c = cVar4 + (0xf28b < uVar1);
  uVar6 = FUN_11bd_27a4();
  *(undefined2 *)0x932 = (int)uVar6;
  local_4 = (undefined1)((ulong)uVar6 >> 0x10);
  *(undefined1 *)0x934 = local_4;
  *(uint *)0x936 = (uint)((ulong)uVar6 >> 0x10) & 0xff00;
  *(undefined2 *)0xd70 = 0x80;
  if ('\x02' < *(char *)0x2f) {
    *(undefined2 *)0x8fe = 0x8f;
  }
  return;
}



uint __cdecl16near FUN_11bd_1a86(int param_1)

{
  int local_18 [3];
  int local_12;
  undefined1 local_10;
  undefined1 local_f;
  uint local_4;
  
  if (param_1 == 0) {
    return 1;
  }
  local_12 = param_1;
  local_18[0] = param_1;
  local_f = 0x49;
  FUN_11bd_2718(&local_10,&local_10,local_18);
  return ~local_4 & 1;
}



void __cdecl16near FUN_11bd_1ab8(undefined2 *param_1)

{
  undefined2 *puVar1;
  undefined2 uVar2;
  undefined4 uVar3;
  
  uVar2 = (undefined2)((ulong)param_1 >> 0x10);
  puVar1 = (undefined2 *)param_1;
  if ((*(byte *)((int)puVar1 + 5) & 0x10) != 0) {
    if (((*(byte *)(puVar1 + 2) & 0xf0) != 0) || (*(char *)((int)puVar1 + 7) != '\0')) {
      uVar2 = FUN_11bd_11dd(*param_1,*(char *)((int)puVar1 + 7));
      uVar3 = FUN_11bd_27b0(uVar2,0);
                    // WARNING: Subroutine does not return
      thunk_FUN_11bd_1e86(uVar3);
    }
  }
  return;
}



void __cdecl16near FUN_11bd_1b0a(void)

{
  undefined2 uVar1;
  undefined2 uVar2;
  undefined2 uVar3;
  int iVar4;
  undefined2 uVar5;
  undefined2 unaff_DS;
  uint local_e;
  
  *(undefined2 *)0xd60 = 0;
  *(undefined2 *)0xd62 = 0;
  if (*(int *)0x990 != 0 || *(int *)0x98e != 0) {
    *(undefined2 *)0x938 = *(undefined2 *)0x8c8;
    *(undefined2 *)0x93a = *(undefined2 *)0x8ca;
    *(undefined2 *)0x93c = *(undefined2 *)0x8cc;
    *(undefined2 *)0x93e = *(undefined2 *)0x8ce;
    uVar5 = 8;
    if (*(char *)0x11d8 == '\0') {
      FUN_11bd_1c3f(0x50);
      uVar5 = *(undefined2 *)0x11e4;
      uVar1 = *(undefined2 *)0x11e6;
      uVar2 = *(undefined2 *)&LAB_0000_11e8;
      uVar3 = *(undefined2 *)0x11ea;
      FUN_11bd_199a();
      if (*(int *)0xa14 == 0) {
        FUN_11bd_016c();
      }
      *(undefined2 *)0x910 = uVar5;
      *(undefined2 *)0x912 = uVar1;
      *(undefined2 *)0x914 = uVar2;
      *(undefined2 *)0x916 = uVar3;
      uVar5 = 0x78;
    }
    local_e = *(uint *)0x938;
    FUN_11bd_198a();
    FUN_11bd_1266(1);
    for (local_e = local_e & 0xfff8; 0x7f < local_e; local_e = local_e - 8) {
      if ((*(byte *)(local_e >> 3) & 1) != 0) {
        FUN_11bd_1ab8(local_e,uVar5);
      }
    }
    FUN_11bd_1ab8(0x50,uVar5);
    FUN_11bd_1ab8(8,uVar5);
    if ((*(char *)0x9f8 == '\0') && ((*(byte *)0x47 & 0x80) == 0)) {
      FUN_11bd_1ab8(0x70,uVar5);
    }
    FUN_11bd_1438();
    FUN_11bd_11c1();
    if ((((*(char *)0x11d8 == '\0') && (*(int *)0x990 != 0 || *(int *)0x98e != 0)) &&
        (*(int *)0x990 < 0x11)) && (*(int *)0x990 < 0x10)) {
      uVar5 = FUN_11bd_27b0();
      iVar4 = FUN_11bd_1a86(uVar5);
      if (iVar4 == 0) {
        FUN_11bd_22ad(0x16);
      }
    }
  }
  *(undefined2 *)0x97e = 0;
  *(undefined2 *)0x97c = 0x2ff;
  return;
}



undefined2 __cdecl16near FUN_11bd_1c3f(uint param_1)

{
  undefined2 unaff_DS;
  
  if (*(uint *)0x97c < param_1) {
    *(undefined1 *)0x11e9 = 0;
    *(undefined1 *)&LAB_0000_11e8 = 0;
    *(undefined2 *)0x11ea = 0;
    *(undefined2 *)0x11e6 = 0;
    *(undefined2 *)0x11e4 = 0;
    return 0;
  }
  FUN_11bd_11ed((param_1 & 0xfff8) + *(uint *)0x98e,
                *(int *)0x990 + (uint)CARRY2(param_1 & 0xfff8,*(uint *)0x98e),0x11e4,8);
  return 1;
}



undefined2 __cdecl16near FUN_11bd_1c7d(uint param_1)

{
  undefined2 unaff_DS;
  
  if (*(uint *)0x97c < param_1) {
    return 0;
  }
  FUN_11bd_1222((param_1 & 0xfff8) + *(uint *)0x98e,
                *(int *)0x990 + (uint)CARRY2(param_1 & 0xfff8,*(uint *)0x98e),0x11e4,8);
  return 1;
}



void __cdecl16near
FUN_11bd_1caa(int param_1,int param_2,int param_3,undefined2 param_4,undefined1 param_5)

{
  undefined2 unaff_DS;
  undefined2 local_a;
  int local_8;
  undefined1 local_6;
  undefined1 local_5;
  int local_4;
  
  local_a = param_4;
  local_5 = param_5;
  local_8 = param_2 << 4;
  local_6 = FUN_11bd_27b0();
  local_4 = (param_3 >> 4) << 8;
  FUN_11bd_1222(param_1 * 8 + *(uint *)0x98e,
                *(int *)0x990 + (uint)CARRY2(param_1 * 8,*(uint *)0x98e),&local_a,8);
  return;
}



void __cdecl16near FUN_11bd_1cfb(undefined2 param_1,undefined2 param_2,undefined2 param_3)

{
  FUN_11bd_1caa(param_1,param_2,0,param_3,0x92);
  return;
}



undefined2 __cdecl16near FUN_11bd_1d11(int param_1)

{
  int iVar1;
  undefined2 unaff_DS;
  long lVar2;
  undefined1 local_58 [16];
  undefined2 local_48;
  undefined2 local_46;
  undefined1 local_44;
  undefined1 local_43;
  undefined2 local_40;
  undefined1 local_3c;
  undefined1 local_3b;
  undefined2 local_3a;
  undefined2 local_20;
  int iStack_1e;
  undefined2 *local_1c;
  undefined1 uStack_14;
  undefined1 local_13;
  undefined2 local_10;
  undefined1 *local_c;
  undefined2 local_6;
  undefined2 local_4;
  
  if (param_1 == 0) {
    return 0;
  }
  FUN_11bd_2776(local_58,0,0x30);
  local_1c = &local_20;
  lVar2 = FUN_11bd_27a4();
  lVar2 = lVar2 + ZEXT24(local_1c);
  local_46 = (undefined2)lVar2;
  local_4 = (undefined2)((ulong)lVar2 >> 0x10);
  local_44 = (undefined1)((ulong)lVar2 >> 0x10);
  local_3c = 0xc0;
  local_3a = 0x8000;
  local_3b = 0xf2;
  local_43 = 0xf2;
  local_13 = 0x87;
  local_48 = 1;
  local_40 = 1;
  local_10 = 1;
  local_1c = (undefined2 *)local_58;
  local_20 = 0xfe;
  local_c = (undefined1 *)local_1c;
  local_6 = local_46;
  FUN_11bd_263c(0x15,&uStack_14,&uStack_14,&stack0xffd8);
  iVar1 = *(int *)0x11ec;
  *(int *)(iVar1 + 4) = *(int *)(iVar1 + 4) - param_1;
  iStack_1e = *(int *)(iVar1 + 6);
  *(int *)(iVar1 + 6) = *(int *)(iVar1 + 6) - param_1;
  local_20 = 0xfc;
  local_13 = 0x87;
  local_10 = 1;
  FUN_11bd_263c(0x15,&uStack_14,&uStack_14,&stack0xffd8);
  *(int *)0x120a = *(int *)0x120a - (iStack_1e - *(int *)(iVar1 + 6));
  return *(undefined2 *)0x120a;
}



undefined2 __cdecl16near FUN_11bd_1d8c(void)

{
  int iVar1;
  int iVar2;
  int unaff_BP;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  
  FUN_11bd_263c(0x15,unaff_BP + -0x12,unaff_BP + -0x12,unaff_BP + -0x26);
  iVar2 = *(int *)0x11ec;
  *(int *)(unaff_BP + -0x16) = iVar2;
  *(undefined2 *)(unaff_BP + -0x14) = 0xf000;
  iVar1 = *(int *)(unaff_BP + 4);
  *(int *)(iVar2 + 4) = *(int *)(iVar2 + 4) - iVar1;
  *(undefined2 *)(unaff_BP + -0x1c) = *(undefined2 *)(iVar2 + 6);
  *(int *)(iVar2 + 6) = *(int *)(iVar2 + 6) - iVar1;
  *(undefined2 *)(unaff_BP + -0x1e) = 0xfc;
  *(undefined1 *)(unaff_BP + -0x11) = 0x87;
  *(undefined2 *)(unaff_BP + -0xe) = 1;
  FUN_11bd_263c(0x15,unaff_BP + -0x12,unaff_BP + -0x12,unaff_BP + -0x26);
  iVar2 = *(int *)(unaff_BP + -0x1c) - *(int *)((int)*(undefined4 *)(unaff_BP + -0x16) + 6);
  *(int *)(unaff_BP + 4) = iVar2;
  *(int *)0x120a = *(int *)0x120a - iVar2;
  return *(undefined2 *)0x120a;
}



void __cdecl16near FUN_11bd_1df7(void)

{
  int iVar1;
  int iVar2;
  undefined2 unaff_DS;
  
  iVar2 = 0x10;
  while (iVar1 = iVar2, iVar2 = iVar1 + -2, -1 < iVar2) {
    if (*(int *)(iVar1 + 0xada) != 0) {
      (*(code *)*(undefined2 *)0xaec)(0x11bd);
      (*(code *)*(undefined2 *)0xaec)(0x11bd);
      *(undefined2 *)(iVar1 + 0xada) = 0;
    }
  }
  return;
}



void thunk_FUN_11bd_1e86(void)

{
                    // WARNING: Subroutine does not return
  FUN_11bd_1e86();
}



void thunk_FUN_11bd_1e86(void)

{
                    // WARNING: Subroutine does not return
  FUN_11bd_1e86();
}



void thunk_FUN_11bd_1e86(void)

{
                    // WARNING: Subroutine does not return
  FUN_11bd_1e86();
}



void thunk_FUN_11bd_1e86(void)

{
                    // WARNING: Subroutine does not return
  FUN_11bd_1e86();
}



void thunk_FUN_11bd_1e86(void)

{
                    // WARNING: Subroutine does not return
  FUN_11bd_1e86();
}



void FUN_11bd_1e86(undefined2 param_1)

{
  int iVar1;
  undefined2 unaff_DS;
  
  iVar1 = *(int *)0xafa;
  *(int *)0xafa = iVar1 + 2;
  *(undefined2 *)(iVar1 + 2) = param_1;
                    // WARNING: Could not recover jumptable at 0x00013a69. Too many branches
                    // WARNING: Treating indirect jump as call
  (*(code *)(ulong)*(uint *)0xaf2)();
  return;
}



undefined2 * __cdecl16near FUN_11bd_1e9f(undefined2 param_1,undefined2 *param_2)

{
  int iVar1;
  undefined2 *puVar2;
  undefined2 *puVar3;
  int iVar4;
  code *pcVar5;
  uint uVar6;
  uint uVar7;
  undefined2 *puVar8;
  undefined2 *puVar9;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  
  if (*(int *)0xa12 == 0) {
    uVar6 = FUN_11bd_1f24();
    uVar6 = uVar6 >> 1;
    puVar9 = (undefined2 *)((int)param_2 + 0xfU & 0xfff0);
    uVar7 = (int)param_2 + 0xfU >> 4;
    iVar4 = *(int *)0xa10;
    LOCK();
    iVar1 = *(int *)0xa10;
    *(int *)0xa10 = uVar7 + 0x11bd;
    UNLOCK();
    puVar8 = (undefined2 *)0x0;
    for (; uVar6 != 0; uVar6 = uVar6 - 1) {
      puVar3 = puVar9;
      puVar9 = puVar9 + 1;
      puVar2 = puVar8;
      puVar8 = puVar8 + 1;
      *puVar3 = *puVar2;
    }
    FUN_11bd_1f2e();
    uVar6 = ((iVar4 + -0x11bd) - uVar7) * 8;
    unaff_DS = unaff_SS;
    puVar8 = puVar9;
  }
  else {
    uVar6 = (uint)((*(int *)0xcec + -1 + *(int *)0x3 + -0x11bc) * 0x10 - (int)param_2) >> 1;
    puVar9 = param_2;
    puVar8 = param_2;
  }
  for (; uVar6 != 0; uVar6 = uVar6 - 1) {
    *puVar9 = 0xcccc;
    puVar9 = puVar9 + 1;
  }
  *(int *)0x5a = (((int)puVar8 + 0xfU >> 4) + *(int *)0x9b6) - *(int *)0xcec;
  pcVar5 = (code *)swi(0x21);
  (*pcVar5)();
  return param_2;
}



undefined2 __cdecl16near FUN_11bd_1f24(void)

{
  return 0x5970;
}



void __cdecl16near FUN_11bd_1f2e(void)

{
  int iVar1;
  uint uVar2;
  uint uVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  uint uVar7;
  undefined2 unaff_DS;
  bool bVar8;
  
  iVar4 = FUN_11bd_1f24(0x9b);
  *(int *)0x930 = iVar4 + -1;
  uVar2 = *(uint *)0xa12;
  iVar1 = *(int *)0xa10;
  iVar6 = 4;
  iVar5 = iVar1;
  uVar7 = uVar2;
  do {
    bVar8 = iVar5 < 0;
    iVar5 = iVar5 << 1;
    uVar3 = uVar7 << 1;
    uVar7 = uVar3 | bVar8;
    iVar6 = iVar6 + -1;
  } while (iVar6 != 0);
  *(int *)0x932 = iVar5;
  *(undefined1 *)0x934 = (char)uVar7;
  *(undefined1 *)0x937 = (char)(uVar3 >> 8);
  FUN_11bd_1caa(0xe,iVar1,uVar2,iVar4 + -1);
  return;
}



// WARNING: Control flow encountered bad instruction data

void FUN_11bd_2081(void)

{
  FUN_11bd_0290();
                    // WARNING: Bad instruction - Truncating control flow here
  halt_baddata();
}



void __cdecl16far FUN_11bd_2090(void)

{
  return;
}



int __cdecl16near FUN_11bd_2272(int param_1)

{
  int *piVar1;
  int iVar2;
  undefined2 uVar3;
  undefined2 unaff_DS;
  
  if (*(int *)0xed6 != 0) {
    piVar1 = (int *)*(undefined4 *)0xed4;
    uVar3 = (undefined2)((ulong)piVar1 >> 0x10);
    for (iVar2 = ((int *)piVar1)[1]; 0xf < iVar2; iVar2 = iVar2 + -1) {
      if (((int *)piVar1)[iVar2] == param_1) {
        return iVar2 * 8 + *piVar1;
      }
    }
  }
  return 0;
}



void __cdecl16near FUN_11bd_22ad(int param_1)

{
  int *piVar1;
  int iVar2;
  undefined1 *puVar3;
  int *piVar5;
  int *piVar6;
  undefined2 unaff_DS;
  bool bVar7;
  int local_9c;
  undefined1 local_9a;
  undefined1 local_99 [149];
  uint local_4;
  undefined1 *puVar4;
  
  bVar7 = param_1 < 0;
  if (bVar7) {
    param_1 = -param_1;
  }
  local_4 = (uint)bVar7;
  local_9c = param_1;
  puVar3 = &local_9a;
  if (*(char *)0xf21 != '\x01') {
    local_9a = 0x5b;
    puVar3 = local_99;
    do {
      puVar4 = puVar3;
      puVar3 = puVar4 + 1;
      local_9c = local_9c / 10;
      iVar2 = param_1;
    } while (local_9c != 0);
    do {
      puVar3 = puVar3 + -1;
      *puVar3 = *(undefined1 *)(iVar2 % 10 + 0xab0);
      iVar2 = iVar2 / 10;
    } while (iVar2 != 0);
    puVar4[1] = 0x5d;
    puVar4[2] = 0x20;
    puVar3 = puVar4 + 4;
    puVar4[3] = 0x20;
    *puVar3 = 0;
  }
  piVar5 = (int *)0x15e8;
  while( true ) {
    piVar6 = piVar5 + 1;
    if ((*piVar5 < 0) || ((int *)*(undefined2 *)0xf22 <= piVar6)) goto LAB_11bd_2359;
    if (*piVar5 == param_1) break;
    do {
      piVar5 = (int *)((int)piVar6 + 1);
      piVar1 = piVar6;
      piVar6 = piVar5;
    } while ((char)*piVar1 != '\0');
  }
  FUN_11bd_25ee(puVar3,piVar6);
LAB_11bd_2359:
  if (local_4 != 0) {
    (*(code *)*(undefined2 *)0xe6c)(&local_9a,0x1190);
  }
  (*(code *)*(undefined2 *)0xe6c)(&local_9a,0);
  return;
}



// WARNING: Stack frame is not setup normally: Input value of stackpointer is not used
// WARNING: This function may have set the stack pointer

void __cdecl16near entry(void)

{
  undefined1 *puVar1;
  code *pcVar2;
  int iVar3;
  byte extraout_DL;
  undefined1 *puVar4;
  undefined1 *puVar5;
  undefined1 *puVar6;
  undefined2 uVar7;
  undefined2 unaff_DS;
  undefined2 uVar8;
  undefined1 uVar9;
  
  puVar4 = (undefined1 *)0x154e;
  DAT_1000_0ce6 = 0x1bcf;
  DAT_1000_0cdc = 0x154e;
  *(undefined2 *)0x2 = 0x1f29;
  pcVar2 = (code *)swi(0x21);
  (*pcVar2)();
  DAT_1000_0cec = unaff_DS;
  *(undefined2 *)(puVar4 + -2) = 0x1000;
  uVar7 = *(undefined2 *)(puVar4 + -2);
  puVar6 = (undefined1 *)0x1186;
  uVar9 = 0;
  for (iVar3 = 0x8a; iVar3 != 0; iVar3 = iVar3 + -1) {
    puVar1 = puVar6;
    puVar6 = puVar6 + 1;
    *puVar1 = 0;
  }
  *(undefined2 *)(puVar4 + -2) = 0x1000;
  uVar8 = *(undefined2 *)(puVar4 + -2);
  pcVar2 = (code *)swi(0x21);
  uVar7 = (*pcVar2)();
  *(undefined2 *)0xcee = uVar7;
  iVar3 = 4;
  do {
    pcVar2 = (code *)swi(0x21);
    (*pcVar2)();
    if ((!(bool)uVar9) && (uVar9 = 0, (extraout_DL & 0x80) != 0)) {
      uVar9 = 0;
      *(byte *)(iVar3 + 0xcfa) = *(byte *)(iVar3 + 0xcfa) | 0x40;
    }
    iVar3 = iVar3 + -1;
  } while (-1 < iVar3);
  puVar5 = puVar4 + -2;
  *(undefined2 *)(puVar4 + -2) = 0x3fb9;
  FUN_11bd_2460();
  *(undefined2 *)(puVar5 + -2) = 0x1000;
  uVar7 = *(undefined2 *)(puVar5 + -2);
  *(undefined2 *)(puVar5 + -2) = *(undefined2 *)0xcf6;
  *(undefined2 *)(puVar5 + -4) = *(undefined2 *)0xcf4;
  *(undefined2 *)(puVar5 + -6) = *(undefined2 *)0xcf2;
  *(undefined2 *)(puVar5 + -8) = 0x3fcc;
  FUN_11bd_2d9c();
  return;
}



void __cdecl16near FUN_11bd_2404(undefined1 param_1)

{
  undefined1 local_10;
  undefined1 local_f;
  
  local_f = 0x4c;
  local_10 = param_1;
  FUN_11bd_26d0(&local_10,&local_10);
  return;
}



void __cdecl16near FUN_11bd_2422(undefined2 param_1)

{
  FUN_11bd_2404(param_1);
  return;
}



void __cdecl16near FUN_11bd_2430(undefined2 param_1)

{
  FUN_11bd_2422(param_1);
  return;
}



int __cdecl16near FUN_11bd_243e(undefined2 param_1)

{
  int iVar1;
  
  iVar1 = FUN_11bd_65c3(param_1);
  if (iVar1 == -1) {
    iVar1 = 0;
  }
  return iVar1;
}



// WARNING (jumptable): Unable to track spacebase fully for stack
// WARNING: Unable to track spacebase fully for stack

void FUN_11bd_2460(undefined2 param_1,undefined2 param_2)

{
  char *pcVar1;
  char cVar2;
  char *pcVar3;
  undefined2 uVar4;
  code *pcVar5;
  undefined2 uVar6;
  int iVar7;
  uint uVar8;
  uint uVar9;
  undefined2 *puVar10;
  char *pcVar11;
  char *pcVar12;
  char *pcVar13;
  int iVar14;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  undefined2 in_stack_00000000;
  
  *(undefined2 *)0xd10 = in_stack_00000000;
  pcVar5 = (code *)swi(0x21);
  uVar6 = (*pcVar5)();
  *(undefined2 *)0xcee = uVar6;
  uVar9 = 1;
  if ((char)uVar6 != '\x02') {
    uVar6 = *(undefined2 *)0x2c;
    *(undefined2 *)0xcfa = uVar6;
    iVar7 = -0x8000;
    pcVar12 = (char *)0x0;
LAB_11bd_2487:
    do {
      pcVar13 = pcVar12;
      if (iVar7 != 0) {
        iVar7 = iVar7 + -1;
        pcVar3 = pcVar12;
        pcVar12 = pcVar12 + 1;
        pcVar13 = pcVar12;
        if (*pcVar3 != '\0') goto LAB_11bd_2487;
      }
      pcVar12 = pcVar13 + 1;
    } while (*pcVar13 != '\0');
    pcVar13 = pcVar13 + 3;
    *(undefined2 *)0xcf8 = pcVar13;
    uVar9 = 0xffff;
    do {
      if (uVar9 == 0) break;
      uVar9 = uVar9 - 1;
      pcVar3 = pcVar13;
      pcVar13 = pcVar13 + 1;
    } while (*pcVar3 != '\0');
    uVar9 = ~uVar9;
  }
  iVar7 = 1;
  pcVar12 = (char *)0x81;
  uVar6 = *(undefined2 *)0xcec;
LAB_11bd_24a5:
  do {
    do {
      pcVar3 = pcVar12;
      pcVar12 = pcVar12 + 1;
      cVar2 = *pcVar3;
    } while (cVar2 == ' ');
  } while (cVar2 == '\t');
  if ((cVar2 != '\r') && (cVar2 != '\0')) {
    iVar7 = iVar7 + 1;
    do {
      pcVar12 = pcVar12 + -1;
LAB_11bd_24b8:
      pcVar3 = pcVar12;
      pcVar12 = pcVar12 + 1;
      cVar2 = *pcVar3;
      if ((cVar2 == ' ') || (cVar2 == '\t')) goto LAB_11bd_24a5;
      if ((cVar2 == '\r') || (cVar2 == '\0')) break;
      if (cVar2 == '\"') {
LAB_11bd_24f1:
        do {
          while( true ) {
            while( true ) {
              pcVar3 = pcVar12;
              pcVar12 = pcVar12 + 1;
              cVar2 = *pcVar3;
              if ((cVar2 == '\r') || (cVar2 == '\0')) goto LAB_11bd_2521;
              if (cVar2 == '\"') goto LAB_11bd_24b8;
              if (cVar2 == '\\') break;
              uVar9 = uVar9 + 1;
            }
            uVar8 = 0;
            do {
              pcVar13 = pcVar12;
              uVar8 = uVar8 + 1;
              pcVar12 = pcVar13 + 1;
            } while (*pcVar13 == '\\');
            if (*pcVar13 == '\"') break;
            uVar9 = uVar9 + uVar8;
            pcVar12 = pcVar13;
          }
          uVar9 = uVar9 + (uVar8 >> 1) + (uint)((uVar8 & 1) != 0);
        } while ((uVar8 & 1) != 0);
        goto LAB_11bd_24b8;
      }
      if (cVar2 != '\\') {
        uVar9 = uVar9 + 1;
        goto LAB_11bd_24b8;
      }
      uVar8 = 0;
      do {
        uVar8 = uVar8 + 1;
        pcVar3 = pcVar12;
        pcVar12 = pcVar12 + 1;
      } while (*pcVar3 == '\\');
      if (*pcVar3 == '\"') {
        uVar9 = uVar9 + (uVar8 >> 1) + (uint)((uVar8 & 1) != 0);
        if ((uVar8 & 1) == 0) goto LAB_11bd_24f1;
        goto LAB_11bd_24b8;
      }
      uVar9 = uVar9 + uVar8;
    } while( true );
  }
LAB_11bd_2521:
  *(int *)0xcf2 = iVar7;
  iVar14 = (iVar7 + 1) * 2;
  iVar7 = -(uVar9 + iVar7 + iVar14 + 1 & 0xfffe);
  *(undefined1 **)0xcf4 = &stack0x0006 + iVar7;
  pcVar13 = &stack0x0006 + iVar14 + iVar7;
  *(undefined2 *)((int)&stack0x0004 + iVar7) = unaff_SS;
  uVar6 = *(undefined2 *)((int)&stack0x0004 + iVar7);
  *(char **)(&stack0x0006 + iVar7) = pcVar13;
  puVar10 = (undefined2 *)(&stack0x0008 + iVar7);
  pcVar3 = (char *)*(undefined4 *)0xcf8;
  pcVar12 = (char *)pcVar3;
  do {
    pcVar1 = pcVar12;
    pcVar12 = pcVar12 + 1;
    cVar2 = *pcVar1;
    pcVar1 = pcVar13;
    pcVar13 = pcVar13 + 1;
    *pcVar1 = cVar2;
  } while (cVar2 != '\0');
  uVar4 = *(undefined2 *)0xcec;
  pcVar12 = (char *)0x81;
LAB_11bd_255b:
  do {
    do {
      pcVar3 = pcVar12;
      pcVar12 = pcVar12 + 1;
      cVar2 = *pcVar3;
    } while (cVar2 == ' ');
  } while (cVar2 == '\t');
  if ((cVar2 == '\r') || (cVar2 == '\0')) {
LAB_11bd_25e4:
    *(undefined2 *)((int)&stack0x0004 + iVar7) = unaff_SS;
    uVar6 = *(undefined2 *)((int)&stack0x0004 + iVar7);
    *puVar10 = 0;
                    // WARNING: Could not recover jumptable at 0x000141ba. Too many branches
                    // WARNING: Treating indirect jump as call
    (*(code *)*(undefined2 *)0xd10)();
    return;
  }
  *puVar10 = pcVar13;
  puVar10 = puVar10 + 1;
  do {
    pcVar12 = pcVar12 + -1;
LAB_11bd_2572:
    pcVar3 = pcVar12;
    pcVar12 = pcVar12 + 1;
    cVar2 = *pcVar3;
    if ((cVar2 == ' ') || (cVar2 == '\t')) {
      pcVar3 = pcVar13;
      pcVar13 = pcVar13 + 1;
      *pcVar3 = '\0';
      goto LAB_11bd_255b;
    }
    if ((cVar2 == '\r') || (cVar2 == '\0')) {
LAB_11bd_25e1:
      *pcVar13 = '\0';
      goto LAB_11bd_25e4;
    }
    pcVar11 = pcVar12;
    if (cVar2 == '\"') {
LAB_11bd_25ae:
      while( true ) {
        pcVar12 = pcVar11 + 1;
        cVar2 = *pcVar11;
        if ((cVar2 == '\r') || (cVar2 == '\0')) goto LAB_11bd_25e1;
        if (cVar2 == '\"') break;
        if (cVar2 == '\\') {
          uVar9 = 0;
          do {
            pcVar11 = pcVar12;
            uVar9 = uVar9 + 1;
            pcVar12 = pcVar11 + 1;
          } while (*pcVar11 == '\\');
          if (*pcVar11 == '\"') {
            for (uVar8 = uVar9 >> 1; uVar8 != 0; uVar8 = uVar8 - 1) {
              pcVar3 = pcVar13;
              pcVar13 = pcVar13 + 1;
              *pcVar3 = '\\';
            }
            if ((uVar9 & 1) == 0) break;
            pcVar3 = pcVar13;
            pcVar13 = pcVar13 + 1;
            *pcVar3 = '\"';
            pcVar11 = pcVar12;
          }
          else {
            for (; uVar9 != 0; uVar9 = uVar9 - 1) {
              pcVar3 = pcVar13;
              pcVar13 = pcVar13 + 1;
              *pcVar3 = '\\';
            }
          }
        }
        else {
          pcVar3 = pcVar13;
          pcVar13 = pcVar13 + 1;
          *pcVar3 = cVar2;
          pcVar11 = pcVar12;
        }
      }
      goto LAB_11bd_2572;
    }
    if (cVar2 != '\\') {
      pcVar3 = pcVar13;
      pcVar13 = pcVar13 + 1;
      *pcVar3 = cVar2;
      goto LAB_11bd_2572;
    }
    uVar9 = 0;
    do {
      uVar9 = uVar9 + 1;
      pcVar3 = pcVar12;
      pcVar12 = pcVar12 + 1;
    } while (*pcVar3 == '\\');
    if (*pcVar3 == '\"') {
      for (uVar8 = uVar9 >> 1; uVar8 != 0; uVar8 = uVar8 - 1) {
        pcVar3 = pcVar13;
        pcVar13 = pcVar13 + 1;
        *pcVar3 = '\\';
      }
      pcVar11 = pcVar12;
      if ((uVar9 & 1) == 0) goto LAB_11bd_25ae;
      pcVar3 = pcVar13;
      pcVar13 = pcVar13 + 1;
      *pcVar3 = '\"';
      goto LAB_11bd_2572;
    }
    for (; uVar9 != 0; uVar9 = uVar9 - 1) {
      pcVar3 = pcVar13;
      pcVar13 = pcVar13 + 1;
      *pcVar3 = '\\';
    }
  } while( true );
}



void __cdecl16near FUN_11bd_25ee(char *param_1,char *param_2)

{
  char *pcVar1;
  char *pcVar2;
  uint uVar3;
  uint uVar4;
  char *pcVar5;
  undefined2 unaff_DS;
  
  uVar3 = 0xffff;
  pcVar5 = param_2;
  do {
    if (uVar3 == 0) break;
    uVar3 = uVar3 - 1;
    pcVar1 = pcVar5;
    pcVar5 = pcVar5 + 1;
  } while (*pcVar1 != '\0');
  uVar3 = ~uVar3;
  if (((uint)param_1 & 1) != 0) {
    pcVar2 = param_1;
    param_1 = param_1 + 1;
    pcVar1 = param_2;
    param_2 = param_2 + 1;
    *pcVar2 = *pcVar1;
    uVar3 = uVar3 - 1;
  }
  for (uVar4 = uVar3 >> 1; uVar4 != 0; uVar4 = uVar4 - 1) {
    pcVar2 = param_1;
    param_1 = param_1 + 2;
    pcVar1 = param_2;
    param_2 = param_2 + 2;
    *(undefined2 *)pcVar2 = *(undefined2 *)pcVar1;
  }
  for (uVar3 = (uint)((uVar3 & 1) != 0); uVar3 != 0; uVar3 = uVar3 - 1) {
    pcVar2 = param_1;
    param_1 = param_1 + 1;
    pcVar1 = param_2;
    param_2 = param_2 + 1;
    *pcVar2 = *pcVar1;
  }
  return;
}



int __cdecl16near FUN_11bd_2620(char *param_1)

{
  char *pcVar1;
  uint uVar2;
  undefined2 unaff_DS;
  
  uVar2 = 0xffff;
  do {
    if (uVar2 == 0) break;
    uVar2 = uVar2 - 1;
    pcVar1 = param_1;
    param_1 = param_1 + 1;
  } while (*pcVar1 != '\0');
  return ~uVar2 - 1;
}



// WARNING: Restarted to delay deadcode elimination for space: stack

undefined2 __cdecl16near
FUN_11bd_263c(byte param_1,int param_2,undefined2 *param_3,undefined2 *param_4)

{
  undefined2 uVar1;
  undefined2 uVar2;
  undefined2 uVar3;
  undefined2 uVar4;
  undefined2 uVar5;
  undefined2 uVar6;
  undefined2 uVar7;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  bool bVar8;
  undefined4 uVar9;
  undefined1 local_e;
  byte local_d;
  undefined1 local_c;
  undefined1 local_b;
  undefined1 local_a;
  
  local_e = (code)0xcd;
  local_d = param_1;
  bVar8 = param_1 < 0x25;
  if ((param_1 == 0x25) || (bVar8 = param_1 < 0x26, param_1 == 0x26)) {
    local_a = 0xcb;
    local_b = 0x44;
    local_c = 0x44;
  }
  else {
    local_c = 0xcb;
  }
  uVar7 = *(undefined2 *)(param_2 + 2);
  uVar6 = *(undefined2 *)(param_2 + 4);
  uVar1 = *(undefined2 *)(param_2 + 8);
  uVar2 = *(undefined2 *)(param_2 + 10);
  uVar3 = *param_4;
  uVar4 = param_4[3];
  uVar9 = (*(code *)&local_e)(0x11bd);
  uVar5 = (undefined2)uVar9;
  *param_4 = uVar3;
  param_4[3] = uVar4;
  *param_3 = uVar5;
  param_3[1] = uVar7;
  param_3[2] = uVar6;
  param_3[3] = (int)((ulong)uVar9 >> 0x10);
  param_3[4] = uVar1;
  param_3[5] = uVar2;
  if (bVar8) {
    FUN_11bd_27de();
    uVar5 = *param_3;
  }
  param_3[6] = (uint)bVar8;
  return uVar5;
}



undefined2 __cdecl16near FUN_11bd_26d0(int param_1,undefined2 *param_2)

{
  undefined2 uVar1;
  undefined2 uVar2;
  code *pcVar3;
  undefined2 uVar4;
  undefined2 uVar5;
  undefined2 uVar6;
  undefined2 unaff_DS;
  undefined1 in_CF;
  undefined4 uVar7;
  
  uVar6 = *(undefined2 *)(param_1 + 2);
  uVar5 = *(undefined2 *)(param_1 + 4);
  uVar1 = *(undefined2 *)(param_1 + 8);
  uVar2 = *(undefined2 *)(param_1 + 10);
  pcVar3 = (code *)swi(0x21);
  uVar7 = (*pcVar3)();
  uVar4 = (undefined2)uVar7;
  *param_2 = uVar4;
  param_2[1] = uVar6;
  param_2[2] = uVar5;
  param_2[3] = (int)((ulong)uVar7 >> 0x10);
  param_2[4] = uVar1;
  param_2[5] = uVar2;
  if ((bool)in_CF) {
    FUN_11bd_27de();
    uVar4 = *param_2;
  }
  param_2[6] = (uint)(byte)in_CF;
  return uVar4;
}



undefined2 __cdecl16near FUN_11bd_2718(int param_1,undefined2 *param_2,undefined2 *param_3)

{
  undefined2 uVar1;
  undefined2 uVar2;
  undefined2 uVar3;
  undefined2 uVar4;
  code *pcVar5;
  undefined2 uVar6;
  undefined2 uVar7;
  undefined2 uVar8;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  undefined1 in_CF;
  undefined4 uVar9;
  
  uVar8 = *(undefined2 *)(param_1 + 2);
  uVar7 = *(undefined2 *)(param_1 + 4);
  uVar1 = *(undefined2 *)(param_1 + 8);
  uVar2 = *(undefined2 *)(param_1 + 10);
  uVar3 = *param_3;
  uVar4 = param_3[3];
  pcVar5 = (code *)swi(0x21);
  uVar9 = (*pcVar5)();
  uVar6 = (undefined2)uVar9;
  *param_3 = uVar3;
  param_3[3] = uVar4;
  *param_2 = uVar6;
  param_2[1] = uVar8;
  param_2[2] = uVar7;
  param_2[3] = (int)((ulong)uVar9 >> 0x10);
  param_2[4] = uVar1;
  param_2[5] = uVar2;
  if ((bool)in_CF) {
    FUN_11bd_27de();
    uVar6 = *param_2;
  }
  param_2[6] = (uint)(byte)in_CF;
  return uVar6;
}



undefined2 * __cdecl16near FUN_11bd_2776(undefined2 *param_1,undefined1 param_2,uint param_3)

{
  undefined2 *puVar1;
  uint uVar2;
  undefined2 *puVar3;
  undefined2 unaff_DS;
  
  if (param_3 != 0) {
    puVar3 = param_1;
    if (((uint)param_1 & 1) != 0) {
      puVar3 = (undefined2 *)((int)param_1 + 1);
      *(undefined1 *)param_1 = param_2;
      param_3 = param_3 - 1;
    }
    for (uVar2 = param_3 >> 1; uVar2 != 0; uVar2 = uVar2 - 1) {
      puVar1 = puVar3;
      puVar3 = puVar3 + 1;
      *puVar1 = CONCAT11(param_2,param_2);
    }
    for (uVar2 = (uint)((param_3 & 1) != 0); uVar2 != 0; uVar2 = uVar2 - 1) {
      puVar1 = puVar3;
      puVar3 = (undefined2 *)((int)puVar3 + 1);
      *(undefined1 *)puVar1 = param_2;
    }
  }
  return param_1;
}



void __cdecl16near FUN_11bd_27a4(void)

{
  uint in_CX;
  uint uVar1;
  
  for (uVar1 = in_CX & 0xff; uVar1 != 0; uVar1 = uVar1 - 1) {
  }
  return;
}



void __cdecl16near FUN_11bd_27b0(void)

{
  uint in_CX;
  uint uVar1;
  
  for (uVar1 = in_CX & 0xff; uVar1 != 0; uVar1 = uVar1 - 1) {
  }
  return;
}



void __cdecl16near FUN_11bd_27de(void)

{
  FUN_11bd_27e4();
  return;
}



void __cdecl16near FUN_11bd_27e4(void)

{
  byte bVar1;
  char cVar2;
  uint in_AX;
  undefined2 unaff_DS;
  
  bVar1 = (byte)in_AX;
  *(byte *)0xcf0 = bVar1;
  cVar2 = (char)(in_AX >> 8);
  if (cVar2 != '\0') goto LAB_11bd_2808;
  if (*(byte *)0xcee < 3) {
LAB_11bd_27fe:
    if (0x13 < bVar1) {
LAB_11bd_2802:
      in_AX = 0x13;
    }
  }
  else {
    if (0x21 < bVar1) goto LAB_11bd_2802;
    if (bVar1 < 0x20) goto LAB_11bd_27fe;
    in_AX = 5;
  }
  cVar2 = *(char *)(ulong)((in_AX & 0xff) + 0xd12);
LAB_11bd_2808:
  *(int *)0xce8 = (int)cVar2;
  return;
}



void __cdecl16near FUN_11bd_2adb(void)

{
  code *pcVar1;
  
  if (DAT_11bd_0f09 != 0) {
    pcVar1 = (code *)swi(0x67);
    (*pcVar1)();
  }
  return;
}



undefined2 __cdecl16near FUN_11bd_2d40(void)

{
  return 0;
}



void __cdecl16near FUN_11bd_2d43(void)

{
  undefined2 unaff_DS;
  
  *(undefined2 *)0x11d4 = 7;
  FUN_11bd_22ad(0x15);
  return;
}



void FUN_11bd_2d52(void)

{
  undefined1 uVar1;
  undefined2 unaff_DS;
  
  uVar1 = FUN_11bd_6655(1);
  *(undefined1 *)0x1186 = uVar1;
  if (*(char *)0x26 != '\0') {
    FUN_11bd_1497(0xe20);
    FUN_11bd_1497(0xad6);
    FUN_11bd_17d8();
    FUN_11bd_1497(*(undefined2 *)0x30);
    FUN_11bd_17d8();
  }
  *(undefined2 *)0xe = 0x2000;
  FUN_11bd_6549();
  return;
}



void __cdecl16near FUN_11bd_2d8b(void)

{
  undefined2 unaff_DS;
  
  FUN_11bd_6655((int)*(char *)0x1186);
  return;
}



undefined2 __cdecl16near FUN_11bd_2d95(void)

{
  return 0xffff;
}



undefined2 __cdecl16near FUN_11bd_2d99(void)

{
  return 0;
}



void __cdecl16near FUN_11bd_2d9c(int param_1,undefined2 *param_2)

{
  undefined1 *puVar1;
  undefined1 uVar2;
  int iVar3;
  undefined2 uVar4;
  undefined2 unaff_DS;
  uint local_c;
  undefined4 local_a;
  undefined4 local_6;
  
  uVar2 = FUN_11bd_65e1();
  *(undefined1 *)0x2f = uVar2;
  FUN_11bd_66e1(*(undefined2 *)0xcec,0x2c,0x9b8,2);
  FUN_11bd_191d(*param_2);
  iVar3 = FUN_11bd_614a(0x1190,0xe4e);
  if (((iVar3 != 0) || (iVar3 = FUN_11bd_614a(0x1190,0xe56), iVar3 != 0)) && (1 < param_1)) {
    FUN_11bd_191d(param_2[1]);
    FUN_11bd_18ba(0xe62);
    uVar4 = *(undefined2 *)0xcec;
    local_a = (undefined1 *)CONCAT22(uVar4,(undefined1 *)0x80);
    local_c = (uint)*(byte *)0x80;
    local_6 = (undefined1 *)CONCAT22(uVar4,(undefined1 *)0x81);
    while ((iVar3 = FUN_11bd_2f7f(*local_6), iVar3 != 0 &&
           (local_c = local_c - 1, -1 < (int)local_c))) {
      local_6 = (undefined1 *)CONCAT22(local_6._2_2_,(undefined1 *)local_6 + 1);
    }
    while ((iVar3 = FUN_11bd_2f7f(*local_6), iVar3 == 0 &&
           (local_c = local_c - 1, -1 < (int)local_c))) {
      local_6 = (undefined1 *)CONCAT22(local_6._2_2_,(undefined1 *)local_6 + 1);
    }
    *local_a = (undefined1)local_c;
    do {
      puVar1 = local_6;
      local_6 = (undefined1 *)CONCAT22(local_6._2_2_,(undefined1 *)local_6 + 1);
      local_a = (undefined1 *)CONCAT22(local_a._2_2_,(undefined1 *)local_a + 1);
      *local_a = *puVar1;
      local_c = local_c - 1;
    } while (-1 < (int)local_c);
    FUN_11bd_2fa5();
  }
  FUN_11bd_5992();
  iVar3 = FUN_11bd_6028(*param_2,0xe67);
  if (iVar3 == 0) {
    FUN_11bd_2d43();
    FUN_11bd_5992();
  }
  if (*(char *)0x2f < '\x03') {
    FUN_11bd_22ad(0xf);
  }
  FUN_11bd_3ed8();
  if ('\x02' < *(char *)0x2f) {
    uVar4 = FUN_11bd_2d99();
    FUN_11bd_6a2d(*param_2,uVar4);
  }
  FUN_11bd_627f();
  return;
}



void __cdecl16near FUN_11bd_2ec9(undefined2 param_1)

{
  undefined2 unaff_DS;
  uint local_1a;
  undefined1 local_18 [6];
  undefined2 local_12;
  undefined1 local_10;
  undefined1 local_f;
  undefined2 local_a;
  
  local_f = 0x1a;
  local_a = 0x80;
  local_12 = *(undefined2 *)0xcec;
  FUN_11bd_2718(&local_10,&local_10,local_18);
  if (*(char *)0xe6a == '\0') {
    if ((*(char *)0x980 != '\x01') && (*(char *)0x980 != '\x03')) {
      FUN_11bd_58e6();
    }
    local_1a = 0x2d40;
    if ((*(char *)0x2e != '\v') && ((*(byte *)0x47 & 0x80) == 0)) {
      local_1a = 0x29bc;
    }
    if ((*(byte *)0x14 & 8) != 0) {
      local_1a = 0x627f;
    }
    if ((*(int *)0xe6e == 0) || (local_1a < *(uint *)0xe6e)) {
      *(uint *)0xe6e = local_1a;
      FUN_11bd_1e9f(param_1,local_1a);
    }
  }
  return;
}



void __cdecl16near FUN_11bd_2f4c(void)

{
  undefined2 unaff_DS;
  
  *(undefined2 *)0x97a = 0x20a0;
  *(undefined2 *)0x97e = 0;
  FUN_11bd_2d52();
  FUN_11bd_5686();
  *(undefined2 *)&DAT_0000_11e2 = *(undefined2 *)0xcec;
  *(undefined2 *)0x11e0 = 0x80;
  FUN_11bd_381d();
  FUN_11bd_2d8b();
  FUN_11bd_2ec9();
  return;
}



undefined2 __cdecl16near FUN_11bd_2f7f(int param_1)

{
  if ((((param_1 != 0x20) && (param_1 != 9)) && (param_1 != 10)) && (param_1 != 0xd)) {
    return 0;
  }
  return 1;
}



void __cdecl16near FUN_11bd_2fa3(void)

{
  return;
}



void __cdecl16near FUN_11bd_2fa4(void)

{
  return;
}



void __cdecl16near FUN_11bd_2fa5(void)

{
  return;
}



void __cdecl16near FUN_11bd_2fa6(uint param_1,undefined2 param_2)

{
  undefined2 unaff_DS;
  
  if (param_1 < *(uint *)0x97c) {
    FUN_11bd_1caa(param_1 >> 3,param_1,0,0xffff,param_2);
  }
  return;
}



void __cdecl16near FUN_11bd_2fc7(void)

{
  int iVar1;
  
  for (iVar1 = -0x6100; iVar1 != -0x6000; iVar1 = iVar1 + 0x40) {
    FUN_11bd_2fa6(iVar1,0x92);
  }
  for (; iVar1 != 0; iVar1 = iVar1 + 0x200) {
    FUN_11bd_2fa6(iVar1,(-(uint)((0xd000U >> (byte)((uint)iVar1 >> 0xc) & 1) == 0) & 0xfff8) + 0x9a)
    ;
  }
  return;
}



long __cdecl16near FUN_11bd_300b(char *param_1)

{
  undefined2 unaff_DS;
  long lVar1;
  int local_8;
  
  lVar1 = FUN_11bd_27a4();
  local_8 = 0;
  if (*(int *)(param_1 + 2) != 0) {
    if (*param_1 == 'M') {
      local_8 = 0x200;
    }
    lVar1 = lVar1 + (*(int *)(param_1 + 2) - local_8);
  }
  return lVar1;
}



undefined2 __cdecl16near FUN_11bd_304f(char *param_1,int param_2,int param_3)

{
  uint *puVar1;
  uint uVar2;
  code *pcVar3;
  int iVar4;
  undefined2 unaff_DS;
  undefined4 uVar5;
  int local_4;
  
  local_4 = 2;
  do {
    FUN_11bd_5fca(*(undefined2 *)0x11da,*(undefined2 *)0x11dc);
    iVar4 = FUN_11bd_5fe2(param_1,param_3);
    if (iVar4 != param_3) break;
    if ((*param_1 == 'M') && (param_1[1] == 'F')) {
      uVar5 = CONCAT22(*(undefined2 *)(param_1 + 4),*(undefined2 *)(param_1 + 2));
LAB_11bd_3089:
      puVar1 = (uint *)0x11da;
      uVar2 = *puVar1;
      *puVar1 = *puVar1 + (uint)uVar5;
      *(int *)0x11dc =
           *(int *)0x11dc + (int)((ulong)uVar5 >> 0x10) + (uint)CARRY2(uVar2,(uint)uVar5);
    }
    else {
      if ((*param_1 == 'M') && (param_1[1] == 'Z')) {
        uVar5 = FUN_11bd_300b(param_1);
        goto LAB_11bd_3089;
      }
      if ((*param_1 == 'B') && (param_1[1] == 'W')) {
        return 1;
      }
      pcVar3 = (code *)swi(0x21);
      (*pcVar3)();
      local_4 = local_4 + -1;
    }
  } while (-1 < local_4);
  if (param_2 != 0) {
    FUN_11bd_22ad(0xfffe);
  }
  *(undefined2 *)0x11dc = 0;
  *(undefined2 *)0x11da = 0;
  return 0;
}



void __cdecl16near FUN_11bd_30d8(void)

{
  char cVar1;
  int iVar2;
  undefined2 unaff_DS;
  uint local_bc;
  uint local_ba;
  uint local_b8;
  uint local_b6;
  char local_b4;
  char local_b3;
  uint local_aa;
  uint local_a8;
  int local_98;
  int local_96;
  uint local_8e;
  uint local_8c;
  uint local_84;
  uint local_4;
  
  cVar1 = *(char *)0xe72;
  *(char *)0xe72 = *(char *)0xe72 + '\x01';
  if (cVar1 == '\0') {
    if (*(int *)0xe70 < 0) {
      FUN_11bd_5fb8(0x1190);
    }
    if (-1 < *(int *)0xe70) {
      local_bc = 0;
      local_4 = 0;
      local_ba = 0;
      local_b8 = 0;
      iVar2 = FUN_11bd_304f(&local_b4,0,0xb0);
      if (iVar2 != 0) {
        do {
          if ((local_b4 != 'B') || (local_b3 != 'W')) break;
          *(uint *)0x14 = *(uint *)0x14 | local_84;
          if (local_b8 < local_aa) {
            local_b8 = local_aa;
          }
          if (local_ba < local_a8) {
            local_ba = local_a8;
          }
          if (local_4 < local_8c) {
            local_4 = local_8c;
          }
          if (local_bc < local_8e) {
            local_bc = local_8e;
          }
          if (local_96 == 0 && local_98 == 0) break;
          FUN_11bd_5fca(local_98,local_96);
          iVar2 = FUN_11bd_5fe2(&local_b4,0xb0);
        } while (iVar2 == 0xb0);
      }
      if ((local_b8 != 0) && (local_b8 < *(uint *)0xecc)) {
        *(uint *)0x120e = local_b8;
      }
      local_b6 = local_bc;
      if ((local_bc != 0) && (*(undefined1 *)0xa16 = 2, *(uint *)0x1206 < local_4)) {
        *(uint *)0x1206 = local_4;
      }
      if ((*(char *)0x2e == '\0') && (local_b6 = local_ba, *(uint *)0x1206 < local_4)) {
        *(uint *)0x1206 = local_4;
      }
      if (((local_b6 != 0) && (local_b6 != 0x7fff)) && ((*(byte *)0x11d2 & 1) == 0)) {
        *(uint *)0xecc = local_b6;
        *(byte *)0x11d2 = *(byte *)0x11d2 | 1;
      }
      if (((*(byte *)0x15 & 0x20) != 0) && (*(char *)0x2e != '\0')) {
        if ((*(byte *)0x11d2 & 4) == 0) {
          *(undefined2 *)0xece = 0xfffe;
        }
        if ((*(byte *)0x11d2 & 1) == 0) {
          *(int *)0xecc = *(int *)0xece - *(int *)0xeca;
        }
      }
      if (((0x3c00 < *(uint *)0xecc) || (0x4000 < *(uint *)0xeca)) || (0x4000 < *(uint *)0xece)) {
        *(byte *)0x15 = *(byte *)0x15 | 0x20;
      }
    }
  }
  return;
}



undefined2 __cdecl16near FUN_11bd_326c(void)

{
  undefined2 uVar1;
  int iVar2;
  undefined2 unaff_DS;
  undefined1 local_42 [64];
  
  FUN_11bd_5fca(*(uint *)0x11da + 0x40,*(int *)0x11dc + (uint)(0xffbf < *(uint *)0x11da));
  FUN_11bd_5fe2(local_42,0x40);
  iVar2 = FUN_11bd_614a(local_42,0xe73);
  if (iVar2 == 0) {
    iVar2 = FUN_11bd_614a(local_42,0xe7b);
    if (iVar2 == 0) {
      return 0;
    }
  }
  uVar1 = *(undefined2 *)0x11f6;
  *(undefined2 *)0x11da = *(undefined2 *)0x11f4;
  *(undefined2 *)0x11dc = uVar1;
  return 1;
}



void __cdecl16near FUN_11bd_32c6(int param_1,int param_2)

{
  uint *puVar1;
  undefined2 uVar2;
  undefined1 uVar3;
  int iVar4;
  undefined2 *puVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  undefined2 unaff_DS;
  undefined4 uVar9;
  int local_46;
  undefined1 local_3e [14];
  uint local_30;
  int local_2e;
  int local_2c;
  undefined2 local_2a;
  uint local_28;
  undefined2 local_26;
  uint local_22;
  int local_20;
  uint local_1e;
  uint local_1c;
  uint local_1a;
  uint local_18 [2];
  byte local_14;
  uint local_10;
  uint local_e;
  undefined1 local_c;
  int local_a;
  int local_8;
  undefined2 uStack_6;
  uint local_4;
  
  local_20 = 0;
  local_46 = 0;
  do {
    FUN_11bd_304f(local_3e,1,0x1c);
    FUN_11bd_5fe2(0x11f4,4);
    puVar1 = (uint *)0x11da;
    uVar7 = *puVar1;
    *puVar1 = *puVar1 + 0x30;
    *(int *)0x11dc = *(int *)0x11dc + (uint)(0xffcf < uVar7);
    FUN_11bd_5fca(*(undefined2 *)0x11da,*(undefined2 *)0x11dc);
    FUN_11bd_5fe2(local_18,0x10);
    if (*(char *)0x11f1 == '\0') break;
    iVar4 = FUN_11bd_326c();
  } while (iVar4 != 0);
  if ((local_a != 0) && (*(int *)0xa == 0)) {
    *(int *)0xe = local_a;
  }
  if (*(uint *)0x97c < local_10) {
    *(undefined2 *)0x97c = CONCAT11((char)(local_10 >> 8) + '\x02',(char)local_10);
  }
  if (*(uint *)0x97c < local_10) {
    *(undefined2 *)0x97c = 0xffff;
  }
  *(uint *)0x11f2 = local_e;
  if (local_e < 0x80) {
    *(undefined2 *)0x11f2 = 0x80;
  }
  if (param_1 == 0) {
    FUN_11bd_1b0a();
    *(undefined2 *)0x97c = local_26;
    FUN_11bd_3986();
    *(undefined1 *)0x980 = local_c;
    FUN_11bd_5686();
  }
  else {
    FUN_11bd_3986();
  }
  if (param_1 < 0) {
    param_1 = 0;
    *(byte *)0x14 = *(byte *)0x14 & 0xf7;
  }
  if ((local_14 & 2) != 0) {
    param_1 = -1;
    *(byte *)0x14 = *(byte *)0x14 | 8;
  }
  if (param_1 != 0) {
    local_46 = *(int *)0x11f2;
    if ((local_14 & 1) != 0) {
      iVar4 = FUN_11bd_3bcc(-((local_10 + 1 >> 3) * param_1));
      iVar4 = iVar4 << 3;
      *(int *)0x11f2 = iVar4;
      *(int *)(param_2 + 8) = iVar4;
      if (iVar4 == 0) {
        return;
      }
    }
    local_46 = *(int *)0x11f2 - local_46;
    local_30 = local_30 + local_46;
    local_28 = local_28 + local_46;
  }
  *(uint *)0x14 = *(uint *)0x14 | local_18[0];
  FUN_11bd_5fca(*(uint *)0x11da + 0x80,*(int *)0x11dc + (uint)(0xff7f < *(uint *)0x11da));
  FUN_11bd_198a();
  *(int *)0x11ee = local_10 - 0x7f;
  FUN_11bd_3a89(8,*(undefined2 *)0x11f2,local_10 - 0x7f);
  *(int *)0x11ee = *(int *)0x11ee + *(int *)0x11f2;
  local_8 = 0;
  uStack_6 = 8;
  do {
    *(int *)0x11ee = *(int *)0x11ee + -8;
  } while (*(char *)((*(uint *)0x11ee & 0xfff8) + 5) == '\0');
  uVar7 = *(uint *)0x11f2;
  do {
    local_1a = uVar7;
    local_1e = local_1a;
    puVar5 = (undefined2 *)((local_1a & 0xfff8) + local_8);
    *(undefined2 *)0x11e4 = *puVar5;
    *(undefined2 *)0x11e6 = puVar5[1];
    *(undefined2 *)&LAB_0000_11e8 = puVar5[2];
    *(undefined2 *)0x11ea = puVar5[3];
    uVar7 = *(uint *)0x11e4;
    local_4 = (uint)*(byte *)0x11e9;
    if (local_4 != 0) {
      uVar6 = *(uint *)0x11ea & 0x1fff;
      uVar8 = 0;
      if (uVar7 != 0) {
        uVar8 = FUN_11bd_11dd(uVar7);
      }
      if ((*(byte *)0x11eb & 0x20) != 0) {
        uVar7 = 0;
      }
      if (uVar8 < uVar6) {
        uVar8 = uVar6;
      }
      *(undefined2 *)0x1204 = 0;
      *(undefined2 *)0x1202 = 0;
      if (uVar8 != 0) {
        if ((*(byte *)0x11eb & 0x80) == 0) {
          uVar9 = FUN_11bd_3901(uVar8);
          iVar4 = (int)((ulong)uVar9 >> 0x10);
          *(undefined2 *)0x1202 = (int)uVar9;
          *(int *)0x1204 = iVar4;
          if (iVar4 == 0 && *(int *)0x1202 == 0) {
            FUN_11bd_11c1();
            FUN_11bd_22ad(6);
          }
        }
        else {
          if ((local_1a == local_30) || (((byte)local_4 & 0x18) == 0x18)) {
            local_22 = 7;
          }
          else {
            local_22 = 0;
            local_4 = local_4 | 0x60;
          }
          FUN_11bd_11c1();
          local_1c = local_22 + uVar8;
          if (local_1c < 8) {
            local_1c = 8;
          }
          uVar9 = FUN_11bd_395c(local_1c);
          local_1c = (uint)uVar9;
          *(int *)0x1202 = local_1c;
          *(undefined2 *)0x1204 = (int)((ulong)uVar9 >> 0x10);
          if (local_1c == 0) {
            FUN_11bd_22ad(3);
          }
          local_1e = ~local_22 & *(int *)0x1202 + local_22;
          *(uint *)0x1202 = local_1e;
          *(undefined2 *)0x1204 = 0;
          if (local_1e < *(uint *)0x97c) goto LAB_11bd_3543;
          while( true ) {
            FUN_11bd_22ad(4);
LAB_11bd_3543:
            iVar4 = FUN_11bd_5fac(local_1a,local_1e);
            if (iVar4 < 0x1275) {
              FUN_11bd_601d(5);
            }
            FUN_11bd_198a();
            if (*(char *)((local_1e & 0xfff8) + local_8 + 5) == '\0') break;
            FUN_11bd_11c1();
          }
          if (local_22 != 0) {
            if (local_1a == local_30) {
              local_30 = local_1e;
            }
            if (local_1a == local_28) {
              local_28 = local_1e;
            }
                    // WARNING: Subroutine does not return
            thunk_FUN_11bd_1e86(local_1e,local_1c);
          }
          local_20 = local_20 + 1;
        }
      }
      *(undefined1 *)0x11e9 = 0xf2;
      *(undefined2 *)0x11e4 = 0;
      if (uVar8 != 0) {
        *(int *)0x11e4 = uVar8 * 0x10 + -1;
        *(undefined1 *)(local_1e >> 3) = 1;
      }
      if ((*(byte *)0x11eb & 0x40) != 0) {
        *(byte *)(local_1e >> 3) = *(byte *)(local_1e >> 3) | 2;
      }
      *(int *)0x11e6 = *(int *)0x1202 << 4;
      uVar3 = FUN_11bd_27b0();
      *(undefined1 *)&LAB_0000_11e8 = uVar3;
      *(int *)0x11ea = (*(int *)0x1204 >> 4) << 8;
      puVar5 = (undefined2 *)((local_1e & 0xfff8) + local_8);
      *puVar5 = *(undefined2 *)0x11e4;
      puVar5[1] = *(undefined2 *)0x11e6;
      puVar5[2] = *(undefined2 *)&LAB_0000_11e8;
      puVar5[3] = *(undefined2 *)0x11ea;
      if (uVar7 != 0) {
        if ((uVar7 & 0xf) != 0) {
          uVar7 = uVar7 + 1;
        }
        FUN_11bd_3a89(local_1e,0,uVar7);
      }
      if ((uVar6 != 0) && (iVar4 = uVar6 * 0x10 - uVar7, iVar4 != 0)) {
                    // WARNING: Subroutine does not return
        thunk_FUN_11bd_1e86(local_1e,uVar7,iVar4,0);
      }
      *(undefined1 *)0x11e9 = (byte)local_4;
      *(undefined1 *)((local_1e & 0xfff8) + local_8 + 5) = (byte)local_4;
      if (local_1e != local_1a) {
        puVar5 = (undefined2 *)((local_1a & 0xfff8) + local_8);
        *puVar5 = *(undefined2 *)0x11e4;
        puVar5[1] = *(undefined2 *)0x11e6;
        puVar5[2] = *(undefined2 *)&LAB_0000_11e8;
        puVar5[3] = *(undefined2 *)0x11ea;
      }
    }
    uVar7 = local_1a + 8;
    if (*(uint *)0x11ee < uVar7) {
      if (param_1 < 1) {
        *(uint *)(local_8 + 2) = *(uint *)0x11ee >> 3;
      }
      *(uint *)(param_2 + 0xe) = local_2e - 0xcU & 0xfffe;
      *(uint *)(param_2 + 2) = local_30;
      *(uint *)(param_2 + 0x22) = local_28;
      *(undefined2 *)(param_2 + 0x1e) = local_2a;
      *(undefined2 *)(param_2 + 10) = *(undefined2 *)0x11f2;
      *(int *)(param_2 + 8) = local_1a - 0x10;
      local_1a = uVar7;
      FUN_11bd_11c1();
      FUN_11bd_2fa4(param_1,param_2);
      if (param_1 < 0) {
        uVar2 = *(undefined2 *)0x11f6;
        *(undefined2 *)0x11da = *(undefined2 *)0x11f4;
        *(undefined2 *)0x11dc = uVar2;
      }
      else {
        FUN_11bd_5ff7();
        *(undefined2 *)0x11dc = 0;
        *(undefined2 *)0x11da = 0;
      }
      local_1a = local_1a - 8;
      if (local_2c == 0) {
        if (local_46 != 0) {
          FUN_11bd_3b21(local_1a,local_46);
        }
        if (0 < local_20) {
          FUN_11bd_1c3f(local_1a);
          if ((*(byte *)0x11e9 & 0x18) != 0x10) {
            FUN_11bd_22ad(7);
          }
          if (*(int *)0x11e4 != 0) {
            while (local_20 = local_20 + -1, -1 < local_20) {
              FUN_11bd_3c9d(local_1a);
              FUN_11bd_5fb3();
            }
          }
        }
      }
      else {
        FUN_11bd_198a();
        FUN_11bd_1266(1);
        if (local_46 != 0) {
          local_2c = local_2c + local_46;
          FUN_11bd_3d80(local_2c,local_1a,local_46);
        }
        while (local_20 = local_20 + -1, -1 < local_20) {
          FUN_11bd_3e19(local_2c,local_1a);
          FUN_11bd_5fb3();
        }
        FUN_11bd_1a86(local_2c);
        *(int *)(param_2 + 8) = local_2c + -8;
        FUN_11bd_11c1();
      }
      if (((local_20 < 0) || ((local_14 & 1) != 0)) && (local_2c == 0)) {
        FUN_11bd_3d62(local_1a);
      }
      *(undefined2 *)(param_2 + 4) = 0x28;
      *(undefined2 *)(param_2 + 6) = 0x28;
      *(undefined2 *)(param_2 + 0x26) = 0x200;
      if (param_1 < 1) {
        FUN_11bd_2fc7();
        uVar2 = *(undefined2 *)0xcec;
        *(undefined2 *)0x97e = uVar2;
        *(undefined2 *)0x2c = 0x30;
      }
      return;
    }
  } while( true );
}



void __cdecl16near FUN_11bd_381d(void)

{
  undefined2 unaff_DS;
  
  if (*(int *)0xe70 < 0) {
    FUN_11bd_5fb8(0x1190);
  }
  if (*(int *)0xe70 < 0) {
    FUN_11bd_22ad(0xfff8);
  }
  FUN_11bd_32c6(0,*(undefined2 *)0x996);
  return;
}



void __cdecl16near FUN_11bd_3844(void)

{
  int iVar1;
  int iVar2;
  undefined2 unaff_DS;
  
  iVar1 = *(int *)0xd0e * 0x180 + 0x2a;
  if (*(int *)0xf4e == 0) {
    *(undefined2 *)0x11d4 = 8;
    FUN_1000_0b12(iVar1);
    iVar2 = FUN_11bd_243e(iVar1);
    *(int *)0xf4e = iVar2;
    if (iVar2 == 0) {
      FUN_11bd_22ad(9);
    }
  }
  FUN_11bd_2776(*(undefined2 *)0xf4e,0,iVar1);
  iVar1 = iVar1 + *(int *)0xf4e;
  *(int *)0xf4c = iVar1;
  *(undefined2 *)0x996 = (undefined2 *)(iVar1 + -0x2a);
  *(undefined2 *)(iVar1 + -0x2a) = *(undefined2 *)0xf4c;
  *(undefined2 *)(iVar1 + -0x12) = 0xffff;
  *(undefined2 *)0x99e = 0;
  return;
}



long __cdecl16near FUN_11bd_38af(undefined2 param_1)

{
  undefined2 unaff_DS;
  long lVar1;
  
  if (*(char *)0x980 == '\x01') {
    lVar1 = FUN_11bd_395c(param_1);
    if (lVar1 != 0) {
      return lVar1;
    }
  }
  if (*(char *)0x980 < '\x03') {
    FUN_11bd_198a();
                    // WARNING: Subroutine does not return
    thunk_FUN_11bd_1e86(param_1,0);
  }
  lVar1 = FUN_11bd_395c(param_1);
  return lVar1;
}



long __cdecl16near FUN_11bd_3901(undefined2 param_1)

{
  undefined2 unaff_DS;
  long lVar1;
  
  if ((*(char *)0x980 != '\x01') && (*(char *)0x980 < '\x03')) {
                    // WARNING: Subroutine does not return
    thunk_FUN_11bd_1e86(param_1,0);
  }
  FUN_11bd_11c1();
  lVar1 = FUN_11bd_395c(param_1);
  FUN_11bd_198a();
  if (lVar1 == 0) {
                    // WARNING: Subroutine does not return
    thunk_FUN_11bd_1e86(param_1,0);
  }
  return lVar1;
}



undefined2 __cdecl16near FUN_11bd_395c(undefined2 param_1)

{
  undefined2 local_10;
  undefined2 local_e;
  byte local_4;
  
  local_10 = CONCAT11(0x48,(undefined1)local_10);
  local_e = param_1;
  FUN_11bd_26d0(&local_10,&local_10);
  if ((local_4 & 1) != 0) {
    return 0;
  }
  return local_10;
}



void __cdecl16near FUN_11bd_3986(void)

{
  int iVar1;
  uint uVar2;
  uint uVar3;
  undefined2 unaff_DS;
  
  *(undefined2 *)0x11d0 = 0;
  *(undefined2 *)0x1208 = 0;
  if (*(int *)0xa == 0) {
    uVar2 = *(uint *)0xe;
    if (*(int *)0x11d6 != 0) {
      uVar2 = *(uint *)0x11d6;
    }
    if (uVar2 == 0) {
      uVar2 = 0x800;
    }
    if (uVar2 < 0x400) {
      uVar2 = 0x400;
    }
    iVar1 = *(int *)0x9b8 + -1;
    if (((*(char *)0x0 == 'M') && (*(int *)0x1 == *(int *)0xcec)) &&
       (uVar3 = (*(int *)0x3 + 0x20) * 0x10, uVar2 < uVar3)) {
      uVar2 = uVar3;
    }
    if (0x8200 < uVar2) {
      uVar2 = 0x8200;
    }
    uVar2 = uVar2 + 0xf;
    iVar1 = FUN_1000_0b12(uVar2);
    if (iVar1 != 0) goto LAB_11bd_39f8;
    do {
      FUN_11bd_22ad(0xd);
LAB_11bd_39f8:
      iVar1 = FUN_11bd_243e(uVar2);
      uVar3 = iVar1 + 0xfU & 0xfff0;
      *(uint *)0xa = uVar3;
    } while (uVar3 == 0);
    *(uint *)0xe = uVar2 & 0xfff0;
  }
  return;
}



int __cdecl16near FUN_11bd_3a13(void)

{
  undefined2 unaff_DS;
  undefined2 local_10;
  undefined2 local_e;
  int local_c;
  undefined2 local_a;
  byte local_4;
  
  FUN_11bd_11c1();
  FUN_11bd_1266(1);
  local_10 = 0x4201;
  local_e = *(undefined2 *)0xe70;
  local_a = 0;
  local_c = 0;
  FUN_11bd_26d0(&local_10,&local_10);
  local_c = (*(byte *)0xf & 0xfe) * 0x100 - (local_10 & 0x1ff);
  local_10 = CONCAT11(0x3f,(undefined1)local_10);
  local_a = *(undefined2 *)0xa;
  *(undefined2 *)0x11d0 = local_a;
  FUN_11bd_26d0(&local_10,&local_10);
  if ((local_4 & 1) != 0) {
    local_10 = 0;
  }
  *(int *)0x1208 = local_10 + *(int *)0x11d0;
  FUN_11bd_198a();
  FUN_11bd_1266(1);
  return local_10;
}



void __cdecl16near FUN_11bd_3a89(undefined2 param_1,int param_2,uint param_3)

{
  int iVar1;
  uint uVar2;
  uint uVar3;
  undefined2 unaff_DS;
  uint local_4;
  
  local_4 = -param_3 & 0xf;
  do {
    if (*(int *)0x1208 == *(int *)0x11d0) {
      FUN_11bd_3a13();
    }
    uVar3 = *(int *)0x1208 - *(int *)0x11d0;
    if (uVar3 == 0) {
      if (param_2 != 0) {
                    // WARNING: Subroutine does not return
        thunk_FUN_11bd_1e86(param_1,param_2,param_3,0);
      }
      FUN_11bd_11c1();
      FUN_11bd_22ad(0xfff2);
    }
    if ((uVar3 < param_3) || (uVar2 = param_3, param_3 == 0)) {
      uVar2 = uVar3;
    }
    FUN_11bd_6102(0x20,*(undefined2 *)0x11d0,param_1,param_2,uVar2);
    param_2 = param_2 + uVar2;
    *(int *)0x11d0 = *(int *)0x11d0 + uVar2;
    param_3 = param_3 - uVar2;
  } while (param_3 != 0);
  do {
    *(int *)0x11d0 = *(int *)0x11d0 + local_4;
    local_4 = *(int *)0x11d0 - *(int *)0x1208;
    if ((int)local_4 < 1) {
      return;
    }
    iVar1 = FUN_11bd_3a13();
  } while (iVar1 != 0);
  return;
}



void __cdecl16near FUN_11bd_3b21(int *param_1,int param_2)

{
  uint *puVar1;
  undefined1 uVar2;
  uint *puVar3;
  uint uVar4;
  int iVar5;
  
  FUN_11bd_198a();
  uVar4 = *param_1 + 1U >> 1;
  while (uVar4 = uVar4 - 1, -1 < (int)uVar4) {
    if (0x7f < *(uint *)(uVar4 * 2)) {
      iVar5 = *(uint *)(uVar4 * 2) + param_2;
      *(int *)(uVar4 * 2) = iVar5;
      uVar2 = *(undefined1 *)(iVar5 + 5);
      *(undefined1 *)(iVar5 + 5) = 0x92;
      puVar3 = (uint *)*(int *)(uVar4 * 2);
      if (0x7f < *puVar3) {
        puVar1 = puVar3;
        *puVar1 = *puVar1 + param_2;
      }
      *(undefined1 *)(iVar5 + 5) = uVar2;
    }
  }
  FUN_11bd_11c1();
  return;
}



// WARNING: Globals starting with '_' overlap smaller symbols at the same address

int __cdecl16near FUN_11bd_3bcc(int param_1)

{
  int iVar1;
  int iVar2;
  int iVar3;
  int local_a;
  
  local_a = 0;
  FUN_11bd_198a();
  if (param_1 < 1) {
    iVar2 = 0x10;
    do {
      while (*(char *)(iVar2 * 8 + 5) == '\0') {
        iVar3 = -param_1;
        iVar2 = iVar2 + iVar3;
        while (iVar2 = iVar2 + -1, *(char *)(iVar2 * 8 + 5) == '\0') {
          iVar3 = iVar3 + -1;
          iVar1 = iVar2;
          if (iVar3 < 1) goto LAB_11bd_3c93;
        }
      }
      iVar2 = iVar2 + 1;
      iVar1 = local_a;
    } while (iVar2 < (int)((_DAT_0000_0088 >> 3) + param_1 + -2));
  }
  else {
    iVar2 = (_DAT_0000_0088 >> 3) - 2;
    while( true ) {
      while (*(char *)(iVar2 * 8 + 5) == '\0') {
        iVar3 = param_1 + -1;
        do {
          iVar3 = iVar3 + -1;
          iVar1 = iVar2;
          if (iVar3 < 0) goto LAB_11bd_3c93;
          iVar2 = iVar2 + -1;
        } while (*(char *)(iVar2 * 8 + 5) == '\0');
      }
      iVar1 = local_a;
      if (iVar2 <= param_1 + 0x10) break;
      iVar2 = iVar2 + -1;
    }
  }
LAB_11bd_3c93:
  local_a = iVar1;
  FUN_11bd_11c1();
  return local_a;
}



void __cdecl16near FUN_11bd_3c9d(int *param_1,uint param_2,uint param_3)

{
  undefined1 uVar1;
  uint uVar2;
  uint uVar3;
  undefined4 local_14;
  
  FUN_11bd_198a();
  uVar3 = *param_1 + 1U >> 1;
  while (uVar3 = uVar3 - 1, -1 < (int)uVar3) {
    uVar2 = *(uint *)(uVar3 * 2);
    if (0x7f < uVar2) {
      if (param_2 == uVar2) {
        *(uint *)(uVar3 * 2) = param_3;
      }
      local_14 = (uint *)CONCAT22(uVar2,(uint *)*(undefined2 *)(uVar3 * 2));
      if (*(uint *)*(undefined2 *)(uVar3 * 2) == param_2) {
        uVar2 = uVar2 & 0xfff8;
        uVar1 = *(undefined1 *)(uVar2 + 5);
        *(undefined1 *)(uVar2 + 5) = 0xf2;
        *local_14 = param_3;
        *(undefined1 *)(uVar2 + 5) = uVar1;
      }
    }
  }
  *(undefined1 *)((param_2 & 0xfff8) + 5) = 0x80;
  *(uint *)((param_2 & 0xfff8) + 6) = param_3;
  FUN_11bd_11c1();
  return;
}



void __cdecl16near FUN_11bd_3d62(int param_1)

{
  FUN_11bd_198a();
  FUN_11bd_1a86(param_1);
  FUN_11bd_1a86(param_1 + -8);
  FUN_11bd_11c1();
  return;
}



void __cdecl16near FUN_11bd_3d80(uint param_1,undefined2 param_2,int param_3)

{
  uint *puVar1;
  undefined1 uVar2;
  uint uVar3;
  uint *puVar4;
  int iVar5;
  uint uVar6;
  uint *local_6;
  
  do {
    local_6 = (uint *)((ulong)param_1 << 0x10);
    do {
      uVar3 = *local_6;
      *local_6 = *local_6 + param_3;
      iVar5 = param_3 + (uVar3 & 0xfff8);
      uVar2 = *(undefined1 *)(iVar5 + 5);
      *(undefined1 *)(iVar5 + 5) = 0x92;
      puVar4 = (uint *)local_6;
      local_6 = (uint *)CONCAT22(local_6._2_2_,(uint *)local_6 + 1);
      uVar6 = *local_6;
      local_6 = (uint *)CONCAT22(local_6._2_2_,puVar4 + 2);
      while (puVar1 = local_6, uVar6 = uVar6 - 1, -1 < (int)uVar6) {
        local_6 = (uint *)CONCAT22(local_6._2_2_,(uint *)local_6 + 1);
        if (0x7f < *(uint *)*puVar1) {
          puVar1 = (uint *)*puVar1;
          *puVar1 = *puVar1 + param_3;
        }
      }
      *(undefined1 *)(iVar5 + 5) = uVar2;
    } while ((uVar3 & 3) == 0);
    param_1 = param_1 + 8;
  } while ((uVar3 & 2) == 0);
  return;
}



void __cdecl16near FUN_11bd_3e19(uint param_1,undefined2 param_2,uint param_3,uint param_4)

{
  undefined1 uVar1;
  uint uVar2;
  uint *puVar3;
  uint *puVar4;
  int iVar5;
  uint uVar6;
  uint uVar7;
  undefined2 uVar8;
  byte local_12;
  undefined4 local_a;
  uint *local_6;
  
  local_a = 0x80000;
  do {
    local_6 = (uint *)((ulong)param_1 << 0x10);
    do {
      uVar2 = *local_6;
      uVar6 = uVar2 & 0xfff8;
      local_12 = (byte)uVar2;
      if (uVar6 == param_3) {
        *local_6 = (local_12 ^ (byte)param_4) & 7 ^ param_4;
      }
      local_a = CONCAT22(local_a._2_2_,uVar2) & 0xfffffff8;
      uVar8 = (undefined2)(local_a >> 0x10);
      iVar5 = (int)local_a;
      uVar1 = *(undefined1 *)(iVar5 + 5);
      *(undefined1 *)(iVar5 + 5) = 0x92;
      puVar3 = (uint *)local_6;
      local_6 = (uint *)CONCAT22(local_6._2_2_,(uint *)local_6 + 1);
      uVar7 = *local_6;
      local_6 = (uint *)CONCAT22(local_6._2_2_,puVar3 + 2);
      while (puVar4 = local_6, uVar7 = uVar7 - 1, -1 < (int)uVar7) {
        local_6 = (uint *)CONCAT22(local_6._2_2_,(uint *)local_6 + 1);
        if (*(uint *)*puVar4 == param_3) {
          *(uint *)*puVar4 = param_4;
        }
      }
      *(undefined1 *)(iVar5 + 5) = uVar1;
    } while ((uVar2 & 3) == 0);
    param_1 = param_1 + 8;
  } while ((uVar2 & 2) == 0);
  *(undefined1 *)(param_3 + 5) = 0x80;
  *(uint *)(param_3 + 6) = param_4;
  return;
}



// WARNING: Removing unreachable block (ram,0x00015c20)
// WARNING: Globals starting with '_' overlap smaller symbols at the same address

void __cdecl16near FUN_11bd_3ed8(void)

{
  bool bVar1;
  undefined1 uVar2;
  uint uVar3;
  undefined1 *puVar4;
  uint uVar5;
  int iVar6;
  undefined2 uVar7;
  undefined2 unaff_DS;
  undefined4 uVar8;
  long lVar9;
  int local_ee;
  uint local_ec;
  undefined1 local_e4 [128];
  undefined4 local_64;
  char local_60;
  undefined1 *local_5e;
  undefined2 local_5c;
  int local_5a;
  char local_58;
  char local_6;
  undefined1 *local_4;
  
  bVar1 = false;
  local_58 = '\0';
  local_60 = 0;
  local_5e = (undefined1 *)0x0;
  FUN_11bd_62f8();
  *(undefined2 *)0xac = 0;
  *(undefined2 *)0xae = 0x10;
  *(undefined2 *)0x11d4 = 2;
  if (((_DAT_f000_fffe & 0xff) == 0xfb) || (0xfc < (_DAT_f000_fffe & 0xff))) {
    *(char *)0x11f0 = *(char *)0x11f0 + '\x01';
  }
  uVar2 = FUN_11bd_68c2();
  *(undefined1 *)0x3e = uVar2;
  uVar3 = FUN_11bd_2d40();
  *(undefined2 *)0x11d4 = 3;
  local_6 = '\x01';
  local_60 = '\x01';
  if (uVar3 == 0) {
    uVar3 = 10;
    local_6 = '\0';
    local_60 = '\0';
    puVar4 = (undefined1 *)FUN_11bd_4665(0xe84,local_e4);
    if (puVar4 == (undefined1 *)0x0) {
      puVar4 = (undefined1 *)FUN_11bd_4665(0xe8c,local_e4);
      if (puVar4 == (undefined1 *)0x0) goto LAB_11bd_41a4;
    }
    uVar7 = FUN_11bd_4645(puVar4);
    FUN_11bd_18f1(puVar4,uVar7);
    local_5e = puVar4;
    iVar6 = FUN_11bd_195d(puVar4,0xe94);
    if (iVar6 != 0) {
      uVar3 = 3;
      *(char *)0x11f0 = *(char *)0x11f0 + '\x01';
      local_6 = local_6 + '\x01';
    }
    iVar6 = FUN_11bd_195d(puVar4,0xe9c);
    if (iVar6 != 0) {
      local_6 = local_6 + '\x01';
    }
    iVar6 = FUN_11bd_195d(puVar4,0xea1);
    if (iVar6 != 0) {
      uVar3 = 0xb;
      local_6 = local_6 + '\x01';
    }
    iVar6 = FUN_11bd_195d(puVar4,0xea6);
    if (iVar6 != 0) {
      local_4 = (undefined1 *)FUN_11bd_6120(*(undefined2 *)0x30,0x31);
      local_5a = FUN_11bd_2620(local_4);
      while (local_5a = local_5a + -1, -1 < local_5a) {
        (local_4 + local_5a)[1] = local_4[local_5a];
      }
      *local_4 = 0x20;
    }
    iVar6 = FUN_11bd_195d(puVar4,0xeab);
    if ((iVar6 == 0) && (iVar6 = FUN_11bd_195d(puVar4,0xeaf), iVar6 == 0)) {
      local_64 = thunk_FUN_11bd_61ee(puVar4);
      uVar5 = (uint)local_64;
      if ((local_64 != 0) && (local_6 = local_6 + '\x01', uVar3 = uVar5, 0x10000 < local_64)) {
        uVar3 = uVar5 + 0xc780;
        local_64 = CONCAT22(((int)((ulong)local_64 >> 0x10) + -1) - (uint)(uVar5 < 0x3880),uVar3);
      }
    }
    else {
      local_6 = local_6 + '\x01';
      uVar3 = 2;
    }
    local_4 = puVar4;
    iVar6 = FUN_11bd_6120(puVar4,0x2c);
    if (iVar6 != 0) {
      local_5a = thunk_FUN_11bd_61ee(iVar6 + 1);
      if (-1 < local_5a) {
        *(int *)0x12 = local_5a + 1;
        *(int *)0x10 = local_5a + 1;
        bVar1 = true;
      }
    }
    iVar6 = FUN_11bd_6120(local_4,0x40);
    if (iVar6 != 0) {
      local_5a = FUN_11bd_45c3(iVar6);
      if (local_5a != 0) {
        *(int *)0xeca = local_5a;
        *(byte *)0x11d2 = *(byte *)0x11d2 | 2;
      }
      iVar6 = FUN_11bd_6120(iVar6,0x2d);
      if (iVar6 != 0) {
        local_5a = FUN_11bd_45c3(iVar6);
        if (local_5a != 0) {
          *(int *)0xece = local_5a;
          local_60 = local_60 + '\x01';
          *(byte *)0x11d2 = *(byte *)0x11d2 | 4;
        }
      }
    }
    iVar6 = FUN_11bd_6120(local_4,0x3a);
    if (iVar6 != 0) {
      uVar7 = FUN_11bd_45c3(iVar6);
      *(undefined2 *)0xecc = uVar7;
      local_60 = local_60 + '\x01';
      *(byte *)0x11d2 = *(byte *)0x11d2 | 1;
    }
    iVar6 = FUN_11bd_6120(local_4,0x5e);
    if (iVar6 != 0) {
      uVar7 = FUN_11bd_45c3(iVar6);
      *(undefined2 *)0x14 = uVar7;
    }
    iVar6 = FUN_11bd_614a(local_4,0xeb4);
    if (iVar6 != 0) {
      *(char *)0x11f1 = *(char *)0x11f1 + '\x01';
    }
    iVar6 = FUN_11bd_614a(local_4,0xeb9);
    if (iVar6 != 0) {
      *(undefined1 *)0x36 = 0x80;
    }
    iVar6 = FUN_11bd_6120(local_4,0x2b);
    if (iVar6 != 0) {
      *(byte *)0x47 = *(byte *)0x47 | 2;
    }
    iVar6 = FUN_11bd_6120(local_4,0x56);
    if ((iVar6 != 0) && (*(char *)(iVar6 + 1) != 'C')) {
      local_5a = FUN_11bd_45c3(iVar6);
      if (local_5a != 0) {
        *(undefined1 *)0x34 = (char)local_5a;
      }
    }
    iVar6 = FUN_11bd_614a(local_4,0xebd);
    if (iVar6 != 0) {
      local_5a = FUN_11bd_45c3(iVar6 + 3);
      if (local_5a != 0) {
        *(int *)0xd0e = local_5a;
      }
    }
  }
LAB_11bd_41a4:
  iVar6 = FUN_11bd_4587(uVar3);
  if (iVar6 == 0) {
    *(byte *)0x47 = *(byte *)0x47 | 1;
  }
  else {
    FUN_11bd_6395();
  }
  FUN_11bd_698b();
  if ((int)uVar3 < 0) {
    local_58 = local_58 + '\x01';
    local_ec = -uVar3;
    if (uVar3 == 0xfff5) {
      FUN_11bd_76db();
    }
    goto LAB_11bd_42c7;
  }
  iVar6 = FUN_11bd_66a2();
  local_ec = uVar3;
  if (iVar6 != 0) {
    local_ec = 0x10;
  }
  if (local_ec == 2) {
    FUN_11bd_6667();
  }
  if (*(char *)0x2f < '\x03') goto LAB_11bd_4257;
  *(undefined2 *)0x9c2 = 0x296d;
  uVar2 = FUN_11bd_6618();
  *(undefined1 *)0x2f = uVar2;
  local_5a = FUN_11bd_6d9c();
  if (local_5a != 0) {
    *(undefined1 *)0x46 = (char)local_ec;
    if (local_ec == 0xb) {
      iVar6 = FUN_11bd_76db();
      if (0 < iVar6) goto LAB_11bd_42c7;
    }
    local_ec = 0;
    goto LAB_11bd_4548;
  }
  local_5a = FUN_11bd_76db();
  if (local_5a < 1) {
    *(undefined2 *)0x11d4 = 4;
    if (local_5a < 0) {
      FUN_11bd_22ad(0x11);
    }
    iVar6 = FUN_11bd_4587(local_ec);
    if (iVar6 == 0) {
      local_ec = 3;
      iVar6 = FUN_11bd_6672();
      if (iVar6 == 0) goto LAB_11bd_42c7;
    }
LAB_11bd_4257:
    iVar6 = FUN_11bd_4587(local_ec);
    if (iVar6 == 0) {
      iVar6 = FUN_11bd_6672();
      if (iVar6 != 0) {
        local_ec = 2;
        goto LAB_11bd_42c7;
      }
    }
    if (local_6 == '\0') {
      uVar8 = FUN_11bd_689e();
      lVar9 = FUN_11bd_6869(uVar8);
      if (lVar9 == 0) {
        uVar8 = FUN_11bd_68b9();
        lVar9 = FUN_11bd_6869(uVar8);
        if (lVar9 == 0) {
          lVar9 = 0x90000;
        }
      }
      local_ec = (uint)((ulong)lVar9 >> 0x10);
      local_ee = (int)lVar9;
      if ((!bVar1) && (local_ee != 0)) {
        *(int *)0x12 = local_ee + 1;
        *(int *)0x10 = local_ee + 1;
      }
    }
  }
  else {
    *(undefined1 *)0x46 = (char)local_ec;
    local_ec = 0xb;
  }
LAB_11bd_42c7:
  if ((local_ec != 0xb) && ((*(byte *)0x47 & 0x80) != 0)) {
    FUN_11bd_69ac();
  }
  *(undefined1 *)0x10ee = 0xff;
  if (local_ec == 1) {
LAB_11bd_436e:
    local_5c = 0x381;
    if (local_60 == '\0') {
      iVar6 = FUN_11bd_6c74();
      if (iVar6 == 0) {
        local_60 = FUN_11bd_6400();
      }
    }
    *(undefined2 *)0x11fe = 0x146;
    *(undefined2 *)0x1200 = 0x40;
    if (((*(byte *)*(undefined4 *)0x11fe & 0x80) != 0) && (*(uint *)0xeca < 0x500)) {
      *(undefined2 *)0xeca = 0x500;
    }
    goto LAB_11bd_43aa;
  }
  if (local_ec == 2) {
    local_5c = 0x8da;
    uVar2 = FUN_11bd_6672();
    *(undefined1 *)0x120c = uVar2;
    if (local_58 != '\0') {
      *(byte *)0x120c = *(byte *)0x120c | 2;
    }
LAB_11bd_4403:
    *(undefined1 *)0x10ef = 1;
    goto LAB_11bd_451e;
  }
  if (local_ec == 3) {
LAB_11bd_440e:
    local_5c = 0x2824;
    *(undefined1 *)0x10ee = 9;
LAB_11bd_4418:
    *(undefined1 *)0x10ef = 1;
    FUN_11bd_69e0();
    goto LAB_11bd_451e;
  }
  if (local_ec == 4) goto LAB_11bd_4469;
  if (local_ec == 5) {
    local_5c = 0x3a7;
    if (*(char *)0x2f < '\x03') {
      if (*(char *)0x3e != '\0') {
        FUN_1000_0b12(0x5e);
        uVar7 = FUN_11bd_243e(0x5e);
        *(undefined2 *)0xf82 = uVar7;
      }
    }
    else {
LAB_11bd_442f:
      *(undefined1 *)0x36 = 0x80;
    }
    goto LAB_11bd_43aa;
  }
  if (local_ec == 6) {
LAB_11bd_445c:
    local_5c = 0x71a;
    goto LAB_11bd_451e;
  }
  if (local_ec == 7) {
LAB_11bd_446c:
    local_5c = 0x8b2;
    if ((*(char *)0x11f0 == '\0') || (*(char *)0x2f != '\x02')) goto LAB_11bd_4418;
    iVar6 = FUN_11bd_66b9();
    if (iVar6 != 0) goto LAB_11bd_4486;
    uVar7 = 0x13;
LAB_11bd_4519:
    FUN_11bd_22ad(uVar7);
  }
  else if (local_ec == 8) {
LAB_11bd_4486:
    local_ec = 8;
    *(undefined1 *)0x10ee = 10;
    local_5c = 0x749;
  }
  else {
    if (local_ec == 9) goto LAB_11bd_446c;
    if (local_ec == 10) {
LAB_11bd_44a3:
      local_5c = 0x905;
      goto LAB_11bd_4418;
    }
    if (local_ec == 0xb) {
      local_5c = 0x29bc;
    }
    else if (local_ec == 0xc) {
      local_5c = 0x679;
    }
    else {
      if (local_ec == 0xd) {
        local_5c = 0x8ac;
        *(undefined1 *)0x10ee = 9;
        goto LAB_11bd_4403;
      }
      if (local_ec == 0xe) {
        local_5c = 0x3d6;
      }
      else {
        if (local_ec != 0xf) {
          if (local_ec == 0x10) {
            local_5c = 0x4f7;
            goto LAB_11bd_451e;
          }
          if (local_ec == 0x13) {
            *(undefined1 *)0xed0 = 0;
LAB_11bd_4469:
            local_ec = 9;
            goto LAB_11bd_446c;
          }
          if (local_ec == 0x14) {
            *(undefined1 *)0xed0 = 0;
            local_ec = 10;
            goto LAB_11bd_44a3;
          }
          if (local_ec == 0x11e) goto LAB_11bd_4469;
          if (local_ec == 0x182) {
            local_ec = 3;
            goto LAB_11bd_440e;
          }
          if (local_ec == 0x189c) {
            local_ec = 6;
            goto LAB_11bd_445c;
          }
          if (local_ec == 0x2649) {
            local_ec = 1;
            goto LAB_11bd_436e;
          }
          *(undefined1 *)0x1190 = 0;
          if (local_5e != (undefined1 *)0x0) {
            FUN_11bd_25ee(0x1190,0xec2);
            FUN_11bd_6054(0x1197,local_5e,0x14);
          }
          *(undefined2 *)0x11d4 = 6;
          uVar7 = 0xffec;
          goto LAB_11bd_4519;
        }
        local_5c = 0x462;
        if ('\x02' < *(char *)0x2f) goto LAB_11bd_442f;
      }
LAB_11bd_43aa:
      *(byte *)0x14 = *(byte *)0x14 | 4;
      *(undefined2 *)0x11d4 = 5;
      if (local_60 == '\0') {
        iVar6 = FUN_11bd_6c74();
        if (iVar6 == 0) {
          FUN_11bd_22ad(0x12);
        }
      }
      local_5a = *(int *)0xecc + *(int *)0xeca;
      if (local_5a < *(int *)0xece) {
        *(int *)0xece = local_5a;
      }
      *(int *)0xa8 = *(int *)0xece + -0x400;
      *(char *)0x11f0 = *(char *)0x11f0 + '\x01';
    }
  }
LAB_11bd_451e:
  uVar2 = (undefined1)local_ec;
  if (*(char *)0x10ee == -1) {
    *(undefined1 *)0x10ee = uVar2;
  }
  *(undefined1 *)0x2e = uVar2;
  FUN_11bd_6250(local_5c);
  if (*(char *)0x46 == '\0') {
    *(undefined1 *)0x46 = uVar2;
  }
LAB_11bd_4548:
  *(undefined2 *)0x42 = 0x9fa;
  *(undefined2 *)0x44 = 0x20;
  *(byte *)0x47 = *(byte *)0x47 & 0xfe;
  iVar6 = FUN_11bd_4587((int)*(char *)0x46);
  if (iVar6 == 0) {
    *(byte *)0x47 = *(byte *)0x47 | 1;
  }
  *(undefined1 *)0x2e = (char)local_ec;
  if (local_ec == 0xb) {
    FUN_11bd_7c62();
  }
  if (local_58 == '\0') {
    FUN_11bd_30d8();
  }
  return;
}



undefined2 __cdecl16near FUN_11bd_4587(int param_1)

{
  if ((((param_1 != 1) && (param_1 != 5)) && (param_1 != 0xe)) && (param_1 != 0xf)) {
    return 0;
  }
  return 1;
}



undefined2 __cdecl16near FUN_11bd_45ab(int param_1)

{
  if ((0x2f < param_1) && (param_1 < 0x3a)) {
    return 1;
  }
  return 0;
}



uint __cdecl16near FUN_11bd_45c3(int param_1)

{
  char *pcVar1;
  int iVar2;
  uint uVar3;
  undefined2 unaff_DS;
  
  uVar3 = 0;
  pcVar1 = (char *)FUN_11bd_4645(param_1 + 1,0xed1);
  iVar2 = FUN_11bd_195d(pcVar1);
  if (iVar2 == 0) {
    uVar3 = thunk_FUN_11bd_61ee(pcVar1);
    while( true ) {
      iVar2 = FUN_11bd_45ab((int)*pcVar1);
      if (iVar2 == 0) break;
      pcVar1 = pcVar1 + 1;
    }
  }
  else {
    for (pcVar1 = pcVar1 + 2; *pcVar1 != '\0'; pcVar1 = pcVar1 + 1) {
      iVar2 = FUN_11bd_6120(0xab0,(int)*pcVar1);
      if (iVar2 == 0) break;
      uVar3 = uVar3 * 0x10 + iVar2 + -0xab0;
    }
  }
  pcVar1 = (char *)FUN_11bd_4645(pcVar1);
  if (*pcVar1 == 'M') {
    if ((uVar3 & 0xffc0) == 0) {
      uVar3 = uVar3 << 10;
    }
    else {
      uVar3 = 0xffff;
    }
  }
  return uVar3;
}



char * __cdecl16near FUN_11bd_4645(char *param_1)

{
  undefined2 unaff_DS;
  
  for (; (*param_1 != '\0' && ((*param_1 == ' ' || (*param_1 == '\t')))); param_1 = param_1 + 1) {
  }
  return param_1;
}



char * __cdecl16near FUN_11bd_4665(char *param_1,char *param_2)

{
  char cVar1;
  char *pcVar2;
  char *pcVar3;
  char *pcVar4;
  undefined2 uVar5;
  undefined2 unaff_DS;
  int local_8;
  undefined4 local_6;
  
  if (*(int *)0x9b8 != 0) {
    local_6 = (char *)((ulong)*(uint *)0x9b8 << 0x10);
    while (pcVar3 = param_1, *local_6 != '\0') {
      while( true ) {
        if (*pcVar3 == '\0') {
          local_8 = 0x80;
          pcVar3 = param_2;
          goto LAB_11bd_46b9;
        }
        uVar5 = (undefined2)((ulong)local_6 >> 0x10);
        if (*local_6 != *pcVar3) break;
        local_6 = (char *)CONCAT22(uVar5,(char *)local_6 + 1);
        pcVar3 = pcVar3 + 1;
      }
      do {
        pcVar3 = (char *)local_6;
        local_6 = (char *)CONCAT22(local_6._2_2_,(char *)local_6 + 1);
      } while (*pcVar3 != '\0');
    }
  }
  return (char *)0x0;
  while( true ) {
    local_6 = (char *)CONCAT22(local_6._2_2_,(char *)local_6 + 1);
    cVar1 = *pcVar2;
    pcVar4 = pcVar3 + 1;
    *pcVar3 = cVar1;
    pcVar3 = pcVar4;
    if (cVar1 == '\0') break;
LAB_11bd_46b9:
    pcVar2 = local_6;
    local_8 = local_8 + -1;
    pcVar4 = pcVar3;
    if (local_8 < 1) break;
  }
  *pcVar4 = '\0';
  return param_2;
}



void __cdecl16near FUN_11bd_46de(uint param_1,int param_2)

{
  int extraout_DX;
  int iVar1;
  undefined2 unaff_DS;
  ulong uVar2;
  long lVar3;
  uint local_6;
  int local_4;
  
  if ((param_2 == 0) || (param_2 == 0x7fff)) {
    param_2 = 0x800;
  }
  if (*(int *)0xecc != 0x3c00) {
    param_2 = *(int *)0xecc;
  }
  if (param_2 != 0) {
    FUN_11bd_27a4();
    iVar1 = extraout_DX;
    FUN_11bd_2090(extraout_DX);
    local_6 = 10;
    local_4 = iVar1;
    uVar2 = FUN_11bd_61c6(&local_6);
    if (((long)uVar2 < 0x10000) && ((0x7fffffff < uVar2 || ((uint)uVar2 < param_1)))) {
      local_6 = 6;
      FUN_11bd_22ad();
    }
    if (((*(char *)0xed8 == '\0') &&
        (*(char *)0xed8 = *(char *)0xed8 + '\x01', 0x59 < *(uint *)0x11de)) &&
       ((0 < local_4 || ((-1 < local_4 && (0x27 < local_6)))))) {
      local_6 = *(uint *)0xc34;
      FUN_11bd_7160();
      local_6 = *(uint *)0xc4c;
      FUN_11bd_7160();
      local_6 = *(uint *)0xc3c;
      FUN_11bd_7160();
      local_6 = 0x6359;
      lVar3 = FUN_11bd_61e2();
      *(undefined2 *)0xa10 = (int)lVar3;
      *(undefined2 *)0xa12 = (int)((ulong)lVar3 >> 0x10);
      if (0xffff < lVar3) {
        local_6 = 0x6368;
        FUN_11bd_71a5();
      }
    }
  }
  return;
}



void __cdecl16near FUN_11bd_479a(void)

{
  code *pcVar1;
  undefined1 in_CF;
  
  pcVar1 = (code *)swi(0x21);
  (*pcVar1)();
  if ((bool)in_CF) {
    FUN_11bd_22ad();
  }
  return;
}



void __cdecl16near FUN_11bd_4b37(undefined2 param_1)

{
  undefined2 unaff_DS;
  undefined2 local_4;
  
  local_4 = 0x11bd;
  if (*(int *)0xe70 < 0) {
    FUN_11bd_5fb8(0x1190);
  }
  if (*(int *)0xe70 < 0) {
    FUN_11bd_22ad(0xfff8);
  }
  local_4 = *(undefined2 *)0xc26;
  (*(code *)0x47b2)(0x11bd,0,param_1);
  *(undefined2 *)0x42 = 0x9fa;
  *(undefined2 *)0x44 = unaff_DS;
  return;
}



uint __cdecl16near FUN_11bd_4b80(void)

{
  code *pcVar1;
  uint uVar2;
  char in_CF;
  
  pcVar1 = (code *)swi(0x21);
  uVar2 = (*pcVar1)();
  return uVar2 & -(uint)(in_CF == '\0');
}



void __cdecl16near FUN_11bd_4b91(int param_1,undefined2 param_2,uint param_3,uint param_4)

{
  int iVar1;
  undefined2 unaff_DS;
  undefined1 local_10 [2];
  undefined2 local_e;
  undefined2 local_c;
  
  local_c = FUN_11bd_6d30(*(undefined2 *)0xc26);
  for (param_4 = param_4 >> 3; param_4 < param_3 >> 3; param_4 = param_4 + 1) {
    iVar1 = param_4 * 8 + param_1;
    if ((*(byte *)(iVar1 + 5) & 0x18) == 0x18) {
      local_e = *(undefined2 *)(iVar1 + 6);
      FUN_11bd_6dc2(9,local_10);
    }
  }
  return;
}



void __cdecl16near FUN_11bd_4bdd(int param_1,undefined2 param_2,uint param_3)

{
  uint uVar1;
  undefined2 uVar2;
  uint *puVar3;
  uint *puVar4;
  uint *puVar5;
  uint uVar6;
  uint uVar7;
  undefined2 unaff_DS;
  uint local_e;
  uint *local_6;
  
  local_e = param_3 >> 3;
  do {
    local_6 = (uint *)((ulong)*(uint *)(local_e * 8 + param_1 + 6) << 0x10);
    do {
      puVar4 = local_6;
      puVar3 = (uint *)local_6;
      local_6 = (uint *)CONCAT22(local_6._2_2_,(uint *)local_6 + 1);
      puVar5 = local_6;
      uVar1 = *puVar4;
      uVar2 = *(undefined2 *)((uVar1 & 0xfff8) + param_1 + 6);
      local_6 = (uint *)CONCAT22(local_6._2_2_,puVar3 + 2);
      uVar7 = *puVar5;
      while (puVar4 = local_6, uVar7 = uVar7 - 1, -1 < (int)uVar7) {
        local_6 = (uint *)CONCAT22(local_6._2_2_,(uint *)local_6 + 1);
        uVar6 = *(uint *)*puVar4;
        if (uVar6 < 0x80) {
          uVar6 = *(uint *)(((uVar6 & 0xfffb) >> 2) + 0xc20);
        }
        else {
          uVar6 = *(uint *)((uVar6 & 0xfff8) + param_1 + 6);
        }
        *(uint *)*puVar4 = uVar6;
      }
    } while ((uVar1 & 3) == 0);
    local_e = local_e + 1;
  } while ((uVar1 & 2) == 0);
  FUN_11bd_1a86(*(undefined2 *)((param_3 & 0xfff8) + param_1 + 6));
  return;
}



void __cdecl16near FUN_11bd_4ca1(int param_1,undefined2 param_2,uint param_3,int param_4)

{
  int iVar1;
  undefined2 uVar2;
  uint *puVar3;
  uint uVar4;
  int *piVar5;
  uint uVar6;
  int iVar7;
  undefined2 unaff_DS;
  undefined4 local_e;
  uint *local_a;
  
  param_3 = param_3 >> 3;
  piVar5 = (int *)(param_3 * 8 + param_1);
  iVar7 = piVar5[3];
  iVar1 = piVar5[-1];
  uVar6 = *piVar5 + 1U >> 1;
  while (uVar6 = uVar6 - 1, -1 < (int)uVar6) {
    if (0x7f < *(uint *)(uVar6 * 2)) {
      uVar2 = *(undefined2 *)((*(uint *)(uVar6 * 2) & 0xfff8) + param_1 + 6);
      *(undefined2 *)(uVar6 * 2) = uVar2;
      puVar3 = (uint *)*(undefined2 *)(uVar6 * 2);
      local_e = (uint *)CONCAT22(uVar2,puVar3);
      uVar4 = *puVar3;
      if (uVar4 < 0x80) {
        uVar4 = *(uint *)(((uVar4 & 0xfffb) >> 2) + 0xc20);
      }
      else {
        uVar4 = *(uint *)((uVar4 & 0xfff8) + param_1 + 6);
      }
      *local_e = uVar4;
    }
  }
  FUN_11bd_1a86(iVar1);
  FUN_11bd_1a86(iVar7);
  if (((*(char *)0x2e == '\0') && (*(int *)0xed6 == 0)) &&
     (uVar6 = FUN_11bd_4b80(param_3 * 2 + 0xf >> 4), uVar6 != 0)) {
    *(undefined2 *)0xed4 = 0;
    *(uint *)0xed6 = uVar6;
    local_a = (uint *)((ulong)uVar6 << 0x10);
    iVar7 = 0x10;
    while (iVar7 = iVar7 + -1, 0 < iVar7) {
      *(undefined2 *)(iVar7 * 2) = ((undefined2 *)(iVar7 * 2))[0x610];
    }
    *local_a = param_4 - 0x80U;
    uVar4 = param_4 - 0x80U >> 3;
    iVar7 = -1 - (uVar4 - param_3);
    *(int *)0x2 = iVar7;
    for (; 0xf < iVar7; iVar7 = iVar7 + -1) {
      *(undefined2 *)(iVar7 * 2) = *(undefined2 *)((iVar7 + uVar4) * 8 + param_1 + 6);
    }
  }
  return;
}



undefined2 __cdecl16near FUN_11bd_4e36(undefined2 param_1,undefined2 param_2)

{
  uint *puVar1;
  uint uVar2;
  int iVar3;
  undefined2 unaff_DS;
  undefined4 uVar4;
  int local_40 [2];
  char local_3b;
  undefined2 local_3a;
  undefined1 local_36 [18];
  undefined1 local_24 [5];
  undefined1 local_1f;
  
  FUN_11bd_66e1(param_1,param_2,local_36,0x30);
  local_1f = 0;
  if (*(char *)0xcee < '\x04') {
    iVar3 = FUN_11bd_195d(local_24,0xeee);
    if (iVar3 != 0) {
      uVar4 = FUN_11bd_27b0();
      *(undefined2 *)0x98 = (int)uVar4;
      *(undefined2 *)0x9a = (int)((ulong)uVar4 >> 0x10);
      return 1;
    }
  }
  FUN_11bd_66e1(param_1,200,local_40,10);
  if ((local_40[0] == -0xd2) && (local_3b == '$')) {
    uVar4 = FUN_11bd_674c(local_3a);
    puVar1 = (uint *)0x98;
    uVar2 = *puVar1;
    *puVar1 = *puVar1 + (uint)uVar4;
    *(int *)0x9a = *(int *)0x9a + (int)((ulong)uVar4 >> 0x10) + (uint)CARRY2(uVar2,(uint)uVar4);
  }
  return 0;
}



// WARNING: Removing unreachable block (ram,0x00016ad3)
// WARNING: Removing unreachable block (ram,0x00016ae6)

void __cdecl16near FUN_11bd_4eb4(void)

{
  int iVar1;
  undefined2 unaff_DS;
  ulong uVar2;
  undefined2 local_e [2];
  undefined1 local_a [8];
  
  FUN_11bd_11ed(3,0x10,local_a,5);
  iVar1 = FUN_11bd_195d(local_a,0xeee);
  if (iVar1 != 0) {
    FUN_11bd_11ed(0x1e,0x10,local_e,2);
    uVar2 = FUN_11bd_674c(local_e[0]);
    if ((CONCAT22(*(undefined2 *)0x9a,*(undefined2 *)0x98) < uVar2) &&
       (uVar2 < CONCAT22(*(undefined2 *)0x9e,*(undefined2 *)0x9c))) {
      *(undefined2 *)0x98 = (int)uVar2;
      *(undefined2 *)0x9a = (int)(uVar2 >> 0x10);
    }
  }
  return;
}



undefined2 __cdecl16near FUN_11bd_4f2a(void)

{
  int iVar1;
  undefined2 unaff_DS;
  undefined4 uVar2;
  undefined1 local_18 [18];
  undefined1 local_6 [4];
  
  FUN_11bd_11ed(0,0x10,local_18,0x12);
  iVar1 = FUN_11bd_195d(local_18,0xef4);
  if (iVar1 != 0) {
    FUN_11bd_11ed(0x32,0x10,local_6,4);
    uVar2 = FUN_11bd_27a4();
    *(undefined2 *)0x98 = (int)uVar2;
    *(undefined2 *)0x9a = (int)((ulong)uVar2 >> 0x10);
    return 1;
  }
  return 0;
}



void __cdecl16near FUN_11bd_4f83(code *param_1)

{
  int *piVar1;
  ulong uVar2;
  int iVar3;
  int *piVar4;
  int iVar5;
  undefined2 unaff_DS;
  undefined4 local_1c;
  undefined2 local_18 [4];
  undefined1 local_10;
  undefined1 local_f;
  int local_e;
  
  iVar5 = 0x22;
  if (*(char *)0xcee == '\x02') {
    iVar5 = 0x17;
  }
  if ((*(char *)0xcee == '\x03') && (*(char *)0xcef == '\0')) {
    iVar5 = 0x28;
  }
  local_f = 0x52;
  FUN_11bd_2718(&local_10,&local_10,local_18);
  local_1c = (int *)CONCAT22(local_18[0],(int *)(local_e + iVar5));
  iVar5 = 0x28;
  while( true ) {
    uVar2 = (ulong)local_1c >> 0x10;
    piVar4 = (int *)local_1c;
    piVar1 = (int *)*local_1c;
    local_1c = (int *)CONCAT22(piVar4[1],piVar1);
    if (piVar1 == (int *)0xffff) {
      return;
    }
    iVar5 = iVar5 + -1;
    if (iVar5 == 0) break;
    iVar3 = (*param_1)(piVar4[1],piVar1);
    if (iVar3 != 0) {
      return;
    }
  }
  return;
}



void __cdecl16near FUN_11bd_4ff2(void)

{
  FUN_11bd_6c74();
  FUN_11bd_4f83(0x4df8);
  return;
}



undefined2 __cdecl16near FUN_11bd_4ffd(undefined2 param_1,undefined2 param_2)

{
  int extraout_DX;
  undefined2 unaff_DS;
  int local_6;
  int local_4;
  
  FUN_11bd_61aa(&param_1,4);
  if ((0x10 < extraout_DX) || (0xf < extraout_DX)) {
    FUN_11bd_1222(param_1,param_2,0xf08,4);
    FUN_11bd_11ed(param_1,param_2,&local_6,4);
    if ((local_6 == *(int *)0xf08) && (local_4 == *(int *)0xf0a)) {
      return 1;
    }
  }
  return 0;
}



void __cdecl16near FUN_11bd_504e(void)

{
  undefined2 uVar1;
  uint uVar2;
  int iVar3;
  uint uVar4;
  undefined2 unaff_DS;
  undefined4 uVar5;
  undefined2 local_1c [4];
  uint local_14;
  uint local_12;
  undefined2 local_10;
  
  *(undefined2 *)0xa6 = 0;
  *(undefined2 *)0xa4 = 0;
  *(undefined2 *)0x9e = 0;
  *(undefined2 *)0x9c = 0;
  *(undefined2 *)0x9a = 0;
  *(undefined2 *)0x98 = 0;
  *(undefined2 *)0xa0 = 0x98;
  *(undefined2 *)0xa2 = unaff_DS;
  if (*(char *)0x2e == '\v') {
    uVar5 = FUN_11bd_674c(*(undefined2 *)0xeca);
    *(undefined2 *)0x98 = (int)uVar5;
    *(undefined2 *)0x9a = (int)((ulong)uVar5 >> 0x10);
    uVar2 = *(int *)0xecc + *(int *)0xeca;
    if (uVar2 < *(uint *)0xeca) {
      uVar2 = 0xff00;
    }
    uVar5 = FUN_11bd_674c(uVar2);
    *(undefined2 *)0x9c = (int)uVar5;
    *(undefined2 *)0x9e = (int)((ulong)uVar5 >> 0x10);
  }
  else if ((*(byte *)0x47 & 1) == 0) {
    uVar5 = FUN_11bd_674c(*(undefined2 *)0xeca);
    *(undefined2 *)0x98 = (int)uVar5;
    *(undefined2 *)0x9a = (int)((ulong)uVar5 >> 0x10);
    uVar5 = FUN_11bd_674c(*(undefined2 *)0xece);
    *(undefined2 *)0x9c = (int)uVar5;
    *(undefined2 *)0x9e = (int)((ulong)uVar5 >> 0x10);
    iVar3 = FUN_11bd_6c84();
    if (iVar3 != 0) {
LAB_11bd_50db:
      uVar1 = *(undefined2 *)0xecc;
      *(undefined2 *)0xa8 = uVar1;
      uVar5 = FUN_11bd_674c(uVar1);
      uVar2 = (uint)uVar5 + *(uint *)0x98;
      uVar4 = (int)((ulong)uVar5 >> 0x10) + *(int *)0x9a + (uint)CARRY2((uint)uVar5,*(uint *)0x98);
      goto LAB_11bd_50ee;
    }
  }
  else {
    local_10 = CONCAT11(0x88,(undefined1)local_10);
    FUN_11bd_6084(0x15,&local_10,&local_10);
    *(int *)0xa8 = local_10;
    iVar3 = FUN_11bd_6c84();
    if (iVar3 != 0) goto LAB_11bd_50db;
    if (0xfbff < *(uint *)0xa8) {
      *(int *)0xa8 = *(int *)0xa8 + -1;
    }
    uVar5 = FUN_11bd_674c(*(undefined2 *)0xa8);
    local_14 = (uint)uVar5;
    local_12 = (int)((ulong)uVar5 >> 0x10) + 1;
    FUN_11bd_4ff2();
    if (local_10 != 0) {
      *(undefined2 *)0xaa4 = 0x1b41;
      *(undefined2 *)0xaa6 = 0x1bb5;
      *(undefined2 *)0x98 = 0;
      *(undefined2 *)0x9a = 1;
      *(undefined2 *)0x9c = local_14;
      *(int *)0x9e = local_12;
      iVar3 = FUN_11bd_4f2a();
      if (iVar3 == 0) {
        local_10 = 0x3519;
        FUN_11bd_2718(&local_10,&local_10,local_1c);
        iVar3 = FUN_11bd_4e36(local_1c[0],0);
        if (iVar3 == 0) {
          FUN_11bd_4f83(0x4e36);
        }
        FUN_11bd_4eb4();
      }
    }
  }
  if (*(int *)0xecc == 0) {
    *(undefined2 *)0x9e = 0;
    *(undefined2 *)0x9c = 0;
    return;
  }
  uVar2 = FUN_11bd_61e2();
  if (*(uint *)0xece < uVar2) {
    uVar5 = FUN_11bd_674c(*(undefined2 *)0xece);
    *(undefined2 *)0x9c = (int)uVar5;
    *(undefined2 *)0x9e = (int)((ulong)uVar5 >> 0x10);
  }
  uVar5 = FUN_11bd_674c(*(undefined2 *)0xecc);
  local_14 = (uint)uVar5 + *(uint *)0x98;
  local_12 = (int)((ulong)uVar5 >> 0x10) + *(int *)0x9a + (uint)CARRY2((uint)uVar5,*(uint *)0x98);
  uVar2 = FUN_11bd_61e2();
  if (uVar2 < *(uint *)0xeca) {
    uVar5 = FUN_11bd_674c(*(undefined2 *)0xeca);
    *(undefined2 *)0x98 = (int)uVar5;
    *(undefined2 *)0x9a = (int)((ulong)uVar5 >> 0x10);
    local_1c[0] = *(undefined2 *)0xecc;
    uVar5 = FUN_11bd_674c();
    uVar2 = (uint)uVar5 + *(uint *)0x98;
    uVar4 = (int)((ulong)uVar5 >> 0x10) + *(int *)0x9a + (uint)CARRY2((uint)uVar5,*(uint *)0x98);
    if ((uVar4 <= *(uint *)0x9e) && ((uVar4 < *(uint *)0x9e || (uVar2 < *(uint *)0x9c)))) {
LAB_11bd_50ee:
      *(uint *)0x9c = uVar2;
      *(uint *)0x9e = uVar4;
      return;
    }
  }
  else if ((local_12 <= *(uint *)0x9e) && ((local_12 < *(uint *)0x9e || (local_14 < *(uint *)0x9c)))
          ) {
    uVar5 = FUN_11bd_674c(*(undefined2 *)0xecc);
    uVar2 = *(uint *)0x9c;
    iVar3 = *(int *)0x9e;
    *(int *)0x98 = uVar2 - (uint)uVar5;
    *(int *)0x9a = (iVar3 - (int)((ulong)uVar5 >> 0x10)) - (uint)(uVar2 < (uint)uVar5);
  }
  return;
}



undefined4 __cdecl16near FUN_11bd_5262(int *param_1)

{
  int iVar1;
  byte bVar2;
  undefined2 unaff_DS;
  undefined4 uVar3;
  uint local_6;
  int local_4;
  
  if ((*(byte *)0x47 & 2) != 0) {
    local_4 = 0xf;
    for (local_6 = 0xa000; (local_4 < 0x10 && ((local_4 < 0xf || (local_6 != 0xffff))));
        local_6 = local_6 + 0x400) {
      iVar1 = FUN_11bd_4ffd(local_6,local_4);
      if (iVar1 == 0) break;
      iVar1 = FUN_11bd_4ffd(local_6 + 0x3ff,local_4 + (uint)(0xfc00 < local_6));
      if (iVar1 == 0) break;
      uVar3 = FUN_11bd_27a4(0,0x4000);
      FUN_11bd_1222(uVar3);
      local_4 = local_4 + (uint)(0xfbff < local_6);
    }
    bVar2 = (char)(local_6 >> 8) + 0x60;
    *param_1 = (uint)bVar2 << 8;
    if (bVar2 != 0) {
      return 0xfa000;
    }
  }
  *(byte *)0x47 = *(byte *)0x47 & 0xfd;
  return 0;
}


/*
Unable to decompile 'FUN_11bd_52ef'
Cause: Exception while decompiling 11bd:52ef: ghidra.program.model.address.AddressOutOfBoundsException: Offset must be between 0x0 and 0x10ffef, got 0xf000ffe0 instead!

*/


void __cdecl16near FUN_11bd_53e0(void)

{
  uint *puVar1;
  uint uVar2;
  undefined2 *puVar3;
  undefined2 *puVar4;
  uint uVar5;
  undefined2 uVar6;
  int iVar7;
  undefined2 *puVar8;
  undefined2 unaff_DS;
  long lVar9;
  undefined4 uVar10;
  undefined2 local_2a;
  undefined2 local_28;
  undefined2 local_26;
  undefined2 *local_24;
  undefined4 local_1c;
  undefined4 local_18;
  uint local_14;
  int local_12;
  uint local_8;
  uint local_6;
  uint local_4;
  
  uVar2 = *(uint *)0x98;
  uVar5 = *(uint *)0x9a;
  if ((uVar5 <= *(uint *)0x9e) &&
     (((uVar5 < *(uint *)0x9e || (uVar2 < *(uint *)0x9c)) && (*(char *)0x2e != '\v')))) {
    local_6 = uVar2;
    local_4 = uVar5;
    iVar7 = FUN_11bd_4ffd(uVar2,uVar5);
    if (iVar7 != 0) {
      while( true ) {
        local_1c._0_2_ = local_6 + 0x3ff;
        local_1c._2_2_ = local_4 + (0xfc00 < local_6);
        if ((*(uint *)0x9e < local_1c._2_2_) ||
           ((*(uint *)0x9e <= local_1c._2_2_ && (*(uint *)0x9c <= (uint)local_1c)))) break;
        iVar7 = FUN_11bd_4ffd((uint)local_1c,local_1c._2_2_);
        if (iVar7 == 0) goto LAB_11bd_546f;
        local_6 = (uint)local_1c + 1;
        local_4 = local_1c._2_2_ + (0xfffe < (uint)local_1c);
      }
      iVar7 = FUN_11bd_4ffd(*(int *)0x9c + -1,*(int *)0x9e - (uint)(*(int *)0x9c == 0));
      if (iVar7 != 0) goto LAB_11bd_547c;
    }
LAB_11bd_546f:
    *(uint *)0x9c = local_6;
    *(uint *)0x9e = local_4;
  }
LAB_11bd_547c:
  *(undefined2 *)0xa6 = 0;
  *(undefined2 *)0xa4 = 0;
  local_12 = 0;
  local_14 = 0;
  local_1c._2_2_ = 0;
  local_1c._0_2_ = 0;
  if ((*(char *)0x2e != '\x03') || (lVar9 = FUN_11bd_52ef(&local_8), lVar9 == 0)) {
    local_1c = 0;
    lVar9 = FUN_11bd_5262(&local_8);
    if (lVar9 == 0) goto LAB_11bd_54f2;
  }
  local_1c._2_2_ = (uint)((ulong)lVar9 >> 0x10);
  local_1c._0_2_ = (uint)lVar9;
  if ((*(uint *)0x9e <= *(uint *)0x9a) &&
     ((*(uint *)0x9e < *(uint *)0x9a || (*(uint *)0x9c <= *(uint *)0x98)))) {
    *(undefined2 *)0x98 = (uint)local_1c;
    *(undefined2 *)0x9a = local_1c._2_2_;
    *(undefined2 *)0x9c = (int)(lVar9 + (ulong)local_8);
    *(undefined2 *)0x9e = (int)(lVar9 + (ulong)local_8 >> 0x10);
    lVar9 = 0;
  }
LAB_11bd_54f2:
  uVar2 = *(uint *)0x98;
  uVar5 = *(uint *)0x9a;
  if ((uVar5 <= *(uint *)0x9e) &&
     ((uVar5 < *(uint *)0x9e ||
      (local_18 = CONCAT22(local_18._2_2_,(uint)local_18), uVar2 < *(uint *)0x9c)))) {
    local_18._0_2_ = uVar2 + 1;
    local_18._2_2_ = uVar5 + (0xfffe < uVar2);
    *(undefined2 *)0x11d4 = 9;
    local_6 = (uint)local_18;
    local_4 = local_18._2_2_;
    local_1c = lVar9;
    if (*(char *)0x2e == '\v') {
      iVar7 = FUN_11bd_7a88((uint)local_18,local_18._2_2_);
      if (iVar7 == 0) {
        FUN_11bd_22ad(0x1b);
      }
      if ((*(byte *)0xa16 & 2) != 0) {
        FUN_11bd_7a88(*(int *)0x9c + -1,*(int *)0x9e - (uint)(*(int *)0x9c == 0));
        uVar6 = *(undefined2 *)0xae;
        *(undefined2 *)0x9c = *(undefined2 *)0xac;
        *(undefined2 *)0x9e = uVar6;
      }
    }
    uVar10 = FUN_11bd_27a4(&local_18,0x10);
    FUN_11bd_1222(uVar10);
    local_14 = *(uint *)0x9c - (uint)local_18;
    local_12 = (*(int *)0x9e - local_18._2_2_) - (uint)(*(uint *)0x9c < (uint)local_18);
    *(uint *)0xa4 = local_14;
    *(int *)0xa6 = local_12;
    local_18 = local_1c;
    uVar10 = FUN_11bd_27a4(&local_18,0x10);
    FUN_11bd_1222(uVar10);
    lVar9 = local_1c;
    if (local_1c != 0) {
      local_18._2_2_ = 0;
      local_18._0_2_ = 0;
      local_14 = local_8;
      local_12 = 0;
      puVar1 = (uint *)0xa4;
      uVar2 = *puVar1;
      *puVar1 = *puVar1 + local_8;
      *(int *)0xa6 = *(int *)0xa6 + (uint)CARRY2(uVar2,local_8);
      uVar10 = FUN_11bd_27a4(&local_18,0x10);
      FUN_11bd_1222(uVar10);
      lVar9 = local_1c + CONCAT22(local_12,local_14);
      *(undefined2 *)0x9c = (int)lVar9;
      *(undefined2 *)0x9e = (int)((ulong)lVar9 >> 0x10);
      lVar9 = local_1c;
      local_18 = CONCAT22(local_18._2_2_,(uint)local_18);
    }
  }
  local_1c = lVar9;
  if ((*(byte *)0x47 & 0x80) != 0) {
    *(undefined1 *)0xa16 = 1;
    local_2a = 0xbfde;
    local_28 = 4;
    local_26 = 1;
    if ((*(int *)0xadc != 0) || (*(char *)0x2e == '\v')) {
      local_26 = 0;
    }
    FUN_11bd_6084(0x15,&local_2a,&local_2a);
    *(undefined2 *)0xa0 = local_24;
    *(undefined2 *)0xa2 = local_26;
    puVar8 = (undefined2 *)0x98;
    for (iVar7 = 0xc; iVar7 != 0; iVar7 = iVar7 + -1) {
      puVar4 = local_24;
      local_24 = local_24 + 1;
      puVar3 = puVar8;
      puVar8 = puVar8 + 1;
      *puVar4 = *puVar3;
    }
  }
  if (*(char *)0x2e != '\v') {
    uVar10 = FUN_11bd_27a4();
    *(undefined2 *)0xaa8 = (int)uVar10;
    *(undefined2 *)0xaaa = (int)((ulong)uVar10 >> 0x10);
  }
  return;
}



void FUN_11bd_5680(void)

{
  FUN_11bd_504e();
  FUN_11bd_53e0();
  return;
}



// WARNING: Removing unreachable block (ram,0x0001727c)

void __cdecl16near FUN_11bd_5686(void)

{
  byte bVar1;
  undefined1 uVar2;
  int iVar3;
  code *pcVar4;
  uint uVar5;
  int iVar6;
  undefined2 uVar7;
  undefined2 unaff_DS;
  long lVar8;
  undefined4 uVar9;
  int local_6;
  
  lVar8 = FUN_11bd_674c(*(undefined2 *)0x120e);
  uVar7 = (undefined2)((ulong)*(undefined4 *)0xa0 >> 0x10);
  iVar6 = (int)*(undefined4 *)0xa0;
  uVar5 = *(uint *)(iVar6 + 0xc);
  if (CONCAT22(*(int *)(iVar6 + 0xe) + (uint)(0xfffe < uVar5),uVar5 + 1) < lVar8) {
    FUN_11bd_22ad(0x28);
  }
  FUN_11bd_199a();
  FUN_11bd_016c();
  iVar6 = FUN_11bd_11dd(*(undefined2 *)0x97c);
  iVar3 = FUN_11bd_11dd(iVar6 << 1);
  if (*(char *)0x981 == '\0') {
    pcVar4 = (code *)0x38af;
  }
  else {
    pcVar4 = (code *)0x395c;
  }
  (*pcVar4)(iVar6 + iVar3);
  uVar9 = FUN_11bd_27a4();
  iVar6 = (int)((ulong)uVar9 >> 0x10);
  *(undefined2 *)0x98e = (int)uVar9;
  *(int *)0x990 = iVar6;
  *(undefined2 *)0x11d4 = 0xb;
  if (iVar6 == 0 && *(int *)0x98e == 0) {
    FUN_11bd_22ad(10);
  }
  *(undefined2 *)0x11d4 = 10;
  *(int *)0x910 = iVar3 * 0x10 + -1;
  uVar9 = FUN_11bd_27a4();
  uVar5 = (int)((ulong)uVar9 >> 0x10) + *(int *)0x990 + (uint)CARRY2((uint)uVar9,*(uint *)0x98e);
  *(int *)0x912 = (uint)uVar9 + *(uint *)0x98e;
  *(undefined1 *)0x914 = (char)uVar5;
  *(uint *)0x916 = uVar5 & 0xff00;
  uVar7 = *(undefined2 *)0x97c;
  *(undefined2 *)0x938 = uVar7;
  *(undefined2 *)0x928 = uVar7;
  uVar7 = *(undefined2 *)0x98e;
  *(undefined2 *)0x93a = uVar7;
  *(undefined2 *)0x92a = uVar7;
  uVar2 = *(undefined1 *)0x990;
  *(undefined1 *)0x93c = uVar2;
  *(undefined1 *)0x92c = uVar2;
  bVar1 = *(byte *)0x991;
  *(int *)0x93e = (uint)bVar1 << 8;
  *(int *)0x92e = (uint)bVar1 << 8;
  *(undefined1 *)0x915 = 0x92;
  *(undefined1 *)0x93d = 0x92;
  FUN_11bd_6701(0x78,0,*(undefined2 *)0x97c);
  FUN_11bd_1222(*(undefined2 *)0x98e,*(undefined2 *)0x990,0x8c0,*(int *)0x8c8 + 1);
  FUN_11bd_1cfb(5,*(undefined2 *)0xcec,0xff);
  FUN_11bd_1cfb(6,*(undefined2 *)0x9b8,0x7fff);
  FUN_11bd_1222(*(uint *)0x98e + 8,*(int *)0x990 + (uint)(0xfff7 < *(uint *)0x98e),0x938,8);
  *(undefined2 *)0x8c8 = *(undefined2 *)0x938;
  *(undefined2 *)0x8ca = *(undefined2 *)0x93a;
  *(undefined2 *)0x8cc = *(undefined2 *)0x93c;
  *(undefined2 *)0x8ce = *(undefined2 *)0x93e;
  uVar7 = *(undefined2 *)0x990;
  *(undefined2 *)0x976 = *(undefined2 *)0x98e;
  *(undefined2 *)0x978 = uVar7;
  *(undefined2 *)0x974 = *(undefined2 *)0x97c;
  FUN_11bd_6701(0x50,0,iVar3 * 0x10);
  FUN_11bd_2fc7();
  local_6 = 0x1c;
  iVar6 = FUN_11bd_3bcc(0x1c);
  *(int *)0xf54 = iVar6;
  if (iVar6 == 0) {
    FUN_11bd_22ad(0xb);
  }
  iVar6 = (*(int *)0xf54 + 8) * 8;
  *(int *)0xa9c = iVar6;
  *(int *)0xc14 = iVar6 + 8;
  while (local_6 = local_6 + -1, -1 < local_6) {
    FUN_11bd_1cfb(local_6 + *(int *)0xf54,0xe000,0xffff);
  }
  *(int *)0xf54 = *(int *)0xf54 << 3;
  if ('\x02' < *(char *)0x2f) {
    local_6 = 3;
    iVar6 = FUN_11bd_3bcc(3);
    *(int *)0xa87 = iVar6;
    if (iVar6 != 0) {
      while (local_6 = local_6 + -1, -1 < local_6) {
        FUN_11bd_1cfb(local_6 + *(int *)0xa87,0xd000,0xffff);
      }
      *(int *)0xa87 = *(int *)0xa87 << 3;
    }
  }
  FUN_11bd_7670();
  if ((((*(byte *)0x47 & 0x80) != 0) && (*(int *)0xac == *(int *)0x98)) &&
     (*(int *)0xae == *(int *)0x9a)) {
    FUN_11bd_53e0();
  }
  if (*(char *)0x2e == '\v') {
    iVar6 = FUN_11bd_3bcc(3);
    if (iVar6 == 0) {
      FUN_11bd_22ad(0xc);
    }
    uVar5 = iVar6 * 8;
    *(uint *)0xd70 = uVar5;
    FUN_11bd_1222(uVar5 + *(uint *)0x98e,*(int *)0x990 + (uint)CARRY2(uVar5,*(uint *)0x98e),0x940,
                  0x18);
  }
  return;
}



// WARNING: Removing unreachable block (ram,0x00017548)
// WARNING: Removing unreachable block (ram,0x00017550)

void __cdecl16near FUN_11bd_58e6(void)

{
  uint uVar1;
  undefined2 unaff_DS;
  undefined2 local_10;
  undefined2 local_e;
  undefined2 local_c;
  undefined2 local_a;
  
  if (0 < *(int *)0xa12) {
    return;
  }
  if ((*(byte *)0x47 & 0x80) == 0) {
    uVar1 = FUN_11bd_1f24();
    FUN_11bd_198a(uVar1);
                    // WARNING: Subroutine does not return
    thunk_FUN_11bd_1e86(uVar1 >> 4,0);
  }
  *(undefined2 *)0xaa = *(undefined2 *)0xdf4;
  local_10 = 0xbfde;
  local_e = 2;
  local_c = 0;
  local_a = 0;
  FUN_11bd_6084(0x15,&local_10,&local_10);
  return;
}



void __cdecl16near FUN_11bd_5992(void)

{
  int iVar1;
  undefined2 unaff_DS;
  undefined4 uVar2;
  int local_10c;
  int local_10a;
  undefined2 local_108;
  char local_106;
  char local_105;
  undefined2 local_104;
  undefined1 local_102 [256];
  
  local_10a = *(int *)0xe70;
  if ('\0' < *(char *)0xf21) {
    return;
  }
  if (*(char *)0xcee < '\x03') {
    return;
  }
  local_108 = FUN_11bd_68ec();
  iVar1 = FUN_11bd_2d95();
  *(int *)0xe70 = iVar1;
  if ((iVar1 < 0) && (iVar1 = FUN_11bd_4665(0xf14,local_102), iVar1 != 0)) {
    FUN_11bd_5fb8(local_102);
  }
  if (*(int *)0xe70 < 0) {
    *(int *)0xe70 = local_10a;
    FUN_11bd_5ff7();
    local_10a = -1;
    FUN_11bd_5fb8(0x1190);
    FUN_11bd_5fe2(&local_106,0x1c);
    uVar2 = FUN_11bd_5b09(&local_106);
    FUN_11bd_5fca(uVar2);
    local_106 = '\0';
    FUN_11bd_5fe2(&local_106,6);
    if ((local_106 != 'M') || (local_105 != 'F')) {
      local_10a = *(int *)0xe70;
      *(undefined2 *)0xe70 = 0xffff;
    }
  }
  if (*(int *)0xe70 < 0) {
    FUN_11bd_25ee(local_102,0x1190);
    FUN_11bd_18a4(0xf1c);
    FUN_11bd_5fb8(0x1190);
    FUN_11bd_25ee(0x1190,local_102);
  }
  if (-1 < *(int *)0xe70) {
    *(int *)0x1188 = (int)&local_106;
    local_104 = 0;
    local_10c = 0;
    FUN_11bd_5fe2(&local_10c,1);
    if (local_10c == 0x4d) {
      FUN_11bd_5dd2();
    }
    else {
      iVar1 = FUN_11bd_5bdb(local_108);
      if (iVar1 == 0) goto LAB_11bd_5ac1;
      FUN_11bd_5c8b();
    }
    *(undefined1 *)0xf21 = 1;
  }
LAB_11bd_5ac1:
  if (-1 < local_10a) {
    FUN_11bd_5ff7();
    *(int *)0xe70 = local_10a;
  }
  return;
}



int __cdecl16near FUN_11bd_5ad6(void)

{
  uint *puVar1;
  uint uVar2;
  undefined2 unaff_DS;
  
  puVar1 = (uint *)*(undefined2 *)0x1188;
  *puVar1 = *puVar1 + 1;
  if (puVar1[1] <= *puVar1) {
    uVar2 = FUN_11bd_5fe2(puVar1 + 2,0x100);
    puVar1[1] = uVar2;
    if ((int)uVar2 < 1) {
      return -1;
    }
    *puVar1 = 0;
  }
  return (int)*(char *)((int)puVar1 + *puVar1 + 4);
}



long __cdecl16near FUN_11bd_5b09(char *param_1)

{
  undefined2 unaff_DS;
  long lVar1;
  int local_8;
  
  lVar1 = FUN_11bd_27a4();
  local_8 = 0;
  if (*(int *)(param_1 + 2) != 0) {
    if (*param_1 == 'M') {
      local_8 = 0x200;
    }
    lVar1 = lVar1 + (*(int *)(param_1 + 2) - local_8);
  }
  return lVar1;
}



int __cdecl16near FUN_11bd_5b51(void)

{
  int iVar1;
  int local_4;
  
  local_4 = 0;
  do {
    iVar1 = FUN_11bd_5ad6();
    if (iVar1 == 10) {
      return -2;
    }
    if (iVar1 == 0x2a) {
      return -3;
    }
    if (iVar1 == 0x40) {
      return -4;
    }
  } while (9 < iVar1 - 0x30U);
  do {
    local_4 = local_4 * 10 + iVar1 + -0x30;
    iVar1 = FUN_11bd_5ad6();
  } while (iVar1 - 0x30U < 10);
  return local_4;
}



undefined2 __cdecl16near FUN_11bd_5bab(char *param_1)

{
  char *pcVar1;
  int iVar2;
  undefined2 unaff_DS;
  
  do {
    if (*param_1 == '\0') {
      return 1;
    }
    iVar2 = FUN_11bd_5ad6();
    pcVar1 = param_1;
    param_1 = param_1 + 1;
  } while (iVar2 == *pcVar1);
  return 0;
}



undefined2 __cdecl16near FUN_11bd_5bdb(int param_1)

{
  char cVar1;
  int iVar2;
  char *pcVar3;
  undefined2 unaff_DS;
  char local_44 [66];
  
LAB_11bd_5be3:
  do {
    do {
      while( true ) {
        iVar2 = FUN_11bd_5ad6();
        if (iVar2 == -1) {
          return 0;
        }
        if (iVar2 != 0x3b) break;
LAB_11bd_5c72:
        while (iVar2 = FUN_11bd_5ad6(), iVar2 != 10) {
          if (iVar2 < 0) {
            return 0;
          }
        }
      }
      if (iVar2 == 0x45) {
        iVar2 = FUN_11bd_5ad6();
      }
    } while ((iVar2 != 0x52) || (iVar2 = FUN_11bd_5bab(0xf24), iVar2 == 0));
    while( true ) {
      iVar2 = FUN_11bd_5b51();
      if ((iVar2 == param_1) || (iVar2 == -3)) {
        return 1;
      }
      if (iVar2 == -1) {
        return 0;
      }
      if (iVar2 == 0x3b) goto LAB_11bd_5c72;
      if (iVar2 == -4) break;
      if (iVar2 == -2) goto LAB_11bd_5be3;
    }
    pcVar3 = local_44;
    while( true ) {
      cVar1 = FUN_11bd_5ad6();
      *pcVar3 = cVar1;
      if (cVar1 < '!') break;
      pcVar3 = pcVar3 + 1;
    }
    FUN_11bd_5ff7();
    *(undefined2 *)(*(int *)0x1188 + 2) = 0;
    *pcVar3 = '\0';
    FUN_11bd_5fb8(local_44);
    if (*(int *)0xe70 < 0) {
      return 0;
    }
  } while( true );
}



void __cdecl16near FUN_11bd_5c8b(void)

{
  bool bVar1;
  uint uVar2;
  uint uVar3;
  int iVar4;
  uint *puVar5;
  uint *puVar6;
  undefined2 unaff_DS;
  
  bVar1 = false;
  puVar5 = (uint *)0x15e8;
LAB_11bd_5c99:
  do {
    while( true ) {
      uVar2 = FUN_11bd_5ad6();
      if (uVar2 == 0xffff) goto LAB_11bd_5d18;
      if ((uVar2 != 0x22) && (uVar2 != 0x27)) break;
      if (!bVar1) {
        puVar5 = (uint *)((int)puVar5 + -1);
      }
      while (puVar6 = puVar5, uVar3 = FUN_11bd_5ad6(), uVar3 != uVar2) {
        *puVar6 = uVar3 & 0xff;
        puVar5 = (uint *)((int)puVar6 + 1);
        if (((uint *)(*(int *)0xce6 + -0x10) < puVar5) && (iVar4 = FUN_1000_0b12(0x200), iVar4 == 0)
           ) {
          puVar5 = puVar6 + 1;
          goto LAB_11bd_5d18;
        }
      }
LAB_11bd_5d3e:
      bVar1 = false;
      puVar5 = (uint *)((int)puVar6 + 1);
    }
    if (uVar2 == 0x3b) {
      while (iVar4 = FUN_11bd_5ad6(), iVar4 != 10) {
        if (iVar4 < 0) {
          return;
        }
      }
      goto LAB_11bd_5c99;
    }
    if (uVar2 == 0x43) {
      iVar4 = FUN_11bd_5bab(0xf30);
      if (iVar4 != 0) {
        if (!bVar1) {
          puVar5 = (uint *)((int)puVar5 + -1);
        }
        *(undefined1 *)puVar5 = 0xd;
        *(undefined1 *)((int)puVar5 + 1) = 10;
        puVar6 = puVar5 + 1;
        *(undefined1 *)puVar6 = 0;
        goto LAB_11bd_5d3e;
      }
    }
    else if (uVar2 == 0x45) {
      iVar4 = FUN_11bd_5bab(0xf38);
      if (iVar4 != 0) {
LAB_11bd_5d18:
        *puVar5 = 0xffff;
        *(undefined2 *)0xf22 = puVar5 + 1;
        *(uint *)0xcde = (uint)(puVar5 + 1) & 0xfffe;
        return;
      }
    }
    else if ((uVar2 == 0x4d) && (iVar4 = FUN_11bd_5bab(0xf29), iVar4 != 0)) {
      if (bVar1) {
        *(undefined1 *)puVar5 = 0;
        puVar5 = (uint *)((int)puVar5 + 1);
      }
      uVar2 = FUN_11bd_5b51();
      *puVar5 = uVar2;
      puVar5 = puVar5 + 1;
      bVar1 = true;
    }
  } while( true );
}



int __cdecl16near FUN_11bd_5d79(uint param_1,uint param_2)

{
  undefined2 local_10;
  uint local_e;
  int local_4;
  
  local_e = param_2;
  do {
    local_10 = CONCAT11(0x48,(undefined1)local_10);
    FUN_11bd_26d0(&local_10,&local_10);
    if (local_4 == 0) {
      return local_10;
    }
  } while ((local_10 == 8) && (param_1 <= local_e));
  return 0;
}



void __cdecl16near FUN_11bd_5db2(undefined2 param_1)

{
  undefined2 local_18 [4];
  undefined1 local_10;
  undefined1 local_f;
  
  local_f = 0x49;
  local_18[0] = param_1;
  FUN_11bd_2718(&local_10,&local_10,local_18);
  return;
}



void __cdecl16near FUN_11bd_5dd2(void)

{
  int *piVar1;
  int *piVar2;
  int *piVar3;
  undefined2 *puVar4;
  undefined2 *puVar5;
  undefined1 *puVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  undefined2 *puVar10;
  undefined2 *puVar11;
  undefined2 uVar12;
  undefined2 unaff_DS;
  int *local_24;
  int *local_22;
  int local_20;
  int local_1c;
  uint local_1a;
  int local_18;
  undefined1 local_16;
  undefined1 local_15;
  int local_10;
  undefined4 local_8;
  int local_4;
  
  puVar6 = (undefined1 *)*(undefined2 *)0x1188;
  *puVar6 = 0x4d;
  iVar7 = FUN_11bd_5fe2(puVar6 + 1,0x1b);
  if (-1 < iVar7) {
    local_1c = *(int *)(puVar6 + 8);
    iVar7 = FUN_11bd_5d79(local_1c,local_1c);
    if (iVar7 != 0) {
      local_1c = local_1c * 0x10;
      iVar8 = local_1c + -0x1c;
      iVar9 = FUN_11bd_6003(0,iVar7,iVar8);
      if (iVar8 <= iVar9) {
        local_20 = *(int *)(puVar6 + 4);
        local_4 = FUN_11bd_5d79(local_20 * 0x20 + *(int *)(puVar6 + 10) + 0x10,
                                *(undefined2 *)(puVar6 + 0xc));
        if (local_4 != 0) {
          local_20 = local_20 * 0x200;
          if (*(int *)(puVar6 + 2) != 0) {
            local_20 = local_20 + *(int *)(puVar6 + 2) + -0x200;
          }
          local_20 = local_20 - local_1c;
          local_18 = local_4 + 0x10;
          local_1a = 0;
          iVar8 = FUN_11bd_6003(0,local_18,local_20);
          if (local_20 <= iVar8) {
            local_15 = 0x26;
            local_10 = local_4;
            FUN_11bd_26d0(&local_16,&local_16);
            *(undefined2 *)0x2 = *(undefined2 *)0x3;
            puVar10 = (undefined2 *)0x18;
            uVar12 = *(undefined2 *)0xcec;
            puVar11 = (undefined2 *)0x18;
            for (iVar8 = 10; iVar8 != 0; iVar8 = iVar8 + -1) {
              puVar5 = puVar10;
              puVar10 = puVar10 + 1;
              puVar4 = puVar11;
              puVar11 = puVar11 + 1;
              *puVar5 = *puVar4;
            }
            local_8 = (uint *)CONCAT22(iVar7,(uint *)(*(int *)(puVar6 + 0x18) + -0x1c));
            local_1c = *(int *)(puVar6 + 6);
            while (local_1c = local_1c + -1, -1 < local_1c) {
              uVar12 = (undefined2)((ulong)local_8 >> 0x10);
              piVar1 = (int *)(*local_8 + local_1a);
              *piVar1 = *piVar1 + local_18;
              local_8 = (uint *)CONCAT22(uVar12,(uint *)local_8 + 2);
            }
            local_22 = (int *)0x15e8;
            local_24 = (int *)(puVar6 + 0x68);
            while( true ) {
              piVar3 = local_24 + 1;
              *local_24 = *local_22;
              local_22 = local_22 + 1;
              if (*local_24 == -1) break;
              do {
                piVar2 = (int *)((int)local_22 + 1);
                piVar1 = local_22;
                local_24 = piVar3;
                local_22 = piVar2;
              } while ((char)*piVar1 != '\0');
            }
            iVar8 = local_4;
            local_8._0_2_ = FUN_11bd_6907(puVar6,puVar6 + 0x68,&local_1c);
            local_8._2_2_ = iVar8;
            FUN_11bd_5db2(iVar7);
            FUN_11bd_5db2(local_4);
            if (local_8._2_2_ != 0) {
              iVar7 = FUN_1000_0b12(local_1c);
              if (iVar7 != 0) {
                FUN_11bd_6102(local_8._2_2_,(undefined2)local_8,*(undefined2 *)0x9b4,0x15e8,local_1c
                             );
                *(int *)0xf22 = local_1c + 0x15e8;
                *(uint *)0xcde = local_1c + 0x15e9U & 0xfffe;
              }
              FUN_11bd_5db2(local_8._2_2_);
            }
          }
        }
      }
    }
  }
  return;
}



void FUN_11bd_5fac(void)

{
  code *in_stack_00000000;
  
                    // WARNING: Could not recover jumptable at 0x00017b81. Too many branches
                    // WARNING: Treating indirect jump as call
  (*in_stack_00000000)();
  return;
}



void FUN_11bd_5fb3(void)

{
  code *in_stack_00000000;
  
                    // WARNING: Could not recover jumptable at 0x00017b86. Too many branches
                    // WARNING: Treating indirect jump as call
  (*in_stack_00000000)();
  return;
}



void __cdecl16near FUN_11bd_5fb8(void)

{
  code *pcVar1;
  uint uVar2;
  undefined2 unaff_DS;
  byte in_CF;
  
  pcVar1 = (code *)swi(0x21);
  uVar2 = (*pcVar1)();
  *(uint *)0xe70 = uVar2 | -(uint)in_CF;
  return;
}



undefined4 __cdecl16near FUN_11bd_5fca(void)

{
  code *pcVar1;
  byte in_CF;
  undefined4 uVar2;
  
  pcVar1 = (code *)swi(0x21);
  uVar2 = (*pcVar1)();
  return CONCAT22((uint)((ulong)uVar2 >> 0x10) | -(uint)in_CF,(uint)uVar2 | -(uint)in_CF);
}



uint __cdecl16near FUN_11bd_5fe2(void)

{
  code *pcVar1;
  uint uVar2;
  byte in_CF;
  
  pcVar1 = (code *)swi(0x21);
  uVar2 = (*pcVar1)();
  return uVar2 | -(uint)in_CF;
}



void __cdecl16near FUN_11bd_5ff7(void)

{
  code *pcVar1;
  undefined2 unaff_DS;
  
  LOCK();
  *(undefined2 *)0xe70 = 0xffff;
  UNLOCK();
  pcVar1 = (code *)swi(0x21);
  (*pcVar1)();
  return;
}



uint __cdecl16near FUN_11bd_6003(void)

{
  code *pcVar1;
  uint uVar2;
  byte in_CF;
  
  pcVar1 = (code *)swi(0x21);
  uVar2 = (*pcVar1)();
  return uVar2 | -(uint)in_CF;
}



// WARNING: Unable to track spacebase fully for stack

void FUN_11bd_601d(undefined2 param_1)

{
  int iVar1;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  undefined2 in_stack_00000000;
  
  iVar1 = *(int *)0xf50;
  *(undefined2 *)(iVar1 + -2) = param_1;
  *(undefined2 *)(iVar1 + -4) = in_stack_00000000;
  FUN_11bd_22ad();
  return;
}



int __cdecl16near FUN_11bd_6028(byte *param_1,char *param_2)

{
  byte *pbVar1;
  char *pcVar2;
  byte *pbVar3;
  int iVar4;
  uint uVar5;
  char *pcVar6;
  byte *pbVar7;
  undefined2 unaff_DS;
  bool bVar8;
  bool bVar9;
  
  iVar4 = 0;
  uVar5 = 0xffff;
  do {
    if (uVar5 == 0) break;
    uVar5 = uVar5 - 1;
    pcVar2 = param_2;
    param_2 = param_2 + 1;
  } while (*pcVar2 != '\0');
  pcVar6 = (char *)~uVar5;
  bVar8 = param_2 < pcVar6;
  pbVar7 = (byte *)(param_2 + -(int)pcVar6);
  bVar9 = pbVar7 == (byte *)0x0;
  do {
    if (pcVar6 == (char *)0x0) break;
    pcVar6 = pcVar6 + -1;
    pbVar3 = pbVar7;
    pbVar7 = pbVar7 + 1;
    pbVar1 = param_1;
    param_1 = param_1 + 1;
    bVar8 = *pbVar1 < *pbVar3;
    bVar9 = *pbVar1 == *pbVar3;
  } while (bVar9);
  if (!bVar9) {
    iVar4 = (1 - (uint)bVar8) - (uint)(bVar8 != 0);
  }
  return iVar4;
}



char * __cdecl16near FUN_11bd_6054(char *param_1,char *param_2,int param_3)

{
  char *pcVar1;
  char *pcVar2;
  char *pcVar3;
  undefined2 unaff_DS;
  
  pcVar3 = param_1;
  if (param_3 != 0) {
    do {
      pcVar1 = param_2;
      param_2 = param_2 + 1;
      if (*pcVar1 == '\0') break;
      pcVar2 = pcVar3;
      pcVar3 = pcVar3 + 1;
      *pcVar2 = *pcVar1;
      param_3 = param_3 + -1;
    } while (param_3 != 0);
    for (; param_3 != 0; param_3 = param_3 + -1) {
      pcVar1 = pcVar3;
      pcVar3 = pcVar3 + 1;
      *pcVar1 = '\0';
    }
  }
  return param_1;
}



undefined4 __cdecl16near thunk_FUN_11bd_61ee(byte *param_1)

{
  byte *pbVar1;
  byte bVar2;
  uint uVar3;
  byte bVar4;
  int iVar5;
  uint uVar6;
  int iVar7;
  uint uVar8;
  uint uVar9;
  undefined2 unaff_DS;
  bool bVar10;
  
  iVar5 = 0;
  iVar7 = 0;
  do {
    do {
      pbVar1 = param_1;
      param_1 = param_1 + 1;
      bVar2 = *pbVar1;
    } while (bVar2 == 0x20);
  } while (bVar2 == 9);
  if ((bVar2 != 0x2d) && (bVar4 = bVar2, bVar2 != 0x2b)) goto LAB_11bd_620e;
  while( true ) {
    pbVar1 = param_1;
    param_1 = param_1 + 1;
    bVar4 = *pbVar1;
LAB_11bd_620e:
    if ((0x39 < bVar4) || (bVar4 < 0x30)) break;
    uVar8 = iVar7 * 2;
    uVar6 = iVar5 << 1 | (uint)(iVar7 < 0);
    iVar5 = iVar7 << 2;
    uVar9 = iVar7 * 8;
    uVar3 = iVar7 * 10;
    iVar7 = uVar3 + (byte)(bVar4 - 0x30);
    iVar5 = ((uVar6 << 1 | (uint)((int)uVar8 < 0)) << 1 | (uint)(iVar5 < 0)) + uVar6 +
            (uint)CARRY2(uVar9,uVar8) + (uint)CARRY2(uVar3,(uint)(byte)(bVar4 - 0x30));
  }
  if (bVar2 == 0x2d) {
    bVar10 = iVar7 != 0;
    iVar7 = -iVar7;
    iVar5 = -(iVar5 + (uint)bVar10);
  }
  return CONCAT22(iVar5,iVar7);
}



undefined4 __cdecl16near thunk_FUN_11bd_61ee(byte *param_1)

{
  byte *pbVar1;
  byte bVar2;
  uint uVar3;
  byte bVar4;
  int iVar5;
  uint uVar6;
  int iVar7;
  uint uVar8;
  uint uVar9;
  undefined2 unaff_DS;
  bool bVar10;
  
  iVar5 = 0;
  iVar7 = 0;
  do {
    do {
      pbVar1 = param_1;
      param_1 = param_1 + 1;
      bVar2 = *pbVar1;
    } while (bVar2 == 0x20);
  } while (bVar2 == 9);
  if ((bVar2 != 0x2d) && (bVar4 = bVar2, bVar2 != 0x2b)) goto LAB_11bd_620e;
  while( true ) {
    pbVar1 = param_1;
    param_1 = param_1 + 1;
    bVar4 = *pbVar1;
LAB_11bd_620e:
    if ((0x39 < bVar4) || (bVar4 < 0x30)) break;
    uVar8 = iVar7 * 2;
    uVar6 = iVar5 << 1 | (uint)(iVar7 < 0);
    iVar5 = iVar7 << 2;
    uVar9 = iVar7 * 8;
    uVar3 = iVar7 * 10;
    iVar7 = uVar3 + (byte)(bVar4 - 0x30);
    iVar5 = ((uVar6 << 1 | (uint)((int)uVar8 < 0)) << 1 | (uint)(iVar5 < 0)) + uVar6 +
            (uint)CARRY2(uVar9,uVar8) + (uint)CARRY2(uVar3,(uint)(byte)(bVar4 - 0x30));
  }
  if (bVar2 == 0x2d) {
    bVar10 = iVar7 != 0;
    iVar7 = -iVar7;
    iVar5 = -(iVar5 + (uint)bVar10);
  }
  return CONCAT22(iVar5,iVar7);
}



undefined2 __cdecl16near FUN_11bd_6084(byte param_1,int param_2,undefined2 *param_3)

{
  undefined2 uVar1;
  undefined2 uVar2;
  undefined2 uVar3;
  undefined2 uVar4;
  undefined2 uVar5;
  undefined2 unaff_DS;
  bool bVar6;
  undefined4 uVar7;
  undefined1 local_c;
  byte local_b;
  undefined1 local_a;
  undefined1 local_9;
  undefined1 local_8;
  
  local_c = (code)0xcd;
  local_b = param_1;
  bVar6 = param_1 < 0x25;
  if ((param_1 == 0x25) || (bVar6 = param_1 < 0x26, param_1 == 0x26)) {
    local_8 = 0xcb;
    local_9 = 0x44;
    local_a = 0x44;
  }
  else {
    local_a = 0xcb;
  }
  uVar5 = *(undefined2 *)(param_2 + 2);
  uVar4 = *(undefined2 *)(param_2 + 4);
  uVar1 = *(undefined2 *)(param_2 + 8);
  uVar2 = *(undefined2 *)(param_2 + 10);
  uVar7 = (*(code *)&local_c)(0x11bd);
  uVar3 = (undefined2)uVar7;
  *param_3 = uVar3;
  param_3[1] = uVar5;
  param_3[2] = uVar4;
  param_3[3] = (int)((ulong)uVar7 >> 0x10);
  param_3[4] = uVar1;
  param_3[5] = uVar2;
  if (bVar6) {
    FUN_11bd_27de();
    uVar3 = *param_3;
  }
  param_3[6] = (uint)bVar6;
  return uVar3;
}



void __cdecl16near
FUN_11bd_6102(undefined2 param_1,undefined1 *param_2,undefined2 param_3,undefined1 *param_4,
             int param_5)

{
  undefined1 *puVar1;
  undefined1 *puVar2;
  
  for (; param_5 != 0; param_5 = param_5 + -1) {
    puVar2 = param_4;
    param_4 = param_4 + 1;
    puVar1 = param_2;
    param_2 = param_2 + 1;
    *puVar2 = *puVar1;
  }
  return;
}



char * __cdecl16near FUN_11bd_6120(char *param_1,char param_2)

{
  char *pcVar1;
  int iVar2;
  char *pcVar3;
  undefined2 unaff_DS;
  
  iVar2 = -1;
  pcVar3 = param_1;
  do {
    if (iVar2 == 0) break;
    iVar2 = iVar2 + -1;
    pcVar1 = pcVar3;
    pcVar3 = pcVar3 + 1;
  } while (*pcVar1 != '\0');
  iVar2 = -(iVar2 + 1);
  do {
    if (iVar2 == 0) break;
    iVar2 = iVar2 + -1;
    pcVar1 = param_1;
    param_1 = param_1 + 1;
  } while (param_2 != *pcVar1);
  param_1 = param_1 + -1;
  if (*param_1 != param_2) {
    param_1 = (char *)0x0;
  }
  return param_1;
}



char * __cdecl16near FUN_11bd_614a(char *param_1,char *param_2)

{
  char *pcVar1;
  uint uVar2;
  uint uVar3;
  int iVar4;
  char *pcVar5;
  char *pcVar6;
  undefined2 unaff_DS;
  bool bVar7;
  
  uVar2 = 0xffff;
  pcVar5 = param_2;
  do {
    if (uVar2 == 0) break;
    uVar2 = uVar2 - 1;
    pcVar1 = pcVar5;
    pcVar5 = pcVar5 + 1;
  } while (*pcVar1 != '\0');
  if (~uVar2 != 1) {
    uVar2 = ~uVar2 - 2;
    uVar3 = 0xffff;
    pcVar5 = param_1;
    do {
      if (uVar3 == 0) break;
      uVar3 = uVar3 - 1;
      pcVar1 = pcVar5;
      pcVar5 = pcVar5 + 1;
    } while (*pcVar1 != '\0');
    iVar4 = (~uVar3 - 1) - uVar2;
    bVar7 = iVar4 == 0;
    if (~uVar3 - 1 < uVar2 || bVar7) {
LAB_11bd_61a2:
      param_1 = (char *)0x0;
    }
    else {
      do {
        do {
          if (iVar4 == 0) break;
          iVar4 = iVar4 + -1;
          pcVar1 = param_1;
          param_1 = param_1 + 1;
          bVar7 = *param_2 == *pcVar1;
        } while (!bVar7);
        if (!bVar7) goto LAB_11bd_61a2;
        uVar3 = uVar2;
        pcVar6 = param_1;
        pcVar5 = param_2;
        if (uVar2 == 0) break;
        do {
          pcVar5 = pcVar5 + 1;
          if (uVar3 == 0) break;
          uVar3 = uVar3 - 1;
          pcVar1 = pcVar6;
          pcVar6 = pcVar6 + 1;
          bVar7 = *pcVar5 == *pcVar1;
        } while (bVar7);
      } while (!bVar7);
      param_1 = param_1 + -1;
    }
  }
  return param_1;
}



void FUN_11bd_61aa(undefined2 *param_1)

{
  undefined2 unaff_DS;
  undefined4 uVar1;
  
  uVar1 = FUN_11bd_27a4();
  *param_1 = (int)uVar1;
  param_1[1] = (int)((ulong)uVar1 >> 0x10);
  return;
}



void FUN_11bd_61c6(undefined2 *param_1)

{
  undefined2 unaff_DS;
  undefined4 uVar1;
  
  uVar1 = FUN_11bd_27b0();
  *param_1 = (int)uVar1;
  param_1[1] = (int)((ulong)uVar1 >> 0x10);
  return;
}



void __cdecl16near FUN_11bd_61e2(void)

{
  uint in_CX;
  uint uVar1;
  
  for (uVar1 = in_CX & 0xff; uVar1 != 0; uVar1 = uVar1 - 1) {
  }
  return;
}



undefined4 __cdecl16near FUN_11bd_61ee(byte *param_1)

{
  byte *pbVar1;
  byte bVar2;
  uint uVar3;
  byte bVar4;
  int iVar5;
  uint uVar6;
  int iVar7;
  uint uVar8;
  uint uVar9;
  undefined2 unaff_DS;
  bool bVar10;
  
  iVar5 = 0;
  iVar7 = 0;
  do {
    do {
      pbVar1 = param_1;
      param_1 = param_1 + 1;
      bVar2 = *pbVar1;
    } while (bVar2 == 0x20);
  } while (bVar2 == 9);
  if ((bVar2 != 0x2d) && (bVar4 = bVar2, bVar2 != 0x2b)) goto LAB_11bd_620e;
  while( true ) {
    pbVar1 = param_1;
    param_1 = param_1 + 1;
    bVar4 = *pbVar1;
LAB_11bd_620e:
    if ((0x39 < bVar4) || (bVar4 < 0x30)) break;
    uVar8 = iVar7 * 2;
    uVar6 = iVar5 << 1 | (uint)(iVar7 < 0);
    iVar5 = iVar7 << 2;
    uVar9 = iVar7 * 8;
    uVar3 = iVar7 * 10;
    iVar7 = uVar3 + (byte)(bVar4 - 0x30);
    iVar5 = ((uVar6 << 1 | (uint)((int)uVar8 < 0)) << 1 | (uint)(iVar5 < 0)) + uVar6 +
            (uint)CARRY2(uVar9,uVar8) + (uint)CARRY2(uVar3,(uint)(byte)(bVar4 - 0x30));
  }
  if (bVar2 == 0x2d) {
    bVar10 = iVar7 != 0;
    iVar7 = -iVar7;
    iVar5 = -(iVar5 + (uint)bVar10);
  }
  return CONCAT22(iVar5,iVar7);
}



void __cdecl16near FUN_11bd_6250(int param_1)

{
  undefined2 unaff_DS;
  
  *(int *)0x9ba = param_1;
                    // WARNING: Read-only address (ram,0x0001031f) is written
  if ((2 < *(byte *)0x2f) && (uRam0001031f = 0x66, *(char *)0x2e == '\x02')) {
    param_1 = 0x2824;
  }
  *(undefined2 *)0x9bc = *(undefined2 *)(param_1 + -4);
  *(undefined2 *)0x9be = *(undefined2 *)(param_1 + -2);
  return;
}



// WARNING: Stack frame is not setup normally: Input value of stackpointer is not used

undefined2 FUN_11bd_627f(void)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  uint *puVar5;
  undefined2 uVar6;
  undefined1 in_CL;
  undefined2 uVar7;
  undefined2 uVar8;
  uint *puVar9;
  undefined1 *puVar10;
  undefined2 *puVar12;
  undefined1 *puVar13;
  undefined2 unaff_BP;
  undefined2 unaff_SI;
  uint *puVar14;
  undefined2 unaff_DI;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  byte in_AF;
  byte in_TF;
  byte in_IF;
  bool bVar15;
  byte in_NT;
  uint uVar16;
  undefined2 in_CR0;
  undefined4 uVar17;
  undefined2 *puVar11;
  
  puVar10 = (undefined1 *)*(int *)0xcdc;
  *(undefined2 *)0xf88 = in_CR0;
  *(undefined2 *)(puVar10 + -2) = 0x7e5b;
  FUN_11bd_3844();
  *(undefined2 *)(puVar10 + -2) = 0x7e5e;
  FUN_11bd_0c0d();
  *(undefined1 *)0x35 = in_CL;
  *(undefined1 *)0x37 = in_CL;
  *(undefined2 *)(puVar10 + -2) = 0x7e69;
  FUN_11bd_2fa3();
  if (*(char *)0x2e != '\0') {
    *(undefined2 *)(puVar10 + -2) = 0x7e73;
    FUN_11bd_199a();
    if (*(char *)0x2e == '\n') {
      puVar11 = (undefined2 *)(puVar10 + -2);
      puVar10 = puVar10 + -2;
      *puVar11 = 0x7e7d;
      FUN_11bd_64b7();
    }
    if (*(char *)0x2e == '\t') {
      puVar12 = (undefined2 *)(puVar10 + -2);
      puVar10 = puVar10 + -2;
      *puVar12 = 0x7e87;
      FUN_11bd_641d();
    }
    *(undefined2 *)(puVar10 + -2) = 0x7e8a;
    FUN_11bd_016c();
    *(undefined2 *)(puVar10 + -2) = 0x7e8d;
    FUN_11bd_65a6();
    *(undefined2 *)0xac2 = 0x32;
  }
  *(undefined2 *)(puVar10 + -2) = 0xf8a;
  *(undefined2 *)(puVar10 + -4) = 0x7e99;
  FUN_11bd_1280();
  uVar7 = *(undefined2 *)(puVar10 + -2);
  uVar6 = *(undefined2 *)0xcec;
  uVar8 = 10;
  *(undefined2 *)0x10c2 = *(undefined2 *)0xa;
  *(undefined2 *)0x10c4 = *(undefined2 *)&DAT_0000_000c;
  *(undefined1 **)0xf50 = puVar10;
  if (*(char *)0x2e != '\0') {
    *(undefined2 *)0xa = 0x10;
    *(undefined2 *)&DAT_0000_000c = 0x11bd;
    uVar6 = FUN_11bd_0251();
    return uVar6;
  }
  puVar13 = puVar10 + -2;
  *(undefined2 *)(puVar10 + -2) = 0x7ec8;
  uVar17 = FUN_11bd_7290();
  *(int *)(puVar13 + -2) = (int)uVar17;
  *(undefined2 *)(puVar13 + -4) = uVar7;
  *(int *)(puVar13 + -6) = (int)((ulong)uVar17 >> 0x10);
  *(undefined2 *)(puVar13 + -8) = uVar8;
  *(undefined1 **)(puVar13 + -10) = puVar13;
  *(undefined2 *)(puVar13 + -0xc) = unaff_BP;
  *(undefined2 *)(puVar13 + -0xe) = unaff_SI;
  *(undefined2 *)(puVar13 + -0x10) = unaff_DI;
  *(undefined2 *)(puVar13 + -0x12) = unaff_DS;
  bVar15 = true;
  puVar5 = (uint *)0x2f6;
  do {
    puVar9 = puVar5;
    puVar14 = puVar9 + (uint)bVar15 * -2 + 1;
    uVar2 = *puVar9;
    uVar1 = (uint)bVar15;
    uVar3 = *puVar14;
    while (puVar5 = puVar14 + uVar1 * -2 + 1, puVar9 < (uint *)0x2fa) {
      uVar16 = puVar9[1];
      uVar4 = uVar16 - uVar3;
      *(uint *)(puVar13 + -0x14) =
           (uint)(in_NT & 1) * 0x4000 | (uint)SBORROW2(uVar16,uVar3) * 0x800 | (uint)bVar15 * 0x400
           | (uint)(in_IF & 1) * 0x200 | (uint)(in_TF & 1) * 0x100 | (uint)((int)uVar4 < 0) * 0x80 |
           (uint)(uVar4 == 0) * 0x40 | (uint)(in_AF & 1) * 0x10 |
           (uint)((POPCOUNT(uVar4 & 0xff) & 1U) == 0) * 4 | (uint)(uVar16 < uVar3);
      puVar9 = puVar9 + 2;
      uVar16 = *(uint *)(puVar13 + -0x14);
      in_NT = (uVar16 & 0x4000) != 0;
      bVar15 = (uVar16 & 0x400) != 0;
      in_IF = (uVar16 & 0x200) != 0;
      in_TF = (uVar16 & 0x100) != 0;
      in_AF = (uVar16 & 0x10) != 0;
      if (((uVar16 & 0x40) != 0) && (*puVar9 == uVar2)) {
        uVar6 = *(undefined2 *)(puVar13 + -0x12);
        *(uint *)0x56 = uVar3;
        *(uint *)0x58 = uVar2;
        return *(undefined2 *)(puVar13 + -2);
      }
    }
  } while( true );
}



undefined4 __cdecl16near FUN_11bd_62f8(void)

{
  uint uVar1;
  int iVar2;
  int iVar3;
  undefined2 in_AX;
  undefined2 in_DX;
  int *piVar4;
  int *piVar5;
  int *piVar6;
  undefined2 unaff_DS;
  bool bVar7;
  
  bVar7 = true;
  piVar5 = (int *)0x2f6;
  do {
    piVar4 = piVar5;
    piVar6 = piVar4 + (uint)bVar7 * -2 + 1;
    iVar2 = *piVar4;
    uVar1 = (uint)bVar7;
    iVar3 = *piVar6;
    while (piVar5 = piVar6 + uVar1 * -2 + 1, piVar4 < (int *)0x2fa) {
      piVar5 = piVar4 + 1;
      piVar4 = piVar4 + 2;
      bVar7 = bVar7 != false;
      if ((*piVar5 == iVar3) && (*piVar4 == iVar2)) {
        *(int *)0x56 = iVar3;
        *(int *)0x58 = iVar2;
        return CONCAT22(in_DX,in_AX);
      }
    }
  } while( true );
}



int * __cdecl16near FUN_11bd_6328(int *param_1)

{
  int *piVar1;
  undefined2 in_DX;
  int *piVar2;
  undefined2 unaff_DS;
  
  do {
    do {
      piVar2 = param_1 + -2;
      piVar1 = param_1 + -1;
      param_1 = piVar2;
    } while (*piVar1 != *(int *)0x58);
  } while (*piVar2 != *(int *)0x56);
  return (int *)CONCAT22(in_DX,piVar2);
}



void __cdecl16near FUN_11bd_6395(void)

{
  int *piVar1;
  int *piVar2;
  int iVar3;
  undefined4 *puVar4;
  int unaff_SI;
  int *piVar5;
  int *piVar6;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  int iVar7;
  
  piVar6 = (int *)0x6341;
  do {
    piVar5 = piVar6;
    piVar6 = piVar5 + 7;
    if (*piVar6 == 1) break;
  } while (*piVar6 != unaff_SI);
  piVar6 = (int *)0x4a;
  piVar5 = piVar5 + 8;
  for (iVar3 = 6; iVar3 != 0; iVar3 = iVar3 + -1) {
    piVar2 = piVar6;
    piVar6 = piVar6 + 1;
    piVar1 = piVar5;
    piVar5 = piVar5 + 1;
    *piVar2 = *piVar1;
  }
  if (*(char *)0x34 == '\x15') {
    *(undefined1 *)0x34 = 0x7f;
  }
  puVar4 = (undefined4 *)((uint)*(byte *)0x34 * 4);
  iVar7 = (int)((ulong)*puVar4 >> 0x10);
  iVar3 = (int)*puVar4;
  *(int *)0xf86 = iVar7;
  *(int *)0xf84 = iVar3;
  if (iVar7 != *(int *)(iVar3 + -2) || iVar3 != *(int *)(iVar3 + -4)) {
    *(undefined2 *)puVar4 = 0x9f9;
    *(undefined2 *)((int)puVar4 + 2) = unaff_SS;
  }
  LAB_1000_0ef3_2 = *(undefined1 *)0x34;
                    // WARNING: Read-only address (ram,0x0001987f) is written
  uRam0001987f = *(undefined1 *)0x34;
  return;
}



void __cdecl16near FUN_11bd_6400(void)

{
  code *pcVar1;
  int extraout_DX;
  int iVar2;
  undefined2 unaff_DS;
  
  iVar2 = 0;
  pcVar1 = (code *)swi(0xdc);
  (*pcVar1)();
  if ((char)iVar2 != '\0' || (char)((uint)iVar2 >> 8) != '\0') {
    *(int *)0xeca = iVar2 << 6;
    *(int *)0xece = extraout_DX << 6;
  }
  return;
}



// WARNING: Control flow encountered bad instruction data

void FUN_11bd_641d(void)

{
  int iVar1;
  undefined2 unaff_SS;
  undefined1 auStack_8 [4];
  undefined2 uStack_4;
  
  uStack_4 = 0x7ff2;
  FUN_11bd_0be9();
  *(undefined1 **)0xf7a = auStack_8;
  iVar1 = 0x14;
  do {
    iVar1 = iVar1 + -1;
  } while (iVar1 != 0);
  uRam00000469 = unaff_SS;
  puRam00000467 = auStack_8;
  out(0x70,0xf);
  uRam00000000 = 0xea;
  uRam00000001 = 0x85;
  uRam00000002 = 100;
  uRam00000003 = 0xbd;
  DAT_0000_0004 = 0x11;
  out(0x71,9);
  GlobalDescriptorTableRegister(*(undefined2 *)0x8c8);
  InterruptDescriptorTableRegister(*(undefined2 *)0x8d0);
                    // WARNING: Bad instruction - Truncating control flow here
  halt_baddata();
}



// WARNING: Control flow encountered bad instruction data

void FUN_11bd_64b7(void)

{
  byte bVar1;
  undefined2 unaff_SS;
  undefined2 uStack_4;
  
  uStack_4 = 0x808c;
  FUN_11bd_0be9();
  in(0x21);
  out(0x21,0xff);
  bVar1 = in(0xa1);
  out(0xa1,~bVar1);
  out(0x70,0xf);
  uRam00000469 = 0x11bd;
  uRam00000467 = 0x6506;
  out(0x71,10);
  *(undefined2 **)0xf7a = &uStack_4;
  GlobalDescriptorTableRegister(*(undefined2 *)0x8c8);
  InterruptDescriptorTableRegister(*(undefined2 *)0x8d0);
                    // WARNING: Bad instruction - Truncating control flow here
  halt_baddata();
}



void __cdecl16near FUN_11bd_6549(void)

{
  code *pcVar1;
  undefined1 uVar2;
  undefined2 unaff_DS;
  
  if ((*(byte *)0x47 & 1) != 0) {
    pcVar1 = (code *)swi(0x10);
    uVar2 = (*pcVar1)();
    *(undefined1 *)0xa17 = uVar2;
  }
  return;
}



int __cdecl16near FUN_11bd_6558(void)

{
  undefined2 *puVar1;
  undefined2 *puVar2;
  code *pcVar3;
  int iVar4;
  int iVar5;
  int extraout_DX;
  undefined2 in_BX;
  undefined2 *puVar6;
  undefined2 *puVar7;
  undefined2 unaff_ES;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  
  pcVar3 = (code *)swi(0x21);
  iVar4 = (*pcVar3)();
  DAT_1000_12c4 = in_BX;
  DAT_1000_12c6 = unaff_ES;
  if (*(int *)0xa2 == 0) {
    puVar6 = (undefined2 *)0x0;
    (*(code *)*(undefined2 *)0x12c4)();
    iVar4 = extraout_DX;
    if (extraout_DX != 0) {
      *(undefined1 *)0xa16 = 0;
      puVar7 = (undefined2 *)0x98;
      for (iVar5 = 0xc; iVar5 != 0; iVar5 = iVar5 + -1) {
        puVar2 = puVar7;
        puVar7 = puVar7 + 1;
        puVar1 = puVar6;
        puVar6 = puVar6 + 1;
        *puVar2 = *puVar1;
      }
      *(undefined2 *)0xa4 = 0;
      *(undefined2 *)0xa6 = 0;
      FUN_11bd_4ff2();
    }
  }
  return iVar4;
}



void __cdecl16near FUN_11bd_65a6(void)

{
  code *pcVar1;
  int iVar2;
  
  iVar2 = FUN_11bd_6558();
  if (iVar2 == 0) {
    FUN_11bd_5680();
  }
  DAT_11bd_12ca = 0x11bd;
  pcVar1 = (code *)swi(0x21);
  (*pcVar1)();
  return;
}



uint __cdecl16near FUN_11bd_65c3(uint param_1)

{
  uint uVar1;
  undefined2 unaff_DS;
  
  uVar1 = *(int *)0xcde + 1U & 0xfffe;
  if ((!CARRY2(param_1,uVar1)) && (param_1 + uVar1 <= *(uint *)0xce6)) {
    *(uint *)0xcde = param_1 + uVar1;
    return uVar1;
  }
  return 0xffff;
}



// WARNING: Removing unreachable block (ram,0x000181df)
// WARNING: Removing unreachable block (ram,0x000181da)
// WARNING: Removing unreachable block (ram,0x000181e4)

undefined2 __cdecl16near FUN_11bd_65e1(void)

{
  undefined4 in_EAX;
  undefined2 unaff_DS;
  
  *(undefined4 *)0x10f2 = CONCAT22((int)((ulong)in_EAX >> 0x10),3);
  return 3;
}



// WARNING: Removing unreachable block (ram,0x0001821b)

byte __cdecl16near FUN_11bd_6618(void)

{
  undefined4 *puVar1;
  byte bVar2;
  ulong uVar3;
  byte in_AC;
  byte in_ID;
  ulong uVar4;
  
  uVar4 = (ulong)(in_ID & 1) * 0x200000 | (ulong)(in_AC & 1) * 0x40000;
  uVar3 = uVar4 ^ 0x240000;
  bVar2 = 3;
  uVar4 = ((ulong)((uVar3 & 0x200000) != 0) * 0x200000 | (ulong)((uVar3 & 0x40000) != 0) * 0x40000)
          ^ uVar4;
  if (((uVar4 >> 0x12 & 1) != 0) && (bVar2 = 4, uVar4 >> 0x13 != 0)) {
    puVar1 = (undefined4 *)cpuid_Version_info(1);
    bVar2 = (byte)((ulong)*puVar1 >> 8) & 0xf;
  }
  return bVar2;
}



int __cdecl16near FUN_11bd_6655(void)

{
  code *pcVar1;
  char cVar2;
  char extraout_DL;
  
  pcVar1 = (code *)swi(0x21);
  (*pcVar1)();
  pcVar1 = (code *)swi(0x21);
  cVar2 = extraout_DL;
  (*pcVar1)();
  return (int)cVar2;
}



undefined1 __cdecl16near FUN_11bd_6667(void)

{
  out(0x94,0xff);
  out(0x96,0);
  return 0;
}



undefined1 __cdecl16near FUN_11bd_6672(void)

{
  code *pcVar1;
  undefined1 uVar2;
  byte bVar3;
  int in_BX;
  undefined2 unaff_ES;
  undefined2 unaff_DS;
  bool bVar4;
  
  bVar4 = *(byte *)0x34 < 0x15;
  uVar2 = 0;
  if (*(byte *)0x34 == 0x15) {
    pcVar1 = (code *)swi(0x15);
    (*pcVar1)();
    uVar2 = 0;
    if (!bVar4) {
      bVar3 = (byte)*(undefined2 *)(in_BX + 2);
      if ((0xdf < bVar3) &&
         (((char)bVar3 < -7 ||
          ((bVar3 == 0xfc && ('\x03' < (char)((uint)*(undefined2 *)(in_BX + 2) >> 8))))))) {
        uVar2 = *(undefined1 *)(in_BX + 5);
      }
    }
  }
  return uVar2;
}



undefined1 __cdecl16near FUN_11bd_66a2(void)

{
  undefined1 uVar1;
  
  uVar1 = 0;
  if (DAT_f000_fffe == -0x1f) {
    uVar1 = 0xe1;
  }
  return uVar1;
}



undefined2 __cdecl16near FUN_11bd_66b9(void)

{
  byte bVar1;
  int in_CX;
  
  FUN_11bd_0c0d();
  bVar1 = FUN_11bd_0733();
  if (((bVar1 & 0x80) == 0) && (((byte)((uint)-in_CX >> 8) & 0x40) != bVar1)) {
    return 1;
  }
  return 0;
}



undefined2 __cdecl16near FUN_11bd_66d4(void)

{
  return 0;
}



void __cdecl16near
FUN_11bd_66e1(undefined2 param_1,undefined1 *param_2,undefined1 *param_3,int param_4)

{
  undefined1 *puVar1;
  undefined1 *puVar2;
  undefined2 unaff_DS;
  
  for (; param_4 != 0; param_4 = param_4 + -1) {
    puVar2 = param_3;
    param_3 = param_3 + 1;
    puVar1 = param_2;
    param_2 = param_2 + 1;
    *puVar2 = *puVar1;
  }
  return;
}



// WARNING: Globals starting with '_' overlap smaller symbols at the same address

void __cdecl16near FUN_11bd_6701(uint param_1,undefined2 *param_2,uint param_3)

{
  undefined2 *puVar1;
  uint uVar2;
  
  if (param_3 != 0) {
    FUN_11bd_0290();
    param_1 = param_1 & 0xfff8;
    _DAT_0000_00e2 = *(undefined2 *)(param_1 + 2);
    DAT_0000_00e4 = *(undefined1 *)(param_1 + 4);
    DAT_0000_00e7 = *(undefined1 *)(param_1 + 7);
    uVar2 = param_3 >> 1;
    if (uVar2 != 0) {
      for (; uVar2 != 0; uVar2 = uVar2 - 1) {
        puVar1 = param_2;
        param_2 = param_2 + 1;
        *puVar1 = 0;
      }
    }
    if ((param_3 & 1) != 0) {
      *(undefined1 *)param_2 = 0;
    }
    FUN_11bd_0929();
  }
  return;
}



void FUN_11bd_674c(void)

{
  int iVar1;
  code *in_stack_00000000;
  
  iVar1 = 6;
  do {
    iVar1 = iVar1 + -1;
  } while (iVar1 != 0);
                    // WARNING: Could not recover jumptable at 0x0001832a. Too many branches
                    // WARNING: Treating indirect jump as call
  (*in_stack_00000000)();
  return;
}



undefined4 __cdecl16near FUN_11bd_6869(int param_1,int param_2)

{
  byte *pbVar1;
  byte *pbVar2;
  byte *pbVar3;
  int iVar4;
  uint uVar5;
  byte *pbVar6;
  
  iVar4 = 0x2c;
  pbVar6 = (byte *)0x6761;
  while( true ) {
    pbVar1 = pbVar6;
    pbVar2 = pbVar6 + 2;
    pbVar3 = pbVar6 + 4;
    pbVar6 = pbVar6 + 5;
    if ((*(int *)pbVar2 == param_2) && (*(int *)pbVar1 == param_1)) break;
    iVar4 = iVar4 + -1;
    if (iVar4 == 0) {
      iVar4 = 0;
      uVar5 = 0;
LAB_11bd_6899:
      return CONCAT22(uVar5,iVar4);
    }
  }
  uVar5 = (uint)*pbVar3;
  iVar4 = (uint)*pbVar6 << 4;
  goto LAB_11bd_6899;
}



undefined4 __cdecl16near FUN_11bd_689e(void)

{
  uint *puVar1;
  int iVar2;
  int iVar3;
  uint uVar4;
  uint *puVar5;
  bool bVar6;
  
  puVar5 = (uint *)0x0;
  iVar2 = 0x4000;
  iVar3 = 0;
  uVar4 = 0;
  do {
    puVar1 = puVar5 + 1;
    bVar6 = CARRY2(uVar4,*puVar5);
    uVar4 = uVar4 + *puVar5;
    puVar5 = puVar5 + 2;
    iVar3 = iVar3 + *puVar1 + (uint)bVar6;
    iVar2 = iVar2 + -1;
  } while (iVar2 != 0);
  return CONCAT22(iVar3,uVar4);
}



undefined4 __cdecl16near FUN_11bd_68b9(void)

{
  uint *puVar1;
  int iVar2;
  int iVar3;
  uint uVar4;
  uint *puVar5;
  bool bVar6;
  
  puVar5 = (uint *)0x8000;
  iVar2 = 0x2000;
  iVar3 = 0;
  uVar4 = 0;
  do {
    puVar1 = puVar5 + 1;
    bVar6 = CARRY2(uVar4,*puVar5);
    uVar4 = uVar4 + *puVar5;
    puVar5 = puVar5 + 2;
    iVar3 = iVar3 + *puVar1 + (uint)bVar6;
    iVar2 = iVar2 + -1;
  } while (iVar2 != 0);
  return CONCAT22(iVar3,uVar4);
}



bool __cdecl16near FUN_11bd_68c2(void)

{
  uint in_CR0;
  
  return (in_CR0 & 4) == 0;
}



undefined2 __cdecl16near FUN_11bd_68ec(void)

{
  code *pcVar1;
  undefined2 uVar2;
  undefined2 in_BX;
  undefined2 unaff_DS;
  
  uVar2 = 1;
  if (2 < *(byte *)0xcee) {
    pcVar1 = (code *)swi(0x21);
    uVar2 = in_BX;
    (*pcVar1)();
  }
  return uVar2;
}



// WARNING: Unable to track spacebase fully for stack

void __cdecl16far FUN_11bd_6907(int param_1,undefined2 param_2)

{
  int iVar1;
  undefined2 uVar2;
  int iVar3;
  int iVar4;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  int in_stack_00000002;
  undefined1 auStack_a [4];
  
  puRam00016905 = auStack_a;
  *(undefined1 *)0x80 = 0;
  *(undefined2 *)0x81 = 0x6956;
  *(undefined2 *)0x83 = 0x11bd;
  *(undefined2 *)0x85 = param_2;
  *(undefined2 *)0x87 = unaff_SS;
  *(undefined1 *)0x89 = 0xd;
                    // WARNING: Read-only address (ram,0x00016905) is written
  iVar1 = *(int *)(param_1 + 0x16);
  uVar2 = *(undefined2 *)(param_1 + 0x14);
  iVar4 = in_stack_00000002 + 0x10 + *(int *)(param_1 + 0xe);
  iVar3 = *(int *)(param_1 + 0x10);
  *(int *)(iVar3 + -2) = in_stack_00000002;
  *(int *)(iVar3 + -2) = iVar1 + in_stack_00000002 + 0x10;
  *(undefined2 *)(iVar3 + -4) = uVar2;
  return;
}



void __cdecl16near FUN_11bd_698b(void)

{
  byte bVar1;
  undefined2 extraout_DX;
  int iVar2;
  undefined2 unaff_DS;
  
  if ((*(byte *)0x47 & 0x80) == 0) {
    iVar2 = 8;
    bVar1 = FUN_11bd_0ef4();
    if (iVar2 == 0) {
      *(byte *)0x47 = *(byte *)0x47 | bVar1;
      *(undefined2 *)0xdec = extraout_DX;
    }
  }
  return;
}



void FUN_11bd_69ac(void)

{
  FUN_11bd_0ef4();
  return;
}



undefined4 __cdecl16near FUN_11bd_69c7(void)

{
  undefined1 uVar1;
  undefined1 extraout_AH;
  char in_CL;
  
  FUN_11bd_0c0d();
  uVar1 = in(0x92);
  return CONCAT22(-(uint)(in_CL == '\0'),CONCAT11(extraout_AH,uVar1));
}



uint __cdecl16near FUN_11bd_69e0(void)

{
  undefined1 *puVar1;
  undefined1 *puVar2;
  uint uVar3;
  uint uVar4;
  int iVar5;
  undefined1 *puVar6;
  undefined1 *puVar7;
  undefined2 unaff_SS;
  bool bVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  
  bVar8 = true;
  uVar9 = FUN_11bd_69c7();
  uVar3 = (uint)uVar9;
  if (bVar8) {
    out(0x92,(byte)uVar9 ^ 2);
    uVar10 = FUN_11bd_69c7();
    uVar3 = (uint)uVar10;
    uVar4 = (CONCAT11((char)uVar10,(byte)uVar9) ^ 2) & 0x303;
    if ((char)(uVar4 >> 8) == (char)uVar4) {
      uVar3 = uVar3 ^ 2;
      out(0x92,(char)uVar3);
      bVar8 = (int)((ulong)uVar10 >> 0x10) == (int)((ulong)uVar9 >> 0x10);
      if (!bVar8) {
        uVar3 = FUN_11bd_69c7();
        if (bVar8) {
          puVar6 = (undefined1 *)0x69b5;
          puVar7 = (undefined1 *)0xbe9;
          for (iVar5 = 9; iVar5 != 0; iVar5 = iVar5 + -1) {
            puVar2 = puVar7;
            puVar7 = puVar7 + 1;
            puVar1 = puVar6;
            puVar6 = puVar6 + 1;
            *puVar2 = *puVar1;
          }
          puVar7 = (undefined1 *)0xbfb;
          for (iVar5 = 9; iVar5 != 0; iVar5 = iVar5 + -1) {
            puVar2 = puVar7;
            puVar7 = puVar7 + 1;
            puVar1 = puVar6;
            puVar6 = puVar6 + 1;
            *puVar2 = *puVar1;
          }
          *(undefined1 *)0x3f = 0xff;
        }
      }
    }
  }
  return uVar3;
}



void __cdecl16near FUN_11bd_6a2d(char *param_1,char *param_2)

{
  char *pcVar1;
  char cVar2;
  char *pcVar3;
  char *pcVar4;
  undefined2 unaff_DS;
  
  FUN_11bd_6a68();
  if (param_2 == (char *)0x0) {
    pcVar4 = (char *)0xa2c;
    pcVar3 = (char *)0xa2c;
    while( true ) {
      pcVar1 = param_1;
      param_1 = param_1 + 1;
      cVar2 = *pcVar1;
      if (cVar2 == '\0') break;
      pcVar1 = pcVar4;
      pcVar4 = pcVar4 + 1;
      *pcVar1 = cVar2;
      if (cVar2 == '\\') {
        pcVar3 = pcVar4;
      }
    }
    param_2 = (char *)0xa7c;
  }
  else {
    pcVar3 = (char *)0xa2c;
  }
  do {
    pcVar1 = param_2;
    param_2 = param_2 + 1;
    cVar2 = *pcVar1;
    pcVar1 = pcVar3;
    pcVar3 = pcVar3 + 1;
    *pcVar1 = cVar2;
  } while (cVar2 != '\0');
  return;
}



void __cdecl16near FUN_11bd_6a68(void)

{
  uint unaff_DS;
  
  *(uint *)0x1586 = unaff_DS;
  *(undefined2 *)0x1584 = 0x98;
  *(undefined2 *)0x158e = 0x20;
  *(undefined2 *)0x158c = 0x70;
  *(undefined2 *)0x158a = 0x1bc7;
  *(undefined2 *)0x1590 = 9;
  *(long *)0x1598 = (ulong)unaff_DS * 0x10 + 0x98e;
  *(undefined2 *)0x1596 = 1;
  return;
}



// WARNING (jumptable): Unable to track spacebase fully for stack
// WARNING: Unable to track spacebase fully for stack
// WARNING: Globals starting with '_' overlap smaller symbols at the same address

undefined4 FUN_11bd_6ad7(void)

{
  uint *puVar1;
  undefined2 *puVar2;
  undefined4 *puVar3;
  undefined2 uVar4;
  undefined2 *puVar5;
  code *pcVar6;
  undefined3 uVar7;
  undefined2 in_AX;
  uint uVar8;
  int iVar9;
  uint uVar10;
  undefined2 in_DX;
  int iVar11;
  undefined4 *puVar12;
  undefined4 *puVar13;
  undefined2 *puVar14;
  undefined4 *puVar15;
  undefined2 uVar16;
  undefined2 unaff_SS;
  bool bVar17;
  undefined4 uVar18;
  char *in_stack_00000000;
  undefined2 uStack_1a;
  
  puVar14 = &uStack_1a;
  uStack_1a = 0;
  if (*in_stack_00000000 < '\0') {
    iVar11 = 0;
  }
  else {
    iVar11 = 10;
  }
  uVar16 = (undefined2)((ulong)ram0x000117c2 >> 0x10);
  puVar15 = (undefined4 *)ram0x000117c2;
  puVar12 = puVar15;
  for (iVar9 = 0xd; iVar9 != 0; iVar9 = iVar9 + -1) {
    puVar3 = puVar12;
    puVar12 = (undefined4 *)((int)puVar12 + 2);
    puVar2 = puVar14;
    puVar14 = puVar14 + 1;
    *(undefined2 *)puVar3 = *puVar2;
  }
  puVar13 = (undefined4 *)((int)puVar14 + iVar11);
  *puVar12 = *puVar13;
  puVar12[1] = puVar13[1];
  puVar12[2] = puVar13[2];
  puVar12[3] = puVar13[3];
  if (iVar11 != 0) {
    return CONCAT22(in_DX,in_AX);
  }
  if (*(int *)(puVar15 + 6) != 0xd) {
                    // WARNING: Could not recover jumptable at 0x0001872a. Too many branches
                    // WARNING: Treating indirect jump as call
    uVar18 = (*(code *)(ulong)(uint)s_premature_EOF_1000_17b6._8_2_)();
    return uVar18;
  }
  uVar7 = SegmentLimit(*(undefined2 *)((int)puVar15 + 0x22));
  uVar8 = (uint)uVar7;
  uVar10 = *(uint *)((int)puVar15 + 0x1e);
  if (*(uint *)((int)puVar15 + 0x1e) <= uVar8 && uVar8 != uVar10) {
    puVar12 = puVar15;
    if (*(int *)((int)puVar15 + 0x1a) == 0) {
      if ((4 < uVar8 - uVar10) && (*(int *)(puVar15 + 1) != 0)) {
        uVar7 = SegmentLimit(*(int *)(puVar15 + 1));
        iVar11 = *(int *)*(undefined2 *)((int)puVar15 + 0x1e);
        uVar10 = 2;
        if ((*(uint *)((int)puVar15 + 10) < (uint)uVar7) &&
           ((((iVar11 == 0x489 || (iVar11 == 0x429)) || (uVar10 = 3, iVar11 == 0x4c6)) ||
            ((iVar11 == 0xc80 || (uVar10 = 4, iVar11 == 0x4c7)))))) {
          puVar1 = (uint *)((int)puVar15 + 0x1e);
          bVar17 = CARRY2(*puVar1,uVar10);
          *puVar1 = *puVar1 + uVar10;
          pcVar6 = (code *)swi(0x31);
          uVar18 = (*pcVar6)();
          if (!bVar17) {
            *(undefined2 *)*(undefined2 *)((int)puVar15 + 10) = (int)((ulong)uVar18 >> 0x10);
            pcVar6 = (code *)swi(0x31);
            (*pcVar6)();
LAB_11bd_6c46:
            uVar4 = *(undefined2 *)((int)puVar15 + 2);
            puVar5 = (undefined2 *)*(undefined2 *)((int)puVar15 + 0xe);
            puVar14 = (undefined2 *)((int)puVar15 + 0x26);
            *(undefined2 *)((int)puVar12 + -2) = uVar16;
            uVar16 = *(undefined2 *)((int)puVar12 + -2);
            for (iVar11 = 0x15; iVar11 != 0; iVar11 = iVar11 + -1) {
              puVar2 = puVar14;
              puVar14 = puVar14 + -1;
              puVar5[-1] = *puVar2;
              puVar5 = puVar5 + -1;
            }
            return CONCAT22(puVar5[9],puVar5[0xb]);
          }
        }
      }
    }
    else if (*(int *)*(undefined2 *)((int)puVar15 + 0x1e) == 0x5eff) {
      uVar8 = (uint)(char)((int *)*(undefined2 *)((int)puVar15 + 0x1e))[1];
      bVar17 = CARRY2(uVar8,*(uint *)(puVar15 + 3));
      uVar10 = *(uint *)(puVar15 + 3);
      uVar4 = *(undefined2 *)((int)puVar15 + 2);
      pcVar6 = (code *)swi(0x31);
      (*pcVar6)();
      if (!bVar17) {
        *(undefined2 *)(uVar8 + uVar10 + 2) = *(undefined2 *)0xa9c;
        pcVar6 = (code *)swi(0x31);
        (*pcVar6)();
        if (!bVar17) goto LAB_11bd_6c46;
      }
    }
  }
                    // WARNING: Could not recover jumptable at 0x00018798. Too many branches
                    // WARNING: Treating indirect jump as call
  uVar18 = (*(code *)(ulong)(uint)s_premature_EOF_1000_17b6._8_2_)();
  return uVar18;
}



void __cdecl16near FUN_11bd_6c74(void)

{
  code *pcVar1;
  byte bVar2;
  undefined2 unaff_DS;
  
  pcVar1 = (code *)swi(0x2f);
  bVar2 = (*pcVar1)();
  if (bVar2 != 0x80) {
    bVar2 = 0;
  }
  *(byte *)0x36 = *(byte *)0x36 | bVar2;
  return;
}



undefined2 __cdecl16near FUN_11bd_6c84(void)

{
  code *pcVar1;
  uint uVar2;
  int iVar3;
  char extraout_AH;
  uint uVar4;
  uint uVar5;
  uint in_BX;
  undefined2 unaff_ES;
  undefined2 unaff_DS;
  undefined4 uVar6;
  
  iVar3 = FUN_11bd_6c74();
  if (iVar3 == 0) {
    return 0;
  }
  pcVar1 = (code *)swi(0x2f);
  (*pcVar1)();
  *(uint *)0xaec = in_BX;
  *(undefined2 *)0xaee = unaff_ES;
  (*(code *)*(undefined2 *)0xaec)();
  if ((byte)(extraout_AH - 1U) == 0 ||
      SBORROW1(extraout_AH,'\x01') != (int)((uint)(byte)(extraout_AH - 1U) << 8) < 0) {
    FUN_11bd_14ac();
    uVar5 = 0;
  }
  else {
    if (in_BX < 0x204) {
                    // WARNING: Read-only address (ram,0x00011df5) is written
      uRam00011df5 = 0x40;
    }
    uVar4 = (*(code *)*(undefined2 *)0xaec)();
    uVar5 = uVar4 - 0x274;
    if (uVar4 < 0x274) {
      uVar5 = 0;
    }
  }
  *(uint *)0xece = uVar5;
  if (uVar5 != 0) {
    if (*(uint *)0xecc <= uVar5) {
      uVar5 = *(uint *)0xecc;
    }
    *(uint *)0xecc = uVar5;
    uVar6 = (*(code *)*(undefined2 *)0xaec)();
    if ((int)uVar6 != 0) {
      *(undefined2 *)0xadc = (int)((ulong)uVar6 >> 0x10);
      uVar6 = (*(code *)*(undefined2 *)0xaec)();
      if ((int)uVar6 != 0) {
        uVar4 = in_BX + 0xf;
        uVar5 = (int)((ulong)uVar6 >> 0x10) + (uint)(0xfff0 < in_BX);
        iVar3 = 4;
        do {
          uVar2 = uVar5 & 1;
          uVar5 = uVar5 >> 1;
          uVar4 = uVar4 >> 1 | (uint)(uVar2 != 0) << 0xf;
          iVar3 = iVar3 + -1;
        } while (iVar3 != 0);
        *(uint *)0x98 = uVar4;
        *(uint *)0x9a = uVar5;
        *(undefined2 *)0xaa6 = 0x3e5a;
        *(undefined2 *)0xaa4 = 0x3e25;
        uVar5 = *(uint *)0xecc;
        *(undefined2 *)0xaa8 = (int)((ulong)uVar5 * 0x400);
        *(undefined2 *)0xaaa = (int)((ulong)uVar5 * 0x400 >> 0x10);
        return 1;
      }
      FUN_11bd_1df7();
    }
  }
  *(undefined2 *)0xecc = 0;
                    // WARNING: Read-only address (ram,0x00011df5) is written
  return 1;
}



void FUN_11bd_6d30(void)

{
  code *in_stack_00000000;
  
                    // WARNING: Could not recover jumptable at 0x0001890b. Too many branches
                    // WARNING: Treating indirect jump as call
  (*in_stack_00000000)();
  return;
}



undefined1 __cdecl16near FUN_11bd_6d9c(void)

{
  code *pcVar1;
  undefined1 uVar2;
  int iVar3;
  undefined1 in_CL;
  undefined1 extraout_DH;
  undefined2 unaff_SI;
  undefined2 unaff_DI;
  undefined2 unaff_ES;
  undefined2 unaff_DS;
  
  pcVar1 = (code *)swi(0x2f);
  iVar3 = (*pcVar1)();
  uVar2 = 0;
  if (iVar3 == 0) {
                    // WARNING: Read-only address (ram,0x00016d64) is written
                    // WARNING: Read-only address (ram,0x00016e86) is written
                    // WARNING: Read-only address (ram,0x00016e88) is written
    uRam00016d64 = unaff_SI;
    uRam00016e86 = unaff_DI;
    uRam00016e88 = unaff_ES;
    *(undefined1 *)0xc44 = extraout_DH;
    uVar2 = in_CL;
  }
  return uVar2;
}



bool __cdecl16near FUN_11bd_6dc2(undefined2 param_1,undefined2 *param_2)

{
  code *pcVar1;
  undefined2 uVar2;
  undefined2 uVar3;
  undefined2 uVar4;
  undefined2 uVar5;
  undefined2 uVar6;
  undefined2 uVar7;
  undefined2 unaff_SS;
  char cVar8;
  
  cVar8 = '\0';
  uVar3 = param_2[2];
  uVar4 = param_2[3];
  uVar6 = param_2[4];
  uVar7 = param_2[5];
  uVar5 = param_2[1];
  pcVar1 = (code *)swi(0x31);
  uVar2 = (*pcVar1)();
  *param_2 = uVar2;
  param_2[1] = uVar5;
  param_2[2] = uVar3;
  param_2[3] = uVar4;
  param_2[4] = uVar6;
  param_2[5] = uVar7;
  return cVar8 == '\0';
}



// WARNING: Removing unreachable block (ram,0x00018b91)

undefined2 __cdecl16near
FUN_11bd_6e20(uint param_1,uint param_2,undefined2 param_3,undefined2 param_4,uint param_5,
             int param_6)

{
  code *pcVar1;
  uint uVar2;
  char cVar3;
  undefined2 uVar4;
  uint uVar5;
  undefined2 uVar6;
  int iVar7;
  ulong in_EDX;
  ulong uVar8;
  byte bVar9;
  int iVar10;
  undefined4 in_ESI;
  undefined4 uVar11;
  undefined2 *puVar12;
  undefined1 *puVar13;
  int *piVar14;
  undefined2 *in_EDI;
  undefined2 *puVar15;
  uint unaff_SS;
  uint unaff_DS;
  bool bVar16;
  undefined1 uVar17;
  undefined1 uVar18;
  undefined2 in_stack_00000020;
  int iStack_4;
  uint uStack_2;
  
  while( true ) {
                    // WARNING: Read-only address (ram,0x00016e14) is written
    uVar11 = 0;
                    // WARNING: Read-only address (ram,0x00016e18) is written
                    // WARNING: Read-only address (ram,0x00016e1c) is written
    uVar8 = 0;
    uVar5 = 0;
    puVar12 = (undefined2 *)0xc20;
    bVar16 = false;
    uRam00016e14 = in_ESI;
    puRam00016e18 = in_EDI;
    uRam00016e1c = in_EDX;
    for (iVar7 = 0x11; iVar7 != 0; iVar7 = iVar7 + -1) {
      puVar15 = puVar12;
      puVar12 = puVar12 + 1;
      *puVar15 = 0;
    }
    *(undefined2 *)0xc30 = 0x40;
    pcVar1 = (code *)swi(0x21);
    uStack_2 = unaff_DS;
    uVar4 = (*pcVar1)();
    if (bVar16) goto LAB_11bd_715b;
    *(undefined2 *)0xc34 = uVar4;
    bVar16 = false;
    in_EDI = (undefined2 *)((ulong)uVar5 << 0x10);
    for (iVar7 = 0x1000; iVar7 != 0; iVar7 = iVar7 + -1) {
      puVar12 = (undefined2 *)in_EDI;
      in_EDI = (undefined2 *)CONCAT22((int)((ulong)in_EDI >> 0x10),puVar12 + 1);
      *puVar12 = 0;
    }
    iVar10 = -0x2e2;
    pcVar1 = (code *)swi(0x21);
    uVar4 = (*pcVar1)();
    if (bVar16) goto LAB_11bd_715b;
    param_1 = 0x8a47;
    FUN_11bd_7522();
    bVar16 = 0xffd5 < *(uint *)0xf50;
    s_premature_EOF_1000_17b6._12_2_ = *(uint *)0xf50 + 0x2a;
    unaff_DS = 0x1000;
    param_1 = 0x1000;
    FUN_11bd_6dc2();
    if (!bVar16) break;
    uStack_2 = 0x89e4;
    cVar3 = FUN_11bd_22ad();
    iVar7 = (int)uVar11;
    *(char *)(iVar10 + iVar7) = *(char *)(iVar10 + iVar7) + cVar3;
    *(char *)(iVar10 + iVar7) = *(char *)(iVar10 + iVar7) + cVar3;
    *(char *)(iVar10 + iVar7) = *(char *)(iVar10 + iVar7) + cVar3;
    *(char *)(iVar10 + iVar7) = *(char *)(iVar10 + iVar7) + cVar3;
    *(char *)(iVar10 + iVar7) = *(char *)(iVar10 + iVar7) + cVar3;
    *(char *)(iVar10 + iVar7) = *(char *)(iVar10 + iVar7) + cVar3;
    in_EDX = uVar8;
    in_ESI = uVar11;
    unaff_DS = unaff_SS;
  }
  *(undefined2 *)0xac2 = 0x71fc;
  *(undefined2 *)0xc32 = 0x1000;
  DAT_11bd_04be = unaff_SS;
  *(undefined2 *)0xc2a = uVar4;
  *(undefined2 *)0x9b2 = uVar4;
  *(undefined2 *)0xc2c = *(undefined2 *)0x2c;
  *(undefined2 *)&DAT_0000_0008 = 0x1000;
  s_premature_EOF_1000_17b6[10] = -0x43;
  s_premature_EOF_1000_17b6[0xb] = '\x11';
  puVar13 = &stack0xfffa;
  uVar4 = (undefined2)((ulong)in_EDI >> 0x10);
  pcVar1 = (code *)swi(0x31);
  DAT_1000_17c4 = unaff_SS;
  (*pcVar1)();
  puVar13[6] = puVar13[6] & 0xbf;
  pcVar1 = (code *)swi(0x31);
  (*pcVar1)();
  puVar15 = (undefined2 *)CONCAT22(uVar4,&param_1);
  pcVar1 = (code *)swi(0x31);
  uVar5 = unaff_DS;
  (*pcVar1)();
  *(byte *)((undefined2 *)puVar15 + 3) = *(byte *)((undefined2 *)puVar15 + 3) & 0xbf;
  pcVar1 = (code *)swi(0x31);
  (*pcVar1)();
  uVar17 = (undefined1 *)0xfff7 < &stack0x000a;
  uVar4 = 0x6d3d;
  pcVar1 = (code *)swi(0x31);
  (*pcVar1)();
  pcVar1 = (code *)swi(0x31);
  uRam00016d52 = (*pcVar1)();
                    // WARNING: Read-only address (ram,0x00016d4e) is written
                    // WARNING: Read-only address (ram,0x00016d50) is written
                    // WARNING: Read-only address (ram,0x00016d54) is written
                    // WARNING: Read-only address (ram,0x00016d58) is written
                    // WARNING: Read-only address (ram,0x00016d52) is written
  pcVar1 = (code *)swi(0x31);
  iRam00016d4e = iVar7;
  uRam00016d50 = uVar5;
  puRam00016d54 = puVar15;
  uRam00016d58 = uVar4;
  (*pcVar1)();
  if (!(bool)uVar17) {
                    // WARNING: Read-only address (ram,0x00016d5a) is written
                    // WARNING: Read-only address (ram,0x00016d5c) is written
                    // WARNING: Read-only address (ram,0x00016d5e) is written
                    // WARNING: Read-only address (ram,0x00016d62) is written
    pcVar1 = (code *)swi(0x31);
    iRam00016d5a = iVar7;
    uRam00016d5c = uVar5;
    puRam00016d5e = puVar15;
    uRam00016d62 = uVar4;
    (*pcVar1)();
                    // WARNING: Read-only address (ram,0x00016d66) is written
                    // WARNING: Read-only address (ram,0x00016d6a) is written
    uRam00016d66 = uVar8;
    iRam00016d6a = iVar7;
    *(int *)0xc42 = iVar7;
    param_2 = 0x8b18;
    FUN_11bd_7606();
    *(undefined2 *)0xc26 = 0x11bd;
    *(undefined2 *)0xaf8 = 0x11bd;
    *(uint *)0xc28 = unaff_SS;
    *(uint *)0x2c = unaff_SS;
    *(undefined2 *)0x18 = 0x11bd;
    *(undefined2 *)0x1c = 0x11bd;
    *(undefined2 *)0x22 = 0x7364;
    *(undefined2 *)0x24 = 0x11bd;
    *(uint *)&DAT_0000_000c = unaff_SS;
    *(uint *)0x3c = unaff_SS;
    *(uint *)0x998 = unaff_SS;
    *(uint *)0x44 = unaff_SS;
    bVar9 = 0x11;
    do {
      pcVar1 = (code *)swi(0x31);
      (*pcVar1)();
      bVar9 = bVar9 - 1;
    } while (5 < bVar9);
    pcVar1 = (code *)swi(0x31);
    (*pcVar1)();
    pcVar1 = (code *)swi(0x31);
    (*pcVar1)();
    pcVar1 = (code *)swi(0x31);
    (*pcVar1)();
    pcVar1 = (code *)swi(0x31);
    (*pcVar1)();
    uVar8 = 0x7584;
    pcVar1 = (code *)swi(0x31);
    (*pcVar1)();
                    // WARNING: Read-only address (ram,0x00016e14) is written
                    // WARNING: Read-only address (ram,0x00016e18) is written
                    // WARNING: Read-only address (ram,0x00016e1c) is written
    pcVar1 = (code *)swi(0x31);
    uVar5 = (*pcVar1)();
    *(uint *)0xc48 = uVar5;
    iVar7 = 0;
    do {
      iVar7 = iVar7 + 1;
      uVar2 = uVar5 & 1;
      uVar5 = uVar5 >> 1;
    } while (uVar2 == 0);
    *(int *)0xc46 = iVar7;
    bVar16 = false;
    pcVar1 = (code *)swi(0x31);
    iVar7 = (*pcVar1)();
    unaff_DS = unaff_SS;
    if (!bVar16) {
      *(int *)0xc2e = iVar7;
      uVar8 = 0xffff;
      pcVar1 = (code *)swi(0x31);
      (*pcVar1)();
      if (!bVar16) {
        uVar5 = iVar7 + *(int *)0xc48;
        *(uint *)0xc38 = uVar5;
        bVar16 = false;
        pcVar1 = (code *)swi(0x31);
        (*pcVar1)();
        if (!bVar16) {
          bVar16 = CARRY2(uVar5,*(uint *)0xc48);
          iVar7 = uVar5 + *(uint *)0xc48;
          *(int *)0xc3e = iVar7;
          pcVar1 = (code *)swi(0x31);
          (*pcVar1)();
          if (!bVar16) {
            piVar14 = &iStack_4;
            unaff_DS = iVar7 + *(int *)0xc48;
            *(uint *)0xc3c = unaff_DS;
            *(uint *)0xaf4 = unaff_DS;
            *(uint *)0xa00 = unaff_DS;
            *(uint *)0xa08 = unaff_DS;
            pcVar1 = (code *)swi(0x31);
            (*pcVar1)();
            uStack_2 = 0x8c02;
            iVar7 = FUN_11bd_1f24();
            *piVar14 = iVar7 + -1;
            uVar5 = *(uint *)0xa10;
            piVar14[1] = (int)((ulong)uVar5 * 0x10);
            *(char *)(piVar14 + 2) = (char)((ulong)uVar5 * 0x10 >> 0x10);
            puVar15 = (undefined2 *)ZEXT24(&stack0x0000);
            pcVar1 = (code *)swi(0x31);
            (*pcVar1)();
            *(uint *)0x5680 = unaff_SS;
            *(undefined2 *)0x3ea8 = 0x1000;
            *(uint *)0x403 = unaff_DS;
            *(undefined2 *)0x401 = 0x5692;
            *(undefined1 *)0x400 = 0xea;
            piVar14 = (int *)0x7a0;
            do {
              piVar14[1] = unaff_DS;
              piVar14[3] = unaff_DS;
              piVar14 = piVar14 + 4;
            } while (*piVar14 != 0);
            pcVar1 = (code *)swi(0x31);
            param_1 = unaff_DS;
            (*pcVar1)();
            iVar7 = 0x10;
            do {
              bVar16 = false;
              uVar8 = (ulong)(uint)(iVar7 << 2);
              pcVar1 = (code *)swi(0x31);
              (*pcVar1)();
              puVar12 = (undefined2 *)puVar15;
              if (bVar16) goto LAB_11bd_715b;
              do {
                do {
                  bVar9 = (char)iVar7 + 1;
                  iVar7 = CONCAT11((char)((uint)iVar7 >> 8),bVar9);
                } while (bVar9 == 0x1b);
              } while ((((bVar9 == 0x1c) || (bVar9 == 0x23)) || (bVar9 == 0x24)) ||
                      ((bVar9 == 0x2f || (bVar9 == 0x16))));
              bVar16 = bVar9 < 0x2e;
            } while (bVar9 < 0x2f);
            uVar8 = 0xc9e;
            pcVar1 = (code *)swi(0x31);
            (*pcVar1)();
            if (!bVar16) {
              pcVar1 = (code *)swi(0x31);
              (*pcVar1)();
              pcVar1 = (code *)swi(0x31);
              (*pcVar1)();
              *puVar12 = 0x1fff;
              uVar5 = *(uint *)0xc34;
              puVar12[1] = (int)((ulong)uVar5 * 0x10);
              *(char *)(puVar12 + 2) = (char)((ulong)uVar5 * 0x10 >> 0x10);
              param_6 = param_6 + *(int *)0xc48;
              *(int *)0xc34 = param_6;
              *(int *)0xaa2 = param_6;
              pcVar1 = (code *)swi(0x31);
              param_5 = unaff_SS;
              (*pcVar1)();
              *(int *)0xa9c = param_6 + *(int *)0xc48;
              uVar11 = 0xffff;
              pcVar1 = (code *)swi(0x31);
              (*pcVar1)();
              pcVar1 = (code *)swi(0x31);
              (*pcVar1)();
              uVar18 = (undefined1 *)0xfff7 < &stack0x001a;
              in_stack_00000020 = 0x8ce9;
              FUN_11bd_7419();
              LOCK();
              uVar17 = *(undefined1 *)0x980;
              *(undefined1 *)0x980 = 0;
              uVar8 = CONCAT31((int3)((ulong)uVar11 >> 8),uVar17);
              UNLOCK();
              pcVar1 = (code *)swi(0x21);
              uVar4 = (*pcVar1)();
              unaff_DS = unaff_SS;
              if (!(bool)uVar18) {
                *(undefined2 *)0xc4c = uVar4;
                *(undefined1 *)0x980 = (char)uVar8;
                param_1 = 0x1000;
                uVar4 = thunk_FUN_11bd_75be();
                *(undefined2 *)0xaa4 = 0x571d;
                *(undefined2 *)0xaa6 = 0x56f4;
                return uVar4;
              }
            }
          }
        }
      }
    }
  }
LAB_11bd_715b:
  uVar4 = (undefined2)uVar8;
  param_1 = 0x20;
  FUN_11bd_22ad();
  *(byte *)(param_2 >> 3) = *(byte *)(param_2 >> 3) | 0x80;
  bVar9 = *(byte *)0x980;
  uVar5 = param_2;
  if (bVar9 < 3) {
    *(undefined1 *)0x980 = 2;
    uVar4 = CONCAT11(3,(char)uVar4);
    uStack_2 = param_2;
    pcVar1 = (code *)swi(0x21);
    (*pcVar1)();
    *(byte *)0x980 = bVar9;
    uVar5 = uStack_2;
  }
  if (uVar5 == *(uint *)0xc3c) {
    pcVar1 = (code *)swi(0x31);
    uVar6 = (*pcVar1)();
    *(undefined2 *)0xc24 = uVar6;
  }
  pcVar1 = (code *)swi(0x31);
  (*pcVar1)();
  return uVar4;
}



undefined4 __cdecl16near FUN_11bd_7160(uint param_1)

{
  byte bVar1;
  code *pcVar2;
  undefined2 uVar3;
  undefined2 in_CX;
  undefined2 extraout_DX;
  undefined2 unaff_DS;
  
  *(byte *)(param_1 >> 3) = *(byte *)(param_1 >> 3) | 0x80;
  bVar1 = *(byte *)0x980;
  if (bVar1 < 3) {
    *(undefined1 *)0x980 = 2;
    pcVar2 = (code *)swi(0x21);
    (*pcVar2)();
    *(byte *)0x980 = bVar1;
  }
  if (param_1 == *(uint *)0xc3c) {
    pcVar2 = (code *)swi(0x31);
    uVar3 = (*pcVar2)();
    *(undefined2 *)0xc24 = uVar3;
  }
  pcVar2 = (code *)swi(0x31);
  (*pcVar2)();
  return CONCAT22(in_CX,extraout_DX);
}



void __cdecl16near FUN_11bd_71a5(void)

{
  undefined2 unaff_DS;
  int iStack_14;
  int iStack_12;
  
  iStack_14 = *(int *)0xcec;
  *(int *)0x5a = (*(int *)0x9b6 - iStack_14) + 0x7d4;
  iStack_12 = iStack_14;
  FUN_11bd_7364(0x21,&iStack_14);
  return;
}



undefined2 FUN_11bd_7290(void)

{
  undefined2 *puVar1;
  undefined2 uVar2;
  code *pcVar3;
  char cVar4;
  int iVar5;
  uint uVar6;
  undefined2 uVar7;
  int extraout_DX;
  int in_BX;
  int unaff_SI;
  undefined2 *puVar8;
  undefined2 *puVar9;
  undefined2 *puVar10;
  undefined2 unaff_ES;
  undefined2 uVar11;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  undefined2 uVar12;
  byte bVar13;
  bool bVar14;
  byte in_AF;
  byte in_TF;
  byte in_IF;
  byte in_NT;
  byte in_stack_0000000c;
  undefined2 *in_stack_0000000e;
  undefined2 *in_stack_00000012;
  undefined1 auStack_54 [2];
  undefined2 local_52;
  undefined2 *local_46;
  undefined2 local_36;
  undefined2 local_32;
  undefined2 local_2e;
  undefined2 *puStack_a;
  undefined2 *puStack_8;
  uint uStack_6;
  
  while( true ) {
    *(undefined1 **)0xf50 = auStack_54;
    bVar13 = auStack_54 < (undefined1 *)0x80;
    FUN_11bd_2d52();
    FUN_11bd_3986();
    iVar5 = FUN_1000_0b12();
    if (iVar5 == 0) {
      FUN_11bd_22ad();
      FUN_11bd_13ad();
      pcVar3 = (code *)swi(0x21);
      (*pcVar3)();
      cVar4 = FUN_11bd_6ad7();
      *(int *)(in_BX + unaff_SI) = *(int *)(in_BX + unaff_SI) + (uint)bVar13;
      *(char *)(in_BX + unaff_SI) = *(char *)(in_BX + unaff_SI) + cVar4;
      *(char *)(in_BX + unaff_SI) = *(char *)(in_BX + unaff_SI) + cVar4;
      *(char *)(in_BX + unaff_SI) = *(char *)(in_BX + unaff_SI) + cVar4;
      *(char *)(in_BX + unaff_SI) = *(char *)(in_BX + unaff_SI) + cVar4;
      *(char *)(in_BX + unaff_SI) = *(char *)(in_BX + unaff_SI) + cVar4;
      *(char *)(in_BX + unaff_SI) = *(char *)(in_BX + unaff_SI) + cVar4;
      *(char *)(in_BX + unaff_SI) = *(char *)(in_BX + unaff_SI) + cVar4;
      *(char *)(in_BX + unaff_SI) = *(char *)(in_BX + unaff_SI) + cVar4;
      *(char *)(in_BX + unaff_SI) = *(char *)(in_BX + unaff_SI) + cVar4;
      *(char *)(in_BX + unaff_SI) = *(char *)(in_BX + unaff_SI) + cVar4;
      *(char *)(in_BX + unaff_SI) = *(char *)(in_BX + unaff_SI) + cVar4;
      *(char *)(in_BX + unaff_SI) = *(char *)(in_BX + unaff_SI) + cVar4;
      *(char *)(in_BX + unaff_SI) = *(char *)(in_BX + unaff_SI) + cVar4;
      *(char *)(in_BX + unaff_SI) = *(char *)(in_BX + unaff_SI) + cVar4;
      *(char *)(in_BX + unaff_SI) = *(char *)(in_BX + unaff_SI) + cVar4;
      *(char *)(in_BX + unaff_SI) = *(char *)(in_BX + unaff_SI) + cVar4;
      *(char *)(in_BX + unaff_SI) = *(char *)(in_BX + unaff_SI) + cVar4;
      *(char *)(in_BX + unaff_SI) = *(char *)(in_BX + unaff_SI) + cVar4;
      *(char *)(in_BX + unaff_SI) = *(char *)(in_BX + unaff_SI) + cVar4;
      *(char *)(in_BX + unaff_SI) = *(char *)(in_BX + unaff_SI) + cVar4;
      *(char *)(in_BX + unaff_SI) = *(char *)(in_BX + unaff_SI) + cVar4;
      *(char *)(in_BX + unaff_SI) = *(char *)(in_BX + unaff_SI) + cVar4;
      *(char *)(in_BX + unaff_SI) = *(char *)(in_BX + unaff_SI) + cVar4;
      uVar7 = DAT_11bd_04be;
      uStack_6 = (uint)(in_NT & 1) * 0x4000 | (uint)(in_IF & 1) * 0x200 | (uint)(in_TF & 1) * 0x100
                 | 0x40 | (uint)(in_AF & 1) * 0x10 | 4;
      iVar5 = *(int *)0xc4a;
      *(int *)0xc4a = *(int *)0xc4a + -0x200;
      puStack_8 = (undefined2 *)(iVar5 + -0x32);
      uVar12 = (undefined2)((ulong)in_stack_0000000e >> 0x10);
      puStack_a = (undefined2 *)in_stack_0000000e;
      puVar8 = puStack_a + 2;
      iVar5 = 8;
      puVar9 = puStack_8;
      do {
        puVar10 = puVar9;
        puVar1 = puVar8;
        puVar8 = puVar8 + 1;
        *puVar10 = *puVar1;
        puVar10[1] = 0;
        iVar5 = iVar5 + -1;
        puVar9 = puVar10 + 2;
      } while (iVar5 != 0);
      puVar10[2] = 0;
      uVar2 = *in_stack_0000000e;
      puVar10[3] = puStack_a[1];
      puVar10[4] = uVar2;
      puVar10[5] = 0;
      puVar10[6] = 0;
      uVar6 = (uint)in_stack_0000000c;
      puVar8 = (undefined2 *)(uVar6 * 4);
      uVar12 = *(undefined2 *)0xc2e;
      if ((uVar6 - 8 < 0x27) && (*(char *)(uVar6 + 0x10be) != '\0')) {
        puVar8 = puVar8 + 0x7b5;
        uVar12 = DAT_11bd_04be;
      }
      puVar10[7] = *puVar8;
      puVar10[8] = puVar8[1];
      puVar10[9] = puStack_8;
      puVar10[10] = 0x1000;
      bVar14 = false;
      pcVar3 = (code *)swi(0x31);
      (*pcVar3)();
      uVar2 = DAT_11bd_04be;
      uVar7 = 0;
      if (!bVar14) {
        iVar5 = *(int *)0xc4a;
        puVar9 = (undefined2 *)(iVar5 + 0x1ce);
        uVar11 = (undefined2)((ulong)in_stack_00000012 >> 0x10);
        *in_stack_00000012 = *(undefined2 *)(iVar5 + 0x1f2);
        puVar8 = (undefined2 *)in_stack_00000012 + 2;
        ((undefined2 *)in_stack_00000012)[1] = *(undefined2 *)(iVar5 + 0x1f0);
        uVar7 = *(undefined2 *)(iVar5 + 0x1ee);
        iVar5 = 8;
        do {
          puVar1 = puVar8;
          puVar8 = puVar8 + 1;
          *puVar1 = *puVar9;
          puVar9 = puVar9 + 2;
          iVar5 = iVar5 + -1;
          uVar12 = uVar2;
        } while (iVar5 != 0);
      }
      *(int *)0xc4a = *(int *)0xc4a + 0x200;
      return uVar7;
    }
    iVar5 = FUN_11bd_243e();
    *(uint *)0xc4a = iVar5 + 0x800U & 0xfffe;
    if ((*(char *)0xc44 != '\0') || (FUN_11bd_0ef4(), extraout_DX == 0)) break;
    FUN_11bd_22ad();
    unaff_SI = extraout_DX;
  }
  pcVar3 = (code *)swi(0x21);
  (*pcVar3)();
  pcVar3 = (code *)swi(0x21);
  DAT_1000_12c4 = in_BX;
  DAT_1000_12c6 = unaff_ES;
  (*pcVar3)();
  *(undefined2 *)0xac2 = 0x7322;
  FUN_11bd_6e20();
  FUN_11bd_4b37();
  FUN_11bd_2d8b();
  *local_46 = local_36;
  local_46[1] = local_32;
  local_46[2] = local_2e;
  *(undefined1 **)0xf50 = auStack_54;
  return local_52;
}



undefined2 __cdecl16far FUN_11bd_7364(byte param_1,undefined2 *param_2,undefined2 *param_3)

{
  undefined2 *puVar1;
  undefined2 uVar2;
  code *pcVar3;
  uint uVar4;
  undefined2 uVar5;
  int iVar6;
  int iVar7;
  undefined2 *puVar8;
  undefined2 *puVar9;
  undefined2 *puVar10;
  undefined2 uVar11;
  undefined2 uVar12;
  bool bVar13;
  
  uVar5 = DAT_11bd_04be;
  iVar7 = *(int *)0xc4a;
  *(int *)0xc4a = *(int *)0xc4a + -0x200;
  uVar12 = (undefined2)((ulong)param_2 >> 0x10);
  puVar8 = (undefined2 *)param_2 + 2;
  iVar6 = 8;
  puVar9 = (undefined2 *)(iVar7 + -0x32);
  do {
    puVar10 = puVar9;
    puVar1 = puVar8;
    puVar8 = puVar8 + 1;
    *puVar10 = *puVar1;
    puVar10[1] = 0;
    iVar6 = iVar6 + -1;
    puVar9 = puVar10 + 2;
  } while (iVar6 != 0);
  puVar10[2] = 0;
  uVar2 = *param_2;
  puVar10[3] = ((undefined2 *)param_2)[1];
  puVar10[4] = uVar2;
  puVar10[5] = 0;
  puVar10[6] = 0;
  uVar4 = (uint)param_1;
  puVar8 = (undefined2 *)(uVar4 * 4);
  uVar12 = *(undefined2 *)0xc2e;
  if ((uVar4 - 8 < 0x27) && (*(char *)(uVar4 + 0x10be) != '\0')) {
    puVar8 = puVar8 + 0x7b5;
    uVar12 = DAT_11bd_04be;
  }
  puVar10[7] = *puVar8;
  puVar10[8] = puVar8[1];
  puVar10[9] = (undefined2 *)(iVar7 + -0x32);
  puVar10[10] = 0x1000;
  bVar13 = false;
  pcVar3 = (code *)swi(0x31);
  (*pcVar3)();
  uVar2 = DAT_11bd_04be;
  uVar5 = 0;
  if (!bVar13) {
    iVar7 = *(int *)0xc4a;
    puVar9 = (undefined2 *)(iVar7 + 0x1ce);
    uVar11 = (undefined2)((ulong)param_3 >> 0x10);
    *param_3 = *(undefined2 *)(iVar7 + 0x1f2);
    puVar8 = (undefined2 *)param_3 + 2;
    ((undefined2 *)param_3)[1] = *(undefined2 *)(iVar7 + 0x1f0);
    uVar5 = *(undefined2 *)(iVar7 + 0x1ee);
    iVar7 = 8;
    do {
      puVar1 = puVar8;
      puVar8 = puVar8 + 1;
      *puVar1 = *puVar9;
      puVar9 = puVar9 + 2;
      iVar7 = iVar7 + -1;
      uVar12 = uVar2;
    } while (iVar7 != 0);
  }
  *(int *)0xc4a = *(int *)0xc4a + 0x200;
  return uVar5;
}



undefined2 __cdecl16near FUN_11bd_7419(void)

{
  undefined2 uVar1;
  code *pcVar2;
  undefined2 uVar3;
  undefined2 in_CX;
  undefined2 extraout_DX;
  undefined2 unaff_DS;
  bool bVar4;
  
  bVar4 = false;
  uVar1 = *(undefined2 *)0xc32;
  pcVar2 = (code *)swi(0x31);
  (*pcVar2)();
  uVar3 = 0;
  if (!bVar4) {
    *(undefined1 *)0xf6e = 0xea;
    *(undefined2 *)0xf6f = extraout_DX;
    *(undefined2 *)0xf71 = in_CX;
    uVar3 = in_CX;
  }
  return uVar3;
}



void __cdecl16near FUN_11bd_7522(undefined2 param_1,undefined2 param_2,int param_3)

{
  code *pcVar1;
  char cVar2;
  uint uVar3;
  int iVar4;
  code *in_BX;
  undefined2 unaff_DS;
  
  pcVar1 = (code *)swi(0x2f);
  uVar3 = (*pcVar1)();
  if ((((uVar3 & 0x7f) != 0) && ((char)uVar3 == '\x03')) && ((byte)(uVar3 >> 8) < 10)) {
    pcVar1 = (code *)swi(0x2f);
    cVar2 = (*pcVar1)();
    if (cVar2 == -0x80) {
      pcVar1 = (code *)swi(0x2f);
      (*pcVar1)();
      param_3 = (*in_BX)();
      param_3 = param_3 + -1;
      if ((param_3 == 0) && (iVar4 = (*(code *)0x0)(0x11bd,0,1,0,0), iVar4 == 1)) {
        pcVar1 = (code *)swi(0x2f);
        uRam00016d4b = (*pcVar1)();
                    // WARNING: Read-only address (ram,0x00016d4b) is written
        (*(code *)0x0)();
        (*(code *)0x0)();
        return;
      }
    }
    param_3 = 0x21;
    FUN_11bd_22ad();
    *(char *)0xc45 = *(char *)0xc45 + '\x01';
    return;
  }
                    // WARNING: Read-only address (ram,0x00016d4b) is written
  return;
}



void __cdecl16far thunk_FUN_11bd_75be(void)

{
  FUN_11bd_75be();
  return;
}



void __cdecl16far FUN_11bd_759b(void)

{
  int in_CX;
  uint in_DX;
  byte in_BL;
  byte *unaff_DI;
  undefined2 unaff_ES;
  undefined2 unaff_DS;
  bool bVar1;
  
  while( true ) {
    in_BL = in_BL * '\x02';
    if ((in_DX & 0x9300) != 0) {
      in_BL = in_BL | 1;
    }
    bVar1 = SCARRY2(in_DX,*(int *)0xc48);
    in_DX = in_DX + *(int *)0xc48;
    if (bVar1) break;
    in_CX = in_CX + -1;
    if (in_CX == 0) {
      *unaff_DI = in_BL;
      FUN_11bd_759b();
      return;
    }
  }
  return;
}



void __cdecl16far FUN_11bd_75be(void)

{
  FUN_11bd_759b();
  return;
}



void __cdecl16far FUN_11bd_7606(void)

{
  code *pcVar1;
  undefined2 in_CX;
  undefined4 in_EDX;
  byte bVar2;
  uint uVar3;
  undefined4 *unaff_DI;
  undefined2 unaff_ES;
  
  uVar3 = 0;
  do {
    pcVar1 = (code *)swi(0x31);
    (*pcVar1)();
    *unaff_DI = in_EDX;
    *(undefined2 *)(unaff_DI + 1) = in_CX;
    unaff_DI = (undefined4 *)((int)unaff_DI + 6);
    uVar3 = uVar3 + 1;
  } while (uVar3 < 0x100);
  bVar2 = 0;
  do {
    pcVar1 = (code *)swi(0x31);
    (*pcVar1)();
    *unaff_DI = in_EDX;
    *(undefined2 *)(unaff_DI + 1) = in_CX;
    unaff_DI = (undefined4 *)((int)unaff_DI + 6);
    bVar2 = bVar2 + 1;
  } while (bVar2 < 0x20);
  return;
}



void __cdecl16near FUN_11bd_7670(void)

{
  int iVar1;
  undefined2 unaff_DS;
  
  iVar1 = 0x2cf2;
  if (*(char *)0x2e == '\v') {
    if ((*(byte *)0x47 & 0x80) == 0) goto LAB_11bd_7684;
  }
  else {
    if ((*(byte *)0x47 & 0x80) == 0) {
      return;
    }
    DAT_11bd_1137 = 0xe9;
    DAT_11bd_1138 = 0xe275;
  }
  iVar1 = 0x2cf9;
LAB_11bd_7684:
  DAT_1000_0f7b = iVar1 + -0xf7d;
  DAT_1000_0f7a = 0xe9;
  return;
}



void __cdecl16near FUN_11bd_76ab(void)

{
  code *pcVar1;
  int iVar2;
  undefined2 unaff_SI;
  undefined2 unaff_DI;
  undefined2 unaff_SS;
  
  iVar2 = iRam0000019c;
  if ((iRam0000019c == *(int *)0x56) && (iRam0000019e == *(int *)0x58)) {
    iRam0000019c = 0x7750;
    iRam0000019e = 0x11bd;
  }
  pcVar1 = (code *)swi(0x67);
  (*pcVar1)(iVar2);
  iRam0000019e = unaff_DI;
  iRam0000019c = unaff_SI;
  return;
}



undefined2 __cdecl16near FUN_11bd_76db(void)

{
  uint *puVar1;
  undefined2 *puVar2;
  undefined4 *puVar3;
  undefined4 *puVar4;
  undefined2 *puVar5;
  code *pcVar6;
  long lVar7;
  byte bVar8;
  char cVar9;
  char extraout_AH;
  char extraout_AH_00;
  undefined2 uVar10;
  char extraout_AH_01;
  char extraout_AH_02;
  uint uVar11;
  char extraout_AH_03;
  uint uVar12;
  undefined4 uVar13;
  undefined1 uVar14;
  int iVar15;
  int iVar16;
  undefined2 extraout_DX;
  int extraout_DX_00;
  uint extraout_DX_01;
  undefined4 in_EBX;
  undefined2 *puVar17;
  undefined4 *puVar18;
  undefined2 *puVar19;
  uint unaff_ES;
  uint unaff_SS;
  uint unaff_DS;
  bool bVar20;
  
  FUN_11bd_698b();
  pcVar6 = (code *)swi(0x21);
  (*pcVar6)();
  uVar12 = unaff_ES;
  if (((((unaff_ES != *(uint *)0x58) && (*(int *)0xb == 0x4d4d)) && (*(int *)0xe == 0x5858)) &&
      ((*(char *)0xa == 'E' && (*(char *)0xd == 'X')))) && (*(char *)0x11 == '0')) {
    bVar20 = false;
    if (((*(byte *)0x47 & 0x80) == 0) && (bVar20 = false, (*(byte *)0x14 & 2) == 0)) {
      pcVar6 = (code *)swi(0x67);
      (*pcVar6)();
      bVar20 = extraout_AH == '\0';
      if (!bVar20) {
        in_EBX = CONCAT22((int)((ulong)in_EBX >> 0x10),1);
        pcVar6 = (code *)swi(0x67);
        (*pcVar6)();
        if (extraout_AH_00 == '\0') {
          DAT_11bd_0f09 = extraout_DX;
        }
        goto LAB_11bd_7756;
      }
    }
    FUN_11bd_66d4();
    if (bVar20) goto LAB_11bd_7740;
  }
LAB_11bd_7756:
  uVar14 = (undefined1)uVar12;
  FUN_11bd_76ab();
  if (extraout_AH_01 != '\0') {
LAB_11bd_7740:
    iVar15 = FUN_11bd_66d4();
    FUN_11bd_2adb();
    uVar10 = 0;
    if (iVar15 != 0) {
      uVar10 = 0xffff;
    }
    return uVar10;
  }
  pcVar6 = (code *)swi(0x67);
  (*pcVar6)();
  if (extraout_AH_02 != '\0') goto LAB_11bd_7740;
  *(undefined1 *)0x50 = (char)in_EBX;
  *(undefined1 *)0x51 = uVar14;
  *(undefined1 *)0x2e = 0xb;
  FUN_11bd_30d8();
  FUN_11bd_3844();
  if (0x601 < *(uint *)0xdec) {
    *(undefined2 *)0xdee = 4;
    *(undefined2 *)0xdf0 = 0xfc00;
    *(undefined2 *)0xdf2 = 0x801;
  }
  uVar12 = CONCAT11(*(undefined1 *)0x15,*(byte *)0x47 & 0x80 | *(byte *)0xa16) & 0x20ff;
  FUN_11bd_5ad6 = (byte)uVar12 | (byte)(uVar12 >> 8);
  puVar17 = (undefined2 *)0x0;
  cVar9 = FUN_11bd_0ef4();
  if (((extraout_DX_00 == 0) || ((unaff_ES = unaff_DS, 499 < *(uint *)0x0 && (cVar9 != '\x02')))) ||
     (((*(byte *)0x14 & 0x10) == 0 && (*(char *)0xa16 != '\0')))) {
    FUN_11bd_7b34();
    bVar8 = FUN_11bd_5ad6;
    if (((uint)in_EBX < 4) || (*(byte *)0xdff = FUN_11bd_5ad6, bVar8 == 0)) {
      if (0x2fff < *(uint *)0xecc) {
        *(undefined2 *)0xecc = 0x3000;
      }
      if ((uint)in_EBX < 0x301) goto LAB_11bd_7854;
      uVar12 = 0x3000;
    }
    else {
LAB_11bd_7854:
      FUN_11bd_7b50();
      uVar12 = extraout_DX_01;
    }
    *(uint *)0xece = uVar12;
    uVar11 = uVar12 + 0x2fff;
    if (0xd000 < uVar12) {
      uVar11 = 0xef00;
      *(undefined2 *)0xece = 0xef00;
    }
    unaff_DS = unaff_SS;
    if (*(char *)0xdff != '\0') goto LAB_11bd_7872;
  }
  else {
    puVar19 = (undefined2 *)0x98;
    *(bool *)0xdff = 0x40000 < *(ulong *)0x0;
    for (iVar15 = 0xc; iVar15 != 0; iVar15 = iVar15 + -1) {
      puVar5 = puVar19;
      puVar19 = puVar19 + 1;
      puVar2 = puVar17;
      puVar17 = puVar17 + 1;
      *puVar5 = *puVar2;
    }
    *(undefined2 *)0xeca = (int)(*(ulong *)0x98 >> 6);
    *(int *)0xece = (int)(*(ulong *)0x9c >> 6) - *(int *)0xeca;
    if ((extraout_DX_00 != *(int *)0xa2) || ((*(byte *)0x47 & 0x80) == 0)) goto LAB_11bd_78d1;
LAB_11bd_7872:
    uVar11 = 0x2000;
    *(undefined1 *)0xdff = 1;
  }
  uVar11 = uVar11 & 0xf000;
  *(undefined1 *)0xe00 = (char)(uVar11 >> 8);
  iVar15 = -(unaff_DS * 0x10 + *(int *)0xcde & 0xfff);
  iVar15 = CONCAT11((char)((uint)iVar15 >> 8) + '\x10',(char)iVar15);
  FUN_1000_0b12(iVar15 + uVar11,iVar15);
  iVar15 = FUN_11bd_65c3();
  if (iVar15 == -1) {
    iVar15 = FUN_11bd_22ad(0x17);
  }
  iVar15 = (iVar15 + uVar11 >> 4) + unaff_ES;
  if ((char)iVar15 != '\0') {
    uVar11 = 0x18;
    iVar15 = FUN_11bd_22ad();
  }
  *(int *)0xaa = iVar15;
  *(int *)0xdf4 = iVar15;
  puVar17 = (undefined2 *)0x0;
  for (uVar11 = uVar11 >> 1; uVar11 != 0; uVar11 = uVar11 - 1) {
    puVar2 = puVar17;
    puVar17 = puVar17 + 1;
    *puVar2 = 0;
  }
LAB_11bd_78d1:
  if ((*(char *)0xdff != '\0') && (*(byte *)0xa16 = *(byte *)0xa16 | 1, (*(byte *)0x11d2 & 1) == 0))
  {
    *(undefined2 *)0xecc = 0xef00;
  }
  uVar13 = CONCAT22((int)((ulong)in_EBX >> 0x10),0x10);
  lVar7 = (ulong)unaff_DS * 0x10;
  iVar15 = (int)((ulong)lVar7 >> 0x10);
  uVar11 = (uint)lVar7;
  puVar1 = (uint *)0xd34;
  uVar12 = *puVar1;
  *puVar1 = *puVar1 + uVar11;
  *(int *)0xd36 = *(int *)0xd36 + iVar15 + (uint)CARRY2(uVar12,uVar11);
  puVar1 = (uint *)0xd3c;
  uVar12 = *puVar1;
  *puVar1 = *puVar1 + uVar11;
  *(int *)0xd3e = *(int *)0xd3e + iVar15 + (uint)CARRY2(uVar12,uVar11);
  puVar1 = (uint *)0xd40;
  uVar12 = *puVar1;
  *puVar1 = *puVar1 + uVar11;
  *(int *)0xd42 = *(int *)0xd42 + iVar15 + (uint)CARRY2(uVar12,uVar11);
  *(int *)0x91a = uVar11 + 0xd74;
  *(char *)0x91c = (char)((ulong)lVar7 >> 0x10) + (0xf28b < uVar11);
  iVar15 = CONCAT11((char)((uint)*(undefined2 *)0xaa >> 8) + '\x01',(char)*(undefined2 *)0xaa);
  pcVar6 = (code *)swi(0x67);
  (*pcVar6)();
  if (extraout_AH_03 != '\0') {
    FUN_11bd_2adb();
    FUN_11bd_22ad();
  }
  *(undefined4 *)0xd5a = uVar13;
  uVar12 = 0x1000;
  *(undefined2 *)0xeca = 0x1000;
  if (*(char *)0xe00 == '\0') {
    *(undefined2 *)0xeca = (int)(*(ulong *)0x98 >> 6);
    *(undefined2 *)0xece = (int)(*(ulong *)0x9c >> 6);
    uVar12 = *(uint *)0xaa;
    uVar13 = *(undefined4 *)(uVar12 >> 6);
    unaff_SS = unaff_DS;
  }
  else {
    if (*(char *)0xdff != '\0') {
      uVar12 = 0x1040;
      *(undefined2 *)0xeca = 0x1040;
    }
    *(undefined2 *)0xac = (int)((ulong)uVar12 * 0x40);
    *(undefined2 *)0xae = (int)((ulong)uVar12 * 0x40 >> 0x10);
    uVar12 = *(int *)0xece + *(int *)0xeca;
    if ((*(char *)0xdff == '\0') && (0x3fff < uVar12)) {
      uVar12 = 0x4000;
    }
    *(uint *)0xece = uVar12;
    if ((*(byte *)0x47 & 1) != 0) {
      uVar12 = FUN_11bd_0ef4();
    }
    *(uint *)0xa8 = uVar12;
    FUN_11bd_7bb6();
    iVar16 = (*(byte *)0xe00 >> 3) - 1;
    puVar18 = (undefined4 *)(iVar15 - 0x100U >> 6);
    puVar4 = puVar18 + 1;
    uVar13 = *puVar18;
    puVar17 = (undefined2 *)0x0;
    while (iVar16 = iVar16 + -1, iVar16 != 0) {
      puVar2 = puVar17;
      puVar17 = puVar17 + 1;
      puVar3 = puVar4;
      puVar4 = (undefined4 *)((int)puVar4 + 2);
      *puVar2 = *(undefined2 *)puVar3;
    }
  }
  *(undefined4 *)0xd38 = uVar13;
  *(undefined4 *)0xd90 = uVar13;
  *(undefined2 *)0xaa4 = 0x3d15;
  *(undefined2 *)0xaa6 = 0x3d68;
  return 1;
}



undefined2 __cdecl16near FUN_11bd_79fc(void)

{
  undefined2 *puVar1;
  undefined4 *puVar2;
  undefined2 *puVar3;
  undefined2 *puVar4;
  undefined4 *puVar5;
  uint uVar6;
  int iVar7;
  undefined2 uVar8;
  ulong uVar9;
  undefined4 uVar10;
  ulong in_ECX;
  long lVar11;
  undefined1 *puVar12;
  undefined4 *unaff_SI;
  undefined1 *puVar13;
  undefined2 *puVar14;
  undefined4 *puVar15;
  undefined1 *in_EDI;
  long lVar16;
  uint unaff_ES;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  int in_stack_00000000;
  undefined1 *puStack_6;
  
  do {
    puVar13 = (undefined1 *)in_EDI;
    iVar7 = FUN_11bd_0ef4();
    if (iVar7 != 0) {
      uVar8 = *(undefined2 *)0xaa;
      puVar15 = (undefined4 *)&DAT_0000_0004;
      uRam000179f8 = *(undefined4 *)0x0;
                    // WARNING: Read-only address (ram,0x000179f8) is written
      for (; (int)in_ECX != 0; in_ECX = (ulong)((int)in_ECX - 1)) {
        puVar5 = puVar15;
        puVar15 = puVar15 + 1;
        puVar2 = unaff_SI;
        unaff_SI = unaff_SI + 1;
        *puVar5 = *puVar2;
      }
      uVar8 = FUN_11bd_0ef4();
      return uVar8;
    }
                    // WARNING: Read-only address (ram,0x000179f6) is written
    iRam000179f6 = (int)in_ECX;
    lVar16 = ZEXT24(puVar13) + (ulong)unaff_ES * 0x10;
    lVar11 = ZEXT24(puVar13 + iRam000179f6 * 4) + (ulong)unaff_ES * 0x10;
    puStack_6 = (undefined1 *)((ulong)lVar16 >> 0x10);
    FUN_11bd_0290((int)lVar16);
    unaff_ES = 0x38;
    in_EDI = (undefined1 *)CONCAT22((int)lVar11,puStack_6);
    puVar12 = (undefined1 *)CONCAT22(in_stack_00000000,(undefined1 *)((ulong)lVar11 >> 0x10));
    while (in_stack_00000000 = func_0x00005e50(), in_stack_00000000 != 0) {
      while (puVar12 <= in_EDI) {
        if (in_EDI == puVar12) goto LAB_11bd_7a75;
        in_EDI = in_EDI + -4;
        *in_EDI = 0;
      }
    }
LAB_11bd_7a75:
    iVar7 = -0x69b7;
    FUN_11bd_092c();
    puVar13 = (undefined1 *)in_EDI;
    if (iVar7 == 0) {
      FUN_11bd_2adb();
      FUN_11bd_22ad(0x19);
      *(undefined4 *)0xd5a = puVar12;
      if (puVar13 < (undefined1 *)0x1000) {
        puVar13 = (undefined1 *)0x1000;
      }
      *(undefined2 *)0xeca = puVar13;
      if (*(char *)0xe00 == '\0') {
        *(undefined2 *)0xeca = (int)(*(ulong *)0x98 >> 6);
        *(undefined2 *)0xece = (int)(*(ulong *)0x9c >> 6);
        uVar6 = *(uint *)0xaa;
        uVar10 = *(undefined4 *)(uVar6 >> 6);
        unaff_SS = unaff_DS;
      }
      else {
        uVar9 = ZEXT24(puVar13);
        if (*(char *)0xdff != '\0') {
          uVar9 = 0x1040;
          *(undefined2 *)0xeca = 0x1040;
        }
        *(undefined2 *)0xac = (int)(uVar9 * 0x40);
        *(undefined2 *)0xae = (int)(uVar9 * 0x40 >> 0x10);
        uVar6 = *(int *)0xece + *(int *)0xeca;
        if ((*(char *)0xdff == '\0') && (0x3fff < uVar6)) {
          uVar6 = 0x4000;
        }
        *(uint *)0xece = uVar6;
        if ((*(byte *)0x47 & 1) != 0) {
          uVar6 = FUN_11bd_0ef4();
        }
        *(uint *)0xa8 = uVar6;
        FUN_11bd_7bb6();
        uVar10 = uRam0000077c;
        iVar7 = (*(byte *)0xe00 >> 3) - 1;
        puVar3 = (undefined2 *)0x400;
        puVar14 = (undefined2 *)0x0;
        while (iVar7 = iVar7 + -1, iVar7 != 0) {
          puVar4 = puVar14;
          puVar14 = puVar14 + 1;
          puVar1 = puVar3;
          puVar3 = puVar3 + 1;
          *puVar4 = *puVar1;
        }
      }
      *(undefined4 *)0xd38 = uVar10;
      *(undefined4 *)0xd90 = uVar10;
      *(undefined2 *)0xaa4 = 0x3d15;
      *(undefined2 *)0xaa6 = 0x3d68;
      return 1;
    }
    in_ECX = 0x207c;
  } while( true );
}



// WARNING: Globals starting with '_' overlap smaller symbols at the same address

int __cdecl16near FUN_11bd_7a88(undefined4 param_1)

{
  undefined4 uVar1;
  undefined4 uVar2;
  long lVar3;
  undefined4 *puVar4;
  int unaff_DI;
  undefined4 *puVar5;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  
  FUN_11bd_0290();
  puVar4 = (undefined4 *)((ulong)*(uint *)0xaa * 0x10);
  puVar5 = puVar4 + 0x700;
  LOCK();
  uVar1 = *puVar4;
  *puVar4 = 0x448b05b1;
  UNLOCK();
  puVar4 = (undefined4 *)CONCAT22((int)((ulong)puVar4 >> 0x10),(undefined4 *)puVar4 + 1);
  _DAT_e000_0020 = *puVar4;
  LOCK();
  uVar2 = *puVar5;
  *puVar5 = _DAT_e000_0020;
  UNLOCK();
  *puVar5 = uVar2;
  puVar4[-1] = uVar1;
  puVar5 = (undefined4 *)0x400004;
  for (lVar3 = 0x207b; puVar4 = puVar4 + 1, lVar3 != 0; lVar3 = lVar3 + -1) {
    *puVar5 = *puVar4;
    puVar5 = puVar5 + 1;
  }
  for (lVar3 = 0xcf84; lVar3 != 0; lVar3 = lVar3 + -1) {
    *puVar5 = 0;
    puVar5 = puVar5 + 1;
  }
  if (*(int *)0xdfa != 0) {
    FUN_11bd_7be9();
  }
  func_0x00005ebb(0x1000,*(undefined4 *)0x98,param_1);
  FUN_11bd_092c();
                    // WARNING: Read-only address (ram,0x000179f6) is written
  uRam000179f6 = 0;
  return unaff_DI + 1;
}



void __cdecl16near FUN_11bd_7b34(void)

{
  int iVar1;
  
  iVar1 = 0;
  FUN_11bd_76ab();
  if (iVar1 == 0) {
    FUN_11bd_76ab();
  }
  return;
}



undefined4 __cdecl16near FUN_11bd_7b50(void)

{
  int iVar1;
  int iVar2;
  int iVar3;
  undefined2 uVar4;
  uint in_DX;
  int extraout_DX;
  int extraout_DX_00;
  int in_BX;
  int iVar5;
  uint uVar6;
  undefined2 unaff_DS;
  
  iVar3 = *(int *)0xecc;
  FUN_11bd_7b34();
  iVar5 = in_BX;
  iVar2 = FUN_11bd_6c84();
  LOCK();
  iVar1 = *(int *)0xecc;
  *(int *)0xecc = iVar3;
  UNLOCK();
  iVar3 = 0;
  if (iVar2 != 0) {
    FUN_11bd_7b34();
    if ((extraout_DX != extraout_DX_00) || (in_BX != iVar5)) {
      uVar4 = FUN_11bd_1df7();
      return CONCAT22(in_DX,uVar4);
    }
    in_DX = in_DX + *(int *)0xece;
    if ((*(char *)0xdff == '\0') && (0x3000 < in_DX)) {
      in_DX = 0x3000;
    }
    uVar6 = *(int *)0xeca + 3U & 0xfffc;
    iVar3 = (*(int *)0xeca + iVar1 & 0xfffcU) - uVar6;
    *(uint *)0xeca = uVar6;
    *(int *)0xdfa = iVar3;
  }
  return CONCAT22(in_DX,iVar3);
}



// WARNING: Globals starting with '_' overlap smaller symbols at the same address

void __cdecl16near FUN_11bd_7bb6(void)

{
  uint uVar1;
  undefined2 unaff_DS;
  
  uVar1 = *(uint *)0xdfa;
  *(long *)0xaa8 = (ulong)uVar1 << 10;
  if (((ulong)uVar1 != 0) && (_FUN_11bd_5fe2 = *(undefined4 *)0x98, *(char *)0xdff == '\0')) {
    FUN_11bd_7be9();
    return;
  }
  return;
}



// WARNING: Globals starting with '_' overlap smaller symbols at the same address

void __cdecl16near FUN_11bd_7be9(void)

{
  ulong uVar1;
  uint uVar2;
  long in_ESI;
  uint uVar3;
  undefined2 unaff_DS;
  
  uVar3 = *(uint *)0xeca;
  uVar2 = *(int *)0xdfa + uVar3;
  uVar1 = _FUN_11bd_5fe2 * 0x10 + 0xfffU & 0xfffff000 | 0xc07;
  for (; uVar3 < uVar2; uVar3 = uVar3 + 4) {
    *(ulong *)(in_ESI + (ulong)uVar3) = uVar1;
    uVar1 = uVar1 + 0x1000;
  }
  *(long *)0xac = (ulong)uVar3 << 6;
  return;
}



undefined2 __cdecl16near FUN_11bd_7c62(void)

{
  uint *puVar1;
  undefined4 *puVar2;
  undefined4 *puVar3;
  undefined2 *puVar4;
  code *pcVar5;
  int iVar6;
  uint uVar7;
  uint uVar8;
  undefined2 uVar9;
  char extraout_AH;
  undefined4 uVar10;
  undefined2 extraout_var;
  ulong in_EAX;
  ulong uVar11;
  int iVar12;
  ulong in_EDX;
  undefined4 in_EBX;
  long *plVar13;
  ulong *puVar14;
  undefined4 *puVar15;
  undefined2 *puVar16;
  ulong *puVar17;
  undefined2 unaff_DI;
  long lVar18;
  uint unaff_SS;
  uint unaff_DS;
  uint in_stack_00000000;
  undefined2 uVar19;
  undefined2 uVar20;
  ulong local_c;
  undefined4 uStack_8;
  undefined2 uStack_4;
  
  if (*(char *)0xe00 != '\0') {
    FUN_11bd_199a();
    uVar8 = FUN_11bd_016c();
    in_EAX = (ulong)uVar8;
    if (*(char *)0xdff == '\0') {
      if ((*(uint *)0xdfa != 0) && (*(int *)0xadc != 0)) {
        uStack_8 = (ulong)*(uint *)0xeca * 0x400;
        local_c = uStack_8 | 0xeee;
        puVar17 = &local_c;
        plVar13 = (long *)ZEXT24(&local_c);
        uVar20 = 0;
        uVar19 = 0;
        uVar9 = 4;
        lVar18 = 0x1000;
        uVar8 = *(uint *)0xdfa >> 2;
        uStack_4 = unaff_DI;
        do {
          iVar12 = (*(code *)*(undefined2 *)0xaec)(0x11bd,uVar9,uVar19,uVar20,puVar17);
          if (iVar12 == 0) goto LAB_11bd_7d21;
          *(long *)plVar13 = *(long *)plVar13 + lVar18;
          uVar8 = uVar8 - 1;
        } while (uVar8 != 0);
        FUN_11bd_0290();
        puVar14 = (ulong *)CONCAT22(uStack_4,uStack_8._2_2_);
        uVar11 = (ulong)puVar14 | 0xeee;
        uVar8 = *(uint *)0xdfa >> 2;
        while (uVar11 == *puVar14) {
          puVar14 = (ulong *)((long)puVar14 + lVar18);
          uVar11 = uVar11 + lVar18;
          uVar8 = uVar8 - 1;
          if (uVar8 == 0) {
            uVar9 = FUN_11bd_092c();
                    // WARNING: Read-only address (ram,0x000179f6) is written
                    // WARNING: Read-only address (ram,0x000179f8) is written
            return uVar9;
          }
        }
        uVar9 = 0x98f1;
        FUN_11bd_092c();
LAB_11bd_7d21:
        uVar8 = *(uint *)0xdfa;
        *(int *)0xeca = *(int *)0xeca + uVar8;
        uVar19 = *(undefined2 *)0xaa;
        puVar16 = (undefined2 *)0x0;
        for (uVar8 = uVar8 >> 1; uVar8 != 0; uVar8 = uVar8 - 1) {
          puVar4 = puVar16;
          puVar16 = puVar16 + 1;
          *puVar4 = 0;
        }
        uVar9 = FUN_11bd_1df7(uVar9);
        return uVar9;
      }
    }
    else {
      iVar12 = (*(int *)0xece - 0x1000U >> 0xc) + 1;
      if ((*(byte *)0x47 & 0x80) != 0) {
        uVar9 = FUN_11bd_79fc();
        return uVar9;
      }
                    // WARNING: Read-only address (ram,0x000179f6) is written
      iVar6 = *(int *)0xaa;
      puVar17 = (ulong *)&DAT_0000_0004;
      in_EAX = *(ulong *)0x0;
                    // WARNING: Read-only address (ram,0x000179f8) is written
      iRam000179f6 = iVar12;
      uRam000179f8 = in_EAX;
      if (*(char *)0xe00 != '\0') {
        do {
          pcVar5 = (code *)swi(0x67);
          uVar9 = (*pcVar5)();
          uVar19 = (undefined2)((ulong)in_EBX >> 0x10);
          if ((char)((uint)uVar9 >> 8) != '\0') {
            uStack_4 = 0x947b;
            iVar12 = FUN_11bd_22ad();
            iVar6 = (iVar12 + 0x17U >> 4) + iVar6;
            if ((char)iVar6 != '\0') {
              uStack_4 = 0x9490;
              iVar6 = FUN_11bd_22ad();
            }
            *(int *)0xaa = iVar6;
            *(int *)0xdf4 = iVar6;
            puVar16 = (undefined2 *)0x0;
            for (uVar8 = in_stack_00000000 >> 1; uVar8 != 0; uVar8 = uVar8 - 1) {
              puVar4 = puVar16;
              puVar16 = puVar16 + 1;
              *puVar4 = 0;
            }
            if ((*(char *)0xdff != '\0') &&
               (*(byte *)0xa16 = *(byte *)0xa16 | 1, (*(byte *)0x11d2 & 1) == 0)) {
              *(undefined2 *)0xecc = 0xef00;
            }
            uVar10 = CONCAT22(uVar19,0x10);
            lVar18 = (ulong)unaff_DS * 0x10;
            iVar12 = (int)((ulong)lVar18 >> 0x10);
            uVar7 = (uint)lVar18;
            puVar1 = (uint *)0xd34;
            uVar8 = *puVar1;
            *puVar1 = *puVar1 + uVar7;
            *(int *)0xd36 = *(int *)0xd36 + iVar12 + (uint)CARRY2(uVar8,uVar7);
            puVar1 = (uint *)0xd3c;
            uVar8 = *puVar1;
            *puVar1 = *puVar1 + uVar7;
            *(int *)0xd3e = *(int *)0xd3e + iVar12 + (uint)CARRY2(uVar8,uVar7);
            puVar1 = (uint *)0xd40;
            uVar8 = *puVar1;
            *puVar1 = *puVar1 + uVar7;
            *(int *)0xd42 = *(int *)0xd42 + iVar12 + (uint)CARRY2(uVar8,uVar7);
            *(int *)0x91a = uVar7 + 0xd74;
            *(char *)0x91c = (char)((ulong)lVar18 >> 0x10) + (0xf28b < uVar7);
            iVar12 = CONCAT11((char)((uint)*(undefined2 *)0xaa >> 8) + '\x01',
                              (char)*(undefined2 *)0xaa);
            uVar8 = 0;
            pcVar5 = (code *)swi(0x67);
            (*pcVar5)();
            if (extraout_AH != '\0') {
              FUN_11bd_2adb();
              FUN_11bd_22ad();
            }
            *(undefined4 *)0xd5a = uVar10;
            if (uVar8 < 0x1000) {
              uVar8 = 0x1000;
            }
            *(uint *)0xeca = uVar8;
            if (*(char *)0xe00 == '\0') {
              *(undefined2 *)0xeca = (int)(*(ulong *)0x98 >> 6);
              *(undefined2 *)0xece = (int)(*(ulong *)0x9c >> 6);
              uVar8 = *(uint *)0xaa;
              uVar10 = *(undefined4 *)(uVar8 >> 6);
              unaff_SS = unaff_DS;
            }
            else {
              uVar11 = (ulong)uVar8;
              if (*(char *)0xdff != '\0') {
                uVar11 = 0x1040;
                *(undefined2 *)0xeca = 0x1040;
              }
              *(undefined2 *)0xac = (int)(uVar11 * 0x40);
              *(undefined2 *)0xae = (int)(uVar11 * 0x40 >> 0x10);
              uVar8 = *(int *)0xece + *(int *)0xeca;
              if ((*(char *)0xdff == '\0') && (0x3fff < uVar8)) {
                uVar8 = 0x4000;
              }
              *(uint *)0xece = uVar8;
              if ((*(byte *)0x47 & 1) != 0) {
                uVar8 = FUN_11bd_0ef4();
              }
              *(uint *)0xa8 = uVar8;
              FUN_11bd_7bb6();
              iVar6 = (*(byte *)0xe00 >> 3) - 1;
              puVar15 = (undefined4 *)(iVar12 - 0x100U >> 6);
              puVar3 = puVar15 + 1;
              uVar10 = *puVar15;
              puVar16 = (undefined2 *)0x0;
              while (iVar6 = iVar6 + -1, iVar6 != 0) {
                puVar4 = puVar16;
                puVar16 = puVar16 + 1;
                puVar2 = puVar3;
                puVar3 = (undefined4 *)((int)puVar3 + 2);
                *puVar4 = *(undefined2 *)puVar2;
              }
            }
            *(undefined4 *)0xd38 = uVar10;
            *(undefined4 *)0xd90 = uVar10;
            *(undefined2 *)0xaa4 = 0x3d15;
            *(undefined2 *)0xaa6 = 0x3d68;
            return 1;
          }
          *(int *)0xdf6 = *(int *)0xdf6 + 1;
          in_EAX = in_EDX | 0x807;
          puVar14 = puVar17;
          puVar17 = puVar17 + 1;
          *puVar14 = in_EAX;
          iVar12 = iVar12 + -1;
          in_EDX = CONCAT22(extraout_var,uVar9);
        } while (iVar12 != 0);
      }
    }
  }
  return (int)in_EAX;
}



void __cdecl16far FUN_1991_0846(void)

{
  byte in_CF;
  byte in_PF;
  byte in_AF;
  byte in_ZF;
  byte in_SF;
  byte in_TF;
  byte in_IF;
  byte in_OF;
  byte in_NT;
  byte in_AC;
  byte in_VIF;
  byte in_VIP;
  byte in_ID;
  
  FUN_1991_0c9e(0,0x1991,(ulong)(in_NT & 1) * 0x4000 | (ulong)(in_OF & 1) * 0x800 |
                         (ulong)(in_IF & 1) * 0x200 | (ulong)(in_TF & 1) * 0x100 |
                         (ulong)(in_SF & 1) * 0x80 | (ulong)(in_ZF & 1) * 0x40 |
                         (ulong)(in_AF & 1) * 0x10 | (ulong)(in_PF & 1) * 4 | (ulong)(in_CF & 1) |
                         (ulong)(in_ID & 1) * 0x200000 | (ulong)(in_VIP & 1) * 0x100000 |
                         (ulong)(in_VIF & 1) * 0x80000 | (ulong)(in_AC & 1) * 0x40000);
  return;
}



void __cdecl16far FUN_1991_0899(void)

{
  code *pcVar1;
  byte in_AF;
  byte in_TF;
  byte in_IF;
  byte in_NT;
  byte in_AC;
  byte in_VIF;
  byte in_VIP;
  byte in_ID;
  
  if (DAT_8000_324e == '\0') {
    pcVar1 = (code *)swi(0x31);
    (*pcVar1)();
    return;
  }
  FUN_1991_44d6(0,0x1000,(ulong)(in_NT & 1) * 0x4000 | (ulong)(in_IF & 1) * 0x200 |
                         (ulong)(in_TF & 1) * 0x100 | (ulong)(DAT_8000_324e < '\0') * 0x80 |
                         (ulong)(in_AF & 1) * 0x10 |
                         (ulong)((POPCOUNT(DAT_8000_324e) & 1U) == 0) * 4 |
                         (ulong)(in_ID & 1) * 0x200000 | (ulong)(in_VIP & 1) * 0x100000 |
                         (ulong)(in_VIF & 1) * 0x80000 | (ulong)(in_AC & 1) * 0x40000);
  return;
}



void __cdecl16near FUN_1991_0a89(void)

{
  return;
}



int __cdecl16near FUN_1991_0c66(void)

{
  char in_CF;
  
  FUN_1991_0846();
  return -(uint)(in_CF == '\0');
}



// WARNING: Control flow encountered bad instruction data
// WARNING: Stack frame is not setup normally: Input value of stackpointer is not used
// WARNING: Removing unreachable block (ram,0x0001007f)
// WARNING: Removing unreachable block (ram,0x00010083)
// WARNING: Globals starting with '_' overlap smaller symbols at the same address

undefined2 __cdecl16near FUN_1991_0c9e(void)

{
  byte *pbVar1;
  undefined1 uVar2;
  char *pcVar3;
  uint uVar4;
  byte bVar5;
  char cVar6;
  byte bVar7;
  byte bVar8;
  byte bVar9;
  char *pcVar10;
  byte bVar15;
  uint uVar11;
  undefined2 uVar12;
  int *piVar13;
  undefined2 in_AX;
  byte *pbVar14;
  undefined2 in_CX;
  int iVar16;
  int iVar17;
  undefined2 uVar18;
  undefined2 in_DX;
  char cVar19;
  char cVar20;
  undefined2 in_BX;
  undefined2 *puVar21;
  undefined2 *puVar22;
  int iVar23;
  undefined2 *puVar24;
  undefined4 in_ESP;
  undefined1 *puVar25;
  undefined2 unaff_BP;
  byte *pbVar26;
  byte *pbVar27;
  undefined2 unaff_SI;
  undefined2 *puVar28;
  char *pcVar29;
  undefined2 unaff_DI;
  char *pcVar30;
  undefined2 unaff_ES;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  byte in_AF;
  bool bVar31;
  
  iVar23 = (int)in_ESP;
  *(undefined2 *)(iVar23 + -8) = in_AX;
  *(undefined2 *)(iVar23 + -10) = in_CX;
  *(undefined2 *)(iVar23 + -0xc) = in_DX;
  *(undefined2 *)(iVar23 + -0xe) = in_BX;
  *(int *)(iVar23 + -0x10) = iVar23 + -6;
  *(undefined2 *)(iVar23 + -0x12) = unaff_BP;
  *(undefined2 *)(iVar23 + -0x14) = unaff_SI;
  *(undefined2 *)(iVar23 + -0x16) = unaff_DI;
  *(undefined2 *)(iVar23 + -0x18) = unaff_ES;
  *(undefined2 *)(iVar23 + -0x1a) = unaff_DS;
  *(undefined2 *)(iVar23 + -0x1c) = unaff_SS;
  bVar7 = (byte)((uint)in_AX >> 8);
  iVar17 = (int)_DAT_8000_3bb6;
  if ((((_DAT_8000_3bbe != (char *)0x0) && (0xc < bVar7)) && (bVar7 != 0x59)) &&
     ((bVar7 != 0xff && (DAT_8000_43a2 == '\0')))) {
    iVar17 = (int)_DAT_8000_3bbe + 0x180;
    _DAT_8000_3bbe = (char *)0x0;
  }
  puVar25 = (undefined1 *)(iVar23 + -0x1e);
  puVar28 = (undefined2 *)(iVar23 + -0x1e);
  *(int *)(iVar23 + -0x1e) = iVar17;
  pcVar30 = (char *)(iVar17 + -0x180);
  *(int *)(iVar23 + -0x20) = (int)_DAT_8000_3bbe;
  *(undefined2 *)(iVar23 + -0x22) = _DAT_8000_4172;
  pcVar10 = pcVar30;
  for (iVar16 = 0xc; iVar16 != 0; iVar16 = iVar16 + -1) {
    pcVar3 = pcVar10;
    pcVar10 = pcVar10 + 2;
    puVar24 = puVar28;
    puVar28 = puVar28 + 1;
    *(undefined2 *)pcVar3 = *puVar24;
  }
  _DAT_8000_3bb6 = pcVar30;
  _DAT_8000_3bbe = pcVar30;
  *(undefined2 *)(iVar17 + -0x15e) = unaff_SS;
  *(int *)(iVar17 + -0x15a) = iVar23 + -0x1e;
  if (0x68 < (byte)(bVar7 + 1)) {
    *(undefined2 *)(iVar23 + -0x24) = 0xa60f;
    FUN_1991_0d73();
    puVar28 = (undefined2 *)(iVar23 + -0x16);
    pcVar10 = pcVar30 + 8;
    for (iVar17 = 8; iVar17 != 0; iVar17 = iVar17 + -1) {
      puVar24 = puVar28;
      puVar28 = puVar28 + 1;
      pcVar3 = pcVar10;
      pcVar10 = pcVar10 + 2;
      *puVar24 = *(undefined2 *)pcVar3;
    }
    *(uint *)(iVar23 + 8) = *(uint *)(pcVar30 + 0x26) & 0xeff;
    _DAT_8000_4172 = *(undefined2 *)(iVar23 + -0x22);
    _DAT_8000_3bbe = (char *)*(undefined2 *)(iVar23 + -0x20);
    _DAT_8000_3bb6 = (char *)*(undefined2 *)(iVar23 + -0x1e);
    return *(undefined2 *)(iVar23 + -8);
  }
  _DAT_8000_3b9e = (uint)(byte)(bVar7 + 1);
  pbVar14 = (byte *)(_DAT_8000_3b9e * 2);
  switch(_DAT_8000_3b9e) {
  case 0:
  case 4:
  case 8:
  case 0xc:
  case 0x10:
  case 0x14:
  case 0x18:
  case 0x1c:
  case 0x20:
  case 0x24:
  case 0x28:
  case 0x2c:
  case 0x30:
  case 0x34:
  case 0x38:
  case 0x3c:
  case 0x40:
  case 0x44:
  case 0x48:
  case 0x4c:
  case 0x50:
  case 0x54:
  case 0x58:
  case 0x5c:
  case 0x60:
  case 100:
  case 0x68:
    pcVar30[(int)puVar28] = pcVar30[(int)puVar28] - (char)pcVar10;
    cVar19 = '\0';
    break;
  case 1:
  case 5:
  case 9:
  case 0xd:
  case 0x11:
  case 0x15:
  case 0x19:
  case 0x1d:
  case 0x21:
  case 0x25:
  case 0x29:
  case 0x2d:
  case 0x31:
  case 0x35:
  case 0x39:
  case 0x3d:
  case 0x41:
  case 0x45:
  case 0x49:
  case 0x4d:
  case 0x51:
  case 0x55:
  case 0x59:
  case 0x5d:
  case 0x61:
  case 0x65:
    puVar22 = (undefined2 *)(iVar23 + -0x24);
    *(undefined2 *)(iVar23 + -0x24) = 0x8603;
    FUN_11bd_6a68();
    pcVar10 = (char *)*(undefined2 *)(iVar23 + -0x18);
    if (pcVar10 == (char *)0x0) {
      pcVar10 = (char *)*(undefined2 *)(iVar23 + -0x1a);
      *puVar22 = 0x8322;
      uVar12 = *puVar22;
      pcVar30 = (char *)0xa2c;
      pcVar29 = (char *)0xa2c;
      while( true ) {
        pcVar3 = pcVar10;
        pcVar10 = pcVar10 + 1;
        cVar19 = *pcVar3;
        if (cVar19 == '\0') break;
        pcVar3 = pcVar30;
        pcVar30 = pcVar30 + 1;
        *pcVar3 = cVar19;
        if (cVar19 == '\\') {
          pcVar29 = pcVar30;
        }
      }
      pcVar10 = (char *)0xa7c;
    }
    else {
      *puVar22 = 0x8322;
      uVar12 = *puVar22;
      pcVar29 = (char *)0xa2c;
    }
    do {
      pcVar3 = pcVar10;
      pcVar10 = pcVar10 + 1;
      cVar19 = *pcVar3;
      pcVar3 = pcVar29;
      pcVar29 = pcVar29 + 1;
      *pcVar3 = cVar19;
    } while (cVar19 != '\0');
    return 0;
  default:
    puVar25 = (undefined1 *)0x1;
    cVar19 = (char)*(undefined2 *)0x10;
    uVar11 = CONCAT11((char)((uint)pcVar10 >> 8) + (char)((uint)pcVar30 >> 8),(char)pcVar10) - 1;
    cVar6 = (char)uVar11;
    pcVar30[(int)puVar28] = pcVar30[(int)puVar28] + cVar6;
    pcVar30[(int)puVar28] = pcVar30[(int)puVar28] + (char)(uVar11 >> 8);
    pcVar30[(int)puVar28] = pcVar30[(int)puVar28] + cVar6;
    pcVar30[(int)puVar28] = pcVar30[(int)puVar28] + cVar6;
    *(uint *)(pcVar30 + (int)puVar28) = *(int *)(pcVar30 + (int)puVar28) + uVar11;
    pcVar30[(int)puVar28] = pcVar30[(int)puVar28] + cVar6;
    pcVar10 = (char *)(uVar11 | 0x18);
  }
  *pbVar14 = *pbVar14 | 0x18;
  pbVar1 = puVar25 + (int)puVar28 + -0x42f3;
  bVar7 = *pbVar1;
  *pbVar1 = *pbVar1 + 0x83;
  pbVar26 = (byte *)((char *)((int)puVar28 + (int)pcVar30) + (0x7c < bVar7));
  pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + ((byte)pcVar10 | 0x18);
  pbVar1 = (byte *)(pcVar30 + (int)pbVar26);
  bVar7 = *pbVar1;
  *pbVar1 = *pbVar1 + 0x22;
  bVar15 = (byte)((uint)pcVar10 >> 8) | pcVar30[(int)pbVar26];
  uVar11 = CONCAT11(bVar15,-(0xdd < bVar7));
  pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + -(0xdd < bVar7);
  pbVar1 = pbVar26;
  bVar7 = *pbVar1;
  bVar9 = *pbVar1;
  *pbVar1 = *pbVar1 + bVar15;
  if (SCARRY1(bVar9,bVar15) == (char)*pbVar1 < '\0') {
    uVar11 = uVar11 + CARRY1(bVar7,bVar15);
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + (char)uVar11;
    puVar25[0x2009] = puVar25[0x2009] + '\"';
  }
  bVar7 = (byte)uVar11;
  pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar7;
  pcVar30[(int)pbVar14] = pcVar30[(int)pbVar14] + bVar7;
  pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar7;
  pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar7;
  pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar7;
  bVar9 = (byte)(uVar11 >> 8);
  pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar9;
  (pcVar30 + (int)pbVar26)[0x100] = (pcVar30 + (int)pbVar26)[0x100] + bVar9;
  pcVar3 = pcVar30 + (int)pbVar26;
  cVar6 = *pcVar3;
  *pcVar3 = *pcVar3 + cVar19;
  if (SCARRY1(cVar6,cVar19)) {
    uVar4 = *(uint *)(pcVar30 + (int)pbVar26);
    bVar9 = (byte)(uVar11 ^ uVar4);
    *(char *)(iVar17 + -0xa5) = *(char *)(iVar17 + -0xa5) + bVar9;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar9;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar9;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar9;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar9;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar9;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar9;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar9;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar9;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar9;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar9;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar9;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar9;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar9;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar9;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar9;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar9;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar9;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar9;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar9;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar9;
    cVar19 = (char)pcVar30;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + cVar19;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar9;
    LOCK();
    bVar7 = pcVar30[(int)pbVar26];
    pcVar30[(int)pbVar26] = bVar9;
    bVar9 = (byte)((uVar11 ^ uVar4) >> 8);
    UNLOCK();
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar7;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + cVar19;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar7;
    LOCK();
    bVar15 = pcVar30[(int)pbVar26];
    pcVar30[(int)pbVar26] = bVar7;
    UNLOCK();
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar15;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + cVar19;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar15;
    LOCK();
    bVar7 = pcVar30[(int)pbVar26];
    pcVar30[(int)pbVar26] = bVar15;
    UNLOCK();
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar7;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + cVar19;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar7;
    LOCK();
    bVar15 = pcVar30[(int)pbVar26];
    pcVar30[(int)pbVar26] = bVar7;
    UNLOCK();
    pbVar27 = pbVar26;
LAB_1000_00df:
    pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + bVar15;
  }
  else {
    pcVar30[(int)pbVar14] = pcVar30[(int)pbVar14] + bVar7;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar7;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar7;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] + bVar7;
    pbVar1 = pbVar26 + 0x4f;
    bVar15 = *pbVar1;
    *pbVar1 = *pbVar1 + bVar7;
    *(undefined2 *)(iVar23 + -0x24) = pcVar30;
    bVar5 = 9 < (bVar7 & 0xf) | in_AF;
    bVar8 = bVar7 + bVar5 * -6;
    bVar15 = bVar8 + (0x9f < bVar8 | CARRY1(bVar15,bVar7) | bVar5 * (bVar8 < 6)) * -0x60 ^ 0x47;
    pcVar30[(int)pbVar26] = pcVar30[(int)pbVar26] & bVar9;
    bVar31 = SCARRY2((int)pcVar30,1);
    pcVar30 = (char *)(iVar17 + -0x17f);
    pbVar27 = pbVar26 + 2;
    out(*(undefined2 *)pbVar26,0x8322);
    if (!bVar31) {
      puVar24 = (undefined2 *)(CONCAT22((int)((ulong)in_ESP >> 0x10),iVar23 + -0x24) + -2);
      *puVar24 = 0x2074;
      (puVar25 + (int)pbVar14)[0x29] = (puVar25 + (int)pbVar14)[0x29] - bVar15;
      pbVar1 = puVar25 + (int)pbVar27 + 0x61;
      *pbVar1 = *pbVar1 & 0x22;
      if (*pbVar1 != 0) {
        out(*(undefined2 *)pbVar27,0x8322);
        out(pbVar26[4],0x8322);
        puVar21 = (undefined2 *)puVar24;
        pbVar27 = (byte *)puVar21[1];
        puVar25 = (undefined1 *)puVar21[2];
        pcVar30 = (char *)puVar21[4];
        uVar18 = puVar21[5];
        uVar12 = puVar21[7];
        pbVar14 = (undefined1 *)*puVar21 + 1;
        uVar2 = in(uVar18);
        *(undefined1 *)*puVar21 = uVar2;
        (puVar25 + (int)pbVar14)[0x79] = (puVar25 + (int)pbVar14)[0x79] & (byte)uVar18;
        goto LAB_1000_00f3;
      }
      goto LAB_1000_00df;
    }
  }
  uVar18 = 0x8322;
  cVar19 = (char)pcVar30;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + bVar15;
  LOCK();
  bVar7 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = bVar15;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + bVar7;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + bVar7;
  LOCK();
  bVar15 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = bVar7;
  uVar12 = CONCAT11(bVar9,bVar15);
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + bVar15;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
LAB_1000_00f3:
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + (char)uVar12;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = (char)uVar12;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  cVar20 = (char)pcVar30;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  LOCK();
  cVar19 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar6;
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar19;
  LOCK();
  cVar6 = pcVar30[(int)pbVar27];
  pcVar30[(int)pbVar27] = cVar19;
  piVar13 = (int *)CONCAT11((char)((uint)uVar12 >> 8),cVar6);
  UNLOCK();
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  *pcVar30 = *pcVar30 + cVar20;
  pcVar30[(int)pbVar27] = pcVar30[(int)pbVar27] + cVar6;
  *(byte *)((int)piVar13 + (int)pbVar27) = *(byte *)((int)piVar13 + (int)pbVar27) + cVar20;
  *piVar13 = *piVar13 + 1;
  *(byte *)((int)piVar13 + (int)pbVar27) = *(byte *)((int)piVar13 + (int)pbVar27) + cVar20;
  puVar25[(int)pbVar14] = puVar25[(int)pbVar14] + (char)uVar18;
                    // WARNING: Bad instruction - Truncating control flow here
  halt_baddata();
}



// WARNING: Control flow encountered bad instruction data

undefined4 __cdecl16near FUN_1991_0d73(void)

{
  int iVar1;
  code *pcVar2;
  undefined2 uVar3;
  uint uVar4;
  undefined2 in_AX;
  undefined2 in_DX;
  int in_BX;
  int unaff_BP;
  int unaff_DI;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  undefined4 uVar5;
  undefined1 *puVar6;
  
  uVar5 = CONCAT22(in_DX,in_AX);
  if (*(char *)0x2e != '\0') {
                    // WARNING: Bad instruction - Truncating control flow here
    halt_baddata();
  }
  while( true ) {
    uVar3 = (undefined2)uVar5;
    iVar1 = in_BX + 4;
    in_BX = unaff_BP;
    puVar6 = (undefined1 *)register0x00000010;
    uVar4 = (*(code *)*(undefined2 *)0x22)(0x1991,0x21,iVar1);
    *(undefined2 *)(*(int *)0x99e + 0x26) =
         CONCAT11((byte)((uVar4 & 0xfdff) >> 8) |
                  (byte)((uint)*(undefined2 *)(unaff_BP + 0x26) >> 8) & 2,(char)(uVar4 & 0xfdff));
    if (*(char *)0xc45 == '\0') break;
    *(undefined1 *)0xc45 = 0;
    pcVar2 = (code *)swi(0x21);
    uVar5 = (*pcVar2)(uVar3);
    unaff_BP = unaff_DI;
    unaff_DI = iVar1;
  }
  return CONCAT22(puVar6,(int)((ulong)uVar5 >> 0x10));
}



undefined2 __cdecl16near FUN_1991_0fc3(void)

{
  uint in_CX;
  uint in_DX;
  uint unaff_DI;
  uint uVar1;
  undefined2 unaff_DS;
  
  if (*(char *)0x2e == '\0') {
    FUN_1991_0899();
  }
  else {
    uVar1 = unaff_DI & 0xfff8;
    in_DX = *(uint *)(uVar1 + 2);
    in_CX = CONCAT11(*(undefined1 *)(uVar1 + 7),*(undefined1 *)(uVar1 + 4));
  }
  if ((in_CX < 0x10) && ((in_DX & 0xf) == 0)) {
    return CONCAT11((byte)(in_DX >> 0xc) | (char)in_CX << 4,(char)(in_DX >> 4));
  }
  return *(undefined2 *)0x9b4;
}



void __cdecl16near FUN_1991_1002(void)

{
  undefined2 uVar1;
  int in_BX;
  undefined2 unaff_DS;
  
  uVar1 = FUN_1991_0fc3();
  *(undefined2 *)(in_BX + 6) = uVar1;
  return;
}



undefined2 __cdecl16near FUN_1991_1538(int param_1)

{
  undefined2 uVar1;
  int iVar2;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  
  iVar2 = *(int *)0x996;
  *(undefined1 *)(iVar2 + 0x17) = 0x48;
  FUN_1991_0d73();
  uVar1 = *(undefined2 *)(iVar2 + 0x10);
  *(undefined2 *)(param_1 + 0x10) = uVar1;
  *(undefined2 *)0x11fa = uVar1;
  uVar1 = *(undefined2 *)(iVar2 + 0x16);
  *(undefined2 *)(param_1 + 0x16) = uVar1;
  if ((*(byte *)(iVar2 + 0x26) & 1) != 0) {
    uVar1 = 0;
  }
  return uVar1;
}



byte __cdecl16near FUN_1991_158f(void)

{
  int iVar1;
  undefined2 unaff_DS;
  
  iVar1 = *(int *)0x996;
  *(undefined1 *)(iVar1 + 0x17) = 0x49;
  FUN_1991_0d73();
  return *(byte *)(iVar1 + 0x26) & 1;
}



ulong FUN_1991_15b5(int param_1)

{
  undefined2 uVar1;
  code *pcVar2;
  uint uVar3;
  int iVar4;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  undefined1 in_CF;
  ulong uVar5;
  
  iVar4 = *(int *)0x996;
  FUN_1991_1002();
  if ((bool)in_CF) {
    FUN_1991_0d73();
    uVar1 = *(undefined2 *)(iVar4 + 0x10);
    *(undefined2 *)(param_1 + 0x10) = uVar1;
    *(undefined2 *)0x11fa = uVar1;
    uVar3 = *(uint *)(iVar4 + 0x16);
    *(uint *)(param_1 + 0x16) = uVar3;
    if ((*(byte *)(iVar4 + 0x26) & 1) != 0) {
      uVar3 = 0;
    }
    return (ulong)uVar3;
  }
  pcVar2 = (code *)swi(3);
  uVar5 = (*pcVar2)();
  return uVar5;
}



// WARNING: Globals starting with '_' overlap smaller symbols at the same address

void __cdecl16far FUN_1991_1f26(undefined4 param_1)

{
  uint uVar1;
  undefined2 *puVar2;
  undefined2 *puVar3;
  undefined2 uVar4;
  
  puVar2 = _DAT_0000_0c9c;
  uVar4 = (undefined2)((ulong)param_1 >> 0x10);
  uVar1 = *(uint *)((int)param_1 + 2);
  *(undefined2 *)((int)param_1 + 2) = _DAT_0000_0c9c;
  puVar3 = (undefined2 *)(uVar1 & 0xfff8);
  *puVar2 = *puVar3;
  puVar2[1] = puVar3[1];
  puVar2[2] = CONCAT11(0x9b,(char)puVar3[2]);
  puVar2[3] = puVar3[3];
  return;
}



undefined1 __cdecl16near FUN_1991_21a3(void)

{
  undefined1 *puVar1;
  undefined1 uVar2;
  undefined1 in_AL;
  int unaff_BP;
  undefined2 unaff_SS;
  
  LOCK();
  puVar1 = (undefined1 *)(*(int *)(unaff_BP + 0x1c) + 5);
  uVar2 = *puVar1;
  *puVar1 = in_AL;
  UNLOCK();
  return uVar2;
}



undefined2 FUN_1991_21ae(uint param_1,uint param_2)

{
  undefined2 unaff_DS;
  
  if ((*(uint *)0x9a <= param_2) && ((param_2 != *(uint *)0x9a || (*(uint *)0x98 <= param_1)))) {
    if ((param_2 <= *(uint *)0x9e) && ((param_2 < *(uint *)0x9e || (param_1 <= *(uint *)0x9c)))) {
      return 1;
    }
  }
  return 0;
}



long __cdecl16near FUN_1991_21e2(void)

{
  uint uVar1;
  long lVar2;
  int iVar3;
  uint uVar4;
  int iVar5;
  undefined2 unaff_DS;
  long lVar6;
  long lVar7;
  
  iVar5 = 0;
  *(undefined2 *)0x11fc = 0;
  *(undefined2 *)0x11fa = 0;
  uVar4 = *(uint *)0x98;
  uVar1 = *(uint *)0x9a;
  lVar6 = 0;
  if ((uVar1 <= *(uint *)0x9e) &&
     ((lVar2 = 0, lVar7 = CONCAT22(uVar1,uVar4), uVar1 < *(uint *)0x9e ||
      (lVar2 = 0, lVar7 = CONCAT22(uVar1,uVar4), lVar6 = 0, uVar4 < *(uint *)0x9c)))) {
    for (; lVar6 = lVar2, lVar7 != 0; lVar7 = FUN_1991_4031(lVar7,0)) {
      lVar6 = FUN_1991_4031(lVar7,4);
      uVar4 = (uint)((ulong)lVar6 >> 0x10);
      lVar2 = lVar6 + lVar2;
      if ((*(uint *)0x11fc <= uVar4) &&
         ((*(uint *)0x11fc < uVar4 || (*(uint *)0x11fa < (uint)lVar6)))) {
        *(uint *)0x11fa = (uint)lVar6;
        *(uint *)0x11fc = uVar4;
      }
      iVar5 = iVar5 + -1;
      if (iVar5 == 0) {
LAB_1991_225c:
        thunk_EXT_FUN_0000_242d(0x1c);
      }
      else {
        iVar3 = FUN_1991_21ae(lVar7);
        if (iVar3 == 0) goto LAB_1991_225c;
      }
    }
  }
  return lVar6;
}



void __cdecl16near FUN_1991_2282(uint param_1,int param_2)

{
  uint *puVar1;
  int *piVar2;
  uint uVar3;
  int iVar4;
  undefined2 unaff_DS;
  
  if (*(int *)0xa2 != 0) {
    iVar4 = *(int *)0xa0;
    FUN_1991_3f74(0x60,*(undefined2 *)0xa2,0,0xffff,0x92);
    puVar1 = (uint *)(iVar4 + 0xc);
    uVar3 = *puVar1;
    *puVar1 = *puVar1 + param_1;
    piVar2 = (int *)(iVar4 + 0xe);
    *piVar2 = *piVar2 + param_2 + (uint)CARRY2(uVar3,param_1);
  }
  return;
}



// WARNING: Removing unreachable block (ram,0x0001bdc8)
// WARNING: Removing unreachable block (ram,0x0001bc46)
// WARNING: Removing unreachable block (ram,0x0001bd67)

ulong __cdecl16near FUN_1991_22bb(int param_1,int param_2)

{
  uint uVar1;
  bool bVar2;
  ulong uVar3;
  int iVar4;
  uint uVar5;
  undefined2 unaff_DS;
  ulong uVar6;
  ulong uVar7;
  undefined4 uVar8;
  long lVar9;
  long lVar10;
  long lVar11;
  undefined2 local_4;
  
  lVar9 = CONCAT22(param_2,param_1);
LAB_1991_22bf:
  *(undefined2 *)0x11fc = 0;
  *(undefined2 *)0x11fa = 0;
  bVar2 = false;
  do {
    uVar5 = *(uint *)0x98;
    uVar1 = *(uint *)0x9a;
    if (((*(uint *)0x9e < uVar1) || ((*(uint *)0x9e <= uVar1 && (*(uint *)0x9c <= uVar5)))) ||
       ((param_2 < 1 && ((param_2 < 0 || (param_1 == 0)))))) {
      return 0;
    }
    uVar6 = FUN_1991_4031(uVar5,uVar1,0);
    uVar7 = CONCAT22(uVar1,uVar5);
    while (uVar3 = uVar6, local_4 = (undefined2)(uVar3 >> 0x10), uVar3 != 0) {
      lVar11 = FUN_1991_4031(uVar3,4);
      uVar5 = (uint)((ulong)lVar11 >> 0x10);
      if (lVar9 <= lVar11) {
        if ((*(char *)0x2e == '\v') && (iVar4 = FUN_1991_587c(), iVar4 == 0)) {
          iVar4 = FUN_1991_57b8(local_4,uVar3 + lVar9);
          if (0 < iVar4) goto LAB_1991_22bf;
          if (iVar4 < 0) break;
        }
        if (lVar11 != lVar9) {
          uVar7 = FUN_1991_4047(uVar7,0,uVar3 + lVar9,4,lVar11 - lVar9);
          FUN_1991_4047(uVar7);
        }
        uVar8 = FUN_1991_4031(uVar3,0);
        lVar9 = FUN_1991_4047(uVar7,0,uVar8);
        if ((lVar9 != 0) && (iVar4 = FUN_1991_21ae(lVar9), iVar4 == 0)) {
          thunk_EXT_FUN_0000_242d(0x1d);
        }
        FUN_1991_2282(-param_1,-(param_2 + (uint)(param_1 != 0)));
        return uVar3;
      }
      if ((*(uint *)0x11fc <= uVar5) &&
         ((*(uint *)0x11fc < uVar5 || (*(uint *)0x11fa < (uint)lVar11)))) {
        *(uint *)0x11fa = (uint)lVar11;
        *(uint *)0x11fc = uVar5;
      }
      uVar6 = FUN_1991_4031(uVar3,0);
      uVar7 = uVar3;
      if ((uVar6 != 0) && ((uVar6 < uVar3 || (iVar4 = FUN_1991_21ae(uVar6), iVar4 == 0)))) {
        thunk_EXT_FUN_0000_242d(0x1d);
      }
    }
    if (*(int *)0x1206 == 0) {
      return 0;
    }
    if (bVar2) {
      return 0;
    }
    iVar4 = *(int *)0x1206 << 10;
    uVar5 = iVar4 >> 0xf | *(uint *)0x1206 >> 6;
    lVar10 = FUN_1991_40b7(param_1,param_2);
    lVar11 = CONCAT22(uVar5,iVar4);
    if (CONCAT22(uVar5,iVar4) < lVar10) {
      lVar11 = lVar10;
    }
    lVar11 = FUN_1991_3b52(lVar11 + CONCAT22(*(undefined2 *)0xaaa,*(undefined2 *)0xaa8),1);
    if (lVar11 == 0) {
      return 0;
    }
    bVar2 = true;
  } while( true );
}



void FUN_1991_24e4(void)

{
  code *pcVar1;
  
  pcVar1 = (code *)swi(0x15);
  (*pcVar1)();
  return;
}



// WARNING: Removing unreachable block (ram,0x0001bec5)
// WARNING: Removing unreachable block (ram,0x0001be77)
// WARNING: Removing unreachable block (ram,0x0001bee8)

void __cdecl16near FUN_1991_24f0(uint param_1,uint param_2,uint param_3,int param_4)

{
  ulong uVar1;
  ulong uVar2;
  int iVar3;
  uint uVar4;
  undefined2 unaff_DS;
  ulong uVar5;
  long lVar6;
  long lVar7;
  long lVar8;
  undefined4 uVar9;
  
  uVar1 = CONCAT22(param_2,param_1);
  if ((*(uint *)0x9a <= param_2) && ((*(uint *)0x9a < param_2 || (*(uint *)0x98 <= param_1)))) {
    uVar4 = param_2 + param_4 + (uint)CARRY2(param_1,param_3);
    if ((uVar4 <= *(uint *)0x9e) &&
       (((uVar4 < *(uint *)0x9e || (param_1 + param_3 <= *(uint *)0x9c)) &&
        (param_4 != 0 || param_3 != 0)))) {
      if ((*(byte *)0x47 & 0x80) != 0) {
        FUN_1991_24e4(0x111c);
      }
      uVar5 = CONCAT22(*(undefined2 *)0x9a,*(undefined2 *)0x98);
      do {
        uVar2 = uVar5;
        uVar5 = FUN_1991_4031(uVar2,0);
        if (uVar1 <= uVar5) break;
      } while (uVar5 != 0);
      if (((uVar5 != uVar1) &&
          ((uVar5 == 0 ||
           (CONCAT22(param_4 + param_2 + (uint)CARRY2(param_3,param_1),param_3 + param_1) <= uVar5))
          )) && (lVar6 = FUN_1991_4031(uVar2,4), lVar6 + uVar2 <= uVar1)) {
        FUN_1991_4047(uVar2,0,param_1,param_2);
        FUN_1991_4047(param_1,param_2,0,uVar5);
        lVar6 = CONCAT22(param_4,param_3);
        lVar7 = FUN_1991_4031(uVar2,4);
        if (lVar7 + uVar2 == uVar1) {
          lVar6 = FUN_1991_4031(uVar2,4);
          lVar6 = lVar6 + CONCAT22(param_4,param_3);
          FUN_1991_4047(uVar2,4,lVar6);
          FUN_1991_4047(uVar2,0,uVar5);
          uVar1 = uVar2;
        }
        else {
          FUN_1991_4047(param_1,param_2,4,param_3,param_4);
        }
        lVar7 = FUN_1991_4031(uVar1,4);
        if (lVar7 + uVar1 == uVar5) {
          lVar7 = FUN_1991_4031(lVar7 + uVar1,4);
          lVar8 = FUN_1991_4031(uVar1,4);
          lVar6 = lVar7 + lVar8;
          FUN_1991_4047(uVar1,4,lVar8 + lVar7);
          uVar9 = FUN_1991_4031(uVar5,0);
          FUN_1991_4047(uVar1,0,uVar9);
        }
        FUN_1991_2282(param_3,param_4);
        if ((*(char *)0x2e == '\v') &&
           (((*(byte *)0x15 & 0x40) != 0) != ((*(byte *)0x47 & 0x80) != 0))) {
          uVar4 = -(uint)(*(char *)0x9f8 == '\0') & 0x7ff;
          iVar3 = (int)(lVar6 + uVar1);
          FUN_1991_5874(uVar1 + 1,iVar3 + -1,(int)(lVar6 + uVar1 >> 0x10) - (uint)(iVar3 == 0),
                        CONCAT11((char)(uVar4 >> 8) + -0x10,(char)uVar4));
        }
      }
      if ((*(byte *)0x47 & 0x80) != 0) {
        FUN_1991_24e4(0x111b);
      }
    }
  }
  return;
}



// WARNING: Removing unreachable block (ram,0x0001c104)

undefined2 __cdecl16near
FUN_1991_277c(uint param_1,int param_2,uint param_3,int param_4,uint param_5,int param_6)

{
  uint uVar1;
  int iVar2;
  ulong uVar3;
  long lVar4;
  uint uVar5;
  int iVar6;
  int iVar7;
  undefined2 unaff_DS;
  long lVar8;
  ulong uVar9;
  undefined4 uVar10;
  
  uVar5 = param_3 + param_1;
  iVar7 = param_4 + param_2 + (uint)CARRY2(param_3,param_1);
  uVar1 = param_5 - param_3;
  iVar2 = (param_6 - param_4) - (uint)(param_5 < param_3);
  uVar3 = CONCAT22(iVar2,uVar1);
  do {
    lVar8 = CONCAT22(*(undefined2 *)0x9a,*(undefined2 *)0x98);
    do {
      lVar4 = lVar8;
      lVar8 = FUN_1991_4031(lVar4,0);
      if (lVar8 == 0) {
        return 0;
      }
    } while (lVar8 != CONCAT22(iVar7,uVar5));
    uVar9 = FUN_1991_4031(lVar8,4);
    if (uVar9 < uVar3) {
      return 0;
    }
    if (*(char *)0x2e != '\v') break;
    iVar6 = FUN_1991_57b8((int)((ulong)lVar8 >> 0x10),lVar8 + uVar3);
    if (iVar6 < 0) {
      return 0;
    }
  } while (0 < iVar6);
  uVar10 = FUN_1991_4031(lVar8,0);
  FUN_1991_4047(lVar4,0,uVar10);
  FUN_1991_2282(-(int)uVar9,-((int)(uVar9 >> 0x10) + (uint)((int)uVar9 != 0)));
  if (uVar9 != uVar3) {
    FUN_1991_24f0(uVar5 + uVar1,iVar7 + iVar2 + (uint)CARRY2(uVar5,uVar1),uVar9 - uVar3);
  }
  return 1;
}



ulong __cdecl16near FUN_1991_28a0(uint param_1,int param_2)

{
  uint uVar1;
  uint uVar2;
  int iVar3;
  long lVar4;
  char local_a;
  
  uVar1 = param_1 + 0xff;
  param_2 = param_2 + (uint)(0xff00 < param_1);
  lVar4 = FUN_1991_22bb(uVar1,param_2);
  if (lVar4 == 0) {
    return 0;
  }
  iVar3 = (int)((ulong)(lVar4 + 0xff) >> 0x10);
  uVar2 = (uint)(lVar4 + 0xff) & 0xff00;
  FUN_1991_24f0(lVar4,uVar2 - (uint)lVar4,
                (iVar3 - (int)((ulong)lVar4 >> 0x10)) - (uint)(uVar2 < (uint)lVar4));
  param_1._0_1_ = (char)uVar1;
  local_a = (char)lVar4;
  FUN_1991_24f0((uVar1 & 0xff00) + uVar2,param_2 + iVar3 + (uint)CARRY2(uVar1 & 0xff00,uVar2),
                (char)param_1 + local_a,0);
  return lVar4 + 0xffU & 0xffffff00;
}



bool FUN_1991_2916(undefined2 param_1,undefined2 param_2,undefined2 param_3,undefined2 param_4)

{
  undefined2 unaff_DS;
  long lVar1;
  
  lVar1 = FUN_1991_22bb(1,0);
  if (lVar1 != 0) {
    FUN_1991_4047(lVar1,8,param_3,param_4);
    FUN_1991_4047(lVar1,0xc,param_1,param_2);
    FUN_1991_4047(lVar1,4,0xdead,0xdead);
    FUN_1991_4047(lVar1,0,*(undefined2 *)0xc10,*(undefined2 *)0xc12);
    *(undefined2 *)0xc10 = (int)lVar1;
    *(undefined2 *)0xc12 = (int)((ulong)lVar1 >> 0x10);
  }
  return lVar1 != 0;
}



long __cdecl16near FUN_1991_2999(uint param_1,int param_2)

{
  uint uVar1;
  int iVar2;
  undefined2 uVar3;
  undefined4 uVar4;
  long lVar5;
  
  lVar5 = 0;
  if ((-1 < param_2) && ((0 < param_2 || (lVar5 = 0, param_1 != 0)))) {
    uVar4 = FUN_1991_409c(param_1 + 0xfff,param_2 + (uint)(0xf000 < param_1));
    uVar3 = (undefined2)((ulong)uVar4 >> 0x10);
    uVar1 = (uint)uVar4 & 0xff00;
    lVar5 = FUN_1991_28a0(uVar1,uVar3);
    if (lVar5 != 0) {
      iVar2 = FUN_1991_2916(uVar1,uVar3,lVar5);
      if (iVar2 == 0) {
        FUN_1991_24f0(lVar5,uVar1,uVar3);
        lVar5 = 0;
      }
    }
  }
  return lVar5;
}



undefined2 FUN_1991_2a0d(undefined2 param_1,undefined2 param_2)

{
  uint uVar1;
  int iVar2;
  undefined2 unaff_DS;
  long lVar3;
  long lVar4;
  long lVar5;
  undefined4 uVar6;
  
  lVar3 = FUN_1991_40b7(*(undefined2 *)0x9b4,0);
  uVar1 = (uint)(lVar3 + 0xc10) & 0xf;
  lVar3 = FUN_1991_409c(lVar3 + 0xc10,uVar1);
  while( true ) {
    lVar4 = FUN_1991_4031(lVar3,uVar1);
    iVar2 = FUN_1991_21ae(lVar4);
    if ((iVar2 == 0) || (lVar5 = FUN_1991_4031(lVar4,4), lVar5 != -0x21522153)) break;
    if (lVar4 == CONCAT22(param_2,param_1)) {
      FUN_1991_4047(param_1,param_2,4,0xbad0,0xbad0);
      uVar6 = FUN_1991_4031(param_1,param_2,0);
      FUN_1991_4047(lVar3,uVar1,uVar6);
      FUN_1991_24f0(param_1,param_2,1,0);
      return 1;
    }
    uVar1 = 0;
    lVar3 = lVar4;
  }
  return 0;
}



undefined2 __cdecl16near FUN_1991_2ae1(undefined2 param_1,undefined2 param_2)

{
  int iVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  
  iVar1 = FUN_1991_21ae(param_1,param_2);
  if (iVar1 != 0) {
    uVar2 = FUN_1991_4031(param_1,param_2,8);
    uVar3 = FUN_1991_4031(param_1,param_2,0xc);
    iVar1 = FUN_1991_2a0d(param_1,param_2);
    if (iVar1 != 0) {
      FUN_1991_24f0(uVar2,uVar3);
      return 1;
    }
  }
  return 0;
}



// WARNING: Removing unreachable block (ram,0x0001c4f3)

long __cdecl16near FUN_1991_2b3f(undefined2 param_1,undefined2 param_2,uint param_3,int param_4)

{
  int iVar1;
  long lVar2;
  undefined2 unaff_SI;
  undefined2 *puVar3;
  undefined2 unaff_DI;
  undefined2 *puVar4;
  undefined2 unaff_DS;
  long lVar5;
  long lVar6;
  long lVar7;
  long lVar8;
  undefined4 uVar9;
  
  uVar9 = CONCAT22(unaff_DI,unaff_SI);
  iVar1 = FUN_1991_21ae(param_1,param_2);
  if (((iVar1 != 0) && (lVar5 = FUN_1991_4031(param_1,param_2,4,uVar9), lVar5 == -0x21522153)) &&
     ((0 < param_4 || ((-1 < param_4 && (param_3 != 0)))))) {
    lVar5 = FUN_1991_4031(param_1,param_2,0xc,uVar9);
    lVar6 = FUN_1991_4031(param_1,param_2,8);
    lVar7 = FUN_1991_409c(param_3 + 0xfff & 0xf000,param_4 + (uint)(0xf000 < param_3));
    if (lVar5 == lVar7) {
      return lVar6;
    }
    if (lVar7 < lVar5) {
      FUN_1991_24f0(lVar6 + lVar7,lVar5 - lVar7);
      FUN_1991_4047(param_1,param_2,0xc,lVar7);
      return lVar6;
    }
    iVar1 = FUN_1991_277c(lVar6,lVar5,lVar7);
    if (iVar1 != 0) {
      FUN_1991_4047(param_1,param_2,0xc,lVar7);
      return lVar6;
    }
    lVar8 = FUN_1991_28a0(lVar7);
    if (lVar8 != 0) {
      FUN_1991_3f74(*(undefined2 *)0xc14,lVar6,0xffff,0x92);
      FUN_1991_3f74(0x60,lVar8,0xffff,0x92);
      *(byte *)(*(int *)0xc14 + 6) = *(byte *)(*(int *)0xc14 + 6) | 0x8f;
      puVar3 = (undefined2 *)0x0;
      puVar4 = (undefined2 *)0x0;
      for (lVar2 = lVar5 << 3; lVar2 != 0; lVar2 = lVar2 + -1) {
        *puVar4 = *puVar3;
        puVar3 = puVar3 + 1;
        puVar4 = puVar4 + 1;
      }
      DAT_0000_00e6 = DAT_0000_00e6 & 0x70;
      *(byte *)(*(int *)0xc14 + 6) = *(byte *)(*(int *)0xc14 + 6) & 0x70;
      FUN_1991_4047(param_1,param_2,8,lVar8);
      FUN_1991_4047(param_1,param_2,0xc,lVar7);
      FUN_1991_24f0(lVar6,lVar5);
      return lVar8;
    }
  }
  return 0;
}



uint __cdecl16near FUN_1991_2d12(uint param_1)

{
  undefined2 unaff_DS;
  
  if (((*(char *)0x2e != '\0') && (param_1 < *(uint *)0x97c)) &&
     (*(char *)((param_1 & 0xfff8) + 5) == '\0')) {
    return param_1;
  }
  return 0;
}



void __cdecl16near FUN_1991_2d3e(undefined4 param_1,uint param_2)

{
  byte *pbVar1;
  char cVar2;
  byte bVar3;
  int iVar4;
  int iVar5;
  uint uVar6;
  undefined2 uVar7;
  undefined2 unaff_DS;
  long lVar8;
  int local_16;
  int local_14;
  int local_12;
  undefined2 local_10;
  undefined1 local_e;
  undefined1 local_d;
  undefined4 local_c;
  uint local_8;
  uint local_6;
  uint local_4;
  
  *(undefined2 *)0x38 = 0;
  uVar7 = (undefined2)((ulong)param_1 >> 0x10);
  iVar5 = (int)param_1;
  *(undefined2 *)(iVar5 + 0x16) = 0x18;
  *(byte *)(iVar5 + 0x26) = *(byte *)(iVar5 + 0x26) | 1;
  uVar6 = *(uint *)(iVar5 + 0x10);
  if (uVar6 == 0) {
    uVar6 = 1;
  }
  local_8 = uVar6 >> 0xc;
  if ((uVar6 & 0xfff) != 0) {
    local_8 = local_8 + 1;
  }
  local_4 = 0x92;
  cVar2 = *(char *)0x980;
  if (cVar2 == '\x01') {
    lVar8 = FUN_1991_1538(iVar5);
    local_c = 0;
    if (lVar8 != 0) goto LAB_1991_2da0;
  }
  else if (cVar2 != '\x02') {
    if (cVar2 != '\x03') {
      if (cVar2 == '\x04') {
        if (local_8 != 1) {
          return;
        }
        if (uVar6 < 7) {
          *(undefined2 *)(iVar5 + 0x10) = 7;
          *(undefined2 *)(*(int *)0x996 + 0x10) = 7;
        }
        lVar8 = FUN_1991_1538(iVar5);
        local_4 = local_4 | 0x60;
        goto LAB_1991_2da0;
      }
      if (cVar2 == '\x05') {
        if (local_8 != 1) {
          return;
        }
        *(int *)(iVar5 + 0x10) = uVar6 + 7;
        *(int *)(*(int *)0x996 + 0x10) = uVar6 + 7;
        iVar4 = FUN_1991_1538(iVar5);
        local_c._0_2_ = iVar4 + 7U & 0xfff8;
        local_c._2_2_ = 0;
        FUN_1991_39be((uint)local_c,iVar4);
        lVar8 = CONCAT22(local_c._2_2_,(uint)local_c);
        goto LAB_1991_2da0;
      }
      lVar8 = FUN_1991_22bb(uVar6,0);
      local_c = 0;
      if (lVar8 != 0) goto LAB_1991_2da0;
    }
    lVar8 = FUN_1991_1538(iVar5);
    goto LAB_1991_2da0;
  }
  lVar8 = FUN_1991_22bb(uVar6,0);
LAB_1991_2da0:
  local_c._0_2_ = (uint)lVar8;
  if (lVar8 == 0) {
    *(undefined2 *)(iVar5 + 0x16) = 8;
    *(undefined2 *)(iVar5 + 0x10) = *(undefined2 *)0x11fa;
  }
  else {
    if (param_2 == 0) {
      if (*(char *)0x980 < '\x04') {
        local_c = lVar8;
        param_2 = FUN_1991_41cf(local_8);
        lVar8 = local_c;
      }
      else {
        param_2 = FUN_1991_2d12((uint)local_c);
        local_c = lVar8;
        lVar8 = local_c;
      }
      local_c._2_2_ = (int)((ulong)lVar8 >> 0x10);
      local_c._0_2_ = (uint)lVar8;
      if (param_2 == 0) {
        local_c = lVar8;
        if (local_c._2_2_ == 0) {
          *(undefined2 *)(*(int *)0x996 + 6) = (uint)local_c;
          FUN_1991_158f(iVar5);
        }
        else {
          FUN_1991_24f0(lVar8,uVar6,0);
        }
        *(undefined2 *)(iVar5 + 0x16) = 0x1f;
        return;
      }
    }
    *(uint *)(iVar5 + 0x16) = param_2;
    *(byte *)(iVar5 + 0x26) = *(byte *)(iVar5 + 0x26) & 0xfe;
    do {
      local_c._2_2_ = (int)((ulong)lVar8 >> 0x10);
      local_c._0_2_ = (uint)lVar8;
      if (uVar6 < 0x1000) {
        iVar5 = uVar6 << 4;
      }
      else {
        iVar5 = 0;
      }
      local_e = (undefined1)local_4;
      local_d = 0;
      local_10 = 0;
      local_16 = (uint)local_c << 4;
      local_14 = local_c._2_2_ * 0x10 + ((uint)local_c >> 0xc);
      local_12 = iVar5 + -1;
      local_c = lVar8;
      iVar4 = FUN_1991_4108(param_2,&local_16);
      if (iVar4 == 0) {
        thunk_EXT_FUN_0000_242d(0x101);
      }
      bVar3 = *(byte *)0x14;
      local_6 = bVar3 & 0x60;
      if ((bVar3 & 0x60) != 0) {
        FUN_1991_3fb3(param_2,0,iVar5,-(uint)((bVar3 & 0x20) == 0));
      }
      local_c = local_c + 0x1000;
      *(undefined1 *)((param_2 >> 3) + *(int *)0xaa0) = 3;
      param_2 = param_2 + 8;
      iVar5 = FUN_1991_3fd7(iVar5 + -1);
      uVar6 = uVar6 - iVar5;
      lVar8 = local_c;
    } while (uVar6 != 0);
    pbVar1 = (byte *)((param_2 >> 3) + *(int *)0xaa0 + -1);
    *pbVar1 = *pbVar1 & 0xfd;
  }
  return;
}



void __cdecl16near FUN_1991_2f6e(undefined4 param_1)

{
  byte *pbVar1;
  byte bVar2;
  uint uVar3;
  long lVar4;
  int iVar5;
  uint uVar6;
  uint uVar7;
  int iVar8;
  undefined2 uVar9;
  undefined2 unaff_DS;
  long lVar10;
  int local_1a;
  uint local_18;
  int local_16;
  byte local_12;
  undefined4 local_10;
  undefined4 local_c;
  char local_8;
  uint local_6;
  uint local_4;
  
  *(undefined2 *)0x38 = 0;
  local_8 = '\0';
  uVar9 = (undefined2)((ulong)param_1 >> 0x10);
  iVar8 = (int)param_1;
  *(undefined2 *)(iVar8 + 0x16) = 1;
  uVar3 = *(uint *)(iVar8 + 0x10);
  if (0x1000 < uVar3) {
    return;
  }
  if (uVar3 == 0) {
    return;
  }
  local_4 = *(uint *)(iVar8 + 6);
  if (*(uint *)0x97c <= local_4) {
    return;
  }
  iVar5 = FUN_1991_416e(local_4,&local_1a);
  if (iVar5 == 0) {
    return;
  }
  if ((local_12 & 0x10) == 0) {
    return;
  }
  uVar6 = FUN_1991_3fd7(local_16);
  lVar10 = FUN_1991_409c(local_1a,local_18);
  if ((lVar10 != 0) && ((*(byte *)((local_4 >> 3) + *(int *)0xaa0) & 1) == 0)) {
    return;
  }
  *(undefined2 *)(iVar8 + 0x16) = 8;
  *(undefined2 *)(iVar8 + 0x10) = 0;
  local_c = lVar10;
  local_10 = lVar10;
  if (((lVar10 == 0) && (*(char *)0x980 < '\x03')) || (0xf < local_18)) {
    if ((uVar6 == uVar3) && ('\x02' < *(char *)0x980)) {
      lVar10 = FUN_1991_1538(iVar8);
      goto joined_r0x0001c948;
    }
    if (uVar6 <= uVar3) {
      if (uVar3 <= uVar6) goto LAB_1991_311f;
      iVar5 = FUN_1991_277c(lVar10,uVar6,0,uVar3,0);
      lVar10 = local_c;
      if (iVar5 != 0) goto LAB_1991_311f;
      goto LAB_1991_307c;
    }
    uVar7 = uVar6 - uVar3;
    iVar5 = -(uint)(uVar6 < uVar3);
    lVar4 = lVar10 + (ulong)uVar3;
  }
  else {
    lVar10 = FUN_1991_15b5(iVar8);
    if (lVar10 != 0) goto LAB_1991_311f;
    local_c = 0;
    if ('\x02' < *(char *)0x980) {
      return;
    }
LAB_1991_307c:
    lVar10 = FUN_1991_22bb(uVar3,0);
    if (lVar10 == 0) {
      if (*(char *)0x980 == '\x02') {
        return;
      }
      *(uint *)(*(int *)0x996 + 0x10) = uVar3;
      local_c = lVar10;
      lVar10 = FUN_1991_1538(iVar8);
joined_r0x0001c948:
      if (lVar10 == 0) {
        return;
      }
    }
    if (uVar6 == 0) goto LAB_1991_311f;
    local_c = lVar10;
    FUN_1991_0a89(0);
    local_8 = local_8 + '\x01';
    FUN_1991_3eaa(local_c,local_4);
    if (local_18 < 0x10) {
      iVar5 = *(int *)0x996;
      *(undefined2 *)(iVar5 + 0x16) = 0x4900;
      *(undefined2 *)(iVar5 + 6) = (int)local_10;
      FUN_1991_158f(iVar8);
      lVar10 = local_c;
      goto LAB_1991_311f;
    }
    iVar5 = 0;
    uVar7 = uVar6;
    lVar10 = local_10;
    lVar4 = local_10;
  }
  local_10 = lVar10;
  FUN_1991_24f0(lVar4,uVar7,iVar5);
  lVar10 = local_c;
LAB_1991_311f:
  local_c._2_2_ = (int)((ulong)lVar10 >> 0x10);
  local_c._0_2_ = (uint)lVar10;
  local_16 = uVar3 * 0x10 + -1;
  local_10._0_2_ = local_1a;
  local_10._2_2_ = local_18;
  local_1a = (uint)local_c << 4;
  local_18 = local_c._2_2_ * 0x10 + ((uint)local_c >> 0xc);
  local_c = lVar10;
  FUN_1991_4108(local_4,&local_1a);
  pbVar1 = (byte *)((local_4 >> 3) + *(int *)0xaa0);
  *pbVar1 = *pbVar1 | 1;
  FUN_1991_3a65(local_4,(int)local_10,local_10._2_2_,uVar6 * 0x10 + -1,local_1a,local_18);
  if (uVar6 < uVar3) {
    bVar2 = *(byte *)0x14;
    local_6 = bVar2 & 0x60;
    if ((bVar2 & 0x60) != 0) {
      FUN_1991_3fb3(local_4,uVar6 * 0x10,(uVar3 - uVar6) * 0x10,-(uint)((bVar2 & 0x20) == 0));
    }
  }
  *(byte *)(iVar8 + 0x26) = *(byte *)(iVar8 + 0x26) & 0xfe;
  *(uint *)(iVar8 + 0x10) = uVar3;
  if (local_8 != '\0') {
    FUN_1991_0a89(1);
  }
  return;
}



void __cdecl16near FUN_1991_31d7(undefined4 param_1)

{
  undefined2 uVar1;
  int iVar2;
  int iVar3;
  undefined2 uVar4;
  undefined2 unaff_DS;
  undefined4 uVar5;
  undefined2 local_12;
  uint local_10;
  undefined2 local_e;
  byte local_a;
  uint local_8;
  int local_6;
  uint local_4;
  
  local_6 = 0;
  uVar4 = (undefined2)((ulong)param_1 >> 0x10);
  iVar3 = (int)param_1;
  *(undefined2 *)(iVar3 + 0x16) = 1;
  local_4 = *(uint *)(iVar3 + 6);
  *(uint *)0x38 = local_4;
  while( true ) {
    FUN_1991_416e(local_4,&local_12);
    if ((local_a & 0x10) == 0) {
      return;
    }
    if (*(uint *)(iVar3 + 2) == local_4) {
      return;
    }
    if ((*(byte *)((local_4 >> 3) + (int)*(undefined4 *)0xaa0) & 1) == 0) {
      return;
    }
    if ((local_10 < 0x11) && (local_10 < 0x10)) {
      uVar1 = FUN_1991_409c(local_12,local_10);
      *(undefined2 *)(*(int *)0x996 + 6) = uVar1;
      if ((*(int *)(*(int *)0x996 + 6) != local_6) && (iVar2 = FUN_1991_158f(iVar3), iVar2 != 0)) {
        *(undefined2 *)(iVar3 + 0x16) = *(undefined2 *)(*(int *)0x996 + 0x16);
        return;
      }
      local_6 = FUN_1991_3fd7(local_e);
      local_6 = local_6 + *(int *)(*(int *)0x996 + 6);
    }
    else {
      uVar1 = FUN_1991_3fd7(local_e);
      uVar5 = FUN_1991_409c(local_12,local_10,uVar1,0);
      FUN_1991_24f0(uVar5);
    }
    local_8 = (uint)*(char *)((local_4 >> 3) + (int)*(undefined4 *)0xaa0);
    FUN_1991_41e1(local_4);
    if (((local_8 & 0x10) != 0) && ((*(byte *)0x15 & 4) == 0)) {
      FUN_1991_3af9(local_4,local_12,local_10,local_e);
    }
    if ((local_8 & 2) == 0) break;
    local_4 = local_4 + 8;
  }
  *(byte *)(iVar3 + 0x26) = *(byte *)(iVar3 + 0x26) & 0xfe;
  *(undefined2 *)(iVar3 + 0x16) = *(undefined2 *)(iVar3 + 6);
  *(undefined2 *)(iVar3 + 6) = 0;
  if (*(int *)(iVar3 + 4) == *(int *)0x38) {
    *(undefined2 *)(iVar3 + 4) = 0;
  }
  FUN_1991_0a89(1);
  return;
}



// WARNING: Instruction at (ram,0x000155c4) overlaps instruction at (ram,0x000155c3)
// 
// WARNING: Control flow encountered bad instruction data
// WARNING (jumptable): Stack frame is not setup normally: Input value of stackpointer is not used
// WARNING: Stack frame is not setup normally: Input value of stackpointer is not used

undefined4 * __cdecl16near FUN_1991_3309(void)

{
  uint *puVar1;
  byte *pbVar2;
  undefined2 *puVar3;
  byte *pbVar4;
  char *pcVar5;
  undefined4 uVar6;
  undefined3 uVar7;
  undefined4 uVar8;
  char cVar9;
  undefined1 uVar10;
  byte bVar11;
  int *piVar13;
  undefined2 uVar14;
  uint uVar15;
  uint uVar16;
  undefined4 *puVar17;
  undefined4 *puVar18;
  ulong uVar19;
  byte bVar20;
  ulong in_ECX;
  long lVar21;
  ulong in_EDX;
  char cVar22;
  int iVar23;
  undefined4 in_EBX;
  undefined4 uVar24;
  undefined1 *puVar25;
  uint *puVar26;
  uint *puVar27;
  uint *puVar28;
  undefined2 *puVar29;
  undefined1 *puVar30;
  undefined2 *puVar31;
  undefined2 *puVar32;
  uint *puVar33;
  undefined1 *puVar34;
  undefined2 *puVar35;
  undefined2 *puVar36;
  uint *puVar37;
  uint *puVar38;
  uint *puVar39;
  uint *puVar40;
  undefined2 *puVar41;
  undefined1 *puVar42;
  undefined2 *puVar43;
  uint *puVar44;
  uint *puVar45;
  undefined1 *puVar46;
  int iVar47;
  undefined1 *puVar48;
  undefined1 *puVar49;
  undefined1 *puVar50;
  undefined2 *puVar51;
  undefined1 *puVar52;
  undefined1 *puVar53;
  int *piVar54;
  undefined2 *puVar55;
  undefined1 *puVar56;
  int *piVar57;
  undefined1 *puVar58;
  undefined1 *puVar59;
  undefined1 *puVar60;
  undefined1 *puVar61;
  int *piVar62;
  int *piVar63;
  undefined1 *puVar64;
  undefined1 *puVar65;
  undefined1 *puVar66;
  undefined1 *puVar67;
  undefined1 *puVar68;
  undefined1 *puVar69;
  undefined1 *puVar70;
  undefined2 *puVar71;
  undefined1 *puVar72;
  undefined1 *puVar73;
  undefined1 *puVar74;
  undefined1 *puVar75;
  undefined1 *puVar76;
  undefined1 *puVar77;
  undefined2 *puVar78;
  undefined2 *puVar79;
  undefined2 *puVar80;
  undefined2 *puVar81;
  undefined2 *puVar82;
  undefined1 *puVar83;
  undefined2 *puVar84;
  undefined1 *puVar85;
  undefined1 *puVar86;
  undefined1 *puVar87;
  uint *puVar88;
  uint *puVar89;
  uint *puVar90;
  uint *puVar91;
  undefined1 *puVar92;
  undefined2 *puVar93;
  undefined2 *puVar94;
  undefined2 *puVar95;
  undefined1 *puVar96;
  undefined1 *puVar97;
  undefined1 *puVar98;
  undefined1 *puVar99;
  undefined1 *puVar100;
  undefined2 *puVar101;
  undefined2 *puVar102;
  undefined1 *puVar103;
  undefined1 *puVar104;
  undefined1 *puVar105;
  undefined1 *puVar106;
  undefined1 *puVar107;
  int *piVar108;
  int *piVar109;
  int *piVar110;
  int *piVar111;
  int iVar112;
  int *piVar113;
  uint *puVar114;
  uint *puVar115;
  undefined2 *puVar116;
  undefined2 *puVar117;
  undefined2 *puVar118;
  undefined2 *puVar119;
  uint *puVar120;
  uint *puVar121;
  undefined1 *puVar122;
  undefined1 *puVar123;
  undefined1 *puVar124;
  undefined2 *puVar125;
  undefined2 *puVar126;
  uint *puVar127;
  uint *puVar128;
  int *piVar129;
  undefined4 in_ESP;
  uint *puVar130;
  undefined4 in_EBP;
  uint *puVar131;
  undefined1 *puVar132;
  undefined2 *puVar133;
  undefined4 *in_ESI;
  undefined4 *puVar134;
  uint uVar135;
  ulong uVar136;
  undefined4 in_EDI;
  undefined4 *puVar137;
  undefined2 uVar138;
  undefined2 uVar139;
  undefined2 unaff_SS;
  int unaff_DS;
  byte in_AF;
  byte in_TF;
  byte in_IF;
  byte in_NT;
  byte in_AC;
  byte in_VIF;
  byte in_VIP;
  byte in_ID;
  byte bVar12;
  
  iVar112 = (int)in_ESP;
  uVar14 = (undefined2)((ulong)in_ESP >> 0x10);
  *(undefined2 *)(iVar112 + -2) = (int)in_EBP;
  puVar131 = (uint *)CONCAT22((int)((ulong)in_EBP >> 0x10),(uint *)(iVar112 + -2));
  *(undefined2 *)(iVar112 + -0x1e) = (int)in_EDI;
  *(undefined2 *)(iVar112 + -0x20) = (undefined4 *)in_ESI;
  *(undefined1 *)(iVar112 + -6) = 0;
  uVar138 = (undefined2)((ulong)*(undefined4 *)(iVar112 + 2) >> 0x10);
  uVar139 = (undefined2)((ulong)in_EBX >> 0x10);
  iVar23 = (int)*(undefined4 *)(iVar112 + 2);
  puVar134 = (undefined4 *)
             CONCAT22((int)((ulong)in_EDI >> 0x10),(undefined4 *)*(undefined2 *)(iVar23 + 6));
  *(int *)(iVar112 + -0x22) = iVar112 + -0x1c;
  *(undefined2 *)(iVar112 + -0x24) = *(undefined2 *)(iVar23 + 6);
  piVar113 = (int *)(iVar112 + -0x26);
  *(undefined2 *)(iVar112 + -0x26) = 0xcc35;
  FUN_1991_416e();
  puVar26 = (uint *)(piVar113 + 3);
  piVar54 = piVar113 + 3;
  piVar13 = piVar113 + 3;
  piVar111 = piVar113 + 3;
  puVar130 = (uint *)puVar131;
  puVar130[-1] = (uint)(byte)puVar130[-9];
  puVar18 = (undefined4 *)puVar134;
  uVar16 = (uint)*(char *)(((uint)puVar18 >> 3) + *(int *)0xaa0);
  puVar130[-3] = uVar16;
  if ((((uVar16 & 1) == 0) &&
      (puVar17 = (undefined4 *)*(uint *)0xc26,
      (undefined4 *)*(uint *)((int)*(undefined4 *)(puVar130 + 2) + 0x22) != puVar17)) ||
     ((puVar17 = (undefined4 *)((byte)puVar130[-1] & 0x18), puVar17 != (undefined4 *)0x10 &&
      ((puVar17 != (undefined4 *)0x18 || ('\x03' < *(char *)0x980)))))) goto LAB_1991_336a;
  uVar19 = *(ulong *)(puVar130 + 2);
  uVar138 = (undefined2)(uVar19 >> 0x10);
  pbVar2 = (byte *)((int)uVar19 + 0x26);
  *pbVar2 = *pbVar2 & 0xfe;
  bVar20 = (byte)in_ECX;
  if (puVar130[-0xc] < 0x10) {
    cVar9 = *(char *)0x980;
    if ((uint)(int)cVar9 < 6) {
      iVar23 = cVar9 * 2;
      bVar11 = (byte)(uVar19 & 0xffff);
      cVar22 = (char)iVar23;
      bVar12 = (byte)uVar19;
      switch(cVar9) {
      case '\0':
        bVar20 = *(byte *)((int)puVar130 + 0xf);
        for (lVar21 = 8; lVar21 != 0; lVar21 = lVar21 + -1) {
          *puVar134 = *in_ESI;
          in_ESI = in_ESI + 1;
          puVar134 = puVar134 + 1;
        }
        iVar23 = unaff_DS + (uint)in_EDX;
        lVar21 = (ulong)CONCAT11((byte)((uVar19 & 0xffff) >> 8) & bVar20,bVar11) * 0x10;
        piVar113[2] = 8;
        uVar139 = piVar113[2];
        *(undefined2 *)(iVar23 + 0x1a) = (int)lVar21;
        *(undefined1 *)(iVar23 + 0x1c) = (char)((ulong)lVar21 >> 0x10);
        *(undefined1 *)(iVar23 + 0x1f) = 0;
        piVar113[2] = 0x20;
        uVar139 = piVar113[2];
        puVar131 = (uint *)0xc16;
        uVar16 = *puVar131;
        uVar15 = *puVar131;
        *puVar131 = *puVar131 + 0x400;
        iVar23 = *(int *)0xc16;
        *(ulong *)(iVar23 + -4) =
             (ulong)(in_NT & 1) * 0x4000 | (ulong)SCARRY2(uVar15,0x400) * 0x800 |
             (ulong)(in_IF & 1) * 0x200 | (ulong)(in_TF & 1) * 0x100 |
             (ulong)((int)*puVar131 < 0) * 0x80 | (ulong)(*puVar131 == 0) * 0x40 |
             (ulong)(in_AF & 1) * 0x10 | (ulong)((POPCOUNT(*puVar131 & 0xff) & 1U) == 0) * 4 |
             (ulong)(0xfbff < uVar16) | (ulong)(in_ID & 1) * 0x200000 |
             (ulong)(in_VIP & 1) * 0x100000 | (ulong)(in_VIF & 1) * 0x80000 |
             (ulong)(in_AC & 1) * 0x40000;
        *(undefined2 *)(iVar23 + -6) = 0;
        *(undefined2 *)(iVar23 + -8) = 0x1000;
        *(undefined2 *)(iVar23 + -10) = 0;
        *(undefined2 *)(iVar23 + -0xc) = 0x4f97;
                    // WARNING: Offset must be between 0x0 and 0x10ffef, got 0x4ec5ebaa instead!
                    // WARNING: Treating indirect jump as call
        puVar18 = (undefined4 *)(*(code *)*(undefined4 *)(CONCAT11(0xf4,cVar22) + 0x4d78))();
        return puVar18;
      case '\x01':
                    // WARNING: Bad instruction - Truncating control flow here
        halt_baddata();
      case '\x02':
                    // WARNING: Bad instruction - Truncating control flow here
        halt_baddata();
      case '\x03':
        puVar17 = (undefined4 *)in_ESI;
        *(char *)(iVar23 + (int)puVar17) = *(char *)(iVar23 + (int)puVar17) + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar12;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar12) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar12;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar11;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar11) - CARRY1(bVar20,bVar12);
        *(byte *)puVar130 = (char)*puVar130 + bVar11;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar11;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar11) - CARRY1(bVar20,bVar11);
        *(byte *)puVar130 = (char)*puVar130 + bVar11;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar11;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar11) - CARRY1(bVar20,bVar11);
        *(byte *)puVar130 = (char)*puVar130 + bVar11;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar11;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar11) - CARRY1(bVar20,bVar11);
        *(byte *)puVar130 = (char)*puVar130 + bVar11;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar11;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar11) - CARRY1(bVar20,bVar11);
        *(byte *)puVar130 = (char)*puVar130 + bVar11;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar11;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar11) - CARRY1(bVar20,bVar11);
        *(byte *)puVar130 = (char)*puVar130 + bVar11;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar11;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar11) - CARRY1(bVar20,bVar11);
        *(byte *)puVar130 = (char)*puVar130 + bVar11;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar11;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar11) - CARRY1(bVar20,bVar11);
        *(byte *)puVar130 = (char)*puVar130 + bVar11;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar11;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar11) - CARRY1(bVar20,bVar11);
        *(byte *)puVar130 = (char)*puVar130 + bVar11;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar11;
        *(char *)(iVar23 + (int)puVar17) =
             (*(char *)(iVar23 + (int)puVar17) - bVar11) - CARRY1(bVar20,bVar11);
        *(byte *)puVar130 = (char)*puVar130 + bVar11;
        *(char *)(iVar23 + (int)puVar17) = *(char *)(iVar23 + (int)puVar17) + bVar11;
        *(char *)(iVar23 + (int)puVar17) = *(char *)(iVar23 + (int)puVar17) + bVar11;
        *(char *)(iVar23 + (int)puVar17) = *(char *)(iVar23 + (int)puVar17) + bVar11;
        pbVar2 = (byte *)(iVar23 + (int)puVar17);
        bVar20 = *pbVar2;
        *pbVar2 = *pbVar2 + bVar11;
        piVar13 = (int *)CONCAT11(((char)*pbVar2 < '\0') << 7 | (*pbVar2 == 0) << 6 | in_AF << 4 |
                                  ((POPCOUNT(*pbVar2) & 1U) == 0) << 2 | 2 | CARRY1(bVar20,bVar11),
                                  bVar11);
        *(char *)(iVar23 + (int)puVar17) = *(char *)(iVar23 + (int)puVar17) + bVar11;
        *(char *)(iVar23 + (int)puVar17) = *(char *)(iVar23 + (int)puVar17) + bVar11;
        *(char *)((int)piVar13 + (int)puVar17) = *(char *)((int)piVar13 + (int)puVar17) + cVar22;
        *piVar13 = *piVar13 + 1;
        *(char *)((int)piVar13 + (int)puVar17) = *(char *)((int)piVar13 + (int)puVar17) + cVar22;
        *(char *)((int)puVar130 + (int)puVar18) =
             *(char *)((int)puVar130 + (int)puVar18) + (char)in_EDX;
                    // WARNING: Bad instruction - Truncating control flow here
        halt_baddata();
      case '\x04':
        puVar130[-2] = CONCAT11(bVar20,bVar12 | (byte)puVar131);
        puVar130[-1] = (uint)in_EDX;
        puVar130[-3] = 0;
        pcVar5 = (char *)puVar130[2];
        if (*(int *)(pcVar5 + 2) != 0) {
          if (*pcVar5 == 'M') {
            puVar130[-3] = 0x200;
          }
          uVar15 = *(int *)(pcVar5 + 2) - puVar130[-3];
          puVar131 = puVar130 + -2;
          uVar16 = *puVar131;
          *puVar131 = *puVar131 + uVar15;
          puVar130[-1] = puVar130[-1] + ((int)uVar15 >> 0xf) + (uint)CARRY2(uVar16,uVar15);
        }
        return (undefined4 *)puVar130[-2];
      }
switchD_1000_ccb5_caseD_2:
      if (iVar23 == 0) {
        piVar113[2] = (int)puVar18;
        piVar57 = piVar113 + 1;
        piVar113[1] = 0x5c0a;
        puVar17 = (undefined4 *)thunk_FUN_11bd_61ee();
        puVar130 = (uint *)puVar131;
        puVar130[-0x31] = (uint)puVar17;
        puVar130[-0x30] = (uint)in_EDX;
        uVar16 = (uint)in_EDX | (uint)puVar17;
        in_EDX = (ulong)uVar16;
        piVar13 = (int *)((int)piVar57 + 4);
        puVar18 = (undefined4 *)in_ESI;
        if (uVar16 != 0) {
          *(char *)(puVar130 + -2) = (char)puVar130[-2] + '\x01';
          piVar13 = (int *)((int)piVar57 + 4);
          puVar18 = puVar17;
          if ((0 < (int)puVar130[-0x30]) &&
             ((1 < (int)puVar130[-0x30] ||
              (piVar13 = (int *)((int)piVar57 + 4), puVar17 != (undefined4 *)0x0)))) {
            puVar18 = puVar17 + -0xe20;
            uVar16 = (puVar130[-0x30] - 1) - (uint)(puVar17 < (undefined4 *)0x3880);
            in_EDX = (ulong)uVar16;
            puVar130[-0x31] = (uint)puVar18;
            puVar130[-0x30] = uVar16;
            piVar13 = (int *)((int)piVar57 + 4);
          }
        }
      }
      else {
        *(char *)(puVar130 + -2) = (char)puVar130[-2] + '\x01';
        piVar13 = piVar113 + 3;
        puVar18 = (undefined4 *)0x2;
      }
      uVar16 = (uint)in_EDX;
      *(undefined2 *)((int)piVar13 + -2) = 0x2c;
      puVar130 = (uint *)puVar131;
      puVar130[-1] = (uint)(undefined4 *)puVar134;
      *(undefined2 *)((int)piVar13 + -4) = (undefined4 *)puVar134;
      puVar58 = (undefined1 *)((int)piVar13 + -6);
      *(undefined2 *)((int)piVar13 + -6) = 0x5c40;
      iVar23 = FUN_11bd_6120();
      puVar60 = puVar58 + 6;
      if (iVar23 != 0) {
        *(int *)(puVar58 + 4) = iVar23 + 1;
        puVar59 = puVar58 + 2;
        *(undefined2 *)(puVar58 + 2) = 0x5c4f;
        uVar15 = thunk_FUN_11bd_61ee();
        puVar130[-0x2c] = uVar15;
        puVar60 = puVar59 + 4;
        if (-1 < (int)uVar15) {
          *(int *)0x12 = uVar15 + 1;
          *(int *)0x10 = uVar15 + 1;
          *(char *)(puVar130 + -0x74) = (char)puVar130[-0x74] + '\x01';
          puVar60 = puVar59 + 4;
        }
      }
      *(undefined2 *)(puVar60 + -2) = 0x40;
      *(uint *)(puVar60 + -4) = puVar130[-1];
      puVar61 = puVar60 + -6;
      *(undefined2 *)(puVar60 + -6) = 0x5c6c;
      iVar23 = FUN_11bd_6120();
      puVar60 = puVar61 + 6;
      if (iVar23 != 0) {
        *(int *)(puVar61 + 4) = iVar23;
        piVar62 = (int *)(puVar61 + 2);
        *(undefined2 *)(puVar61 + 2) = 0x5c78;
        uVar15 = FUN_11bd_45c3();
        puVar130[-0x2c] = uVar15;
        if (uVar15 != 0) {
          *(uint *)0xeca = uVar15;
          *(byte *)0x11d2 = *(byte *)0x11d2 | 2;
        }
        piVar62[1] = 0x2d;
        *piVar62 = iVar23;
        piVar63 = piVar62 + -1;
        piVar62[-1] = 0x5c90;
        iVar23 = FUN_11bd_6120();
        puVar60 = (undefined1 *)((int)piVar63 + 6);
        if (iVar23 != 0) {
          *(int *)((int)piVar63 + 4) = iVar23;
          puVar64 = (undefined1 *)((int)piVar63 + 2);
          *(undefined2 *)((int)piVar63 + 2) = 0x5c9c;
          uVar15 = FUN_11bd_45c3();
          puVar130[-0x2c] = uVar15;
          puVar60 = puVar64 + 4;
          if (uVar15 != 0) {
            *(uint *)0xece = uVar15;
            *(char *)(puVar130 + -0x2f) = (char)puVar130[-0x2f] + '\x01';
            *(byte *)0x11d2 = *(byte *)0x11d2 | 4;
            puVar60 = puVar64 + 4;
          }
        }
      }
      *(undefined2 *)(puVar60 + -2) = 0x3a;
      *(uint *)(puVar60 + -4) = puVar130[-1];
      puVar65 = puVar60 + -6;
      *(undefined2 *)(puVar60 + -6) = 0x5cb9;
      iVar23 = FUN_11bd_6120();
      puVar66 = puVar65 + 6;
      if (iVar23 != 0) {
        *(int *)(puVar65 + 4) = iVar23;
        puVar67 = puVar65 + 2;
        *(undefined2 *)(puVar65 + 2) = 0x5cc5;
        uVar139 = FUN_11bd_45c3();
        puVar66 = puVar67 + 4;
        *(undefined2 *)0xecc = uVar139;
        *(char *)(puVar130 + -0x2f) = (char)puVar130[-0x2f] + '\x01';
        *(byte *)0x11d2 = *(byte *)0x11d2 | 1;
      }
      *(undefined2 *)(puVar66 + -2) = 0x5e;
      *(uint *)(puVar66 + -4) = puVar130[-1];
      puVar68 = puVar66 + -6;
      *(undefined2 *)(puVar66 + -6) = 0x5cdb;
      iVar23 = FUN_11bd_6120();
      puVar69 = puVar68 + 6;
      if (iVar23 != 0) {
        *(int *)(puVar68 + 4) = iVar23;
        puVar70 = puVar68 + 2;
        *(undefined2 *)(puVar68 + 2) = 0x5ce7;
        uVar139 = FUN_11bd_45c3();
        puVar69 = puVar70 + 4;
        *(undefined2 *)0x14 = uVar139;
      }
      *(undefined2 *)(puVar69 + -2) = 0xeb4;
      *(uint *)(puVar69 + -4) = puVar130[-1];
      puVar71 = (undefined2 *)(puVar69 + -6);
      *(undefined2 *)(puVar69 + -6) = 0x5cf5;
      iVar23 = FUN_11bd_614a();
      if (iVar23 != 0) {
        *(char *)0x11f1 = *(char *)0x11f1 + '\x01';
      }
      puVar71[2] = 0xeb9;
      puVar71[1] = puVar130[-1];
      *puVar71 = 0x5d09;
      iVar23 = FUN_11bd_614a();
      if (iVar23 != 0) {
        *(undefined1 *)0x36 = 0x80;
      }
      puVar71[2] = 0x2b;
      puVar71[1] = puVar130[-1];
      *puVar71 = 0x5d1e;
      iVar23 = FUN_11bd_6120();
      if (iVar23 != 0) {
        *(byte *)0x47 = *(byte *)0x47 | 2;
      }
      puVar71[2] = 0x56;
      puVar71[1] = puVar130[-1];
      *puVar71 = 0x5d33;
      iVar23 = FUN_11bd_6120();
      puVar60 = (undefined1 *)((int)puVar71 + 6);
      if ((iVar23 != 0) &&
         (puVar60 = (undefined1 *)((int)puVar71 + 6), *(char *)(iVar23 + 1) != 'C')) {
        *(int *)((int)puVar71 + 4) = iVar23;
        puVar72 = (undefined1 *)((int)puVar71 + 2);
        *(undefined2 *)((int)puVar71 + 2) = 0x5d45;
        uVar15 = FUN_11bd_45c3();
        puVar130[-0x2c] = uVar15;
        puVar60 = puVar72 + 4;
        if (uVar15 != 0) {
          *(undefined1 *)0x34 = (char)uVar15;
          puVar60 = puVar72 + 4;
        }
      }
      *(undefined2 *)(puVar60 + -2) = 0xebd;
      *(uint *)(puVar60 + -4) = puVar130[-1];
      puVar73 = puVar60 + -6;
      *(undefined2 *)(puVar60 + -6) = 0x5d5a;
      iVar23 = FUN_11bd_614a();
      puVar60 = puVar73 + 6;
      if (iVar23 != 0) {
        *(int *)(puVar73 + 4) = iVar23 + 3;
        puVar74 = puVar73 + 2;
        *(undefined2 *)(puVar73 + 2) = 0x5d69;
        uVar15 = FUN_11bd_45c3();
        puVar130[-0x2c] = uVar15;
        puVar60 = puVar74 + 4;
        if (uVar15 != 0) {
          *(uint *)0xd0e = uVar15;
          puVar60 = puVar74 + 4;
        }
      }
      *(undefined4 **)(puVar60 + -2) = puVar18;
      puVar75 = puVar60 + -4;
      *(undefined2 *)(puVar60 + -4) = 0x5d78;
      iVar23 = FUN_11bd_4587();
      puVar76 = puVar75 + 4;
      if (iVar23 == 0) {
        *(byte *)0x47 = *(byte *)0x47 | 1;
      }
      else {
        puVar77 = puVar75 + 2;
        *(undefined2 *)(puVar75 + 2) = 0x5d80;
        FUN_11bd_6395();
        puVar76 = puVar77 + 2;
      }
      puVar78 = (undefined2 *)(puVar76 + -2);
      *(undefined2 *)(puVar76 + -2) = 0x5d8a;
      FUN_11bd_698b();
      puVar133 = puVar78 + 1;
      if ((int)puVar18 < 0) {
        *(char *)(puVar130 + -0x2b) = (char)puVar130[-0x2b] + '\x01';
        puVar18 = (undefined4 *)-(int)puVar18;
        if (puVar18 == (undefined4 *)0xb) {
          *puVar78 = 0x5da2;
          FUN_11bd_76db();
          puVar133 = (undefined2 *)((int)puVar78 + 2);
        }
        goto LAB_11bd_42c7;
      }
      *puVar78 = 0x5da8;
      iVar23 = FUN_11bd_66a2();
      puVar84 = puVar78 + 1;
      if (iVar23 != 0) {
        puVar18 = (undefined4 *)0x10;
      }
      if (puVar18 == (undefined4 *)0x2) {
        *puVar78 = 0x5db7;
        FUN_11bd_6667();
        puVar84 = (undefined2 *)((int)puVar78 + 2);
      }
      if (*(char *)0x2f < '\x03') goto LAB_11bd_4257;
      *(undefined2 *)0x9c2 = 0x296d;
      puVar79 = (undefined2 *)((int)puVar84 + -2);
      *(undefined2 *)((int)puVar84 + -2) = 0x5dc7;
      uVar10 = FUN_11bd_6618();
      *(undefined1 *)0x2f = uVar10;
      *puVar79 = 0x5dcd;
      uVar15 = FUN_11bd_6d9c();
      puVar80 = puVar79 + 1;
      puVar130[-0x2c] = uVar15;
      if (uVar15 != 0) {
        *(undefined1 *)0x46 = (char)puVar18;
        if (puVar18 == (undefined4 *)0xb) {
          *puVar79 = 0x5de1;
          iVar23 = FUN_11bd_76db();
          puVar80 = (undefined2 *)((int)puVar79 + 2);
          puVar133 = (undefined2 *)((int)puVar79 + 2);
          if (0 < iVar23) goto LAB_11bd_42c7;
        }
        puVar18 = (undefined4 *)0x0;
        goto LAB_11bd_4548;
      }
      *puVar79 = 0x5df0;
      uVar15 = FUN_11bd_76db();
      puVar82 = puVar79 + 1;
      puVar133 = puVar79 + 1;
      puVar130[-0x2c] = uVar15;
      if ((int)uVar15 < 1) {
        *(undefined2 *)0x11d4 = 4;
        if ((int)uVar15 < 0) {
          *puVar79 = 0x11;
          puVar81 = puVar79 + -1;
          puVar79[-1] = 0x5e13;
          FUN_11bd_22ad();
          puVar82 = (undefined2 *)((int)puVar81 + 4);
        }
        *(undefined2 *)((int)puVar82 + -2) = puVar18;
        puVar83 = (undefined1 *)((int)puVar82 + -4);
        *(undefined2 *)((int)puVar82 + -4) = 0x5e18;
        iVar23 = FUN_11bd_4587();
        puVar84 = (undefined2 *)(puVar83 + 4);
        if (iVar23 == 0) {
          puVar18 = (undefined4 *)0x3;
          puVar85 = puVar83 + 2;
          *(undefined2 *)(puVar83 + 2) = 0x5e23;
          iVar23 = FUN_11bd_6672();
          puVar84 = (undefined2 *)(puVar85 + 2);
          puVar133 = (undefined2 *)(puVar85 + 2);
          if (iVar23 == 0) goto LAB_11bd_42c7;
        }
LAB_11bd_4257:
        *(undefined2 *)((int)puVar84 + -2) = puVar18;
        puVar86 = (undefined1 *)((int)puVar84 + -4);
        *(undefined2 *)((int)puVar84 + -4) = 0x5e2b;
        iVar23 = FUN_11bd_4587();
        puVar60 = puVar86 + 4;
        if (iVar23 == 0) {
          puVar87 = puVar86 + 2;
          *(undefined2 *)(puVar86 + 2) = 0x5e33;
          iVar23 = FUN_11bd_6672();
          puVar133 = (undefined2 *)(puVar87 + 2);
          puVar60 = puVar87 + 2;
          if (iVar23 != 0) {
            puVar18 = (undefined4 *)0x2;
            goto LAB_11bd_42c7;
          }
        }
        puVar133 = (undefined2 *)puVar60;
        if ((char)puVar130[-2] == '\0') {
          puVar88 = (uint *)((int)puVar133 + -2);
          *(undefined2 *)((int)puVar133 + -2) = 0x5e45;
          uVar139 = FUN_11bd_689e();
          *puVar88 = uVar16;
          puVar88[-1] = uVar139;
          puVar89 = puVar88 + -2;
          puVar88[-2] = 0x5e4a;
          uVar15 = FUN_11bd_6869();
          puVar130[-0x76] = uVar15;
          puVar130[-0x75] = uVar16;
          uVar16 = uVar16 | uVar15;
          puVar133 = (undefined2 *)((int)puVar89 + 6);
          if (uVar16 == 0) {
            puVar90 = (uint *)((int)puVar89 + 4);
            *(undefined2 *)((int)puVar89 + 4) = 0x5e5b;
            uVar139 = FUN_11bd_68b9();
            *puVar90 = uVar16;
            puVar90[-1] = uVar139;
            puVar91 = puVar90 + -2;
            puVar90[-2] = 0x5e60;
            uVar15 = FUN_11bd_6869();
            puVar130[-0x76] = uVar15;
            puVar130[-0x75] = uVar16;
            puVar133 = (undefined2 *)((int)puVar91 + 6);
            if (uVar16 == 0 && uVar15 == 0) {
              puVar130[-0x76] = 0;
              puVar130[-0x75] = 9;
              puVar133 = (undefined2 *)((int)puVar91 + 6);
            }
          }
          if (((char)puVar130[-0x74] == '\0') && (puVar130[-0x76] != 0)) {
            uVar16 = puVar130[-0x76];
            *(int *)0x12 = uVar16 + 1;
            *(int *)0x10 = uVar16 + 1;
          }
          puVar18 = (undefined4 *)puVar130[-0x75];
        }
      }
      else {
        *(undefined1 *)0x46 = (char)puVar18;
        puVar18 = (undefined4 *)0xb;
      }
LAB_11bd_42c7:
      if ((puVar18 != (undefined4 *)0xb) && ((*(byte *)0x47 & 0x80) != 0)) {
        puVar92 = (undefined1 *)((int)puVar133 + -2);
        *(undefined2 *)((int)puVar133 + -2) = 0x5ea6;
        FUN_11bd_69ac();
        puVar133 = (undefined2 *)(puVar92 + 2);
      }
      *(undefined1 *)0x10ee = 0xff;
      if (puVar18 == (undefined4 *)0x1) {
LAB_11bd_436e:
        puVar130[-0x2d] = 0x381;
        if ((char)puVar130[-0x2f] == '\0') {
          puVar93 = (undefined2 *)((int)puVar133 + -2);
          *(undefined2 *)((int)puVar133 + -2) = 0x5f4c;
          iVar23 = FUN_11bd_6c74();
          puVar133 = puVar93 + 1;
          if (iVar23 == 0) {
            *puVar93 = 0x5f53;
            cVar9 = FUN_11bd_6400();
            puVar133 = (undefined2 *)((int)puVar93 + 2);
            *(char *)(puVar130 + -0x2f) = cVar9;
          }
        }
        *(undefined2 *)0x11fe = 0x146;
        *(undefined2 *)0x1200 = 0x40;
        if (((*(byte *)*(undefined4 *)0x11fe & 0x80) != 0) && (*(uint *)0xeca < 0x500)) {
          *(undefined2 *)0xeca = 0x500;
        }
        goto LAB_11bd_43aa;
      }
      if (puVar18 == (undefined4 *)0x2) {
        puVar130[-0x2d] = 0x8da;
        puVar96 = (undefined1 *)((int)puVar133 + -2);
        *(undefined2 *)((int)puVar133 + -2) = 0x5fc5;
        uVar10 = FUN_11bd_6672();
        *(undefined1 *)0x120c = uVar10;
        puVar133 = (undefined2 *)(puVar96 + 2);
        if ((char)puVar130[-0x2b] != '\0') {
          *(byte *)0x120c = *(byte *)0x120c | 2;
          puVar133 = (undefined2 *)(puVar96 + 2);
        }
LAB_11bd_4403:
        *(undefined1 *)0x10ef = 1;
        goto LAB_11bd_451e;
      }
      if (puVar18 == (undefined4 *)0x3) {
LAB_11bd_440e:
        puVar130[-0x2d] = 0x2824;
        *(undefined1 *)0x10ee = 9;
LAB_11bd_4418:
        *(undefined1 *)0x10ef = 1;
        puVar97 = (undefined1 *)((int)puVar133 + -2);
        *(undefined2 *)((int)puVar133 + -2) = 0x5ff0;
        FUN_11bd_69e0();
        puVar133 = (undefined2 *)(puVar97 + 2);
        goto LAB_11bd_451e;
      }
      if (puVar18 == (undefined4 *)&DAT_0000_0004) goto LAB_11bd_4469;
      if (puVar18 == (undefined4 *)0x5) {
        puVar130[-0x2d] = 0x3a7;
        if (*(char *)0x2f < '\x03') {
          if (*(char *)0x3e != '\0') {
            *(undefined2 *)((int)puVar133 + -2) = 0x5e;
            *(undefined2 *)((int)puVar133 + -4) = 0x1000;
            puVar98 = (undefined1 *)((int)puVar133 + -6);
            *(undefined2 *)((int)puVar133 + -6) = 0x601a;
            FUN_1000_0b12();
            *(undefined2 *)(puVar98 + 4) = 0x5e;
            puVar99 = puVar98 + 2;
            *(undefined2 *)(puVar98 + 2) = 0x6022;
            uVar139 = FUN_11bd_243e();
            puVar133 = (undefined2 *)(puVar99 + 4);
            *(undefined2 *)0xf82 = uVar139;
          }
        }
        else {
LAB_11bd_442f:
          *(undefined1 *)0x36 = 0x80;
        }
        goto LAB_11bd_43aa;
      }
      if (puVar18 == (undefined4 *)0x6) {
LAB_11bd_445c:
        puVar130[-0x2d] = 0x71a;
        goto LAB_11bd_451e;
      }
      if (puVar18 == (undefined4 *)0x7) {
LAB_11bd_446c:
        puVar130[-0x2d] = 0x8b2;
        if ((*(char *)0x11f0 == '\0') || (*(char *)0x2f != '\x02')) goto LAB_11bd_4418;
        puVar100 = (undefined1 *)((int)puVar133 + -2);
        *(undefined2 *)((int)puVar133 + -2) = 0x6052;
        iVar23 = FUN_11bd_66b9();
        puVar133 = (undefined2 *)(puVar100 + 2);
        if (iVar23 != 0) goto LAB_11bd_4486;
        uVar139 = 0x13;
        puVar133 = (undefined2 *)(puVar100 + 2);
LAB_11bd_4519:
        *(undefined2 *)((int)puVar133 + -2) = uVar139;
        puVar103 = (undefined1 *)((int)puVar133 + -4);
        *(undefined2 *)((int)puVar133 + -4) = 0x60ed;
        FUN_11bd_22ad();
        puVar133 = (undefined2 *)(puVar103 + 4);
      }
      else if (puVar18 == (undefined4 *)&DAT_0000_0008) {
LAB_11bd_4486:
        puVar18 = (undefined4 *)&DAT_0000_0008;
        *(undefined1 *)0x10ee = 10;
        puVar130[-0x2d] = 0x749;
      }
      else {
        if (puVar18 == (undefined4 *)0x9) goto LAB_11bd_446c;
        if (puVar18 == (undefined4 *)0xa) {
LAB_11bd_44a3:
          puVar130[-0x2d] = 0x905;
          goto LAB_11bd_4418;
        }
        if (puVar18 == (undefined4 *)0xb) {
          puVar130[-0x2d] = 0x29bc;
        }
        else if (puVar18 == (undefined4 *)&DAT_0000_000c) {
          puVar130[-0x2d] = 0x679;
        }
        else {
          if (puVar18 == (undefined4 *)0xd) {
            puVar130[-0x2d] = 0x8ac;
            *(undefined1 *)0x10ee = 9;
            goto LAB_11bd_4403;
          }
          if (puVar18 == (undefined4 *)0xe) {
            puVar130[-0x2d] = 0x3d6;
          }
          else {
            if (puVar18 != (undefined4 *)0xf) {
              if (puVar18 == (undefined4 *)0x10) {
                puVar130[-0x2d] = 0x4f7;
                goto LAB_11bd_451e;
              }
              if (puVar18 == (undefined4 *)0x13) {
                *(undefined1 *)0xed0 = 0;
LAB_11bd_4469:
                puVar18 = (undefined4 *)0x9;
                goto LAB_11bd_446c;
              }
              if (puVar18 == (undefined4 *)0x14) {
                *(undefined1 *)0xed0 = 0;
                puVar18 = (undefined4 *)0xa;
                goto LAB_11bd_44a3;
              }
              if (puVar18 == (undefined4 *)0x11e) goto LAB_11bd_4469;
              if (puVar18 == (undefined4 *)0x182) {
                puVar18 = (undefined4 *)0x3;
                goto LAB_11bd_440e;
              }
              if (puVar18 == (undefined4 *)0x189c) {
                puVar18 = (undefined4 *)0x6;
                goto LAB_11bd_445c;
              }
              if (puVar18 == (undefined4 *)0x2649) {
                puVar18 = (undefined4 *)0x1;
                goto LAB_11bd_436e;
              }
              *(undefined1 *)0x1190 = 0;
              if (puVar130[-0x2e] != 0) {
                *(undefined2 *)((int)puVar133 + -2) = 0xec2;
                *(undefined2 *)((int)puVar133 + -4) = 0x1190;
                puVar101 = (undefined2 *)((int)puVar133 + -6);
                *(undefined2 *)((int)puVar133 + -6) = 0x60cd;
                FUN_11bd_25ee();
                puVar101[2] = 0x14;
                puVar101[1] = puVar130[-0x2e];
                *puVar101 = 0x1197;
                puVar102 = puVar101 + -1;
                puVar101[-1] = 0x60dd;
                FUN_11bd_6054();
                puVar133 = (undefined2 *)((int)puVar102 + 8);
              }
              *(undefined2 *)0x11d4 = 6;
              uVar139 = 0xffec;
              goto LAB_11bd_4519;
            }
            puVar130[-0x2d] = 0x462;
            if ('\x02' < *(char *)0x2f) goto LAB_11bd_442f;
          }
LAB_11bd_43aa:
          *(byte *)0x14 = *(byte *)0x14 | 4;
          *(undefined2 *)0x11d4 = 5;
          if ((char)puVar130[-0x2f] == '\0') {
            puVar94 = (undefined2 *)((int)puVar133 + -2);
            *(undefined2 *)((int)puVar133 + -2) = 0x5f8e;
            iVar23 = FUN_11bd_6c74();
            puVar133 = puVar94 + 1;
            if (iVar23 == 0) {
              *puVar94 = 0x12;
              puVar95 = puVar94 + -1;
              puVar94[-1] = 0x5f99;
              FUN_11bd_22ad();
              puVar133 = (undefined2 *)((int)puVar95 + 4);
            }
          }
          uVar16 = *(int *)0xecc + *(int *)0xeca;
          puVar130[-0x2c] = uVar16;
          if ((int)uVar16 < *(int *)0xece) {
            *(uint *)0xece = uVar16;
          }
          *(int *)0xa8 = *(int *)0xece + -0x400;
          *(char *)0x11f0 = *(char *)0x11f0 + '\x01';
        }
      }
LAB_11bd_451e:
      if (*(char *)0x10ee == -1) {
        *(undefined1 *)0x10ee = (char)puVar18;
      }
      *(undefined1 *)0x2e = (char)puVar18;
      *(uint *)((int)puVar133 + -2) = puVar130[-0x2d];
      puVar130[-0x76] = (uint)puVar18;
      puVar104 = (undefined1 *)((int)puVar133 + -4);
      *(undefined2 *)((int)puVar133 + -4) = 0x6109;
      FUN_11bd_6250();
      puVar80 = (undefined2 *)(puVar104 + 4);
      if (*(char *)0x46 == '\0') {
        *(char *)0x46 = (char)puVar130[-0x76];
        puVar80 = (undefined2 *)(puVar104 + 4);
      }
LAB_11bd_4548:
      *(undefined2 *)0x42 = 0x9fa;
      *(undefined2 *)0x44 = 0x20;
      *(byte *)0x47 = *(byte *)0x47 & 0xfe;
      *(int *)((int)puVar80 + -2) = (int)*(char *)0x46;
      puVar105 = (undefined1 *)((int)puVar80 + -4);
      *(undefined2 *)((int)puVar80 + -4) = 0x6131;
      iVar23 = FUN_11bd_4587();
      puVar106 = puVar105 + 4;
      if (iVar23 == 0) {
        *(byte *)0x47 = *(byte *)0x47 | 1;
      }
      *(undefined1 *)0x2e = (char)puVar18;
      if (puVar18 == (undefined4 *)0xb) {
        puVar107 = puVar105 + 2;
        *(undefined2 *)(puVar105 + 2) = 0x6148;
        puVar18 = (undefined4 *)FUN_11bd_7c62();
        puVar106 = puVar107 + 2;
      }
      if ((char)puVar130[-0x2b] == '\0') {
        *(undefined2 *)(puVar106 + -2) = 0x6151;
        puVar18 = (undefined4 *)FUN_11bd_30d8();
      }
      return puVar18;
    }
  }
  else {
    cVar9 = *(char *)0x980;
    if ((uint)(int)cVar9 < 6) {
      iVar23 = cVar9 * 2;
      uVar24 = CONCAT22(uVar139,iVar23);
      switch(cVar9) {
      case '\0':
        do {
          *(int *)0x11ee = *(int *)0x11ee + -8;
        } while (*(char *)((*(uint *)0x11ee & 0xfff8) + puVar130[-3] + 5) == '\0');
        puVar130[-0xc] = *(uint *)0x11f2;
        do {
          puVar130 = (uint *)puVar131;
          uVar16 = puVar130[-0xc];
          puVar130[-0xe] = uVar16;
          puVar133 = (undefined2 *)((uVar16 & 0xfff8) + puVar130[-3]);
          uVar16 = puVar130[-2];
          *(undefined2 *)((int)puVar26 + -2) = (undefined4 *)in_ESI;
          *(undefined2 *)((int)puVar26 + -4) = (undefined4 *)puVar134;
          *(int *)((int)puVar26 + -6) = unaff_DS;
          *(int *)((int)puVar26 + -8) = unaff_DS;
          uVar139 = *(undefined2 *)((int)puVar26 + -8);
          *(undefined2 *)0x11e4 = *puVar133;
          *(undefined2 *)0x11e6 = puVar133[1];
          *(undefined2 *)&LAB_0000_11e8 = puVar133[2];
          *(undefined2 *)0x11ea = puVar133[3];
          unaff_DS = *(int *)((int)puVar26 + -6);
          puVar134 = (undefined4 *)(ulong)*(uint *)((int)puVar26 + -4);
          uVar15 = *(uint *)0x11e4;
          in_ESI = (undefined4 *)(ulong)uVar15;
          bVar20 = *(byte *)0x11e9;
          puVar130[-1] = (uint)bVar20;
          if (bVar20 != 0) {
            puVar130[-0x25] = *(uint *)0x11ea & 0x1fff;
            uVar135 = 0;
            uVar19 = (ulong)uVar15;
            if (uVar15 != 0) {
              *(uint *)((int)puVar26 + -2) = uVar15;
              puVar25 = (undefined1 *)((int)puVar26 + -4);
              *(undefined2 *)((int)puVar26 + -4) = 0x5070;
              uVar135 = FUN_11bd_11dd();
              puVar26 = (uint *)(puVar25 + 4);
            }
            if ((*(byte *)0x11eb & 0x20) != 0) {
              uVar19 = 0;
            }
            uVar139 = (undefined2)uVar19;
            puVar130 = (uint *)puVar131;
            if (uVar135 < puVar130[-0x25]) {
              uVar135 = puVar130[-0x25];
            }
            *(undefined2 *)0x1204 = 0;
            *(undefined2 *)0x1202 = 0;
            uVar136 = (ulong)uVar135;
            if (uVar135 != 0) {
              if ((*(byte *)0x11eb & 0x80) == 0) {
                *(uint *)((int)puVar26 + -2) = uVar135;
                puVar34 = (undefined1 *)((int)puVar26 + -4);
                *(undefined2 *)((int)puVar26 + -4) = 0x517f;
                uVar14 = FUN_11bd_3901();
                puVar26 = (uint *)(puVar34 + 4);
                *(undefined2 *)0x1202 = uVar14;
                *(uint *)0x1204 = uVar16;
                if (uVar16 == 0 && *(int *)0x1202 == 0) {
                  puVar35 = (undefined2 *)(puVar34 + 2);
                  *(undefined2 *)(puVar34 + 2) = 0x5192;
                  FUN_11bd_11c1();
                  *puVar35 = 6;
                  puVar36 = puVar35 + -1;
                  puVar35[-1] = 0x5197;
                  FUN_11bd_22ad();
                  puVar26 = (uint *)((int)puVar36 + 4);
                }
              }
              else {
                if ((puVar130[-0xc] == puVar130[-0x17]) || ((puVar130[-1] & 0x18) == 0x18)) {
                  puVar130[-0x10] = 7;
                }
                else {
                  puVar130[-0x10] = 0;
                  *(byte *)(puVar130 + -1) = (byte)puVar130[-1] | 0x60;
                }
                puVar27 = (uint *)((int)puVar26 + -2);
                *(undefined2 *)((int)puVar26 + -2) = 0x50c1;
                FUN_11bd_11c1();
                puVar130 = (uint *)puVar131;
                uVar15 = puVar130[-0x10] + (int)uVar136;
                puVar130[-0xd] = uVar15;
                if (uVar15 < 8) {
                  puVar130[-0xd] = 8;
                }
                *puVar27 = puVar130[-0xd];
                puVar28 = puVar27 + -1;
                puVar27[-1] = 0x50d9;
                uVar15 = FUN_11bd_395c();
                puVar29 = puVar28 + 2;
                *(uint *)0x1202 = uVar15;
                *(uint *)0x1204 = uVar16;
                ((uint *)puVar131)[-0xd] = uVar15;
                if (uVar15 == 0) {
                  puVar28[1] = 3;
                  *puVar28 = 0x50ed;
                  FUN_11bd_22ad();
                  puVar29 = (undefined2 *)((int)puVar28 + 4);
                }
                puVar130 = (uint *)puVar131;
                uVar16 = ~puVar130[-0x10] & *(int *)0x1202 + puVar130[-0x10];
                *(uint *)0x1202 = uVar16;
                *(undefined2 *)0x1204 = 0;
                puVar130[-0xe] = uVar16;
                if (uVar16 < *(uint *)0x97c) goto LAB_11bd_3543;
                while( true ) {
                  *(undefined2 *)((int)puVar29 + -2) = 4;
                  puVar30 = (undefined1 *)((int)puVar29 + -4);
                  *(undefined2 *)((int)puVar29 + -4) = 0x5112;
                  FUN_11bd_22ad();
                  puVar29 = (undefined2 *)(puVar30 + 4);
LAB_11bd_3543:
                  *(uint *)((int)puVar29 + -2) = ((uint *)puVar131)[-0xe];
                  *(uint *)((int)puVar29 + -4) = ((uint *)puVar131)[-0xc];
                  puVar31 = (undefined2 *)((int)puVar29 + -6);
                  *(undefined2 *)((int)puVar29 + -6) = 0x511c;
                  iVar23 = FUN_11bd_5fac();
                  puVar32 = puVar31 + 2;
                  if (iVar23 < 0x1275) {
                    puVar31[1] = 5;
                    *puVar31 = 0x512d;
                    FUN_11bd_601d();
                    puVar32 = (undefined2 *)((int)puVar31 + 4);
                  }
                  puVar33 = (uint *)((int)puVar32 + -2);
                  *(undefined2 *)((int)puVar32 + -2) = 0x5131;
                  FUN_11bd_198a();
                  uVar139 = (undefined2)uVar19;
                  uVar135 = (uint)uVar136;
                  puVar26 = puVar33 + 1;
                  puVar130 = (uint *)puVar131;
                  if (*(char *)((puVar130[-0xe] & 0xfff8) + puVar130[-3] + 5) == '\0') break;
                  *puVar33 = 0x5147;
                  FUN_11bd_11c1();
                  puVar29 = (undefined2 *)((int)puVar33 + 2);
                }
                if (puVar130[-0x10] != 0) {
                  if (puVar130[-0xc] == puVar130[-0x17]) {
                    puVar130[-0x17] = puVar130[-0xe];
                  }
                  if (puVar130[-0xc] == puVar130[-0x13]) {
                    puVar130[-0x13] = puVar130[-0xe];
                  }
                  *puVar33 = puVar130[-0xd];
                  puVar33[-1] = puVar130[-0xe];
                    // WARNING: Subroutine does not return
                  puVar33[-2] = 0x5174;
                  thunk_FUN_11bd_1e86();
                }
                puVar130[-0xf] = puVar130[-0xf] + 1;
              }
            }
            *(undefined1 *)0x11e9 = 0xf2;
            *(undefined2 *)0x11e4 = 0;
            puVar130 = (uint *)puVar131;
            if (uVar135 != 0) {
              *(int *)0x11e4 = uVar135 * 0x10 + -1;
              *(undefined1 *)((puVar130[-0xe] >> 3) + puVar130[-0x21]) = 1;
            }
            if ((*(byte *)0x11eb & 0x40) != 0) {
              pbVar2 = (byte *)((puVar130[-0xe] >> 3) + puVar130[-0x21]);
              *pbVar2 = *pbVar2 | 2;
            }
            *(int *)0x11e6 = *(int *)0x1202 << 4;
            puVar37 = (uint *)((int)puVar26 + -2);
            *(undefined2 *)((int)puVar26 + -2) = 0x51ec;
            uVar10 = FUN_11bd_27b0();
            puVar26 = puVar37 + 1;
            *(undefined1 *)&LAB_0000_11e8 = uVar10;
            *(int *)0x11ea = (*(int *)0x1204 >> 4) << 8;
            puVar130 = (uint *)puVar131;
            puVar133 = (undefined2 *)((puVar130[-0xe] & 0xfff8) + puVar130[-3]);
            uVar16 = puVar130[-2];
            *puVar37 = uVar139;
            puVar37[-1] = uVar135;
            *puVar133 = *(undefined2 *)0x11e4;
            puVar133[1] = *(undefined2 *)0x11e6;
            puVar133[2] = *(undefined2 *)&LAB_0000_11e8;
            puVar133[3] = *(undefined2 *)0x11ea;
            puVar134 = (undefined4 *)(ulong)puVar37[-1];
            uVar16 = *puVar37;
            in_ESI = (undefined4 *)(ulong)uVar16;
            if (uVar16 != 0) {
              if ((uVar16 & 0xf) != 0) {
                in_ESI = (undefined4 *)(ulong)(uVar16 + 1);
              }
              *puVar37 = (uint)(undefined4 *)in_ESI;
              puVar37[-1] = 0;
              puVar37[-2] = puVar130[-0xe];
              puVar38 = puVar37 + -3;
              puVar37[-3] = 0x522a;
              FUN_11bd_3a89();
              puVar26 = (uint *)((int)puVar38 + 8);
            }
            puVar130 = (uint *)puVar131;
            puVar18 = (undefined4 *)in_ESI;
            if (puVar130[-0x25] != 0) {
              uVar16 = puVar130[-0x25] * 0x10 - (int)puVar18;
              puVar134 = (undefined4 *)(ulong)uVar16;
              if (uVar16 != 0) {
                *(undefined2 *)((int)puVar26 + -2) = 0;
                *(uint *)((int)puVar26 + -4) = uVar16;
                *(undefined2 *)((int)puVar26 + -6) = puVar18;
                *(uint *)((int)puVar26 + -8) = puVar130[-0xe];
                    // WARNING: Subroutine does not return
                *(undefined2 *)((int)puVar26 + -10) = 0x5247;
                thunk_FUN_11bd_1e86();
              }
            }
            uVar16 = puVar130[-1];
            *(char *)0x11e9 = (char)uVar16;
            *(char *)((puVar130[-0xe] & 0xfff8) + puVar130[-3] + 5) = (char)uVar16;
            if (puVar130[-0xe] != puVar130[-0xc]) {
              puVar133 = (undefined2 *)((puVar130[-0xc] & 0xfff8) + puVar130[-3]);
              uVar16 = puVar130[-2];
              *(undefined2 *)((int)puVar26 + -2) = puVar18;
              *(undefined2 *)((int)puVar26 + -4) = (undefined4 *)puVar134;
              *puVar133 = *(undefined2 *)0x11e4;
              puVar133[1] = *(undefined2 *)0x11e6;
              puVar133[2] = *(undefined2 *)&LAB_0000_11e8;
              puVar133[3] = *(undefined2 *)0x11ea;
              puVar134 = (undefined4 *)(ulong)*(uint *)((int)puVar26 + -4);
              in_ESI = (undefined4 *)(ulong)*(uint *)((int)puVar26 + -2);
            }
          }
          uVar16 = *(uint *)0x11ee;
          puVar130 = (uint *)puVar131;
          puVar130[-0xc] = puVar130[-0xc] + 8;
          if (uVar16 < puVar130[-0xc]) {
            if ((int)puVar130[2] < 1) {
              *(uint *)((int)*(undefined4 *)(puVar130 + -3) + 2) = uVar16 >> 3;
            }
            uVar16 = puVar130[3];
            *(uint *)(uVar16 + 0xe) = puVar130[-0x16] - 0xc & 0xfffe;
            *(uint *)(uVar16 + 2) = puVar130[-0x17];
            *(uint *)(uVar16 + 0x22) = puVar130[-0x13];
            *(uint *)(uVar16 + 0x1e) = puVar130[-0x14];
            *(undefined2 *)(uVar16 + 10) = *(undefined2 *)0x11f2;
            *(int *)(uVar16 + 8) = puVar130[-0xc] - 0x18;
            puVar39 = (uint *)((int)puVar26 + -2);
            *(undefined2 *)((int)puVar26 + -2) = 0x52d0;
            FUN_11bd_11c1();
            *puVar39 = ((uint *)puVar131)[3];
            puVar39[-1] = ((uint *)puVar131)[2];
            puVar40 = puVar39 + -2;
            puVar39[-2] = 0x52d9;
            FUN_11bd_2fa4();
            puVar41 = (undefined2 *)((int)puVar40 + 6);
            if ((int)((uint *)puVar131)[2] < 0) {
              uVar139 = *(undefined2 *)0x11f6;
              *(undefined2 *)0x11da = *(undefined2 *)0x11f4;
              *(undefined2 *)0x11dc = uVar139;
            }
            else {
              puVar42 = (undefined1 *)((int)puVar40 + 4);
              *(undefined2 *)((int)puVar40 + 4) = 0x52e4;
              FUN_11bd_5ff7();
              puVar41 = (undefined2 *)(puVar42 + 2);
              *(undefined2 *)0x11dc = 0;
              *(undefined2 *)0x11da = 0;
            }
            puVar130 = (uint *)puVar131;
            puVar130[-0xc] = puVar130[-0xc] - 8;
            if (puVar130[-0x15] == 0) {
              if (puVar130[-0x22] != 0) {
                *(uint *)((int)puVar41 + -2) = puVar130[-0x22];
                *(uint *)((int)puVar41 + -4) = puVar130[-0xc];
                puVar50 = (undefined1 *)((int)puVar41 + -6);
                *(undefined2 *)((int)puVar41 + -6) = 0x5366;
                FUN_11bd_3b21();
                puVar41 = (undefined2 *)(puVar50 + 6);
              }
              puVar130 = (uint *)puVar131;
              if (0 < (int)puVar130[-0xf]) {
                *(uint *)((int)puVar41 + -2) = puVar130[-0xc];
                puVar51 = (undefined2 *)((int)puVar41 + -4);
                *(undefined2 *)((int)puVar41 + -4) = 0x5374;
                FUN_11bd_1c3f();
                puVar41 = puVar51 + 2;
                if ((*(byte *)0x11e9 & 0x18) != 0x10) {
                  puVar51[1] = 7;
                  *puVar51 = 0x5383;
                  FUN_11bd_22ad();
                  puVar41 = (undefined2 *)((int)puVar51 + 4);
                }
                puVar130 = (uint *)puVar131;
                puVar132 = (undefined1 *)ZEXT24(puVar41);
                if (*(int *)0x11e4 != 0) {
                  while( true ) {
                    puVar41 = (undefined2 *)puVar132;
                    puVar130 = (uint *)puVar131;
                    puVar1 = puVar130 + -0xf;
                    *puVar1 = *puVar1 - 1;
                    if ((int)*puVar1 < 0) break;
                    *(uint *)((int)puVar41 + -2) = puVar130[-0xc];
                    puVar52 = (undefined1 *)((int)puVar41 + -4);
                    *(undefined2 *)((int)puVar41 + -4) = 0x5393;
                    FUN_11bd_3c9d();
                    puVar132 = (undefined1 *)ZEXT24(puVar52 + 2);
                    *(undefined2 *)(puVar52 + 2) = 0x5397;
                    FUN_11bd_5fb3();
                  }
                }
              }
            }
            else {
              puVar43 = (undefined2 *)((int)puVar41 + -2);
              *(undefined2 *)((int)puVar41 + -2) = 0x5309;
              FUN_11bd_198a();
              *puVar43 = 1;
              puVar44 = puVar43 + -1;
              puVar43[-1] = 0x530e;
              FUN_11bd_1266();
              uVar19 = ZEXT24(puVar44 + 2);
              puVar130 = (uint *)puVar131;
              if (puVar130[-0x22] != 0) {
                puVar44[1] = puVar130[-0x22];
                *puVar44 = puVar130[-0xc];
                puVar130[-0x15] = puVar130[-0x15] + puVar130[-0x22];
                puVar44[-1] = puVar130[-0x15];
                puVar45 = puVar44 + -2;
                puVar44[-2] = 0x5327;
                FUN_11bd_3d80();
                uVar19 = ZEXT24((undefined1 *)((int)puVar45 + 8));
              }
              while( true ) {
                puVar130 = (uint *)puVar131;
                puVar1 = puVar130 + -0xf;
                *puVar1 = *puVar1 - 1;
                iVar47 = (int)uVar19;
                if ((int)*puVar1 < 0) break;
                *(uint *)(iVar47 + -2) = puVar130[-0xc];
                *(uint *)(iVar47 + -4) = puVar130[-0x15];
                puVar46 = (undefined1 *)(iVar47 + -6);
                *(undefined2 *)(iVar47 + -6) = 0x5335;
                FUN_11bd_3e19();
                uVar19 = (ulong)((int)puVar46 + 4);
                *(undefined2 *)(puVar46 + 4) = 0x533a;
                FUN_11bd_5fb3();
              }
              *(uint *)(iVar47 + -2) = puVar130[-0x15];
              puVar48 = (undefined1 *)(iVar47 + -4);
              *(undefined2 *)(iVar47 + -4) = 0x5345;
              FUN_11bd_1a86();
              *(int *)(puVar130[3] + 8) = puVar130[-0x15] - 8;
              puVar49 = puVar48 + 2;
              *(undefined2 *)(puVar48 + 2) = 0x5355;
              FUN_11bd_11c1();
              puVar41 = (undefined2 *)(puVar49 + 2);
            }
            if ((((int)puVar130[-0xf] < 0) || ((puVar130[-9] & 1) != 0)) && (puVar130[-0x15] == 0))
            {
              *(uint *)((int)puVar41 + -2) = puVar130[-0xc];
              puVar53 = (undefined1 *)((int)puVar41 + -4);
              *(undefined2 *)((int)puVar41 + -4) = 0x53b4;
              FUN_11bd_3d62();
              puVar41 = (undefined2 *)(puVar53 + 4);
            }
            puVar18 = (undefined4 *)0x28;
            uVar16 = puVar130[3];
            *(undefined2 *)(uVar16 + 4) = 0x28;
            *(undefined2 *)(uVar16 + 6) = 0x28;
            *(undefined2 *)(uVar16 + 0x26) = 0x200;
            if ((int)puVar130[2] < 1) {
              *(undefined2 *)((int)puVar41 + -2) = 0x53cf;
              FUN_11bd_2fc7();
              puVar18 = (undefined4 *)*(uint *)0xcec;
              *(uint *)0x97e = (uint)puVar18;
              puVar130[-0x24] = 0x2c;
              puVar130[-0x23] = (uint)puVar18;
              *(undefined2 *)0x2c = 0x30;
            }
            return puVar18;
          }
        } while( true );
      case '\x02':
        goto switchD_1000_ccb5_caseD_2;
      case '\x03':
        while( true ) {
          puVar56 = (undefined1 *)((int)piVar54 + -2);
          *(undefined2 *)((int)piVar54 + -2) = 0x55c9;
          func_0x0001ac24();
          puVar55 = (undefined2 *)(puVar56 + -2);
          *(undefined2 *)(puVar56 + -2) = 0x55cc;
          iVar23 = FUN_11bd_243e();
          uVar16 = iVar23 + 0xfU & 0xfff0;
          *(uint *)0xa = uVar16;
          if (uVar16 != 0) break;
          puVar55[1] = 0xd;
          *puVar55 = 0x55c7;
          FUN_11bd_22ad();
          piVar54 = (int *)((int)puVar55 + 2);
          *(undefined2 *)((int)puVar55 + 2) = (undefined4 *)in_ESI;
        }
        puVar18 = (undefined4 *)((uint)(undefined4 *)in_ESI & 0xfff0);
        *(uint *)0xe = (uint)puVar18;
        return puVar18;
      case '\x04':
        uVar19 = puVar18[3];
        uVar6 = *(undefined4 *)(puVar131 + 8);
        if (bVar20 == 8) {
          if (uVar19 != 0) {
LAB_1991_538e:
            return (undefined4 *)*(undefined4 **)(piVar113 + 3);
          }
        }
        else {
          *(undefined4 **)(piVar113 + 1) = in_ESI;
          if ((1 < uVar19) && (((byte)((ulong)uVar6 >> 8) & 0x8a) == 0x8a)) {
            *piVar113 = iVar23;
            uVar24 = CONCAT22(uVar139,*piVar113);
            uVar7 = SegmentLimit(uVar6);
            if (uVar19 <= (uint)uVar7) {
              *piVar113 = unaff_DS;
              unaff_DS = *piVar113;
              in_ESI = *(undefined4 **)(piVar113 + 1);
              if ((int)CONCAT31((uint3)(bVar20 & 0x1f),0xcd) == *(int *)(uVar19 - 2))
              goto LAB_1991_538e;
              goto LAB_1991_53ea;
            }
          }
          in_ESI = *(undefined4 **)(piVar113 + 1);
        }
LAB_1991_53ea:
        uVar6 = *(undefined4 *)(piVar113 + 3);
        uVar8 = *(undefined4 *)(piVar113 + 5);
        piVar129 = piVar113 + 7;
        if ((in_ECX & 0x20) != 0) {
          piVar129 = piVar113 + 5;
          *(undefined4 *)(piVar113 + 5) = uVar6;
        }
        *(undefined4 *)((int)piVar129 + -4) = uVar6;
        *(ulong *)((int)piVar129 + -8) = in_ECX;
        *(ulong *)((int)piVar129 + -0xc) = in_EDX;
        *(undefined4 *)((int)piVar129 + -0x10) = uVar24;
        *(undefined4 *)((int)piVar129 + -0x14) = (undefined1 *)CONCAT22(uVar14,piVar129);
        *(undefined4 *)((int)piVar129 + -0x18) = uVar8;
        *(undefined4 *)((int)piVar129 + -0x1c) = in_ESI;
        *(undefined4 *)((int)piVar129 + -0x20) = puVar134;
        *(int *)((int)piVar129 + -0x22) = unaff_DS;
        puVar132 = (undefined1 *)CONCAT22(uVar14,(undefined1 *)((int)piVar129 + -0x24));
        *(undefined2 *)((int)piVar129 + -0x24) = uVar138;
        uVar19 = CONCAT22((int)((ulong)uVar24 >> 0x10),unaff_SS) & 0xffff00;
        if ((uVar19 >> 0x16 & 1) == 0) {
          puVar132 = (undefined1 *)ZEXT24((undefined1 *)((int)piVar129 + -0x24));
        }
        uVar139 = *(undefined2 *)(puVar132 + 0x26);
        if ((in_ECX & 0x20) != 0) {
          LOCK();
          uVar136 = *(ulong *)(puVar132 + 0x24);
          *(ulong *)(puVar132 + 0x24) = uVar19;
          UNLOCK();
          LOCK();
          uVar19 = *(ulong *)(puVar132 + 0x28);
          *(ulong *)(puVar132 + 0x28) = uVar136;
          UNLOCK();
          LOCK();
          *(ulong *)(puVar132 + 0x24) = uVar19;
          UNLOCK();
          uVar139 = *(undefined2 *)(puVar132 + 0x26);
        }
        *(undefined2 *)(puVar132 + 0x1c) = uVar139;
        iVar23 = *(int *)(puVar132 + 0x24);
        *(undefined2 *)((int)piVar129 + -0x26) = 0x20;
        uVar139 = *(undefined2 *)((int)piVar129 + -0x26);
        *(int *)0xc16 = *(int *)0xc16 + 0x400;
        uVar16 = *(uint *)0xc16;
        if (0x4000 < uVar16) {
          *(int *)0xc16 = *(int *)0xc16 + -0x400;
          *(int *)(puVar132 + 0x24) = *(int *)(puVar132 + 0x24) + -0xd;
          if ((*(byte *)(iVar23 + -5) & 0x20) != 0) {
            return (undefined4 *)(undefined4 *)*(undefined4 *)((int)piVar129 + -4);
          }
          return (undefined4 *)(undefined4 *)*(undefined4 *)((int)piVar129 + -4);
        }
        *(int *)(uVar16 - 4) = iVar23 + -0xd;
        *(int *)(uVar16 - 6) = iVar23 + -0xd;
        LOCK();
        uVar139 = *(undefined2 *)(puVar132 + 4);
        *(undefined2 **)(puVar132 + 4) = (undefined2 *)(uVar16 - 0x2e);
        UNLOCK();
        puVar18 = (undefined4 *)(uVar16 - 0x2c);
        *(undefined2 *)(uVar16 - 0x2e) = uVar139;
        *(int *)(puVar132 + 0x24) = iVar23 + 1;
        puVar133 = (undefined2 *)(iVar23 + -0x13);
        for (uVar19 = 4; (int)uVar19 != 0; uVar19 = (ulong)((int)uVar19 - 1)) {
          puVar134 = puVar18;
          puVar18 = (undefined4 *)((int)puVar18 + 2);
          puVar3 = puVar133;
          puVar133 = puVar133 + 1;
          *(undefined2 *)puVar134 = *puVar3;
        }
        *puVar18 = 0x54a3;
        puVar18[1] = 0x1000;
        puVar134 = (undefined4 *)(puVar132 + 0x28);
        puVar137 = (undefined4 *)ZEXT24(puVar18 + 2);
        for (lVar21 = CONCAT31((int3)(uVar19 >> 8),4); lVar21 != 0; lVar21 = lVar21 + -1) {
          *puVar137 = *puVar134;
          puVar134 = puVar134 + 1;
          puVar137 = puVar137 + 1;
        }
        *(undefined4 *)puVar137 = puVar134;
        *(undefined2 *)((undefined4 *)puVar137 + 1) = unaff_SS;
        return (undefined4 *)(undefined4 *)*(undefined4 *)((int)piVar129 + -4);
      case '\x05':
        puVar18 = (undefined4 *)0x0;
        if (((uVar19 & 0x4000) != 0) != ((*(byte *)0x47 & 0x80) != 0)) {
          uVar16 = -(uint)(*(char *)0x9f8 == '\0') & 0x7ff;
          piVar113[2] = CONCAT11((char)(uVar16 >> 8) + -0x10,(char)uVar16);
          iVar23 = puVar130[-6] + puVar130[2];
          piVar113[1] = (puVar130[-5] + puVar130[3] + (uint)CARRY2(puVar130[-6],puVar130[2])) -
                        (uint)(iVar23 == 0);
          *piVar113 = iVar23 + -1;
          uVar16 = puVar130[2];
          piVar113[-1] = puVar130[3] + (uint)(0xfffe < uVar16);
          piVar113[-2] = uVar16 + 1;
          piVar110 = piVar113 + -3;
          piVar113[-3] = 0xc078;
          puVar18 = (undefined4 *)FUN_1991_5874();
          piVar111 = (int *)((int)piVar110 + 10);
        }
        if ((*(byte *)0x47 & 0x80) != 0) {
          *(undefined2 *)((int)piVar111 + -2) = 0x111b;
          *(undefined2 *)((int)piVar111 + -4) = 0xc088;
          puVar18 = (undefined4 *)FUN_1991_24e4();
        }
        return puVar18;
      }
      if ((uVar19 & 0x20) != 0) {
        iVar23 = 0;
        goto LAB_1991_1f62;
      }
      if (0xbfff < puVar130[0xe]) {
        cVar9 = *puVar130 == 0;
        if ((bool)cVar9) {
          *puVar130 = 0x38;
        }
        if (puVar130[1] == 0) {
          puVar130[1] = 0x38;
          cVar9 = cVar9 + '\x01';
        }
        piVar13 = piVar113 + 3;
        if (cVar9 != '\0') goto LAB_1991_20fe;
      }
      uVar7 = SegmentLimit(puVar130[0xe]);
      uVar15 = (uint)uVar7;
      uVar16 = puVar130[0xc];
      piVar13 = piVar113 + 3;
      if (puVar130[0xc] <= uVar15 && uVar15 != uVar16) {
        if (puVar130[10] == 0) {
          piVar13 = piVar113 + 3;
          if (4 < uVar15 - uVar16) {
            piVar109 = piVar113 + 2;
            piVar113[2] = 0xb912;
            uVar139 = FUN_1991_21a3();
            *piVar109 = uVar139;
            if ((char)uVar139 == -0x65) {
              puVar130 = (uint *)puVar131;
              uVar16 = puVar130[0xe];
              pbVar4 = (byte *)((int *)puVar130[0xc] + 1);
              iVar23 = *(int *)puVar130[0xc];
              if (*puVar130 == 0) {
                if (iVar23 != 0x1e8e) goto LAB_1991_2030;
                if (puVar130[0xc] == 0x2b) {
                  uVar15 = 0;
                  do {
                    puVar133 = (undefined2 *)*(undefined2 *)(uVar15 + 0x1ea6);
                    *puVar133 = 0xfecd;
                    *(char *)(puVar133 + 1) = (char)uVar15;
                    uVar15 = uVar15 + 2;
                  } while (uVar15 < 0x14);
                }
                piVar109[-1] = 0x10;
                uVar139 = piVar109[-1];
                *(undefined2 *)0x7f0 = 0x2115;
                *(undefined2 *)0x7f2 = 0x1000;
                *puVar130 = *(uint *)0x1f2;
                puVar130[0xc] = puVar130[0xc] + 4;
              }
              else {
                if (iVar23 == 0x4c7) {
                  if (*(int *)pbVar4 != -0x3f77) goto LAB_1991_2030;
                  iVar23 = 4;
                  uVar16 = 0xc089;
                }
                else if (iVar23 == 0x429) {
                  uVar16 = *(int *)puVar130[3] - puVar130[9];
                  iVar23 = 2;
                }
                else if (iVar23 == 0x4c6) {
                  uVar16 = CONCAT11((char)((uint)*(undefined2 *)puVar130[3] >> 8),*pbVar4);
                  iVar23 = 3;
                }
                else if (iVar23 == 0xc80) {
                  uVar16 = CONCAT11((char)((uint)*(undefined2 *)puVar130[3] >> 8),
                                    (byte)*(undefined2 *)puVar130[3] | *pbVar4);
                  iVar23 = 3;
                }
                else {
                  if (iVar23 != 0x489) goto LAB_1991_2030;
                  uVar16 = puVar130[9];
                  iVar23 = 2;
                }
                piVar109[-1] = 8;
                uVar139 = piVar109[-1];
                uVar15 = *puVar130 & 0xfff8;
                LOCK();
                uVar10 = *(undefined1 *)(uVar15 + 5);
                *(undefined1 *)(uVar15 + 5) = 0x93;
                UNLOCK();
                *(uint *)puVar130[3] = uVar16;
                *(undefined1 *)(uVar15 + 5) = uVar10;
                puVar130[0xc] = puVar130[0xc] + iVar23;
              }
              *piVar109 = 0xba0e;
              FUN_1991_21a3();
              piVar13 = (int *)((int)piVar109 + 2);
LAB_1991_20fe:
              return (undefined4 *)*(undefined2 *)((int)piVar13 + 0x12);
            }
LAB_1991_2030:
            *piVar109 = 0xb944;
            FUN_1991_21a3();
            piVar13 = (int *)((int)piVar109 + 2);
          }
        }
        else {
          iVar23 = *(int *)puVar130[0xc];
          cVar9 = (char)iVar23;
          if ((cVar9 == '\a') || (cVar9 == '\x1f')) {
            piVar113[2] = 0x20;
            if ((puVar130[0xe] < 0x80) ||
               (piVar13 = piVar113 + 3, ((*(uint *)0x38 ^ puVar130[10]) & 0xfff8) == 0)) {
              puVar130[0x12] = 0;
              piVar13 = piVar113 + 3;
              goto LAB_1991_20fe;
            }
          }
          else {
            piVar13 = piVar113 + 3;
            if (iVar23 == 0x5eff) {
              iVar23 = ((int *)puVar130[0xc])[1];
              uVar16 = puVar130[4];
              piVar113[2] = unaff_SS;
              piVar113[1] = (int)(char)iVar23 + uVar16;
              *piVar113 = 0x1000;
              piVar108 = piVar113 + -1;
              piVar113[-1] = 0xb86b;
              FUN_1991_1f26();
              piVar13 = (int *)((int)piVar108 + 8);
              goto LAB_1991_20fe;
            }
          }
        }
      }
      iVar23 = 4;
LAB_1991_1f62:
      *(undefined2 *)((int)piVar13 + -2) = 0x20;
      if (*(char *)0x1181 != '\0') {
        iVar23 = iVar23 + 1;
      }
      *(undefined2 *)((int)piVar13 + -2) = 0x18;
      if (*(int *)0x1062 != 0) {
        iVar23 = iVar23 + 2;
      }
                    // WARNING: Could not recover jumptable at 0x0001b88d. Too many branches
                    // WARNING: Treating indirect jump as call
      puVar18 = (undefined4 *)(*(code *)*(undefined2 *)(iVar23 * 2 + 0x1ece))();
      return puVar18;
    }
  }
  piVar113[2] = puVar130[-0xb];
  puVar114 = (uint *)(piVar113 + 1);
  piVar113[1] = 0xcd08;
  uVar139 = FUN_1991_3fd7();
  puVar18 = (undefined4 *)puVar134;
  uVar14 = (undefined2)in_EDX;
  puVar130 = (uint *)puVar131;
  *(undefined2 *)((int)*(undefined4 *)(puVar130 + 2) + 0x10) = uVar139;
  *(undefined2 *)(*(int *)0x996 + 0x10) = uVar139;
  *(undefined2 *)((int)*(undefined4 *)(puVar130 + 2) + 0x16) = 0x4800;
  *(undefined2 *)(*(int *)0x996 + 0x16) = 0x4800;
  puVar114[1] = 0;
  *puVar114 = puVar130[3];
  puVar114[-1] = puVar130[2];
  puVar115 = puVar114 + -2;
  puVar114[-2] = 0xcd33;
  puVar17 = (undefined4 *)FUN_1991_2d3e();
  puVar116 = (undefined2 *)((int)puVar115 + 8);
  puVar130 = (uint *)puVar131;
  uVar139 = (undefined2)((ulong)*(undefined4 *)(puVar130 + 2) >> 0x10);
  iVar23 = (int)*(undefined4 *)(puVar130 + 2);
  if ((*(byte *)(iVar23 + 0x26) & 1) != 0) {
LAB_1991_336a:
    if ((char)((uint *)puVar131)[-2] == '\0') {
      uVar24 = *(undefined4 *)((uint *)puVar131 + 2);
      uVar139 = (undefined2)((ulong)uVar24 >> 0x10);
      iVar23 = (int)uVar24;
      *(undefined2 *)(iVar23 + 6) = 0;
      pbVar2 = (byte *)(iVar23 + 0x26);
      *pbVar2 = *pbVar2 | 1;
    }
    return puVar17;
  }
  puVar17 = (undefined4 *)*(undefined2 *)(iVar23 + 0x16);
  if ((puVar130[-3] & 0xc0) != 0) {
    *(uint *)((int)puVar115 + 6) = puVar130[-3];
    *(undefined2 *)((int)puVar115 + 4) = puVar17;
    puVar117 = (undefined2 *)((int)puVar115 + 2);
    *(undefined2 *)((int)puVar115 + 2) = 0xcd54;
    iVar23 = FUN_1991_0c66();
    puVar130 = (uint *)puVar131;
    puVar116 = puVar117 + 3;
    if (iVar23 == 0) {
      uVar139 = (undefined2)((ulong)*(undefined4 *)(puVar130 + 2) >> 0x10);
      iVar23 = (int)*(undefined4 *)(puVar130 + 2);
      *(undefined2 *)(iVar23 + 6) = puVar17;
      puVar117[2] = uVar139;
      puVar117[1] = iVar23;
      *puVar117 = 0xcd66;
      puVar17 = (undefined4 *)FUN_1991_31d7();
      goto LAB_1991_336a;
    }
  }
  *(undefined2 *)((int)puVar116 + -2) = 0;
  puVar118 = (undefined2 *)((int)puVar116 + -4);
  *(undefined2 *)((int)puVar116 + -4) = 0xcd70;
  FUN_1991_0a89();
  puVar118[1] = puVar130 + -8;
  *puVar118 = puVar17;
  puVar119 = puVar118 + -1;
  puVar118[-1] = 0xcd79;
  FUN_1991_416e();
  if (*(char *)0x980 == '\x04') {
    *(byte *)(puVar130 + -1) = (byte)puVar130[-1] | 0x60;
  }
  *(undefined2 *)((int)puVar119 + 4) = puVar18;
  puVar120 = (uint *)((int)puVar119 + 2);
  *(undefined2 *)((int)puVar119 + 2) = 0xcd8a;
  uVar139 = FUN_1991_35da();
  *(undefined2 *)((int)*(undefined4 *)(puVar130 + 2) + 6) = uVar139;
  *(char *)(((uint)puVar18 >> 3) + *(int *)0xaa0) = (char)puVar130[-3];
  puVar120[1] = (uint)puVar18;
  *puVar120 = puVar130[-7];
  puVar120[-1] = puVar130[-8];
  puVar121 = puVar120 + -2;
  puVar120[-2] = 0xcdaf;
  uVar139 = FUN_1991_409c();
  puVar121[2] = uVar14;
  puVar121[1] = uVar139;
  *puVar121 = 0xcdb6;
  FUN_1991_3eaa();
  if (*(char *)0x980 < '\x04') {
    *(undefined2 *)((int)puVar121 + 6) = puVar17;
    puVar124 = (undefined1 *)((int)puVar121 + 4);
    *(undefined2 *)((int)puVar121 + 4) = 0xcde2;
    puVar17 = puVar18;
    FUN_1991_41e1();
    puVar123 = puVar124 + 4;
  }
  else {
    pbVar2 = (byte *)(((uint)puVar17 >> 3) + *(int *)0xaa0);
    *pbVar2 = *pbVar2 | (byte)puVar130[-3] & 0x10;
    *(undefined2 *)((int)puVar121 + 6) = puVar18;
    puVar122 = (undefined1 *)((int)puVar121 + 4);
    *(undefined2 *)((int)puVar121 + 4) = 0xcdd9;
    FUN_1991_41e1();
    puVar123 = puVar122 + 4;
  }
  *(char *)(puVar130 + -4) = (char)puVar130[-1];
  *(uint **)(puVar123 + -2) = puVar130 + -8;
  *(undefined4 **)(puVar123 + -4) = puVar17;
  puVar125 = (undefined2 *)(puVar123 + -6);
  *(undefined2 *)(puVar123 + -6) = 0xcdf1;
  iVar23 = FUN_1991_4108();
  puVar126 = puVar125 + 2;
  if (iVar23 == 0) {
    puVar125[1] = 0x102;
    *puVar125 = 0xcdfd;
    thunk_EXT_FUN_0000_242d();
    puVar126 = (undefined2 *)((int)puVar125 + 2);
  }
  *(undefined1 *)((*(uint *)((int)*(undefined4 *)(puVar130 + 2) + 6) >> 3) + *(int *)0xaa0) = 1;
  *(uint *)((int)puVar126 + -2) = puVar130[3];
  *(uint *)((int)puVar126 + -4) = puVar130[2];
  puVar127 = (uint *)((int)puVar126 + -6);
  *(undefined2 *)((int)puVar126 + -6) = 0xce1d;
  FUN_1991_31d7();
  puVar127[2] = puVar130[-7];
  puVar127[1] = puVar130[-8];
  *puVar127 = puVar130[-0xb];
  puVar127[-1] = puVar130[-0xc];
  puVar127[-2] = puVar130[-0xd];
  puVar127[-3] = (uint)puVar17;
  puVar128 = puVar127 + -4;
  puVar127[-4] = 0xce32;
  FUN_1991_3a65();
  *(undefined2 *)((int)puVar128 + 0xc) = 1;
  *(undefined2 *)((int)puVar128 + 10) = 0xce3a;
  puVar18 = (undefined4 *)FUN_1991_0a89();
  *(undefined2 *)((int)*(undefined4 *)(puVar130 + 2) + 6) = puVar17;
  return puVar18;
}



void __cdecl16near FUN_1991_3536(undefined4 param_1)

{
  uint uVar1;
  int iVar2;
  int iVar3;
  undefined2 uVar4;
  int local_c;
  uint local_a;
  int local_8;
  undefined2 local_6;
  undefined1 local_4;
  undefined1 local_3;
  
  uVar4 = (undefined2)((ulong)param_1 >> 0x10);
  iVar3 = (int)param_1;
  uVar1 = *(uint *)(iVar3 + 0x10);
  iVar2 = FUN_1991_2d12(uVar1);
  if (iVar2 != 0) {
    local_8 = *(int *)(iVar3 + 0x14) + -1;
    local_c = uVar1 << 4;
    local_a = uVar1 >> 0xc;
    local_4 = 0xf2;
    local_3 = 0;
    local_6 = 0;
    FUN_1991_4108(uVar1,&local_c);
    *(byte *)(iVar3 + 0x26) = *(byte *)(iVar3 + 0x26) & 0xfe;
    *(uint *)(iVar3 + 6) = uVar1;
  }
  return;
}



int __cdecl16near FUN_1991_358c(uint param_1,undefined1 param_2)

{
  byte *pbVar1;
  int iVar2;
  int iVar3;
  undefined2 unaff_DS;
  undefined1 local_c [8];
  byte local_4;
  
  iVar3 = 0;
  iVar2 = FUN_1991_416e(param_1,local_c);
  if ((iVar2 != 0) && ((local_4 & 0x7f) != 0)) {
    iVar3 = FUN_1991_41cf(1);
    if (iVar3 != 0) {
      local_4 = param_2;
      FUN_1991_4108(iVar3,local_c);
      pbVar1 = (byte *)((param_1 >> 3) + (int)*(undefined4 *)0xaa0);
      *pbVar1 = *pbVar1 | 0x10;
    }
  }
  return iVar3;
}



void __cdecl16near FUN_1991_35da(undefined2 param_1)

{
  FUN_1991_358c(param_1,0x92);
  return;
}



void __cdecl16near FUN_1991_35ea(undefined2 param_1)

{
  FUN_1991_358c(param_1,0x9a);
  return;
}



undefined2 __cdecl16near FUN_1991_35fa(uint param_1)

{
  byte *pbVar1;
  int iVar2;
  uint uVar3;
  undefined2 unaff_DS;
  int local_18;
  uint local_16;
  byte local_10;
  int local_e;
  uint local_c;
  undefined2 local_a;
  undefined2 local_8;
  uint local_6;
  
  if (((0x7f < param_1) && (iVar2 = FUN_1991_416e(param_1,&local_18), iVar2 != 0)) &&
     ((local_10 & 0x10) != 0)) {
    *(uint *)0x38 = param_1;
    if (((*(byte *)((param_1 >> 3) + (int)*(undefined4 *)0xaa0) & 1) != 0) &&
       (*(char *)0x2e != '\0')) {
      local_e = local_18;
      local_c = local_16;
      local_a = 0;
      local_8 = 8;
      local_6 = *(uint *)0x97c >> 3;
      for (uVar3 = 0x10; uVar3 < local_6; uVar3 = uVar3 + 1) {
        iVar2 = uVar3 * 8;
        if (((*(int *)(iVar2 + 2) == local_18) && (*(byte *)(iVar2 + 4) == local_16)) &&
           (*(char *)(iVar2 + 5) != '\0')) {
          pbVar1 = (byte *)((int)*(undefined4 *)0xaa0 + uVar3);
          *pbVar1 = *pbVar1 | 1;
        }
      }
    }
    FUN_1991_41e1(param_1);
    FUN_1991_0a89(1);
    return 1;
  }
  return 0;
}



int __cdecl16near FUN_1991_36ab(uint param_1,undefined2 param_2,int param_3)

{
  int iVar1;
  bool bVar2;
  uint local_c;
  int local_a;
  uint local_8;
  byte local_4;
  
  FUN_1991_416e(param_2,&local_c);
  if (((local_4 & 0x18) == 0x10) && (param_1 <= local_8)) {
    iVar1 = FUN_1991_358c(param_2,0x92);
    if (iVar1 != 0) {
      FUN_1991_416e(iVar1,&local_c);
      local_8 = local_8 - param_1;
      if (param_3 - 1U < local_8) {
        local_8 = param_3 - 1U;
      }
      bVar2 = CARRY2(local_c,param_1);
      local_c = local_c + param_1;
      local_a = local_a + (uint)bVar2;
      FUN_1991_4108(iVar1,&local_c);
      return iVar1;
    }
  }
  return 0;
}



int __cdecl16near FUN_1991_371d(undefined2 param_1,undefined2 param_2,int param_3)

{
  int iVar1;
  undefined2 local_c;
  undefined2 local_a;
  int local_8;
  undefined2 local_6;
  undefined1 local_4;
  undefined1 local_3;
  
  iVar1 = FUN_1991_41cf(1);
  if (iVar1 != 0) {
    local_8 = param_3 + -1;
    local_c = param_1;
    local_a = param_2;
    local_4 = 0x92;
    local_6 = 0;
    local_3 = 0;
    FUN_1991_4108(iVar1,&local_c);
  }
  return iVar1;
}



void __cdecl16near FUN_1991_39be(int param_1,int param_2)

{
  int *piVar1;
  uint uVar2;
  undefined2 *puVar3;
  undefined2 *puVar4;
  int iVar5;
  undefined2 *puVar6;
  int iVar7;
  undefined2 *puVar8;
  undefined2 *puVar9;
  undefined2 unaff_DS;
  int local_14;
  uint local_12;
  undefined2 local_4;
  
  uVar2 = param_2 - 1;
  if (param_2 != param_1) {
    local_4 = *(undefined2 *)0xc38;
    FUN_1991_416e(local_4,&local_14);
    local_12 = uVar2 >> 0xc;
    local_14 = uVar2 * 0x10;
    FUN_1991_4108(local_4,&local_14);
    if ((*(char *)0x0 == 'M') || (*(char *)0x0 == 'Z')) {
      iVar5 = (param_1 - uVar2) + -1;
      puVar6 = (undefined2 *)(iVar5 * 0x10);
      puVar8 = (undefined2 *)0x0;
      puVar9 = puVar6;
      for (iVar7 = 8; iVar7 != 0; iVar7 = iVar7 + -1) {
        puVar4 = puVar9;
        puVar9 = puVar9 + 1;
        puVar3 = puVar8;
        puVar8 = puVar8 + 1;
        *puVar4 = *puVar3;
      }
      *(undefined1 *)0x0 = 0x4d;
      *(int *)0x3 = (param_1 - uVar2) + -2;
      *(undefined2 *)0x1 = 0;
      piVar1 = (int *)((int)puVar6 + 3);
      *piVar1 = *piVar1 - iVar5;
    }
  }
  return;
}



void __cdecl16near
FUN_1991_3a65(uint param_1,uint param_2,int param_3,uint param_4,uint param_5,int param_6)

{
  byte *pbVar1;
  int iVar2;
  uint uVar3;
  uint uVar4;
  undefined2 unaff_DS;
  uint local_e;
  int local_c;
  byte local_6;
  char local_4;
  
  if ((*(byte *)((param_1 >> 3) + (int)*(undefined4 *)0xaa0) & 0x10) != 0) {
    uVar4 = *(uint *)0x97c ^ (byte)((byte)*(uint *)0x97c ^ (byte)param_1) & 7;
    local_4 = '\0';
    while (uVar4 = uVar4 - 8, *(uint *)0xc34 <= uVar4) {
      iVar2 = FUN_1991_416e(uVar4,&local_e);
      if ((((iVar2 != 0) && ((local_6 & 0x10) != 0)) &&
          (uVar3 = local_e - param_2, local_c - param_3 == (uint)(local_e < param_2))) &&
         (uVar3 <= param_4)) {
        local_e = uVar3 + param_5;
        local_c = param_6 + (uint)CARRY2(uVar3,param_5);
        FUN_1991_4108(uVar4,&local_e);
        local_4 = '\x01';
      }
    }
    if (local_4 == '\0') {
      pbVar1 = (byte *)((param_1 >> 3) + (int)*(undefined4 *)0xaa0);
      *pbVar1 = *pbVar1 & 0xef;
    }
  }
  return;
}



void __cdecl16near FUN_1991_3af9(uint param_1,uint param_2,int param_3,uint param_4)

{
  int iVar1;
  uint uVar2;
  undefined2 unaff_DS;
  uint local_c;
  int local_a;
  byte local_4;
  
  uVar2 = (param_1 ^ *(uint *)0x97c) & 7 ^ *(uint *)0x97c;
  while (uVar2 = uVar2 - 8, *(uint *)0xc34 <= uVar2) {
    iVar1 = FUN_1991_416e(uVar2,&local_c);
    if ((((iVar1 != 0) && ((local_4 & 0x10) != 0)) &&
        (local_a - param_3 == (uint)(local_c < param_2))) && (local_c - param_2 <= param_4)) {
      FUN_1991_41e1(uVar2);
    }
  }
  return;
}



// WARNING: Removing unreachable block (ram,0x0001d4e0)
// WARNING: Removing unreachable block (ram,0x0001d4f9)

undefined4 __cdecl16near FUN_1991_3b52(uint param_1,int param_2,int param_3)

{
  uint *puVar1;
  undefined2 uVar2;
  undefined2 uVar3;
  ulong uVar4;
  uint uVar5;
  uint uVar6;
  undefined2 unaff_DS;
  undefined4 uVar7;
  ulong uVar8;
  long lVar9;
  long lVar10;
  int iVar11;
  int local_10;
  uint local_e;
  int local_c;
  
  if ((*(char *)0x2e == '\0') || (*(char *)0xa16 != '\0')) {
    iVar11 = 3;
    do {
      uVar5 = param_1 - *(uint *)0xaa8;
      local_c = ((param_2 - *(int *)0xaaa) - (uint)(param_1 < *(uint *)0xaa8)) +
                (uint)(0xf000 < uVar5);
      local_e = uVar5 + 0xfff & 0xf000;
      local_10 = 3;
      while( true ) {
        uVar8 = (*(code *)*(undefined2 *)0xaa4)(iVar11);
        uVar4 = CONCAT22(local_c,local_e);
        if (((long)uVar8 < CONCAT22(local_c,local_e)) && (uVar4 = uVar8, param_3 != 0))
        goto LAB_1991_3b78;
        local_c = (int)(uVar4 >> 0x10);
        local_e = (uint)uVar4;
        if ((long)uVar4 < 1) goto LAB_1991_3b78;
        iVar11 = local_c;
        lVar9 = (*(code *)*(undefined2 *)0xaa6)(local_e);
        if (lVar9 != 0) break;
        if ((param_3 != 0) && (local_10 = local_10 + -1, local_10 < 0)) goto LAB_1991_3b78;
        local_c = local_c >> 1;
        local_e = local_e >> 1 | (uint)((uVar4 & 0x10000) != 0) << 0xf;
      }
      lVar9 = FUN_1991_409c(lVar9);
      uVar5 = (uint)((ulong)lVar9 >> 0x10);
      if ((uVar5 < *(uint *)0x9a) ||
         (((uVar5 <= *(uint *)0x9a && ((uint)lVar9 < *(uint *)0x98)) ||
          (*(int *)0x9a == 0 && *(int *)0x98 == 0)))) {
        uVar2 = *(undefined2 *)0x98;
        uVar3 = *(undefined2 *)0x9a;
        *(uint *)0x98 = (uint)lVar9;
        *(uint *)0x9a = uVar5;
        FUN_1991_4047(lVar9,0,uVar2,uVar3);
        FUN_1991_4047(lVar9,4,0,0);
        lVar9 = lVar9 + 1;
        uVar4 = CONCAT22(local_c - (uint)(local_e < 0x10),local_e - 0x10);
      }
      local_c = (int)(uVar4 >> 0x10);
      local_e = (uint)uVar4;
      lVar10 = FUN_1991_409c(uVar4);
      uVar5 = (uint)(lVar9 + lVar10);
      uVar6 = (uint)((ulong)(lVar9 + lVar10) >> 0x10);
      if ((*(uint *)0x9e <= uVar6) && ((*(uint *)0x9e < uVar6 || (*(uint *)0x9c < uVar5)))) {
        *(uint *)0x9c = uVar5;
        *(uint *)0x9e = uVar6;
      }
      uVar7 = FUN_1991_409c(uVar4);
      FUN_1991_24f0(lVar9,uVar7);
      if (*(char *)0x2e == '\0') {
        FUN_1991_2916(lVar9,*(undefined2 *)0x1202,*(undefined2 *)0x1204);
      }
      if (*(char *)0x2e != '\v') {
        puVar1 = (uint *)0xaa8;
        uVar5 = *puVar1;
        *puVar1 = *puVar1 + local_e;
        *(int *)0xaaa = *(int *)0xaaa + local_c + (uint)CARRY2(uVar5,local_e);
      }
      iVar11 = iVar11 + -1;
    } while (0 < iVar11);
  }
  else if (*(char *)0x2e != '\v') {
    uVar7 = FUN_1991_40b7(*(uint *)0x9c - *(uint *)0x98,
                          (*(int *)0x9e - *(int *)0x9a) - (uint)(*(uint *)0x9c < *(uint *)0x98));
    return uVar7;
  }
LAB_1991_3b78:
  return CONCAT22(*(undefined2 *)0xaaa,*(undefined2 *)0xaa8);
}



void __cdecl16near FUN_1991_3d68(uint param_1,int param_2)

{
  uint uVar1;
  uint uVar2;
  ulong uVar3;
  uint uVar4;
  int iVar5;
  undefined2 unaff_DS;
  long lVar6;
  
  uVar1 = *(uint *)0xac;
  uVar2 = *(uint *)0xae;
  if (((*(byte *)0x47 & 0x80) == 0) && ((*(byte *)0x15 & 0x40) == 0)) {
    if (*(int *)0xadc != 0) {
      lVar6 = FUN_1991_3e5a(param_1,param_2);
      if (lVar6 != 0) {
        FUN_1991_5883(lVar6,param_1,param_2);
        return;
      }
    }
    lVar6 = FUN_1991_409c(param_1 + 0x3fff,param_2 + (uint)(0xc000 < param_1));
    uVar3 = lVar6 + CONCAT22(uVar2,uVar1);
    iVar5 = (int)(uVar3 >> 0x10);
    uVar4 = (uint)uVar3 & 0xfc00;
    *(uint *)0x9c = uVar4;
    *(int *)0x9e = iVar5;
    FUN_1991_57b8(uVar2,uVar4 - 1,iVar5 - (uint)((uVar3 & 0xfc00) == 0));
    uVar4 = *(uint *)0xae;
    if ((uVar2 <= uVar4) && ((uVar2 < uVar4 || (uVar1 < *(uint *)0xac)))) {
      *(uint *)0x9c = *(uint *)0xac;
      *(uint *)0x9e = uVar4;
      FUN_1991_40b7(uVar1,uVar2);
      return;
    }
    *(uint *)0x9c = uVar1;
    *(uint *)0x9e = uVar2;
  }
  return;
}



// WARNING: Control flow encountered bad instruction data
// WARNING: Unable to track spacebase fully for stack

void __cdecl16near FUN_1991_3e5a(undefined2 param_1,undefined2 param_2)

{
  int iVar1;
  int *piVar2;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  
  piVar2 = (int *)0xada;
  do {
    piVar2 = piVar2 + 1;
    if ((int *)0xaeb < piVar2) {
      return;
    }
  } while (*piVar2 != 0);
  *(int *)0x996 = *(int *)0x996 + -0x180;
  iVar1 = *(int *)0x996;
  *(undefined2 *)(iVar1 + -0x12) = unaff_SS;
  *(undefined1 **)(iVar1 + -0x14) = &stack0xfffe;
  *(undefined2 *)(iVar1 + -0x16) = (int)(CONCAT22(param_2,param_1) / 0x400);
                    // WARNING: Bad instruction - Truncating control flow here
  halt_baddata();
}



// WARNING: Control flow encountered bad instruction data

void thunk_EXT_FUN_0000_242d(void)

{
                    // WARNING: Bad instruction - Truncating control flow here
  halt_baddata();
}



void __cdecl16near FUN_1991_3eaa(undefined2 param_1,undefined2 param_2,int param_3)

{
  undefined2 *puVar1;
  undefined2 *puVar2;
  uint uVar3;
  uint uVar5;
  undefined2 in_BX;
  undefined2 *puVar6;
  undefined2 *puVar7;
  int unaff_SS;
  undefined2 unaff_DS;
  undefined3 uVar4;
  
  FUN_1991_4062();
  puVar6 = (undefined2 *)0x0;
  puVar7 = (undefined2 *)0x0;
  uVar4 = SegmentLimit(in_BX);
  uVar3 = (uint)uVar4;
  if (uVar3 != 0) {
    for (uVar5 = uVar3 + 1 >> 1 | (uint)(0xfffe < uVar3) << 0xf; uVar5 != 0; uVar5 = uVar5 - 1) {
      puVar2 = puVar7;
      puVar7 = puVar7 + 1;
      puVar1 = puVar6;
      puVar6 = puVar6 + 1;
      *puVar2 = *puVar1;
    }
    if ((uVar3 + 1 & 1) != 0) {
      *(undefined1 *)puVar7 = *(undefined1 *)puVar6;
    }
    if (unaff_SS == param_3) {
      FUN_1991_0899();
    }
  }
  return;
}



uint __cdecl16near FUN_1991_3ee6(void)

{
  code *pcVar1;
  uint uVar2;
  int iVar3;
  undefined1 in_CF;
  undefined2 in_stack_00000008;
  undefined2 in_stack_0000000a;
  
  iVar3 = 6;
  do {
    iVar3 = iVar3 + -1;
  } while (iVar3 != 0);
  pcVar1 = (code *)swi(0x21);
  iVar3 = (*pcVar1)(in_stack_00000008,in_stack_0000000a);
  if ((bool)in_CF) {
    return -iVar3;
  }
  pcVar1 = (code *)swi(0x21);
  uVar2 = (*pcVar1)();
  return uVar2 & 0xff;
}



void __cdecl16near
FUN_1991_3f16(undefined2 param_1,code *param_2,int param_3,uint param_4,undefined2 param_5,
             undefined1 param_6)

{
  code cVar1;
  code *pcVar2;
  uint uVar3;
  int iVar4;
  undefined2 *puVar5;
  uint uVar6;
  undefined1 in_CF;
  bool bVar7;
  undefined2 in_stack_00000000;
  
  uVar6 = (uint)((ulong)param_2 >> 0x10);
  FUN_1991_3fd7(*(int *)param_2);
  pcVar2 = (code *)swi(0x21);
  uVar3 = (*pcVar2)();
  if (!(bool)in_CF) {
    iVar4 = *(int *)(uVar3 + 2);
    cVar1 = *(code *)(uVar3 + 4);
    *(undefined1 *)(uVar3 + 5) = 0;
    *(undefined1 *)(uVar3 >> 3) = 0;
    *(int *)((code *)param_2 + 2) = iVar4;
    ((code *)param_2)[4] = cVar1;
    bVar7 = false;
    if ((*(int *)param_2 == -1) || (*(int *)param_2 + 1 < 0)) {
      pcVar2 = (code *)swi(0x21);
      (*pcVar2)();
      if (bVar7) goto LAB_1991_3f6f;
      bVar7 = (byte)((uint)in_stack_00000000 >> 8) < 0x80;
    }
    pcVar2 = (code *)swi(0x21);
    (*pcVar2)();
    if (!bVar7) {
      return;
    }
  }
LAB_1991_3f6f:
  pcVar2 = (code *)swi(0x21);
  (*pcVar2)();
  puVar5 = (undefined2 *)(uVar6 & 0xfff8);
  *puVar5 = param_5;
  *(undefined1 *)((int)puVar5 + 5) = param_6;
  iVar4 = 4;
  do {
    bVar7 = param_3 < 0;
    param_3 = param_3 << 1;
    uVar3 = param_4 << 1;
    param_4 = uVar3 | bVar7;
    iVar4 = iVar4 + -1;
  } while (iVar4 != 0);
  puVar5[1] = param_3;
  *(char *)(puVar5 + 2) = (char)param_4;
  *(undefined1 *)((int)puVar5 + 7) = (char)(uVar3 >> 8);
                    // WARNING: Could not recover jumptable at 0x0001d8c1. Too many branches
                    // WARNING: Treating indirect jump as call
  (*(code *)param_2)();
  return;
}



void FUN_1991_3f74(uint param_1,int param_2,uint param_3,undefined2 param_4,undefined1 param_5)

{
  uint uVar1;
  int iVar2;
  undefined2 *puVar3;
  bool bVar4;
  code *in_stack_00000000;
  
  puVar3 = (undefined2 *)(param_1 & 0xfff8);
  *puVar3 = param_4;
  *(undefined1 *)((int)puVar3 + 5) = param_5;
  iVar2 = 4;
  do {
    bVar4 = param_2 < 0;
    param_2 = param_2 << 1;
    uVar1 = param_3 << 1;
    param_3 = uVar1 | bVar4;
    iVar2 = iVar2 + -1;
  } while (iVar2 != 0);
  puVar3[1] = param_2;
  *(char *)(puVar3 + 2) = (char)param_3;
  *(undefined1 *)((int)puVar3 + 7) = (char)(uVar1 >> 8);
                    // WARNING: Could not recover jumptable at 0x0001d8c1. Too many branches
                    // WARNING: Treating indirect jump as call
  (*in_stack_00000000)();
  return;
}



void __cdecl16near
FUN_1991_3fb3(undefined2 param_1,undefined2 *param_2,uint param_3,undefined1 param_4)

{
  undefined2 *puVar1;
  uint uVar2;
  
  for (uVar2 = param_3 >> 1 | (uint)(param_3 == 0) << 0xf; uVar2 != 0; uVar2 = uVar2 - 1) {
    puVar1 = param_2;
    param_2 = param_2 + 1;
    *puVar1 = CONCAT11(param_4,param_4);
  }
  for (uVar2 = (uint)((param_3 & 1) != 0); uVar2 != 0; uVar2 = uVar2 - 1) {
    puVar1 = param_2;
    param_2 = (undefined2 *)((int)param_2 + 1);
    *(undefined1 *)puVar1 = param_4;
  }
  return;
}



uint __cdecl16near FUN_1991_3fd7(uint param_1)

{
  return (param_1 + 0x10 >> 1 | (uint)(0xffef < param_1) << 0xf) >> 3;
}



undefined4 __cdecl16near FUN_1991_4031(long param_1,uint param_2)

{
  undefined2 *in_BX;
  undefined2 unaff_DS;
  
  if (*(byte *)0x2f < 3) {
    FUN_1991_4062();
    return CONCAT22(in_BX[1],*in_BX);
  }
  return CONCAT22(*(undefined2 *)(param_1 * 0x10 + 2 + (ulong)param_2),
                  *(undefined2 *)(param_1 * 0x10 + (ulong)param_2));
}



void __cdecl16near FUN_1991_4047(long param_1,int param_2,undefined2 param_3,undefined2 param_4)

{
  undefined2 *in_BX;
  undefined2 unaff_DS;
  
  if (*(byte *)0x2f < 3) {
    FUN_1991_4062();
    *in_BX = param_3;
    in_BX[1] = param_4;
    return;
  }
  *(undefined4 *)
   CONCAT22((int)((ulong)(param_1 << 4) >> 0x10),(undefined4 *)((int)(param_1 << 4) + param_2)) =
       *(undefined4 *)ZEXT24(&param_3);
  return;
}



void __cdecl16near FUN_1991_4062(void)

{
  int iVar1;
  uint uVar2;
  int iVar3;
  int unaff_BP;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  
  iVar1 = *(int *)(unaff_BP + 4);
  iVar3 = (((*(int *)(unaff_BP + 6) << 1 | (uint)(iVar1 < 0)) << 1 | (uint)(iVar1 << 1 < 0)) << 1 |
          (uint)(iVar1 << 2 < 0)) << 1;
  uVar2 = *(uint *)0xc38;
  if ((uVar2 & 3) == 0) {
    *(int *)(uVar2 + 2) = iVar1 << 4;
    *(byte *)(uVar2 + 4) = (byte)iVar3 | iVar1 << 3 < 0;
    *(undefined1 *)(uVar2 + 7) = (char)((uint)iVar3 >> 8);
  }
  else {
    FUN_1991_0899();
  }
  return;
}



undefined4 __cdecl16near FUN_1991_409c(uint param_1,uint param_2)

{
  return CONCAT22(param_2 >> 4,
                  (((param_1 >> 1 | (uint)((param_2 & 1) != 0) << 0xf) >> 1 |
                   (uint)((param_2 >> 1 & 1) != 0) << 0xf) >> 1 |
                  (uint)((param_2 >> 2 & 1) != 0) << 0xf) >> 1 |
                  (uint)((param_2 >> 3 & 1) != 0) << 0xf);
}



undefined4 __cdecl16near FUN_1991_40b7(int param_1,int param_2)

{
  return CONCAT22((((param_2 << 1 | (uint)(param_1 < 0)) << 1 | (uint)(param_1 << 1 < 0)) << 1 |
                  (uint)(param_1 << 2 < 0)) << 1 | (uint)(param_1 << 3 < 0),param_1 << 4);
}



undefined2 __cdecl16near
FUN_1991_40d2(undefined2 param_1,undefined2 param_2,uint param_3,undefined2 *param_4)

{
  undefined2 unaff_SS;
  
  *param_4 = (int)(CONCAT22(param_2,param_1) % (ulong)param_3);
  return (int)(CONCAT22(param_2,param_1) / (ulong)param_3);
}



void __cdecl16near FUN_1991_40e6(void)

{
  uint uVar1;
  undefined2 *unaff_BP;
  undefined2 *unaff_DI;
  undefined2 unaff_ES;
  undefined2 unaff_SS;
  
  *unaff_DI = unaff_BP[2];
  unaff_DI[1] = *unaff_BP;
  unaff_DI[2] = CONCAT11(*(undefined1 *)(unaff_BP + 4),*(undefined1 *)(unaff_BP + 1));
  uVar1 = CONCAT11(*(undefined1 *)(unaff_BP + 3),*(undefined1 *)((int)unaff_BP + 9)) & 0xff0;
  unaff_DI[3] = CONCAT11(*(undefined1 *)((int)unaff_BP + 3),(byte)uVar1 | (byte)(uVar1 >> 8));
  return;
}



void FUN_1991_4108(undefined2 param_1,int param_2)

{
  undefined2 uVar1;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  code *in_stack_00000000;
  
  if (*(char *)0x2e != '\0') {
    FUN_1991_40e6();
                    // WARNING: Could not recover jumptable at 0x0001da3e. Too many branches
                    // WARNING: Treating indirect jump as call
    (*in_stack_00000000)();
    return;
  }
  FUN_1991_40e6();
  uVar1 = unaff_DS;
  if ((*(byte *)(param_2 + 8) & 8) != 0) {
    uVar1 = 0x1991;
  }
  *(byte *)0x8c5 = (byte)((uint)uVar1 >> 8) & 0xfe;
  FUN_1991_0899();
                    // WARNING: Could not recover jumptable at 0x0001da78. Too many branches
                    // WARNING: Treating indirect jump as call
  (*in_stack_00000000)();
  return;
}



int __cdecl16near FUN_1991_416e(uint param_1,undefined2 *param_2)

{
  undefined2 uVar1;
  uint uVar2;
  undefined2 *puVar3;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  bool bVar4;
  
  if (*(uint *)0x97c <= param_1) {
    return 0;
  }
  if (*(char *)0x2e == '\0') {
    bVar4 = false;
    puVar3 = (undefined2 *)0x8c0;
    FUN_1991_0899();
    if (bVar4) {
      return 0;
    }
  }
  else {
    unaff_DS = 8;
    puVar3 = (undefined2 *)(param_1 & 0xfff8);
  }
  param_2[2] = *puVar3;
  *param_2 = puVar3[1];
  uVar1 = puVar3[2];
  *(char *)(param_2 + 1) = (char)uVar1;
  *(char *)(param_2 + 4) = (char)((uint)uVar1 >> 8);
  uVar2 = puVar3[3] & 0xfff0;
  *(undefined1 *)((int)param_2 + 9) = (char)uVar2;
  *(undefined1 *)((int)param_2 + 3) = (char)(uVar2 >> 8);
  param_2[3] = 0;
  return uVar2 + 1;
}



uint __cdecl16near FUN_1991_41cf(void)

{
  uint uVar1;
  char cVar2;
  
  cVar2 = '\0';
  uVar1 = FUN_1991_0899();
  return uVar1 & -(uint)(cVar2 == '\0');
}



uint __cdecl16near FUN_1991_41e1(void)

{
  uint uVar1;
  char in_CF;
  
  uVar1 = FUN_1991_0899();
  return uVar1 & -(uint)(in_CF == '\0');
}



// WARNING (jumptable): Stack frame is not setup normally: Input value of stackpointer is not used
// WARNING: Stack frame is not setup normally: Input value of stackpointer is not used

void FUN_1991_41f0(void)

{
  code *pcVar1;
  undefined2 *puVar2;
  undefined2 *in_ESP;
  undefined4 in_EDI;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  
  puVar2 = (undefined2 *)in_ESP;
  pcVar1 = (code *)*puVar2;
  *(undefined4 *)(puVar2 + -1) = *(undefined4 *)0xc18;
  puVar2[-2] = *(undefined2 *)0xc1c;
  *(undefined4 *)0xc18 = (undefined2 *)CONCAT22((int)((ulong)in_ESP >> 0x10),puVar2 + -2);
  if (((CONCAT22((int)((ulong)in_EDI >> 0x10),unaff_SS) & 0xffff00) >> 0x16 & 1) == 0) {
    *(undefined2 *)0xc1a = 0;
  }
  *(undefined2 *)0xc1c = unaff_SS;
  *(int *)0x996 = *(int *)0x996 + -0x180;
  puVar2[-3] = unaff_DS;
                    // WARNING: Could not recover jumptable at 0x0001db37. Too many branches
                    // WARNING: Treating indirect jump as call
  (*pcVar1)();
  return;
}



// WARNING (jumptable): Stack frame is not setup normally: Input value of stackpointer is not used
// WARNING: Control flow encountered bad instruction data
// WARNING: Stack frame is not setup normally: Input value of stackpointer is not used

undefined2 FUN_1991_44d6(void)

{
  int iVar1;
  byte bVar3;
  undefined2 uVar2;
  undefined4 in_EAX;
  undefined4 in_ECX;
  undefined4 in_EDX;
  undefined4 in_EBX;
  uint uVar5;
  ulong uVar4;
  int iVar6;
  undefined4 in_ESP;
  undefined4 in_EBP;
  ulong uVar7;
  undefined4 in_ESI;
  undefined4 in_EDI;
  undefined2 unaff_ES;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  
  iVar6 = (int)in_ESP;
  *(undefined4 *)(iVar6 + -4) = in_EAX;
  *(undefined4 *)(iVar6 + -8) = in_ECX;
  *(undefined4 *)(iVar6 + -0xc) = in_EDX;
  *(undefined4 *)(iVar6 + -0x10) = in_EBX;
  *(undefined4 *)(iVar6 + -0x14) = in_ESP;
  *(undefined4 *)(iVar6 + -0x18) = in_EBP;
  *(undefined4 *)(iVar6 + -0x1c) = in_ESI;
  *(undefined4 *)(iVar6 + -0x20) = in_EDI;
  *(undefined2 *)(iVar6 + -0x22) = unaff_ES;
  uVar7 = CONCAT22((int)((ulong)in_ESP >> 0x10),iVar6 + -0x24);
  *(undefined2 *)(iVar6 + -0x24) = unaff_DS;
  uVar5 = (uint)((ulong)in_EBX >> 0x10);
  uVar4 = CONCAT22(uVar5,unaff_SS) & 0xffff00;
  if ((uVar4 >> 0x16 & 1) == 0) {
    uVar7 = (ulong)(iVar6 - 0x24);
    uVar4 = ((ulong)uVar5 & 0xff) << 0x10;
  }
  *(int *)(iVar6 + -0x26) = -(uint)(*(uint *)(uVar7 + 0x28) < 0x71 || (uVar4 >> 0x10 & 0x40) != 0);
  *(undefined2 *)(iVar6 + -0x28) = 0xffff;
  bVar3 = (byte)((ulong)in_EAX >> 8);
  if (bVar3 < 0xf) {
    *(byte *)(uVar7 + 0x2c) = *(byte *)(uVar7 + 0x2c) & 0xfe;
    iVar1 = *(int *)((uint)bVar3 * 2 + 0x44b8);
    uVar2 = *(undefined2 *)(iVar1 + -2);
    if ((char)uVar2 < '\0') {
                    // WARNING (jumptable): Sanity check requires truncation of jumptable
                    // WARNING: Could not find normalized switch variable to match jumptable
      switch(bVar3) {
      case 0:
                    // WARNING: Bad instruction - Truncating control flow here
        halt_baddata();
      case 1:
                    // WARNING: Bad instruction - Truncating control flow here
        halt_baddata();
      }
    }
    if ((byte)in_EAX < (byte)((uint)uVar2 >> 8)) {
                    // WARNING: Could not recover jumptable at 0x0001de4b. Too many branches
                    // WARNING: Treating indirect jump as call
      uVar2 = (*(code *)*(undefined2 *)(((uint)in_EAX & 0xff) * 2 + iVar1))();
      return uVar2;
    }
  }
  *(byte *)(uVar7 + 0x2c) = *(byte *)(uVar7 + 0x2c) | 1;
  return (int)*(undefined4 *)((int)uVar7 + 0x20);
}



// WARNING: Globals starting with '_' overlap smaller symbols at the same address

void __cdecl16near FUN_1991_4d48(void)

{
  int iVar1;
  undefined1 uVar2;
  undefined1 uVar3;
  undefined2 *puVar4;
  
  uVar3 = DAT_0000_1a18;
  uVar2 = DAT_0000_1a15;
  iVar1 = _DAT_0000_0e14;
  puVar4 = (undefined2 *)(_DAT_0000_0e14 + 8);
  *(undefined2 *)(_DAT_0000_0e14 + 10) = _DAT_0000_1a13;
  *(undefined1 *)(iVar1 + 0xc) = uVar2;
  *(undefined1 *)(iVar1 + 0xf) = uVar3;
  *puVar4 = 0xffff;
  *(undefined1 *)(iVar1 + 0xd) = 0x92;
  return;
}



// WARNING (jumptable): Unable to track spacebase fully for stack
// WARNING: Unable to track spacebase fully for stack
// WARNING: Globals starting with '_' overlap smaller symbols at the same address

void switchD_1000:ccf1::caseD_0(void)

{
  uint uVar1;
  byte bVar2;
  uint uVar3;
  undefined2 in_AX;
  long lVar4;
  int in_DX;
  undefined1 in_BL;
  ulong *puVar5;
  int unaff_BP;
  int iVar6;
  undefined4 *in_ESI;
  undefined4 *in_EDI;
  undefined2 unaff_SS;
  int unaff_DS;
  bool bVar7;
  byte in_AF;
  byte in_TF;
  byte in_IF;
  bool bVar8;
  byte in_NT;
  byte in_AC;
  byte in_VIF;
  byte in_VIP;
  byte in_ID;
  
  bVar2 = *(byte *)(unaff_BP + 0xf);
  for (lVar4 = 8; lVar4 != 0; lVar4 = lVar4 + -1) {
    *in_EDI = *in_ESI;
    in_ESI = in_ESI + 1;
    in_EDI = in_EDI + 1;
  }
  iVar6 = unaff_DS + in_DX;
  lVar4 = (ulong)CONCAT11((byte)((uint)in_AX >> 8) & bVar2,(char)in_AX) * 0x10;
  *(undefined2 *)(iVar6 + 0x1a) = (int)lVar4;
  *(undefined1 *)(iVar6 + 0x1c) = (char)((ulong)lVar4 >> 0x10);
  *(undefined1 *)(iVar6 + 0x1f) = 0;
  uVar3 = _DAT_0000_0e16;
  bVar7 = 0xfbff < _DAT_0000_0e16;
  bVar8 = SCARRY2(_DAT_0000_0e16,0x400);
  uVar1 = _DAT_0000_0e16 + 0x400;
  puVar5 = (ulong *)(_DAT_0000_0e16 + 0x3fc);
  _DAT_0000_0e16 = uVar1;
  *puVar5 = (ulong)(in_NT & 1) * 0x4000 | (ulong)bVar8 * 0x800 | (ulong)(in_IF & 1) * 0x200 |
            (ulong)(in_TF & 1) * 0x100 | (ulong)((int)uVar1 < 0) * 0x80 | (ulong)(uVar1 == 0) * 0x40
            | (ulong)(in_AF & 1) * 0x10 | (ulong)((POPCOUNT(uVar1 & 0xff) & 1U) == 0) * 4 |
            (ulong)bVar7 | (ulong)(in_ID & 1) * 0x200000 | (ulong)(in_VIP & 1) * 0x100000 |
            (ulong)(in_VIF & 1) * 0x80000 | (ulong)(in_AC & 1) * 0x40000;
  *(undefined2 *)(uVar3 + 0x3fa) = 0;
  *(undefined2 *)(uVar3 + 0x3f8) = 0x1000;
  *(undefined2 *)(uVar3 + 0x3f6) = 0;
  *(undefined2 *)(uVar3 + 0x3f4) = 0x4f97;
                    // WARNING: Could not recover jumptable at 0x0001e8a1. Too many branches
                    // WARNING: Treating indirect jump as call
  (*(code *)*(undefined4 *)(CONCAT11(0xf4,in_BL) + 0x4d78))();
  return;
}



undefined2 __cdecl16far FUN_1991_5750(void)

{
  char extraout_AH;
  ulong uVar1;
  int iVar2;
  ulong in_EDX;
  ulong *in_EBX;
  ulong *in_EDI;
  undefined2 unaff_DS;
  
  iVar2 = *(int *)0xdee + -1;
  (*(code *)0xd5a)();
  uVar1 = 0;
  if (extraout_AH == '\0') {
    for (; in_EDI < in_EBX; in_EDI = in_EDI + 1) {
      if ((*in_EDI & 0x800) == 0) {
        uVar1 = in_EDX | 0x807;
        do {
          *in_EDI = uVar1;
          uVar1 = uVar1 + 0x1000;
          *(int *)0xdf6 = *(int *)0xdf6 + 1;
          *(long *)0xaa8 = *(long *)0xaa8 + 0x1000;
          iVar2 = iVar2 + -1;
          in_EDI = in_EDI + 1;
        } while (-1 < iVar2);
        break;
      }
    }
  }
  return (int)uVar1;
}



// WARNING: Stack frame is not setup normally: Input value of stackpointer is not used

undefined2 __cdecl16far FUN_1991_57b8(void)

{
  undefined2 uVar1;
  int iVar2;
  undefined4 in_EAX;
  undefined4 in_ECX;
  ulong uVar3;
  uint *puVar4;
  undefined4 in_EDX;
  undefined4 in_EBX;
  undefined1 *puVar5;
  undefined2 *puVar6;
  undefined1 *puVar7;
  undefined2 *puVar8;
  undefined1 *puVar10;
  undefined2 *in_ESP;
  undefined2 *puVar11;
  undefined4 in_EBP;
  undefined2 *puVar12;
  long in_ESI;
  undefined4 in_EDI;
  uint *puVar13;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  undefined2 in_FS;
  undefined2 in_GS;
  undefined1 *puVar9;
  
  puVar6 = (undefined2 *)in_ESP;
  uVar1 = *puVar6;
  *puVar6 = 0x1991;
  puVar6[-1] = uVar1;
  puVar6[-2] = (int)in_EBP;
  puVar12 = (undefined2 *)CONCAT22((int)((ulong)in_EBP >> 0x10),puVar6 + -2);
  *(ulong *)(puVar6 + -4) = CONCAT22((int)((ulong)in_EAX >> 0x10),uVar1);
  *(undefined4 *)(puVar6 + -6) = in_ECX;
  *(undefined4 *)(puVar6 + -8) = in_EDX;
  *(undefined4 *)(puVar6 + -10) = in_EBX;
  *(undefined2 **)(puVar6 + -0xc) = (undefined2 *)CONCAT22((int)((ulong)in_ESP >> 0x10),puVar6 + -2)
  ;
  *(undefined2 **)(puVar6 + -0xe) = puVar12;
  *(long *)(puVar6 + -0x10) = in_ESI;
  *(undefined4 *)(puVar6 + -0x12) = in_EDI;
  puVar6[-0x13] = in_FS;
  puVar6[-0x14] = in_GS;
  puVar6[-0x15] = 0;
  puVar6[-0x16] = 0x1991;
  puVar10 = (undefined1 *)ZEXT24(puVar6 + -0x17);
  puVar6[-0x17] = 0xf0db;
  func_0x00002c6b();
  puVar8 = (undefined2 *)puVar10;
  puVar11 = (undefined2 *)puVar12;
  uVar3 = (*(ulong *)(puVar11 + 5) >> 6) + in_ESI;
  if (uVar3 < (CONCAT22((int)((ulong)(*(long *)0x9c + ~(long)*(int *)0xdf0) >> 0x10),
                        (uint)(*(long *)0x9c + ~(long)*(int *)0xdf0) & *(uint *)0xdf0) >> 6) +
              in_ESI) {
    puVar13 = (uint *)((*(ulong *)(puVar11 + 3) >> 6) + in_ESI & 0xfffffffc);
    puVar4 = (uint *)(uVar3 & 0xfffffffc);
    do {
      puVar11 = (undefined2 *)puVar12;
      puVar8 = (undefined2 *)puVar10;
      if ((*puVar13 & *(uint *)0xdf2) == *(uint *)0xdf2) {
        puVar13 = puVar13 + 2;
      }
      else {
        if ((*(byte *)0x1582 & 1) != 0) goto LAB_1991_5831;
        *(undefined2 *)((int)puVar8 + -2) = 0x18;
        puVar5 = (undefined1 *)((int)puVar8 + -4);
        *(undefined2 *)((int)puVar8 + -4) = 0xf0bd;
        iVar2 = FUN_1991_5750();
        puVar11 = (undefined2 *)puVar12;
        if (iVar2 == 0) {
          puVar9 = puVar5 + 2;
          *(undefined2 *)(puVar5 + 2) = 0xf141;
          FUN_1991_5836();
          puVar8 = (undefined2 *)(puVar9 + 2);
          goto LAB_1991_5831;
        }
        puVar10 = (undefined1 *)ZEXT24(puVar5 + 4);
        *(int *)(puVar5 + 4) = *(int *)(puVar5 + 4) + 1;
      }
      puVar11 = (undefined2 *)puVar12;
    } while (puVar13 <= puVar4);
    puVar7 = (undefined1 *)puVar10 + -2;
    *(undefined2 *)((undefined1 *)puVar10 + -2) = 0xf133;
    FUN_1991_5836();
    puVar8 = (undefined2 *)(puVar7 + 2);
  }
  else {
LAB_1991_5831:
    *puVar8 = 0xffff;
  }
  puVar11[-2] = *puVar8;
  return (int)*(undefined4 *)(puVar8 + 0x11);
}



void __cdecl16near FUN_1991_5836(void)

{
  ulong *puVar1;
  ulong uVar2;
  ulong uVar3;
  long in_ESI;
  long in_EDI;
  ulong uVar4;
  undefined2 unaff_DS;
  
  uVar4 = (in_EDI - in_ESI) * 0x40;
  puVar1 = (ulong *)((ulong)*(uint *)0xa2 * 0x10 + 0x14 + (ulong)*(uint *)0xa0);
  uVar2 = *puVar1;
  uVar3 = *(ulong *)0xac;
  if (*(ulong *)0xac <= uVar2) {
    uVar3 = uVar2;
  }
  if (uVar3 <= uVar4) {
    uVar3 = uVar4;
  }
  *puVar1 = uVar3;
  *(ulong *)0xac = uVar3;
  return;
}



// WARNING: Control flow encountered bad instruction data

void FUN_1991_5874(void)

{
                    // WARNING: Bad instruction - Truncating control flow here
  halt_baddata();
}



byte __cdecl16near FUN_1991_587c(void)

{
  undefined2 unaff_DS;
  
  return *(byte *)0x1582 & 1;
}



// WARNING: Stack frame is not setup normally: Input value of stackpointer is not used

undefined2 __cdecl16near FUN_1991_5883(void)

{
  undefined4 in_EAX;
  ulong uVar1;
  uint uVar2;
  undefined4 in_ECX;
  undefined4 in_EDX;
  ulong uVar3;
  undefined4 in_EBX;
  long lVar4;
  int iVar5;
  undefined4 in_ESP;
  undefined4 in_EBP;
  undefined4 in_ESI;
  long lVar6;
  undefined4 in_EDI;
  ulong uVar7;
  undefined2 unaff_SS;
  undefined2 unaff_DS;
  
  iVar5 = (int)in_ESP;
  *(undefined4 *)(iVar5 + -4) = in_EAX;
  *(undefined4 *)(iVar5 + -8) = in_ECX;
  *(undefined4 *)(iVar5 + -0xc) = in_EDX;
  *(undefined4 *)(iVar5 + -0x10) = in_EBX;
  *(undefined4 *)(iVar5 + -0x14) = in_ESP;
  *(undefined4 *)(iVar5 + -0x18) = in_EBP;
  *(undefined4 *)(iVar5 + -0x1c) = in_ESI;
  *(undefined4 *)(iVar5 + -0x20) = in_EDI;
  *(undefined2 *)(iVar5 + -0x22) = 0x38;
  lVar4 = (ulong)*(uint *)0xaa * 0x10;
  lVar6 = 0x3ff000;
  if (*(char *)0xdff == '\0') {
    lVar6 = lVar4 + 0x1000;
  }
  uVar7 = *(long *)0xac + 1U >> 6;
  uVar2 = (int)(*(ulong *)(iVar5 + 6) >> 10) + (int)uVar7;
  uVar1 = *(long *)(iVar5 + 2) + 0xfffU & 0xfffff000 | 0xc07;
  while ((uint)uVar7 < uVar2) {
    uVar3 = uVar7 >> 0xc;
    if ((*(byte *)(lVar4 + uVar3 * 4) & 1) == 0) {
      uVar2 = uVar2 - 4;
      *(ulong *)(lVar4 + uVar3 * 4) = uVar1;
      if (*(char *)0xdff != '\0') {
        *(ulong *)(lVar6 + 0xffc + uVar3 * 4) = uVar1;
      }
    }
    else {
      *(ulong *)(lVar6 + uVar7) = uVar1;
      uVar7 = CONCAT22((int)(uVar7 >> 0x10),(uint)uVar7 + 4);
      *(long *)0xaa8 = *(long *)0xaa8 + 0x1000;
    }
    uVar1 = uVar1 + 0x1000;
  }
  LOCK();
  lVar4 = *(long *)0xac;
  *(long *)0xac = uVar7 << 6;
  UNLOCK();
  lVar4 = lVar4 << 4;
  *(undefined2 *)(iVar5 + -4) = (int)lVar4;
  *(undefined2 *)(iVar5 + -0xc) = (int)((ulong)lVar4 >> 0x10);
  return (int)*(undefined4 *)(iVar5 + -4);
}


