
/* 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;
  ulonglong uVar10;
  valueT vVar11;
  addressT aVar12;
  
  if (frchain_now->frch_cfi_data == (frch_cfi_data *)0x0) {
    pcVar9 = "CFI instruction used without previous .cfi_startproc";
    goto LAB_0001e61a;
  }
  pfVar5 = symbol_get_frag(frchain_now->frch_cfi_data->last_address);
  if (pfVar5 == frag_now) {
    vVar11 = S_GET_VALUE(frchain_now->frch_cfi_data->last_address);
    aVar12 = frag_now_fix();
    if (vVar11 != aVar12) goto LAB_0001e562;
  }
  else {
LAB_0001e562:
    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();
  uVar10 = get_absolute_expression();
  uVar8 = (uint)uVar10;
  if (((((int3)(uVar10 >> 8) == 0 && (int)(uVar10 >> 0x20) == 0) && ((uVar10 & 0x60) == 0)) &&
      (SBORROW4(uVar8 & 0x60,uVar8 & 0x60) == 4 < (uVar8 & 7))) && ((uVar8 & 7) != 1)) {
    cfi_parse_separator();
    expr(0,resultP,expr_evaluate);
    cVar1 = *(char *)((int)&pcVar7->u + 0x18);
    if (cVar1 == '\x02') {
      if ((uVar8 & 0x70) == 0x10) goto LAB_0001e608;
    }
    else if (cVar1 != '\x03') goto LAB_0001e608;
    (pcVar7->u).rr.reg2 = uVar8;
    if (uVar10 != 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_0001e608:
    (pcVar7->u).rr.reg2 = 0xff;
  }
  pcVar9 = "wrong third argument to .cfi_val_encoded_addr";
LAB_0001e61a:
  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_0001e520(void)

{
  int iVar1;
  undefined4 uVar2;
  int iVar3;
  undefined4 uVar4;
  uint uVar5;
  char *pcVar6;
  ulonglong uVar7;
  longlong lVar8;
  longlong lVar9;
  
  if (*(int *)(DAT_00081608 + 0x48) == 0) {
    pcVar6 = "CFI instruction used without previous .cfi_startproc";
    goto LAB_0001e61a;
  }
  iVar1 = FUN_00040f30(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));
  if (iVar1 == DAT_000814a4) {
    lVar8 = FUN_0003fad0(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));
    lVar9 = FUN_0002a520();
    if (lVar8 != lVar9) goto LAB_0001e562;
  }
  else {
LAB_0001e562:
    uVar2 = FUN_0003e680();
    iVar3 = FUN_0001d6c0();
    iVar1 = DAT_00081608;
    *(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_0001d6c0();
  *(undefined4 *)(iVar1 + 4) = 0x105;
  uVar4 = FUN_0001d7c0();
  *(undefined4 *)(iVar1 + 8) = uVar4;
  FUN_0001e4b0();
  uVar7 = FUN_00032f30();
  uVar5 = (uint)uVar7;
  if ((((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)) &&
      ((uVar5 & 7) < 5)) && ((uVar5 & 7) != 1)) {
    FUN_0001e4b0();
    FUN_000285b0(0,iVar1 + 0x10,0);
    if (*(char *)(iVar1 + 0x20) == '\x02') {
      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e608;
    }
    else if (*(char *)(iVar1 + 0x20) != '\x03') goto LAB_0001e608;
    *(uint *)(iVar1 + 0xc) = uVar5;
    if (uVar7 != 0xff) {
      FUN_00033c40();
      return;
    }
  }
  else {
    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);
    FUN_00031620(uVar4);
    FUN_0001e4b0();
    FUN_000285b0(0,iVar1 + 0x10,0);
LAB_0001e608:
    *(undefined4 *)(iVar1 + 0xc) = 0xff;
  }
  pcVar6 = "wrong third argument to .cfi_val_encoded_addr";
LAB_0001e61a:
  uVar4 = dcgettext(0,pcVar6,5);
  FUN_00031620(uVar4);
  FUN_000339c0();
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00016070
ADD EBX,0x59ad7
SUB ESP,0x1c
LEA EBP,[EBX + 0x9608]
MOV EAX,dword ptr [EBP]
MOV EAX,dword ptr [EAX + 0x48]
TEST EAX,EAX
JZ 0x0001e6d0
SUB ESP,0xc
PUSH dword ptr [EAX + 0x4]
CALL 0x00040f30
LEA EDX,[EBX + 0x94a4]
ADD ESP,0x10
CMP EAX,dword ptr [EDX]
JZ 0x0001e640
CALL 0x0003e680
MOV ESI,EAX
CALL 0x0001d6c0
MOV EDX,dword ptr [EBP]
MOV dword ptr [EAX + 0x4],0x40
MOV EDX,dword ptr [EDX + 0x48]
MOV ECX,dword ptr [EDX + 0x4]
MOV dword ptr [EAX + 0xc],ESI
MOV dword ptr [EAX + 0x8],ECX
MOV dword ptr [EDX + 0x4],ESI
CALL 0x0001d6c0
MOV dword ptr [EAX + 0x4],0x105
MOV ESI,EAX
LEA EDI,[ESI + 0x10]
CALL 0x0001d7c0
MOV dword ptr [ESI + 0x8],EAX
CALL 0x0001e4b0
CALL 0x00032f30
MOV EBP,EAX
XOR AL,AL
OR EAX,EDX
JNZ 0x0001e5d8
MOV EAX,EBP
AND EAX,0x60
MOV dword ptr [ESP + 0xc],EAX
JNZ 0x0001e5d8
MOV ECX,EBP
MOV EAX,0x4
AND ECX,0x7
CMP EAX,ECX
MOV EAX,dword ptr [ESP + 0xc]
SBB EAX,EAX
JGE 0x0001e670
LEA ESI,[ESI]
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdf59c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141e0
MOV dword ptr [ESP],EAX
CALL 0x00031620
CALL 0x0001e4b0
ADD ESP,0xc
PUSH 0x0
PUSH EDI
PUSH 0x0
CALL 0x000285b0
ADD ESP,0x10
MOV dword ptr [ESI + 0xc],0xff
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdf6e0]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141e0
MOV dword ptr [ESP],EAX
CALL 0x00031620
CALL 0x000339c0
ADD ESP,0x10
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EBP]
SUB ESP,0xc
MOV EAX,dword ptr [EAX + 0x48]
PUSH dword ptr [EAX + 0x4]
CALL 0x0003fad0
MOV ESI,EAX
MOV EDI,EDX
CALL 0x0002a520
ADD ESP,0x10
XOR ESI,EAX
XOR EDI,EDX
OR EDI,ESI
JNZ 0x0001e562
JMP 0x0001e587
CMP ECX,0x1
JZ 0x0001e5d8
MOV dword ptr [ESP + 0xc],EDX
CALL 0x0001e4b0
SUB ESP,0x4
PUSH 0x0
PUSH EDI
PUSH 0x0
CALL 0x000285b0
MOVZX EAX,byte ptr [ESI + 0x20]
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
CMP AL,0x2
JNZ 0x0001e6e0
MOV EAX,EBP
AND EAX,0x70
CMP EAX,0x10
JZ 0x0001e608
LEA ESI,[ESI]
MOV dword ptr [ESI + 0xc],EBP
XOR EBP,0xff
OR EDX,EBP
JZ 0x0001e60f
CALL 0x00033c40
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdf564]
PUSH 0x5
JMP 0x0001e61a
CMP AL,0x3
JZ 0x0001e6b0
JMP 0x0001e608
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_0001e520(void)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  char *pcVar6;\n  ulonglong uVar7;\n  longlong lVar8;\n  longlong lVar9;\n  \n  if (*(int *)(DAT_00081608 + 0x48) == 0) {\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e61a;\n  }\n  iVar1 = FUN_00040f30(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));\n  if (iVar1 == DAT_000814a4) {\n    lVar8 = FUN_0003fad0(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));\n    lVar9 = FUN_0002a520();\n    if (lVar8 != lVar9) goto LAB_0001e562;\n  }\n  else {\nLAB_0001e562:\n    uVar2 = FUN_0003e680();\n    iVar3 = FUN_0001d6c0();\n    iVar1 = DAT_00081608;\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_0001d6c0();\n  *(undefined4 *)(iVar1 + 4) = 0x105;\n  uVar4 = FUN_0001d7c0();\n  *(undefined4 *)(iVar1 + 8) = uVar4;\n  FUN_0001e4b0();\n  uVar7 = FUN_00032f30();\n  uVar5 = (uint)uVar7;\n  if ((((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)) &&\n      ((uVar5 & 7) < 5)) && ((uVar5 & 7) != 1)) {\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x20) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e608;\n    }\n    else if (*(char *)(iVar1 + 0x20) != '\x03') goto LAB_0001e608;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar7 != 0xff) {\n      FUN_00033c40();\n      return;\n    }\n  }\n  else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_00031620(uVar4);\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\nLAB_0001e608:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }\n  pcVar6 = "wrong third argument to .cfi_val_encoded_addr";\nLAB_0001e61a:\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_00031620(uVar4);\n  FUN_000339c0();\n  return;\n}\n\n" comment (function_definition "void FUN_0001e520(void)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  char *pcVar6;\n  ulonglong uVar7;\n  longlong lVar8;\n  longlong lVar9;\n  \n  if (*(int *)(DAT_00081608 + 0x48) == 0) {\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e61a;\n  }\n  iVar1 = FUN_00040f30(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));\n  if (iVar1 == DAT_000814a4) {\n    lVar8 = FUN_0003fad0(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));\n    lVar9 = FUN_0002a520();\n    if (lVar8 != lVar9) goto LAB_0001e562;\n  }\n  else {\nLAB_0001e562:\n    uVar2 = FUN_0003e680();\n    iVar3 = FUN_0001d6c0();\n    iVar1 = DAT_00081608;\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_0001d6c0();\n  *(undefined4 *)(iVar1 + 4) = 0x105;\n  uVar4 = FUN_0001d7c0();\n  *(undefined4 *)(iVar1 + 8) = uVar4;\n  FUN_0001e4b0();\n  uVar7 = FUN_00032f30();\n  uVar5 = (uint)uVar7;\n  if ((((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)) &&\n      ((uVar5 & 7) < 5)) && ((uVar5 & 7) != 1)) {\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x20) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e608;\n    }\n    else if (*(char *)(iVar1 + 0x20) != '\x03') goto LAB_0001e608;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar7 != 0xff) {\n      FUN_00033c40();\n      return;\n    }\n  }\n  else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_00031620(uVar4);\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\nLAB_0001e608:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }\n  pcVar6 = "wrong third argument to .cfi_val_encoded_addr";\nLAB_0001e61a:\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_00031620(uVar4);\n  FUN_000339c0();\n  return;\n}" primitive_type (function_declarator "FUN_0001e520(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  ulonglong uVar7;\n  longlong lVar8;\n  longlong lVar9;\n  \n  if (*(int *)(DAT_00081608 + 0x48) == 0) {\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e61a;\n  }\n  iVar1 = FUN_00040f30(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));\n  if (iVar1 == DAT_000814a4) {\n    lVar8 = FUN_0003fad0(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));\n    lVar9 = FUN_0002a520();\n    if (lVar8 != lVar9) goto LAB_0001e562;\n  }\n  else {\nLAB_0001e562:\n    uVar2 = FUN_0003e680();\n    iVar3 = FUN_0001d6c0();\n    iVar1 = DAT_00081608;\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_0001d6c0();\n  *(undefined4 *)(iVar1 + 4) = 0x105;\n  uVar4 = FUN_0001d7c0();\n  *(undefined4 *)(iVar1 + 8) = uVar4;\n  FUN_0001e4b0();\n  uVar7 = FUN_00032f30();\n  uVar5 = (uint)uVar7;\n  if ((((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)) &&\n      ((uVar5 & 7) < 5)) && ((uVar5 & 7) != 1)) {\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x20) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e608;\n    }\n    else if (*(char *)(iVar1 + 0x20) != '\x03') goto LAB_0001e608;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar7 != 0xff) {\n      FUN_00033c40();\n      return;\n    }\n  }\n  else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_00031620(uVar4);\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\nLAB_0001e608:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }\n  pcVar6 = "wrong third argument to .cfi_val_encoded_addr";\nLAB_0001e61a:\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_00031620(uVar4);\n  FUN_000339c0();\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) ;) (declaration "ulonglong uVar7;" type_identifier identifier ;) (declaration "longlong lVar8;" type_identifier identifier ;) (declaration "longlong lVar9;" type_identifier identifier ;) (if_statement "if (*(int *)(DAT_00081608 + 0x48) == 0) {\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e61a;\n  }" if (parenthesized_expression "(*(int *)(DAT_00081608 + 0x48) == 0)" ( (binary_expression "*(int *)(DAT_00081608 + 0x48) == 0" (pointer_expression "*(int *)(DAT_00081608 + 0x48)" * (cast_expression "(int *)(DAT_00081608 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00081608 + 0x48)" ( (binary_expression "DAT_00081608 + 0x48" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e61a;\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_0001e61a;" goto statement_identifier ;) })) (expression_statement "iVar1 = FUN_00040f30(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));" (assignment_expression "iVar1 = FUN_00040f30(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4))" identifier = (call_expression "FUN_00040f30(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4))" identifier (argument_list "(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4))" ( (pointer_expression "*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4)" * (cast_expression "(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_00081608 + 0x48) + 4)" ( (binary_expression "*(int *)(DAT_00081608 + 0x48) + 4" (pointer_expression "*(int *)(DAT_00081608 + 0x48)" * (cast_expression "(int *)(DAT_00081608 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00081608 + 0x48)" ( (binary_expression "DAT_00081608 + 0x48" identifier + number_literal) )))) + number_literal) )))) )))) ;) (if_statement "if (iVar1 == DAT_000814a4) {\n    lVar8 = FUN_0003fad0(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));\n    lVar9 = FUN_0002a520();\n    if (lVar8 != lVar9) goto LAB_0001e562;\n  }\n  else {\nLAB_0001e562:\n    uVar2 = FUN_0003e680();\n    iVar3 = FUN_0001d6c0();\n    iVar1 = DAT_00081608;\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_000814a4)" ( (binary_expression "iVar1 == DAT_000814a4" identifier == identifier) )) (compound_statement "{\n    lVar8 = FUN_0003fad0(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));\n    lVar9 = FUN_0002a520();\n    if (lVar8 != lVar9) goto LAB_0001e562;\n  }" { (expression_statement "lVar8 = FUN_0003fad0(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));" (assignment_expression "lVar8 = FUN_0003fad0(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4))" identifier = (call_expression "FUN_0003fad0(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4))" identifier (argument_list "(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4))" ( (pointer_expression "*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4)" * (cast_expression "(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_00081608 + 0x48) + 4)" ( (binary_expression "*(int *)(DAT_00081608 + 0x48) + 4" (pointer_expression "*(int *)(DAT_00081608 + 0x48)" * (cast_expression "(int *)(DAT_00081608 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00081608 + 0x48)" ( (binary_expression "DAT_00081608 + 0x48" identifier + number_literal) )))) + number_literal) )))) )))) ;) (expression_statement "lVar9 = FUN_0002a520();" (assignment_expression "lVar9 = FUN_0002a520()" identifier = (call_expression "FUN_0002a520()" identifier (argument_list "()" ( )))) ;) (if_statement "if (lVar8 != lVar9) goto LAB_0001e562;" if (parenthesized_expression "(lVar8 != lVar9)" ( (binary_expression "lVar8 != lVar9" identifier != identifier) )) (goto_statement "goto LAB_0001e562;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_0001e562:\n    uVar2 = FUN_0003e680();\n    iVar3 = FUN_0001d6c0();\n    iVar1 = DAT_00081608;\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_0001e562:\n    uVar2 = FUN_0003e680();\n    iVar3 = FUN_0001d6c0();\n    iVar1 = DAT_00081608;\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_0001e562:\n    uVar2 = FUN_0003e680();" statement_identifier : (expression_statement "uVar2 = FUN_0003e680();" (assignment_expression "uVar2 = FUN_0003e680()" identifier = (call_expression "FUN_0003e680()" identifier (argument_list "()" ( )))) ;)) (expression_statement "iVar3 = FUN_0001d6c0();" (assignment_expression "iVar3 = FUN_0001d6c0()" identifier = (call_expression "FUN_0001d6c0()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar1 = DAT_00081608;" (assignment_expression "iVar1 = DAT_00081608" 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_0001d6c0();" (assignment_expression "iVar1 = FUN_0001d6c0()" identifier = (call_expression "FUN_0001d6c0()" 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_0001d7c0();" (assignment_expression "uVar4 = FUN_0001d7c0()" identifier = (call_expression "FUN_0001d7c0()" 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_0001e4b0();" (call_expression "FUN_0001e4b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar7 = FUN_00032f30();" (assignment_expression "uVar7 = FUN_00032f30()" identifier = (call_expression "FUN_00032f30()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar5 = (uint)uVar7;" (assignment_expression "uVar5 = (uint)uVar7" identifier = (cast_expression "(uint)uVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)) &&\n      ((uVar5 & 7) < 5)) && ((uVar5 & 7) != 1)) {\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x20) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e608;\n    }\n    else if (*(char *)(iVar1 + 0x20) != '\x03') goto LAB_0001e608;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar7 != 0xff) {\n      FUN_00033c40();\n      return;\n    }\n  }\n  else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_00031620(uVar4);\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\nLAB_0001e608:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }" if (parenthesized_expression "((((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)) &&\n      ((uVar5 & 7) < 5)) && ((uVar5 & 7) != 1))" ( (binary_expression "(((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)) &&\n      ((uVar5 & 7) < 5)) && ((uVar5 & 7) != 1)" (parenthesized_expression "(((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)) &&\n      ((uVar5 & 7) < 5))" ( (binary_expression "((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)) &&\n      ((uVar5 & 7) < 5)" (parenthesized_expression "((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0))" ( (binary_expression "(uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)" (parenthesized_expression "(uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0)" ( (binary_expression "uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0" (binary_expression "uVar5 >> 8 == 0" (binary_expression "uVar5 >> 8" identifier >> number_literal) == number_literal) && (binary_expression "(int)(uVar7 >> 0x20) == 0" (cast_expression "(int)(uVar7 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar7 >> 0x20)" ( (binary_expression "uVar7 >> 0x20" identifier >> number_literal) ))) == number_literal)) )) && (parenthesized_expression "((uVar7 & 0x60) == 0)" ( (binary_expression "(uVar7 & 0x60) == 0" (parenthesized_expression "(uVar7 & 0x60)" ( (binary_expression "uVar7 & 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_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x20) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e608;\n    }\n    else if (*(char *)(iVar1 + 0x20) != '\x03') goto LAB_0001e608;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar7 != 0xff) {\n      FUN_00033c40();\n      return;\n    }\n  }" { (expression_statement "FUN_0001e4b0();" (call_expression "FUN_0001e4b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000285b0(0,iVar1 + 0x10,0);" (call_expression "FUN_000285b0(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 + 0x20) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e608;\n    }\n    else if (*(char *)(iVar1 + 0x20) != '\x03') goto LAB_0001e608;" if (parenthesized_expression "(*(char *)(iVar1 + 0x20) == '\x02')" ( (binary_expression "*(char *)(iVar1 + 0x20) == '\x02'" (pointer_expression "*(char *)(iVar1 + 0x20)" * (cast_expression "(char *)(iVar1 + 0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x20)" ( (binary_expression "iVar1 + 0x20" identifier + number_literal) )))) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e608;\n    }" { (if_statement "if ((uVar5 & 0x70) == 0x10) goto LAB_0001e608;" 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_0001e608;" goto statement_identifier ;)) }) (else_clause "else if (*(char *)(iVar1 + 0x20) != '\x03') goto LAB_0001e608;" else (if_statement "if (*(char *)(iVar1 + 0x20) != '\x03') goto LAB_0001e608;" if (parenthesized_expression "(*(char *)(iVar1 + 0x20) != '\x03')" ( (binary_expression "*(char *)(iVar1 + 0x20) != '\x03'" (pointer_expression "*(char *)(iVar1 + 0x20)" * (cast_expression "(char *)(iVar1 + 0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x20)" ( (binary_expression "iVar1 + 0x20" identifier + number_literal) )))) != (char_literal "'\x03'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001e608;" 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 (uVar7 != 0xff) {\n      FUN_00033c40();\n      return;\n    }" if (parenthesized_expression "(uVar7 != 0xff)" ( (binary_expression "uVar7 != 0xff" identifier != number_literal) )) (compound_statement "{\n      FUN_00033c40();\n      return;\n    }" { (expression_statement "FUN_00033c40();" (call_expression "FUN_00033c40()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_00031620(uVar4);\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\nLAB_0001e608:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }" else (compound_statement "{\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_00031620(uVar4);\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\nLAB_0001e608:\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_00031620(uVar4);" (call_expression "FUN_00031620(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "FUN_0001e4b0();" (call_expression "FUN_0001e4b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000285b0(0,iVar1 + 0x10,0);" (call_expression "FUN_000285b0(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_0001e608:\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_0001e61a:\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_00031620(uVar4);" (call_expression "FUN_00031620(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "FUN_000339c0();" (call_expression "FUN_000339c0()" 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  ulonglong uVar10;\n  valueT vVar11;\n  addressT aVar12;\n  \n  if (frchain_now->frch_cfi_data == (frch_cfi_data *)0x0) {\n    pcVar9 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e61a;\n  }\n  pfVar5 = symbol_get_frag(frchain_now->frch_cfi_data->last_address);\n  if (pfVar5 == frag_now) {\n    vVar11 = S_GET_VALUE(frchain_now->frch_cfi_data->last_address);\n    aVar12 = frag_now_fix();\n    if (vVar11 != aVar12) goto LAB_0001e562;\n  }\n  else {\nLAB_0001e562:\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  uVar10 = get_absolute_expression();\n  uVar8 = (uint)uVar10;\n  if (((((int3)(uVar10 >> 8) == 0 && (int)(uVar10 >> 0x20) == 0) && ((uVar10 & 0x60) == 0)) &&\n      (SBORROW4(uVar8 & 0x60,uVar8 & 0x60) == 4 < (uVar8 & 7))) && ((uVar8 & 7) != 1)) {\n    cfi_parse_separator();\n    expr(0,resultP,expr_evaluate);\n    cVar1 = *(char *)((int)&pcVar7->u + 0x18);\n    if (cVar1 == '\x02') {\n      if ((uVar8 & 0x70) == 0x10) goto LAB_0001e608;\n    }\n    else if (cVar1 != '\x03') goto LAB_0001e608;\n    (pcVar7->u).rr.reg2 = uVar8;\n    if (uVar10 != 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_0001e608:\n    (pcVar7->u).rr.reg2 = 0xff;\n  }\n  pcVar9 = "wrong third argument to .cfi_val_encoded_addr";\nLAB_0001e61a:\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  ulonglong uVar10;\n  valueT vVar11;\n  addressT aVar12;\n  \n  if (frchain_now->frch_cfi_data == (frch_cfi_data *)0x0) {\n    pcVar9 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e61a;\n  }\n  pfVar5 = symbol_get_frag(frchain_now->frch_cfi_data->last_address);\n  if (pfVar5 == frag_now) {\n    vVar11 = S_GET_VALUE(frchain_now->frch_cfi_data->last_address);\n    aVar12 = frag_now_fix();\n    if (vVar11 != aVar12) goto LAB_0001e562;\n  }\n  else {\nLAB_0001e562:\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  uVar10 = get_absolute_expression();\n  uVar8 = (uint)uVar10;\n  if (((((int3)(uVar10 >> 8) == 0 && (int)(uVar10 >> 0x20) == 0) && ((uVar10 & 0x60) == 0)) &&\n      (SBORROW4(uVar8 & 0x60,uVar8 & 0x60) == 4 < (uVar8 & 7))) && ((uVar8 & 7) != 1)) {\n    cfi_parse_separator();\n    expr(0,resultP,expr_evaluate);\n    cVar1 = *(char *)((int)&pcVar7->u + 0x18);\n    if (cVar1 == '\x02') {\n      if ((uVar8 & 0x70) == 0x10) goto LAB_0001e608;\n    }\n    else if (cVar1 != '\x03') goto LAB_0001e608;\n    (pcVar7->u).rr.reg2 = uVar8;\n    if (uVar10 != 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_0001e608:\n    (pcVar7->u).rr.reg2 = 0xff;\n  }\n  pcVar9 = "wrong third argument to .cfi_val_encoded_addr";\nLAB_0001e61a:\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  ulonglong uVar10;\n  valueT vVar11;\n  addressT aVar12;\n  \n  if (frchain_now->frch_cfi_data == (frch_cfi_data *)0x0) {\n    pcVar9 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e61a;\n  }\n  pfVar5 = symbol_get_frag(frchain_now->frch_cfi_data->last_address);\n  if (pfVar5 == frag_now) {\n    vVar11 = S_GET_VALUE(frchain_now->frch_cfi_data->last_address);\n    aVar12 = frag_now_fix();\n    if (vVar11 != aVar12) goto LAB_0001e562;\n  }\n  else {\nLAB_0001e562:\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  uVar10 = get_absolute_expression();\n  uVar8 = (uint)uVar10;\n  if (((((int3)(uVar10 >> 8) == 0 && (int)(uVar10 >> 0x20) == 0) && ((uVar10 & 0x60) == 0)) &&\n      (SBORROW4(uVar8 & 0x60,uVar8 & 0x60) == 4 < (uVar8 & 7))) && ((uVar8 & 7) != 1)) {\n    cfi_parse_separator();\n    expr(0,resultP,expr_evaluate);\n    cVar1 = *(char *)((int)&pcVar7->u + 0x18);\n    if (cVar1 == '\x02') {\n      if ((uVar8 & 0x70) == 0x10) goto LAB_0001e608;\n    }\n    else if (cVar1 != '\x03') goto LAB_0001e608;\n    (pcVar7->u).rr.reg2 = uVar8;\n    if (uVar10 != 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_0001e608:\n    (pcVar7->u).rr.reg2 = 0xff;\n  }\n  pcVar9 = "wrong third argument to .cfi_val_encoded_addr";\nLAB_0001e61a:\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 "ulonglong uVar10;" type_identifier identifier ;) (declaration "valueT vVar11;" type_identifier identifier ;) (declaration "addressT aVar12;" 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_0001e61a;\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_0001e61a;\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_0001e61a;" 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    vVar11 = S_GET_VALUE(frchain_now->frch_cfi_data->last_address);\n    aVar12 = frag_now_fix();\n    if (vVar11 != aVar12) goto LAB_0001e562;\n  }\n  else {\nLAB_0001e562:\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    vVar11 = S_GET_VALUE(frchain_now->frch_cfi_data->last_address);\n    aVar12 = frag_now_fix();\n    if (vVar11 != aVar12) goto LAB_0001e562;\n  }" { (expression_statement "vVar11 = S_GET_VALUE(frchain_now->frch_cfi_data->last_address);" (assignment_expression "vVar11 = 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 "aVar12 = frag_now_fix();" (assignment_expression "aVar12 = frag_now_fix()" identifier = (call_expression "frag_now_fix()" identifier (argument_list "()" ( )))) ;) (if_statement "if (vVar11 != aVar12) goto LAB_0001e562;" if (parenthesized_expression "(vVar11 != aVar12)" ( (binary_expression "vVar11 != aVar12" identifier != identifier) )) (goto_statement "goto LAB_0001e562;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_0001e562:\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_0001e562:\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_0001e562:\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 "uVar10 = get_absolute_expression();" (assignment_expression "uVar10 = get_absolute_expression()" identifier = (call_expression "get_absolute_expression()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar8 = (uint)uVar10;" (assignment_expression "uVar8 = (uint)uVar10" identifier = (cast_expression "(uint)uVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (((((int3)(uVar10 >> 8) == 0 && (int)(uVar10 >> 0x20) == 0) && ((uVar10 & 0x60) == 0)) &&\n      (SBORROW4(uVar8 & 0x60,uVar8 & 0x60) == 4 < (uVar8 & 7))) && ((uVar8 & 7) != 1)) {\n    cfi_parse_separator();\n    expr(0,resultP,expr_evaluate);\n    cVar1 = *(char *)((int)&pcVar7->u + 0x18);\n    if (cVar1 == '\x02') {\n      if ((uVar8 & 0x70) == 0x10) goto LAB_0001e608;\n    }\n    else if (cVar1 != '\x03') goto LAB_0001e608;\n    (pcVar7->u).rr.reg2 = uVar8;\n    if (uVar10 != 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_0001e608:\n    (pcVar7->u).rr.reg2 = 0xff;\n  }" if (parenthesized_expression "(((((int3)(uVar10 >> 8) == 0 && (int)(uVar10 >> 0x20) == 0) && ((uVar10 & 0x60) == 0)) &&\n      (SBORROW4(uVar8 & 0x60,uVar8 & 0x60) == 4 < (uVar8 & 7))) && ((uVar8 & 7) != 1))" ( (binary_expression "((((int3)(uVar10 >> 8) == 0 && (int)(uVar10 >> 0x20) == 0) && ((uVar10 & 0x60) == 0)) &&\n      (SBORROW4(uVar8 & 0x60,uVar8 & 0x60) == 4 < (uVar8 & 7))) && ((uVar8 & 7) != 1)" (parenthesized_expression "((((int3)(uVar10 >> 8) == 0 && (int)(uVar10 >> 0x20) == 0) && ((uVar10 & 0x60) == 0)) &&\n      (SBORROW4(uVar8 & 0x60,uVar8 & 0x60) == 4 < (uVar8 & 7)))" ( (binary_expression "(((int3)(uVar10 >> 8) == 0 && (int)(uVar10 >> 0x20) == 0) && ((uVar10 & 0x60) == 0)) &&\n      (SBORROW4(uVar8 & 0x60,uVar8 & 0x60) == 4 < (uVar8 & 7))" (parenthesized_expression "(((int3)(uVar10 >> 8) == 0 && (int)(uVar10 >> 0x20) == 0) && ((uVar10 & 0x60) == 0))" ( (binary_expression "((int3)(uVar10 >> 8) == 0 && (int)(uVar10 >> 0x20) == 0) && ((uVar10 & 0x60) == 0)" (parenthesized_expression "((int3)(uVar10 >> 8) == 0 && (int)(uVar10 >> 0x20) == 0)" ( (binary_expression "(int3)(uVar10 >> 8) == 0 && (int)(uVar10 >> 0x20) == 0" (binary_expression "(int3)(uVar10 >> 8) == 0" (call_expression "(int3)(uVar10 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "(uVar10 >> 8)" ( (binary_expression "uVar10 >> 8" identifier >> number_literal) ))) == number_literal) && (binary_expression "(int)(uVar10 >> 0x20) == 0" (cast_expression "(int)(uVar10 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar10 >> 0x20)" ( (binary_expression "uVar10 >> 0x20" identifier >> number_literal) ))) == number_literal)) )) && (parenthesized_expression "((uVar10 & 0x60) == 0)" ( (binary_expression "(uVar10 & 0x60) == 0" (parenthesized_expression "(uVar10 & 0x60)" ( (binary_expression "uVar10 & 0x60" identifier & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(SBORROW4(uVar8 & 0x60,uVar8 & 0x60) == 4 < (uVar8 & 7))" ( (binary_expression "SBORROW4(uVar8 & 0x60,uVar8 & 0x60) == 4 < (uVar8 & 7)" (call_expression "SBORROW4(uVar8 & 0x60,uVar8 & 0x60)" identifier (argument_list "(uVar8 & 0x60,uVar8 & 0x60)" ( (binary_expression "uVar8 & 0x60" identifier & number_literal) , (binary_expression "uVar8 & 0x60" identifier & number_literal) ))) == (binary_expression "4 < (uVar8 & 7)" number_literal < (parenthesized_expression "(uVar8 & 7)" ( (binary_expression "uVar8 & 7" identifier & 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 + 0x18);\n    if (cVar1 == '\x02') {\n      if ((uVar8 & 0x70) == 0x10) goto LAB_0001e608;\n    }\n    else if (cVar1 != '\x03') goto LAB_0001e608;\n    (pcVar7->u).rr.reg2 = uVar8;\n    if (uVar10 != 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 + 0x18);" (assignment_expression "cVar1 = *(char *)((int)&pcVar7->u + 0x18)" identifier = (pointer_expression "*(char *)((int)&pcVar7->u + 0x18)" * (cast_expression "(char *)((int)&pcVar7->u + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pcVar7->u + 0x18)" ( (binary_expression "(int)&pcVar7->u + 0x18" (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_0001e608;\n    }\n    else if (cVar1 != '\x03') goto LAB_0001e608;" if (parenthesized_expression "(cVar1 == '\x02')" ( (binary_expression "cVar1 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n      if ((uVar8 & 0x70) == 0x10) goto LAB_0001e608;\n    }" { (if_statement "if ((uVar8 & 0x70) == 0x10) goto LAB_0001e608;" 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_0001e608;" goto statement_identifier ;)) }) (else_clause "else if (cVar1 != '\x03') goto LAB_0001e608;" else (if_statement "if (cVar1 != '\x03') goto LAB_0001e608;" if (parenthesized_expression "(cVar1 != '\x03')" ( (binary_expression "cVar1 != '\x03'" identifier != (char_literal "'\x03'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001e608;" goto statement_identifier ;)))) (expression_statement "(pcVar7->u).rr.reg2 = uVar8;" (assignment_expression "(pcVar7->u).rr.reg2 = uVar8" (field_expression "(pcVar7->u).rr.reg2" (field_expression "(pcVar7->u).rr" (parenthesized_expression "(pcVar7->u)" ( (field_expression "pcVar7->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (if_statement "if (uVar10 != 0xff) {\n      demand_empty_rest_of_line();\n      return;\n    }" if (parenthesized_expression "(uVar10 != 0xff)" ( (binary_expression "uVar10 != 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_0001e608:\n    (pcVar7->u).rr.reg2 = 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_0001e608:\n    (pcVar7->u).rr.reg2 = 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_0001e608:\n    (pcVar7->u).rr.reg2 = 0xff;" statement_identifier : (expression_statement "(pcVar7->u).rr.reg2 = 0xff;" (assignment_expression "(pcVar7->u).rr.reg2 = 0xff" (field_expression "(pcVar7->u).rr.reg2" (field_expression "(pcVar7->u).rr" (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_0001e61a:\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_0001e520(void)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  char *pcVar6;\n  ulonglong uVar7;\n  longlong lVar8;\n  longlong lVar9;\n  \n  if (*(int *)(DAT_00081608 + 0x48) == 0) {\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e61a;\n  }\n  iVar1 = FUN_00040f30(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));\n  if (iVar1 == DAT_000814a4) {\n    lVar8 = FUN_0003fad0(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));\n    lVar9 = FUN_0002a520();\n    if (lVar8 != lVar9) goto LAB_0001e562;\n  }\n  else {\nLAB_0001e562:\n    uVar2 = FUN_0003e680();\n    iVar3 = FUN_0001d6c0();\n    iVar1 = DAT_00081608;\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_0001d6c0();\n  *(undefined4 *)(iVar1 + 4) = 0x105;\n  uVar4 = FUN_0001d7c0();\n  *(undefined4 *)(iVar1 + 8) = uVar4;\n  FUN_0001e4b0();\n  uVar7 = FUN_00032f30();\n  uVar5 = (uint)uVar7;\n  if ((((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)) &&\n      ((uVar5 & 7) < 5)) && ((uVar5 & 7) != 1)) {\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x20) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e608;\n    }\n    else if (*(char *)(iVar1 + 0x20) != '\x03') goto LAB_0001e608;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar7 != 0xff) {\n      FUN_00033c40();\n      return;\n    }\n  }\n  else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_00031620(uVar4);\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\nLAB_0001e608:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }\n  pcVar6 = "wrong third argument to .cfi_val_encoded_addr";\nLAB_0001e61a:\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_00031620(uVar4);\n  FUN_000339c0();\n  return;\n}\n\n" (function_definition "void FUN_0001e520(void)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  char *pcVar6;\n  ulonglong uVar7;\n  longlong lVar8;\n  longlong lVar9;\n  \n  if (*(int *)(DAT_00081608 + 0x48) == 0) {\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e61a;\n  }\n  iVar1 = FUN_00040f30(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));\n  if (iVar1 == DAT_000814a4) {\n    lVar8 = FUN_0003fad0(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));\n    lVar9 = FUN_0002a520();\n    if (lVar8 != lVar9) goto LAB_0001e562;\n  }\n  else {\nLAB_0001e562:\n    uVar2 = FUN_0003e680();\n    iVar3 = FUN_0001d6c0();\n    iVar1 = DAT_00081608;\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_0001d6c0();\n  *(undefined4 *)(iVar1 + 4) = 0x105;\n  uVar4 = FUN_0001d7c0();\n  *(undefined4 *)(iVar1 + 8) = uVar4;\n  FUN_0001e4b0();\n  uVar7 = FUN_00032f30();\n  uVar5 = (uint)uVar7;\n  if ((((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)) &&\n      ((uVar5 & 7) < 5)) && ((uVar5 & 7) != 1)) {\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x20) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e608;\n    }\n    else if (*(char *)(iVar1 + 0x20) != '\x03') goto LAB_0001e608;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar7 != 0xff) {\n      FUN_00033c40();\n      return;\n    }\n  }\n  else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_00031620(uVar4);\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\nLAB_0001e608:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }\n  pcVar6 = "wrong third argument to .cfi_val_encoded_addr";\nLAB_0001e61a:\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_00031620(uVar4);\n  FUN_000339c0();\n  return;\n}" primitive_type (function_declarator "FUN_0001e520(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  ulonglong uVar7;\n  longlong lVar8;\n  longlong lVar9;\n  \n  if (*(int *)(DAT_00081608 + 0x48) == 0) {\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e61a;\n  }\n  iVar1 = FUN_00040f30(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));\n  if (iVar1 == DAT_000814a4) {\n    lVar8 = FUN_0003fad0(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));\n    lVar9 = FUN_0002a520();\n    if (lVar8 != lVar9) goto LAB_0001e562;\n  }\n  else {\nLAB_0001e562:\n    uVar2 = FUN_0003e680();\n    iVar3 = FUN_0001d6c0();\n    iVar1 = DAT_00081608;\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_0001d6c0();\n  *(undefined4 *)(iVar1 + 4) = 0x105;\n  uVar4 = FUN_0001d7c0();\n  *(undefined4 *)(iVar1 + 8) = uVar4;\n  FUN_0001e4b0();\n  uVar7 = FUN_00032f30();\n  uVar5 = (uint)uVar7;\n  if ((((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)) &&\n      ((uVar5 & 7) < 5)) && ((uVar5 & 7) != 1)) {\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x20) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e608;\n    }\n    else if (*(char *)(iVar1 + 0x20) != '\x03') goto LAB_0001e608;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar7 != 0xff) {\n      FUN_00033c40();\n      return;\n    }\n  }\n  else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_00031620(uVar4);\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\nLAB_0001e608:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }\n  pcVar6 = "wrong third argument to .cfi_val_encoded_addr";\nLAB_0001e61a:\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_00031620(uVar4);\n  FUN_000339c0();\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) ;) (declaration "ulonglong uVar7;" type_identifier identifier ;) (declaration "longlong lVar8;" type_identifier identifier ;) (declaration "longlong lVar9;" type_identifier identifier ;) (if_statement "if (*(int *)(DAT_00081608 + 0x48) == 0) {\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e61a;\n  }" if (parenthesized_expression "(*(int *)(DAT_00081608 + 0x48) == 0)" ( (binary_expression "*(int *)(DAT_00081608 + 0x48) == 0" (pointer_expression "*(int *)(DAT_00081608 + 0x48)" * (cast_expression "(int *)(DAT_00081608 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00081608 + 0x48)" ( (binary_expression "DAT_00081608 + 0x48" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e61a;\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_0001e61a;" goto statement_identifier ;) })) (expression_statement "iVar1 = FUN_00040f30(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));" (assignment_expression "iVar1 = FUN_00040f30(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4))" identifier = (call_expression "FUN_00040f30(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4))" identifier (argument_list "(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4))" ( (pointer_expression "*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4)" * (cast_expression "(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_00081608 + 0x48) + 4)" ( (binary_expression "*(int *)(DAT_00081608 + 0x48) + 4" (pointer_expression "*(int *)(DAT_00081608 + 0x48)" * (cast_expression "(int *)(DAT_00081608 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00081608 + 0x48)" ( (binary_expression "DAT_00081608 + 0x48" identifier + number_literal) )))) + number_literal) )))) )))) ;) (if_statement "if (iVar1 == DAT_000814a4) {\n    lVar8 = FUN_0003fad0(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));\n    lVar9 = FUN_0002a520();\n    if (lVar8 != lVar9) goto LAB_0001e562;\n  }\n  else {\nLAB_0001e562:\n    uVar2 = FUN_0003e680();\n    iVar3 = FUN_0001d6c0();\n    iVar1 = DAT_00081608;\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_000814a4)" ( (binary_expression "iVar1 == DAT_000814a4" identifier == identifier) )) (compound_statement "{\n    lVar8 = FUN_0003fad0(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));\n    lVar9 = FUN_0002a520();\n    if (lVar8 != lVar9) goto LAB_0001e562;\n  }" { (expression_statement "lVar8 = FUN_0003fad0(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));" (assignment_expression "lVar8 = FUN_0003fad0(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4))" identifier = (call_expression "FUN_0003fad0(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4))" identifier (argument_list "(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4))" ( (pointer_expression "*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4)" * (cast_expression "(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_00081608 + 0x48) + 4)" ( (binary_expression "*(int *)(DAT_00081608 + 0x48) + 4" (pointer_expression "*(int *)(DAT_00081608 + 0x48)" * (cast_expression "(int *)(DAT_00081608 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00081608 + 0x48)" ( (binary_expression "DAT_00081608 + 0x48" identifier + number_literal) )))) + number_literal) )))) )))) ;) (expression_statement "lVar9 = FUN_0002a520();" (assignment_expression "lVar9 = FUN_0002a520()" identifier = (call_expression "FUN_0002a520()" identifier (argument_list "()" ( )))) ;) (if_statement "if (lVar8 != lVar9) goto LAB_0001e562;" if (parenthesized_expression "(lVar8 != lVar9)" ( (binary_expression "lVar8 != lVar9" identifier != identifier) )) (goto_statement "goto LAB_0001e562;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_0001e562:\n    uVar2 = FUN_0003e680();\n    iVar3 = FUN_0001d6c0();\n    iVar1 = DAT_00081608;\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_0001e562:\n    uVar2 = FUN_0003e680();\n    iVar3 = FUN_0001d6c0();\n    iVar1 = DAT_00081608;\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_0001e562:\n    uVar2 = FUN_0003e680();" statement_identifier : (expression_statement "uVar2 = FUN_0003e680();" (assignment_expression "uVar2 = FUN_0003e680()" identifier = (call_expression "FUN_0003e680()" identifier (argument_list "()" ( )))) ;)) (expression_statement "iVar3 = FUN_0001d6c0();" (assignment_expression "iVar3 = FUN_0001d6c0()" identifier = (call_expression "FUN_0001d6c0()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar1 = DAT_00081608;" (assignment_expression "iVar1 = DAT_00081608" 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_0001d6c0();" (assignment_expression "iVar1 = FUN_0001d6c0()" identifier = (call_expression "FUN_0001d6c0()" 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_0001d7c0();" (assignment_expression "uVar4 = FUN_0001d7c0()" identifier = (call_expression "FUN_0001d7c0()" 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_0001e4b0();" (call_expression "FUN_0001e4b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar7 = FUN_00032f30();" (assignment_expression "uVar7 = FUN_00032f30()" identifier = (call_expression "FUN_00032f30()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar5 = (uint)uVar7;" (assignment_expression "uVar5 = (uint)uVar7" identifier = (cast_expression "(uint)uVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)) &&\n      ((uVar5 & 7) < 5)) && ((uVar5 & 7) != 1)) {\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x20) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e608;\n    }\n    else if (*(char *)(iVar1 + 0x20) != '\x03') goto LAB_0001e608;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar7 != 0xff) {\n      FUN_00033c40();\n      return;\n    }\n  }\n  else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_00031620(uVar4);\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\nLAB_0001e608:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }" if (parenthesized_expression "((((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)) &&\n      ((uVar5 & 7) < 5)) && ((uVar5 & 7) != 1))" ( (binary_expression "(((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)) &&\n      ((uVar5 & 7) < 5)) && ((uVar5 & 7) != 1)" (parenthesized_expression "(((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)) &&\n      ((uVar5 & 7) < 5))" ( (binary_expression "((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)) &&\n      ((uVar5 & 7) < 5)" (parenthesized_expression "((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0))" ( (binary_expression "(uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)" (parenthesized_expression "(uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0)" ( (binary_expression "uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0" (binary_expression "uVar5 >> 8 == 0" (binary_expression "uVar5 >> 8" identifier >> number_literal) == number_literal) && (binary_expression "(int)(uVar7 >> 0x20) == 0" (cast_expression "(int)(uVar7 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar7 >> 0x20)" ( (binary_expression "uVar7 >> 0x20" identifier >> number_literal) ))) == number_literal)) )) && (parenthesized_expression "((uVar7 & 0x60) == 0)" ( (binary_expression "(uVar7 & 0x60) == 0" (parenthesized_expression "(uVar7 & 0x60)" ( (binary_expression "uVar7 & 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_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x20) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e608;\n    }\n    else if (*(char *)(iVar1 + 0x20) != '\x03') goto LAB_0001e608;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar7 != 0xff) {\n      FUN_00033c40();\n      return;\n    }\n  }" { (expression_statement "FUN_0001e4b0();" (call_expression "FUN_0001e4b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000285b0(0,iVar1 + 0x10,0);" (call_expression "FUN_000285b0(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 + 0x20) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e608;\n    }\n    else if (*(char *)(iVar1 + 0x20) != '\x03') goto LAB_0001e608;" if (parenthesized_expression "(*(char *)(iVar1 + 0x20) == '\x02')" ( (binary_expression "*(char *)(iVar1 + 0x20) == '\x02'" (pointer_expression "*(char *)(iVar1 + 0x20)" * (cast_expression "(char *)(iVar1 + 0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x20)" ( (binary_expression "iVar1 + 0x20" identifier + number_literal) )))) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e608;\n    }" { (if_statement "if ((uVar5 & 0x70) == 0x10) goto LAB_0001e608;" 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_0001e608;" goto statement_identifier ;)) }) (else_clause "else if (*(char *)(iVar1 + 0x20) != '\x03') goto LAB_0001e608;" else (if_statement "if (*(char *)(iVar1 + 0x20) != '\x03') goto LAB_0001e608;" if (parenthesized_expression "(*(char *)(iVar1 + 0x20) != '\x03')" ( (binary_expression "*(char *)(iVar1 + 0x20) != '\x03'" (pointer_expression "*(char *)(iVar1 + 0x20)" * (cast_expression "(char *)(iVar1 + 0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x20)" ( (binary_expression "iVar1 + 0x20" identifier + number_literal) )))) != (char_literal "'\x03'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001e608;" 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 (uVar7 != 0xff) {\n      FUN_00033c40();\n      return;\n    }" if (parenthesized_expression "(uVar7 != 0xff)" ( (binary_expression "uVar7 != 0xff" identifier != number_literal) )) (compound_statement "{\n      FUN_00033c40();\n      return;\n    }" { (expression_statement "FUN_00033c40();" (call_expression "FUN_00033c40()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_00031620(uVar4);\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\nLAB_0001e608:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }" else (compound_statement "{\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_00031620(uVar4);\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\nLAB_0001e608:\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_00031620(uVar4);" (call_expression "FUN_00031620(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "FUN_0001e4b0();" (call_expression "FUN_0001e4b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000285b0(0,iVar1 + 0x10,0);" (call_expression "FUN_000285b0(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_0001e608:\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_0001e61a:\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_00031620(uVar4);" (call_expression "FUN_00031620(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "FUN_000339c0();" (call_expression "FUN_000339c0()" 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) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT >> LIT) == LIT) && (binary_expression (cast_expression ( (type_descriptor TYPE) ) (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_0001e520(void)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  char *pcVar6;\n  ulonglong uVar7;\n  longlong lVar8;\n  longlong lVar9;\n  \n  if (*(int *)(DAT_00081608 + 0x48) == 0) {\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e61a;\n  }\n  iVar1 = FUN_00040f30(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));\n  if (iVar1 == DAT_000814a4) {\n    lVar8 = FUN_0003fad0(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));\n    lVar9 = FUN_0002a520();\n    if (lVar8 != lVar9) goto LAB_0001e562;\n  }\n  else {\nLAB_0001e562:\n    uVar2 = FUN_0003e680();\n    iVar3 = FUN_0001d6c0();\n    iVar1 = DAT_00081608;\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_0001d6c0();\n  *(undefined4 *)(iVar1 + 4) = 0x105;\n  uVar4 = FUN_0001d7c0();\n  *(undefined4 *)(iVar1 + 8) = uVar4;\n  FUN_0001e4b0();\n  uVar7 = FUN_00032f30();\n  uVar5 = (uint)uVar7;\n  if ((((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)) &&\n      ((uVar5 & 7) < 5)) && ((uVar5 & 7) != 1)) {\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x20) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e608;\n    }\n    else if (*(char *)(iVar1 + 0x20) != '\x03') goto LAB_0001e608;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar7 != 0xff) {\n      FUN_00033c40();\n      return;\n    }\n  }\n  else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_00031620(uVar4);\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\nLAB_0001e608:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }\n  pcVar6 = "wrong third argument to .cfi_val_encoded_addr";\nLAB_0001e61a:\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_00031620(uVar4);\n  FUN_000339c0();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0001e520(void)" (identifier "FUN_0001e520") (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  ulonglong uVar7;\n  longlong lVar8;\n  longlong lVar9;\n  \n  if (*(int *)(DAT_00081608 + 0x48) == 0) {\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e61a;\n  }\n  iVar1 = FUN_00040f30(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));\n  if (iVar1 == DAT_000814a4) {\n    lVar8 = FUN_0003fad0(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));\n    lVar9 = FUN_0002a520();\n    if (lVar8 != lVar9) goto LAB_0001e562;\n  }\n  else {\nLAB_0001e562:\n    uVar2 = FUN_0003e680();\n    iVar3 = FUN_0001d6c0();\n    iVar1 = DAT_00081608;\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_0001d6c0();\n  *(undefined4 *)(iVar1 + 4) = 0x105;\n  uVar4 = FUN_0001d7c0();\n  *(undefined4 *)(iVar1 + 8) = uVar4;\n  FUN_0001e4b0();\n  uVar7 = FUN_00032f30();\n  uVar5 = (uint)uVar7;\n  if ((((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)) &&\n      ((uVar5 & 7) < 5)) && ((uVar5 & 7) != 1)) {\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x20) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e608;\n    }\n    else if (*(char *)(iVar1 + 0x20) != '\x03') goto LAB_0001e608;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar7 != 0xff) {\n      FUN_00033c40();\n      return;\n    }\n  }\n  else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_00031620(uVar4);\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\nLAB_0001e608:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }\n  pcVar6 = "wrong third argument to .cfi_val_encoded_addr";\nLAB_0001e61a:\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_00031620(uVar4);\n  FUN_000339c0();\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")) (; ";")) (declaration "ulonglong uVar7;" (type_identifier "ulonglong") (identifier "uVar7") (; ";")) (declaration "longlong lVar8;" (type_identifier "longlong") (identifier "lVar8") (; ";")) (declaration "longlong lVar9;" (type_identifier "longlong") (identifier "lVar9") (; ";")) (if_statement "if (*(int *)(DAT_00081608 + 0x48) == 0) {\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e61a;\n  }" (if "if") (parenthesized_expression "(*(int *)(DAT_00081608 + 0x48) == 0)" (( "(") (binary_expression "*(int *)(DAT_00081608 + 0x48) == 0" (pointer_expression "*(int *)(DAT_00081608 + 0x48)" (* "*") (cast_expression "(int *)(DAT_00081608 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00081608 + 0x48)" (( "(") (binary_expression "DAT_00081608 + 0x48" (identifier "DAT_00081608") (+ "+") (number_literal "0x48")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    pcVar6 = "CFI instruction used without previous .cfi_startproc";\n    goto LAB_0001e61a;\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_0001e61a;" (goto "goto") (statement_identifier "LAB_0001e61a") (; ";")) (} "}"))) (expression_statement "iVar1 = FUN_00040f30(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));" (assignment_expression "iVar1 = FUN_00040f30(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4))" (identifier "iVar1") (= "=") (call_expression "FUN_00040f30(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4))" (identifier "FUN_00040f30") (argument_list "(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4))" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_00081608 + 0x48) + 4)" (( "(") (binary_expression "*(int *)(DAT_00081608 + 0x48) + 4" (pointer_expression "*(int *)(DAT_00081608 + 0x48)" (* "*") (cast_expression "(int *)(DAT_00081608 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00081608 + 0x48)" (( "(") (binary_expression "DAT_00081608 + 0x48" (identifier "DAT_00081608") (+ "+") (number_literal "0x48")) () ")")))) (+ "+") (number_literal "4")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar1 == DAT_000814a4) {\n    lVar8 = FUN_0003fad0(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));\n    lVar9 = FUN_0002a520();\n    if (lVar8 != lVar9) goto LAB_0001e562;\n  }\n  else {\nLAB_0001e562:\n    uVar2 = FUN_0003e680();\n    iVar3 = FUN_0001d6c0();\n    iVar1 = DAT_00081608;\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_000814a4)" (( "(") (binary_expression "iVar1 == DAT_000814a4" (identifier "iVar1") (== "==") (identifier "DAT_000814a4")) () ")")) (compound_statement "{\n    lVar8 = FUN_0003fad0(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));\n    lVar9 = FUN_0002a520();\n    if (lVar8 != lVar9) goto LAB_0001e562;\n  }" ({ "{") (expression_statement "lVar8 = FUN_0003fad0(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));" (assignment_expression "lVar8 = FUN_0003fad0(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4))" (identifier "lVar8") (= "=") (call_expression "FUN_0003fad0(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4))" (identifier "FUN_0003fad0") (argument_list "(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4))" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_00081608 + 0x48) + 4)" (( "(") (binary_expression "*(int *)(DAT_00081608 + 0x48) + 4" (pointer_expression "*(int *)(DAT_00081608 + 0x48)" (* "*") (cast_expression "(int *)(DAT_00081608 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00081608 + 0x48)" (( "(") (binary_expression "DAT_00081608 + 0x48" (identifier "DAT_00081608") (+ "+") (number_literal "0x48")) () ")")))) (+ "+") (number_literal "4")) () ")")))) () ")")))) (; ";")) (expression_statement "lVar9 = FUN_0002a520();" (assignment_expression "lVar9 = FUN_0002a520()" (identifier "lVar9") (= "=") (call_expression "FUN_0002a520()" (identifier "FUN_0002a520") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (lVar8 != lVar9) goto LAB_0001e562;" (if "if") (parenthesized_expression "(lVar8 != lVar9)" (( "(") (binary_expression "lVar8 != lVar9" (identifier "lVar8") (!= "!=") (identifier "lVar9")) () ")")) (goto_statement "goto LAB_0001e562;" (goto "goto") (statement_identifier "LAB_0001e562") (; ";"))) (} "}")) (else_clause "else {\nLAB_0001e562:\n    uVar2 = FUN_0003e680();\n    iVar3 = FUN_0001d6c0();\n    iVar1 = DAT_00081608;\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_0001e562:\n    uVar2 = FUN_0003e680();\n    iVar3 = FUN_0001d6c0();\n    iVar1 = DAT_00081608;\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_0001e562:\n    uVar2 = FUN_0003e680();" (statement_identifier "LAB_0001e562") (: ":") (expression_statement "uVar2 = FUN_0003e680();" (assignment_expression "uVar2 = FUN_0003e680()" (identifier "uVar2") (= "=") (call_expression "FUN_0003e680()" (identifier "FUN_0003e680") (argument_list "()" (( "(") () ")")))) (; ";"))) (expression_statement "iVar3 = FUN_0001d6c0();" (assignment_expression "iVar3 = FUN_0001d6c0()" (identifier "iVar3") (= "=") (call_expression "FUN_0001d6c0()" (identifier "FUN_0001d6c0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar1 = DAT_00081608;" (assignment_expression "iVar1 = DAT_00081608" (identifier "iVar1") (= "=") (identifier "DAT_00081608")) (; ";")) (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_0001d6c0();" (assignment_expression "iVar1 = FUN_0001d6c0()" (identifier "iVar1") (= "=") (call_expression "FUN_0001d6c0()" (identifier "FUN_0001d6c0") (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_0001d7c0();" (assignment_expression "uVar4 = FUN_0001d7c0()" (identifier "uVar4") (= "=") (call_expression "FUN_0001d7c0()" (identifier "FUN_0001d7c0") (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_0001e4b0();" (call_expression "FUN_0001e4b0()" (identifier "FUN_0001e4b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar7 = FUN_00032f30();" (assignment_expression "uVar7 = FUN_00032f30()" (identifier "uVar7") (= "=") (call_expression "FUN_00032f30()" (identifier "FUN_00032f30") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar5 = (uint)uVar7;" (assignment_expression "uVar5 = (uint)uVar7" (identifier "uVar5") (= "=") (cast_expression "(uint)uVar7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar7"))) (; ";")) (if_statement "if ((((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)) &&\n      ((uVar5 & 7) < 5)) && ((uVar5 & 7) != 1)) {\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x20) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e608;\n    }\n    else if (*(char *)(iVar1 + 0x20) != '\x03') goto LAB_0001e608;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar7 != 0xff) {\n      FUN_00033c40();\n      return;\n    }\n  }\n  else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_00031620(uVar4);\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\nLAB_0001e608:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }" (if "if") (parenthesized_expression "((((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)) &&\n      ((uVar5 & 7) < 5)) && ((uVar5 & 7) != 1))" (( "(") (binary_expression "(((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)) &&\n      ((uVar5 & 7) < 5)) && ((uVar5 & 7) != 1)" (parenthesized_expression "(((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)) &&\n      ((uVar5 & 7) < 5))" (( "(") (binary_expression "((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)) &&\n      ((uVar5 & 7) < 5)" (parenthesized_expression "((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0))" (( "(") (binary_expression "(uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)" (parenthesized_expression "(uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0)" (( "(") (binary_expression "uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0" (binary_expression "uVar5 >> 8 == 0" (binary_expression "uVar5 >> 8" (identifier "uVar5") (>> ">>") (number_literal "8")) (== "==") (number_literal "0")) (&& "&&") (binary_expression "(int)(uVar7 >> 0x20) == 0" (cast_expression "(int)(uVar7 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar7 >> 0x20)" (( "(") (binary_expression "uVar7 >> 0x20" (identifier "uVar7") (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0"))) () ")")) (&& "&&") (parenthesized_expression "((uVar7 & 0x60) == 0)" (( "(") (binary_expression "(uVar7 & 0x60) == 0" (parenthesized_expression "(uVar7 & 0x60)" (( "(") (binary_expression "uVar7 & 0x60" (identifier "uVar7") (& "&") (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_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\n    if (*(char *)(iVar1 + 0x20) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e608;\n    }\n    else if (*(char *)(iVar1 + 0x20) != '\x03') goto LAB_0001e608;\n    *(uint *)(iVar1 + 0xc) = uVar5;\n    if (uVar7 != 0xff) {\n      FUN_00033c40();\n      return;\n    }\n  }" ({ "{") (expression_statement "FUN_0001e4b0();" (call_expression "FUN_0001e4b0()" (identifier "FUN_0001e4b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000285b0(0,iVar1 + 0x10,0);" (call_expression "FUN_000285b0(0,iVar1 + 0x10,0)" (identifier "FUN_000285b0") (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 + 0x20) == '\x02') {\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e608;\n    }\n    else if (*(char *)(iVar1 + 0x20) != '\x03') goto LAB_0001e608;" (if "if") (parenthesized_expression "(*(char *)(iVar1 + 0x20) == '\x02')" (( "(") (binary_expression "*(char *)(iVar1 + 0x20) == '\x02'" (pointer_expression "*(char *)(iVar1 + 0x20)" (* "*") (cast_expression "(char *)(iVar1 + 0x20)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x20)" (( "(") (binary_expression "iVar1 + 0x20" (identifier "iVar1") (+ "+") (number_literal "0x20")) () ")")))) (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e608;\n    }" ({ "{") (if_statement "if ((uVar5 & 0x70) == 0x10) goto LAB_0001e608;" (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_0001e608;" (goto "goto") (statement_identifier "LAB_0001e608") (; ";"))) (} "}")) (else_clause "else if (*(char *)(iVar1 + 0x20) != '\x03') goto LAB_0001e608;" (else "else") (if_statement "if (*(char *)(iVar1 + 0x20) != '\x03') goto LAB_0001e608;" (if "if") (parenthesized_expression "(*(char *)(iVar1 + 0x20) != '\x03')" (( "(") (binary_expression "*(char *)(iVar1 + 0x20) != '\x03'" (pointer_expression "*(char *)(iVar1 + 0x20)" (* "*") (cast_expression "(char *)(iVar1 + 0x20)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x20)" (( "(") (binary_expression "iVar1 + 0x20" (identifier "iVar1") (+ "+") (number_literal "0x20")) () ")")))) (!= "!=") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")")) (goto_statement "goto LAB_0001e608;" (goto "goto") (statement_identifier "LAB_0001e608") (; ";"))))) (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 (uVar7 != 0xff) {\n      FUN_00033c40();\n      return;\n    }" (if "if") (parenthesized_expression "(uVar7 != 0xff)" (( "(") (binary_expression "uVar7 != 0xff" (identifier "uVar7") (!= "!=") (number_literal "0xff")) () ")")) (compound_statement "{\n      FUN_00033c40();\n      return;\n    }" ({ "{") (expression_statement "FUN_00033c40();" (call_expression "FUN_00033c40()" (identifier "FUN_00033c40") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_00031620(uVar4);\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\nLAB_0001e608:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;\n  }" (else "else") (compound_statement "{\n    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);\n    FUN_00031620(uVar4);\n    FUN_0001e4b0();\n    FUN_000285b0(0,iVar1 + 0x10,0);\nLAB_0001e608:\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_00031620(uVar4);" (call_expression "FUN_00031620(uVar4)" (identifier "FUN_00031620") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "FUN_0001e4b0();" (call_expression "FUN_0001e4b0()" (identifier "FUN_0001e4b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000285b0(0,iVar1 + 0x10,0);" (call_expression "FUN_000285b0(0,iVar1 + 0x10,0)" (identifier "FUN_000285b0") (argument_list "(0,iVar1 + 0x10,0)" (( "(") (number_literal "0") (, ",") (binary_expression "iVar1 + 0x10" (identifier "iVar1") (+ "+") (number_literal "0x10")) (, ",") (number_literal "0") () ")"))) (; ";")) (labeled_statement "LAB_0001e608:\n    *(undefined4 *)(iVar1 + 0xc) = 0xff;" (statement_identifier "LAB_0001e608") (: ":") (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_0001e61a:\n  uVar4 = dcgettext(0,pcVar6,5);" (statement_identifier "LAB_0001e61a") (: ":") (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_00031620(uVar4);" (call_expression "FUN_00031620(uVar4)" (identifier "FUN_00031620") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "FUN_000339c0();" (call_expression "FUN_000339c0()" (identifier "FUN_000339c0") (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_17;
  type_2 *pfVar2;
  type_3 *psVar3;
  type_4 *pfVar4;
  type_5 *var_2;
  type_3 *psVar6;
  type_6 *pcVar7;
  type_7 var_15;
  char *pcVar9;
  type_8 var_13;
  type_9 var_6;
  type_10 var_7;
  
  if (frchain_now->type_2 == (type_2 *)0x0) {
    pcVar9 = "CFI instruction used without previous .cfi_startproc";
    goto LAB_0001e61a;
  }
  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_0001e562;
  }
  else {
LAB_0001e562:
    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_15 = var_10();
  (pcVar7->u).ri.reg = var_15;
  var_11();
  var_13 = var_12();
  var_15 = (type_7)var_13;
  if (((((int3)(var_13 >> 8) == 0 && (int)(var_13 >> 0x20) == 0) && ((var_13 & 0x60) == 0)) &&
      (var_14(var_15 & 0x60,var_15 & 0x60) == 4 < (var_15 & 7))) && ((var_15 & 7) != 1)) {
    var_11();
    var_16(0,resultP,expr_evaluate);
    var_17 = *(char *)((int)&pcVar7->u + 0x18);
    if (var_17 == '\x02') {
      if ((var_15 & 0x70) == 0x10) goto LAB_0001e608;
    }
    else if (var_17 != '\x03') goto LAB_0001e608;
    (pcVar7->u).rr.reg2 = var_15;
    if (var_13 != 0xff) {
      var_18();
      return;
    }
  }
  else {
    pcVar9 = (char *)var_19(0,"invalid or unsupported encoding in .cfi_lsda",5);
    var_20(pcVar9);
    var_11();
    var_16(0,resultP,expr_evaluate);
LAB_0001e608:
    (pcVar7->u).rr.reg2 = 0xff;
  }
  pcVar9 = "wrong third argument to .cfi_val_encoded_addr";
LAB_0001e61a:
  pcVar9 = (char *)var_19(0,pcVar9,5);
  var_20(pcVar9);
  var_21();
  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))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) 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)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))) right: (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;
  ulonglong uVar7;
  longlong lVar8;
  longlong lVar9;
  
  if (*(int *)(DAT_00081608 + 0x48) == 0) {
    pcVar6 = "CFI instruction used without previous .cfi_startproc";
    goto LAB_0001e61a;
  }
  iVar1 = FUN_00040f30(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));
  if (iVar1 == DAT_000814a4) {
    lVar8 = FUN_0003fad0(*(undefined4 *)(*(int *)(DAT_00081608 + 0x48) + 4));
    lVar9 = FUN_0002a520();
    if (lVar8 != lVar9) goto LAB_0001e562;
  }
  else {
LAB_0001e562:
    uVar2 = FUN_0003e680();
    iVar3 = FUN_0001d6c0();
    iVar1 = DAT_00081608;
    *(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_0001d6c0();
  *(undefined4 *)(iVar1 + 4) = 0x105;
  uVar4 = FUN_0001d7c0();
  *(undefined4 *)(iVar1 + 8) = uVar4;
  FUN_0001e4b0();
  uVar7 = FUN_00032f30();
  uVar5 = (uint)uVar7;
  if ((((uVar5 >> 8 == 0 && (int)(uVar7 >> 0x20) == 0) && ((uVar7 & 0x60) == 0)) &&
      ((uVar5 & 7) < 5)) && ((uVar5 & 7) != 1)) {
    FUN_0001e4b0();
    FUN_000285b0(0,iVar1 + 0x10,0);
    if (*(char *)(iVar1 + 0x20) == '\x02') {
      if ((uVar5 & 0x70) == 0x10) goto LAB_0001e608;
    }
    else if (*(char *)(iVar1 + 0x20) != '\x03') goto LAB_0001e608;
    *(uint *)(iVar1 + 0xc) = uVar5;
    if (uVar7 != 0xff) {
      FUN_00033c40();
      return;
    }
  }
  else {
    uVar4 = dcgettext(0,"invalid or unsupported encoding in .cfi_lsda",5);
    FUN_00031620(uVar4);
    FUN_0001e4b0();
    FUN_000285b0(0,iVar1 + 0x10,0);
LAB_0001e608:
    *(undefined4 *)(iVar1 + 0xc) = 0xff;
  }
  pcVar6 = "wrong third argument to .cfi_val_encoded_addr";
LAB_0001e61a:
  uVar4 = dcgettext(0,pcVar6,5);
  FUN_00031620(uVar4);
  FUN_000339c0();
  return;
}

