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

void dot_cfi_lsda(int ignored)

{
  char cVar1;
  fde_entry *pfVar2;
  uint uVar3;
  char *pcVar4;
  ulonglong uVar5;
  
  if (frchain_now->frch_cfi_data == (frch_cfi_data *)0x0) {
    pcVar4 = "CFI instruction used without previous .cfi_startproc";
  }
  else {
    pfVar2 = frchain_now->frch_cfi_data->cur_fde_data;
    uVar5 = get_absolute_expression();
    uVar3 = (uint)uVar5;
    if (uVar5 == 0xff) {
      demand_empty_rest_of_line();
      pfVar2->lsda_encoding = 0xff;
      return;
    }
    if (((((int)(uVar5 >> 0x20) == 0 && uVar3 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&
        (SBORROW4(uVar3 & 0x60,uVar3 & 0x60) == 4 < (uVar3 & 7))) && ((uVar3 & 7) != 1)) {
      if (*input_line_pointer == ',') {
        input_line_pointer = input_line_pointer + 1;
        pfVar2->lsda_encoding = (uchar)uVar5;
        expr(0,&pfVar2->lsda,expr_evaluate);
        cVar1 = (pfVar2->lsda).field_0x10;
        if (cVar1 == '\x02') {
          if ((uVar3 & 0x70) != 0x10) goto LAB_0001d86a;
        }
        else if (cVar1 == '\x03') {
LAB_0001d86a:
          pfVar2->lsda_encoding = (uchar)uVar5;
          demand_empty_rest_of_line();
          return;
        }
        pfVar2->lsda_encoding = 0xff;
        pcVar4 = "wrong second argument to .cfi_lsda";
      }
      else {
        pcVar4 = ".cfi_lsda requires encoding and symbol arguments";
        input_line_pointer = input_line_pointer + 1;
      }
    }
    else {
      pcVar4 = "invalid or unsupported encoding in .cfi_lsda";
    }
  }
  pcVar4 = (char *)dcgettext(0,pcVar4,5);
  as_bad(pcVar4);
  ignore_rest_of_line();
  return;
}



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

void FUN_0001d760(void)

{
  int iVar1;
  uint uVar2;
  char *pcVar3;
  undefined4 uVar4;
  ulonglong uVar5;
  
  if (*(int **)(DAT_00089a08 + 0x48) == (int *)0x0) {
    pcVar3 = "CFI instruction used without previous .cfi_startproc";
  }
  else {
    iVar1 = **(int **)(DAT_00089a08 + 0x48);
    uVar5 = FUN_0002d860();
    uVar2 = (uint)uVar5;
    if (uVar5 == 0xff) {
      FUN_0002e4e0();
      *(undefined1 *)(iVar1 + 0x15) = 0xff;
      return;
    }
    if (((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&
        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1)) {
      if (*DAT_00089978 == ',') {
        DAT_00089978 = DAT_00089978 + 1;
        *(char *)(iVar1 + 0x15) = (char)uVar5;
        FUN_000221d0(0,iVar1 + 0x30,0);
        if (*(char *)(iVar1 + 0x40) == '\x02') {
          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;
        }
        else if (*(char *)(iVar1 + 0x40) == '\x03') {
LAB_0001d86a:
          *(char *)(iVar1 + 0x15) = (char)uVar5;
          FUN_0002e4e0();
          return;
        }
        *(undefined1 *)(iVar1 + 0x15) = 0xff;
        pcVar3 = "wrong second argument to .cfi_lsda";
      }
      else {
        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";
        DAT_00089978 = DAT_00089978 + 1;
      }
    }
    else {
      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";
    }
  }
  uVar4 = dcgettext(0,pcVar3,5);
  FUN_0002bd60(uVar4);
  FUN_0002e290();
  return;
}


PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00016000
ADD EBX,0x62898
LEA EAX,[EBX + 0x9a08]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x48]
TEST EAX,EAX
JZ 0x0001d808
MOV EDI,dword ptr [EAX]
CALL 0x0002d860
MOV ESI,EAX
XOR AL,0xff
OR EAX,EDX
JZ 0x0001d818
MOV EAX,ESI
XOR AL,AL
OR EDX,EAX
JNZ 0x0001d7b3
MOV EAX,ESI
AND EAX,0x60
JNZ 0x0001d7b3
MOV EDX,ESI
MOV ECX,0x4
AND EDX,0x7
CMP ECX,EDX
SBB EAX,EAX
JGE 0x0001d7e0
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdd564]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
MOV dword ptr [ESP],EAX
CALL 0x0002bd60
CALL 0x0002e290
ADD ESP,0x10
POP EBX
POP ESI
POP EDI
RET
CMP EDX,0x1
JZ 0x0001d7b3
LEA EDX,[EBX + 0x9978]
MOV EAX,dword ptr [EDX]
LEA ECX,[EAX + 0x1]
MOV dword ptr [EDX],ECX
CMP byte ptr [EAX],0x2c
JZ 0x0001d828
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdd594]
PUSH 0x5
JMP 0x0001d7be
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdd52c]
PUSH 0x5
JMP 0x0001d7be
CALL 0x0002e4e0
MOV byte ptr [EDI + 0x15],0xff
JMP 0x0001d7d6
MOV EAX,ESI
SUB ESP,0x4
MOV byte ptr [EDI + 0x15],AL
LEA EAX,[EDI + 0x30]
PUSH 0x0
PUSH EAX
PUSH 0x0
CALL 0x000221d0
MOVZX EAX,byte ptr [EDI + 0x40]
ADD ESP,0x10
CMP AL,0x2
JZ 0x0001d860
CMP AL,0x3
JZ 0x0001d86a
SUB ESP,0x4
MOV byte ptr [EDI + 0x15],0xff
LEA EAX,[EBX + 0xfffdd5c8]
PUSH 0x5
JMP 0x0001d7be
MOV EAX,ESI
AND EAX,0x70
CMP EAX,0x10
JZ 0x0001d84c
MOV EAX,ESI
MOV byte ptr [EDI + 0x15],AL
CALL 0x0002e4e0
JMP 0x0001d7d6
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_0001d760(void)\n\n{\n  int iVar1;\n  uint uVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  ulonglong uVar5;\n  \n  if (*(int **)(DAT_00089a08 + 0x48) == (int *)0x0) {\n    pcVar3 = "CFI instruction used without previous .cfi_startproc";\n  }\n  else {\n    iVar1 = **(int **)(DAT_00089a08 + 0x48);\n    uVar5 = FUN_0002d860();\n    uVar2 = (uint)uVar5;\n    if (uVar5 == 0xff) {\n      FUN_0002e4e0();\n      *(undefined1 *)(iVar1 + 0x15) = 0xff;\n      return;\n    }\n    if (((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1)) {\n      if (*DAT_00089978 == ',') {\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }\n    }\n    else {\n      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";\n    }\n  }\n  uVar4 = dcgettext(0,pcVar3,5);\n  FUN_0002bd60(uVar4);\n  FUN_0002e290();\n  return;\n}\n\n" comment (function_definition "void FUN_0001d760(void)\n\n{\n  int iVar1;\n  uint uVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  ulonglong uVar5;\n  \n  if (*(int **)(DAT_00089a08 + 0x48) == (int *)0x0) {\n    pcVar3 = "CFI instruction used without previous .cfi_startproc";\n  }\n  else {\n    iVar1 = **(int **)(DAT_00089a08 + 0x48);\n    uVar5 = FUN_0002d860();\n    uVar2 = (uint)uVar5;\n    if (uVar5 == 0xff) {\n      FUN_0002e4e0();\n      *(undefined1 *)(iVar1 + 0x15) = 0xff;\n      return;\n    }\n    if (((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1)) {\n      if (*DAT_00089978 == ',') {\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }\n    }\n    else {\n      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";\n    }\n  }\n  uVar4 = dcgettext(0,pcVar3,5);\n  FUN_0002bd60(uVar4);\n  FUN_0002e290();\n  return;\n}" primitive_type (function_declarator "FUN_0001d760(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  ulonglong uVar5;\n  \n  if (*(int **)(DAT_00089a08 + 0x48) == (int *)0x0) {\n    pcVar3 = "CFI instruction used without previous .cfi_startproc";\n  }\n  else {\n    iVar1 = **(int **)(DAT_00089a08 + 0x48);\n    uVar5 = FUN_0002d860();\n    uVar2 = (uint)uVar5;\n    if (uVar5 == 0xff) {\n      FUN_0002e4e0();\n      *(undefined1 *)(iVar1 + 0x15) = 0xff;\n      return;\n    }\n    if (((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1)) {\n      if (*DAT_00089978 == ',') {\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }\n    }\n    else {\n      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";\n    }\n  }\n  uVar4 = dcgettext(0,pcVar3,5);\n  FUN_0002bd60(uVar4);\n  FUN_0002e290();\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "ulonglong uVar5;" type_identifier identifier ;) (if_statement "if (*(int **)(DAT_00089a08 + 0x48) == (int *)0x0) {\n    pcVar3 = "CFI instruction used without previous .cfi_startproc";\n  }\n  else {\n    iVar1 = **(int **)(DAT_00089a08 + 0x48);\n    uVar5 = FUN_0002d860();\n    uVar2 = (uint)uVar5;\n    if (uVar5 == 0xff) {\n      FUN_0002e4e0();\n      *(undefined1 *)(iVar1 + 0x15) = 0xff;\n      return;\n    }\n    if (((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1)) {\n      if (*DAT_00089978 == ',') {\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }\n    }\n    else {\n      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";\n    }\n  }" if (parenthesized_expression "(*(int **)(DAT_00089a08 + 0x48) == (int *)0x0)" ( (binary_expression "*(int **)(DAT_00089a08 + 0x48) == (int *)0x0" (pointer_expression "*(int **)(DAT_00089a08 + 0x48)" * (cast_expression "(int **)(DAT_00089a08 + 0x48)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_00089a08 + 0x48)" ( (binary_expression "DAT_00089a08 + 0x48" identifier + number_literal) )))) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar3 = "CFI instruction used without previous .cfi_startproc";\n  }" { (expression_statement "pcVar3 = "CFI instruction used without previous .cfi_startproc";" (assignment_expression "pcVar3 = "CFI instruction used without previous .cfi_startproc"" identifier = (string_literal ""CFI instruction used without previous .cfi_startproc"" " string_content ")) ;) }) (else_clause "else {\n    iVar1 = **(int **)(DAT_00089a08 + 0x48);\n    uVar5 = FUN_0002d860();\n    uVar2 = (uint)uVar5;\n    if (uVar5 == 0xff) {\n      FUN_0002e4e0();\n      *(undefined1 *)(iVar1 + 0x15) = 0xff;\n      return;\n    }\n    if (((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1)) {\n      if (*DAT_00089978 == ',') {\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }\n    }\n    else {\n      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";\n    }\n  }" else (compound_statement "{\n    iVar1 = **(int **)(DAT_00089a08 + 0x48);\n    uVar5 = FUN_0002d860();\n    uVar2 = (uint)uVar5;\n    if (uVar5 == 0xff) {\n      FUN_0002e4e0();\n      *(undefined1 *)(iVar1 + 0x15) = 0xff;\n      return;\n    }\n    if (((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1)) {\n      if (*DAT_00089978 == ',') {\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }\n    }\n    else {\n      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";\n    }\n  }" { (expression_statement "iVar1 = **(int **)(DAT_00089a08 + 0x48);" (assignment_expression "iVar1 = **(int **)(DAT_00089a08 + 0x48)" identifier = (pointer_expression "**(int **)(DAT_00089a08 + 0x48)" * (pointer_expression "*(int **)(DAT_00089a08 + 0x48)" * (cast_expression "(int **)(DAT_00089a08 + 0x48)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_00089a08 + 0x48)" ( (binary_expression "DAT_00089a08 + 0x48" identifier + number_literal) )))))) ;) (expression_statement "uVar5 = FUN_0002d860();" (assignment_expression "uVar5 = FUN_0002d860()" identifier = (call_expression "FUN_0002d860()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar2 = (uint)uVar5;" (assignment_expression "uVar2 = (uint)uVar5" identifier = (cast_expression "(uint)uVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar5 == 0xff) {\n      FUN_0002e4e0();\n      *(undefined1 *)(iVar1 + 0x15) = 0xff;\n      return;\n    }" if (parenthesized_expression "(uVar5 == 0xff)" ( (binary_expression "uVar5 == 0xff" identifier == number_literal) )) (compound_statement "{\n      FUN_0002e4e0();\n      *(undefined1 *)(iVar1 + 0x15) = 0xff;\n      return;\n    }" { (expression_statement "FUN_0002e4e0();" (call_expression "FUN_0002e4e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined1 *)(iVar1 + 0x15) = 0xff;" (assignment_expression "*(undefined1 *)(iVar1 + 0x15) = 0xff" (pointer_expression "*(undefined1 *)(iVar1 + 0x15)" * (cast_expression "(undefined1 *)(iVar1 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x15)" ( (binary_expression "iVar1 + 0x15" identifier + number_literal) )))) = number_literal) ;) (return_statement "return;" return ;) })) (if_statement "if (((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1)) {\n      if (*DAT_00089978 == ',') {\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }\n    }\n    else {\n      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";\n    }" if (parenthesized_expression "(((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1))" ( (binary_expression "((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1)" (parenthesized_expression "((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5))" ( (binary_expression "(((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)" (parenthesized_expression "(((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0))" ( (binary_expression "((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)" (parenthesized_expression "((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0)" ( (binary_expression "(int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0" (binary_expression "(int)(uVar5 >> 0x20) == 0" (cast_expression "(int)(uVar5 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar5 >> 0x20)" ( (binary_expression "uVar5 >> 0x20" identifier >> number_literal) ))) == number_literal) && (binary_expression "uVar2 >> 8 == 0" (binary_expression "uVar2 >> 8" identifier >> number_literal) == number_literal)) )) && (parenthesized_expression "((uVar5 & 0x60) == 0)" ( (binary_expression "(uVar5 & 0x60) == 0" (parenthesized_expression "(uVar5 & 0x60)" ( (binary_expression "uVar5 & 0x60" identifier & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((uVar2 & 7) < 5)" ( (binary_expression "(uVar2 & 7) < 5" (parenthesized_expression "(uVar2 & 7)" ( (binary_expression "uVar2 & 7" identifier & number_literal) )) < number_literal) ))) )) && (parenthesized_expression "((uVar2 & 7) != 1)" ( (binary_expression "(uVar2 & 7) != 1" (parenthesized_expression "(uVar2 & 7)" ( (binary_expression "uVar2 & 7" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      if (*DAT_00089978 == ',') {\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }\n    }" { (if_statement "if (*DAT_00089978 == ',') {\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }" if (parenthesized_expression "(*DAT_00089978 == ',')" ( (binary_expression "*DAT_00089978 == ','" (pointer_expression "*DAT_00089978" * identifier) == (char_literal "','" ' character ')) )) (compound_statement "{\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }" { (expression_statement "DAT_00089978 = DAT_00089978 + 1;" (assignment_expression "DAT_00089978 = DAT_00089978 + 1" identifier = (binary_expression "DAT_00089978 + 1" identifier + number_literal)) ;) (expression_statement "*(char *)(iVar1 + 0x15) = (char)uVar5;" (assignment_expression "*(char *)(iVar1 + 0x15) = (char)uVar5" (pointer_expression "*(char *)(iVar1 + 0x15)" * (cast_expression "(char *)(iVar1 + 0x15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x15)" ( (binary_expression "iVar1 + 0x15" identifier + number_literal) )))) = (cast_expression "(char)uVar5" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "FUN_000221d0(0,iVar1 + 0x30,0);" (call_expression "FUN_000221d0(0,iVar1 + 0x30,0)" identifier (argument_list "(0,iVar1 + 0x30,0)" ( number_literal , (binary_expression "iVar1 + 0x30" identifier + number_literal) , number_literal ))) ;) (if_statement "if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }" if (parenthesized_expression "(*(char *)(iVar1 + 0x40) == '\x02')" ( (binary_expression "*(char *)(iVar1 + 0x40) == '\x02'" (pointer_expression "*(char *)(iVar1 + 0x40)" * (cast_expression "(char *)(iVar1 + 0x40)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x40)" ( (binary_expression "iVar1 + 0x40" identifier + number_literal) )))) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }" { (if_statement "if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;" if (parenthesized_expression "((uVar2 & 0x70) != 0x10)" ( (binary_expression "(uVar2 & 0x70) != 0x10" (parenthesized_expression "(uVar2 & 0x70)" ( (binary_expression "uVar2 & 0x70" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001d86a;" goto statement_identifier ;)) }) (else_clause "else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }" else (if_statement "if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }" if (parenthesized_expression "(*(char *)(iVar1 + 0x40) == '\x03')" ( (binary_expression "*(char *)(iVar1 + 0x40) == '\x03'" (pointer_expression "*(char *)(iVar1 + 0x40)" * (cast_expression "(char *)(iVar1 + 0x40)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x40)" ( (binary_expression "iVar1 + 0x40" identifier + number_literal) )))) == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }" { (labeled_statement "LAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;" statement_identifier : (expression_statement "*(char *)(iVar1 + 0x15) = (char)uVar5;" (assignment_expression "*(char *)(iVar1 + 0x15) = (char)uVar5" (pointer_expression "*(char *)(iVar1 + 0x15)" * (cast_expression "(char *)(iVar1 + 0x15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x15)" ( (binary_expression "iVar1 + 0x15" identifier + number_literal) )))) = (cast_expression "(char)uVar5" ( (type_descriptor "char" primitive_type) ) identifier)) ;)) (expression_statement "FUN_0002e4e0();" (call_expression "FUN_0002e4e0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))) (expression_statement "*(undefined1 *)(iVar1 + 0x15) = 0xff;" (assignment_expression "*(undefined1 *)(iVar1 + 0x15) = 0xff" (pointer_expression "*(undefined1 *)(iVar1 + 0x15)" * (cast_expression "(undefined1 *)(iVar1 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x15)" ( (binary_expression "iVar1 + 0x15" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar3 = "wrong second argument to .cfi_lsda";" (assignment_expression "pcVar3 = "wrong second argument to .cfi_lsda"" identifier = (string_literal ""wrong second argument to .cfi_lsda"" " string_content ")) ;) }) (else_clause "else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }" else (compound_statement "{\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }" { (expression_statement "pcVar3 = ".cfi_lsda requires encoding and symbol arguments";" (assignment_expression "pcVar3 = ".cfi_lsda requires encoding and symbol arguments"" identifier = (string_literal "".cfi_lsda requires encoding and symbol arguments"" " string_content ")) ;) (expression_statement "DAT_00089978 = DAT_00089978 + 1;" (assignment_expression "DAT_00089978 = DAT_00089978 + 1" identifier = (binary_expression "DAT_00089978 + 1" identifier + number_literal)) ;) }))) }) (else_clause "else {\n      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";\n    }" else (compound_statement "{\n      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";\n    }" { (expression_statement "pcVar3 = "invalid or unsupported encoding in .cfi_lsda";" (assignment_expression "pcVar3 = "invalid or unsupported encoding in .cfi_lsda"" identifier = (string_literal ""invalid or unsupported encoding in .cfi_lsda"" " string_content ")) ;) }))) }))) (expression_statement "uVar4 = dcgettext(0,pcVar3,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar3,5)" identifier = (call_expression "dcgettext(0,pcVar3,5)" identifier (argument_list "(0,pcVar3,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar4);" (call_expression "FUN_0002bd60(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "FUN_0002e290();" (call_expression "FUN_0002e290()" 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 dot_cfi_lsda(int ignored)\n\n{\n  char cVar1;\n  fde_entry *pfVar2;\n  uint uVar3;\n  char *pcVar4;\n  ulonglong uVar5;\n  \n  if (frchain_now->frch_cfi_data == (frch_cfi_data *)0x0) {\n    pcVar4 = "CFI instruction used without previous .cfi_startproc";\n  }\n  else {\n    pfVar2 = frchain_now->frch_cfi_data->cur_fde_data;\n    uVar5 = get_absolute_expression();\n    uVar3 = (uint)uVar5;\n    if (uVar5 == 0xff) {\n      demand_empty_rest_of_line();\n      pfVar2->lsda_encoding = 0xff;\n      return;\n    }\n    if (((((int)(uVar5 >> 0x20) == 0 && uVar3 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        (SBORROW4(uVar3 & 0x60,uVar3 & 0x60) == 4 < (uVar3 & 7))) && ((uVar3 & 7) != 1)) {\n      if (*input_line_pointer == ',') {\n        input_line_pointer = input_line_pointer + 1;\n        pfVar2->lsda_encoding = (uchar)uVar5;\n        expr(0,&pfVar2->lsda,expr_evaluate);\n        cVar1 = (pfVar2->lsda).field_0x10;\n        if (cVar1 == '\x02') {\n          if ((uVar3 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (cVar1 == '\x03') {\nLAB_0001d86a:\n          pfVar2->lsda_encoding = (uchar)uVar5;\n          demand_empty_rest_of_line();\n          return;\n        }\n        pfVar2->lsda_encoding = 0xff;\n        pcVar4 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar4 = ".cfi_lsda requires encoding and symbol arguments";\n        input_line_pointer = input_line_pointer + 1;\n      }\n    }\n    else {\n      pcVar4 = "invalid or unsupported encoding in .cfi_lsda";\n    }\n  }\n  pcVar4 = (char *)dcgettext(0,pcVar4,5);\n  as_bad(pcVar4);\n  ignore_rest_of_line();\n  return;\n}\n\n" comment comment (function_definition "void dot_cfi_lsda(int ignored)\n\n{\n  char cVar1;\n  fde_entry *pfVar2;\n  uint uVar3;\n  char *pcVar4;\n  ulonglong uVar5;\n  \n  if (frchain_now->frch_cfi_data == (frch_cfi_data *)0x0) {\n    pcVar4 = "CFI instruction used without previous .cfi_startproc";\n  }\n  else {\n    pfVar2 = frchain_now->frch_cfi_data->cur_fde_data;\n    uVar5 = get_absolute_expression();\n    uVar3 = (uint)uVar5;\n    if (uVar5 == 0xff) {\n      demand_empty_rest_of_line();\n      pfVar2->lsda_encoding = 0xff;\n      return;\n    }\n    if (((((int)(uVar5 >> 0x20) == 0 && uVar3 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        (SBORROW4(uVar3 & 0x60,uVar3 & 0x60) == 4 < (uVar3 & 7))) && ((uVar3 & 7) != 1)) {\n      if (*input_line_pointer == ',') {\n        input_line_pointer = input_line_pointer + 1;\n        pfVar2->lsda_encoding = (uchar)uVar5;\n        expr(0,&pfVar2->lsda,expr_evaluate);\n        cVar1 = (pfVar2->lsda).field_0x10;\n        if (cVar1 == '\x02') {\n          if ((uVar3 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (cVar1 == '\x03') {\nLAB_0001d86a:\n          pfVar2->lsda_encoding = (uchar)uVar5;\n          demand_empty_rest_of_line();\n          return;\n        }\n        pfVar2->lsda_encoding = 0xff;\n        pcVar4 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar4 = ".cfi_lsda requires encoding and symbol arguments";\n        input_line_pointer = input_line_pointer + 1;\n      }\n    }\n    else {\n      pcVar4 = "invalid or unsupported encoding in .cfi_lsda";\n    }\n  }\n  pcVar4 = (char *)dcgettext(0,pcVar4,5);\n  as_bad(pcVar4);\n  ignore_rest_of_line();\n  return;\n}" primitive_type (function_declarator "dot_cfi_lsda(int ignored)" identifier (parameter_list "(int ignored)" ( (parameter_declaration "int ignored" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  fde_entry *pfVar2;\n  uint uVar3;\n  char *pcVar4;\n  ulonglong uVar5;\n  \n  if (frchain_now->frch_cfi_data == (frch_cfi_data *)0x0) {\n    pcVar4 = "CFI instruction used without previous .cfi_startproc";\n  }\n  else {\n    pfVar2 = frchain_now->frch_cfi_data->cur_fde_data;\n    uVar5 = get_absolute_expression();\n    uVar3 = (uint)uVar5;\n    if (uVar5 == 0xff) {\n      demand_empty_rest_of_line();\n      pfVar2->lsda_encoding = 0xff;\n      return;\n    }\n    if (((((int)(uVar5 >> 0x20) == 0 && uVar3 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        (SBORROW4(uVar3 & 0x60,uVar3 & 0x60) == 4 < (uVar3 & 7))) && ((uVar3 & 7) != 1)) {\n      if (*input_line_pointer == ',') {\n        input_line_pointer = input_line_pointer + 1;\n        pfVar2->lsda_encoding = (uchar)uVar5;\n        expr(0,&pfVar2->lsda,expr_evaluate);\n        cVar1 = (pfVar2->lsda).field_0x10;\n        if (cVar1 == '\x02') {\n          if ((uVar3 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (cVar1 == '\x03') {\nLAB_0001d86a:\n          pfVar2->lsda_encoding = (uchar)uVar5;\n          demand_empty_rest_of_line();\n          return;\n        }\n        pfVar2->lsda_encoding = 0xff;\n        pcVar4 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar4 = ".cfi_lsda requires encoding and symbol arguments";\n        input_line_pointer = input_line_pointer + 1;\n      }\n    }\n    else {\n      pcVar4 = "invalid or unsupported encoding in .cfi_lsda";\n    }\n  }\n  pcVar4 = (char *)dcgettext(0,pcVar4,5);\n  as_bad(pcVar4);\n  ignore_rest_of_line();\n  return;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "fde_entry *pfVar2;" type_identifier (pointer_declarator "*pfVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "ulonglong uVar5;" type_identifier identifier ;) (if_statement "if (frchain_now->frch_cfi_data == (frch_cfi_data *)0x0) {\n    pcVar4 = "CFI instruction used without previous .cfi_startproc";\n  }\n  else {\n    pfVar2 = frchain_now->frch_cfi_data->cur_fde_data;\n    uVar5 = get_absolute_expression();\n    uVar3 = (uint)uVar5;\n    if (uVar5 == 0xff) {\n      demand_empty_rest_of_line();\n      pfVar2->lsda_encoding = 0xff;\n      return;\n    }\n    if (((((int)(uVar5 >> 0x20) == 0 && uVar3 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        (SBORROW4(uVar3 & 0x60,uVar3 & 0x60) == 4 < (uVar3 & 7))) && ((uVar3 & 7) != 1)) {\n      if (*input_line_pointer == ',') {\n        input_line_pointer = input_line_pointer + 1;\n        pfVar2->lsda_encoding = (uchar)uVar5;\n        expr(0,&pfVar2->lsda,expr_evaluate);\n        cVar1 = (pfVar2->lsda).field_0x10;\n        if (cVar1 == '\x02') {\n          if ((uVar3 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (cVar1 == '\x03') {\nLAB_0001d86a:\n          pfVar2->lsda_encoding = (uchar)uVar5;\n          demand_empty_rest_of_line();\n          return;\n        }\n        pfVar2->lsda_encoding = 0xff;\n        pcVar4 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar4 = ".cfi_lsda requires encoding and symbol arguments";\n        input_line_pointer = input_line_pointer + 1;\n      }\n    }\n    else {\n      pcVar4 = "invalid or unsupported encoding in .cfi_lsda";\n    }\n  }" if (parenthesized_expression "(frchain_now->frch_cfi_data == (frch_cfi_data *)0x0)" ( (binary_expression "frchain_now->frch_cfi_data == (frch_cfi_data *)0x0" (field_expression "frchain_now->frch_cfi_data" identifier -> field_identifier) == (cast_expression "(frch_cfi_data *)0x0" ( (type_descriptor "frch_cfi_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar4 = "CFI instruction used without previous .cfi_startproc";\n  }" { (expression_statement "pcVar4 = "CFI instruction used without previous .cfi_startproc";" (assignment_expression "pcVar4 = "CFI instruction used without previous .cfi_startproc"" identifier = (string_literal ""CFI instruction used without previous .cfi_startproc"" " string_content ")) ;) }) (else_clause "else {\n    pfVar2 = frchain_now->frch_cfi_data->cur_fde_data;\n    uVar5 = get_absolute_expression();\n    uVar3 = (uint)uVar5;\n    if (uVar5 == 0xff) {\n      demand_empty_rest_of_line();\n      pfVar2->lsda_encoding = 0xff;\n      return;\n    }\n    if (((((int)(uVar5 >> 0x20) == 0 && uVar3 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        (SBORROW4(uVar3 & 0x60,uVar3 & 0x60) == 4 < (uVar3 & 7))) && ((uVar3 & 7) != 1)) {\n      if (*input_line_pointer == ',') {\n        input_line_pointer = input_line_pointer + 1;\n        pfVar2->lsda_encoding = (uchar)uVar5;\n        expr(0,&pfVar2->lsda,expr_evaluate);\n        cVar1 = (pfVar2->lsda).field_0x10;\n        if (cVar1 == '\x02') {\n          if ((uVar3 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (cVar1 == '\x03') {\nLAB_0001d86a:\n          pfVar2->lsda_encoding = (uchar)uVar5;\n          demand_empty_rest_of_line();\n          return;\n        }\n        pfVar2->lsda_encoding = 0xff;\n        pcVar4 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar4 = ".cfi_lsda requires encoding and symbol arguments";\n        input_line_pointer = input_line_pointer + 1;\n      }\n    }\n    else {\n      pcVar4 = "invalid or unsupported encoding in .cfi_lsda";\n    }\n  }" else (compound_statement "{\n    pfVar2 = frchain_now->frch_cfi_data->cur_fde_data;\n    uVar5 = get_absolute_expression();\n    uVar3 = (uint)uVar5;\n    if (uVar5 == 0xff) {\n      demand_empty_rest_of_line();\n      pfVar2->lsda_encoding = 0xff;\n      return;\n    }\n    if (((((int)(uVar5 >> 0x20) == 0 && uVar3 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        (SBORROW4(uVar3 & 0x60,uVar3 & 0x60) == 4 < (uVar3 & 7))) && ((uVar3 & 7) != 1)) {\n      if (*input_line_pointer == ',') {\n        input_line_pointer = input_line_pointer + 1;\n        pfVar2->lsda_encoding = (uchar)uVar5;\n        expr(0,&pfVar2->lsda,expr_evaluate);\n        cVar1 = (pfVar2->lsda).field_0x10;\n        if (cVar1 == '\x02') {\n          if ((uVar3 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (cVar1 == '\x03') {\nLAB_0001d86a:\n          pfVar2->lsda_encoding = (uchar)uVar5;\n          demand_empty_rest_of_line();\n          return;\n        }\n        pfVar2->lsda_encoding = 0xff;\n        pcVar4 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar4 = ".cfi_lsda requires encoding and symbol arguments";\n        input_line_pointer = input_line_pointer + 1;\n      }\n    }\n    else {\n      pcVar4 = "invalid or unsupported encoding in .cfi_lsda";\n    }\n  }" { (expression_statement "pfVar2 = frchain_now->frch_cfi_data->cur_fde_data;" (assignment_expression "pfVar2 = frchain_now->frch_cfi_data->cur_fde_data" identifier = (field_expression "frchain_now->frch_cfi_data->cur_fde_data" (field_expression "frchain_now->frch_cfi_data" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "uVar5 = get_absolute_expression();" (assignment_expression "uVar5 = get_absolute_expression()" identifier = (call_expression "get_absolute_expression()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar3 = (uint)uVar5;" (assignment_expression "uVar3 = (uint)uVar5" identifier = (cast_expression "(uint)uVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar5 == 0xff) {\n      demand_empty_rest_of_line();\n      pfVar2->lsda_encoding = 0xff;\n      return;\n    }" if (parenthesized_expression "(uVar5 == 0xff)" ( (binary_expression "uVar5 == 0xff" identifier == number_literal) )) (compound_statement "{\n      demand_empty_rest_of_line();\n      pfVar2->lsda_encoding = 0xff;\n      return;\n    }" { (expression_statement "demand_empty_rest_of_line();" (call_expression "demand_empty_rest_of_line()" identifier (argument_list "()" ( ))) ;) (expression_statement "pfVar2->lsda_encoding = 0xff;" (assignment_expression "pfVar2->lsda_encoding = 0xff" (field_expression "pfVar2->lsda_encoding" identifier -> field_identifier) = number_literal) ;) (return_statement "return;" return ;) })) (if_statement "if (((((int)(uVar5 >> 0x20) == 0 && uVar3 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        (SBORROW4(uVar3 & 0x60,uVar3 & 0x60) == 4 < (uVar3 & 7))) && ((uVar3 & 7) != 1)) {\n      if (*input_line_pointer == ',') {\n        input_line_pointer = input_line_pointer + 1;\n        pfVar2->lsda_encoding = (uchar)uVar5;\n        expr(0,&pfVar2->lsda,expr_evaluate);\n        cVar1 = (pfVar2->lsda).field_0x10;\n        if (cVar1 == '\x02') {\n          if ((uVar3 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (cVar1 == '\x03') {\nLAB_0001d86a:\n          pfVar2->lsda_encoding = (uchar)uVar5;\n          demand_empty_rest_of_line();\n          return;\n        }\n        pfVar2->lsda_encoding = 0xff;\n        pcVar4 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar4 = ".cfi_lsda requires encoding and symbol arguments";\n        input_line_pointer = input_line_pointer + 1;\n      }\n    }\n    else {\n      pcVar4 = "invalid or unsupported encoding in .cfi_lsda";\n    }" if (parenthesized_expression "(((((int)(uVar5 >> 0x20) == 0 && uVar3 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        (SBORROW4(uVar3 & 0x60,uVar3 & 0x60) == 4 < (uVar3 & 7))) && ((uVar3 & 7) != 1))" ( (binary_expression "((((int)(uVar5 >> 0x20) == 0 && uVar3 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        (SBORROW4(uVar3 & 0x60,uVar3 & 0x60) == 4 < (uVar3 & 7))) && ((uVar3 & 7) != 1)" (parenthesized_expression "((((int)(uVar5 >> 0x20) == 0 && uVar3 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        (SBORROW4(uVar3 & 0x60,uVar3 & 0x60) == 4 < (uVar3 & 7)))" ( (binary_expression "(((int)(uVar5 >> 0x20) == 0 && uVar3 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        (SBORROW4(uVar3 & 0x60,uVar3 & 0x60) == 4 < (uVar3 & 7))" (parenthesized_expression "(((int)(uVar5 >> 0x20) == 0 && uVar3 >> 8 == 0) && ((uVar5 & 0x60) == 0))" ( (binary_expression "((int)(uVar5 >> 0x20) == 0 && uVar3 >> 8 == 0) && ((uVar5 & 0x60) == 0)" (parenthesized_expression "((int)(uVar5 >> 0x20) == 0 && uVar3 >> 8 == 0)" ( (binary_expression "(int)(uVar5 >> 0x20) == 0 && uVar3 >> 8 == 0" (binary_expression "(int)(uVar5 >> 0x20) == 0" (cast_expression "(int)(uVar5 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar5 >> 0x20)" ( (binary_expression "uVar5 >> 0x20" identifier >> number_literal) ))) == number_literal) && (binary_expression "uVar3 >> 8 == 0" (binary_expression "uVar3 >> 8" identifier >> number_literal) == number_literal)) )) && (parenthesized_expression "((uVar5 & 0x60) == 0)" ( (binary_expression "(uVar5 & 0x60) == 0" (parenthesized_expression "(uVar5 & 0x60)" ( (binary_expression "uVar5 & 0x60" identifier & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(SBORROW4(uVar3 & 0x60,uVar3 & 0x60) == 4 < (uVar3 & 7))" ( (binary_expression "SBORROW4(uVar3 & 0x60,uVar3 & 0x60) == 4 < (uVar3 & 7)" (call_expression "SBORROW4(uVar3 & 0x60,uVar3 & 0x60)" identifier (argument_list "(uVar3 & 0x60,uVar3 & 0x60)" ( (binary_expression "uVar3 & 0x60" identifier & number_literal) , (binary_expression "uVar3 & 0x60" identifier & number_literal) ))) == (binary_expression "4 < (uVar3 & 7)" number_literal < (parenthesized_expression "(uVar3 & 7)" ( (binary_expression "uVar3 & 7" identifier & number_literal) )))) ))) )) && (parenthesized_expression "((uVar3 & 7) != 1)" ( (binary_expression "(uVar3 & 7) != 1" (parenthesized_expression "(uVar3 & 7)" ( (binary_expression "uVar3 & 7" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      if (*input_line_pointer == ',') {\n        input_line_pointer = input_line_pointer + 1;\n        pfVar2->lsda_encoding = (uchar)uVar5;\n        expr(0,&pfVar2->lsda,expr_evaluate);\n        cVar1 = (pfVar2->lsda).field_0x10;\n        if (cVar1 == '\x02') {\n          if ((uVar3 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (cVar1 == '\x03') {\nLAB_0001d86a:\n          pfVar2->lsda_encoding = (uchar)uVar5;\n          demand_empty_rest_of_line();\n          return;\n        }\n        pfVar2->lsda_encoding = 0xff;\n        pcVar4 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar4 = ".cfi_lsda requires encoding and symbol arguments";\n        input_line_pointer = input_line_pointer + 1;\n      }\n    }" { (if_statement "if (*input_line_pointer == ',') {\n        input_line_pointer = input_line_pointer + 1;\n        pfVar2->lsda_encoding = (uchar)uVar5;\n        expr(0,&pfVar2->lsda,expr_evaluate);\n        cVar1 = (pfVar2->lsda).field_0x10;\n        if (cVar1 == '\x02') {\n          if ((uVar3 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (cVar1 == '\x03') {\nLAB_0001d86a:\n          pfVar2->lsda_encoding = (uchar)uVar5;\n          demand_empty_rest_of_line();\n          return;\n        }\n        pfVar2->lsda_encoding = 0xff;\n        pcVar4 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar4 = ".cfi_lsda requires encoding and symbol arguments";\n        input_line_pointer = input_line_pointer + 1;\n      }" if (parenthesized_expression "(*input_line_pointer == ',')" ( (binary_expression "*input_line_pointer == ','" (pointer_expression "*input_line_pointer" * identifier) == (char_literal "','" ' character ')) )) (compound_statement "{\n        input_line_pointer = input_line_pointer + 1;\n        pfVar2->lsda_encoding = (uchar)uVar5;\n        expr(0,&pfVar2->lsda,expr_evaluate);\n        cVar1 = (pfVar2->lsda).field_0x10;\n        if (cVar1 == '\x02') {\n          if ((uVar3 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (cVar1 == '\x03') {\nLAB_0001d86a:\n          pfVar2->lsda_encoding = (uchar)uVar5;\n          demand_empty_rest_of_line();\n          return;\n        }\n        pfVar2->lsda_encoding = 0xff;\n        pcVar4 = "wrong second argument to .cfi_lsda";\n      }" { (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)) ;) (expression_statement "pfVar2->lsda_encoding = (uchar)uVar5;" (assignment_expression "pfVar2->lsda_encoding = (uchar)uVar5" (field_expression "pfVar2->lsda_encoding" identifier -> field_identifier) = (cast_expression "(uchar)uVar5" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "expr(0,&pfVar2->lsda,expr_evaluate);" (call_expression "expr(0,&pfVar2->lsda,expr_evaluate)" identifier (argument_list "(0,&pfVar2->lsda,expr_evaluate)" ( number_literal , (pointer_expression "&pfVar2->lsda" & (field_expression "pfVar2->lsda" identifier -> field_identifier)) , identifier ))) ;) (expression_statement "cVar1 = (pfVar2->lsda).field_0x10;" (assignment_expression "cVar1 = (pfVar2->lsda).field_0x10" identifier = (field_expression "(pfVar2->lsda).field_0x10" (parenthesized_expression "(pfVar2->lsda)" ( (field_expression "pfVar2->lsda" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (cVar1 == '\x02') {\n          if ((uVar3 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (cVar1 == '\x03') {\nLAB_0001d86a:\n          pfVar2->lsda_encoding = (uchar)uVar5;\n          demand_empty_rest_of_line();\n          return;\n        }" if (parenthesized_expression "(cVar1 == '\x02')" ( (binary_expression "cVar1 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n          if ((uVar3 & 0x70) != 0x10) goto LAB_0001d86a;\n        }" { (if_statement "if ((uVar3 & 0x70) != 0x10) goto LAB_0001d86a;" if (parenthesized_expression "((uVar3 & 0x70) != 0x10)" ( (binary_expression "(uVar3 & 0x70) != 0x10" (parenthesized_expression "(uVar3 & 0x70)" ( (binary_expression "uVar3 & 0x70" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001d86a;" goto statement_identifier ;)) }) (else_clause "else if (cVar1 == '\x03') {\nLAB_0001d86a:\n          pfVar2->lsda_encoding = (uchar)uVar5;\n          demand_empty_rest_of_line();\n          return;\n        }" else (if_statement "if (cVar1 == '\x03') {\nLAB_0001d86a:\n          pfVar2->lsda_encoding = (uchar)uVar5;\n          demand_empty_rest_of_line();\n          return;\n        }" if (parenthesized_expression "(cVar1 == '\x03')" ( (binary_expression "cVar1 == '\x03'" identifier == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0001d86a:\n          pfVar2->lsda_encoding = (uchar)uVar5;\n          demand_empty_rest_of_line();\n          return;\n        }" { (labeled_statement "LAB_0001d86a:\n          pfVar2->lsda_encoding = (uchar)uVar5;" statement_identifier : (expression_statement "pfVar2->lsda_encoding = (uchar)uVar5;" (assignment_expression "pfVar2->lsda_encoding = (uchar)uVar5" (field_expression "pfVar2->lsda_encoding" identifier -> field_identifier) = (cast_expression "(uchar)uVar5" ( (type_descriptor "uchar" type_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 "pfVar2->lsda_encoding = 0xff;" (assignment_expression "pfVar2->lsda_encoding = 0xff" (field_expression "pfVar2->lsda_encoding" identifier -> field_identifier) = number_literal) ;) (expression_statement "pcVar4 = "wrong second argument to .cfi_lsda";" (assignment_expression "pcVar4 = "wrong second argument to .cfi_lsda"" identifier = (string_literal ""wrong second argument to .cfi_lsda"" " string_content ")) ;) }) (else_clause "else {\n        pcVar4 = ".cfi_lsda requires encoding and symbol arguments";\n        input_line_pointer = input_line_pointer + 1;\n      }" else (compound_statement "{\n        pcVar4 = ".cfi_lsda requires encoding and symbol arguments";\n        input_line_pointer = input_line_pointer + 1;\n      }" { (expression_statement "pcVar4 = ".cfi_lsda requires encoding and symbol arguments";" (assignment_expression "pcVar4 = ".cfi_lsda requires encoding and symbol arguments"" identifier = (string_literal "".cfi_lsda requires encoding and symbol arguments"" " string_content ")) ;) (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)) ;) }))) }) (else_clause "else {\n      pcVar4 = "invalid or unsupported encoding in .cfi_lsda";\n    }" else (compound_statement "{\n      pcVar4 = "invalid or unsupported encoding in .cfi_lsda";\n    }" { (expression_statement "pcVar4 = "invalid or unsupported encoding in .cfi_lsda";" (assignment_expression "pcVar4 = "invalid or unsupported encoding in .cfi_lsda"" identifier = (string_literal ""invalid or unsupported encoding in .cfi_lsda"" " string_content ")) ;) }))) }))) (expression_statement "pcVar4 = (char *)dcgettext(0,pcVar4,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,pcVar4,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar4,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar4,5)" identifier (argument_list "(0,pcVar4,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "as_bad(pcVar4);" (call_expression "as_bad(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "ignore_rest_of_line();" (call_expression "ignore_rest_of_line()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0001d760(void)\n\n{\n  int iVar1;\n  uint uVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  ulonglong uVar5;\n  \n  if (*(int **)(DAT_00089a08 + 0x48) == (int *)0x0) {\n    pcVar3 = "CFI instruction used without previous .cfi_startproc";\n  }\n  else {\n    iVar1 = **(int **)(DAT_00089a08 + 0x48);\n    uVar5 = FUN_0002d860();\n    uVar2 = (uint)uVar5;\n    if (uVar5 == 0xff) {\n      FUN_0002e4e0();\n      *(undefined1 *)(iVar1 + 0x15) = 0xff;\n      return;\n    }\n    if (((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1)) {\n      if (*DAT_00089978 == ',') {\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }\n    }\n    else {\n      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";\n    }\n  }\n  uVar4 = dcgettext(0,pcVar3,5);\n  FUN_0002bd60(uVar4);\n  FUN_0002e290();\n  return;\n}\n\n" (function_definition "void FUN_0001d760(void)\n\n{\n  int iVar1;\n  uint uVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  ulonglong uVar5;\n  \n  if (*(int **)(DAT_00089a08 + 0x48) == (int *)0x0) {\n    pcVar3 = "CFI instruction used without previous .cfi_startproc";\n  }\n  else {\n    iVar1 = **(int **)(DAT_00089a08 + 0x48);\n    uVar5 = FUN_0002d860();\n    uVar2 = (uint)uVar5;\n    if (uVar5 == 0xff) {\n      FUN_0002e4e0();\n      *(undefined1 *)(iVar1 + 0x15) = 0xff;\n      return;\n    }\n    if (((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1)) {\n      if (*DAT_00089978 == ',') {\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }\n    }\n    else {\n      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";\n    }\n  }\n  uVar4 = dcgettext(0,pcVar3,5);\n  FUN_0002bd60(uVar4);\n  FUN_0002e290();\n  return;\n}" primitive_type (function_declarator "FUN_0001d760(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  ulonglong uVar5;\n  \n  if (*(int **)(DAT_00089a08 + 0x48) == (int *)0x0) {\n    pcVar3 = "CFI instruction used without previous .cfi_startproc";\n  }\n  else {\n    iVar1 = **(int **)(DAT_00089a08 + 0x48);\n    uVar5 = FUN_0002d860();\n    uVar2 = (uint)uVar5;\n    if (uVar5 == 0xff) {\n      FUN_0002e4e0();\n      *(undefined1 *)(iVar1 + 0x15) = 0xff;\n      return;\n    }\n    if (((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1)) {\n      if (*DAT_00089978 == ',') {\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }\n    }\n    else {\n      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";\n    }\n  }\n  uVar4 = dcgettext(0,pcVar3,5);\n  FUN_0002bd60(uVar4);\n  FUN_0002e290();\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "ulonglong uVar5;" type_identifier identifier ;) (if_statement "if (*(int **)(DAT_00089a08 + 0x48) == (int *)0x0) {\n    pcVar3 = "CFI instruction used without previous .cfi_startproc";\n  }\n  else {\n    iVar1 = **(int **)(DAT_00089a08 + 0x48);\n    uVar5 = FUN_0002d860();\n    uVar2 = (uint)uVar5;\n    if (uVar5 == 0xff) {\n      FUN_0002e4e0();\n      *(undefined1 *)(iVar1 + 0x15) = 0xff;\n      return;\n    }\n    if (((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1)) {\n      if (*DAT_00089978 == ',') {\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }\n    }\n    else {\n      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";\n    }\n  }" if (parenthesized_expression "(*(int **)(DAT_00089a08 + 0x48) == (int *)0x0)" ( (binary_expression "*(int **)(DAT_00089a08 + 0x48) == (int *)0x0" (pointer_expression "*(int **)(DAT_00089a08 + 0x48)" * (cast_expression "(int **)(DAT_00089a08 + 0x48)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_00089a08 + 0x48)" ( (binary_expression "DAT_00089a08 + 0x48" identifier + number_literal) )))) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar3 = "CFI instruction used without previous .cfi_startproc";\n  }" { (expression_statement "pcVar3 = "CFI instruction used without previous .cfi_startproc";" (assignment_expression "pcVar3 = "CFI instruction used without previous .cfi_startproc"" identifier = (string_literal ""CFI instruction used without previous .cfi_startproc"" " string_content ")) ;) }) (else_clause "else {\n    iVar1 = **(int **)(DAT_00089a08 + 0x48);\n    uVar5 = FUN_0002d860();\n    uVar2 = (uint)uVar5;\n    if (uVar5 == 0xff) {\n      FUN_0002e4e0();\n      *(undefined1 *)(iVar1 + 0x15) = 0xff;\n      return;\n    }\n    if (((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1)) {\n      if (*DAT_00089978 == ',') {\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }\n    }\n    else {\n      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";\n    }\n  }" else (compound_statement "{\n    iVar1 = **(int **)(DAT_00089a08 + 0x48);\n    uVar5 = FUN_0002d860();\n    uVar2 = (uint)uVar5;\n    if (uVar5 == 0xff) {\n      FUN_0002e4e0();\n      *(undefined1 *)(iVar1 + 0x15) = 0xff;\n      return;\n    }\n    if (((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1)) {\n      if (*DAT_00089978 == ',') {\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }\n    }\n    else {\n      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";\n    }\n  }" { (expression_statement "iVar1 = **(int **)(DAT_00089a08 + 0x48);" (assignment_expression "iVar1 = **(int **)(DAT_00089a08 + 0x48)" identifier = (pointer_expression "**(int **)(DAT_00089a08 + 0x48)" * (pointer_expression "*(int **)(DAT_00089a08 + 0x48)" * (cast_expression "(int **)(DAT_00089a08 + 0x48)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_00089a08 + 0x48)" ( (binary_expression "DAT_00089a08 + 0x48" identifier + number_literal) )))))) ;) (expression_statement "uVar5 = FUN_0002d860();" (assignment_expression "uVar5 = FUN_0002d860()" identifier = (call_expression "FUN_0002d860()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar2 = (uint)uVar5;" (assignment_expression "uVar2 = (uint)uVar5" identifier = (cast_expression "(uint)uVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar5 == 0xff) {\n      FUN_0002e4e0();\n      *(undefined1 *)(iVar1 + 0x15) = 0xff;\n      return;\n    }" if (parenthesized_expression "(uVar5 == 0xff)" ( (binary_expression "uVar5 == 0xff" identifier == number_literal) )) (compound_statement "{\n      FUN_0002e4e0();\n      *(undefined1 *)(iVar1 + 0x15) = 0xff;\n      return;\n    }" { (expression_statement "FUN_0002e4e0();" (call_expression "FUN_0002e4e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined1 *)(iVar1 + 0x15) = 0xff;" (assignment_expression "*(undefined1 *)(iVar1 + 0x15) = 0xff" (pointer_expression "*(undefined1 *)(iVar1 + 0x15)" * (cast_expression "(undefined1 *)(iVar1 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x15)" ( (binary_expression "iVar1 + 0x15" identifier + number_literal) )))) = number_literal) ;) (return_statement "return;" return ;) })) (if_statement "if (((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1)) {\n      if (*DAT_00089978 == ',') {\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }\n    }\n    else {\n      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";\n    }" if (parenthesized_expression "(((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1))" ( (binary_expression "((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1)" (parenthesized_expression "((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5))" ( (binary_expression "(((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)" (parenthesized_expression "(((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0))" ( (binary_expression "((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)" (parenthesized_expression "((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0)" ( (binary_expression "(int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0" (binary_expression "(int)(uVar5 >> 0x20) == 0" (cast_expression "(int)(uVar5 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar5 >> 0x20)" ( (binary_expression "uVar5 >> 0x20" identifier >> number_literal) ))) == number_literal) && (binary_expression "uVar2 >> 8 == 0" (binary_expression "uVar2 >> 8" identifier >> number_literal) == number_literal)) )) && (parenthesized_expression "((uVar5 & 0x60) == 0)" ( (binary_expression "(uVar5 & 0x60) == 0" (parenthesized_expression "(uVar5 & 0x60)" ( (binary_expression "uVar5 & 0x60" identifier & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((uVar2 & 7) < 5)" ( (binary_expression "(uVar2 & 7) < 5" (parenthesized_expression "(uVar2 & 7)" ( (binary_expression "uVar2 & 7" identifier & number_literal) )) < number_literal) ))) )) && (parenthesized_expression "((uVar2 & 7) != 1)" ( (binary_expression "(uVar2 & 7) != 1" (parenthesized_expression "(uVar2 & 7)" ( (binary_expression "uVar2 & 7" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      if (*DAT_00089978 == ',') {\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }\n    }" { (if_statement "if (*DAT_00089978 == ',') {\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }" if (parenthesized_expression "(*DAT_00089978 == ',')" ( (binary_expression "*DAT_00089978 == ','" (pointer_expression "*DAT_00089978" * identifier) == (char_literal "','" ' character ')) )) (compound_statement "{\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }" { (expression_statement "DAT_00089978 = DAT_00089978 + 1;" (assignment_expression "DAT_00089978 = DAT_00089978 + 1" identifier = (binary_expression "DAT_00089978 + 1" identifier + number_literal)) ;) (expression_statement "*(char *)(iVar1 + 0x15) = (char)uVar5;" (assignment_expression "*(char *)(iVar1 + 0x15) = (char)uVar5" (pointer_expression "*(char *)(iVar1 + 0x15)" * (cast_expression "(char *)(iVar1 + 0x15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x15)" ( (binary_expression "iVar1 + 0x15" identifier + number_literal) )))) = (cast_expression "(char)uVar5" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "FUN_000221d0(0,iVar1 + 0x30,0);" (call_expression "FUN_000221d0(0,iVar1 + 0x30,0)" identifier (argument_list "(0,iVar1 + 0x30,0)" ( number_literal , (binary_expression "iVar1 + 0x30" identifier + number_literal) , number_literal ))) ;) (if_statement "if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }" if (parenthesized_expression "(*(char *)(iVar1 + 0x40) == '\x02')" ( (binary_expression "*(char *)(iVar1 + 0x40) == '\x02'" (pointer_expression "*(char *)(iVar1 + 0x40)" * (cast_expression "(char *)(iVar1 + 0x40)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x40)" ( (binary_expression "iVar1 + 0x40" identifier + number_literal) )))) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }" { (if_statement "if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;" if (parenthesized_expression "((uVar2 & 0x70) != 0x10)" ( (binary_expression "(uVar2 & 0x70) != 0x10" (parenthesized_expression "(uVar2 & 0x70)" ( (binary_expression "uVar2 & 0x70" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001d86a;" goto statement_identifier ;)) }) (else_clause "else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }" else (if_statement "if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }" if (parenthesized_expression "(*(char *)(iVar1 + 0x40) == '\x03')" ( (binary_expression "*(char *)(iVar1 + 0x40) == '\x03'" (pointer_expression "*(char *)(iVar1 + 0x40)" * (cast_expression "(char *)(iVar1 + 0x40)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x40)" ( (binary_expression "iVar1 + 0x40" identifier + number_literal) )))) == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }" { (labeled_statement "LAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;" statement_identifier : (expression_statement "*(char *)(iVar1 + 0x15) = (char)uVar5;" (assignment_expression "*(char *)(iVar1 + 0x15) = (char)uVar5" (pointer_expression "*(char *)(iVar1 + 0x15)" * (cast_expression "(char *)(iVar1 + 0x15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x15)" ( (binary_expression "iVar1 + 0x15" identifier + number_literal) )))) = (cast_expression "(char)uVar5" ( (type_descriptor "char" primitive_type) ) identifier)) ;)) (expression_statement "FUN_0002e4e0();" (call_expression "FUN_0002e4e0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))) (expression_statement "*(undefined1 *)(iVar1 + 0x15) = 0xff;" (assignment_expression "*(undefined1 *)(iVar1 + 0x15) = 0xff" (pointer_expression "*(undefined1 *)(iVar1 + 0x15)" * (cast_expression "(undefined1 *)(iVar1 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x15)" ( (binary_expression "iVar1 + 0x15" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar3 = "wrong second argument to .cfi_lsda";" (assignment_expression "pcVar3 = "wrong second argument to .cfi_lsda"" identifier = (string_literal ""wrong second argument to .cfi_lsda"" " string_content ")) ;) }) (else_clause "else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }" else (compound_statement "{\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }" { (expression_statement "pcVar3 = ".cfi_lsda requires encoding and symbol arguments";" (assignment_expression "pcVar3 = ".cfi_lsda requires encoding and symbol arguments"" identifier = (string_literal "".cfi_lsda requires encoding and symbol arguments"" " string_content ")) ;) (expression_statement "DAT_00089978 = DAT_00089978 + 1;" (assignment_expression "DAT_00089978 = DAT_00089978 + 1" identifier = (binary_expression "DAT_00089978 + 1" identifier + number_literal)) ;) }))) }) (else_clause "else {\n      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";\n    }" else (compound_statement "{\n      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";\n    }" { (expression_statement "pcVar3 = "invalid or unsupported encoding in .cfi_lsda";" (assignment_expression "pcVar3 = "invalid or unsupported encoding in .cfi_lsda"" identifier = (string_literal ""invalid or unsupported encoding in .cfi_lsda"" " string_content ")) ;) }))) }))) (expression_statement "uVar4 = dcgettext(0,pcVar3,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar3,5)" identifier = (call_expression "dcgettext(0,pcVar3,5)" identifier (argument_list "(0,pcVar3,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_0002bd60(uVar4);" (call_expression "FUN_0002bd60(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "FUN_0002e290();" (call_expression "FUN_0002e290()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) ))) == LIT) && (binary_expression (binary_expression IDENT >> LIT) == LIT)) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) < LIT) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }))) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })))
(function_definition "void FUN_0001d760(void)\n\n{\n  int iVar1;\n  uint uVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  ulonglong uVar5;\n  \n  if (*(int **)(DAT_00089a08 + 0x48) == (int *)0x0) {\n    pcVar3 = "CFI instruction used without previous .cfi_startproc";\n  }\n  else {\n    iVar1 = **(int **)(DAT_00089a08 + 0x48);\n    uVar5 = FUN_0002d860();\n    uVar2 = (uint)uVar5;\n    if (uVar5 == 0xff) {\n      FUN_0002e4e0();\n      *(undefined1 *)(iVar1 + 0x15) = 0xff;\n      return;\n    }\n    if (((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1)) {\n      if (*DAT_00089978 == ',') {\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }\n    }\n    else {\n      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";\n    }\n  }\n  uVar4 = dcgettext(0,pcVar3,5);\n  FUN_0002bd60(uVar4);\n  FUN_0002e290();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0001d760(void)" (identifier "FUN_0001d760") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  ulonglong uVar5;\n  \n  if (*(int **)(DAT_00089a08 + 0x48) == (int *)0x0) {\n    pcVar3 = "CFI instruction used without previous .cfi_startproc";\n  }\n  else {\n    iVar1 = **(int **)(DAT_00089a08 + 0x48);\n    uVar5 = FUN_0002d860();\n    uVar2 = (uint)uVar5;\n    if (uVar5 == 0xff) {\n      FUN_0002e4e0();\n      *(undefined1 *)(iVar1 + 0x15) = 0xff;\n      return;\n    }\n    if (((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1)) {\n      if (*DAT_00089978 == ',') {\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }\n    }\n    else {\n      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";\n    }\n  }\n  uVar4 = dcgettext(0,pcVar3,5);\n  FUN_0002bd60(uVar4);\n  FUN_0002e290();\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "ulonglong uVar5;" (type_identifier "ulonglong") (identifier "uVar5") (; ";")) (if_statement "if (*(int **)(DAT_00089a08 + 0x48) == (int *)0x0) {\n    pcVar3 = "CFI instruction used without previous .cfi_startproc";\n  }\n  else {\n    iVar1 = **(int **)(DAT_00089a08 + 0x48);\n    uVar5 = FUN_0002d860();\n    uVar2 = (uint)uVar5;\n    if (uVar5 == 0xff) {\n      FUN_0002e4e0();\n      *(undefined1 *)(iVar1 + 0x15) = 0xff;\n      return;\n    }\n    if (((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1)) {\n      if (*DAT_00089978 == ',') {\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }\n    }\n    else {\n      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";\n    }\n  }" (if "if") (parenthesized_expression "(*(int **)(DAT_00089a08 + 0x48) == (int *)0x0)" (( "(") (binary_expression "*(int **)(DAT_00089a08 + 0x48) == (int *)0x0" (pointer_expression "*(int **)(DAT_00089a08 + 0x48)" (* "*") (cast_expression "(int **)(DAT_00089a08 + 0x48)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_00089a08 + 0x48)" (( "(") (binary_expression "DAT_00089a08 + 0x48" (identifier "DAT_00089a08") (+ "+") (number_literal "0x48")) () ")")))) (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pcVar3 = "CFI instruction used without previous .cfi_startproc";\n  }" ({ "{") (expression_statement "pcVar3 = "CFI instruction used without previous .cfi_startproc";" (assignment_expression "pcVar3 = "CFI instruction used without previous .cfi_startproc"" (identifier "pcVar3") (= "=") (string_literal ""CFI instruction used without previous .cfi_startproc"" (" """) (string_content "CFI instruction used without previous .cfi_startproc") (" """))) (; ";")) (} "}")) (else_clause "else {\n    iVar1 = **(int **)(DAT_00089a08 + 0x48);\n    uVar5 = FUN_0002d860();\n    uVar2 = (uint)uVar5;\n    if (uVar5 == 0xff) {\n      FUN_0002e4e0();\n      *(undefined1 *)(iVar1 + 0x15) = 0xff;\n      return;\n    }\n    if (((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1)) {\n      if (*DAT_00089978 == ',') {\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }\n    }\n    else {\n      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";\n    }\n  }" (else "else") (compound_statement "{\n    iVar1 = **(int **)(DAT_00089a08 + 0x48);\n    uVar5 = FUN_0002d860();\n    uVar2 = (uint)uVar5;\n    if (uVar5 == 0xff) {\n      FUN_0002e4e0();\n      *(undefined1 *)(iVar1 + 0x15) = 0xff;\n      return;\n    }\n    if (((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1)) {\n      if (*DAT_00089978 == ',') {\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }\n    }\n    else {\n      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";\n    }\n  }" ({ "{") (expression_statement "iVar1 = **(int **)(DAT_00089a08 + 0x48);" (assignment_expression "iVar1 = **(int **)(DAT_00089a08 + 0x48)" (identifier "iVar1") (= "=") (pointer_expression "**(int **)(DAT_00089a08 + 0x48)" (* "*") (pointer_expression "*(int **)(DAT_00089a08 + 0x48)" (* "*") (cast_expression "(int **)(DAT_00089a08 + 0x48)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_00089a08 + 0x48)" (( "(") (binary_expression "DAT_00089a08 + 0x48" (identifier "DAT_00089a08") (+ "+") (number_literal "0x48")) () ")")))))) (; ";")) (expression_statement "uVar5 = FUN_0002d860();" (assignment_expression "uVar5 = FUN_0002d860()" (identifier "uVar5") (= "=") (call_expression "FUN_0002d860()" (identifier "FUN_0002d860") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar2 = (uint)uVar5;" (assignment_expression "uVar2 = (uint)uVar5" (identifier "uVar2") (= "=") (cast_expression "(uint)uVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar5"))) (; ";")) (if_statement "if (uVar5 == 0xff) {\n      FUN_0002e4e0();\n      *(undefined1 *)(iVar1 + 0x15) = 0xff;\n      return;\n    }" (if "if") (parenthesized_expression "(uVar5 == 0xff)" (( "(") (binary_expression "uVar5 == 0xff" (identifier "uVar5") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n      FUN_0002e4e0();\n      *(undefined1 *)(iVar1 + 0x15) = 0xff;\n      return;\n    }" ({ "{") (expression_statement "FUN_0002e4e0();" (call_expression "FUN_0002e4e0()" (identifier "FUN_0002e4e0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined1 *)(iVar1 + 0x15) = 0xff;" (assignment_expression "*(undefined1 *)(iVar1 + 0x15) = 0xff" (pointer_expression "*(undefined1 *)(iVar1 + 0x15)" (* "*") (cast_expression "(undefined1 *)(iVar1 + 0x15)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x15)" (( "(") (binary_expression "iVar1 + 0x15" (identifier "iVar1") (+ "+") (number_literal "0x15")) () ")")))) (= "=") (number_literal "0xff")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1)) {\n      if (*DAT_00089978 == ',') {\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }\n    }\n    else {\n      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";\n    }" (if "if") (parenthesized_expression "(((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1))" (( "(") (binary_expression "((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1)" (parenthesized_expression "((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5))" (( "(") (binary_expression "(((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&\n        ((uVar2 & 7) < 5)" (parenthesized_expression "(((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0))" (( "(") (binary_expression "((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)" (parenthesized_expression "((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0)" (( "(") (binary_expression "(int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0" (binary_expression "(int)(uVar5 >> 0x20) == 0" (cast_expression "(int)(uVar5 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar5 >> 0x20)" (( "(") (binary_expression "uVar5 >> 0x20" (identifier "uVar5") (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) (&& "&&") (binary_expression "uVar2 >> 8 == 0" (binary_expression "uVar2 >> 8" (identifier "uVar2") (>> ">>") (number_literal "8")) (== "==") (number_literal "0"))) () ")")) (&& "&&") (parenthesized_expression "((uVar5 & 0x60) == 0)" (( "(") (binary_expression "(uVar5 & 0x60) == 0" (parenthesized_expression "(uVar5 & 0x60)" (( "(") (binary_expression "uVar5 & 0x60" (identifier "uVar5") (& "&") (number_literal "0x60")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((uVar2 & 7) < 5)" (( "(") (binary_expression "(uVar2 & 7) < 5" (parenthesized_expression "(uVar2 & 7)" (( "(") (binary_expression "uVar2 & 7" (identifier "uVar2") (& "&") (number_literal "7")) () ")")) (< "<") (number_literal "5")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((uVar2 & 7) != 1)" (( "(") (binary_expression "(uVar2 & 7) != 1" (parenthesized_expression "(uVar2 & 7)" (( "(") (binary_expression "uVar2 & 7" (identifier "uVar2") (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n      if (*DAT_00089978 == ',') {\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }\n    }" ({ "{") (if_statement "if (*DAT_00089978 == ',') {\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }\n      else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }" (if "if") (parenthesized_expression "(*DAT_00089978 == ',')" (( "(") (binary_expression "*DAT_00089978 == ','" (pointer_expression "*DAT_00089978" (* "*") (identifier "DAT_00089978")) (== "==") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (compound_statement "{\n        DAT_00089978 = DAT_00089978 + 1;\n        *(char *)(iVar1 + 0x15) = (char)uVar5;\n        FUN_000221d0(0,iVar1 + 0x30,0);\n        if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }\n        *(undefined1 *)(iVar1 + 0x15) = 0xff;\n        pcVar3 = "wrong second argument to .cfi_lsda";\n      }" ({ "{") (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"))) (; ";")) (expression_statement "*(char *)(iVar1 + 0x15) = (char)uVar5;" (assignment_expression "*(char *)(iVar1 + 0x15) = (char)uVar5" (pointer_expression "*(char *)(iVar1 + 0x15)" (* "*") (cast_expression "(char *)(iVar1 + 0x15)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x15)" (( "(") (binary_expression "iVar1 + 0x15" (identifier "iVar1") (+ "+") (number_literal "0x15")) () ")")))) (= "=") (cast_expression "(char)uVar5" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar5"))) (; ";")) (expression_statement "FUN_000221d0(0,iVar1 + 0x30,0);" (call_expression "FUN_000221d0(0,iVar1 + 0x30,0)" (identifier "FUN_000221d0") (argument_list "(0,iVar1 + 0x30,0)" (( "(") (number_literal "0") (, ",") (binary_expression "iVar1 + 0x30" (identifier "iVar1") (+ "+") (number_literal "0x30")) (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (*(char *)(iVar1 + 0x40) == '\x02') {\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }\n        else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }" (if "if") (parenthesized_expression "(*(char *)(iVar1 + 0x40) == '\x02')" (( "(") (binary_expression "*(char *)(iVar1 + 0x40) == '\x02'" (pointer_expression "*(char *)(iVar1 + 0x40)" (* "*") (cast_expression "(char *)(iVar1 + 0x40)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x40)" (( "(") (binary_expression "iVar1 + 0x40" (identifier "iVar1") (+ "+") (number_literal "0x40")) () ")")))) (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;\n        }" ({ "{") (if_statement "if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;" (if "if") (parenthesized_expression "((uVar2 & 0x70) != 0x10)" (( "(") (binary_expression "(uVar2 & 0x70) != 0x10" (parenthesized_expression "(uVar2 & 0x70)" (( "(") (binary_expression "uVar2 & 0x70" (identifier "uVar2") (& "&") (number_literal "0x70")) () ")")) (!= "!=") (number_literal "0x10")) () ")")) (goto_statement "goto LAB_0001d86a;" (goto "goto") (statement_identifier "LAB_0001d86a") (; ";"))) (} "}")) (else_clause "else if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }" (else "else") (if_statement "if (*(char *)(iVar1 + 0x40) == '\x03') {\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }" (if "if") (parenthesized_expression "(*(char *)(iVar1 + 0x40) == '\x03')" (( "(") (binary_expression "*(char *)(iVar1 + 0x40) == '\x03'" (pointer_expression "*(char *)(iVar1 + 0x40)" (* "*") (cast_expression "(char *)(iVar1 + 0x40)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x40)" (( "(") (binary_expression "iVar1 + 0x40" (identifier "iVar1") (+ "+") (number_literal "0x40")) () ")")))) (== "==") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")")) (compound_statement "{\nLAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;\n          FUN_0002e4e0();\n          return;\n        }" ({ "{") (labeled_statement "LAB_0001d86a:\n          *(char *)(iVar1 + 0x15) = (char)uVar5;" (statement_identifier "LAB_0001d86a") (: ":") (expression_statement "*(char *)(iVar1 + 0x15) = (char)uVar5;" (assignment_expression "*(char *)(iVar1 + 0x15) = (char)uVar5" (pointer_expression "*(char *)(iVar1 + 0x15)" (* "*") (cast_expression "(char *)(iVar1 + 0x15)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x15)" (( "(") (binary_expression "iVar1 + 0x15" (identifier "iVar1") (+ "+") (number_literal "0x15")) () ")")))) (= "=") (cast_expression "(char)uVar5" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar5"))) (; ";"))) (expression_statement "FUN_0002e4e0();" (call_expression "FUN_0002e4e0()" (identifier "FUN_0002e4e0") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))))) (expression_statement "*(undefined1 *)(iVar1 + 0x15) = 0xff;" (assignment_expression "*(undefined1 *)(iVar1 + 0x15) = 0xff" (pointer_expression "*(undefined1 *)(iVar1 + 0x15)" (* "*") (cast_expression "(undefined1 *)(iVar1 + 0x15)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x15)" (( "(") (binary_expression "iVar1 + 0x15" (identifier "iVar1") (+ "+") (number_literal "0x15")) () ")")))) (= "=") (number_literal "0xff")) (; ";")) (expression_statement "pcVar3 = "wrong second argument to .cfi_lsda";" (assignment_expression "pcVar3 = "wrong second argument to .cfi_lsda"" (identifier "pcVar3") (= "=") (string_literal ""wrong second argument to .cfi_lsda"" (" """) (string_content "wrong second argument to .cfi_lsda") (" """))) (; ";")) (} "}")) (else_clause "else {\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }" (else "else") (compound_statement "{\n        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";\n        DAT_00089978 = DAT_00089978 + 1;\n      }" ({ "{") (expression_statement "pcVar3 = ".cfi_lsda requires encoding and symbol arguments";" (assignment_expression "pcVar3 = ".cfi_lsda requires encoding and symbol arguments"" (identifier "pcVar3") (= "=") (string_literal "".cfi_lsda requires encoding and symbol arguments"" (" """) (string_content ".cfi_lsda requires encoding and symbol arguments") (" """))) (; ";")) (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"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";\n    }" (else "else") (compound_statement "{\n      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";\n    }" ({ "{") (expression_statement "pcVar3 = "invalid or unsupported encoding in .cfi_lsda";" (assignment_expression "pcVar3 = "invalid or unsupported encoding in .cfi_lsda"" (identifier "pcVar3") (= "=") (string_literal ""invalid or unsupported encoding in .cfi_lsda"" (" """) (string_content "invalid or unsupported encoding in .cfi_lsda") (" """))) (; ";")) (} "}")))) (} "}")))) (expression_statement "uVar4 = dcgettext(0,pcVar3,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar3,5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,pcVar3,5)" (identifier "dcgettext") (argument_list "(0,pcVar3,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar3") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bd60(uVar4);" (call_expression "FUN_0002bd60(uVar4)" (identifier "FUN_0002bd60") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "FUN_0002e290();" (call_expression "FUN_0002e290()" (identifier "FUN_0002e290") (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 ignored)

{
  char var_8;
  type_1 *pfVar2;
  type_2 var_4;
  char *pcVar4;
  type_3 var_2;
  
  if (frchain_now->type_4 == (type_4 *)0x0) {
    pcVar4 = "CFI instruction used without previous .cfi_startproc";
  }
  else {
    pfVar2 = frchain_now->type_4->cur_fde_data;
    var_2 = var_1();
    var_4 = (type_2)var_2;
    if (var_2 == 0xff) {
      var_3();
      pfVar2->lsda_encoding = 0xff;
      return;
    }
    if (((((int)(var_2 >> 0x20) == 0 && var_4 >> 8 == 0) && ((var_2 & 0x60) == 0)) &&
        (var_5(var_4 & 0x60,var_4 & 0x60) == 4 < (var_4 & 7))) && ((var_4 & 7) != 1)) {
      if (*var_6 == ',') {
        var_6 = var_6 + 1;
        pfVar2->lsda_encoding = (type_5)var_2;
        var_7(0,&pfVar2->lsda,expr_evaluate);
        var_8 = (pfVar2->lsda).field_0x10;
        if (var_8 == '\x02') {
          if ((var_4 & 0x70) != 0x10) goto LAB_0001d86a;
        }
        else if (var_8 == '\x03') {
LAB_0001d86a:
          pfVar2->lsda_encoding = (type_5)var_2;
          var_3();
          return;
        }
        pfVar2->lsda_encoding = 0xff;
        pcVar4 = "wrong second argument to .cfi_lsda";
      }
      else {
        pcVar4 = ".cfi_lsda requires encoding and symbol arguments";
        var_6 = var_6 + 1;
      }
    }
    else {
      pcVar4 = "invalid or unsupported encoding in .cfi_lsda";
    }
  }
  pcVar4 = (char *)var_9(0,pcVar4,5);
  var_10(pcVar4);
  var_11();
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (return_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (number_literal))))) (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(void)

{
  int iVar1;
  uint uVar2;
  char *pcVar3;
  undefined4 uVar4;
  ulonglong uVar5;
  
  if (*(int **)(DAT_00089a08 + 0x48) == (int *)0x0) {
    pcVar3 = "CFI instruction used without previous .cfi_startproc";
  }
  else {
    iVar1 = **(int **)(DAT_00089a08 + 0x48);
    uVar5 = FUN_0002d860();
    uVar2 = (uint)uVar5;
    if (uVar5 == 0xff) {
      FUN_0002e4e0();
      *(undefined1 *)(iVar1 + 0x15) = 0xff;
      return;
    }
    if (((((int)(uVar5 >> 0x20) == 0 && uVar2 >> 8 == 0) && ((uVar5 & 0x60) == 0)) &&
        ((uVar2 & 7) < 5)) && ((uVar2 & 7) != 1)) {
      if (*DAT_00089978 == ',') {
        DAT_00089978 = DAT_00089978 + 1;
        *(char *)(iVar1 + 0x15) = (char)uVar5;
        FUN_000221d0(0,iVar1 + 0x30,0);
        if (*(char *)(iVar1 + 0x40) == '\x02') {
          if ((uVar2 & 0x70) != 0x10) goto LAB_0001d86a;
        }
        else if (*(char *)(iVar1 + 0x40) == '\x03') {
LAB_0001d86a:
          *(char *)(iVar1 + 0x15) = (char)uVar5;
          FUN_0002e4e0();
          return;
        }
        *(undefined1 *)(iVar1 + 0x15) = 0xff;
        pcVar3 = "wrong second argument to .cfi_lsda";
      }
      else {
        pcVar3 = ".cfi_lsda requires encoding and symbol arguments";
        DAT_00089978 = DAT_00089978 + 1;
      }
    }
    else {
      pcVar3 = "invalid or unsupported encoding in .cfi_lsda";
    }
  }
  uVar4 = dcgettext(0,pcVar3,5);
  FUN_0002bd60(uVar4);
  FUN_0002e290();
  return;
}

