
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

void set_check(int what)

{
  byte bVar1;
  char cVar2;
  char *pcVar3;
  int iVar4;
  check_kind *pcVar5;
  char *pcVar6;
  byte *pbVar7;
  byte *pbVar8;
  undefined1 uVar9;
  bool bVar10;
  bool bVar11;
  undefined1 uVar12;
  bool bVar13;
  byte bVar14;
  undefined1 auStack_3c [12];
  check_kind *local_30;
  char *string;
  undefined4 uStack_14;
  
  bVar14 = 0;
  uStack_14 = 0x42089;
  if (what == 0) {
    local_30 = &sse_check;
    pcVar6 = "sse";
  }
  else {
    local_30 = &operand_check;
    pcVar6 = "operand";
  }
  bVar1 = *input_line_pointer;
  if (bVar1 == 0x20) {
    bVar1 = input_line_pointer[1];
    input_line_pointer = input_line_pointer + 1;
  }
  if (is_end_of_line[bVar1] != '\0') {
    pcVar3 = (char *)dcgettext(0,"missing argument for %s_check directive",5);
    as_bad(pcVar3,pcVar6);
    demand_empty_rest_of_line();
    return;
  }
  uVar9 = auStack_3c < (undefined1 *)0xc;
  uVar12 = &stack0x00000000 == (undefined1 *)0x48;
  cVar2 = get_symbol_name(&string);
  iVar4 = 5;
  pcVar5 = (check_kind *)(int)cVar2;
  pbVar7 = (byte *)string;
  pbVar8 = &DAT_0005b33b;
  do {
    if (iVar4 == 0) break;
    iVar4 = iVar4 + -1;
    uVar9 = *pbVar7 < *pbVar8;
    uVar12 = *pbVar7 == *pbVar8;
    pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;
    pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;
  } while ((bool)uVar12);
  bVar10 = false;
  bVar13 = (!(bool)uVar9 && !(bool)uVar12) == (bool)uVar9;
  if (bVar13) {
    *local_30 = check_none;
  }
  else {
    iVar4 = 8;
    pbVar7 = (byte *)string;
    pbVar8 = (byte *)0x5b406;
    do {
      if (iVar4 == 0) break;
      iVar4 = iVar4 + -1;
      bVar10 = *pbVar7 < *pbVar8;
      bVar13 = *pbVar7 == *pbVar8;
      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;
      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;
    } while (bVar13);
    bVar11 = false;
    bVar10 = (!bVar10 && !bVar13) == bVar10;
    if (bVar10) {
      *local_30 = check_warning;
    }
    else {
      iVar4 = 6;
      pbVar7 = (byte *)0x5b41b;
      do {
        if (iVar4 == 0) break;
        iVar4 = iVar4 + -1;
        bVar11 = (byte)*string < *pbVar7;
        bVar10 = *string == *pbVar7;
        string = (char *)((byte *)string + (uint)bVar14 * -2 + 1);
        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;
      } while (bVar10);
      if ((!bVar11 && !bVar10) == bVar11) {
        *local_30 = check_error;
      }
      else {
        local_30 = pcVar5;
        pcVar3 = (char *)dcgettext(0,"bad argument to %s_check directive.",5);
        as_bad(pcVar3,pcVar6);
        pcVar5 = local_30;
      }
    }
  }
  restore_line_pointer((char)pcVar5);
  demand_empty_rest_of_line();
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void FUN_00042080(int param_1)

{
  byte bVar1;
  char cVar2;
  undefined4 uVar3;
  int iVar4;
  undefined4 *puVar5;
  char *pcVar6;
  byte *pbVar7;
  byte *pbVar8;
  undefined1 uVar9;
  bool bVar10;
  bool bVar11;
  undefined1 uVar12;
  bool bVar13;
  byte bVar14;
  undefined1 auStack_3c [12];
  undefined4 *local_30;
  byte *local_20 [3];
  undefined4 uStack_14;
  
  bVar14 = 0;
  uStack_14 = 0x42089;
  if (param_1 == 0) {
    local_30 = &DAT_00088ed0;
    pcVar6 = "sse";
  }
  else {
    local_30 = &DAT_00080550;
    pcVar6 = "operand";
  }
  bVar1 = *DAT_00089978;
  if (bVar1 == 0x20) {
    bVar1 = DAT_00089978[1];
    DAT_00089978 = DAT_00089978 + 1;
  }
  if ((&DAT_000802c0)[bVar1] != '\0') {
    uVar3 = dcgettext(0,"missing argument for %s_check directive",5);
    FUN_0002bd60(uVar3,pcVar6);
    FUN_0002e4e0();
    return;
  }
  uVar9 = auStack_3c < (undefined1 *)0xc;
  uVar12 = &stack0x00000000 == (undefined1 *)0x48;
  cVar2 = FUN_000220a0(local_20);
  iVar4 = 5;
  puVar5 = (undefined4 *)(int)cVar2;
  pbVar7 = local_20[0];
  pbVar8 = &DAT_0005b33b;
  do {
    if (iVar4 == 0) break;
    iVar4 = iVar4 + -1;
    uVar9 = *pbVar7 < *pbVar8;
    uVar12 = *pbVar7 == *pbVar8;
    pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;
    pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;
  } while ((bool)uVar12);
  bVar10 = false;
  bVar13 = (!(bool)uVar9 && !(bool)uVar12) == (bool)uVar9;
  if (bVar13) {
    *local_30 = 0;
  }
  else {
    iVar4 = 8;
    pbVar7 = local_20[0];
    pbVar8 = (byte *)0x5b406;
    do {
      if (iVar4 == 0) break;
      iVar4 = iVar4 + -1;
      bVar10 = *pbVar7 < *pbVar8;
      bVar13 = *pbVar7 == *pbVar8;
      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;
      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;
    } while (bVar13);
    bVar11 = false;
    bVar10 = (!bVar10 && !bVar13) == bVar10;
    if (bVar10) {
      *local_30 = 1;
    }
    else {
      iVar4 = 6;
      pbVar7 = (byte *)0x5b41b;
      do {
        if (iVar4 == 0) break;
        iVar4 = iVar4 + -1;
        bVar11 = *local_20[0] < *pbVar7;
        bVar10 = *local_20[0] == *pbVar7;
        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;
        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;
      } while (bVar10);
      if ((!bVar11 && !bVar10) == bVar11) {
        *local_30 = 2;
      }
      else {
        local_30 = puVar5;
        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);
        FUN_0002bd60(uVar3,pcVar6);
        puVar5 = local_30;
      }
    }
  }
  FUN_000242c0(puVar5);
  FUN_0002e4e0();
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00016000
ADD EBX,0x3df77
SUB ESP,0x2c
MOV EBP,dword ptr [ESP + 0x40]
TEST EBP,EBP
JNZ 0x00042130
LEA EAX,[EBX + 0x8ed0]
LEA EBP,[EBX + 0xfffe471e]
MOV dword ptr [ESP + 0xc],EAX
LEA ESI,[EBX + 0x9978]
MOV ECX,dword ptr [ESI]
MOVZX EAX,byte ptr [ECX]
CMP AL,0x20
JNZ 0x000420c6
LEA EAX,[ECX + 0x1]
MOV dword ptr [ESI],EAX
MOVZX EAX,byte ptr [ECX + 0x1]
LEA ECX,[EBX + 0x2c0]
CMP byte ptr [ECX + EAX*0x1],0x0
JNZ 0x00042188
SUB ESP,0xc
LEA EDI,[EBX + 0xfffdb33b]
LEA EAX,[ESP + 0x28]
PUSH EAX
CALL 0x000220a0
MOV ECX,0x5
MOVSX EDX,AL
MOV EAX,dword ptr [ESP + 0x2c]
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
ADD ESP,0x10
TEST CL,CL
JNZ 0x00042148
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [EAX],0x0
SUB ESP,0xc
PUSH EDX
CALL 0x000242c0
ADD ESP,0x10
CALL 0x0002e4e0
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EAX,[EBX + 0x550]
LEA EBP,[EBX + 0xfffe3dd7]
MOV dword ptr [ESP + 0xc],EAX
JMP 0x000420ae
MOV ECX,0x8
LEA EDI,[EBX + 0xfffdb406]
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JZ 0x000421b8
MOV ESI,EAX
MOV ECX,0x6
LEA EDI,[EBX + 0xfffdb41b]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x000421d0
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [EAX],0x2
JMP 0x00042110
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe1fa0]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
POP EDX
POP ECX
PUSH EBP
PUSH EAX
CALL 0x0002bd60
ADD ESP,0x10
CALL 0x0002e4e0
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [EAX],0x1
JMP 0x00042110
MOV dword ptr [ESP + 0xc],EDX
LEA EAX,[EBX + 0xfffe1f7c]
SUB ESP,0x4
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
POP ESI
POP EDI
PUSH EBP
PUSH EAX
CALL 0x0002bd60
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
JMP 0x00042110
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_00042080(int param_1)\n\n{\n  byte bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  char *pcVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  undefined1 uVar9;\n  bool bVar10;\n  bool bVar11;\n  undefined1 uVar12;\n  bool bVar13;\n  byte bVar14;\n  undefined1 auStack_3c [12];\n  undefined4 *local_30;\n  byte *local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x42089;\n  if (param_1 == 0) {\n    local_30 = &DAT_00088ed0;\n    pcVar6 = "sse";\n  }\n  else {\n    local_30 = &DAT_00080550;\n    pcVar6 = "operand";\n  }\n  bVar1 = *DAT_00089978;\n  if (bVar1 == 0x20) {\n    bVar1 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if ((&DAT_000802c0)[bVar1] != '\0') {\n    uVar3 = dcgettext(0,"missing argument for %s_check directive",5);\n    FUN_0002bd60(uVar3,pcVar6);\n    FUN_0002e4e0();\n    return;\n  }\n  uVar9 = auStack_3c < (undefined1 *)0xc;\n  uVar12 = &stack0x00000000 == (undefined1 *)0x48;\n  cVar2 = FUN_000220a0(local_20);\n  iVar4 = 5;\n  puVar5 = (undefined4 *)(int)cVar2;\n  pbVar7 = local_20[0];\n  pbVar8 = &DAT_0005b33b;\n  do {\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar12 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n  } while ((bool)uVar12);\n  bVar10 = false;\n  bVar13 = (!(bool)uVar9 && !(bool)uVar12) == (bool)uVar9;\n  if (bVar13) {\n    *local_30 = 0;\n  }\n  else {\n    iVar4 = 8;\n    pbVar7 = local_20[0];\n    pbVar8 = (byte *)0x5b406;\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar13) == bVar10;\n    if (bVar10) {\n      *local_30 = 1;\n    }\n    else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }\n    }\n  }\n  FUN_000242c0(puVar5);\n  FUN_0002e4e0();\n  return;\n}\n\n" comment (function_definition "void FUN_00042080(int param_1)\n\n{\n  byte bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  char *pcVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  undefined1 uVar9;\n  bool bVar10;\n  bool bVar11;\n  undefined1 uVar12;\n  bool bVar13;\n  byte bVar14;\n  undefined1 auStack_3c [12];\n  undefined4 *local_30;\n  byte *local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x42089;\n  if (param_1 == 0) {\n    local_30 = &DAT_00088ed0;\n    pcVar6 = "sse";\n  }\n  else {\n    local_30 = &DAT_00080550;\n    pcVar6 = "operand";\n  }\n  bVar1 = *DAT_00089978;\n  if (bVar1 == 0x20) {\n    bVar1 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if ((&DAT_000802c0)[bVar1] != '\0') {\n    uVar3 = dcgettext(0,"missing argument for %s_check directive",5);\n    FUN_0002bd60(uVar3,pcVar6);\n    FUN_0002e4e0();\n    return;\n  }\n  uVar9 = auStack_3c < (undefined1 *)0xc;\n  uVar12 = &stack0x00000000 == (undefined1 *)0x48;\n  cVar2 = FUN_000220a0(local_20);\n  iVar4 = 5;\n  puVar5 = (undefined4 *)(int)cVar2;\n  pbVar7 = local_20[0];\n  pbVar8 = &DAT_0005b33b;\n  do {\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar12 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n  } while ((bool)uVar12);\n  bVar10 = false;\n  bVar13 = (!(bool)uVar9 && !(bool)uVar12) == (bool)uVar9;\n  if (bVar13) {\n    *local_30 = 0;\n  }\n  else {\n    iVar4 = 8;\n    pbVar7 = local_20[0];\n    pbVar8 = (byte *)0x5b406;\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar13) == bVar10;\n    if (bVar10) {\n      *local_30 = 1;\n    }\n    else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }\n    }\n  }\n  FUN_000242c0(puVar5);\n  FUN_0002e4e0();\n  return;\n}" primitive_type (function_declarator "FUN_00042080(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  char *pcVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  undefined1 uVar9;\n  bool bVar10;\n  bool bVar11;\n  undefined1 uVar12;\n  bool bVar13;\n  byte bVar14;\n  undefined1 auStack_3c [12];\n  undefined4 *local_30;\n  byte *local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x42089;\n  if (param_1 == 0) {\n    local_30 = &DAT_00088ed0;\n    pcVar6 = "sse";\n  }\n  else {\n    local_30 = &DAT_00080550;\n    pcVar6 = "operand";\n  }\n  bVar1 = *DAT_00089978;\n  if (bVar1 == 0x20) {\n    bVar1 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if ((&DAT_000802c0)[bVar1] != '\0') {\n    uVar3 = dcgettext(0,"missing argument for %s_check directive",5);\n    FUN_0002bd60(uVar3,pcVar6);\n    FUN_0002e4e0();\n    return;\n  }\n  uVar9 = auStack_3c < (undefined1 *)0xc;\n  uVar12 = &stack0x00000000 == (undefined1 *)0x48;\n  cVar2 = FUN_000220a0(local_20);\n  iVar4 = 5;\n  puVar5 = (undefined4 *)(int)cVar2;\n  pbVar7 = local_20[0];\n  pbVar8 = &DAT_0005b33b;\n  do {\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar12 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n  } while ((bool)uVar12);\n  bVar10 = false;\n  bVar13 = (!(bool)uVar9 && !(bool)uVar12) == (bool)uVar9;\n  if (bVar13) {\n    *local_30 = 0;\n  }\n  else {\n    iVar4 = 8;\n    pbVar7 = local_20[0];\n    pbVar8 = (byte *)0x5b406;\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar13) == bVar10;\n    if (bVar10) {\n      *local_30 = 1;\n    }\n    else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }\n    }\n  }\n  FUN_000242c0(puVar5);\n  FUN_0002e4e0();\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "undefined1 uVar9;" type_identifier identifier ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "undefined1 uVar12;" type_identifier identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "undefined1 auStack_3c [12];" type_identifier (array_declarator "auStack_3c [12]" identifier [ number_literal ]) ;) (declaration "undefined4 *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "byte *local_20 [3];" type_identifier (pointer_declarator "*local_20 [3]" * (array_declarator "local_20 [3]" identifier [ number_literal ])) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x42089;" (assignment_expression "uStack_14 = 0x42089" identifier = number_literal) ;) (if_statement "if (param_1 == 0) {\n    local_30 = &DAT_00088ed0;\n    pcVar6 = "sse";\n  }\n  else {\n    local_30 = &DAT_00080550;\n    pcVar6 = "operand";\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n    local_30 = &DAT_00088ed0;\n    pcVar6 = "sse";\n  }" { (expression_statement "local_30 = &DAT_00088ed0;" (assignment_expression "local_30 = &DAT_00088ed0" identifier = (pointer_expression "&DAT_00088ed0" & identifier)) ;) (expression_statement "pcVar6 = "sse";" (assignment_expression "pcVar6 = "sse"" identifier = (string_literal ""sse"" " string_content ")) ;) }) (else_clause "else {\n    local_30 = &DAT_00080550;\n    pcVar6 = "operand";\n  }" else (compound_statement "{\n    local_30 = &DAT_00080550;\n    pcVar6 = "operand";\n  }" { (expression_statement "local_30 = &DAT_00080550;" (assignment_expression "local_30 = &DAT_00080550" identifier = (pointer_expression "&DAT_00080550" & identifier)) ;) (expression_statement "pcVar6 = "operand";" (assignment_expression "pcVar6 = "operand"" identifier = (string_literal ""operand"" " string_content ")) ;) }))) (expression_statement "bVar1 = *DAT_00089978;" (assignment_expression "bVar1 = *DAT_00089978" identifier = (pointer_expression "*DAT_00089978" * identifier)) ;) (if_statement "if (bVar1 == 0x20) {\n    bVar1 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" if (parenthesized_expression "(bVar1 == 0x20)" ( (binary_expression "bVar1 == 0x20" identifier == number_literal) )) (compound_statement "{\n    bVar1 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" { (expression_statement "bVar1 = DAT_00089978[1];" (assignment_expression "bVar1 = DAT_00089978[1]" identifier = (subscript_expression "DAT_00089978[1]" identifier [ number_literal ])) ;) (expression_statement "DAT_00089978 = DAT_00089978 + 1;" (assignment_expression "DAT_00089978 = DAT_00089978 + 1" identifier = (binary_expression "DAT_00089978 + 1" identifier + number_literal)) ;) })) (if_statement "if ((&DAT_000802c0)[bVar1] != '\0') {\n    uVar3 = dcgettext(0,"missing argument for %s_check directive",5);\n    FUN_0002bd60(uVar3,pcVar6);\n    FUN_0002e4e0();\n    return;\n  }" if (parenthesized_expression "((&DAT_000802c0)[bVar1] != '\0')" ( (binary_expression "(&DAT_000802c0)[bVar1] != '\0'" (subscript_expression "(&DAT_000802c0)[bVar1]" (parenthesized_expression "(&DAT_000802c0)" ( (pointer_expression "&DAT_000802c0" & identifier) )) [ identifier ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uVar3 = dcgettext(0,"missing argument for %s_check directive",5);\n    FUN_0002bd60(uVar3,pcVar6);\n    FUN_0002e4e0();\n    return;\n  }" { (expression_statement "uVar3 = dcgettext(0,"missing argument for %s_check directive",5);" (assignment_expression "uVar3 = dcgettext(0,"missing argument for %s_check directive",5)" identifier = (call_expression "dcgettext(0,"missing argument for %s_check directive",5)" identifier (argument_list "(0,"missing argument for %s_check directive",5)" ( number_literal , (string_literal ""missing argument for %s_check directive"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar3,pcVar6);" (call_expression "FUN_0002bd60(uVar3,pcVar6)" identifier (argument_list "(uVar3,pcVar6)" ( identifier , identifier ))) ;) (expression_statement "FUN_0002e4e0();" (call_expression "FUN_0002e4e0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar9 = auStack_3c < (undefined1 *)0xc;" (assignment_expression "uVar9 = auStack_3c < (undefined1 *)0xc" identifier = (binary_expression "auStack_3c < (undefined1 *)0xc" identifier < (cast_expression "(undefined1 *)0xc" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar12 = &stack0x00000000 == (undefined1 *)0x48;" (assignment_expression "uVar12 = &stack0x00000000 == (undefined1 *)0x48" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x48" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x48" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "cVar2 = FUN_000220a0(local_20);" (assignment_expression "cVar2 = FUN_000220a0(local_20)" identifier = (call_expression "FUN_000220a0(local_20)" identifier (argument_list "(local_20)" ( identifier )))) ;) (expression_statement "iVar4 = 5;" (assignment_expression "iVar4 = 5" identifier = number_literal) ;) (expression_statement "puVar5 = (undefined4 *)(int)cVar2;" (assignment_expression "puVar5 = (undefined4 *)(int)cVar2" identifier = (cast_expression "(undefined4 *)(int)cVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)cVar2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar7 = local_20[0];" (assignment_expression "pbVar7 = local_20[0]" identifier = (subscript_expression "local_20[0]" identifier [ number_literal ])) ;) (expression_statement "pbVar8 = &DAT_0005b33b;" (assignment_expression "pbVar8 = &DAT_0005b33b" identifier = (pointer_expression "&DAT_0005b33b" & identifier)) ;) (do_statement "do {\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar12 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n  } while ((bool)uVar12);" do (compound_statement "{\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar12 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n  }" { (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (expression_statement "uVar9 = *pbVar7 < *pbVar8;" (assignment_expression "uVar9 = *pbVar7 < *pbVar8" identifier = (binary_expression "*pbVar7 < *pbVar8" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "uVar12 = *pbVar7 == *pbVar8;" (assignment_expression "uVar12 = *pbVar7 == *pbVar8" identifier = (binary_expression "*pbVar7 == *pbVar8" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar7 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar8 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar12)" ( (cast_expression "(bool)uVar12" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) (expression_statement "bVar13 = (!(bool)uVar9 && !(bool)uVar12) == (bool)uVar9;" (assignment_expression "bVar13 = (!(bool)uVar9 && !(bool)uVar12) == (bool)uVar9" identifier = (binary_expression "(!(bool)uVar9 && !(bool)uVar12) == (bool)uVar9" (parenthesized_expression "(!(bool)uVar9 && !(bool)uVar12)" ( (binary_expression "!(bool)uVar9 && !(bool)uVar12" (unary_expression "!(bool)uVar9" ! (cast_expression "(bool)uVar9" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar12" ! (cast_expression "(bool)uVar12" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar9" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar13) {\n    *local_30 = 0;\n  }\n  else {\n    iVar4 = 8;\n    pbVar7 = local_20[0];\n    pbVar8 = (byte *)0x5b406;\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar13) == bVar10;\n    if (bVar10) {\n      *local_30 = 1;\n    }\n    else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }\n    }\n  }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n    *local_30 = 0;\n  }" { (expression_statement "*local_30 = 0;" (assignment_expression "*local_30 = 0" (pointer_expression "*local_30" * identifier) = number_literal) ;) }) (else_clause "else {\n    iVar4 = 8;\n    pbVar7 = local_20[0];\n    pbVar8 = (byte *)0x5b406;\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar13) == bVar10;\n    if (bVar10) {\n      *local_30 = 1;\n    }\n    else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }\n    }\n  }" else (compound_statement "{\n    iVar4 = 8;\n    pbVar7 = local_20[0];\n    pbVar8 = (byte *)0x5b406;\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar13) == bVar10;\n    if (bVar10) {\n      *local_30 = 1;\n    }\n    else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }\n    }\n  }" { (expression_statement "iVar4 = 8;" (assignment_expression "iVar4 = 8" identifier = number_literal) ;) (expression_statement "pbVar7 = local_20[0];" (assignment_expression "pbVar7 = local_20[0]" identifier = (subscript_expression "local_20[0]" identifier [ number_literal ])) ;) (expression_statement "pbVar8 = (byte *)0x5b406;" (assignment_expression "pbVar8 = (byte *)0x5b406" identifier = (cast_expression "(byte *)0x5b406" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);" do (compound_statement "{\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    }" { (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (expression_statement "bVar10 = *pbVar7 < *pbVar8;" (assignment_expression "bVar10 = *pbVar7 < *pbVar8" identifier = (binary_expression "*pbVar7 < *pbVar8" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "bVar13 = *pbVar7 == *pbVar8;" (assignment_expression "bVar13 = *pbVar7 == *pbVar8" identifier = (binary_expression "*pbVar7 == *pbVar8" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar7 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar8 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" identifier = false) ;) (expression_statement "bVar10 = (!bVar10 && !bVar13) == bVar10;" (assignment_expression "bVar10 = (!bVar10 && !bVar13) == bVar10" identifier = (binary_expression "(!bVar10 && !bVar13) == bVar10" (parenthesized_expression "(!bVar10 && !bVar13)" ( (binary_expression "!bVar10 && !bVar13" (unary_expression "!bVar10" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar10) {\n      *local_30 = 1;\n    }\n    else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }\n    }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n      *local_30 = 1;\n    }" { (expression_statement "*local_30 = 1;" (assignment_expression "*local_30 = 1" (pointer_expression "*local_30" * identifier) = number_literal) ;) }) (else_clause "else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }\n    }" else (compound_statement "{\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }\n    }" { (expression_statement "iVar4 = 6;" (assignment_expression "iVar4 = 6" identifier = number_literal) ;) (expression_statement "pbVar7 = (byte *)0x5b41b;" (assignment_expression "pbVar7 = (byte *)0x5b41b" identifier = (cast_expression "(byte *)0x5b41b" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);" do (compound_statement "{\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      }" { (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (expression_statement "bVar11 = *local_20[0] < *pbVar7;" (assignment_expression "bVar11 = *local_20[0] < *pbVar7" identifier = (binary_expression "*local_20[0] < *pbVar7" (pointer_expression "*local_20[0]" * (subscript_expression "local_20[0]" identifier [ number_literal ])) < (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "bVar10 = *local_20[0] == *pbVar7;" (assignment_expression "bVar10 = *local_20[0] == *pbVar7" identifier = (binary_expression "*local_20[0] == *pbVar7" (pointer_expression "*local_20[0]" * (subscript_expression "local_20[0]" identifier [ number_literal ])) == (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;" (assignment_expression "local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1" (subscript_expression "local_20[0]" identifier [ number_literal ]) = (binary_expression "local_20[0] + (uint)bVar14 * -2 + 1" (binary_expression "local_20[0] + (uint)bVar14 * -2" (subscript_expression "local_20[0]" identifier [ number_literal ]) + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar7 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (if_statement "if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }" if (parenthesized_expression "((!bVar11 && !bVar10) == bVar11)" ( (binary_expression "(!bVar11 && !bVar10) == bVar11" (parenthesized_expression "(!bVar11 && !bVar10)" ( (binary_expression "!bVar11 && !bVar10" (unary_expression "!bVar11" ! identifier) && (unary_expression "!bVar10" ! identifier)) )) == identifier) )) (compound_statement "{\n        *local_30 = 2;\n      }" { (expression_statement "*local_30 = 2;" (assignment_expression "*local_30 = 2" (pointer_expression "*local_30" * identifier) = number_literal) ;) }) (else_clause "else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }" else (compound_statement "{\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }" { (expression_statement "local_30 = puVar5;" (assignment_expression "local_30 = puVar5" identifier = identifier) ;) (expression_statement "uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);" (assignment_expression "uVar3 = dcgettext(0,"bad argument to %s_check directive.",5)" identifier = (call_expression "dcgettext(0,"bad argument to %s_check directive.",5)" identifier (argument_list "(0,"bad argument to %s_check directive.",5)" ( number_literal , (string_literal ""bad argument to %s_check directive."" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar3,pcVar6);" (call_expression "FUN_0002bd60(uVar3,pcVar6)" identifier (argument_list "(uVar3,pcVar6)" ( identifier , identifier ))) ;) (expression_statement "puVar5 = local_30;" (assignment_expression "puVar5 = local_30" identifier = identifier) ;) }))) }))) }))) (expression_statement "FUN_000242c0(puVar5);" (call_expression "FUN_000242c0(puVar5)" identifier (argument_list "(puVar5)" ( identifier ))) ;) (expression_statement "FUN_0002e4e0();" (call_expression "FUN_0002e4e0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nvoid set_check(int what)\n\n{\n  byte bVar1;\n  char cVar2;\n  char *pcVar3;\n  int iVar4;\n  check_kind *pcVar5;\n  char *pcVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  undefined1 uVar9;\n  bool bVar10;\n  bool bVar11;\n  undefined1 uVar12;\n  bool bVar13;\n  byte bVar14;\n  undefined1 auStack_3c [12];\n  check_kind *local_30;\n  char *string;\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x42089;\n  if (what == 0) {\n    local_30 = &sse_check;\n    pcVar6 = "sse";\n  }\n  else {\n    local_30 = &operand_check;\n    pcVar6 = "operand";\n  }\n  bVar1 = *input_line_pointer;\n  if (bVar1 == 0x20) {\n    bVar1 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }\n  if (is_end_of_line[bVar1] != '\0') {\n    pcVar3 = (char *)dcgettext(0,"missing argument for %s_check directive",5);\n    as_bad(pcVar3,pcVar6);\n    demand_empty_rest_of_line();\n    return;\n  }\n  uVar9 = auStack_3c < (undefined1 *)0xc;\n  uVar12 = &stack0x00000000 == (undefined1 *)0x48;\n  cVar2 = get_symbol_name(&string);\n  iVar4 = 5;\n  pcVar5 = (check_kind *)(int)cVar2;\n  pbVar7 = (byte *)string;\n  pbVar8 = &DAT_0005b33b;\n  do {\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar12 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n  } while ((bool)uVar12);\n  bVar10 = false;\n  bVar13 = (!(bool)uVar9 && !(bool)uVar12) == (bool)uVar9;\n  if (bVar13) {\n    *local_30 = check_none;\n  }\n  else {\n    iVar4 = 8;\n    pbVar7 = (byte *)string;\n    pbVar8 = (byte *)0x5b406;\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar13) == bVar10;\n    if (bVar10) {\n      *local_30 = check_warning;\n    }\n    else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = (byte)*string < *pbVar7;\n        bVar10 = *string == *pbVar7;\n        string = (char *)((byte *)string + (uint)bVar14 * -2 + 1);\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = check_error;\n      }\n      else {\n        local_30 = pcVar5;\n        pcVar3 = (char *)dcgettext(0,"bad argument to %s_check directive.",5);\n        as_bad(pcVar3,pcVar6);\n        pcVar5 = local_30;\n      }\n    }\n  }\n  restore_line_pointer((char)pcVar5);\n  demand_empty_rest_of_line();\n  return;\n}\n\n" comment comment (function_definition "void set_check(int what)\n\n{\n  byte bVar1;\n  char cVar2;\n  char *pcVar3;\n  int iVar4;\n  check_kind *pcVar5;\n  char *pcVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  undefined1 uVar9;\n  bool bVar10;\n  bool bVar11;\n  undefined1 uVar12;\n  bool bVar13;\n  byte bVar14;\n  undefined1 auStack_3c [12];\n  check_kind *local_30;\n  char *string;\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x42089;\n  if (what == 0) {\n    local_30 = &sse_check;\n    pcVar6 = "sse";\n  }\n  else {\n    local_30 = &operand_check;\n    pcVar6 = "operand";\n  }\n  bVar1 = *input_line_pointer;\n  if (bVar1 == 0x20) {\n    bVar1 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }\n  if (is_end_of_line[bVar1] != '\0') {\n    pcVar3 = (char *)dcgettext(0,"missing argument for %s_check directive",5);\n    as_bad(pcVar3,pcVar6);\n    demand_empty_rest_of_line();\n    return;\n  }\n  uVar9 = auStack_3c < (undefined1 *)0xc;\n  uVar12 = &stack0x00000000 == (undefined1 *)0x48;\n  cVar2 = get_symbol_name(&string);\n  iVar4 = 5;\n  pcVar5 = (check_kind *)(int)cVar2;\n  pbVar7 = (byte *)string;\n  pbVar8 = &DAT_0005b33b;\n  do {\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar12 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n  } while ((bool)uVar12);\n  bVar10 = false;\n  bVar13 = (!(bool)uVar9 && !(bool)uVar12) == (bool)uVar9;\n  if (bVar13) {\n    *local_30 = check_none;\n  }\n  else {\n    iVar4 = 8;\n    pbVar7 = (byte *)string;\n    pbVar8 = (byte *)0x5b406;\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar13) == bVar10;\n    if (bVar10) {\n      *local_30 = check_warning;\n    }\n    else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = (byte)*string < *pbVar7;\n        bVar10 = *string == *pbVar7;\n        string = (char *)((byte *)string + (uint)bVar14 * -2 + 1);\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = check_error;\n      }\n      else {\n        local_30 = pcVar5;\n        pcVar3 = (char *)dcgettext(0,"bad argument to %s_check directive.",5);\n        as_bad(pcVar3,pcVar6);\n        pcVar5 = local_30;\n      }\n    }\n  }\n  restore_line_pointer((char)pcVar5);\n  demand_empty_rest_of_line();\n  return;\n}" primitive_type (function_declarator "set_check(int what)" identifier (parameter_list "(int what)" ( (parameter_declaration "int what" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  char *pcVar3;\n  int iVar4;\n  check_kind *pcVar5;\n  char *pcVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  undefined1 uVar9;\n  bool bVar10;\n  bool bVar11;\n  undefined1 uVar12;\n  bool bVar13;\n  byte bVar14;\n  undefined1 auStack_3c [12];\n  check_kind *local_30;\n  char *string;\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x42089;\n  if (what == 0) {\n    local_30 = &sse_check;\n    pcVar6 = "sse";\n  }\n  else {\n    local_30 = &operand_check;\n    pcVar6 = "operand";\n  }\n  bVar1 = *input_line_pointer;\n  if (bVar1 == 0x20) {\n    bVar1 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }\n  if (is_end_of_line[bVar1] != '\0') {\n    pcVar3 = (char *)dcgettext(0,"missing argument for %s_check directive",5);\n    as_bad(pcVar3,pcVar6);\n    demand_empty_rest_of_line();\n    return;\n  }\n  uVar9 = auStack_3c < (undefined1 *)0xc;\n  uVar12 = &stack0x00000000 == (undefined1 *)0x48;\n  cVar2 = get_symbol_name(&string);\n  iVar4 = 5;\n  pcVar5 = (check_kind *)(int)cVar2;\n  pbVar7 = (byte *)string;\n  pbVar8 = &DAT_0005b33b;\n  do {\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar12 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n  } while ((bool)uVar12);\n  bVar10 = false;\n  bVar13 = (!(bool)uVar9 && !(bool)uVar12) == (bool)uVar9;\n  if (bVar13) {\n    *local_30 = check_none;\n  }\n  else {\n    iVar4 = 8;\n    pbVar7 = (byte *)string;\n    pbVar8 = (byte *)0x5b406;\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar13) == bVar10;\n    if (bVar10) {\n      *local_30 = check_warning;\n    }\n    else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = (byte)*string < *pbVar7;\n        bVar10 = *string == *pbVar7;\n        string = (char *)((byte *)string + (uint)bVar14 * -2 + 1);\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = check_error;\n      }\n      else {\n        local_30 = pcVar5;\n        pcVar3 = (char *)dcgettext(0,"bad argument to %s_check directive.",5);\n        as_bad(pcVar3,pcVar6);\n        pcVar5 = local_30;\n      }\n    }\n  }\n  restore_line_pointer((char)pcVar5);\n  demand_empty_rest_of_line();\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "check_kind *pcVar5;" type_identifier (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "undefined1 uVar9;" type_identifier identifier ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "undefined1 uVar12;" type_identifier identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "undefined1 auStack_3c [12];" type_identifier (array_declarator "auStack_3c [12]" identifier [ number_literal ]) ;) (declaration "check_kind *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "char *string;" primitive_type (pointer_declarator "*string" * identifier) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x42089;" (assignment_expression "uStack_14 = 0x42089" identifier = number_literal) ;) (if_statement "if (what == 0) {\n    local_30 = &sse_check;\n    pcVar6 = "sse";\n  }\n  else {\n    local_30 = &operand_check;\n    pcVar6 = "operand";\n  }" if (parenthesized_expression "(what == 0)" ( (binary_expression "what == 0" identifier == number_literal) )) (compound_statement "{\n    local_30 = &sse_check;\n    pcVar6 = "sse";\n  }" { (expression_statement "local_30 = &sse_check;" (assignment_expression "local_30 = &sse_check" identifier = (pointer_expression "&sse_check" & identifier)) ;) (expression_statement "pcVar6 = "sse";" (assignment_expression "pcVar6 = "sse"" identifier = (string_literal ""sse"" " string_content ")) ;) }) (else_clause "else {\n    local_30 = &operand_check;\n    pcVar6 = "operand";\n  }" else (compound_statement "{\n    local_30 = &operand_check;\n    pcVar6 = "operand";\n  }" { (expression_statement "local_30 = &operand_check;" (assignment_expression "local_30 = &operand_check" identifier = (pointer_expression "&operand_check" & identifier)) ;) (expression_statement "pcVar6 = "operand";" (assignment_expression "pcVar6 = "operand"" identifier = (string_literal ""operand"" " string_content ")) ;) }))) (expression_statement "bVar1 = *input_line_pointer;" (assignment_expression "bVar1 = *input_line_pointer" identifier = (pointer_expression "*input_line_pointer" * identifier)) ;) (if_statement "if (bVar1 == 0x20) {\n    bVar1 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }" if (parenthesized_expression "(bVar1 == 0x20)" ( (binary_expression "bVar1 == 0x20" identifier == number_literal) )) (compound_statement "{\n    bVar1 = input_line_pointer[1];\n    input_line_pointer = input_line_pointer + 1;\n  }" { (expression_statement "bVar1 = input_line_pointer[1];" (assignment_expression "bVar1 = input_line_pointer[1]" identifier = (subscript_expression "input_line_pointer[1]" identifier [ number_literal ])) ;) (expression_statement "input_line_pointer = input_line_pointer + 1;" (assignment_expression "input_line_pointer = input_line_pointer + 1" identifier = (binary_expression "input_line_pointer + 1" identifier + number_literal)) ;) })) (if_statement "if (is_end_of_line[bVar1] != '\0') {\n    pcVar3 = (char *)dcgettext(0,"missing argument for %s_check directive",5);\n    as_bad(pcVar3,pcVar6);\n    demand_empty_rest_of_line();\n    return;\n  }" if (parenthesized_expression "(is_end_of_line[bVar1] != '\0')" ( (binary_expression "is_end_of_line[bVar1] != '\0'" (subscript_expression "is_end_of_line[bVar1]" identifier [ identifier ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pcVar3 = (char *)dcgettext(0,"missing argument for %s_check directive",5);\n    as_bad(pcVar3,pcVar6);\n    demand_empty_rest_of_line();\n    return;\n  }" { (expression_statement "pcVar3 = (char *)dcgettext(0,"missing argument for %s_check directive",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"missing argument for %s_check directive",5)" identifier = (cast_expression "(char *)dcgettext(0,"missing argument for %s_check directive",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"missing argument for %s_check directive",5)" identifier (argument_list "(0,"missing argument for %s_check directive",5)" ( number_literal , (string_literal ""missing argument for %s_check directive"" " string_content ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar3,pcVar6);" (call_expression "as_bad(pcVar3,pcVar6)" identifier (argument_list "(pcVar3,pcVar6)" ( identifier , identifier ))) ;) (expression_statement "demand_empty_rest_of_line();" (call_expression "demand_empty_rest_of_line()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar9 = auStack_3c < (undefined1 *)0xc;" (assignment_expression "uVar9 = auStack_3c < (undefined1 *)0xc" identifier = (binary_expression "auStack_3c < (undefined1 *)0xc" identifier < (cast_expression "(undefined1 *)0xc" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar12 = &stack0x00000000 == (undefined1 *)0x48;" (assignment_expression "uVar12 = &stack0x00000000 == (undefined1 *)0x48" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x48" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x48" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "cVar2 = get_symbol_name(&string);" (assignment_expression "cVar2 = get_symbol_name(&string)" identifier = (call_expression "get_symbol_name(&string)" identifier (argument_list "(&string)" ( (pointer_expression "&string" & identifier) )))) ;) (expression_statement "iVar4 = 5;" (assignment_expression "iVar4 = 5" identifier = number_literal) ;) (expression_statement "pcVar5 = (check_kind *)(int)cVar2;" (assignment_expression "pcVar5 = (check_kind *)(int)cVar2" identifier = (cast_expression "(check_kind *)(int)cVar2" ( (type_descriptor "check_kind *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)cVar2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar7 = (byte *)string;" (assignment_expression "pbVar7 = (byte *)string" identifier = (cast_expression "(byte *)string" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar8 = &DAT_0005b33b;" (assignment_expression "pbVar8 = &DAT_0005b33b" identifier = (pointer_expression "&DAT_0005b33b" & identifier)) ;) (do_statement "do {\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar12 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n  } while ((bool)uVar12);" do (compound_statement "{\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar12 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n  }" { (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (expression_statement "uVar9 = *pbVar7 < *pbVar8;" (assignment_expression "uVar9 = *pbVar7 < *pbVar8" identifier = (binary_expression "*pbVar7 < *pbVar8" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "uVar12 = *pbVar7 == *pbVar8;" (assignment_expression "uVar12 = *pbVar7 == *pbVar8" identifier = (binary_expression "*pbVar7 == *pbVar8" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar7 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar8 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar12)" ( (cast_expression "(bool)uVar12" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) (expression_statement "bVar13 = (!(bool)uVar9 && !(bool)uVar12) == (bool)uVar9;" (assignment_expression "bVar13 = (!(bool)uVar9 && !(bool)uVar12) == (bool)uVar9" identifier = (binary_expression "(!(bool)uVar9 && !(bool)uVar12) == (bool)uVar9" (parenthesized_expression "(!(bool)uVar9 && !(bool)uVar12)" ( (binary_expression "!(bool)uVar9 && !(bool)uVar12" (unary_expression "!(bool)uVar9" ! (cast_expression "(bool)uVar9" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar12" ! (cast_expression "(bool)uVar12" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar9" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar13) {\n    *local_30 = check_none;\n  }\n  else {\n    iVar4 = 8;\n    pbVar7 = (byte *)string;\n    pbVar8 = (byte *)0x5b406;\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar13) == bVar10;\n    if (bVar10) {\n      *local_30 = check_warning;\n    }\n    else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = (byte)*string < *pbVar7;\n        bVar10 = *string == *pbVar7;\n        string = (char *)((byte *)string + (uint)bVar14 * -2 + 1);\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = check_error;\n      }\n      else {\n        local_30 = pcVar5;\n        pcVar3 = (char *)dcgettext(0,"bad argument to %s_check directive.",5);\n        as_bad(pcVar3,pcVar6);\n        pcVar5 = local_30;\n      }\n    }\n  }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n    *local_30 = check_none;\n  }" { (expression_statement "*local_30 = check_none;" (assignment_expression "*local_30 = check_none" (pointer_expression "*local_30" * identifier) = identifier) ;) }) (else_clause "else {\n    iVar4 = 8;\n    pbVar7 = (byte *)string;\n    pbVar8 = (byte *)0x5b406;\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar13) == bVar10;\n    if (bVar10) {\n      *local_30 = check_warning;\n    }\n    else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = (byte)*string < *pbVar7;\n        bVar10 = *string == *pbVar7;\n        string = (char *)((byte *)string + (uint)bVar14 * -2 + 1);\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = check_error;\n      }\n      else {\n        local_30 = pcVar5;\n        pcVar3 = (char *)dcgettext(0,"bad argument to %s_check directive.",5);\n        as_bad(pcVar3,pcVar6);\n        pcVar5 = local_30;\n      }\n    }\n  }" else (compound_statement "{\n    iVar4 = 8;\n    pbVar7 = (byte *)string;\n    pbVar8 = (byte *)0x5b406;\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar13) == bVar10;\n    if (bVar10) {\n      *local_30 = check_warning;\n    }\n    else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = (byte)*string < *pbVar7;\n        bVar10 = *string == *pbVar7;\n        string = (char *)((byte *)string + (uint)bVar14 * -2 + 1);\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = check_error;\n      }\n      else {\n        local_30 = pcVar5;\n        pcVar3 = (char *)dcgettext(0,"bad argument to %s_check directive.",5);\n        as_bad(pcVar3,pcVar6);\n        pcVar5 = local_30;\n      }\n    }\n  }" { (expression_statement "iVar4 = 8;" (assignment_expression "iVar4 = 8" identifier = number_literal) ;) (expression_statement "pbVar7 = (byte *)string;" (assignment_expression "pbVar7 = (byte *)string" identifier = (cast_expression "(byte *)string" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar8 = (byte *)0x5b406;" (assignment_expression "pbVar8 = (byte *)0x5b406" identifier = (cast_expression "(byte *)0x5b406" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);" do (compound_statement "{\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    }" { (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (expression_statement "bVar10 = *pbVar7 < *pbVar8;" (assignment_expression "bVar10 = *pbVar7 < *pbVar8" identifier = (binary_expression "*pbVar7 < *pbVar8" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "bVar13 = *pbVar7 == *pbVar8;" (assignment_expression "bVar13 = *pbVar7 == *pbVar8" identifier = (binary_expression "*pbVar7 == *pbVar8" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar7 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar8 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" identifier = false) ;) (expression_statement "bVar10 = (!bVar10 && !bVar13) == bVar10;" (assignment_expression "bVar10 = (!bVar10 && !bVar13) == bVar10" identifier = (binary_expression "(!bVar10 && !bVar13) == bVar10" (parenthesized_expression "(!bVar10 && !bVar13)" ( (binary_expression "!bVar10 && !bVar13" (unary_expression "!bVar10" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar10) {\n      *local_30 = check_warning;\n    }\n    else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = (byte)*string < *pbVar7;\n        bVar10 = *string == *pbVar7;\n        string = (char *)((byte *)string + (uint)bVar14 * -2 + 1);\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = check_error;\n      }\n      else {\n        local_30 = pcVar5;\n        pcVar3 = (char *)dcgettext(0,"bad argument to %s_check directive.",5);\n        as_bad(pcVar3,pcVar6);\n        pcVar5 = local_30;\n      }\n    }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n      *local_30 = check_warning;\n    }" { (expression_statement "*local_30 = check_warning;" (assignment_expression "*local_30 = check_warning" (pointer_expression "*local_30" * identifier) = identifier) ;) }) (else_clause "else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = (byte)*string < *pbVar7;\n        bVar10 = *string == *pbVar7;\n        string = (char *)((byte *)string + (uint)bVar14 * -2 + 1);\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = check_error;\n      }\n      else {\n        local_30 = pcVar5;\n        pcVar3 = (char *)dcgettext(0,"bad argument to %s_check directive.",5);\n        as_bad(pcVar3,pcVar6);\n        pcVar5 = local_30;\n      }\n    }" else (compound_statement "{\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = (byte)*string < *pbVar7;\n        bVar10 = *string == *pbVar7;\n        string = (char *)((byte *)string + (uint)bVar14 * -2 + 1);\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = check_error;\n      }\n      else {\n        local_30 = pcVar5;\n        pcVar3 = (char *)dcgettext(0,"bad argument to %s_check directive.",5);\n        as_bad(pcVar3,pcVar6);\n        pcVar5 = local_30;\n      }\n    }" { (expression_statement "iVar4 = 6;" (assignment_expression "iVar4 = 6" identifier = number_literal) ;) (expression_statement "pbVar7 = (byte *)0x5b41b;" (assignment_expression "pbVar7 = (byte *)0x5b41b" identifier = (cast_expression "(byte *)0x5b41b" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = (byte)*string < *pbVar7;\n        bVar10 = *string == *pbVar7;\n        string = (char *)((byte *)string + (uint)bVar14 * -2 + 1);\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);" do (compound_statement "{\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = (byte)*string < *pbVar7;\n        bVar10 = *string == *pbVar7;\n        string = (char *)((byte *)string + (uint)bVar14 * -2 + 1);\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      }" { (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (expression_statement "bVar11 = (byte)*string < *pbVar7;" (assignment_expression "bVar11 = (byte)*string < *pbVar7" identifier = (binary_expression "(byte)*string < *pbVar7" (binary_expression "(byte)*string" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "bVar10 = *string == *pbVar7;" (assignment_expression "bVar10 = *string == *pbVar7" identifier = (binary_expression "*string == *pbVar7" (pointer_expression "*string" * identifier) == (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "string = (char *)((byte *)string + (uint)bVar14 * -2 + 1);" (assignment_expression "string = (char *)((byte *)string + (uint)bVar14 * -2 + 1)" identifier = (cast_expression "(char *)((byte *)string + (uint)bVar14 * -2 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((byte *)string + (uint)bVar14 * -2 + 1)" ( (binary_expression "(byte *)string + (uint)bVar14 * -2 + 1" (binary_expression "(byte *)string + (uint)bVar14 * -2" (cast_expression "(byte *)string" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar7 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (if_statement "if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = check_error;\n      }\n      else {\n        local_30 = pcVar5;\n        pcVar3 = (char *)dcgettext(0,"bad argument to %s_check directive.",5);\n        as_bad(pcVar3,pcVar6);\n        pcVar5 = local_30;\n      }" if (parenthesized_expression "((!bVar11 && !bVar10) == bVar11)" ( (binary_expression "(!bVar11 && !bVar10) == bVar11" (parenthesized_expression "(!bVar11 && !bVar10)" ( (binary_expression "!bVar11 && !bVar10" (unary_expression "!bVar11" ! identifier) && (unary_expression "!bVar10" ! identifier)) )) == identifier) )) (compound_statement "{\n        *local_30 = check_error;\n      }" { (expression_statement "*local_30 = check_error;" (assignment_expression "*local_30 = check_error" (pointer_expression "*local_30" * identifier) = identifier) ;) }) (else_clause "else {\n        local_30 = pcVar5;\n        pcVar3 = (char *)dcgettext(0,"bad argument to %s_check directive.",5);\n        as_bad(pcVar3,pcVar6);\n        pcVar5 = local_30;\n      }" else (compound_statement "{\n        local_30 = pcVar5;\n        pcVar3 = (char *)dcgettext(0,"bad argument to %s_check directive.",5);\n        as_bad(pcVar3,pcVar6);\n        pcVar5 = local_30;\n      }" { (expression_statement "local_30 = pcVar5;" (assignment_expression "local_30 = pcVar5" identifier = identifier) ;) (expression_statement "pcVar3 = (char *)dcgettext(0,"bad argument to %s_check directive.",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"bad argument to %s_check directive.",5)" identifier = (cast_expression "(char *)dcgettext(0,"bad argument to %s_check directive.",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"bad argument to %s_check directive.",5)" identifier (argument_list "(0,"bad argument to %s_check directive.",5)" ( number_literal , (string_literal ""bad argument to %s_check directive."" " string_content ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar3,pcVar6);" (call_expression "as_bad(pcVar3,pcVar6)" identifier (argument_list "(pcVar3,pcVar6)" ( identifier , identifier ))) ;) (expression_statement "pcVar5 = local_30;" (assignment_expression "pcVar5 = local_30" identifier = identifier) ;) }))) }))) }))) (expression_statement "restore_line_pointer((char)pcVar5);" (call_expression "restore_line_pointer((char)pcVar5)" identifier (argument_list "((char)pcVar5)" ( (cast_expression "(char)pcVar5" ( (type_descriptor "char" primitive_type) ) identifier) ))) ;) (expression_statement "demand_empty_rest_of_line();" (call_expression "demand_empty_rest_of_line()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00042080(int param_1)\n\n{\n  byte bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  char *pcVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  undefined1 uVar9;\n  bool bVar10;\n  bool bVar11;\n  undefined1 uVar12;\n  bool bVar13;\n  byte bVar14;\n  undefined1 auStack_3c [12];\n  undefined4 *local_30;\n  byte *local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x42089;\n  if (param_1 == 0) {\n    local_30 = &DAT_00088ed0;\n    pcVar6 = "sse";\n  }\n  else {\n    local_30 = &DAT_00080550;\n    pcVar6 = "operand";\n  }\n  bVar1 = *DAT_00089978;\n  if (bVar1 == 0x20) {\n    bVar1 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if ((&DAT_000802c0)[bVar1] != '\0') {\n    uVar3 = dcgettext(0,"missing argument for %s_check directive",5);\n    FUN_0002bd60(uVar3,pcVar6);\n    FUN_0002e4e0();\n    return;\n  }\n  uVar9 = auStack_3c < (undefined1 *)0xc;\n  uVar12 = &stack0x00000000 == (undefined1 *)0x48;\n  cVar2 = FUN_000220a0(local_20);\n  iVar4 = 5;\n  puVar5 = (undefined4 *)(int)cVar2;\n  pbVar7 = local_20[0];\n  pbVar8 = &DAT_0005b33b;\n  do {\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar12 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n  } while ((bool)uVar12);\n  bVar10 = false;\n  bVar13 = (!(bool)uVar9 && !(bool)uVar12) == (bool)uVar9;\n  if (bVar13) {\n    *local_30 = 0;\n  }\n  else {\n    iVar4 = 8;\n    pbVar7 = local_20[0];\n    pbVar8 = (byte *)0x5b406;\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar13) == bVar10;\n    if (bVar10) {\n      *local_30 = 1;\n    }\n    else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }\n    }\n  }\n  FUN_000242c0(puVar5);\n  FUN_0002e4e0();\n  return;\n}\n\n" (function_definition "void FUN_00042080(int param_1)\n\n{\n  byte bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  char *pcVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  undefined1 uVar9;\n  bool bVar10;\n  bool bVar11;\n  undefined1 uVar12;\n  bool bVar13;\n  byte bVar14;\n  undefined1 auStack_3c [12];\n  undefined4 *local_30;\n  byte *local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x42089;\n  if (param_1 == 0) {\n    local_30 = &DAT_00088ed0;\n    pcVar6 = "sse";\n  }\n  else {\n    local_30 = &DAT_00080550;\n    pcVar6 = "operand";\n  }\n  bVar1 = *DAT_00089978;\n  if (bVar1 == 0x20) {\n    bVar1 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if ((&DAT_000802c0)[bVar1] != '\0') {\n    uVar3 = dcgettext(0,"missing argument for %s_check directive",5);\n    FUN_0002bd60(uVar3,pcVar6);\n    FUN_0002e4e0();\n    return;\n  }\n  uVar9 = auStack_3c < (undefined1 *)0xc;\n  uVar12 = &stack0x00000000 == (undefined1 *)0x48;\n  cVar2 = FUN_000220a0(local_20);\n  iVar4 = 5;\n  puVar5 = (undefined4 *)(int)cVar2;\n  pbVar7 = local_20[0];\n  pbVar8 = &DAT_0005b33b;\n  do {\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar12 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n  } while ((bool)uVar12);\n  bVar10 = false;\n  bVar13 = (!(bool)uVar9 && !(bool)uVar12) == (bool)uVar9;\n  if (bVar13) {\n    *local_30 = 0;\n  }\n  else {\n    iVar4 = 8;\n    pbVar7 = local_20[0];\n    pbVar8 = (byte *)0x5b406;\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar13) == bVar10;\n    if (bVar10) {\n      *local_30 = 1;\n    }\n    else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }\n    }\n  }\n  FUN_000242c0(puVar5);\n  FUN_0002e4e0();\n  return;\n}" primitive_type (function_declarator "FUN_00042080(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  char *pcVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  undefined1 uVar9;\n  bool bVar10;\n  bool bVar11;\n  undefined1 uVar12;\n  bool bVar13;\n  byte bVar14;\n  undefined1 auStack_3c [12];\n  undefined4 *local_30;\n  byte *local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x42089;\n  if (param_1 == 0) {\n    local_30 = &DAT_00088ed0;\n    pcVar6 = "sse";\n  }\n  else {\n    local_30 = &DAT_00080550;\n    pcVar6 = "operand";\n  }\n  bVar1 = *DAT_00089978;\n  if (bVar1 == 0x20) {\n    bVar1 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if ((&DAT_000802c0)[bVar1] != '\0') {\n    uVar3 = dcgettext(0,"missing argument for %s_check directive",5);\n    FUN_0002bd60(uVar3,pcVar6);\n    FUN_0002e4e0();\n    return;\n  }\n  uVar9 = auStack_3c < (undefined1 *)0xc;\n  uVar12 = &stack0x00000000 == (undefined1 *)0x48;\n  cVar2 = FUN_000220a0(local_20);\n  iVar4 = 5;\n  puVar5 = (undefined4 *)(int)cVar2;\n  pbVar7 = local_20[0];\n  pbVar8 = &DAT_0005b33b;\n  do {\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar12 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n  } while ((bool)uVar12);\n  bVar10 = false;\n  bVar13 = (!(bool)uVar9 && !(bool)uVar12) == (bool)uVar9;\n  if (bVar13) {\n    *local_30 = 0;\n  }\n  else {\n    iVar4 = 8;\n    pbVar7 = local_20[0];\n    pbVar8 = (byte *)0x5b406;\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar13) == bVar10;\n    if (bVar10) {\n      *local_30 = 1;\n    }\n    else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }\n    }\n  }\n  FUN_000242c0(puVar5);\n  FUN_0002e4e0();\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "undefined1 uVar9;" type_identifier identifier ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "undefined1 uVar12;" type_identifier identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "undefined1 auStack_3c [12];" type_identifier (array_declarator "auStack_3c [12]" identifier [ number_literal ]) ;) (declaration "undefined4 *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "byte *local_20 [3];" type_identifier (pointer_declarator "*local_20 [3]" * (array_declarator "local_20 [3]" identifier [ number_literal ])) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x42089;" (assignment_expression "uStack_14 = 0x42089" identifier = number_literal) ;) (if_statement "if (param_1 == 0) {\n    local_30 = &DAT_00088ed0;\n    pcVar6 = "sse";\n  }\n  else {\n    local_30 = &DAT_00080550;\n    pcVar6 = "operand";\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n    local_30 = &DAT_00088ed0;\n    pcVar6 = "sse";\n  }" { (expression_statement "local_30 = &DAT_00088ed0;" (assignment_expression "local_30 = &DAT_00088ed0" identifier = (pointer_expression "&DAT_00088ed0" & identifier)) ;) (expression_statement "pcVar6 = "sse";" (assignment_expression "pcVar6 = "sse"" identifier = (string_literal ""sse"" " string_content ")) ;) }) (else_clause "else {\n    local_30 = &DAT_00080550;\n    pcVar6 = "operand";\n  }" else (compound_statement "{\n    local_30 = &DAT_00080550;\n    pcVar6 = "operand";\n  }" { (expression_statement "local_30 = &DAT_00080550;" (assignment_expression "local_30 = &DAT_00080550" identifier = (pointer_expression "&DAT_00080550" & identifier)) ;) (expression_statement "pcVar6 = "operand";" (assignment_expression "pcVar6 = "operand"" identifier = (string_literal ""operand"" " string_content ")) ;) }))) (expression_statement "bVar1 = *DAT_00089978;" (assignment_expression "bVar1 = *DAT_00089978" identifier = (pointer_expression "*DAT_00089978" * identifier)) ;) (if_statement "if (bVar1 == 0x20) {\n    bVar1 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" if (parenthesized_expression "(bVar1 == 0x20)" ( (binary_expression "bVar1 == 0x20" identifier == number_literal) )) (compound_statement "{\n    bVar1 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" { (expression_statement "bVar1 = DAT_00089978[1];" (assignment_expression "bVar1 = DAT_00089978[1]" identifier = (subscript_expression "DAT_00089978[1]" identifier [ number_literal ])) ;) (expression_statement "DAT_00089978 = DAT_00089978 + 1;" (assignment_expression "DAT_00089978 = DAT_00089978 + 1" identifier = (binary_expression "DAT_00089978 + 1" identifier + number_literal)) ;) })) (if_statement "if ((&DAT_000802c0)[bVar1] != '\0') {\n    uVar3 = dcgettext(0,"missing argument for %s_check directive",5);\n    FUN_0002bd60(uVar3,pcVar6);\n    FUN_0002e4e0();\n    return;\n  }" if (parenthesized_expression "((&DAT_000802c0)[bVar1] != '\0')" ( (binary_expression "(&DAT_000802c0)[bVar1] != '\0'" (subscript_expression "(&DAT_000802c0)[bVar1]" (parenthesized_expression "(&DAT_000802c0)" ( (pointer_expression "&DAT_000802c0" & identifier) )) [ identifier ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uVar3 = dcgettext(0,"missing argument for %s_check directive",5);\n    FUN_0002bd60(uVar3,pcVar6);\n    FUN_0002e4e0();\n    return;\n  }" { (expression_statement "uVar3 = dcgettext(0,"missing argument for %s_check directive",5);" (assignment_expression "uVar3 = dcgettext(0,"missing argument for %s_check directive",5)" identifier = (call_expression "dcgettext(0,"missing argument for %s_check directive",5)" identifier (argument_list "(0,"missing argument for %s_check directive",5)" ( number_literal , (string_literal ""missing argument for %s_check directive"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar3,pcVar6);" (call_expression "FUN_0002bd60(uVar3,pcVar6)" identifier (argument_list "(uVar3,pcVar6)" ( identifier , identifier ))) ;) (expression_statement "FUN_0002e4e0();" (call_expression "FUN_0002e4e0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar9 = auStack_3c < (undefined1 *)0xc;" (assignment_expression "uVar9 = auStack_3c < (undefined1 *)0xc" identifier = (binary_expression "auStack_3c < (undefined1 *)0xc" identifier < (cast_expression "(undefined1 *)0xc" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar12 = &stack0x00000000 == (undefined1 *)0x48;" (assignment_expression "uVar12 = &stack0x00000000 == (undefined1 *)0x48" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x48" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x48" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "cVar2 = FUN_000220a0(local_20);" (assignment_expression "cVar2 = FUN_000220a0(local_20)" identifier = (call_expression "FUN_000220a0(local_20)" identifier (argument_list "(local_20)" ( identifier )))) ;) (expression_statement "iVar4 = 5;" (assignment_expression "iVar4 = 5" identifier = number_literal) ;) (expression_statement "puVar5 = (undefined4 *)(int)cVar2;" (assignment_expression "puVar5 = (undefined4 *)(int)cVar2" identifier = (cast_expression "(undefined4 *)(int)cVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)cVar2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar7 = local_20[0];" (assignment_expression "pbVar7 = local_20[0]" identifier = (subscript_expression "local_20[0]" identifier [ number_literal ])) ;) (expression_statement "pbVar8 = &DAT_0005b33b;" (assignment_expression "pbVar8 = &DAT_0005b33b" identifier = (pointer_expression "&DAT_0005b33b" & identifier)) ;) (do_statement "do {\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar12 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n  } while ((bool)uVar12);" do (compound_statement "{\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar12 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n  }" { (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (expression_statement "uVar9 = *pbVar7 < *pbVar8;" (assignment_expression "uVar9 = *pbVar7 < *pbVar8" identifier = (binary_expression "*pbVar7 < *pbVar8" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "uVar12 = *pbVar7 == *pbVar8;" (assignment_expression "uVar12 = *pbVar7 == *pbVar8" identifier = (binary_expression "*pbVar7 == *pbVar8" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar7 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar8 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar12)" ( (cast_expression "(bool)uVar12" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" identifier = false) ;) (expression_statement "bVar13 = (!(bool)uVar9 && !(bool)uVar12) == (bool)uVar9;" (assignment_expression "bVar13 = (!(bool)uVar9 && !(bool)uVar12) == (bool)uVar9" identifier = (binary_expression "(!(bool)uVar9 && !(bool)uVar12) == (bool)uVar9" (parenthesized_expression "(!(bool)uVar9 && !(bool)uVar12)" ( (binary_expression "!(bool)uVar9 && !(bool)uVar12" (unary_expression "!(bool)uVar9" ! (cast_expression "(bool)uVar9" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar12" ! (cast_expression "(bool)uVar12" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar9" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar13) {\n    *local_30 = 0;\n  }\n  else {\n    iVar4 = 8;\n    pbVar7 = local_20[0];\n    pbVar8 = (byte *)0x5b406;\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar13) == bVar10;\n    if (bVar10) {\n      *local_30 = 1;\n    }\n    else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }\n    }\n  }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n    *local_30 = 0;\n  }" { (expression_statement "*local_30 = 0;" (assignment_expression "*local_30 = 0" (pointer_expression "*local_30" * identifier) = number_literal) ;) }) (else_clause "else {\n    iVar4 = 8;\n    pbVar7 = local_20[0];\n    pbVar8 = (byte *)0x5b406;\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar13) == bVar10;\n    if (bVar10) {\n      *local_30 = 1;\n    }\n    else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }\n    }\n  }" else (compound_statement "{\n    iVar4 = 8;\n    pbVar7 = local_20[0];\n    pbVar8 = (byte *)0x5b406;\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar13) == bVar10;\n    if (bVar10) {\n      *local_30 = 1;\n    }\n    else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }\n    }\n  }" { (expression_statement "iVar4 = 8;" (assignment_expression "iVar4 = 8" identifier = number_literal) ;) (expression_statement "pbVar7 = local_20[0];" (assignment_expression "pbVar7 = local_20[0]" identifier = (subscript_expression "local_20[0]" identifier [ number_literal ])) ;) (expression_statement "pbVar8 = (byte *)0x5b406;" (assignment_expression "pbVar8 = (byte *)0x5b406" identifier = (cast_expression "(byte *)0x5b406" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);" do (compound_statement "{\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    }" { (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (expression_statement "bVar10 = *pbVar7 < *pbVar8;" (assignment_expression "bVar10 = *pbVar7 < *pbVar8" identifier = (binary_expression "*pbVar7 < *pbVar8" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "bVar13 = *pbVar7 == *pbVar8;" (assignment_expression "bVar13 = *pbVar7 == *pbVar8" identifier = (binary_expression "*pbVar7 == *pbVar8" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar7 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar8 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" identifier = false) ;) (expression_statement "bVar10 = (!bVar10 && !bVar13) == bVar10;" (assignment_expression "bVar10 = (!bVar10 && !bVar13) == bVar10" identifier = (binary_expression "(!bVar10 && !bVar13) == bVar10" (parenthesized_expression "(!bVar10 && !bVar13)" ( (binary_expression "!bVar10 && !bVar13" (unary_expression "!bVar10" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar10) {\n      *local_30 = 1;\n    }\n    else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }\n    }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n      *local_30 = 1;\n    }" { (expression_statement "*local_30 = 1;" (assignment_expression "*local_30 = 1" (pointer_expression "*local_30" * identifier) = number_literal) ;) }) (else_clause "else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }\n    }" else (compound_statement "{\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }\n    }" { (expression_statement "iVar4 = 6;" (assignment_expression "iVar4 = 6" identifier = number_literal) ;) (expression_statement "pbVar7 = (byte *)0x5b41b;" (assignment_expression "pbVar7 = (byte *)0x5b41b" identifier = (cast_expression "(byte *)0x5b41b" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);" do (compound_statement "{\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      }" { (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (expression_statement "bVar11 = *local_20[0] < *pbVar7;" (assignment_expression "bVar11 = *local_20[0] < *pbVar7" identifier = (binary_expression "*local_20[0] < *pbVar7" (pointer_expression "*local_20[0]" * (subscript_expression "local_20[0]" identifier [ number_literal ])) < (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "bVar10 = *local_20[0] == *pbVar7;" (assignment_expression "bVar10 = *local_20[0] == *pbVar7" identifier = (binary_expression "*local_20[0] == *pbVar7" (pointer_expression "*local_20[0]" * (subscript_expression "local_20[0]" identifier [ number_literal ])) == (pointer_expression "*pbVar7" * identifier))) ;) (expression_statement "local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;" (assignment_expression "local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1" (subscript_expression "local_20[0]" identifier [ number_literal ]) = (binary_expression "local_20[0] + (uint)bVar14 * -2 + 1" (binary_expression "local_20[0] + (uint)bVar14 * -2" (subscript_expression "local_20[0]" identifier [ number_literal ]) + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar7 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (if_statement "if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }" if (parenthesized_expression "((!bVar11 && !bVar10) == bVar11)" ( (binary_expression "(!bVar11 && !bVar10) == bVar11" (parenthesized_expression "(!bVar11 && !bVar10)" ( (binary_expression "!bVar11 && !bVar10" (unary_expression "!bVar11" ! identifier) && (unary_expression "!bVar10" ! identifier)) )) == identifier) )) (compound_statement "{\n        *local_30 = 2;\n      }" { (expression_statement "*local_30 = 2;" (assignment_expression "*local_30 = 2" (pointer_expression "*local_30" * identifier) = number_literal) ;) }) (else_clause "else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }" else (compound_statement "{\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }" { (expression_statement "local_30 = puVar5;" (assignment_expression "local_30 = puVar5" identifier = identifier) ;) (expression_statement "uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);" (assignment_expression "uVar3 = dcgettext(0,"bad argument to %s_check directive.",5)" identifier = (call_expression "dcgettext(0,"bad argument to %s_check directive.",5)" identifier (argument_list "(0,"bad argument to %s_check directive.",5)" ( number_literal , (string_literal ""bad argument to %s_check directive."" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar3,pcVar6);" (call_expression "FUN_0002bd60(uVar3,pcVar6)" identifier (argument_list "(uVar3,pcVar6)" ( identifier , identifier ))) ;) (expression_statement "puVar5 = local_30;" (assignment_expression "puVar5 = local_30" identifier = identifier) ;) }))) }))) }))) (expression_statement "FUN_000242c0(puVar5);" (call_expression "FUN_000242c0(puVar5)" identifier (argument_list "(puVar5)" ( identifier ))) ;) (expression_statement "FUN_0002e4e0();" (call_expression "FUN_0002e4e0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) && (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) == (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (subscript_expression IDENT [ LIT ])) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (subscript_expression IDENT [ LIT ])) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }))) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00042080(int param_1)\n\n{\n  byte bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  char *pcVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  undefined1 uVar9;\n  bool bVar10;\n  bool bVar11;\n  undefined1 uVar12;\n  bool bVar13;\n  byte bVar14;\n  undefined1 auStack_3c [12];\n  undefined4 *local_30;\n  byte *local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x42089;\n  if (param_1 == 0) {\n    local_30 = &DAT_00088ed0;\n    pcVar6 = "sse";\n  }\n  else {\n    local_30 = &DAT_00080550;\n    pcVar6 = "operand";\n  }\n  bVar1 = *DAT_00089978;\n  if (bVar1 == 0x20) {\n    bVar1 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if ((&DAT_000802c0)[bVar1] != '\0') {\n    uVar3 = dcgettext(0,"missing argument for %s_check directive",5);\n    FUN_0002bd60(uVar3,pcVar6);\n    FUN_0002e4e0();\n    return;\n  }\n  uVar9 = auStack_3c < (undefined1 *)0xc;\n  uVar12 = &stack0x00000000 == (undefined1 *)0x48;\n  cVar2 = FUN_000220a0(local_20);\n  iVar4 = 5;\n  puVar5 = (undefined4 *)(int)cVar2;\n  pbVar7 = local_20[0];\n  pbVar8 = &DAT_0005b33b;\n  do {\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar12 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n  } while ((bool)uVar12);\n  bVar10 = false;\n  bVar13 = (!(bool)uVar9 && !(bool)uVar12) == (bool)uVar9;\n  if (bVar13) {\n    *local_30 = 0;\n  }\n  else {\n    iVar4 = 8;\n    pbVar7 = local_20[0];\n    pbVar8 = (byte *)0x5b406;\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar13) == bVar10;\n    if (bVar10) {\n      *local_30 = 1;\n    }\n    else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }\n    }\n  }\n  FUN_000242c0(puVar5);\n  FUN_0002e4e0();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00042080(int param_1)" (identifier "FUN_00042080") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  char *pcVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  undefined1 uVar9;\n  bool bVar10;\n  bool bVar11;\n  undefined1 uVar12;\n  bool bVar13;\n  byte bVar14;\n  undefined1 auStack_3c [12];\n  undefined4 *local_30;\n  byte *local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x42089;\n  if (param_1 == 0) {\n    local_30 = &DAT_00088ed0;\n    pcVar6 = "sse";\n  }\n  else {\n    local_30 = &DAT_00080550;\n    pcVar6 = "operand";\n  }\n  bVar1 = *DAT_00089978;\n  if (bVar1 == 0x20) {\n    bVar1 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }\n  if ((&DAT_000802c0)[bVar1] != '\0') {\n    uVar3 = dcgettext(0,"missing argument for %s_check directive",5);\n    FUN_0002bd60(uVar3,pcVar6);\n    FUN_0002e4e0();\n    return;\n  }\n  uVar9 = auStack_3c < (undefined1 *)0xc;\n  uVar12 = &stack0x00000000 == (undefined1 *)0x48;\n  cVar2 = FUN_000220a0(local_20);\n  iVar4 = 5;\n  puVar5 = (undefined4 *)(int)cVar2;\n  pbVar7 = local_20[0];\n  pbVar8 = &DAT_0005b33b;\n  do {\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar12 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n  } while ((bool)uVar12);\n  bVar10 = false;\n  bVar13 = (!(bool)uVar9 && !(bool)uVar12) == (bool)uVar9;\n  if (bVar13) {\n    *local_30 = 0;\n  }\n  else {\n    iVar4 = 8;\n    pbVar7 = local_20[0];\n    pbVar8 = (byte *)0x5b406;\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar13) == bVar10;\n    if (bVar10) {\n      *local_30 = 1;\n    }\n    else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }\n    }\n  }\n  FUN_000242c0(puVar5);\n  FUN_0002e4e0();\n  return;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "byte *pbVar7;" (type_identifier "byte") (pointer_declarator "*pbVar7" (* "*") (identifier "pbVar7")) (; ";")) (declaration "byte *pbVar8;" (type_identifier "byte") (pointer_declarator "*pbVar8" (* "*") (identifier "pbVar8")) (; ";")) (declaration "undefined1 uVar9;" (type_identifier "undefined1") (identifier "uVar9") (; ";")) (declaration "bool bVar10;" (primitive_type "bool") (identifier "bVar10") (; ";")) (declaration "bool bVar11;" (primitive_type "bool") (identifier "bVar11") (; ";")) (declaration "undefined1 uVar12;" (type_identifier "undefined1") (identifier "uVar12") (; ";")) (declaration "bool bVar13;" (primitive_type "bool") (identifier "bVar13") (; ";")) (declaration "byte bVar14;" (type_identifier "byte") (identifier "bVar14") (; ";")) (declaration "undefined1 auStack_3c [12];" (type_identifier "undefined1") (array_declarator "auStack_3c [12]" (identifier "auStack_3c") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "undefined4 *local_30;" (type_identifier "undefined4") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "byte *local_20 [3];" (type_identifier "byte") (pointer_declarator "*local_20 [3]" (* "*") (array_declarator "local_20 [3]" (identifier "local_20") ([ "[") (number_literal "3") (] "]"))) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" (identifier "bVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x42089;" (assignment_expression "uStack_14 = 0x42089" (identifier "uStack_14") (= "=") (number_literal "0x42089")) (; ";")) (if_statement "if (param_1 == 0) {\n    local_30 = &DAT_00088ed0;\n    pcVar6 = "sse";\n  }\n  else {\n    local_30 = &DAT_00080550;\n    pcVar6 = "operand";\n  }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_30 = &DAT_00088ed0;\n    pcVar6 = "sse";\n  }" ({ "{") (expression_statement "local_30 = &DAT_00088ed0;" (assignment_expression "local_30 = &DAT_00088ed0" (identifier "local_30") (= "=") (pointer_expression "&DAT_00088ed0" (& "&") (identifier "DAT_00088ed0"))) (; ";")) (expression_statement "pcVar6 = "sse";" (assignment_expression "pcVar6 = "sse"" (identifier "pcVar6") (= "=") (string_literal ""sse"" (" """) (string_content "sse") (" """))) (; ";")) (} "}")) (else_clause "else {\n    local_30 = &DAT_00080550;\n    pcVar6 = "operand";\n  }" (else "else") (compound_statement "{\n    local_30 = &DAT_00080550;\n    pcVar6 = "operand";\n  }" ({ "{") (expression_statement "local_30 = &DAT_00080550;" (assignment_expression "local_30 = &DAT_00080550" (identifier "local_30") (= "=") (pointer_expression "&DAT_00080550" (& "&") (identifier "DAT_00080550"))) (; ";")) (expression_statement "pcVar6 = "operand";" (assignment_expression "pcVar6 = "operand"" (identifier "pcVar6") (= "=") (string_literal ""operand"" (" """) (string_content "operand") (" """))) (; ";")) (} "}")))) (expression_statement "bVar1 = *DAT_00089978;" (assignment_expression "bVar1 = *DAT_00089978" (identifier "bVar1") (= "=") (pointer_expression "*DAT_00089978" (* "*") (identifier "DAT_00089978"))) (; ";")) (if_statement "if (bVar1 == 0x20) {\n    bVar1 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" (if "if") (parenthesized_expression "(bVar1 == 0x20)" (( "(") (binary_expression "bVar1 == 0x20" (identifier "bVar1") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n    bVar1 = DAT_00089978[1];\n    DAT_00089978 = DAT_00089978 + 1;\n  }" ({ "{") (expression_statement "bVar1 = DAT_00089978[1];" (assignment_expression "bVar1 = DAT_00089978[1]" (identifier "bVar1") (= "=") (subscript_expression "DAT_00089978[1]" (identifier "DAT_00089978") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "DAT_00089978 = DAT_00089978 + 1;" (assignment_expression "DAT_00089978 = DAT_00089978 + 1" (identifier "DAT_00089978") (= "=") (binary_expression "DAT_00089978 + 1" (identifier "DAT_00089978") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if ((&DAT_000802c0)[bVar1] != '\0') {\n    uVar3 = dcgettext(0,"missing argument for %s_check directive",5);\n    FUN_0002bd60(uVar3,pcVar6);\n    FUN_0002e4e0();\n    return;\n  }" (if "if") (parenthesized_expression "((&DAT_000802c0)[bVar1] != '\0')" (( "(") (binary_expression "(&DAT_000802c0)[bVar1] != '\0'" (subscript_expression "(&DAT_000802c0)[bVar1]" (parenthesized_expression "(&DAT_000802c0)" (( "(") (pointer_expression "&DAT_000802c0" (& "&") (identifier "DAT_000802c0")) () ")")) ([ "[") (identifier "bVar1") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    uVar3 = dcgettext(0,"missing argument for %s_check directive",5);\n    FUN_0002bd60(uVar3,pcVar6);\n    FUN_0002e4e0();\n    return;\n  }" ({ "{") (expression_statement "uVar3 = dcgettext(0,"missing argument for %s_check directive",5);" (assignment_expression "uVar3 = dcgettext(0,"missing argument for %s_check directive",5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,"missing argument for %s_check directive",5)" (identifier "dcgettext") (argument_list "(0,"missing argument for %s_check directive",5)" (( "(") (number_literal "0") (, ",") (string_literal ""missing argument for %s_check directive"" (" """) (string_content "missing argument for %s_check directive") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bd60(uVar3,pcVar6);" (call_expression "FUN_0002bd60(uVar3,pcVar6)" (identifier "FUN_0002bd60") (argument_list "(uVar3,pcVar6)" (( "(") (identifier "uVar3") (, ",") (identifier "pcVar6") () ")"))) (; ";")) (expression_statement "FUN_0002e4e0();" (call_expression "FUN_0002e4e0()" (identifier "FUN_0002e4e0") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar9 = auStack_3c < (undefined1 *)0xc;" (assignment_expression "uVar9 = auStack_3c < (undefined1 *)0xc" (identifier "uVar9") (= "=") (binary_expression "auStack_3c < (undefined1 *)0xc" (identifier "auStack_3c") (< "<") (cast_expression "(undefined1 *)0xc" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xc")))) (; ";")) (expression_statement "uVar12 = &stack0x00000000 == (undefined1 *)0x48;" (assignment_expression "uVar12 = &stack0x00000000 == (undefined1 *)0x48" (identifier "uVar12") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0x48" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0x48" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x48")))) (; ";")) (expression_statement "cVar2 = FUN_000220a0(local_20);" (assignment_expression "cVar2 = FUN_000220a0(local_20)" (identifier "cVar2") (= "=") (call_expression "FUN_000220a0(local_20)" (identifier "FUN_000220a0") (argument_list "(local_20)" (( "(") (identifier "local_20") () ")")))) (; ";")) (expression_statement "iVar4 = 5;" (assignment_expression "iVar4 = 5" (identifier "iVar4") (= "=") (number_literal "5")) (; ";")) (expression_statement "puVar5 = (undefined4 *)(int)cVar2;" (assignment_expression "puVar5 = (undefined4 *)(int)cVar2" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(int)cVar2" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)cVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar2")))) (; ";")) (expression_statement "pbVar7 = local_20[0];" (assignment_expression "pbVar7 = local_20[0]" (identifier "pbVar7") (= "=") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "pbVar8 = &DAT_0005b33b;" (assignment_expression "pbVar8 = &DAT_0005b33b" (identifier "pbVar8") (= "=") (pointer_expression "&DAT_0005b33b" (& "&") (identifier "DAT_0005b33b"))) (; ";")) (do_statement "do {\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar12 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n  } while ((bool)uVar12);" (do "do") (compound_statement "{\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar12 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n  }" ({ "{") (if_statement "if (iVar4 == 0) break;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + -1" (identifier "iVar4") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar9 = *pbVar7 < *pbVar8;" (assignment_expression "uVar9 = *pbVar7 < *pbVar8" (identifier "uVar9") (= "=") (binary_expression "*pbVar7 < *pbVar8" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (< "<") (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")))) (; ";")) (expression_statement "uVar12 = *pbVar7 == *pbVar8;" (assignment_expression "uVar12 = *pbVar7 == *pbVar8" (identifier "uVar12") (= "=") (binary_expression "*pbVar7 == *pbVar8" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (== "==") (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")))) (; ";")) (expression_statement "pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar14 * -2" (identifier "pbVar7") (+ "+") (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar14")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1" (identifier "pbVar8") (= "=") (binary_expression "pbVar8 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar14 * -2" (identifier "pbVar8") (+ "+") (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar14")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar12)" (( "(") (cast_expression "(bool)uVar12" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar12")) () ")")) (; ";")) (expression_statement "bVar10 = false;" (assignment_expression "bVar10 = false" (identifier "bVar10") (= "=") (false "false")) (; ";")) (expression_statement "bVar13 = (!(bool)uVar9 && !(bool)uVar12) == (bool)uVar9;" (assignment_expression "bVar13 = (!(bool)uVar9 && !(bool)uVar12) == (bool)uVar9" (identifier "bVar13") (= "=") (binary_expression "(!(bool)uVar9 && !(bool)uVar12) == (bool)uVar9" (parenthesized_expression "(!(bool)uVar9 && !(bool)uVar12)" (( "(") (binary_expression "!(bool)uVar9 && !(bool)uVar12" (unary_expression "!(bool)uVar9" (! "!") (cast_expression "(bool)uVar9" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar9"))) (&& "&&") (unary_expression "!(bool)uVar12" (! "!") (cast_expression "(bool)uVar12" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar12")))) () ")")) (== "==") (cast_expression "(bool)uVar9" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar9")))) (; ";")) (if_statement "if (bVar13) {\n    *local_30 = 0;\n  }\n  else {\n    iVar4 = 8;\n    pbVar7 = local_20[0];\n    pbVar8 = (byte *)0x5b406;\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar13) == bVar10;\n    if (bVar10) {\n      *local_30 = 1;\n    }\n    else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")")) (compound_statement "{\n    *local_30 = 0;\n  }" ({ "{") (expression_statement "*local_30 = 0;" (assignment_expression "*local_30 = 0" (pointer_expression "*local_30" (* "*") (identifier "local_30")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    iVar4 = 8;\n    pbVar7 = local_20[0];\n    pbVar8 = (byte *)0x5b406;\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar13) == bVar10;\n    if (bVar10) {\n      *local_30 = 1;\n    }\n    else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    iVar4 = 8;\n    pbVar7 = local_20[0];\n    pbVar8 = (byte *)0x5b406;\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    bVar11 = false;\n    bVar10 = (!bVar10 && !bVar13) == bVar10;\n    if (bVar10) {\n      *local_30 = 1;\n    }\n    else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }\n    }\n  }" ({ "{") (expression_statement "iVar4 = 8;" (assignment_expression "iVar4 = 8" (identifier "iVar4") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar7 = local_20[0];" (assignment_expression "pbVar7 = local_20[0]" (identifier "pbVar7") (= "=") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "pbVar8 = (byte *)0x5b406;" (assignment_expression "pbVar8 = (byte *)0x5b406" (identifier "pbVar8") (= "=") (cast_expression "(byte *)0x5b406" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5b406"))) (; ";")) (do_statement "do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);" (do "do") (compound_statement "{\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar10 = *pbVar7 < *pbVar8;\n      bVar13 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar4 == 0) break;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + -1" (identifier "iVar4") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar10 = *pbVar7 < *pbVar8;" (assignment_expression "bVar10 = *pbVar7 < *pbVar8" (identifier "bVar10") (= "=") (binary_expression "*pbVar7 < *pbVar8" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (< "<") (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")))) (; ";")) (expression_statement "bVar13 = *pbVar7 == *pbVar8;" (assignment_expression "bVar13 = *pbVar7 == *pbVar8" (identifier "bVar13") (= "=") (binary_expression "*pbVar7 == *pbVar8" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (== "==") (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")))) (; ";")) (expression_statement "pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar14 * -2" (identifier "pbVar7") (+ "+") (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar14")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1" (identifier "pbVar8") (= "=") (binary_expression "pbVar8 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar14 * -2" (identifier "pbVar8") (+ "+") (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar14")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")")) (; ";")) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" (identifier "bVar11") (= "=") (false "false")) (; ";")) (expression_statement "bVar10 = (!bVar10 && !bVar13) == bVar10;" (assignment_expression "bVar10 = (!bVar10 && !bVar13) == bVar10" (identifier "bVar10") (= "=") (binary_expression "(!bVar10 && !bVar13) == bVar10" (parenthesized_expression "(!bVar10 && !bVar13)" (( "(") (binary_expression "!bVar10 && !bVar13" (unary_expression "!bVar10" (! "!") (identifier "bVar10")) (&& "&&") (unary_expression "!bVar13" (! "!") (identifier "bVar13"))) () ")")) (== "==") (identifier "bVar10"))) (; ";")) (if_statement "if (bVar10) {\n      *local_30 = 1;\n    }\n    else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }\n    }" (if "if") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (compound_statement "{\n      *local_30 = 1;\n    }" ({ "{") (expression_statement "*local_30 = 1;" (assignment_expression "*local_30 = 1" (pointer_expression "*local_30" (* "*") (identifier "local_30")) (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }\n    }" (else "else") (compound_statement "{\n      iVar4 = 6;\n      pbVar7 = (byte *)0x5b41b;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);\n      if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }\n    }" ({ "{") (expression_statement "iVar4 = 6;" (assignment_expression "iVar4 = 6" (identifier "iVar4") (= "=") (number_literal "6")) (; ";")) (expression_statement "pbVar7 = (byte *)0x5b41b;" (assignment_expression "pbVar7 = (byte *)0x5b41b" (identifier "pbVar7") (= "=") (cast_expression "(byte *)0x5b41b" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5b41b"))) (; ";")) (do_statement "do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      } while (bVar10);" (do "do") (compound_statement "{\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar11 = *local_20[0] < *pbVar7;\n        bVar10 = *local_20[0] == *pbVar7;\n        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;\n        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;\n      }" ({ "{") (if_statement "if (iVar4 == 0) break;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + -1" (identifier "iVar4") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar11 = *local_20[0] < *pbVar7;" (assignment_expression "bVar11 = *local_20[0] < *pbVar7" (identifier "bVar11") (= "=") (binary_expression "*local_20[0] < *pbVar7" (pointer_expression "*local_20[0]" (* "*") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]"))) (< "<") (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")))) (; ";")) (expression_statement "bVar10 = *local_20[0] == *pbVar7;" (assignment_expression "bVar10 = *local_20[0] == *pbVar7" (identifier "bVar10") (= "=") (binary_expression "*local_20[0] == *pbVar7" (pointer_expression "*local_20[0]" (* "*") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]"))) (== "==") (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")))) (; ";")) (expression_statement "local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;" (assignment_expression "local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "local_20[0] + (uint)bVar14 * -2 + 1" (binary_expression "local_20[0] + (uint)bVar14 * -2" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (+ "+") (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar14")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar14 * -2" (identifier "pbVar7") (+ "+") (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar14")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (; ";")) (if_statement "if ((!bVar11 && !bVar10) == bVar11) {\n        *local_30 = 2;\n      }\n      else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }" (if "if") (parenthesized_expression "((!bVar11 && !bVar10) == bVar11)" (( "(") (binary_expression "(!bVar11 && !bVar10) == bVar11" (parenthesized_expression "(!bVar11 && !bVar10)" (( "(") (binary_expression "!bVar11 && !bVar10" (unary_expression "!bVar11" (! "!") (identifier "bVar11")) (&& "&&") (unary_expression "!bVar10" (! "!") (identifier "bVar10"))) () ")")) (== "==") (identifier "bVar11")) () ")")) (compound_statement "{\n        *local_30 = 2;\n      }" ({ "{") (expression_statement "*local_30 = 2;" (assignment_expression "*local_30 = 2" (pointer_expression "*local_30" (* "*") (identifier "local_30")) (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }" (else "else") (compound_statement "{\n        local_30 = puVar5;\n        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);\n        FUN_0002bd60(uVar3,pcVar6);\n        puVar5 = local_30;\n      }" ({ "{") (expression_statement "local_30 = puVar5;" (assignment_expression "local_30 = puVar5" (identifier "local_30") (= "=") (identifier "puVar5")) (; ";")) (expression_statement "uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);" (assignment_expression "uVar3 = dcgettext(0,"bad argument to %s_check directive.",5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,"bad argument to %s_check directive.",5)" (identifier "dcgettext") (argument_list "(0,"bad argument to %s_check directive.",5)" (( "(") (number_literal "0") (, ",") (string_literal ""bad argument to %s_check directive."" (" """) (string_content "bad argument to %s_check directive.") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bd60(uVar3,pcVar6);" (call_expression "FUN_0002bd60(uVar3,pcVar6)" (identifier "FUN_0002bd60") (argument_list "(uVar3,pcVar6)" (( "(") (identifier "uVar3") (, ",") (identifier "pcVar6") () ")"))) (; ";")) (expression_statement "puVar5 = local_30;" (assignment_expression "puVar5 = local_30" (identifier "puVar5") (= "=") (identifier "local_30")) (; ";")) (} "}")))) (} "}")))) (} "}")))) (expression_statement "FUN_000242c0(puVar5);" (call_expression "FUN_000242c0(puVar5)" (identifier "FUN_000242c0") (argument_list "(puVar5)" (( "(") (identifier "puVar5") () ")"))) (; ";")) (expression_statement "FUN_0002e4e0();" (call_expression "FUN_0002e4e0()" (identifier "FUN_0002e4e0") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

void function_1(int var_1)

{
  type_1 var_2;
  char cVar2;
  char *pcVar3;
  int var_9;
  type_2 *pcVar5;
  char *pcVar6;
  type_1 *var_10;
  type_1 *var_11;
  type_3 uVar9;
  bool var_12;
  bool var_14;
  type_3 uVar12;
  bool bVar13;
  type_1 bVar14;
  type_3 var_7 [12];
  type_2 *local_30;
  char *var_13;
  type_4 uStack_14;
  
  bVar14 = 0;
  uStack_14 = 0x42089;
  if (var_1 == 0) {
    local_30 = &sse_check;
    pcVar6 = "sse";
  }
  else {
    local_30 = &operand_check;
    pcVar6 = "operand";
  }
  var_2 = *var_3;
  if (var_2 == 0x20) {
    var_2 = var_3[1];
    var_3 = var_3 + 1;
  }
  if (is_end_of_line[var_2] != '\0') {
    pcVar3 = (char *)var_4(0,"missing argument for %s_check directive",5);
    var_5(pcVar3,pcVar6);
    var_6();
    return;
  }
  uVar9 = var_7 < (type_3 *)0xc;
  uVar12 = &stack0x00000000 == (type_3 *)0x48;
  cVar2 = var_8(&var_13);
  var_9 = 5;
  pcVar5 = (type_2 *)(int)cVar2;
  var_10 = (type_1 *)var_13;
  var_11 = &DAT_0005b33b;
  do {
    if (var_9 == 0) break;
    var_9 = var_9 + -1;
    uVar9 = *var_10 < *var_11;
    uVar12 = *var_10 == *var_11;
    var_10 = var_10 + (type_5)bVar14 * -2 + 1;
    var_11 = var_11 + (type_5)bVar14 * -2 + 1;
  } while ((bool)uVar12);
  var_12 = false;
  bVar13 = (!(bool)uVar9 && !(bool)uVar12) == (bool)uVar9;
  if (bVar13) {
    *local_30 = check_none;
  }
  else {
    var_9 = 8;
    var_10 = (type_1 *)var_13;
    var_11 = (type_1 *)0x5b406;
    do {
      if (var_9 == 0) break;
      var_9 = var_9 + -1;
      var_12 = *var_10 < *var_11;
      bVar13 = *var_10 == *var_11;
      var_10 = var_10 + (type_5)bVar14 * -2 + 1;
      var_11 = var_11 + (type_5)bVar14 * -2 + 1;
    } while (bVar13);
    var_14 = false;
    var_12 = (!var_12 && !bVar13) == var_12;
    if (var_12) {
      *local_30 = check_warning;
    }
    else {
      var_9 = 6;
      var_10 = (type_1 *)0x5b41b;
      do {
        if (var_9 == 0) break;
        var_9 = var_9 + -1;
        var_14 = (type_1)*var_13 < *var_10;
        var_12 = *var_13 == *var_10;
        var_13 = (char *)((type_1 *)var_13 + (type_5)bVar14 * -2 + 1);
        var_10 = var_10 + (type_5)bVar14 * -2 + 1;
      } while (var_12);
      if ((!var_14 && !var_12) == var_14) {
        *local_30 = check_error;
      }
      else {
        local_30 = pcVar5;
        pcVar3 = (char *)var_4(0,"bad argument to %s_check directive.",5);
        var_5(pcVar3,pcVar6);
        pcVar5 = local_30;
      }
    }
  }
  var_15((char)pcVar5);
  var_6();
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (subscript_expression argument: (identifier) index: (number_literal))) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (subscript_expression argument: (identifier) index: (number_literal))) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void MASKED(int param_1)

{
  byte bVar1;
  char cVar2;
  undefined4 uVar3;
  int iVar4;
  undefined4 *puVar5;
  char *pcVar6;
  byte *pbVar7;
  byte *pbVar8;
  undefined1 uVar9;
  bool bVar10;
  bool bVar11;
  undefined1 uVar12;
  bool bVar13;
  byte bVar14;
  undefined1 auStack_3c [12];
  undefined4 *local_30;
  byte *local_20 [3];
  undefined4 uStack_14;
  
  bVar14 = 0;
  uStack_14 = 0x42089;
  if (param_1 == 0) {
    local_30 = &DAT_00088ed0;
    pcVar6 = "sse";
  }
  else {
    local_30 = &DAT_00080550;
    pcVar6 = "operand";
  }
  bVar1 = *DAT_00089978;
  if (bVar1 == 0x20) {
    bVar1 = DAT_00089978[1];
    DAT_00089978 = DAT_00089978 + 1;
  }
  if ((&DAT_000802c0)[bVar1] != '\0') {
    uVar3 = dcgettext(0,"missing argument for %s_check directive",5);
    FUN_0002bd60(uVar3,pcVar6);
    FUN_0002e4e0();
    return;
  }
  uVar9 = auStack_3c < (undefined1 *)0xc;
  uVar12 = &stack0x00000000 == (undefined1 *)0x48;
  cVar2 = FUN_000220a0(local_20);
  iVar4 = 5;
  puVar5 = (undefined4 *)(int)cVar2;
  pbVar7 = local_20[0];
  pbVar8 = &DAT_0005b33b;
  do {
    if (iVar4 == 0) break;
    iVar4 = iVar4 + -1;
    uVar9 = *pbVar7 < *pbVar8;
    uVar12 = *pbVar7 == *pbVar8;
    pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;
    pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;
  } while ((bool)uVar12);
  bVar10 = false;
  bVar13 = (!(bool)uVar9 && !(bool)uVar12) == (bool)uVar9;
  if (bVar13) {
    *local_30 = 0;
  }
  else {
    iVar4 = 8;
    pbVar7 = local_20[0];
    pbVar8 = (byte *)0x5b406;
    do {
      if (iVar4 == 0) break;
      iVar4 = iVar4 + -1;
      bVar10 = *pbVar7 < *pbVar8;
      bVar13 = *pbVar7 == *pbVar8;
      pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;
      pbVar8 = pbVar8 + (uint)bVar14 * -2 + 1;
    } while (bVar13);
    bVar11 = false;
    bVar10 = (!bVar10 && !bVar13) == bVar10;
    if (bVar10) {
      *local_30 = 1;
    }
    else {
      iVar4 = 6;
      pbVar7 = (byte *)0x5b41b;
      do {
        if (iVar4 == 0) break;
        iVar4 = iVar4 + -1;
        bVar11 = *local_20[0] < *pbVar7;
        bVar10 = *local_20[0] == *pbVar7;
        local_20[0] = local_20[0] + (uint)bVar14 * -2 + 1;
        pbVar7 = pbVar7 + (uint)bVar14 * -2 + 1;
      } while (bVar10);
      if ((!bVar11 && !bVar10) == bVar11) {
        *local_30 = 2;
      }
      else {
        local_30 = puVar5;
        uVar3 = dcgettext(0,"bad argument to %s_check directive.",5);
        FUN_0002bd60(uVar3,pcVar6);
        puVar5 = local_30;
      }
    }
  }
  FUN_000242c0(puVar5);
  FUN_0002e4e0();
  return;
}

