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

void dot_cfi_val_encoded_addr(int ignored)

{
  expressionS *resultP;
  char cVar1;
  frch_cfi_data *pfVar2;
  symbolS *psVar3;
  frchainS *pfVar4;
  fragS *pfVar5;
  symbolS *psVar6;
  cfi_insn_data *pcVar7;
  uint uVar8;
  char *pcVar9;
  valueT vVar10;
  addressT aVar11;
  
  if (frchain_now->frch_cfi_data == (frch_cfi_data *)0x0) {
    pcVar9 = "CFI instruction used without previous .cfi_startproc";
    goto LAB_0001e322;
  }
  pfVar5 = symbol_get_frag(frchain_now->frch_cfi_data->last_address);
  if (pfVar5 == frag_now) {
    vVar10 = S_GET_VALUE(frchain_now->frch_cfi_data->last_address);
    aVar11 = frag_now_fix();
    if (vVar10 != aVar11) goto LAB_0001e231;
  }
  else {
LAB_0001e231:
    psVar6 = symbol_temp_new_now();
    pcVar7 = alloc_cfi_insn_data();
    pfVar4 = frchain_now;
    pcVar7->insn = 0x40;
    pfVar2 = pfVar4->frch_cfi_data;
    psVar3 = pfVar2->last_address;
    (pcVar7->u).ll.lab2 = psVar6;
    (pcVar7->u).ri.reg = (uint)psVar3;
    pfVar2->last_address = psVar6;
  }
  pcVar7 = alloc_cfi_insn_data();
  pcVar7->insn = 0x105;
  resultP = &(pcVar7->u).ea.exp;
  uVar8 = cfi_parse_reg();
  (pcVar7->u).ri.reg = uVar8;
  cfi_parse_separator();
  uVar8 = get_absolute_expression();
  if (((((uVar8 & 0xffffff00) == 0) && ((uVar8 & 0x60) == 0)) && ((uVar8 & 7) < 5)) &&
     ((uVar8 & 7) != 1)) {
    cfi_parse_separator();
    expr(0,resultP,expr_evaluate);
    cVar1 = *(char *)((int)&pcVar7->u + 0x14);
    if (cVar1 == '\x02') {
      if ((uVar8 & 0x70) == 0x10) goto LAB_0001e310;
    }
    else if (cVar1 != '\x03') goto LAB_0001e310;
    (pcVar7->u).ri.offset = uVar8;
    if (uVar8 != 0xff) {
      demand_empty_rest_of_line();
      return;
    }
  }
  else {
    pcVar9 = (char *)dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);
    as_bad(pcVar9);
    cfi_parse_separator();
    expr(0,resultP,expr_evaluate);
LAB_0001e310:
    (pcVar7->u).ri.offset = 0xff;
  }
  pcVar9 = "wrong third argument to .cfi_val_encoded_addr";
LAB_0001e322:
  pcVar9 = (char *)dcgettext(0,pcVar9,5);
  as_bad(pcVar9);
  ignore_rest_of_line();
  return;
}



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

void FUN_0001e1f0(void)

{
  int iVar1;
  undefined4 uVar2;
  int iVar3;
  undefined4 uVar4;
  uint uVar5;
  char *pcVar6;
  
  if (*(int *)(DAT_0007cfc8 + 0x48) == 0) {
    pcVar6 = "CFI instruction used without previous .cfi_startproc";
    goto LAB_0001e322;
  }
  iVar1 = FUN_000391f0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));
  if (iVar1 == DAT_0007ce70) {
    iVar1 = FUN_00037db0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));
    iVar3 = FUN_00023920();
    if (iVar1 != iVar3) goto LAB_0001e231;
  }
  else {
LAB_0001e231:
    uVar2 = FUN_00036bb0();
    iVar3 = FUN_0001d3f0();
    iVar1 = DAT_0007cfc8;
    *(undefined4 *)(iVar3 + 4) = 0x40;
    iVar1 = *(int *)(iVar1 + 0x48);
    uVar4 = *(undefined4 *)(iVar1 + 4);
    *(undefined4 *)(iVar3 + 0xc) = uVar2;
    *(undefined4 *)(iVar3 + 8) = uVar4;
    *(undefined4 *)(iVar1 + 4) = uVar2;
  }
  iVar1 = FUN_0001d3f0();
  *(undefined4 *)(iVar1 + 4) = 0x105;
  uVar4 = FUN_0001d4f0();
  *(undefined4 *)(iVar1 + 8) = uVar4;
  FUN_0001e180();
  uVar5 = FUN_0002bec0();
  if (((((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)) && ((uVar5 & 7) < 5)) &&
     ((uVar5 & 7) != 1)) {
    FUN_0001e180();
    FUN_00022030(0,iVar1 + 0x10,0);
    if (*(char *)(iVar1 + 0x1c) == '\x02') {
      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e310;
    }
    else if (*(char *)(iVar1 + 0x1c) != '\x03') goto LAB_0001e310;
    *(uint *)(iVar1 + 0xc) = uVar5;
    if (uVar5 != 0xff) {
      FUN_0002cab0();
      return;
    }
  }
  else {
    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);
    FUN_0002a7b0(uVar4);
    FUN_0001e180();
    FUN_00022030(0,iVar1 + 0x10,0);
LAB_0001e310:
    *(undefined4 *)(iVar1 + 0xc) = 0xff;
  }
  pcVar6 = "wrong third argument to .cfi_val_encoded_addr";
LAB_0001e322:
  uVar4 = dcgettext(0,pcVar6,5);
  FUN_0002a7b0(uVar4);
  FUN_0002c8a0();
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00016030
ADD EBX,0x55e07
SUB ESP,0xc
LEA ESI,[EBX + 0x8fc8]
MOV EAX,dword ptr [ESI]
MOV EAX,dword ptr [EAX + 0x48]
TEST EAX,EAX
JZ 0x0001e370
SUB ESP,0xc
PUSH dword ptr [EAX + 0x4]
CALL 0x000391f0
LEA EDX,[EBX + 0x8e70]
ADD ESP,0x10
CMP EAX,dword ptr [EDX]
JZ 0x0001e348
CALL 0x00036bb0
MOV EDI,EAX
CALL 0x0001d3f0
MOV EDX,dword ptr [ESI]
MOV dword ptr [EAX + 0x4],0x40
MOV EDX,dword ptr [EDX + 0x48]
MOV ECX,dword ptr [EDX + 0x4]
MOV dword ptr [EAX + 0xc],EDI
MOV dword ptr [EAX + 0x8],ECX
MOV dword ptr [EDX + 0x4],EDI
CALL 0x0001d3f0
MOV dword ptr [EAX + 0x4],0x105
MOV ESI,EAX
LEA EDI,[ESI + 0x10]
CALL 0x0001d4f0
MOV dword ptr [ESI + 0x8],EAX
CALL 0x0001e180
CALL 0x0002bec0
MOV EBP,EAX
TEST EAX,0xffffff00
JNZ 0x0001e2e0
TEST AL,0x60
JNZ 0x0001e2e0
AND EAX,0x7
CMP EAX,0x4
JG 0x0001e2e0
CMP EAX,0x1
JZ 0x0001e2e0
CALL 0x0001e180
SUB ESP,0x4
PUSH 0x0
PUSH EDI
PUSH 0x0
CALL 0x00022030
MOVZX EAX,byte ptr [ESI + 0x1c]
ADD ESP,0x10
CMP AL,0x2
JNZ 0x0001e380
MOV EAX,EBP
AND EAX,0x70
CMP EAX,0x10
JZ 0x0001e310
LEA ESI,[ESI]
MOV dword ptr [ESI + 0xc],EBP
CMP EBP,0xff
JZ 0x0001e317
CALL 0x0002cab0
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdd5d8]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
MOV dword ptr [ESP],EAX
CALL 0x0002a7b0
CALL 0x0001e180
ADD ESP,0xc
PUSH 0x0
PUSH EDI
PUSH 0x0
CALL 0x00022030
ADD ESP,0x10
MOV dword ptr [ESI + 0xc],0xff
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdd71c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
MOV dword ptr [ESP],EAX
CALL 0x0002a7b0
CALL 0x0002c8a0
ADD ESP,0x10
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESI]
SUB ESP,0xc
MOV EAX,dword ptr [EAX + 0x48]
PUSH dword ptr [EAX + 0x4]
CALL 0x00037db0
MOV EDI,EAX
CALL 0x00023920
ADD ESP,0x10
CMP EDI,EAX
JNZ 0x0001e231
JMP 0x0001e255
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdd5a0]
PUSH 0x5
JMP 0x0001e322
CMP AL,0x3
JZ 0x0001e2c0
JMP 0x0001e310
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_0001e1f0(void)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  char *pcVar6;\n  \n  if (*(int *)(DAT_0007cfc8 + 0x48) == 0) {\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e322;\n  }\n  iVar1 = FUN_000391f0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));\n  if (iVar1 == DAT_0007ce70) {\n    iVar1 = FUN_00037db0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));\n    iVar3 = FUN_00023920();\n    if (iVar1 != iVar3) goto LAB_0001e231;\n  }\n  else {\nLAB_0001e231:\n    uVar2 = FUN_00036bb0();\n    iVar3 = FUN_0001d3f0();\n    iVar1 = DAT_0007cfc8;\n    *(undefined4 *)(iVar3 + 4) = 0x40;\n    iVar1 = *(int *)(iVar1 + 0x48);\n    uVar4 = *(undefined4 *)(iVar1 + 4);\n    *(undefined4 *)(iVar3 + 0xc) = uVar2;\n    *(undefined4 *)(iVar3 + 8) = uVar4;\n    *(undefined4 *)(iVar1 + 4) = uVar2;\n  }\n  iVar1 = FUN_0001d3f0();\n  *(undefined4 *)(iVar1 + 4) = 0x105;\n  uVar4 = FUN_0001d4f0();\n  *(undefined4 *)(iVar1 + 8) = uVar4;\n  FUN_0001e180();\n  uVar5 = FUN_0002bec0();\n  if (((((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)) && ((uVar5 & 7) < 5)) &&\n     ((uVar5 & 7) != 1)) {\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x1c) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e310;\n    }\n    else if (*(char *)(iVar1 + 0x1c) != '\x03') goto LAB_0001e310;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar5 != 0xff) {\n      FUN_0002cab0();\n      return;\n    }\n  }\n  else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_0002a7b0(uVar4);\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\nLAB_0001e310:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }\n  pcVar6 = "wrong third argument to .cfi_val_encoded_addr";\nLAB_0001e322:\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_0002a7b0(uVar4);\n  FUN_0002c8a0();\n  return;\n}\n\n" comment (function_definition "void FUN_0001e1f0(void)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  char *pcVar6;\n  \n  if (*(int *)(DAT_0007cfc8 + 0x48) == 0) {\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e322;\n  }\n  iVar1 = FUN_000391f0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));\n  if (iVar1 == DAT_0007ce70) {\n    iVar1 = FUN_00037db0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));\n    iVar3 = FUN_00023920();\n    if (iVar1 != iVar3) goto LAB_0001e231;\n  }\n  else {\nLAB_0001e231:\n    uVar2 = FUN_00036bb0();\n    iVar3 = FUN_0001d3f0();\n    iVar1 = DAT_0007cfc8;\n    *(undefined4 *)(iVar3 + 4) = 0x40;\n    iVar1 = *(int *)(iVar1 + 0x48);\n    uVar4 = *(undefined4 *)(iVar1 + 4);\n    *(undefined4 *)(iVar3 + 0xc) = uVar2;\n    *(undefined4 *)(iVar3 + 8) = uVar4;\n    *(undefined4 *)(iVar1 + 4) = uVar2;\n  }\n  iVar1 = FUN_0001d3f0();\n  *(undefined4 *)(iVar1 + 4) = 0x105;\n  uVar4 = FUN_0001d4f0();\n  *(undefined4 *)(iVar1 + 8) = uVar4;\n  FUN_0001e180();\n  uVar5 = FUN_0002bec0();\n  if (((((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)) && ((uVar5 & 7) < 5)) &&\n     ((uVar5 & 7) != 1)) {\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x1c) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e310;\n    }\n    else if (*(char *)(iVar1 + 0x1c) != '\x03') goto LAB_0001e310;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar5 != 0xff) {\n      FUN_0002cab0();\n      return;\n    }\n  }\n  else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_0002a7b0(uVar4);\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\nLAB_0001e310:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }\n  pcVar6 = "wrong third argument to .cfi_val_encoded_addr";\nLAB_0001e322:\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_0002a7b0(uVar4);\n  FUN_0002c8a0();\n  return;\n}" primitive_type (function_declarator "FUN_0001e1f0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  char *pcVar6;\n  \n  if (*(int *)(DAT_0007cfc8 + 0x48) == 0) {\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e322;\n  }\n  iVar1 = FUN_000391f0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));\n  if (iVar1 == DAT_0007ce70) {\n    iVar1 = FUN_00037db0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));\n    iVar3 = FUN_00023920();\n    if (iVar1 != iVar3) goto LAB_0001e231;\n  }\n  else {\nLAB_0001e231:\n    uVar2 = FUN_00036bb0();\n    iVar3 = FUN_0001d3f0();\n    iVar1 = DAT_0007cfc8;\n    *(undefined4 *)(iVar3 + 4) = 0x40;\n    iVar1 = *(int *)(iVar1 + 0x48);\n    uVar4 = *(undefined4 *)(iVar1 + 4);\n    *(undefined4 *)(iVar3 + 0xc) = uVar2;\n    *(undefined4 *)(iVar3 + 8) = uVar4;\n    *(undefined4 *)(iVar1 + 4) = uVar2;\n  }\n  iVar1 = FUN_0001d3f0();\n  *(undefined4 *)(iVar1 + 4) = 0x105;\n  uVar4 = FUN_0001d4f0();\n  *(undefined4 *)(iVar1 + 8) = uVar4;\n  FUN_0001e180();\n  uVar5 = FUN_0002bec0();\n  if (((((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)) && ((uVar5 & 7) < 5)) &&\n     ((uVar5 & 7) != 1)) {\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x1c) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e310;\n    }\n    else if (*(char *)(iVar1 + 0x1c) != '\x03') goto LAB_0001e310;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar5 != 0xff) {\n      FUN_0002cab0();\n      return;\n    }\n  }\n  else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_0002a7b0(uVar4);\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\nLAB_0001e310:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }\n  pcVar6 = "wrong third argument to .cfi_val_encoded_addr";\nLAB_0001e322:\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_0002a7b0(uVar4);\n  FUN_0002c8a0();\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (if_statement "if (*(int *)(DAT_0007cfc8 + 0x48) == 0) {\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e322;\n  }" if (parenthesized_expression "(*(int *)(DAT_0007cfc8 + 0x48) == 0)" ( (binary_expression "*(int *)(DAT_0007cfc8 + 0x48) == 0" (pointer_expression "*(int *)(DAT_0007cfc8 + 0x48)" * (cast_expression "(int *)(DAT_0007cfc8 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0007cfc8 + 0x48)" ( (binary_expression "DAT_0007cfc8 + 0x48" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e322;\n  }" { (expression_statement "pcVar6 = "CFI instruction used without previous .cfi_startproc";" (assignment_expression "pcVar6 = "CFI instruction used without previous .cfi_startproc"" identifier = (string_literal ""CFI instruction used without previous .cfi_startproc"" " string_content ")) ;) (goto_statement "goto LAB_0001e322;" goto statement_identifier ;) })) (expression_statement "iVar1 = FUN_000391f0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));" (assignment_expression "iVar1 = FUN_000391f0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4))" identifier = (call_expression "FUN_000391f0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4))" identifier (argument_list "(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4))" ( (pointer_expression "*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4)" * (cast_expression "(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0007cfc8 + 0x48) + 4)" ( (binary_expression "*(int *)(DAT_0007cfc8 + 0x48) + 4" (pointer_expression "*(int *)(DAT_0007cfc8 + 0x48)" * (cast_expression "(int *)(DAT_0007cfc8 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0007cfc8 + 0x48)" ( (binary_expression "DAT_0007cfc8 + 0x48" identifier + number_literal) )))) + number_literal) )))) )))) ;) (if_statement "if (iVar1 == DAT_0007ce70) {\n    iVar1 = FUN_00037db0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));\n    iVar3 = FUN_00023920();\n    if (iVar1 != iVar3) goto LAB_0001e231;\n  }\n  else {\nLAB_0001e231:\n    uVar2 = FUN_00036bb0();\n    iVar3 = FUN_0001d3f0();\n    iVar1 = DAT_0007cfc8;\n    *(undefined4 *)(iVar3 + 4) = 0x40;\n    iVar1 = *(int *)(iVar1 + 0x48);\n    uVar4 = *(undefined4 *)(iVar1 + 4);\n    *(undefined4 *)(iVar3 + 0xc) = uVar2;\n    *(undefined4 *)(iVar3 + 8) = uVar4;\n    *(undefined4 *)(iVar1 + 4) = uVar2;\n  }" if (parenthesized_expression "(iVar1 == DAT_0007ce70)" ( (binary_expression "iVar1 == DAT_0007ce70" identifier == identifier) )) (compound_statement "{\n    iVar1 = FUN_00037db0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));\n    iVar3 = FUN_00023920();\n    if (iVar1 != iVar3) goto LAB_0001e231;\n  }" { (expression_statement "iVar1 = FUN_00037db0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));" (assignment_expression "iVar1 = FUN_00037db0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4))" identifier = (call_expression "FUN_00037db0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4))" identifier (argument_list "(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4))" ( (pointer_expression "*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4)" * (cast_expression "(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0007cfc8 + 0x48) + 4)" ( (binary_expression "*(int *)(DAT_0007cfc8 + 0x48) + 4" (pointer_expression "*(int *)(DAT_0007cfc8 + 0x48)" * (cast_expression "(int *)(DAT_0007cfc8 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0007cfc8 + 0x48)" ( (binary_expression "DAT_0007cfc8 + 0x48" identifier + number_literal) )))) + number_literal) )))) )))) ;) (expression_statement "iVar3 = FUN_00023920();" (assignment_expression "iVar3 = FUN_00023920()" identifier = (call_expression "FUN_00023920()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 != iVar3) goto LAB_0001e231;" if (parenthesized_expression "(iVar1 != iVar3)" ( (binary_expression "iVar1 != iVar3" identifier != identifier) )) (goto_statement "goto LAB_0001e231;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_0001e231:\n    uVar2 = FUN_00036bb0();\n    iVar3 = FUN_0001d3f0();\n    iVar1 = DAT_0007cfc8;\n    *(undefined4 *)(iVar3 + 4) = 0x40;\n    iVar1 = *(int *)(iVar1 + 0x48);\n    uVar4 = *(undefined4 *)(iVar1 + 4);\n    *(undefined4 *)(iVar3 + 0xc) = uVar2;\n    *(undefined4 *)(iVar3 + 8) = uVar4;\n    *(undefined4 *)(iVar1 + 4) = uVar2;\n  }" else (compound_statement "{\nLAB_0001e231:\n    uVar2 = FUN_00036bb0();\n    iVar3 = FUN_0001d3f0();\n    iVar1 = DAT_0007cfc8;\n    *(undefined4 *)(iVar3 + 4) = 0x40;\n    iVar1 = *(int *)(iVar1 + 0x48);\n    uVar4 = *(undefined4 *)(iVar1 + 4);\n    *(undefined4 *)(iVar3 + 0xc) = uVar2;\n    *(undefined4 *)(iVar3 + 8) = uVar4;\n    *(undefined4 *)(iVar1 + 4) = uVar2;\n  }" { (labeled_statement "LAB_0001e231:\n    uVar2 = FUN_00036bb0();" statement_identifier : (expression_statement "uVar2 = FUN_00036bb0();" (assignment_expression "uVar2 = FUN_00036bb0()" identifier = (call_expression "FUN_00036bb0()" identifier (argument_list "()" ( )))) ;)) (expression_statement "iVar3 = FUN_0001d3f0();" (assignment_expression "iVar3 = FUN_0001d3f0()" identifier = (call_expression "FUN_0001d3f0()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar1 = DAT_0007cfc8;" (assignment_expression "iVar1 = DAT_0007cfc8" identifier = identifier) ;) (expression_statement "*(undefined4 *)(iVar3 + 4) = 0x40;" (assignment_expression "*(undefined4 *)(iVar3 + 4) = 0x40" (pointer_expression "*(undefined4 *)(iVar3 + 4)" * (cast_expression "(undefined4 *)(iVar3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar1 = *(int *)(iVar1 + 0x48);" (assignment_expression "iVar1 = *(int *)(iVar1 + 0x48)" identifier = (pointer_expression "*(int *)(iVar1 + 0x48)" * (cast_expression "(int *)(iVar1 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x48)" ( (binary_expression "iVar1 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)(iVar1 + 4);" (assignment_expression "uVar4 = *(undefined4 *)(iVar1 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar1 + 4)" * (cast_expression "(undefined4 *)(iVar1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 4)" ( (binary_expression "iVar1 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar3 + 0xc) = uVar2;" (assignment_expression "*(undefined4 *)(iVar3 + 0xc) = uVar2" (pointer_expression "*(undefined4 *)(iVar3 + 0xc)" * (cast_expression "(undefined4 *)(iVar3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar3 + 8) = uVar4;" (assignment_expression "*(undefined4 *)(iVar3 + 8) = uVar4" (pointer_expression "*(undefined4 *)(iVar3 + 8)" * (cast_expression "(undefined4 *)(iVar3 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar1 + 4) = uVar2;" (assignment_expression "*(undefined4 *)(iVar1 + 4) = uVar2" (pointer_expression "*(undefined4 *)(iVar1 + 4)" * (cast_expression "(undefined4 *)(iVar1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 4)" ( (binary_expression "iVar1 + 4" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar1 = FUN_0001d3f0();" (assignment_expression "iVar1 = FUN_0001d3f0()" identifier = (call_expression "FUN_0001d3f0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar1 + 4) = 0x105;" (assignment_expression "*(undefined4 *)(iVar1 + 4) = 0x105" (pointer_expression "*(undefined4 *)(iVar1 + 4)" * (cast_expression "(undefined4 *)(iVar1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 4)" ( (binary_expression "iVar1 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar4 = FUN_0001d4f0();" (assignment_expression "uVar4 = FUN_0001d4f0()" identifier = (call_expression "FUN_0001d4f0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar1 + 8) = uVar4;" (assignment_expression "*(undefined4 *)(iVar1 + 8) = uVar4" (pointer_expression "*(undefined4 *)(iVar1 + 8)" * (cast_expression "(undefined4 *)(iVar1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_0001e180();" (call_expression "FUN_0001e180()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar5 = FUN_0002bec0();" (assignment_expression "uVar5 = FUN_0002bec0()" identifier = (call_expression "FUN_0002bec0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (((((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)) && ((uVar5 & 7) < 5)) &&\n     ((uVar5 & 7) != 1)) {\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x1c) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e310;\n    }\n    else if (*(char *)(iVar1 + 0x1c) != '\x03') goto LAB_0001e310;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar5 != 0xff) {\n      FUN_0002cab0();\n      return;\n    }\n  }\n  else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_0002a7b0(uVar4);\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\nLAB_0001e310:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }" if (parenthesized_expression "(((((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)) && ((uVar5 & 7) < 5)) &&\n     ((uVar5 & 7) != 1))" ( (binary_expression "((((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)) && ((uVar5 & 7) < 5)) &&\n     ((uVar5 & 7) != 1)" (parenthesized_expression "((((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)) && ((uVar5 & 7) < 5))" ( (binary_expression "(((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)) && ((uVar5 & 7) < 5)" (parenthesized_expression "(((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0))" ( (binary_expression "((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)" (parenthesized_expression "((uVar5 & 0xffffff00) == 0)" ( (binary_expression "(uVar5 & 0xffffff00) == 0" (parenthesized_expression "(uVar5 & 0xffffff00)" ( (binary_expression "uVar5 & 0xffffff00" 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 "((uVar5 & 7) < 5)" ( (binary_expression "(uVar5 & 7) < 5" (parenthesized_expression "(uVar5 & 7)" ( (binary_expression "uVar5 & 7" identifier & number_literal) )) < number_literal) ))) )) && (parenthesized_expression "((uVar5 & 7) != 1)" ( (binary_expression "(uVar5 & 7) != 1" (parenthesized_expression "(uVar5 & 7)" ( (binary_expression "uVar5 & 7" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x1c) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e310;\n    }\n    else if (*(char *)(iVar1 + 0x1c) != '\x03') goto LAB_0001e310;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar5 != 0xff) {\n      FUN_0002cab0();\n      return;\n    }\n  }" { (expression_statement "FUN_0001e180();" (call_expression "FUN_0001e180()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00022030(0,iVar1 + 0x10,0);" (call_expression "FUN_00022030(0,iVar1 + 0x10,0)" identifier (argument_list "(0,iVar1 + 0x10,0)" ( number_literal , (binary_expression "iVar1 + 0x10" identifier + number_literal) , number_literal ))) ;) (if_statement "if (*(char *)(iVar1 + 0x1c) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e310;\n    }\n    else if (*(char *)(iVar1 + 0x1c) != '\x03') goto LAB_0001e310;" if (parenthesized_expression "(*(char *)(iVar1 + 0x1c) == '\x02')" ( (binary_expression "*(char *)(iVar1 + 0x1c) == '\x02'" (pointer_expression "*(char *)(iVar1 + 0x1c)" * (cast_expression "(char *)(iVar1 + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1c)" ( (binary_expression "iVar1 + 0x1c" identifier + number_literal) )))) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e310;\n    }" { (if_statement "if ((uVar5 & 0x70) == 0x10) goto LAB_0001e310;" if (parenthesized_expression "((uVar5 & 0x70) == 0x10)" ( (binary_expression "(uVar5 & 0x70) == 0x10" (parenthesized_expression "(uVar5 & 0x70)" ( (binary_expression "uVar5 & 0x70" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001e310;" goto statement_identifier ;)) }) (else_clause "else if (*(char *)(iVar1 + 0x1c) != '\x03') goto LAB_0001e310;" else (if_statement "if (*(char *)(iVar1 + 0x1c) != '\x03') goto LAB_0001e310;" if (parenthesized_expression "(*(char *)(iVar1 + 0x1c) != '\x03')" ( (binary_expression "*(char *)(iVar1 + 0x1c) != '\x03'" (pointer_expression "*(char *)(iVar1 + 0x1c)" * (cast_expression "(char *)(iVar1 + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1c)" ( (binary_expression "iVar1 + 0x1c" identifier + number_literal) )))) != (char_literal "'\x03'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001e310;" goto statement_identifier ;)))) (expression_statement "*(uint *)(iVar1 + 0xc) = uVar5;" (assignment_expression "*(uint *)(iVar1 + 0xc) = uVar5" (pointer_expression "*(uint *)(iVar1 + 0xc)" * (cast_expression "(uint *)(iVar1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))) = identifier) ;) (if_statement "if (uVar5 != 0xff) {\n      FUN_0002cab0();\n      return;\n    }" if (parenthesized_expression "(uVar5 != 0xff)" ( (binary_expression "uVar5 != 0xff" identifier != number_literal) )) (compound_statement "{\n      FUN_0002cab0();\n      return;\n    }" { (expression_statement "FUN_0002cab0();" (call_expression "FUN_0002cab0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_0002a7b0(uVar4);\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\nLAB_0001e310:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }" else (compound_statement "{\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_0002a7b0(uVar4);\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\nLAB_0001e310:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }" { (expression_statement "uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);" (assignment_expression "uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5)" identifier = (call_expression "dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5)" identifier (argument_list "(0,"invalid or unsupported encoding in .cfi_lsda",5)" ( number_literal , (string_literal ""invalid or unsupported encoding in .cfi_lsda"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002a7b0(uVar4);" (call_expression "FUN_0002a7b0(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "FUN_0001e180();" (call_expression "FUN_0001e180()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00022030(0,iVar1 + 0x10,0);" (call_expression "FUN_00022030(0,iVar1 + 0x10,0)" identifier (argument_list "(0,iVar1 + 0x10,0)" ( number_literal , (binary_expression "iVar1 + 0x10" identifier + number_literal) , number_literal ))) ;) (labeled_statement "LAB_0001e310:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;" statement_identifier : (expression_statement "*(undefined4 *)(iVar1 + 0xc) = 0xff;" (assignment_expression "*(undefined4 *)(iVar1 + 0xc) = 0xff" (pointer_expression "*(undefined4 *)(iVar1 + 0xc)" * (cast_expression "(undefined4 *)(iVar1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))) = number_literal) ;)) }))) (expression_statement "pcVar6 = "wrong third argument to .cfi_val_encoded_addr";" (assignment_expression "pcVar6 = "wrong third argument to .cfi_val_encoded_addr"" identifier = (string_literal ""wrong third argument to .cfi_val_encoded_addr"" " string_content ")) ;) (labeled_statement "LAB_0001e322:\n  uVar4 = dcgettext(0,pcVar6,5);" statement_identifier : (expression_statement "uVar4 = dcgettext(0,pcVar6,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar6,5)" identifier = (call_expression "dcgettext(0,pcVar6,5)" identifier (argument_list "(0,pcVar6,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0002a7b0(uVar4);" (call_expression "FUN_0002a7b0(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "FUN_0002c8a0();" (call_expression "FUN_0002c8a0()" 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_val_encoded_addr(int ignored)\n\n{\n  expressionS *resultP;\n  char cVar1;\n  frch_cfi_data *pfVar2;\n  symbolS *psVar3;\n  frchainS *pfVar4;\n  fragS *pfVar5;\n  symbolS *psVar6;\n  cfi_insn_data *pcVar7;\n  uint uVar8;\n  char *pcVar9;\n  valueT vVar10;\n  addressT aVar11;\n  \n  if (frchain_now->frch_cfi_data == (frch_cfi_data *)0x0) {\n    pcVar9 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e322;\n  }\n  pfVar5 = symbol_get_frag(frchain_now->frch_cfi_data->last_address);\n  if (pfVar5 == frag_now) {\n    vVar10 = S_GET_VALUE(frchain_now->frch_cfi_data->last_address);\n    aVar11 = frag_now_fix();\n    if (vVar10 != aVar11) goto LAB_0001e231;\n  }\n  else {\nLAB_0001e231:\n    psVar6 = symbol_temp_new_now();\n    pcVar7 = alloc_cfi_insn_data();\n    pfVar4 = frchain_now;\n    pcVar7->insn = 0x40;\n    pfVar2 = pfVar4->frch_cfi_data;\n    psVar3 = pfVar2->last_address;\n    (pcVar7->u).ll.lab2 = psVar6;\n    (pcVar7->u).ri.reg = (uint)psVar3;\n    pfVar2->last_address = psVar6;\n  }\n  pcVar7 = alloc_cfi_insn_data();\n  pcVar7->insn = 0x105;\n  resultP = &(pcVar7->u).ea.exp;\n  uVar8 = cfi_parse_reg();\n  (pcVar7->u).ri.reg = uVar8;\n  cfi_parse_separator();\n  uVar8 = get_absolute_expression();\n  if (((((uVar8 & 0xffffff00) == 0) && ((uVar8 & 0x60) == 0)) && ((uVar8 & 7) < 5)) &&\n     ((uVar8 & 7) != 1)) {\n    cfi_parse_separator();\n    expr(0,resultP,expr_evaluate);\n    cVar1 = *(char *)((int)&pcVar7->u + 0x14);\n    if (cVar1 == '\x02') {\n      if ((uVar8 & 0x70) == 0x10) goto LAB_0001e310;\n    }\n    else if (cVar1 != '\x03') goto LAB_0001e310;\n    (pcVar7->u).ri.offset = uVar8;\n    if (uVar8 != 0xff) {\n      demand_empty_rest_of_line();\n      return;\n    }\n  }\n  else {\n    pcVar9 = (char *)dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    as_bad(pcVar9);\n    cfi_parse_separator();\n    expr(0,resultP,expr_evaluate);\nLAB_0001e310:\n    (pcVar7->u).ri.offset = 0xff;\n  }\n  pcVar9 = "wrong third argument to .cfi_val_encoded_addr";\nLAB_0001e322:\n  pcVar9 = (char *)dcgettext(0,pcVar9,5);\n  as_bad(pcVar9);\n  ignore_rest_of_line();\n  return;\n}\n\n" comment comment (function_definition "void dot_cfi_val_encoded_addr(int ignored)\n\n{\n  expressionS *resultP;\n  char cVar1;\n  frch_cfi_data *pfVar2;\n  symbolS *psVar3;\n  frchainS *pfVar4;\n  fragS *pfVar5;\n  symbolS *psVar6;\n  cfi_insn_data *pcVar7;\n  uint uVar8;\n  char *pcVar9;\n  valueT vVar10;\n  addressT aVar11;\n  \n  if (frchain_now->frch_cfi_data == (frch_cfi_data *)0x0) {\n    pcVar9 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e322;\n  }\n  pfVar5 = symbol_get_frag(frchain_now->frch_cfi_data->last_address);\n  if (pfVar5 == frag_now) {\n    vVar10 = S_GET_VALUE(frchain_now->frch_cfi_data->last_address);\n    aVar11 = frag_now_fix();\n    if (vVar10 != aVar11) goto LAB_0001e231;\n  }\n  else {\nLAB_0001e231:\n    psVar6 = symbol_temp_new_now();\n    pcVar7 = alloc_cfi_insn_data();\n    pfVar4 = frchain_now;\n    pcVar7->insn = 0x40;\n    pfVar2 = pfVar4->frch_cfi_data;\n    psVar3 = pfVar2->last_address;\n    (pcVar7->u).ll.lab2 = psVar6;\n    (pcVar7->u).ri.reg = (uint)psVar3;\n    pfVar2->last_address = psVar6;\n  }\n  pcVar7 = alloc_cfi_insn_data();\n  pcVar7->insn = 0x105;\n  resultP = &(pcVar7->u).ea.exp;\n  uVar8 = cfi_parse_reg();\n  (pcVar7->u).ri.reg = uVar8;\n  cfi_parse_separator();\n  uVar8 = get_absolute_expression();\n  if (((((uVar8 & 0xffffff00) == 0) && ((uVar8 & 0x60) == 0)) && ((uVar8 & 7) < 5)) &&\n     ((uVar8 & 7) != 1)) {\n    cfi_parse_separator();\n    expr(0,resultP,expr_evaluate);\n    cVar1 = *(char *)((int)&pcVar7->u + 0x14);\n    if (cVar1 == '\x02') {\n      if ((uVar8 & 0x70) == 0x10) goto LAB_0001e310;\n    }\n    else if (cVar1 != '\x03') goto LAB_0001e310;\n    (pcVar7->u).ri.offset = uVar8;\n    if (uVar8 != 0xff) {\n      demand_empty_rest_of_line();\n      return;\n    }\n  }\n  else {\n    pcVar9 = (char *)dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    as_bad(pcVar9);\n    cfi_parse_separator();\n    expr(0,resultP,expr_evaluate);\nLAB_0001e310:\n    (pcVar7->u).ri.offset = 0xff;\n  }\n  pcVar9 = "wrong third argument to .cfi_val_encoded_addr";\nLAB_0001e322:\n  pcVar9 = (char *)dcgettext(0,pcVar9,5);\n  as_bad(pcVar9);\n  ignore_rest_of_line();\n  return;\n}" primitive_type (function_declarator "dot_cfi_val_encoded_addr(int ignored)" identifier (parameter_list "(int ignored)" ( (parameter_declaration "int ignored" primitive_type identifier) ))) (compound_statement "{\n  expressionS *resultP;\n  char cVar1;\n  frch_cfi_data *pfVar2;\n  symbolS *psVar3;\n  frchainS *pfVar4;\n  fragS *pfVar5;\n  symbolS *psVar6;\n  cfi_insn_data *pcVar7;\n  uint uVar8;\n  char *pcVar9;\n  valueT vVar10;\n  addressT aVar11;\n  \n  if (frchain_now->frch_cfi_data == (frch_cfi_data *)0x0) {\n    pcVar9 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e322;\n  }\n  pfVar5 = symbol_get_frag(frchain_now->frch_cfi_data->last_address);\n  if (pfVar5 == frag_now) {\n    vVar10 = S_GET_VALUE(frchain_now->frch_cfi_data->last_address);\n    aVar11 = frag_now_fix();\n    if (vVar10 != aVar11) goto LAB_0001e231;\n  }\n  else {\nLAB_0001e231:\n    psVar6 = symbol_temp_new_now();\n    pcVar7 = alloc_cfi_insn_data();\n    pfVar4 = frchain_now;\n    pcVar7->insn = 0x40;\n    pfVar2 = pfVar4->frch_cfi_data;\n    psVar3 = pfVar2->last_address;\n    (pcVar7->u).ll.lab2 = psVar6;\n    (pcVar7->u).ri.reg = (uint)psVar3;\n    pfVar2->last_address = psVar6;\n  }\n  pcVar7 = alloc_cfi_insn_data();\n  pcVar7->insn = 0x105;\n  resultP = &(pcVar7->u).ea.exp;\n  uVar8 = cfi_parse_reg();\n  (pcVar7->u).ri.reg = uVar8;\n  cfi_parse_separator();\n  uVar8 = get_absolute_expression();\n  if (((((uVar8 & 0xffffff00) == 0) && ((uVar8 & 0x60) == 0)) && ((uVar8 & 7) < 5)) &&\n     ((uVar8 & 7) != 1)) {\n    cfi_parse_separator();\n    expr(0,resultP,expr_evaluate);\n    cVar1 = *(char *)((int)&pcVar7->u + 0x14);\n    if (cVar1 == '\x02') {\n      if ((uVar8 & 0x70) == 0x10) goto LAB_0001e310;\n    }\n    else if (cVar1 != '\x03') goto LAB_0001e310;\n    (pcVar7->u).ri.offset = uVar8;\n    if (uVar8 != 0xff) {\n      demand_empty_rest_of_line();\n      return;\n    }\n  }\n  else {\n    pcVar9 = (char *)dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    as_bad(pcVar9);\n    cfi_parse_separator();\n    expr(0,resultP,expr_evaluate);\nLAB_0001e310:\n    (pcVar7->u).ri.offset = 0xff;\n  }\n  pcVar9 = "wrong third argument to .cfi_val_encoded_addr";\nLAB_0001e322:\n  pcVar9 = (char *)dcgettext(0,pcVar9,5);\n  as_bad(pcVar9);\n  ignore_rest_of_line();\n  return;\n}" { (declaration "expressionS *resultP;" type_identifier (pointer_declarator "*resultP" * identifier) ;) (declaration "char cVar1;" primitive_type identifier ;) (declaration "frch_cfi_data *pfVar2;" type_identifier (pointer_declarator "*pfVar2" * identifier) ;) (declaration "symbolS *psVar3;" type_identifier (pointer_declarator "*psVar3" * identifier) ;) (declaration "frchainS *pfVar4;" type_identifier (pointer_declarator "*pfVar4" * identifier) ;) (declaration "fragS *pfVar5;" type_identifier (pointer_declarator "*pfVar5" * identifier) ;) (declaration "symbolS *psVar6;" type_identifier (pointer_declarator "*psVar6" * identifier) ;) (declaration "cfi_insn_data *pcVar7;" type_identifier (pointer_declarator "*pcVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "valueT vVar10;" type_identifier identifier ;) (declaration "addressT aVar11;" type_identifier identifier ;) (if_statement "if (frchain_now->frch_cfi_data == (frch_cfi_data *)0x0) {\n    pcVar9 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e322;\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    pcVar9 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e322;\n  }" { (expression_statement "pcVar9 = "CFI instruction used without previous .cfi_startproc";" (assignment_expression "pcVar9 = "CFI instruction used without previous .cfi_startproc"" identifier = (string_literal ""CFI instruction used without previous .cfi_startproc"" " string_content ")) ;) (goto_statement "goto LAB_0001e322;" goto statement_identifier ;) })) (expression_statement "pfVar5 = symbol_get_frag(frchain_now->frch_cfi_data->last_address);" (assignment_expression "pfVar5 = symbol_get_frag(frchain_now->frch_cfi_data->last_address)" identifier = (call_expression "symbol_get_frag(frchain_now->frch_cfi_data->last_address)" identifier (argument_list "(frchain_now->frch_cfi_data->last_address)" ( (field_expression "frchain_now->frch_cfi_data->last_address" (field_expression "frchain_now->frch_cfi_data" identifier -> field_identifier) -> field_identifier) )))) ;) (if_statement "if (pfVar5 == frag_now) {\n    vVar10 = S_GET_VALUE(frchain_now->frch_cfi_data->last_address);\n    aVar11 = frag_now_fix();\n    if (vVar10 != aVar11) goto LAB_0001e231;\n  }\n  else {\nLAB_0001e231:\n    psVar6 = symbol_temp_new_now();\n    pcVar7 = alloc_cfi_insn_data();\n    pfVar4 = frchain_now;\n    pcVar7->insn = 0x40;\n    pfVar2 = pfVar4->frch_cfi_data;\n    psVar3 = pfVar2->last_address;\n    (pcVar7->u).ll.lab2 = psVar6;\n    (pcVar7->u).ri.reg = (uint)psVar3;\n    pfVar2->last_address = psVar6;\n  }" if (parenthesized_expression "(pfVar5 == frag_now)" ( (binary_expression "pfVar5 == frag_now" identifier == identifier) )) (compound_statement "{\n    vVar10 = S_GET_VALUE(frchain_now->frch_cfi_data->last_address);\n    aVar11 = frag_now_fix();\n    if (vVar10 != aVar11) goto LAB_0001e231;\n  }" { (expression_statement "vVar10 = S_GET_VALUE(frchain_now->frch_cfi_data->last_address);" (assignment_expression "vVar10 = S_GET_VALUE(frchain_now->frch_cfi_data->last_address)" identifier = (call_expression "S_GET_VALUE(frchain_now->frch_cfi_data->last_address)" identifier (argument_list "(frchain_now->frch_cfi_data->last_address)" ( (field_expression "frchain_now->frch_cfi_data->last_address" (field_expression "frchain_now->frch_cfi_data" identifier -> field_identifier) -> field_identifier) )))) ;) (expression_statement "aVar11 = frag_now_fix();" (assignment_expression "aVar11 = frag_now_fix()" identifier = (call_expression "frag_now_fix()" identifier (argument_list "()" ( )))) ;) (if_statement "if (vVar10 != aVar11) goto LAB_0001e231;" if (parenthesized_expression "(vVar10 != aVar11)" ( (binary_expression "vVar10 != aVar11" identifier != identifier) )) (goto_statement "goto LAB_0001e231;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_0001e231:\n    psVar6 = symbol_temp_new_now();\n    pcVar7 = alloc_cfi_insn_data();\n    pfVar4 = frchain_now;\n    pcVar7->insn = 0x40;\n    pfVar2 = pfVar4->frch_cfi_data;\n    psVar3 = pfVar2->last_address;\n    (pcVar7->u).ll.lab2 = psVar6;\n    (pcVar7->u).ri.reg = (uint)psVar3;\n    pfVar2->last_address = psVar6;\n  }" else (compound_statement "{\nLAB_0001e231:\n    psVar6 = symbol_temp_new_now();\n    pcVar7 = alloc_cfi_insn_data();\n    pfVar4 = frchain_now;\n    pcVar7->insn = 0x40;\n    pfVar2 = pfVar4->frch_cfi_data;\n    psVar3 = pfVar2->last_address;\n    (pcVar7->u).ll.lab2 = psVar6;\n    (pcVar7->u).ri.reg = (uint)psVar3;\n    pfVar2->last_address = psVar6;\n  }" { (labeled_statement "LAB_0001e231:\n    psVar6 = symbol_temp_new_now();" statement_identifier : (expression_statement "psVar6 = symbol_temp_new_now();" (assignment_expression "psVar6 = symbol_temp_new_now()" identifier = (call_expression "symbol_temp_new_now()" identifier (argument_list "()" ( )))) ;)) (expression_statement "pcVar7 = alloc_cfi_insn_data();" (assignment_expression "pcVar7 = alloc_cfi_insn_data()" identifier = (call_expression "alloc_cfi_insn_data()" identifier (argument_list "()" ( )))) ;) (expression_statement "pfVar4 = frchain_now;" (assignment_expression "pfVar4 = frchain_now" identifier = identifier) ;) (expression_statement "pcVar7->insn = 0x40;" (assignment_expression "pcVar7->insn = 0x40" (field_expression "pcVar7->insn" identifier -> field_identifier) = number_literal) ;) (expression_statement "pfVar2 = pfVar4->frch_cfi_data;" (assignment_expression "pfVar2 = pfVar4->frch_cfi_data" identifier = (field_expression "pfVar4->frch_cfi_data" identifier -> field_identifier)) ;) (expression_statement "psVar3 = pfVar2->last_address;" (assignment_expression "psVar3 = pfVar2->last_address" identifier = (field_expression "pfVar2->last_address" identifier -> field_identifier)) ;) (expression_statement "(pcVar7->u).ll.lab2 = psVar6;" (assignment_expression "(pcVar7->u).ll.lab2 = psVar6" (field_expression "(pcVar7->u).ll.lab2" (field_expression "(pcVar7->u).ll" (parenthesized_expression "(pcVar7->u)" ( (field_expression "pcVar7->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(pcVar7->u).ri.reg = (uint)psVar3;" (assignment_expression "(pcVar7->u).ri.reg = (uint)psVar3" (field_expression "(pcVar7->u).ri.reg" (field_expression "(pcVar7->u).ri" (parenthesized_expression "(pcVar7->u)" ( (field_expression "pcVar7->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(uint)psVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pfVar2->last_address = psVar6;" (assignment_expression "pfVar2->last_address = psVar6" (field_expression "pfVar2->last_address" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "pcVar7 = alloc_cfi_insn_data();" (assignment_expression "pcVar7 = alloc_cfi_insn_data()" identifier = (call_expression "alloc_cfi_insn_data()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar7->insn = 0x105;" (assignment_expression "pcVar7->insn = 0x105" (field_expression "pcVar7->insn" identifier -> field_identifier) = number_literal) ;) (expression_statement "resultP = &(pcVar7->u).ea.exp;" (assignment_expression "resultP = &(pcVar7->u).ea.exp" identifier = (pointer_expression "&(pcVar7->u).ea.exp" & (field_expression "(pcVar7->u).ea.exp" (field_expression "(pcVar7->u).ea" (parenthesized_expression "(pcVar7->u)" ( (field_expression "pcVar7->u" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "uVar8 = cfi_parse_reg();" (assignment_expression "uVar8 = cfi_parse_reg()" identifier = (call_expression "cfi_parse_reg()" identifier (argument_list "()" ( )))) ;) (expression_statement "(pcVar7->u).ri.reg = uVar8;" (assignment_expression "(pcVar7->u).ri.reg = uVar8" (field_expression "(pcVar7->u).ri.reg" (field_expression "(pcVar7->u).ri" (parenthesized_expression "(pcVar7->u)" ( (field_expression "pcVar7->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "cfi_parse_separator();" (call_expression "cfi_parse_separator()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar8 = get_absolute_expression();" (assignment_expression "uVar8 = get_absolute_expression()" identifier = (call_expression "get_absolute_expression()" identifier (argument_list "()" ( )))) ;) (if_statement "if (((((uVar8 & 0xffffff00) == 0) && ((uVar8 & 0x60) == 0)) && ((uVar8 & 7) < 5)) &&\n     ((uVar8 & 7) != 1)) {\n    cfi_parse_separator();\n    expr(0,resultP,expr_evaluate);\n    cVar1 = *(char *)((int)&pcVar7->u + 0x14);\n    if (cVar1 == '\x02') {\n      if ((uVar8 & 0x70) == 0x10) goto LAB_0001e310;\n    }\n    else if (cVar1 != '\x03') goto LAB_0001e310;\n    (pcVar7->u).ri.offset = uVar8;\n    if (uVar8 != 0xff) {\n      demand_empty_rest_of_line();\n      return;\n    }\n  }\n  else {\n    pcVar9 = (char *)dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    as_bad(pcVar9);\n    cfi_parse_separator();\n    expr(0,resultP,expr_evaluate);\nLAB_0001e310:\n    (pcVar7->u).ri.offset = 0xff;\n  }" if (parenthesized_expression "(((((uVar8 & 0xffffff00) == 0) && ((uVar8 & 0x60) == 0)) && ((uVar8 & 7) < 5)) &&\n     ((uVar8 & 7) != 1))" ( (binary_expression "((((uVar8 & 0xffffff00) == 0) && ((uVar8 & 0x60) == 0)) && ((uVar8 & 7) < 5)) &&\n     ((uVar8 & 7) != 1)" (parenthesized_expression "((((uVar8 & 0xffffff00) == 0) && ((uVar8 & 0x60) == 0)) && ((uVar8 & 7) < 5))" ( (binary_expression "(((uVar8 & 0xffffff00) == 0) && ((uVar8 & 0x60) == 0)) && ((uVar8 & 7) < 5)" (parenthesized_expression "(((uVar8 & 0xffffff00) == 0) && ((uVar8 & 0x60) == 0))" ( (binary_expression "((uVar8 & 0xffffff00) == 0) && ((uVar8 & 0x60) == 0)" (parenthesized_expression "((uVar8 & 0xffffff00) == 0)" ( (binary_expression "(uVar8 & 0xffffff00) == 0" (parenthesized_expression "(uVar8 & 0xffffff00)" ( (binary_expression "uVar8 & 0xffffff00" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((uVar8 & 0x60) == 0)" ( (binary_expression "(uVar8 & 0x60) == 0" (parenthesized_expression "(uVar8 & 0x60)" ( (binary_expression "uVar8 & 0x60" identifier & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((uVar8 & 7) < 5)" ( (binary_expression "(uVar8 & 7) < 5" (parenthesized_expression "(uVar8 & 7)" ( (binary_expression "uVar8 & 7" identifier & number_literal) )) < number_literal) ))) )) && (parenthesized_expression "((uVar8 & 7) != 1)" ( (binary_expression "(uVar8 & 7) != 1" (parenthesized_expression "(uVar8 & 7)" ( (binary_expression "uVar8 & 7" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    cfi_parse_separator();\n    expr(0,resultP,expr_evaluate);\n    cVar1 = *(char *)((int)&pcVar7->u + 0x14);\n    if (cVar1 == '\x02') {\n      if ((uVar8 & 0x70) == 0x10) goto LAB_0001e310;\n    }\n    else if (cVar1 != '\x03') goto LAB_0001e310;\n    (pcVar7->u).ri.offset = uVar8;\n    if (uVar8 != 0xff) {\n      demand_empty_rest_of_line();\n      return;\n    }\n  }" { (expression_statement "cfi_parse_separator();" (call_expression "cfi_parse_separator()" identifier (argument_list "()" ( ))) ;) (expression_statement "expr(0,resultP,expr_evaluate);" (call_expression "expr(0,resultP,expr_evaluate)" identifier (argument_list "(0,resultP,expr_evaluate)" ( number_literal , identifier , identifier ))) ;) (expression_statement "cVar1 = *(char *)((int)&pcVar7->u + 0x14);" (assignment_expression "cVar1 = *(char *)((int)&pcVar7->u + 0x14)" identifier = (pointer_expression "*(char *)((int)&pcVar7->u + 0x14)" * (cast_expression "(char *)((int)&pcVar7->u + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pcVar7->u + 0x14)" ( (binary_expression "(int)&pcVar7->u + 0x14" (cast_expression "(int)&pcVar7->u" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pcVar7->u" & (field_expression "pcVar7->u" identifier -> field_identifier))) + number_literal) ))))) ;) (if_statement "if (cVar1 == '\x02') {\n      if ((uVar8 & 0x70) == 0x10) goto LAB_0001e310;\n    }\n    else if (cVar1 != '\x03') goto LAB_0001e310;" if (parenthesized_expression "(cVar1 == '\x02')" ( (binary_expression "cVar1 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n      if ((uVar8 & 0x70) == 0x10) goto LAB_0001e310;\n    }" { (if_statement "if ((uVar8 & 0x70) == 0x10) goto LAB_0001e310;" if (parenthesized_expression "((uVar8 & 0x70) == 0x10)" ( (binary_expression "(uVar8 & 0x70) == 0x10" (parenthesized_expression "(uVar8 & 0x70)" ( (binary_expression "uVar8 & 0x70" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001e310;" goto statement_identifier ;)) }) (else_clause "else if (cVar1 != '\x03') goto LAB_0001e310;" else (if_statement "if (cVar1 != '\x03') goto LAB_0001e310;" if (parenthesized_expression "(cVar1 != '\x03')" ( (binary_expression "cVar1 != '\x03'" identifier != (char_literal "'\x03'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001e310;" goto statement_identifier ;)))) (expression_statement "(pcVar7->u).ri.offset = uVar8;" (assignment_expression "(pcVar7->u).ri.offset = uVar8" (field_expression "(pcVar7->u).ri.offset" (field_expression "(pcVar7->u).ri" (parenthesized_expression "(pcVar7->u)" ( (field_expression "pcVar7->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (if_statement "if (uVar8 != 0xff) {\n      demand_empty_rest_of_line();\n      return;\n    }" if (parenthesized_expression "(uVar8 != 0xff)" ( (binary_expression "uVar8 != 0xff" identifier != number_literal) )) (compound_statement "{\n      demand_empty_rest_of_line();\n      return;\n    }" { (expression_statement "demand_empty_rest_of_line();" (call_expression "demand_empty_rest_of_line()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n    pcVar9 = (char *)dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    as_bad(pcVar9);\n    cfi_parse_separator();\n    expr(0,resultP,expr_evaluate);\nLAB_0001e310:\n    (pcVar7->u).ri.offset = 0xff;\n  }" else (compound_statement "{\n    pcVar9 = (char *)dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    as_bad(pcVar9);\n    cfi_parse_separator();\n    expr(0,resultP,expr_evaluate);\nLAB_0001e310:\n    (pcVar7->u).ri.offset = 0xff;\n  }" { (expression_statement "pcVar9 = (char *)dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);" (assignment_expression "pcVar9 = (char *)dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5)" identifier = (cast_expression "(char *)dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5)" identifier (argument_list "(0,"invalid or unsupported encoding in .cfi_lsda",5)" ( number_literal , (string_literal ""invalid or unsupported encoding in .cfi_lsda"" " string_content ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar9);" (call_expression "as_bad(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) (expression_statement "cfi_parse_separator();" (call_expression "cfi_parse_separator()" identifier (argument_list "()" ( ))) ;) (expression_statement "expr(0,resultP,expr_evaluate);" (call_expression "expr(0,resultP,expr_evaluate)" identifier (argument_list "(0,resultP,expr_evaluate)" ( number_literal , identifier , identifier ))) ;) (labeled_statement "LAB_0001e310:\n    (pcVar7->u).ri.offset = 0xff;" statement_identifier : (expression_statement "(pcVar7->u).ri.offset = 0xff;" (assignment_expression "(pcVar7->u).ri.offset = 0xff" (field_expression "(pcVar7->u).ri.offset" (field_expression "(pcVar7->u).ri" (parenthesized_expression "(pcVar7->u)" ( (field_expression "pcVar7->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;)) }))) (expression_statement "pcVar9 = "wrong third argument to .cfi_val_encoded_addr";" (assignment_expression "pcVar9 = "wrong third argument to .cfi_val_encoded_addr"" identifier = (string_literal ""wrong third argument to .cfi_val_encoded_addr"" " string_content ")) ;) (labeled_statement "LAB_0001e322:\n  pcVar9 = (char *)dcgettext(0,pcVar9,5);" statement_identifier : (expression_statement "pcVar9 = (char *)dcgettext(0,pcVar9,5);" (assignment_expression "pcVar9 = (char *)dcgettext(0,pcVar9,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar9,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar9,5)" identifier (argument_list "(0,pcVar9,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "as_bad(pcVar9);" (call_expression "as_bad(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) (expression_statement "ignore_rest_of_line();" (call_expression "ignore_rest_of_line()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0001e1f0(void)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  char *pcVar6;\n  \n  if (*(int *)(DAT_0007cfc8 + 0x48) == 0) {\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e322;\n  }\n  iVar1 = FUN_000391f0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));\n  if (iVar1 == DAT_0007ce70) {\n    iVar1 = FUN_00037db0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));\n    iVar3 = FUN_00023920();\n    if (iVar1 != iVar3) goto LAB_0001e231;\n  }\n  else {\nLAB_0001e231:\n    uVar2 = FUN_00036bb0();\n    iVar3 = FUN_0001d3f0();\n    iVar1 = DAT_0007cfc8;\n    *(undefined4 *)(iVar3 + 4) = 0x40;\n    iVar1 = *(int *)(iVar1 + 0x48);\n    uVar4 = *(undefined4 *)(iVar1 + 4);\n    *(undefined4 *)(iVar3 + 0xc) = uVar2;\n    *(undefined4 *)(iVar3 + 8) = uVar4;\n    *(undefined4 *)(iVar1 + 4) = uVar2;\n  }\n  iVar1 = FUN_0001d3f0();\n  *(undefined4 *)(iVar1 + 4) = 0x105;\n  uVar4 = FUN_0001d4f0();\n  *(undefined4 *)(iVar1 + 8) = uVar4;\n  FUN_0001e180();\n  uVar5 = FUN_0002bec0();\n  if (((((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)) && ((uVar5 & 7) < 5)) &&\n     ((uVar5 & 7) != 1)) {\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x1c) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e310;\n    }\n    else if (*(char *)(iVar1 + 0x1c) != '\x03') goto LAB_0001e310;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar5 != 0xff) {\n      FUN_0002cab0();\n      return;\n    }\n  }\n  else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_0002a7b0(uVar4);\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\nLAB_0001e310:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }\n  pcVar6 = "wrong third argument to .cfi_val_encoded_addr";\nLAB_0001e322:\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_0002a7b0(uVar4);\n  FUN_0002c8a0();\n  return;\n}\n\n" (function_definition "void FUN_0001e1f0(void)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  char *pcVar6;\n  \n  if (*(int *)(DAT_0007cfc8 + 0x48) == 0) {\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e322;\n  }\n  iVar1 = FUN_000391f0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));\n  if (iVar1 == DAT_0007ce70) {\n    iVar1 = FUN_00037db0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));\n    iVar3 = FUN_00023920();\n    if (iVar1 != iVar3) goto LAB_0001e231;\n  }\n  else {\nLAB_0001e231:\n    uVar2 = FUN_00036bb0();\n    iVar3 = FUN_0001d3f0();\n    iVar1 = DAT_0007cfc8;\n    *(undefined4 *)(iVar3 + 4) = 0x40;\n    iVar1 = *(int *)(iVar1 + 0x48);\n    uVar4 = *(undefined4 *)(iVar1 + 4);\n    *(undefined4 *)(iVar3 + 0xc) = uVar2;\n    *(undefined4 *)(iVar3 + 8) = uVar4;\n    *(undefined4 *)(iVar1 + 4) = uVar2;\n  }\n  iVar1 = FUN_0001d3f0();\n  *(undefined4 *)(iVar1 + 4) = 0x105;\n  uVar4 = FUN_0001d4f0();\n  *(undefined4 *)(iVar1 + 8) = uVar4;\n  FUN_0001e180();\n  uVar5 = FUN_0002bec0();\n  if (((((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)) && ((uVar5 & 7) < 5)) &&\n     ((uVar5 & 7) != 1)) {\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x1c) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e310;\n    }\n    else if (*(char *)(iVar1 + 0x1c) != '\x03') goto LAB_0001e310;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar5 != 0xff) {\n      FUN_0002cab0();\n      return;\n    }\n  }\n  else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_0002a7b0(uVar4);\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\nLAB_0001e310:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }\n  pcVar6 = "wrong third argument to .cfi_val_encoded_addr";\nLAB_0001e322:\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_0002a7b0(uVar4);\n  FUN_0002c8a0();\n  return;\n}" primitive_type (function_declarator "FUN_0001e1f0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  char *pcVar6;\n  \n  if (*(int *)(DAT_0007cfc8 + 0x48) == 0) {\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e322;\n  }\n  iVar1 = FUN_000391f0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));\n  if (iVar1 == DAT_0007ce70) {\n    iVar1 = FUN_00037db0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));\n    iVar3 = FUN_00023920();\n    if (iVar1 != iVar3) goto LAB_0001e231;\n  }\n  else {\nLAB_0001e231:\n    uVar2 = FUN_00036bb0();\n    iVar3 = FUN_0001d3f0();\n    iVar1 = DAT_0007cfc8;\n    *(undefined4 *)(iVar3 + 4) = 0x40;\n    iVar1 = *(int *)(iVar1 + 0x48);\n    uVar4 = *(undefined4 *)(iVar1 + 4);\n    *(undefined4 *)(iVar3 + 0xc) = uVar2;\n    *(undefined4 *)(iVar3 + 8) = uVar4;\n    *(undefined4 *)(iVar1 + 4) = uVar2;\n  }\n  iVar1 = FUN_0001d3f0();\n  *(undefined4 *)(iVar1 + 4) = 0x105;\n  uVar4 = FUN_0001d4f0();\n  *(undefined4 *)(iVar1 + 8) = uVar4;\n  FUN_0001e180();\n  uVar5 = FUN_0002bec0();\n  if (((((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)) && ((uVar5 & 7) < 5)) &&\n     ((uVar5 & 7) != 1)) {\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x1c) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e310;\n    }\n    else if (*(char *)(iVar1 + 0x1c) != '\x03') goto LAB_0001e310;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar5 != 0xff) {\n      FUN_0002cab0();\n      return;\n    }\n  }\n  else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_0002a7b0(uVar4);\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\nLAB_0001e310:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }\n  pcVar6 = "wrong third argument to .cfi_val_encoded_addr";\nLAB_0001e322:\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_0002a7b0(uVar4);\n  FUN_0002c8a0();\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (if_statement "if (*(int *)(DAT_0007cfc8 + 0x48) == 0) {\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e322;\n  }" if (parenthesized_expression "(*(int *)(DAT_0007cfc8 + 0x48) == 0)" ( (binary_expression "*(int *)(DAT_0007cfc8 + 0x48) == 0" (pointer_expression "*(int *)(DAT_0007cfc8 + 0x48)" * (cast_expression "(int *)(DAT_0007cfc8 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0007cfc8 + 0x48)" ( (binary_expression "DAT_0007cfc8 + 0x48" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e322;\n  }" { (expression_statement "pcVar6 = "CFI instruction used without previous .cfi_startproc";" (assignment_expression "pcVar6 = "CFI instruction used without previous .cfi_startproc"" identifier = (string_literal ""CFI instruction used without previous .cfi_startproc"" " string_content ")) ;) (goto_statement "goto LAB_0001e322;" goto statement_identifier ;) })) (expression_statement "iVar1 = FUN_000391f0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));" (assignment_expression "iVar1 = FUN_000391f0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4))" identifier = (call_expression "FUN_000391f0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4))" identifier (argument_list "(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4))" ( (pointer_expression "*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4)" * (cast_expression "(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0007cfc8 + 0x48) + 4)" ( (binary_expression "*(int *)(DAT_0007cfc8 + 0x48) + 4" (pointer_expression "*(int *)(DAT_0007cfc8 + 0x48)" * (cast_expression "(int *)(DAT_0007cfc8 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0007cfc8 + 0x48)" ( (binary_expression "DAT_0007cfc8 + 0x48" identifier + number_literal) )))) + number_literal) )))) )))) ;) (if_statement "if (iVar1 == DAT_0007ce70) {\n    iVar1 = FUN_00037db0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));\n    iVar3 = FUN_00023920();\n    if (iVar1 != iVar3) goto LAB_0001e231;\n  }\n  else {\nLAB_0001e231:\n    uVar2 = FUN_00036bb0();\n    iVar3 = FUN_0001d3f0();\n    iVar1 = DAT_0007cfc8;\n    *(undefined4 *)(iVar3 + 4) = 0x40;\n    iVar1 = *(int *)(iVar1 + 0x48);\n    uVar4 = *(undefined4 *)(iVar1 + 4);\n    *(undefined4 *)(iVar3 + 0xc) = uVar2;\n    *(undefined4 *)(iVar3 + 8) = uVar4;\n    *(undefined4 *)(iVar1 + 4) = uVar2;\n  }" if (parenthesized_expression "(iVar1 == DAT_0007ce70)" ( (binary_expression "iVar1 == DAT_0007ce70" identifier == identifier) )) (compound_statement "{\n    iVar1 = FUN_00037db0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));\n    iVar3 = FUN_00023920();\n    if (iVar1 != iVar3) goto LAB_0001e231;\n  }" { (expression_statement "iVar1 = FUN_00037db0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));" (assignment_expression "iVar1 = FUN_00037db0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4))" identifier = (call_expression "FUN_00037db0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4))" identifier (argument_list "(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4))" ( (pointer_expression "*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4)" * (cast_expression "(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0007cfc8 + 0x48) + 4)" ( (binary_expression "*(int *)(DAT_0007cfc8 + 0x48) + 4" (pointer_expression "*(int *)(DAT_0007cfc8 + 0x48)" * (cast_expression "(int *)(DAT_0007cfc8 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0007cfc8 + 0x48)" ( (binary_expression "DAT_0007cfc8 + 0x48" identifier + number_literal) )))) + number_literal) )))) )))) ;) (expression_statement "iVar3 = FUN_00023920();" (assignment_expression "iVar3 = FUN_00023920()" identifier = (call_expression "FUN_00023920()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 != iVar3) goto LAB_0001e231;" if (parenthesized_expression "(iVar1 != iVar3)" ( (binary_expression "iVar1 != iVar3" identifier != identifier) )) (goto_statement "goto LAB_0001e231;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_0001e231:\n    uVar2 = FUN_00036bb0();\n    iVar3 = FUN_0001d3f0();\n    iVar1 = DAT_0007cfc8;\n    *(undefined4 *)(iVar3 + 4) = 0x40;\n    iVar1 = *(int *)(iVar1 + 0x48);\n    uVar4 = *(undefined4 *)(iVar1 + 4);\n    *(undefined4 *)(iVar3 + 0xc) = uVar2;\n    *(undefined4 *)(iVar3 + 8) = uVar4;\n    *(undefined4 *)(iVar1 + 4) = uVar2;\n  }" else (compound_statement "{\nLAB_0001e231:\n    uVar2 = FUN_00036bb0();\n    iVar3 = FUN_0001d3f0();\n    iVar1 = DAT_0007cfc8;\n    *(undefined4 *)(iVar3 + 4) = 0x40;\n    iVar1 = *(int *)(iVar1 + 0x48);\n    uVar4 = *(undefined4 *)(iVar1 + 4);\n    *(undefined4 *)(iVar3 + 0xc) = uVar2;\n    *(undefined4 *)(iVar3 + 8) = uVar4;\n    *(undefined4 *)(iVar1 + 4) = uVar2;\n  }" { (labeled_statement "LAB_0001e231:\n    uVar2 = FUN_00036bb0();" statement_identifier : (expression_statement "uVar2 = FUN_00036bb0();" (assignment_expression "uVar2 = FUN_00036bb0()" identifier = (call_expression "FUN_00036bb0()" identifier (argument_list "()" ( )))) ;)) (expression_statement "iVar3 = FUN_0001d3f0();" (assignment_expression "iVar3 = FUN_0001d3f0()" identifier = (call_expression "FUN_0001d3f0()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar1 = DAT_0007cfc8;" (assignment_expression "iVar1 = DAT_0007cfc8" identifier = identifier) ;) (expression_statement "*(undefined4 *)(iVar3 + 4) = 0x40;" (assignment_expression "*(undefined4 *)(iVar3 + 4) = 0x40" (pointer_expression "*(undefined4 *)(iVar3 + 4)" * (cast_expression "(undefined4 *)(iVar3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar1 = *(int *)(iVar1 + 0x48);" (assignment_expression "iVar1 = *(int *)(iVar1 + 0x48)" identifier = (pointer_expression "*(int *)(iVar1 + 0x48)" * (cast_expression "(int *)(iVar1 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x48)" ( (binary_expression "iVar1 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)(iVar1 + 4);" (assignment_expression "uVar4 = *(undefined4 *)(iVar1 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar1 + 4)" * (cast_expression "(undefined4 *)(iVar1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 4)" ( (binary_expression "iVar1 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar3 + 0xc) = uVar2;" (assignment_expression "*(undefined4 *)(iVar3 + 0xc) = uVar2" (pointer_expression "*(undefined4 *)(iVar3 + 0xc)" * (cast_expression "(undefined4 *)(iVar3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar3 + 8) = uVar4;" (assignment_expression "*(undefined4 *)(iVar3 + 8) = uVar4" (pointer_expression "*(undefined4 *)(iVar3 + 8)" * (cast_expression "(undefined4 *)(iVar3 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar1 + 4) = uVar2;" (assignment_expression "*(undefined4 *)(iVar1 + 4) = uVar2" (pointer_expression "*(undefined4 *)(iVar1 + 4)" * (cast_expression "(undefined4 *)(iVar1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 4)" ( (binary_expression "iVar1 + 4" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar1 = FUN_0001d3f0();" (assignment_expression "iVar1 = FUN_0001d3f0()" identifier = (call_expression "FUN_0001d3f0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar1 + 4) = 0x105;" (assignment_expression "*(undefined4 *)(iVar1 + 4) = 0x105" (pointer_expression "*(undefined4 *)(iVar1 + 4)" * (cast_expression "(undefined4 *)(iVar1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 4)" ( (binary_expression "iVar1 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar4 = FUN_0001d4f0();" (assignment_expression "uVar4 = FUN_0001d4f0()" identifier = (call_expression "FUN_0001d4f0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar1 + 8) = uVar4;" (assignment_expression "*(undefined4 *)(iVar1 + 8) = uVar4" (pointer_expression "*(undefined4 *)(iVar1 + 8)" * (cast_expression "(undefined4 *)(iVar1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_0001e180();" (call_expression "FUN_0001e180()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar5 = FUN_0002bec0();" (assignment_expression "uVar5 = FUN_0002bec0()" identifier = (call_expression "FUN_0002bec0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (((((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)) && ((uVar5 & 7) < 5)) &&\n     ((uVar5 & 7) != 1)) {\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x1c) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e310;\n    }\n    else if (*(char *)(iVar1 + 0x1c) != '\x03') goto LAB_0001e310;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar5 != 0xff) {\n      FUN_0002cab0();\n      return;\n    }\n  }\n  else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_0002a7b0(uVar4);\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\nLAB_0001e310:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }" if (parenthesized_expression "(((((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)) && ((uVar5 & 7) < 5)) &&\n     ((uVar5 & 7) != 1))" ( (binary_expression "((((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)) && ((uVar5 & 7) < 5)) &&\n     ((uVar5 & 7) != 1)" (parenthesized_expression "((((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)) && ((uVar5 & 7) < 5))" ( (binary_expression "(((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)) && ((uVar5 & 7) < 5)" (parenthesized_expression "(((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0))" ( (binary_expression "((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)" (parenthesized_expression "((uVar5 & 0xffffff00) == 0)" ( (binary_expression "(uVar5 & 0xffffff00) == 0" (parenthesized_expression "(uVar5 & 0xffffff00)" ( (binary_expression "uVar5 & 0xffffff00" 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 "((uVar5 & 7) < 5)" ( (binary_expression "(uVar5 & 7) < 5" (parenthesized_expression "(uVar5 & 7)" ( (binary_expression "uVar5 & 7" identifier & number_literal) )) < number_literal) ))) )) && (parenthesized_expression "((uVar5 & 7) != 1)" ( (binary_expression "(uVar5 & 7) != 1" (parenthesized_expression "(uVar5 & 7)" ( (binary_expression "uVar5 & 7" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x1c) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e310;\n    }\n    else if (*(char *)(iVar1 + 0x1c) != '\x03') goto LAB_0001e310;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar5 != 0xff) {\n      FUN_0002cab0();\n      return;\n    }\n  }" { (expression_statement "FUN_0001e180();" (call_expression "FUN_0001e180()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00022030(0,iVar1 + 0x10,0);" (call_expression "FUN_00022030(0,iVar1 + 0x10,0)" identifier (argument_list "(0,iVar1 + 0x10,0)" ( number_literal , (binary_expression "iVar1 + 0x10" identifier + number_literal) , number_literal ))) ;) (if_statement "if (*(char *)(iVar1 + 0x1c) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e310;\n    }\n    else if (*(char *)(iVar1 + 0x1c) != '\x03') goto LAB_0001e310;" if (parenthesized_expression "(*(char *)(iVar1 + 0x1c) == '\x02')" ( (binary_expression "*(char *)(iVar1 + 0x1c) == '\x02'" (pointer_expression "*(char *)(iVar1 + 0x1c)" * (cast_expression "(char *)(iVar1 + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1c)" ( (binary_expression "iVar1 + 0x1c" identifier + number_literal) )))) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e310;\n    }" { (if_statement "if ((uVar5 & 0x70) == 0x10) goto LAB_0001e310;" if (parenthesized_expression "((uVar5 & 0x70) == 0x10)" ( (binary_expression "(uVar5 & 0x70) == 0x10" (parenthesized_expression "(uVar5 & 0x70)" ( (binary_expression "uVar5 & 0x70" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001e310;" goto statement_identifier ;)) }) (else_clause "else if (*(char *)(iVar1 + 0x1c) != '\x03') goto LAB_0001e310;" else (if_statement "if (*(char *)(iVar1 + 0x1c) != '\x03') goto LAB_0001e310;" if (parenthesized_expression "(*(char *)(iVar1 + 0x1c) != '\x03')" ( (binary_expression "*(char *)(iVar1 + 0x1c) != '\x03'" (pointer_expression "*(char *)(iVar1 + 0x1c)" * (cast_expression "(char *)(iVar1 + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1c)" ( (binary_expression "iVar1 + 0x1c" identifier + number_literal) )))) != (char_literal "'\x03'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001e310;" goto statement_identifier ;)))) (expression_statement "*(uint *)(iVar1 + 0xc) = uVar5;" (assignment_expression "*(uint *)(iVar1 + 0xc) = uVar5" (pointer_expression "*(uint *)(iVar1 + 0xc)" * (cast_expression "(uint *)(iVar1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))) = identifier) ;) (if_statement "if (uVar5 != 0xff) {\n      FUN_0002cab0();\n      return;\n    }" if (parenthesized_expression "(uVar5 != 0xff)" ( (binary_expression "uVar5 != 0xff" identifier != number_literal) )) (compound_statement "{\n      FUN_0002cab0();\n      return;\n    }" { (expression_statement "FUN_0002cab0();" (call_expression "FUN_0002cab0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_0002a7b0(uVar4);\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\nLAB_0001e310:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }" else (compound_statement "{\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_0002a7b0(uVar4);\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\nLAB_0001e310:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }" { (expression_statement "uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);" (assignment_expression "uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5)" identifier = (call_expression "dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5)" identifier (argument_list "(0,"invalid or unsupported encoding in .cfi_lsda",5)" ( number_literal , (string_literal ""invalid or unsupported encoding in .cfi_lsda"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002a7b0(uVar4);" (call_expression "FUN_0002a7b0(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "FUN_0001e180();" (call_expression "FUN_0001e180()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00022030(0,iVar1 + 0x10,0);" (call_expression "FUN_00022030(0,iVar1 + 0x10,0)" identifier (argument_list "(0,iVar1 + 0x10,0)" ( number_literal , (binary_expression "iVar1 + 0x10" identifier + number_literal) , number_literal ))) ;) (labeled_statement "LAB_0001e310:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;" statement_identifier : (expression_statement "*(undefined4 *)(iVar1 + 0xc) = 0xff;" (assignment_expression "*(undefined4 *)(iVar1 + 0xc) = 0xff" (pointer_expression "*(undefined4 *)(iVar1 + 0xc)" * (cast_expression "(undefined4 *)(iVar1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))) = number_literal) ;)) }))) (expression_statement "pcVar6 = "wrong third argument to .cfi_val_encoded_addr";" (assignment_expression "pcVar6 = "wrong third argument to .cfi_val_encoded_addr"" identifier = (string_literal ""wrong third argument to .cfi_val_encoded_addr"" " string_content ")) ;) (labeled_statement "LAB_0001e322:\n  uVar4 = dcgettext(0,pcVar6,5);" statement_identifier : (expression_statement "uVar4 = dcgettext(0,pcVar6,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar6,5)" identifier = (call_expression "dcgettext(0,pcVar6,5)" identifier (argument_list "(0,pcVar6,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0002a7b0(uVar4);" (call_expression "FUN_0002a7b0(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "FUN_0002c8a0();" (call_expression "FUN_0002c8a0()" 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (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) ;) (expression_statement (assignment_expression IDENT = (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) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 ')) )) (goto_statement goto statement_identifier ;)))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT ))) ;) (labeled_statement statement_identifier : (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 ")) ;) (labeled_statement statement_identifier : (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_0001e1f0(void)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  char *pcVar6;\n  \n  if (*(int *)(DAT_0007cfc8 + 0x48) == 0) {\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e322;\n  }\n  iVar1 = FUN_000391f0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));\n  if (iVar1 == DAT_0007ce70) {\n    iVar1 = FUN_00037db0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));\n    iVar3 = FUN_00023920();\n    if (iVar1 != iVar3) goto LAB_0001e231;\n  }\n  else {\nLAB_0001e231:\n    uVar2 = FUN_00036bb0();\n    iVar3 = FUN_0001d3f0();\n    iVar1 = DAT_0007cfc8;\n    *(undefined4 *)(iVar3 + 4) = 0x40;\n    iVar1 = *(int *)(iVar1 + 0x48);\n    uVar4 = *(undefined4 *)(iVar1 + 4);\n    *(undefined4 *)(iVar3 + 0xc) = uVar2;\n    *(undefined4 *)(iVar3 + 8) = uVar4;\n    *(undefined4 *)(iVar1 + 4) = uVar2;\n  }\n  iVar1 = FUN_0001d3f0();\n  *(undefined4 *)(iVar1 + 4) = 0x105;\n  uVar4 = FUN_0001d4f0();\n  *(undefined4 *)(iVar1 + 8) = uVar4;\n  FUN_0001e180();\n  uVar5 = FUN_0002bec0();\n  if (((((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)) && ((uVar5 & 7) < 5)) &&\n     ((uVar5 & 7) != 1)) {\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x1c) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e310;\n    }\n    else if (*(char *)(iVar1 + 0x1c) != '\x03') goto LAB_0001e310;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar5 != 0xff) {\n      FUN_0002cab0();\n      return;\n    }\n  }\n  else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_0002a7b0(uVar4);\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\nLAB_0001e310:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }\n  pcVar6 = "wrong third argument to .cfi_val_encoded_addr";\nLAB_0001e322:\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_0002a7b0(uVar4);\n  FUN_0002c8a0();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0001e1f0(void)" (identifier "FUN_0001e1f0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  char *pcVar6;\n  \n  if (*(int *)(DAT_0007cfc8 + 0x48) == 0) {\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e322;\n  }\n  iVar1 = FUN_000391f0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));\n  if (iVar1 == DAT_0007ce70) {\n    iVar1 = FUN_00037db0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));\n    iVar3 = FUN_00023920();\n    if (iVar1 != iVar3) goto LAB_0001e231;\n  }\n  else {\nLAB_0001e231:\n    uVar2 = FUN_00036bb0();\n    iVar3 = FUN_0001d3f0();\n    iVar1 = DAT_0007cfc8;\n    *(undefined4 *)(iVar3 + 4) = 0x40;\n    iVar1 = *(int *)(iVar1 + 0x48);\n    uVar4 = *(undefined4 *)(iVar1 + 4);\n    *(undefined4 *)(iVar3 + 0xc) = uVar2;\n    *(undefined4 *)(iVar3 + 8) = uVar4;\n    *(undefined4 *)(iVar1 + 4) = uVar2;\n  }\n  iVar1 = FUN_0001d3f0();\n  *(undefined4 *)(iVar1 + 4) = 0x105;\n  uVar4 = FUN_0001d4f0();\n  *(undefined4 *)(iVar1 + 8) = uVar4;\n  FUN_0001e180();\n  uVar5 = FUN_0002bec0();\n  if (((((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)) && ((uVar5 & 7) < 5)) &&\n     ((uVar5 & 7) != 1)) {\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x1c) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e310;\n    }\n    else if (*(char *)(iVar1 + 0x1c) != '\x03') goto LAB_0001e310;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar5 != 0xff) {\n      FUN_0002cab0();\n      return;\n    }\n  }\n  else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_0002a7b0(uVar4);\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\nLAB_0001e310:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }\n  pcVar6 = "wrong third argument to .cfi_val_encoded_addr";\nLAB_0001e322:\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_0002a7b0(uVar4);\n  FUN_0002c8a0();\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (if_statement "if (*(int *)(DAT_0007cfc8 + 0x48) == 0) {\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e322;\n  }" (if "if") (parenthesized_expression "(*(int *)(DAT_0007cfc8 + 0x48) == 0)" (( "(") (binary_expression "*(int *)(DAT_0007cfc8 + 0x48) == 0" (pointer_expression "*(int *)(DAT_0007cfc8 + 0x48)" (* "*") (cast_expression "(int *)(DAT_0007cfc8 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0007cfc8 + 0x48)" (( "(") (binary_expression "DAT_0007cfc8 + 0x48" (identifier "DAT_0007cfc8") (+ "+") (number_literal "0x48")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e322;\n  }" ({ "{") (expression_statement "pcVar6 = "CFI instruction used without previous .cfi_startproc";" (assignment_expression "pcVar6 = "CFI instruction used without previous .cfi_startproc"" (identifier "pcVar6") (= "=") (string_literal ""CFI instruction used without previous .cfi_startproc"" (" """) (string_content "CFI instruction used without previous .cfi_startproc") (" """))) (; ";")) (goto_statement "goto LAB_0001e322;" (goto "goto") (statement_identifier "LAB_0001e322") (; ";")) (} "}"))) (expression_statement "iVar1 = FUN_000391f0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));" (assignment_expression "iVar1 = FUN_000391f0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4))" (identifier "iVar1") (= "=") (call_expression "FUN_000391f0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4))" (identifier "FUN_000391f0") (argument_list "(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4))" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_0007cfc8 + 0x48) + 4)" (( "(") (binary_expression "*(int *)(DAT_0007cfc8 + 0x48) + 4" (pointer_expression "*(int *)(DAT_0007cfc8 + 0x48)" (* "*") (cast_expression "(int *)(DAT_0007cfc8 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0007cfc8 + 0x48)" (( "(") (binary_expression "DAT_0007cfc8 + 0x48" (identifier "DAT_0007cfc8") (+ "+") (number_literal "0x48")) () ")")))) (+ "+") (number_literal "4")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar1 == DAT_0007ce70) {\n    iVar1 = FUN_00037db0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));\n    iVar3 = FUN_00023920();\n    if (iVar1 != iVar3) goto LAB_0001e231;\n  }\n  else {\nLAB_0001e231:\n    uVar2 = FUN_00036bb0();\n    iVar3 = FUN_0001d3f0();\n    iVar1 = DAT_0007cfc8;\n    *(undefined4 *)(iVar3 + 4) = 0x40;\n    iVar1 = *(int *)(iVar1 + 0x48);\n    uVar4 = *(undefined4 *)(iVar1 + 4);\n    *(undefined4 *)(iVar3 + 0xc) = uVar2;\n    *(undefined4 *)(iVar3 + 8) = uVar4;\n    *(undefined4 *)(iVar1 + 4) = uVar2;\n  }" (if "if") (parenthesized_expression "(iVar1 == DAT_0007ce70)" (( "(") (binary_expression "iVar1 == DAT_0007ce70" (identifier "iVar1") (== "==") (identifier "DAT_0007ce70")) () ")")) (compound_statement "{\n    iVar1 = FUN_00037db0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));\n    iVar3 = FUN_00023920();\n    if (iVar1 != iVar3) goto LAB_0001e231;\n  }" ({ "{") (expression_statement "iVar1 = FUN_00037db0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));" (assignment_expression "iVar1 = FUN_00037db0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4))" (identifier "iVar1") (= "=") (call_expression "FUN_00037db0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4))" (identifier "FUN_00037db0") (argument_list "(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4))" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_0007cfc8 + 0x48) + 4)" (( "(") (binary_expression "*(int *)(DAT_0007cfc8 + 0x48) + 4" (pointer_expression "*(int *)(DAT_0007cfc8 + 0x48)" (* "*") (cast_expression "(int *)(DAT_0007cfc8 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0007cfc8 + 0x48)" (( "(") (binary_expression "DAT_0007cfc8 + 0x48" (identifier "DAT_0007cfc8") (+ "+") (number_literal "0x48")) () ")")))) (+ "+") (number_literal "4")) () ")")))) () ")")))) (; ";")) (expression_statement "iVar3 = FUN_00023920();" (assignment_expression "iVar3 = FUN_00023920()" (identifier "iVar3") (= "=") (call_expression "FUN_00023920()" (identifier "FUN_00023920") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar1 != iVar3) goto LAB_0001e231;" (if "if") (parenthesized_expression "(iVar1 != iVar3)" (( "(") (binary_expression "iVar1 != iVar3" (identifier "iVar1") (!= "!=") (identifier "iVar3")) () ")")) (goto_statement "goto LAB_0001e231;" (goto "goto") (statement_identifier "LAB_0001e231") (; ";"))) (} "}")) (else_clause "else {\nLAB_0001e231:\n    uVar2 = FUN_00036bb0();\n    iVar3 = FUN_0001d3f0();\n    iVar1 = DAT_0007cfc8;\n    *(undefined4 *)(iVar3 + 4) = 0x40;\n    iVar1 = *(int *)(iVar1 + 0x48);\n    uVar4 = *(undefined4 *)(iVar1 + 4);\n    *(undefined4 *)(iVar3 + 0xc) = uVar2;\n    *(undefined4 *)(iVar3 + 8) = uVar4;\n    *(undefined4 *)(iVar1 + 4) = uVar2;\n  }" (else "else") (compound_statement "{\nLAB_0001e231:\n    uVar2 = FUN_00036bb0();\n    iVar3 = FUN_0001d3f0();\n    iVar1 = DAT_0007cfc8;\n    *(undefined4 *)(iVar3 + 4) = 0x40;\n    iVar1 = *(int *)(iVar1 + 0x48);\n    uVar4 = *(undefined4 *)(iVar1 + 4);\n    *(undefined4 *)(iVar3 + 0xc) = uVar2;\n    *(undefined4 *)(iVar3 + 8) = uVar4;\n    *(undefined4 *)(iVar1 + 4) = uVar2;\n  }" ({ "{") (labeled_statement "LAB_0001e231:\n    uVar2 = FUN_00036bb0();" (statement_identifier "LAB_0001e231") (: ":") (expression_statement "uVar2 = FUN_00036bb0();" (assignment_expression "uVar2 = FUN_00036bb0()" (identifier "uVar2") (= "=") (call_expression "FUN_00036bb0()" (identifier "FUN_00036bb0") (argument_list "()" (( "(") () ")")))) (; ";"))) (expression_statement "iVar3 = FUN_0001d3f0();" (assignment_expression "iVar3 = FUN_0001d3f0()" (identifier "iVar3") (= "=") (call_expression "FUN_0001d3f0()" (identifier "FUN_0001d3f0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar1 = DAT_0007cfc8;" (assignment_expression "iVar1 = DAT_0007cfc8" (identifier "iVar1") (= "=") (identifier "DAT_0007cfc8")) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 4) = 0x40;" (assignment_expression "*(undefined4 *)(iVar3 + 4) = 0x40" (pointer_expression "*(undefined4 *)(iVar3 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0x40")) (; ";")) (expression_statement "iVar1 = *(int *)(iVar1 + 0x48);" (assignment_expression "iVar1 = *(int *)(iVar1 + 0x48)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(iVar1 + 0x48)" (* "*") (cast_expression "(int *)(iVar1 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x48)" (( "(") (binary_expression "iVar1 + 0x48" (identifier "iVar1") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(undefined4 *)(iVar1 + 4);" (assignment_expression "uVar4 = *(undefined4 *)(iVar1 + 4)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(iVar1 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 4)" (( "(") (binary_expression "iVar1 + 4" (identifier "iVar1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 0xc) = uVar2;" (assignment_expression "*(undefined4 *)(iVar3 + 0xc) = uVar2" (pointer_expression "*(undefined4 *)(iVar3 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 8) = uVar4;" (assignment_expression "*(undefined4 *)(iVar3 + 8) = uVar4" (pointer_expression "*(undefined4 *)(iVar3 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 4) = uVar2;" (assignment_expression "*(undefined4 *)(iVar1 + 4) = uVar2" (pointer_expression "*(undefined4 *)(iVar1 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 4)" (( "(") (binary_expression "iVar1 + 4" (identifier "iVar1") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (} "}")))) (expression_statement "iVar1 = FUN_0001d3f0();" (assignment_expression "iVar1 = FUN_0001d3f0()" (identifier "iVar1") (= "=") (call_expression "FUN_0001d3f0()" (identifier "FUN_0001d3f0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 4) = 0x105;" (assignment_expression "*(undefined4 *)(iVar1 + 4) = 0x105" (pointer_expression "*(undefined4 *)(iVar1 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 4)" (( "(") (binary_expression "iVar1 + 4" (identifier "iVar1") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0x105")) (; ";")) (expression_statement "uVar4 = FUN_0001d4f0();" (assignment_expression "uVar4 = FUN_0001d4f0()" (identifier "uVar4") (= "=") (call_expression "FUN_0001d4f0()" (identifier "FUN_0001d4f0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 8) = uVar4;" (assignment_expression "*(undefined4 *)(iVar1 + 8) = uVar4" (pointer_expression "*(undefined4 *)(iVar1 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 8)" (( "(") (binary_expression "iVar1 + 8" (identifier "iVar1") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "FUN_0001e180();" (call_expression "FUN_0001e180()" (identifier "FUN_0001e180") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar5 = FUN_0002bec0();" (assignment_expression "uVar5 = FUN_0002bec0()" (identifier "uVar5") (= "=") (call_expression "FUN_0002bec0()" (identifier "FUN_0002bec0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (((((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)) && ((uVar5 & 7) < 5)) &&\n     ((uVar5 & 7) != 1)) {\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x1c) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e310;\n    }\n    else if (*(char *)(iVar1 + 0x1c) != '\x03') goto LAB_0001e310;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar5 != 0xff) {\n      FUN_0002cab0();\n      return;\n    }\n  }\n  else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_0002a7b0(uVar4);\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\nLAB_0001e310:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }" (if "if") (parenthesized_expression "(((((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)) && ((uVar5 & 7) < 5)) &&\n     ((uVar5 & 7) != 1))" (( "(") (binary_expression "((((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)) && ((uVar5 & 7) < 5)) &&\n     ((uVar5 & 7) != 1)" (parenthesized_expression "((((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)) && ((uVar5 & 7) < 5))" (( "(") (binary_expression "(((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)) && ((uVar5 & 7) < 5)" (parenthesized_expression "(((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0))" (( "(") (binary_expression "((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)" (parenthesized_expression "((uVar5 & 0xffffff00) == 0)" (( "(") (binary_expression "(uVar5 & 0xffffff00) == 0" (parenthesized_expression "(uVar5 & 0xffffff00)" (( "(") (binary_expression "uVar5 & 0xffffff00" (identifier "uVar5") (& "&") (number_literal "0xffffff00")) () ")")) (== "==") (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 "((uVar5 & 7) < 5)" (( "(") (binary_expression "(uVar5 & 7) < 5" (parenthesized_expression "(uVar5 & 7)" (( "(") (binary_expression "uVar5 & 7" (identifier "uVar5") (& "&") (number_literal "7")) () ")")) (< "<") (number_literal "5")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((uVar5 & 7) != 1)" (( "(") (binary_expression "(uVar5 & 7) != 1" (parenthesized_expression "(uVar5 & 7)" (( "(") (binary_expression "uVar5 & 7" (identifier "uVar5") (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x1c) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e310;\n    }\n    else if (*(char *)(iVar1 + 0x1c) != '\x03') goto LAB_0001e310;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar5 != 0xff) {\n      FUN_0002cab0();\n      return;\n    }\n  }" ({ "{") (expression_statement "FUN_0001e180();" (call_expression "FUN_0001e180()" (identifier "FUN_0001e180") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00022030(0,iVar1 + 0x10,0);" (call_expression "FUN_00022030(0,iVar1 + 0x10,0)" (identifier "FUN_00022030") (argument_list "(0,iVar1 + 0x10,0)" (( "(") (number_literal "0") (, ",") (binary_expression "iVar1 + 0x10" (identifier "iVar1") (+ "+") (number_literal "0x10")) (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (*(char *)(iVar1 + 0x1c) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e310;\n    }\n    else if (*(char *)(iVar1 + 0x1c) != '\x03') goto LAB_0001e310;" (if "if") (parenthesized_expression "(*(char *)(iVar1 + 0x1c) == '\x02')" (( "(") (binary_expression "*(char *)(iVar1 + 0x1c) == '\x02'" (pointer_expression "*(char *)(iVar1 + 0x1c)" (* "*") (cast_expression "(char *)(iVar1 + 0x1c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1c)" (( "(") (binary_expression "iVar1 + 0x1c" (identifier "iVar1") (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e310;\n    }" ({ "{") (if_statement "if ((uVar5 & 0x70) == 0x10) goto LAB_0001e310;" (if "if") (parenthesized_expression "((uVar5 & 0x70) == 0x10)" (( "(") (binary_expression "(uVar5 & 0x70) == 0x10" (parenthesized_expression "(uVar5 & 0x70)" (( "(") (binary_expression "uVar5 & 0x70" (identifier "uVar5") (& "&") (number_literal "0x70")) () ")")) (== "==") (number_literal "0x10")) () ")")) (goto_statement "goto LAB_0001e310;" (goto "goto") (statement_identifier "LAB_0001e310") (; ";"))) (} "}")) (else_clause "else if (*(char *)(iVar1 + 0x1c) != '\x03') goto LAB_0001e310;" (else "else") (if_statement "if (*(char *)(iVar1 + 0x1c) != '\x03') goto LAB_0001e310;" (if "if") (parenthesized_expression "(*(char *)(iVar1 + 0x1c) != '\x03')" (( "(") (binary_expression "*(char *)(iVar1 + 0x1c) != '\x03'" (pointer_expression "*(char *)(iVar1 + 0x1c)" (* "*") (cast_expression "(char *)(iVar1 + 0x1c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1c)" (( "(") (binary_expression "iVar1 + 0x1c" (identifier "iVar1") (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")")) (goto_statement "goto LAB_0001e310;" (goto "goto") (statement_identifier "LAB_0001e310") (; ";"))))) (expression_statement "*(uint *)(iVar1 + 0xc) = uVar5;" (assignment_expression "*(uint *)(iVar1 + 0xc) = uVar5" (pointer_expression "*(uint *)(iVar1 + 0xc)" (* "*") (cast_expression "(uint *)(iVar1 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0xc)" (( "(") (binary_expression "iVar1 + 0xc" (identifier "iVar1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (if_statement "if (uVar5 != 0xff) {\n      FUN_0002cab0();\n      return;\n    }" (if "if") (parenthesized_expression "(uVar5 != 0xff)" (( "(") (binary_expression "uVar5 != 0xff" (identifier "uVar5") (!= "!=") (number_literal "0xff")) () ")")) (compound_statement "{\n      FUN_0002cab0();\n      return;\n    }" ({ "{") (expression_statement "FUN_0002cab0();" (call_expression "FUN_0002cab0()" (identifier "FUN_0002cab0") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_0002a7b0(uVar4);\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\nLAB_0001e310:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }" (else "else") (compound_statement "{\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_0002a7b0(uVar4);\n    FUN_0001e180();\n    FUN_00022030(0,iVar1 + 0x10,0);\nLAB_0001e310:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);" (assignment_expression "uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5)" (identifier "dcgettext") (argument_list "(0,"invalid or unsupported encoding in .cfi_lsda",5)" (( "(") (number_literal "0") (, ",") (string_literal ""invalid or unsupported encoding in .cfi_lsda"" (" """) (string_content "invalid or unsupported encoding in .cfi_lsda") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002a7b0(uVar4);" (call_expression "FUN_0002a7b0(uVar4)" (identifier "FUN_0002a7b0") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "FUN_0001e180();" (call_expression "FUN_0001e180()" (identifier "FUN_0001e180") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00022030(0,iVar1 + 0x10,0);" (call_expression "FUN_00022030(0,iVar1 + 0x10,0)" (identifier "FUN_00022030") (argument_list "(0,iVar1 + 0x10,0)" (( "(") (number_literal "0") (, ",") (binary_expression "iVar1 + 0x10" (identifier "iVar1") (+ "+") (number_literal "0x10")) (, ",") (number_literal "0") () ")"))) (; ";")) (labeled_statement "LAB_0001e310:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;" (statement_identifier "LAB_0001e310") (: ":") (expression_statement "*(undefined4 *)(iVar1 + 0xc) = 0xff;" (assignment_expression "*(undefined4 *)(iVar1 + 0xc) = 0xff" (pointer_expression "*(undefined4 *)(iVar1 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0xc)" (( "(") (binary_expression "iVar1 + 0xc" (identifier "iVar1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0xff")) (; ";"))) (} "}")))) (expression_statement "pcVar6 = "wrong third argument to .cfi_val_encoded_addr";" (assignment_expression "pcVar6 = "wrong third argument to .cfi_val_encoded_addr"" (identifier "pcVar6") (= "=") (string_literal ""wrong third argument to .cfi_val_encoded_addr"" (" """) (string_content "wrong third argument to .cfi_val_encoded_addr") (" """))) (; ";")) (labeled_statement "LAB_0001e322:\n  uVar4 = dcgettext(0,pcVar6,5);" (statement_identifier "LAB_0001e322") (: ":") (expression_statement "uVar4 = dcgettext(0,pcVar6,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar6,5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,pcVar6,5)" (identifier "dcgettext") (argument_list "(0,pcVar6,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar6") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_0002a7b0(uVar4);" (call_expression "FUN_0002a7b0(uVar4)" (identifier "FUN_0002a7b0") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "FUN_0002c8a0();" (call_expression "FUN_0002c8a0()" (identifier "FUN_0002c8a0") (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)

{
  type_1 *resultP;
  char var_15;
  type_2 *pfVar2;
  type_3 *psVar3;
  type_4 *pfVar4;
  type_5 *var_2;
  type_3 *psVar6;
  type_6 *pcVar7;
  type_7 var_13;
  char *pcVar9;
  type_8 var_6;
  type_9 var_7;
  
  if (frchain_now->type_2 == (type_2 *)0x0) {
    pcVar9 = "CFI instruction used without previous .cfi_startproc";
    goto LAB_0001e322;
  }
  var_2 = var_1(frchain_now->type_2->last_address);
  if (var_2 == var_3) {
    var_6 = var_4(frchain_now->type_2->last_address);
    var_7 = var_5();
    if (var_6 != var_7) goto LAB_0001e231;
  }
  else {
LAB_0001e231:
    psVar6 = var_8();
    pcVar7 = var_9();
    pfVar4 = frchain_now;
    pcVar7->insn = 0x40;
    pfVar2 = pfVar4->type_2;
    psVar3 = pfVar2->last_address;
    (pcVar7->u).ll.lab2 = psVar6;
    (pcVar7->u).ri.reg = (type_7)psVar3;
    pfVar2->last_address = psVar6;
  }
  pcVar7 = var_9();
  pcVar7->insn = 0x105;
  resultP = &(pcVar7->u).ea.exp;
  var_13 = var_10();
  (pcVar7->u).ri.reg = var_13;
  var_11();
  var_13 = var_12();
  if (((((var_13 & 0xffffff00) == 0) && ((var_13 & 0x60) == 0)) && ((var_13 & 7) < 5)) &&
     ((var_13 & 7) != 1)) {
    var_11();
    var_14(0,resultP,expr_evaluate);
    var_15 = *(char *)((int)&pcVar7->u + 0x14);
    if (var_15 == '\x02') {
      if ((var_13 & 0x70) == 0x10) goto LAB_0001e310;
    }
    else if (var_15 != '\x03') goto LAB_0001e310;
    (pcVar7->u).ri.offset = var_13;
    if (var_13 != 0xff) {
      var_16();
      return;
    }
  }
  else {
    pcVar9 = (char *)var_17(0,"invalid or unsupported encoding in .cfi_lsda",5);
    var_18(pcVar9);
    var_11();
    var_14(0,resultP,expr_evaluate);
LAB_0001e310:
    (pcVar7->u).ri.offset = 0xff;
  }
  pcVar9 = "wrong third argument to .cfi_val_encoded_addr";
LAB_0001e322:
  pcVar9 = (char *)var_17(0,pcVar9,5);
  var_18(pcVar9);
  var_19();
  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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator 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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (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: (identifier))) (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: (identifier))) (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: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (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))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (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))))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (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: (goto_statement label: (statement_identifier))))) (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: (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))) (return_statement)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))) (labeled_statement label: (statement_identifier) (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)))) (labeled_statement label: (statement_identifier) (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;
  undefined4 uVar2;
  int iVar3;
  undefined4 uVar4;
  uint uVar5;
  char *pcVar6;
  
  if (*(int *)(DAT_0007cfc8 + 0x48) == 0) {
    pcVar6 = "CFI instruction used without previous .cfi_startproc";
    goto LAB_0001e322;
  }
  iVar1 = FUN_000391f0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));
  if (iVar1 == DAT_0007ce70) {
    iVar1 = FUN_00037db0(*(undefined4 *)(*(int *)(DAT_0007cfc8 + 0x48) + 4));
    iVar3 = FUN_00023920();
    if (iVar1 != iVar3) goto LAB_0001e231;
  }
  else {
LAB_0001e231:
    uVar2 = FUN_00036bb0();
    iVar3 = FUN_0001d3f0();
    iVar1 = DAT_0007cfc8;
    *(undefined4 *)(iVar3 + 4) = 0x40;
    iVar1 = *(int *)(iVar1 + 0x48);
    uVar4 = *(undefined4 *)(iVar1 + 4);
    *(undefined4 *)(iVar3 + 0xc) = uVar2;
    *(undefined4 *)(iVar3 + 8) = uVar4;
    *(undefined4 *)(iVar1 + 4) = uVar2;
  }
  iVar1 = FUN_0001d3f0();
  *(undefined4 *)(iVar1 + 4) = 0x105;
  uVar4 = FUN_0001d4f0();
  *(undefined4 *)(iVar1 + 8) = uVar4;
  FUN_0001e180();
  uVar5 = FUN_0002bec0();
  if (((((uVar5 & 0xffffff00) == 0) && ((uVar5 & 0x60) == 0)) && ((uVar5 & 7) < 5)) &&
     ((uVar5 & 7) != 1)) {
    FUN_0001e180();
    FUN_00022030(0,iVar1 + 0x10,0);
    if (*(char *)(iVar1 + 0x1c) == '\x02') {
      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e310;
    }
    else if (*(char *)(iVar1 + 0x1c) != '\x03') goto LAB_0001e310;
    *(uint *)(iVar1 + 0xc) = uVar5;
    if (uVar5 != 0xff) {
      FUN_0002cab0();
      return;
    }
  }
  else {
    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);
    FUN_0002a7b0(uVar4);
    FUN_0001e180();
    FUN_00022030(0,iVar1 + 0x10,0);
LAB_0001e310:
    *(undefined4 *)(iVar1 + 0xc) = 0xff;
  }
  pcVar6 = "wrong third argument to .cfi_val_encoded_addr";
LAB_0001e322:
  uVar4 = dcgettext(0,pcVar6,5);
  FUN_0002a7b0(uVar4);
  FUN_0002c8a0();
  return;
}

