
offsetT offset_in_range(offsetT val,int size)

{
  uint uVar1;
  char *format;
  int extraout_ECX;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  int unaff_EDI;
  undefined8 uVar6;
  uint local_78;
  char buf1 [40];
  char buf2 [40];
  
  uVar6 = __x86_get_pc_thunk_di();
  local_78 = (uint)((ulonglong)uVar6 >> 0x20);
  uVar1 = (uint)uVar6;
  if (extraout_ECX == 2) {
    uVar4 = 0xffff0000;
    uVar2 = 0xffffffff;
    uVar3 = 0xffff;
    uVar5 = 0;
  }
  else if (extraout_ECX < 3) {
    if (extraout_ECX != 1) {
LAB_00045ba6:
                    /* WARNING: Subroutine does not return */
      as_abort((char *)(unaff_EDI + 0x1e13b),0x8eb,(char *)(unaff_EDI + 0x1f861));
    }
    uVar4 = 0xffffff00;
    uVar2 = 0xffffffff;
    uVar3 = 0xff;
    uVar5 = 0;
  }
  else if (extraout_ECX == 4) {
    uVar4 = 0;
    uVar2 = 0xffffffff;
    uVar3 = 0xffffffff;
    uVar5 = 0;
  }
  else {
    if (extraout_ECX != 8) goto LAB_00045ba6;
    uVar4 = 0;
    uVar2 = 0;
    uVar3 = 0xffffffff;
    uVar5 = 0xffffffff;
  }
  if (((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')) &&
     (local_78 == 0)) {
    local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1;
  }
  uVar3 = uVar3 & uVar1;
  uVar5 = local_78 & uVar5;
  if (((uVar1 & uVar4) != 0 || (local_78 & uVar2) != 0) &&
     (uVar4 != (uVar1 & uVar4) || uVar2 != (local_78 & uVar2))) {
    sprint_value(buf1,CONCAT44(local_78,uVar1));
    sprint_value(buf2,CONCAT44(uVar5,uVar3));
    format = (char *)dcgettext(0,unaff_EDI + 0x1e211,5);
    as_warn(format,buf1,buf2);
    return CONCAT44(uVar5,uVar3);
  }
  return CONCAT44(uVar5,uVar3);
}



undefined8 FUN_00045a10(void)

{
  uint uVar1;
  undefined4 uVar2;
  int extraout_ECX;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  int unaff_EDI;
  undefined8 uVar7;
  uint local_78;
  undefined1 local_6c [40];
  undefined1 local_44 [52];
  
  uVar7 = FUN_0001d569();
  local_78 = (uint)((ulonglong)uVar7 >> 0x20);
  uVar1 = (uint)uVar7;
  if (extraout_ECX == 2) {
    uVar5 = 0xffff0000;
    uVar3 = 0xffffffff;
    uVar4 = 0xffff;
    uVar6 = 0;
  }
  else if (extraout_ECX < 3) {
    if (extraout_ECX != 1) {
LAB_00045ba6:
                    /* WARNING: Subroutine does not return */
      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);
    }
    uVar5 = 0xffffff00;
    uVar3 = 0xffffffff;
    uVar4 = 0xff;
    uVar6 = 0;
  }
  else if (extraout_ECX == 4) {
    uVar5 = 0;
    uVar3 = 0xffffffff;
    uVar4 = 0xffffffff;
    uVar6 = 0;
  }
  else {
    if (extraout_ECX != 8) goto LAB_00045ba6;
    uVar5 = 0;
    uVar3 = 0;
    uVar4 = 0xffffffff;
    uVar6 = 0xffffffff;
  }
  if (((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')) &&
     (local_78 == 0)) {
    local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1;
  }
  uVar4 = uVar4 & uVar1;
  uVar6 = local_78 & uVar6;
  if (((uVar1 & uVar5) != 0 || (local_78 & uVar3) != 0) &&
     (uVar5 != (uVar1 & uVar5) || uVar3 != (local_78 & uVar3))) {
    FUN_0002c250(local_6c,uVar1,local_78);
    FUN_0002c250(local_44,uVar4,uVar6);
    uVar2 = dcgettext(0,unaff_EDI + 0x1e211,5);
    FUN_0002bc80(uVar2,local_6c,local_44);
    return CONCAT44(uVar6,uVar4);
  }
  return CONCAT44(uVar6,uVar4);
}


PUSH EBP
PUSH EDI
CALL 0x0001d569
ADD EDI,0x3a5e9
PUSH ESI
MOV ESI,EDX
PUSH EBX
SUB ESP,0x6c
MOV dword ptr [ESP + 0x8],EDI
CMP ECX,0x2
JZ 0x00045b90
JLE 0x00045ab0
CMP ECX,0x4
JZ 0x00045b60
CMP ECX,0x8
JNZ 0x00045ba6
XOR EBX,EBX
XOR ECX,ECX
MOV EDX,0xffffffff
MOV EBP,0xffffffff
MOV EDI,dword ptr [ESP + 0x8]
MOV dword ptr [ESP],EAX
MOV dword ptr [ESP + 0x4],ESI
CMP dword ptr [EDI + 0x8f0c],0x2
JZ 0x00045b78
TEST ESI,ESI
JZ 0x00045ad0
MOV ESI,dword ptr [ESP]
AND EDX,dword ptr [ESP]
MOV EDI,dword ptr [ESP + 0x4]
MOV EAX,ESI
MOV ESI,EDX
MOV EDX,dword ptr [ESP + 0x4]
AND EAX,EBX
AND EDX,EBP
MOV dword ptr [ESP + 0xc],EAX
MOV EBP,dword ptr [ESP + 0xc]
MOV EAX,EDI
AND EAX,ECX
MOV EDI,EDX
MOV EDX,EBP
OR EDX,EAX
JZ 0x00045aa1
XOR EBX,EBP
XOR ECX,EAX
OR EBX,ECX
JNZ 0x00045af0
ADD ESP,0x6c
MOV EAX,ESI
MOV EDX,EDI
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP ECX,0x1
JNZ 0x00045ba6
MOV EBX,0xffffff00
MOV ECX,0xffffffff
MOV EDX,0xff
XOR EBP,EBP
JMP 0x00045a53
LEA ESI,[EAX + 0x80000000]
XOR EDI,EDI
ADD ESI,0x80000000
ADC EDI,-0x1
MOV dword ptr [ESP],ESI
MOV dword ptr [ESP + 0x4],EDI
JMP 0x00045a6f
SUB ESP,0x4
PUSH dword ptr [ESP + 0x8]
PUSH dword ptr [ESP + 0x8]
LEA EBP,[ESP + 0x1c]
PUSH EBP
MOV EBX,dword ptr [ESP + 0x18]
CALL 0x0002c250
ADD ESP,0xc
PUSH EDI
PUSH ESI
LEA EDX,[ESP + 0x44]
PUSH EDX
MOV EBX,dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0x10],EDX
CALL 0x0002c250
ADD ESP,0xc
PUSH 0x5
MOV EBX,dword ptr [ESP + 0x10]
LEA EAX,[EBX + 0xfffe3c28]
PUSH EAX
PUSH 0x0
MOV dword ptr [ESP + 0x18],EBX
CALL 0x000141a0
ADD ESP,0xc
MOV EDX,dword ptr [ESP + 0x4]
PUSH EDX
PUSH EBP
PUSH EAX
MOV EBX,dword ptr [ESP + 0x18]
CALL 0x0002bc80
ADD ESP,0x10
MOV EAX,ESI
MOV EDX,EDI
ADD ESP,0x6c
POP EBX
POP ESI
POP EDI
POP EBP
RET
XOR EBX,EBX
MOV ECX,0xffffffff
MOV EDX,0xffffffff
XOR EBP,EBP
JMP 0x00045a53
CMP byte ptr [EDI + 0x9092],0x0
JZ 0x00045a6f
JMP 0x00045a6b
MOV EBX,0xffff0000
MOV ECX,0xffffffff
MOV EDX,0xffff
XOR EBP,EBP
JMP 0x00045a53
PUSH EAX
MOV EBX,dword ptr [ESP + 0xc]
LEA EAX,[EBX + 0xfffe5278]
PUSH EAX
LEA EAX,[EBX + 0xfffe3b52]
PUSH 0x8eb
PUSH EAX
CALL 0x0002be80
(translation_unit "undefined8 FUN_00045a10(void)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  int extraout_ECX;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  int unaff_EDI;\n  undefined8 uVar7;\n  uint local_78;\n  undefined1 local_6c [40];\n  undefined1 local_44 [52];\n  \n  uVar7 = FUN_0001d569();\n  local_78 = (uint)((ulonglong)uVar7 >> 0x20);\n  uVar1 = (uint)uVar7;\n  if (extraout_ECX == 2) {\n    uVar5 = 0xffff0000;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX < 3) {\n    if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    /* WARNING: Subroutine does not return */\n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);\n    }\n    uVar5 = 0xffffff00;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX == 4) {\n    uVar5 = 0;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffffffff;\n    uVar6 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }\n  if (((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')) &&\n     (local_78 == 0)) {\n    local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1;\n  }\n  uVar4 = uVar4 & uVar1;\n  uVar6 = local_78 & uVar6;\n  if (((uVar1 & uVar5) != 0 || (local_78 & uVar3) != 0) &&\n     (uVar5 != (uVar1 & uVar5) || uVar3 != (local_78 & uVar3))) {\n    FUN_0002c250(local_6c,uVar1,local_78);\n    FUN_0002c250(local_44,uVar4,uVar6);\n    uVar2 = dcgettext(0,unaff_EDI + 0x1e211,5);\n    FUN_0002bc80(uVar2,local_6c,local_44);\n    return CONCAT44(uVar6,uVar4);\n  }\n  return CONCAT44(uVar6,uVar4);\n}\n\n" (function_definition "undefined8 FUN_00045a10(void)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  int extraout_ECX;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  int unaff_EDI;\n  undefined8 uVar7;\n  uint local_78;\n  undefined1 local_6c [40];\n  undefined1 local_44 [52];\n  \n  uVar7 = FUN_0001d569();\n  local_78 = (uint)((ulonglong)uVar7 >> 0x20);\n  uVar1 = (uint)uVar7;\n  if (extraout_ECX == 2) {\n    uVar5 = 0xffff0000;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX < 3) {\n    if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    /* WARNING: Subroutine does not return */\n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);\n    }\n    uVar5 = 0xffffff00;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX == 4) {\n    uVar5 = 0;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffffffff;\n    uVar6 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }\n  if (((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')) &&\n     (local_78 == 0)) {\n    local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1;\n  }\n  uVar4 = uVar4 & uVar1;\n  uVar6 = local_78 & uVar6;\n  if (((uVar1 & uVar5) != 0 || (local_78 & uVar3) != 0) &&\n     (uVar5 != (uVar1 & uVar5) || uVar3 != (local_78 & uVar3))) {\n    FUN_0002c250(local_6c,uVar1,local_78);\n    FUN_0002c250(local_44,uVar4,uVar6);\n    uVar2 = dcgettext(0,unaff_EDI + 0x1e211,5);\n    FUN_0002bc80(uVar2,local_6c,local_44);\n    return CONCAT44(uVar6,uVar4);\n  }\n  return CONCAT44(uVar6,uVar4);\n}" type_identifier (function_declarator "FUN_00045a10(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  uint uVar1;\n  undefined4 uVar2;\n  int extraout_ECX;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  int unaff_EDI;\n  undefined8 uVar7;\n  uint local_78;\n  undefined1 local_6c [40];\n  undefined1 local_44 [52];\n  \n  uVar7 = FUN_0001d569();\n  local_78 = (uint)((ulonglong)uVar7 >> 0x20);\n  uVar1 = (uint)uVar7;\n  if (extraout_ECX == 2) {\n    uVar5 = 0xffff0000;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX < 3) {\n    if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    /* WARNING: Subroutine does not return */\n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);\n    }\n    uVar5 = 0xffffff00;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX == 4) {\n    uVar5 = 0;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffffffff;\n    uVar6 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }\n  if (((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')) &&\n     (local_78 == 0)) {\n    local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1;\n  }\n  uVar4 = uVar4 & uVar1;\n  uVar6 = local_78 & uVar6;\n  if (((uVar1 & uVar5) != 0 || (local_78 & uVar3) != 0) &&\n     (uVar5 != (uVar1 & uVar5) || uVar3 != (local_78 & uVar3))) {\n    FUN_0002c250(local_6c,uVar1,local_78);\n    FUN_0002c250(local_44,uVar4,uVar6);\n    uVar2 = dcgettext(0,unaff_EDI + 0x1e211,5);\n    FUN_0002bc80(uVar2,local_6c,local_44);\n    return CONCAT44(uVar6,uVar4);\n  }\n  return CONCAT44(uVar6,uVar4);\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int extraout_ECX;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "uint local_78;" type_identifier identifier ;) (declaration "undefined1 local_6c [40];" type_identifier (array_declarator "local_6c [40]" identifier [ number_literal ]) ;) (declaration "undefined1 local_44 [52];" type_identifier (array_declarator "local_44 [52]" identifier [ number_literal ]) ;) (expression_statement "uVar7 = FUN_0001d569();" (assignment_expression "uVar7 = FUN_0001d569()" identifier = (call_expression "FUN_0001d569()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_78 = (uint)((ulonglong)uVar7 >> 0x20);" (assignment_expression "local_78 = (uint)((ulonglong)uVar7 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar7 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar7 >> 0x20)" ( (binary_expression "(ulonglong)uVar7 >> 0x20" (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar1 = (uint)uVar7;" (assignment_expression "uVar1 = (uint)uVar7" identifier = (cast_expression "(uint)uVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (extraout_ECX == 2) {\n    uVar5 = 0xffff0000;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX < 3) {\n    if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    /* WARNING: Subroutine does not return */\n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);\n    }\n    uVar5 = 0xffffff00;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX == 4) {\n    uVar5 = 0;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffffffff;\n    uVar6 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }" if (parenthesized_expression "(extraout_ECX == 2)" ( (binary_expression "extraout_ECX == 2" identifier == number_literal) )) (compound_statement "{\n    uVar5 = 0xffff0000;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffff;\n    uVar6 = 0;\n  }" { (expression_statement "uVar5 = 0xffff0000;" (assignment_expression "uVar5 = 0xffff0000" identifier = number_literal) ;) (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar4 = 0xffff;" (assignment_expression "uVar4 = 0xffff" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) }) (else_clause "else if (extraout_ECX < 3) {\n    if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    /* WARNING: Subroutine does not return */\n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);\n    }\n    uVar5 = 0xffffff00;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX == 4) {\n    uVar5 = 0;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffffffff;\n    uVar6 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }" else (if_statement "if (extraout_ECX < 3) {\n    if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    /* WARNING: Subroutine does not return */\n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);\n    }\n    uVar5 = 0xffffff00;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX == 4) {\n    uVar5 = 0;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffffffff;\n    uVar6 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }" if (parenthesized_expression "(extraout_ECX < 3)" ( (binary_expression "extraout_ECX < 3" identifier < number_literal) )) (compound_statement "{\n    if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    /* WARNING: Subroutine does not return */\n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);\n    }\n    uVar5 = 0xffffff00;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xff;\n    uVar6 = 0;\n  }" { (if_statement "if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    /* WARNING: Subroutine does not return */\n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);\n    }" if (parenthesized_expression "(extraout_ECX != 1)" ( (binary_expression "extraout_ECX != 1" identifier != number_literal) )) (compound_statement "{\nLAB_00045ba6:\n                    /* WARNING: Subroutine does not return */\n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);\n    }" { (labeled_statement "LAB_00045ba6:\n                    /* WARNING: Subroutine does not return */\n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);" statement_identifier : comment (expression_statement "FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);" (call_expression "FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1)" identifier (argument_list "(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1)" ( (binary_expression "unaff_EDI + 0x1e13b" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x1f861" identifier + number_literal) , identifier ))) ;)) })) (expression_statement "uVar5 = 0xffffff00;" (assignment_expression "uVar5 = 0xffffff00" identifier = number_literal) ;) (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar4 = 0xff;" (assignment_expression "uVar4 = 0xff" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) }) (else_clause "else if (extraout_ECX == 4) {\n    uVar5 = 0;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffffffff;\n    uVar6 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }" else (if_statement "if (extraout_ECX == 4) {\n    uVar5 = 0;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffffffff;\n    uVar6 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }" if (parenthesized_expression "(extraout_ECX == 4)" ( (binary_expression "extraout_ECX == 4" identifier == number_literal) )) (compound_statement "{\n    uVar5 = 0;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffffffff;\n    uVar6 = 0;\n  }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }" else (compound_statement "{\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }" { (if_statement "if (extraout_ECX != 8) goto LAB_00045ba6;" if (parenthesized_expression "(extraout_ECX != 8)" ( (binary_expression "extraout_ECX != 8" identifier != number_literal) )) (goto_statement "goto LAB_00045ba6;" goto statement_identifier ;)) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" identifier = number_literal) ;) }))))))) (if_statement "if (((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')) &&\n     (local_78 == 0)) {\n    local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1;\n  }" if (parenthesized_expression "(((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')) &&\n     (local_78 == 0))" ( (binary_expression "((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')) &&\n     (local_78 == 0)" (parenthesized_expression "((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0'))" ( (binary_expression "(*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')" (parenthesized_expression "(*(int *)(unaff_EDI + 0x434f5) != 2)" ( (binary_expression "*(int *)(unaff_EDI + 0x434f5) != 2" (pointer_expression "*(int *)(unaff_EDI + 0x434f5)" * (cast_expression "(int *)(unaff_EDI + 0x434f5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x434f5)" ( (binary_expression "unaff_EDI + 0x434f5" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(*(char *)(unaff_EDI + 0x4367b) != '\0')" ( (binary_expression "*(char *)(unaff_EDI + 0x4367b) != '\0'" (pointer_expression "*(char *)(unaff_EDI + 0x4367b)" * (cast_expression "(char *)(unaff_EDI + 0x4367b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4367b)" ( (binary_expression "unaff_EDI + 0x4367b" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(local_78 == 0)" ( (binary_expression "local_78 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1;\n  }" { (expression_statement "local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1;" (assignment_expression "local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1" identifier = (binary_expression "(0x7fffffff < uVar1 + 0x80000000) - 1" (parenthesized_expression "(0x7fffffff < uVar1 + 0x80000000)" ( (binary_expression "0x7fffffff < uVar1 + 0x80000000" number_literal < (binary_expression "uVar1 + 0x80000000" identifier + number_literal)) )) - number_literal)) ;) })) (expression_statement "uVar4 = uVar4 & uVar1;" (assignment_expression "uVar4 = uVar4 & uVar1" identifier = (binary_expression "uVar4 & uVar1" identifier & identifier)) ;) (expression_statement "uVar6 = local_78 & uVar6;" (assignment_expression "uVar6 = local_78 & uVar6" identifier = (binary_expression "local_78 & uVar6" identifier & identifier)) ;) (if_statement "if (((uVar1 & uVar5) != 0 || (local_78 & uVar3) != 0) &&\n     (uVar5 != (uVar1 & uVar5) || uVar3 != (local_78 & uVar3))) {\n    FUN_0002c250(local_6c,uVar1,local_78);\n    FUN_0002c250(local_44,uVar4,uVar6);\n    uVar2 = dcgettext(0,unaff_EDI + 0x1e211,5);\n    FUN_0002bc80(uVar2,local_6c,local_44);\n    return CONCAT44(uVar6,uVar4);\n  }" if (parenthesized_expression "(((uVar1 & uVar5) != 0 || (local_78 & uVar3) != 0) &&\n     (uVar5 != (uVar1 & uVar5) || uVar3 != (local_78 & uVar3)))" ( (binary_expression "((uVar1 & uVar5) != 0 || (local_78 & uVar3) != 0) &&\n     (uVar5 != (uVar1 & uVar5) || uVar3 != (local_78 & uVar3))" (parenthesized_expression "((uVar1 & uVar5) != 0 || (local_78 & uVar3) != 0)" ( (binary_expression "(uVar1 & uVar5) != 0 || (local_78 & uVar3) != 0" (binary_expression "(uVar1 & uVar5) != 0" (parenthesized_expression "(uVar1 & uVar5)" ( (binary_expression "uVar1 & uVar5" identifier & identifier) )) != number_literal) || (binary_expression "(local_78 & uVar3) != 0" (parenthesized_expression "(local_78 & uVar3)" ( (binary_expression "local_78 & uVar3" identifier & identifier) )) != number_literal)) )) && (parenthesized_expression "(uVar5 != (uVar1 & uVar5) || uVar3 != (local_78 & uVar3))" ( (binary_expression "uVar5 != (uVar1 & uVar5) || uVar3 != (local_78 & uVar3)" (binary_expression "uVar5 != (uVar1 & uVar5)" identifier != (parenthesized_expression "(uVar1 & uVar5)" ( (binary_expression "uVar1 & uVar5" identifier & identifier) ))) || (binary_expression "uVar3 != (local_78 & uVar3)" identifier != (parenthesized_expression "(local_78 & uVar3)" ( (binary_expression "local_78 & uVar3" identifier & identifier) )))) ))) )) (compound_statement "{\n    FUN_0002c250(local_6c,uVar1,local_78);\n    FUN_0002c250(local_44,uVar4,uVar6);\n    uVar2 = dcgettext(0,unaff_EDI + 0x1e211,5);\n    FUN_0002bc80(uVar2,local_6c,local_44);\n    return CONCAT44(uVar6,uVar4);\n  }" { (expression_statement "FUN_0002c250(local_6c,uVar1,local_78);" (call_expression "FUN_0002c250(local_6c,uVar1,local_78)" identifier (argument_list "(local_6c,uVar1,local_78)" ( identifier , identifier , identifier ))) ;) (expression_statement "FUN_0002c250(local_44,uVar4,uVar6);" (call_expression "FUN_0002c250(local_44,uVar4,uVar6)" identifier (argument_list "(local_44,uVar4,uVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar2 = dcgettext(0,unaff_EDI + 0x1e211,5);" (assignment_expression "uVar2 = dcgettext(0,unaff_EDI + 0x1e211,5)" identifier = (call_expression "dcgettext(0,unaff_EDI + 0x1e211,5)" identifier (argument_list "(0,unaff_EDI + 0x1e211,5)" ( number_literal , (binary_expression "unaff_EDI + 0x1e211" identifier + number_literal) , number_literal )))) ;) (expression_statement "FUN_0002bc80(uVar2,local_6c,local_44);" (call_expression "FUN_0002bc80(uVar2,local_6c,local_44)" identifier (argument_list "(uVar2,local_6c,local_44)" ( identifier , identifier , identifier ))) ;) (return_statement "return CONCAT44(uVar6,uVar4);" return (call_expression "CONCAT44(uVar6,uVar4)" identifier (argument_list "(uVar6,uVar4)" ( identifier , identifier ))) ;) })) (return_statement "return CONCAT44(uVar6,uVar4);" return (call_expression "CONCAT44(uVar6,uVar4)" identifier (argument_list "(uVar6,uVar4)" ( identifier , identifier ))) ;) })))
(translation_unit "offsetT offset_in_range(offsetT val,int size)\n\n{\n  uint uVar1;\n  char *format;\n  int extraout_ECX;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  int unaff_EDI;\n  undefined8 uVar6;\n  uint local_78;\n  char buf1 [40];\n  char buf2 [40];\n  \n  uVar6 = __x86_get_pc_thunk_di();\n  local_78 = (uint)((ulonglong)uVar6 >> 0x20);\n  uVar1 = (uint)uVar6;\n  if (extraout_ECX == 2) {\n    uVar4 = 0xffff0000;\n    uVar2 = 0xffffffff;\n    uVar3 = 0xffff;\n    uVar5 = 0;\n  }\n  else if (extraout_ECX < 3) {\n    if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    /* WARNING: Subroutine does not return */\n      as_abort((char *)(unaff_EDI + 0x1e13b),0x8eb,(char *)(unaff_EDI + 0x1f861));\n    }\n    uVar4 = 0xffffff00;\n    uVar2 = 0xffffffff;\n    uVar3 = 0xff;\n    uVar5 = 0;\n  }\n  else if (extraout_ECX == 4) {\n    uVar4 = 0;\n    uVar2 = 0xffffffff;\n    uVar3 = 0xffffffff;\n    uVar5 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar4 = 0;\n    uVar2 = 0;\n    uVar3 = 0xffffffff;\n    uVar5 = 0xffffffff;\n  }\n  if (((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')) &&\n     (local_78 == 0)) {\n    local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1;\n  }\n  uVar3 = uVar3 & uVar1;\n  uVar5 = local_78 & uVar5;\n  if (((uVar1 & uVar4) != 0 || (local_78 & uVar2) != 0) &&\n     (uVar4 != (uVar1 & uVar4) || uVar2 != (local_78 & uVar2))) {\n    sprint_value(buf1,CONCAT44(local_78,uVar1));\n    sprint_value(buf2,CONCAT44(uVar5,uVar3));\n    format = (char *)dcgettext(0,unaff_EDI + 0x1e211,5);\n    as_warn(format,buf1,buf2);\n    return CONCAT44(uVar5,uVar3);\n  }\n  return CONCAT44(uVar5,uVar3);\n}\n\n" (function_definition "offsetT offset_in_range(offsetT val,int size)\n\n{\n  uint uVar1;\n  char *format;\n  int extraout_ECX;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  int unaff_EDI;\n  undefined8 uVar6;\n  uint local_78;\n  char buf1 [40];\n  char buf2 [40];\n  \n  uVar6 = __x86_get_pc_thunk_di();\n  local_78 = (uint)((ulonglong)uVar6 >> 0x20);\n  uVar1 = (uint)uVar6;\n  if (extraout_ECX == 2) {\n    uVar4 = 0xffff0000;\n    uVar2 = 0xffffffff;\n    uVar3 = 0xffff;\n    uVar5 = 0;\n  }\n  else if (extraout_ECX < 3) {\n    if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    /* WARNING: Subroutine does not return */\n      as_abort((char *)(unaff_EDI + 0x1e13b),0x8eb,(char *)(unaff_EDI + 0x1f861));\n    }\n    uVar4 = 0xffffff00;\n    uVar2 = 0xffffffff;\n    uVar3 = 0xff;\n    uVar5 = 0;\n  }\n  else if (extraout_ECX == 4) {\n    uVar4 = 0;\n    uVar2 = 0xffffffff;\n    uVar3 = 0xffffffff;\n    uVar5 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar4 = 0;\n    uVar2 = 0;\n    uVar3 = 0xffffffff;\n    uVar5 = 0xffffffff;\n  }\n  if (((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')) &&\n     (local_78 == 0)) {\n    local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1;\n  }\n  uVar3 = uVar3 & uVar1;\n  uVar5 = local_78 & uVar5;\n  if (((uVar1 & uVar4) != 0 || (local_78 & uVar2) != 0) &&\n     (uVar4 != (uVar1 & uVar4) || uVar2 != (local_78 & uVar2))) {\n    sprint_value(buf1,CONCAT44(local_78,uVar1));\n    sprint_value(buf2,CONCAT44(uVar5,uVar3));\n    format = (char *)dcgettext(0,unaff_EDI + 0x1e211,5);\n    as_warn(format,buf1,buf2);\n    return CONCAT44(uVar5,uVar3);\n  }\n  return CONCAT44(uVar5,uVar3);\n}" type_identifier (function_declarator "offset_in_range(offsetT val,int size)" identifier (parameter_list "(offsetT val,int size)" ( (parameter_declaration "offsetT val" type_identifier identifier) , (parameter_declaration "int size" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  char *format;\n  int extraout_ECX;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  int unaff_EDI;\n  undefined8 uVar6;\n  uint local_78;\n  char buf1 [40];\n  char buf2 [40];\n  \n  uVar6 = __x86_get_pc_thunk_di();\n  local_78 = (uint)((ulonglong)uVar6 >> 0x20);\n  uVar1 = (uint)uVar6;\n  if (extraout_ECX == 2) {\n    uVar4 = 0xffff0000;\n    uVar2 = 0xffffffff;\n    uVar3 = 0xffff;\n    uVar5 = 0;\n  }\n  else if (extraout_ECX < 3) {\n    if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    /* WARNING: Subroutine does not return */\n      as_abort((char *)(unaff_EDI + 0x1e13b),0x8eb,(char *)(unaff_EDI + 0x1f861));\n    }\n    uVar4 = 0xffffff00;\n    uVar2 = 0xffffffff;\n    uVar3 = 0xff;\n    uVar5 = 0;\n  }\n  else if (extraout_ECX == 4) {\n    uVar4 = 0;\n    uVar2 = 0xffffffff;\n    uVar3 = 0xffffffff;\n    uVar5 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar4 = 0;\n    uVar2 = 0;\n    uVar3 = 0xffffffff;\n    uVar5 = 0xffffffff;\n  }\n  if (((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')) &&\n     (local_78 == 0)) {\n    local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1;\n  }\n  uVar3 = uVar3 & uVar1;\n  uVar5 = local_78 & uVar5;\n  if (((uVar1 & uVar4) != 0 || (local_78 & uVar2) != 0) &&\n     (uVar4 != (uVar1 & uVar4) || uVar2 != (local_78 & uVar2))) {\n    sprint_value(buf1,CONCAT44(local_78,uVar1));\n    sprint_value(buf2,CONCAT44(uVar5,uVar3));\n    format = (char *)dcgettext(0,unaff_EDI + 0x1e211,5);\n    as_warn(format,buf1,buf2);\n    return CONCAT44(uVar5,uVar3);\n  }\n  return CONCAT44(uVar5,uVar3);\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "int extraout_ECX;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "uint local_78;" type_identifier identifier ;) (declaration "char buf1 [40];" primitive_type (array_declarator "buf1 [40]" identifier [ number_literal ]) ;) (declaration "char buf2 [40];" primitive_type (array_declarator "buf2 [40]" identifier [ number_literal ]) ;) (expression_statement "uVar6 = __x86_get_pc_thunk_di();" (assignment_expression "uVar6 = __x86_get_pc_thunk_di()" identifier = (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_78 = (uint)((ulonglong)uVar6 >> 0x20);" (assignment_expression "local_78 = (uint)((ulonglong)uVar6 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar6 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar6 >> 0x20)" ( (binary_expression "(ulonglong)uVar6 >> 0x20" (cast_expression "(ulonglong)uVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar1 = (uint)uVar6;" (assignment_expression "uVar1 = (uint)uVar6" identifier = (cast_expression "(uint)uVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (extraout_ECX == 2) {\n    uVar4 = 0xffff0000;\n    uVar2 = 0xffffffff;\n    uVar3 = 0xffff;\n    uVar5 = 0;\n  }\n  else if (extraout_ECX < 3) {\n    if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    /* WARNING: Subroutine does not return */\n      as_abort((char *)(unaff_EDI + 0x1e13b),0x8eb,(char *)(unaff_EDI + 0x1f861));\n    }\n    uVar4 = 0xffffff00;\n    uVar2 = 0xffffffff;\n    uVar3 = 0xff;\n    uVar5 = 0;\n  }\n  else if (extraout_ECX == 4) {\n    uVar4 = 0;\n    uVar2 = 0xffffffff;\n    uVar3 = 0xffffffff;\n    uVar5 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar4 = 0;\n    uVar2 = 0;\n    uVar3 = 0xffffffff;\n    uVar5 = 0xffffffff;\n  }" if (parenthesized_expression "(extraout_ECX == 2)" ( (binary_expression "extraout_ECX == 2" identifier == number_literal) )) (compound_statement "{\n    uVar4 = 0xffff0000;\n    uVar2 = 0xffffffff;\n    uVar3 = 0xffff;\n    uVar5 = 0;\n  }" { (expression_statement "uVar4 = 0xffff0000;" (assignment_expression "uVar4 = 0xffff0000" identifier = number_literal) ;) (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar3 = 0xffff;" (assignment_expression "uVar3 = 0xffff" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else if (extraout_ECX < 3) {\n    if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    /* WARNING: Subroutine does not return */\n      as_abort((char *)(unaff_EDI + 0x1e13b),0x8eb,(char *)(unaff_EDI + 0x1f861));\n    }\n    uVar4 = 0xffffff00;\n    uVar2 = 0xffffffff;\n    uVar3 = 0xff;\n    uVar5 = 0;\n  }\n  else if (extraout_ECX == 4) {\n    uVar4 = 0;\n    uVar2 = 0xffffffff;\n    uVar3 = 0xffffffff;\n    uVar5 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar4 = 0;\n    uVar2 = 0;\n    uVar3 = 0xffffffff;\n    uVar5 = 0xffffffff;\n  }" else (if_statement "if (extraout_ECX < 3) {\n    if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    /* WARNING: Subroutine does not return */\n      as_abort((char *)(unaff_EDI + 0x1e13b),0x8eb,(char *)(unaff_EDI + 0x1f861));\n    }\n    uVar4 = 0xffffff00;\n    uVar2 = 0xffffffff;\n    uVar3 = 0xff;\n    uVar5 = 0;\n  }\n  else if (extraout_ECX == 4) {\n    uVar4 = 0;\n    uVar2 = 0xffffffff;\n    uVar3 = 0xffffffff;\n    uVar5 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar4 = 0;\n    uVar2 = 0;\n    uVar3 = 0xffffffff;\n    uVar5 = 0xffffffff;\n  }" if (parenthesized_expression "(extraout_ECX < 3)" ( (binary_expression "extraout_ECX < 3" identifier < number_literal) )) (compound_statement "{\n    if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    /* WARNING: Subroutine does not return */\n      as_abort((char *)(unaff_EDI + 0x1e13b),0x8eb,(char *)(unaff_EDI + 0x1f861));\n    }\n    uVar4 = 0xffffff00;\n    uVar2 = 0xffffffff;\n    uVar3 = 0xff;\n    uVar5 = 0;\n  }" { (if_statement "if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    /* WARNING: Subroutine does not return */\n      as_abort((char *)(unaff_EDI + 0x1e13b),0x8eb,(char *)(unaff_EDI + 0x1f861));\n    }" if (parenthesized_expression "(extraout_ECX != 1)" ( (binary_expression "extraout_ECX != 1" identifier != number_literal) )) (compound_statement "{\nLAB_00045ba6:\n                    /* WARNING: Subroutine does not return */\n      as_abort((char *)(unaff_EDI + 0x1e13b),0x8eb,(char *)(unaff_EDI + 0x1f861));\n    }" { (labeled_statement "LAB_00045ba6:\n                    /* WARNING: Subroutine does not return */\n      as_abort((char *)(unaff_EDI + 0x1e13b),0x8eb,(char *)(unaff_EDI + 0x1f861));" statement_identifier : comment (expression_statement "as_abort((char *)(unaff_EDI + 0x1e13b),0x8eb,(char *)(unaff_EDI + 0x1f861));" (call_expression "as_abort((char *)(unaff_EDI + 0x1e13b),0x8eb,(char *)(unaff_EDI + 0x1f861))" identifier (argument_list "((char *)(unaff_EDI + 0x1e13b),0x8eb,(char *)(unaff_EDI + 0x1f861))" ( (cast_expression "(char *)(unaff_EDI + 0x1e13b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x1e13b)" ( (binary_expression "unaff_EDI + 0x1e13b" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x1f861)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x1f861)" ( (binary_expression "unaff_EDI + 0x1f861" identifier + number_literal) ))) ))) ;)) })) (expression_statement "uVar4 = 0xffffff00;" (assignment_expression "uVar4 = 0xffffff00" identifier = number_literal) ;) (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar3 = 0xff;" (assignment_expression "uVar3 = 0xff" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else if (extraout_ECX == 4) {\n    uVar4 = 0;\n    uVar2 = 0xffffffff;\n    uVar3 = 0xffffffff;\n    uVar5 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar4 = 0;\n    uVar2 = 0;\n    uVar3 = 0xffffffff;\n    uVar5 = 0xffffffff;\n  }" else (if_statement "if (extraout_ECX == 4) {\n    uVar4 = 0;\n    uVar2 = 0xffffffff;\n    uVar3 = 0xffffffff;\n    uVar5 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar4 = 0;\n    uVar2 = 0;\n    uVar3 = 0xffffffff;\n    uVar5 = 0xffffffff;\n  }" if (parenthesized_expression "(extraout_ECX == 4)" ( (binary_expression "extraout_ECX == 4" identifier == number_literal) )) (compound_statement "{\n    uVar4 = 0;\n    uVar2 = 0xffffffff;\n    uVar3 = 0xffffffff;\n    uVar5 = 0;\n  }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar4 = 0;\n    uVar2 = 0;\n    uVar3 = 0xffffffff;\n    uVar5 = 0xffffffff;\n  }" else (compound_statement "{\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar4 = 0;\n    uVar2 = 0;\n    uVar3 = 0xffffffff;\n    uVar5 = 0xffffffff;\n  }" { (if_statement "if (extraout_ECX != 8) goto LAB_00045ba6;" if (parenthesized_expression "(extraout_ECX != 8)" ( (binary_expression "extraout_ECX != 8" identifier != number_literal) )) (goto_statement "goto LAB_00045ba6;" goto statement_identifier ;)) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar5 = 0xffffffff;" (assignment_expression "uVar5 = 0xffffffff" identifier = number_literal) ;) }))))))) (if_statement "if (((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')) &&\n     (local_78 == 0)) {\n    local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1;\n  }" if (parenthesized_expression "(((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')) &&\n     (local_78 == 0))" ( (binary_expression "((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')) &&\n     (local_78 == 0)" (parenthesized_expression "((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0'))" ( (binary_expression "(*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')" (parenthesized_expression "(*(int *)(unaff_EDI + 0x434f5) != 2)" ( (binary_expression "*(int *)(unaff_EDI + 0x434f5) != 2" (pointer_expression "*(int *)(unaff_EDI + 0x434f5)" * (cast_expression "(int *)(unaff_EDI + 0x434f5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x434f5)" ( (binary_expression "unaff_EDI + 0x434f5" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(*(char *)(unaff_EDI + 0x4367b) != '\0')" ( (binary_expression "*(char *)(unaff_EDI + 0x4367b) != '\0'" (pointer_expression "*(char *)(unaff_EDI + 0x4367b)" * (cast_expression "(char *)(unaff_EDI + 0x4367b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4367b)" ( (binary_expression "unaff_EDI + 0x4367b" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(local_78 == 0)" ( (binary_expression "local_78 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1;\n  }" { (expression_statement "local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1;" (assignment_expression "local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1" identifier = (binary_expression "(0x7fffffff < uVar1 + 0x80000000) - 1" (parenthesized_expression "(0x7fffffff < uVar1 + 0x80000000)" ( (binary_expression "0x7fffffff < uVar1 + 0x80000000" number_literal < (binary_expression "uVar1 + 0x80000000" identifier + number_literal)) )) - number_literal)) ;) })) (expression_statement "uVar3 = uVar3 & uVar1;" (assignment_expression "uVar3 = uVar3 & uVar1" identifier = (binary_expression "uVar3 & uVar1" identifier & identifier)) ;) (expression_statement "uVar5 = local_78 & uVar5;" (assignment_expression "uVar5 = local_78 & uVar5" identifier = (binary_expression "local_78 & uVar5" identifier & identifier)) ;) (if_statement "if (((uVar1 & uVar4) != 0 || (local_78 & uVar2) != 0) &&\n     (uVar4 != (uVar1 & uVar4) || uVar2 != (local_78 & uVar2))) {\n    sprint_value(buf1,CONCAT44(local_78,uVar1));\n    sprint_value(buf2,CONCAT44(uVar5,uVar3));\n    format = (char *)dcgettext(0,unaff_EDI + 0x1e211,5);\n    as_warn(format,buf1,buf2);\n    return CONCAT44(uVar5,uVar3);\n  }" if (parenthesized_expression "(((uVar1 & uVar4) != 0 || (local_78 & uVar2) != 0) &&\n     (uVar4 != (uVar1 & uVar4) || uVar2 != (local_78 & uVar2)))" ( (binary_expression "((uVar1 & uVar4) != 0 || (local_78 & uVar2) != 0) &&\n     (uVar4 != (uVar1 & uVar4) || uVar2 != (local_78 & uVar2))" (parenthesized_expression "((uVar1 & uVar4) != 0 || (local_78 & uVar2) != 0)" ( (binary_expression "(uVar1 & uVar4) != 0 || (local_78 & uVar2) != 0" (binary_expression "(uVar1 & uVar4) != 0" (parenthesized_expression "(uVar1 & uVar4)" ( (binary_expression "uVar1 & uVar4" identifier & identifier) )) != number_literal) || (binary_expression "(local_78 & uVar2) != 0" (parenthesized_expression "(local_78 & uVar2)" ( (binary_expression "local_78 & uVar2" identifier & identifier) )) != number_literal)) )) && (parenthesized_expression "(uVar4 != (uVar1 & uVar4) || uVar2 != (local_78 & uVar2))" ( (binary_expression "uVar4 != (uVar1 & uVar4) || uVar2 != (local_78 & uVar2)" (binary_expression "uVar4 != (uVar1 & uVar4)" identifier != (parenthesized_expression "(uVar1 & uVar4)" ( (binary_expression "uVar1 & uVar4" identifier & identifier) ))) || (binary_expression "uVar2 != (local_78 & uVar2)" identifier != (parenthesized_expression "(local_78 & uVar2)" ( (binary_expression "local_78 & uVar2" identifier & identifier) )))) ))) )) (compound_statement "{\n    sprint_value(buf1,CONCAT44(local_78,uVar1));\n    sprint_value(buf2,CONCAT44(uVar5,uVar3));\n    format = (char *)dcgettext(0,unaff_EDI + 0x1e211,5);\n    as_warn(format,buf1,buf2);\n    return CONCAT44(uVar5,uVar3);\n  }" { (expression_statement "sprint_value(buf1,CONCAT44(local_78,uVar1));" (call_expression "sprint_value(buf1,CONCAT44(local_78,uVar1))" identifier (argument_list "(buf1,CONCAT44(local_78,uVar1))" ( identifier , (call_expression "CONCAT44(local_78,uVar1)" identifier (argument_list "(local_78,uVar1)" ( identifier , identifier ))) ))) ;) (expression_statement "sprint_value(buf2,CONCAT44(uVar5,uVar3));" (call_expression "sprint_value(buf2,CONCAT44(uVar5,uVar3))" identifier (argument_list "(buf2,CONCAT44(uVar5,uVar3))" ( identifier , (call_expression "CONCAT44(uVar5,uVar3)" identifier (argument_list "(uVar5,uVar3)" ( identifier , identifier ))) ))) ;) (expression_statement "format = (char *)dcgettext(0,unaff_EDI + 0x1e211,5);" (assignment_expression "format = (char *)dcgettext(0,unaff_EDI + 0x1e211,5)" identifier = (cast_expression "(char *)dcgettext(0,unaff_EDI + 0x1e211,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,unaff_EDI + 0x1e211,5)" identifier (argument_list "(0,unaff_EDI + 0x1e211,5)" ( number_literal , (binary_expression "unaff_EDI + 0x1e211" identifier + number_literal) , number_literal ))))) ;) (expression_statement "as_warn(format,buf1,buf2);" (call_expression "as_warn(format,buf1,buf2)" identifier (argument_list "(format,buf1,buf2)" ( identifier , identifier , identifier ))) ;) (return_statement "return CONCAT44(uVar5,uVar3);" return (call_expression "CONCAT44(uVar5,uVar3)" identifier (argument_list "(uVar5,uVar3)" ( identifier , identifier ))) ;) })) (return_statement "return CONCAT44(uVar5,uVar3);" return (call_expression "CONCAT44(uVar5,uVar3)" identifier (argument_list "(uVar5,uVar3)" ( identifier , identifier ))) ;) })))
(translation_unit "undefined8 FUN_00045a10(void)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  int extraout_ECX;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  int unaff_EDI;\n  undefined8 uVar7;\n  uint local_78;\n  undefined1 local_6c [40];\n  undefined1 local_44 [52];\n  \n  uVar7 = FUN_0001d569();\n  local_78 = (uint)((ulonglong)uVar7 >> 0x20);\n  uVar1 = (uint)uVar7;\n  if (extraout_ECX == 2) {\n    uVar5 = 0xffff0000;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX < 3) {\n    if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    \n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);\n    }\n    uVar5 = 0xffffff00;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX == 4) {\n    uVar5 = 0;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffffffff;\n    uVar6 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }\n  if (((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')) &&\n     (local_78 == 0)) {\n    local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1;\n  }\n  uVar4 = uVar4 & uVar1;\n  uVar6 = local_78 & uVar6;\n  if (((uVar1 & uVar5) != 0 || (local_78 & uVar3) != 0) &&\n     (uVar5 != (uVar1 & uVar5) || uVar3 != (local_78 & uVar3))) {\n    FUN_0002c250(local_6c,uVar1,local_78);\n    FUN_0002c250(local_44,uVar4,uVar6);\n    uVar2 = dcgettext(0,unaff_EDI + 0x1e211,5);\n    FUN_0002bc80(uVar2,local_6c,local_44);\n    return CONCAT44(uVar6,uVar4);\n  }\n  return CONCAT44(uVar6,uVar4);\n}\n\n" (function_definition "undefined8 FUN_00045a10(void)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  int extraout_ECX;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  int unaff_EDI;\n  undefined8 uVar7;\n  uint local_78;\n  undefined1 local_6c [40];\n  undefined1 local_44 [52];\n  \n  uVar7 = FUN_0001d569();\n  local_78 = (uint)((ulonglong)uVar7 >> 0x20);\n  uVar1 = (uint)uVar7;\n  if (extraout_ECX == 2) {\n    uVar5 = 0xffff0000;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX < 3) {\n    if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    \n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);\n    }\n    uVar5 = 0xffffff00;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX == 4) {\n    uVar5 = 0;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffffffff;\n    uVar6 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }\n  if (((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')) &&\n     (local_78 == 0)) {\n    local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1;\n  }\n  uVar4 = uVar4 & uVar1;\n  uVar6 = local_78 & uVar6;\n  if (((uVar1 & uVar5) != 0 || (local_78 & uVar3) != 0) &&\n     (uVar5 != (uVar1 & uVar5) || uVar3 != (local_78 & uVar3))) {\n    FUN_0002c250(local_6c,uVar1,local_78);\n    FUN_0002c250(local_44,uVar4,uVar6);\n    uVar2 = dcgettext(0,unaff_EDI + 0x1e211,5);\n    FUN_0002bc80(uVar2,local_6c,local_44);\n    return CONCAT44(uVar6,uVar4);\n  }\n  return CONCAT44(uVar6,uVar4);\n}" type_identifier (function_declarator "FUN_00045a10(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  uint uVar1;\n  undefined4 uVar2;\n  int extraout_ECX;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  int unaff_EDI;\n  undefined8 uVar7;\n  uint local_78;\n  undefined1 local_6c [40];\n  undefined1 local_44 [52];\n  \n  uVar7 = FUN_0001d569();\n  local_78 = (uint)((ulonglong)uVar7 >> 0x20);\n  uVar1 = (uint)uVar7;\n  if (extraout_ECX == 2) {\n    uVar5 = 0xffff0000;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX < 3) {\n    if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    \n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);\n    }\n    uVar5 = 0xffffff00;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX == 4) {\n    uVar5 = 0;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffffffff;\n    uVar6 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }\n  if (((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')) &&\n     (local_78 == 0)) {\n    local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1;\n  }\n  uVar4 = uVar4 & uVar1;\n  uVar6 = local_78 & uVar6;\n  if (((uVar1 & uVar5) != 0 || (local_78 & uVar3) != 0) &&\n     (uVar5 != (uVar1 & uVar5) || uVar3 != (local_78 & uVar3))) {\n    FUN_0002c250(local_6c,uVar1,local_78);\n    FUN_0002c250(local_44,uVar4,uVar6);\n    uVar2 = dcgettext(0,unaff_EDI + 0x1e211,5);\n    FUN_0002bc80(uVar2,local_6c,local_44);\n    return CONCAT44(uVar6,uVar4);\n  }\n  return CONCAT44(uVar6,uVar4);\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int extraout_ECX;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "uint local_78;" type_identifier identifier ;) (declaration "undefined1 local_6c [40];" type_identifier (array_declarator "local_6c [40]" identifier [ number_literal ]) ;) (declaration "undefined1 local_44 [52];" type_identifier (array_declarator "local_44 [52]" identifier [ number_literal ]) ;) (expression_statement "uVar7 = FUN_0001d569();" (assignment_expression "uVar7 = FUN_0001d569()" identifier = (call_expression "FUN_0001d569()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_78 = (uint)((ulonglong)uVar7 >> 0x20);" (assignment_expression "local_78 = (uint)((ulonglong)uVar7 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar7 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar7 >> 0x20)" ( (binary_expression "(ulonglong)uVar7 >> 0x20" (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar1 = (uint)uVar7;" (assignment_expression "uVar1 = (uint)uVar7" identifier = (cast_expression "(uint)uVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (extraout_ECX == 2) {\n    uVar5 = 0xffff0000;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX < 3) {\n    if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    \n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);\n    }\n    uVar5 = 0xffffff00;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX == 4) {\n    uVar5 = 0;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffffffff;\n    uVar6 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }" if (parenthesized_expression "(extraout_ECX == 2)" ( (binary_expression "extraout_ECX == 2" identifier == number_literal) )) (compound_statement "{\n    uVar5 = 0xffff0000;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffff;\n    uVar6 = 0;\n  }" { (expression_statement "uVar5 = 0xffff0000;" (assignment_expression "uVar5 = 0xffff0000" identifier = number_literal) ;) (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar4 = 0xffff;" (assignment_expression "uVar4 = 0xffff" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) }) (else_clause "else if (extraout_ECX < 3) {\n    if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    \n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);\n    }\n    uVar5 = 0xffffff00;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX == 4) {\n    uVar5 = 0;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffffffff;\n    uVar6 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }" else (if_statement "if (extraout_ECX < 3) {\n    if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    \n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);\n    }\n    uVar5 = 0xffffff00;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX == 4) {\n    uVar5 = 0;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffffffff;\n    uVar6 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }" if (parenthesized_expression "(extraout_ECX < 3)" ( (binary_expression "extraout_ECX < 3" identifier < number_literal) )) (compound_statement "{\n    if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    \n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);\n    }\n    uVar5 = 0xffffff00;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xff;\n    uVar6 = 0;\n  }" { (if_statement "if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    \n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);\n    }" if (parenthesized_expression "(extraout_ECX != 1)" ( (binary_expression "extraout_ECX != 1" identifier != number_literal) )) (compound_statement "{\nLAB_00045ba6:\n                    \n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);\n    }" { (labeled_statement "LAB_00045ba6:\n                    \n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);" statement_identifier : (expression_statement "FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);" (call_expression "FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1)" identifier (argument_list "(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1)" ( (binary_expression "unaff_EDI + 0x1e13b" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x1f861" identifier + number_literal) , identifier ))) ;)) })) (expression_statement "uVar5 = 0xffffff00;" (assignment_expression "uVar5 = 0xffffff00" identifier = number_literal) ;) (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar4 = 0xff;" (assignment_expression "uVar4 = 0xff" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) }) (else_clause "else if (extraout_ECX == 4) {\n    uVar5 = 0;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffffffff;\n    uVar6 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }" else (if_statement "if (extraout_ECX == 4) {\n    uVar5 = 0;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffffffff;\n    uVar6 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }" if (parenthesized_expression "(extraout_ECX == 4)" ( (binary_expression "extraout_ECX == 4" identifier == number_literal) )) (compound_statement "{\n    uVar5 = 0;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffffffff;\n    uVar6 = 0;\n  }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }" else (compound_statement "{\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }" { (if_statement "if (extraout_ECX != 8) goto LAB_00045ba6;" if (parenthesized_expression "(extraout_ECX != 8)" ( (binary_expression "extraout_ECX != 8" identifier != number_literal) )) (goto_statement "goto LAB_00045ba6;" goto statement_identifier ;)) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" identifier = number_literal) ;) }))))))) (if_statement "if (((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')) &&\n     (local_78 == 0)) {\n    local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1;\n  }" if (parenthesized_expression "(((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')) &&\n     (local_78 == 0))" ( (binary_expression "((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')) &&\n     (local_78 == 0)" (parenthesized_expression "((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0'))" ( (binary_expression "(*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')" (parenthesized_expression "(*(int *)(unaff_EDI + 0x434f5) != 2)" ( (binary_expression "*(int *)(unaff_EDI + 0x434f5) != 2" (pointer_expression "*(int *)(unaff_EDI + 0x434f5)" * (cast_expression "(int *)(unaff_EDI + 0x434f5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x434f5)" ( (binary_expression "unaff_EDI + 0x434f5" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(*(char *)(unaff_EDI + 0x4367b) != '\0')" ( (binary_expression "*(char *)(unaff_EDI + 0x4367b) != '\0'" (pointer_expression "*(char *)(unaff_EDI + 0x4367b)" * (cast_expression "(char *)(unaff_EDI + 0x4367b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4367b)" ( (binary_expression "unaff_EDI + 0x4367b" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(local_78 == 0)" ( (binary_expression "local_78 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1;\n  }" { (expression_statement "local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1;" (assignment_expression "local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1" identifier = (binary_expression "(0x7fffffff < uVar1 + 0x80000000) - 1" (parenthesized_expression "(0x7fffffff < uVar1 + 0x80000000)" ( (binary_expression "0x7fffffff < uVar1 + 0x80000000" number_literal < (binary_expression "uVar1 + 0x80000000" identifier + number_literal)) )) - number_literal)) ;) })) (expression_statement "uVar4 = uVar4 & uVar1;" (assignment_expression "uVar4 = uVar4 & uVar1" identifier = (binary_expression "uVar4 & uVar1" identifier & identifier)) ;) (expression_statement "uVar6 = local_78 & uVar6;" (assignment_expression "uVar6 = local_78 & uVar6" identifier = (binary_expression "local_78 & uVar6" identifier & identifier)) ;) (if_statement "if (((uVar1 & uVar5) != 0 || (local_78 & uVar3) != 0) &&\n     (uVar5 != (uVar1 & uVar5) || uVar3 != (local_78 & uVar3))) {\n    FUN_0002c250(local_6c,uVar1,local_78);\n    FUN_0002c250(local_44,uVar4,uVar6);\n    uVar2 = dcgettext(0,unaff_EDI + 0x1e211,5);\n    FUN_0002bc80(uVar2,local_6c,local_44);\n    return CONCAT44(uVar6,uVar4);\n  }" if (parenthesized_expression "(((uVar1 & uVar5) != 0 || (local_78 & uVar3) != 0) &&\n     (uVar5 != (uVar1 & uVar5) || uVar3 != (local_78 & uVar3)))" ( (binary_expression "((uVar1 & uVar5) != 0 || (local_78 & uVar3) != 0) &&\n     (uVar5 != (uVar1 & uVar5) || uVar3 != (local_78 & uVar3))" (parenthesized_expression "((uVar1 & uVar5) != 0 || (local_78 & uVar3) != 0)" ( (binary_expression "(uVar1 & uVar5) != 0 || (local_78 & uVar3) != 0" (binary_expression "(uVar1 & uVar5) != 0" (parenthesized_expression "(uVar1 & uVar5)" ( (binary_expression "uVar1 & uVar5" identifier & identifier) )) != number_literal) || (binary_expression "(local_78 & uVar3) != 0" (parenthesized_expression "(local_78 & uVar3)" ( (binary_expression "local_78 & uVar3" identifier & identifier) )) != number_literal)) )) && (parenthesized_expression "(uVar5 != (uVar1 & uVar5) || uVar3 != (local_78 & uVar3))" ( (binary_expression "uVar5 != (uVar1 & uVar5) || uVar3 != (local_78 & uVar3)" (binary_expression "uVar5 != (uVar1 & uVar5)" identifier != (parenthesized_expression "(uVar1 & uVar5)" ( (binary_expression "uVar1 & uVar5" identifier & identifier) ))) || (binary_expression "uVar3 != (local_78 & uVar3)" identifier != (parenthesized_expression "(local_78 & uVar3)" ( (binary_expression "local_78 & uVar3" identifier & identifier) )))) ))) )) (compound_statement "{\n    FUN_0002c250(local_6c,uVar1,local_78);\n    FUN_0002c250(local_44,uVar4,uVar6);\n    uVar2 = dcgettext(0,unaff_EDI + 0x1e211,5);\n    FUN_0002bc80(uVar2,local_6c,local_44);\n    return CONCAT44(uVar6,uVar4);\n  }" { (expression_statement "FUN_0002c250(local_6c,uVar1,local_78);" (call_expression "FUN_0002c250(local_6c,uVar1,local_78)" identifier (argument_list "(local_6c,uVar1,local_78)" ( identifier , identifier , identifier ))) ;) (expression_statement "FUN_0002c250(local_44,uVar4,uVar6);" (call_expression "FUN_0002c250(local_44,uVar4,uVar6)" identifier (argument_list "(local_44,uVar4,uVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar2 = dcgettext(0,unaff_EDI + 0x1e211,5);" (assignment_expression "uVar2 = dcgettext(0,unaff_EDI + 0x1e211,5)" identifier = (call_expression "dcgettext(0,unaff_EDI + 0x1e211,5)" identifier (argument_list "(0,unaff_EDI + 0x1e211,5)" ( number_literal , (binary_expression "unaff_EDI + 0x1e211" identifier + number_literal) , number_literal )))) ;) (expression_statement "FUN_0002bc80(uVar2,local_6c,local_44);" (call_expression "FUN_0002bc80(uVar2,local_6c,local_44)" identifier (argument_list "(uVar2,local_6c,local_44)" ( identifier , identifier , identifier ))) ;) (return_statement "return CONCAT44(uVar6,uVar4);" return (call_expression "CONCAT44(uVar6,uVar4)" identifier (argument_list "(uVar6,uVar4)" ( identifier , identifier ))) ;) })) (return_statement "return CONCAT44(uVar6,uVar4);" return (call_expression "CONCAT44(uVar6,uVar4)" identifier (argument_list "(uVar6,uVar4)" ( identifier , identifier ))) ;) })))
(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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) , IDENT ))) ;)) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))))))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT + LIT)) )) - LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & IDENT) )) != LIT) || (binary_expression (parenthesized_expression ( (binary_expression IDENT & IDENT) )) != LIT)) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT != (parenthesized_expression ( (binary_expression IDENT & IDENT) ))) || (binary_expression IDENT != (parenthesized_expression ( (binary_expression IDENT & IDENT) )))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (return_statement return (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (return_statement return (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })))
(function_definition "undefined8 FUN_00045a10(void)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  int extraout_ECX;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  int unaff_EDI;\n  undefined8 uVar7;\n  uint local_78;\n  undefined1 local_6c [40];\n  undefined1 local_44 [52];\n  \n  uVar7 = FUN_0001d569();\n  local_78 = (uint)((ulonglong)uVar7 >> 0x20);\n  uVar1 = (uint)uVar7;\n  if (extraout_ECX == 2) {\n    uVar5 = 0xffff0000;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX < 3) {\n    if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    \n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);\n    }\n    uVar5 = 0xffffff00;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX == 4) {\n    uVar5 = 0;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffffffff;\n    uVar6 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }\n  if (((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')) &&\n     (local_78 == 0)) {\n    local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1;\n  }\n  uVar4 = uVar4 & uVar1;\n  uVar6 = local_78 & uVar6;\n  if (((uVar1 & uVar5) != 0 || (local_78 & uVar3) != 0) &&\n     (uVar5 != (uVar1 & uVar5) || uVar3 != (local_78 & uVar3))) {\n    FUN_0002c250(local_6c,uVar1,local_78);\n    FUN_0002c250(local_44,uVar4,uVar6);\n    uVar2 = dcgettext(0,unaff_EDI + 0x1e211,5);\n    FUN_0002bc80(uVar2,local_6c,local_44);\n    return CONCAT44(uVar6,uVar4);\n  }\n  return CONCAT44(uVar6,uVar4);\n}" (type_identifier "undefined8") (function_declarator "FUN_00045a10(void)" (identifier "FUN_00045a10") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  uint uVar1;\n  undefined4 uVar2;\n  int extraout_ECX;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  int unaff_EDI;\n  undefined8 uVar7;\n  uint local_78;\n  undefined1 local_6c [40];\n  undefined1 local_44 [52];\n  \n  uVar7 = FUN_0001d569();\n  local_78 = (uint)((ulonglong)uVar7 >> 0x20);\n  uVar1 = (uint)uVar7;\n  if (extraout_ECX == 2) {\n    uVar5 = 0xffff0000;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX < 3) {\n    if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    \n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);\n    }\n    uVar5 = 0xffffff00;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX == 4) {\n    uVar5 = 0;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffffffff;\n    uVar6 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }\n  if (((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')) &&\n     (local_78 == 0)) {\n    local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1;\n  }\n  uVar4 = uVar4 & uVar1;\n  uVar6 = local_78 & uVar6;\n  if (((uVar1 & uVar5) != 0 || (local_78 & uVar3) != 0) &&\n     (uVar5 != (uVar1 & uVar5) || uVar3 != (local_78 & uVar3))) {\n    FUN_0002c250(local_6c,uVar1,local_78);\n    FUN_0002c250(local_44,uVar4,uVar6);\n    uVar2 = dcgettext(0,unaff_EDI + 0x1e211,5);\n    FUN_0002bc80(uVar2,local_6c,local_44);\n    return CONCAT44(uVar6,uVar4);\n  }\n  return CONCAT44(uVar6,uVar4);\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "int extraout_ECX;" (primitive_type "int") (identifier "extraout_ECX") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "int unaff_EDI;" (primitive_type "int") (identifier "unaff_EDI") (; ";")) (declaration "undefined8 uVar7;" (type_identifier "undefined8") (identifier "uVar7") (; ";")) (declaration "uint local_78;" (type_identifier "uint") (identifier "local_78") (; ";")) (declaration "undefined1 local_6c [40];" (type_identifier "undefined1") (array_declarator "local_6c [40]" (identifier "local_6c") ([ "[") (number_literal "40") (] "]")) (; ";")) (declaration "undefined1 local_44 [52];" (type_identifier "undefined1") (array_declarator "local_44 [52]" (identifier "local_44") ([ "[") (number_literal "52") (] "]")) (; ";")) (expression_statement "uVar7 = FUN_0001d569();" (assignment_expression "uVar7 = FUN_0001d569()" (identifier "uVar7") (= "=") (call_expression "FUN_0001d569()" (identifier "FUN_0001d569") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_78 = (uint)((ulonglong)uVar7 >> 0x20);" (assignment_expression "local_78 = (uint)((ulonglong)uVar7 >> 0x20)" (identifier "local_78") (= "=") (call_expression "(uint)((ulonglong)uVar7 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar7 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar7 >> 0x20" (cast_expression "(ulonglong)uVar7" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar7")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar1 = (uint)uVar7;" (assignment_expression "uVar1 = (uint)uVar7" (identifier "uVar1") (= "=") (cast_expression "(uint)uVar7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar7"))) (; ";")) (if_statement "if (extraout_ECX == 2) {\n    uVar5 = 0xffff0000;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX < 3) {\n    if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    \n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);\n    }\n    uVar5 = 0xffffff00;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX == 4) {\n    uVar5 = 0;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffffffff;\n    uVar6 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }" (if "if") (parenthesized_expression "(extraout_ECX == 2)" (( "(") (binary_expression "extraout_ECX == 2" (identifier "extraout_ECX") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n    uVar5 = 0xffff0000;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffff;\n    uVar6 = 0;\n  }" ({ "{") (expression_statement "uVar5 = 0xffff0000;" (assignment_expression "uVar5 = 0xffff0000" (identifier "uVar5") (= "=") (number_literal "0xffff0000")) (; ";")) (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" (identifier "uVar3") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uVar4 = 0xffff;" (assignment_expression "uVar4 = 0xffff" (identifier "uVar4") (= "=") (number_literal "0xffff")) (; ";")) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (extraout_ECX < 3) {\n    if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    \n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);\n    }\n    uVar5 = 0xffffff00;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX == 4) {\n    uVar5 = 0;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffffffff;\n    uVar6 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }" (else "else") (if_statement "if (extraout_ECX < 3) {\n    if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    \n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);\n    }\n    uVar5 = 0xffffff00;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xff;\n    uVar6 = 0;\n  }\n  else if (extraout_ECX == 4) {\n    uVar5 = 0;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffffffff;\n    uVar6 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }" (if "if") (parenthesized_expression "(extraout_ECX < 3)" (( "(") (binary_expression "extraout_ECX < 3" (identifier "extraout_ECX") (< "<") (number_literal "3")) () ")")) (compound_statement "{\n    if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    \n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);\n    }\n    uVar5 = 0xffffff00;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xff;\n    uVar6 = 0;\n  }" ({ "{") (if_statement "if (extraout_ECX != 1) {\nLAB_00045ba6:\n                    \n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);\n    }" (if "if") (parenthesized_expression "(extraout_ECX != 1)" (( "(") (binary_expression "extraout_ECX != 1" (identifier "extraout_ECX") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\nLAB_00045ba6:\n                    \n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);\n    }" ({ "{") (labeled_statement "LAB_00045ba6:\n                    \n      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);" (statement_identifier "LAB_00045ba6") (: ":") (expression_statement "FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);" (call_expression "FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1)" (identifier "FUN_0002be80") (argument_list "(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1)" (( "(") (binary_expression "unaff_EDI + 0x1e13b" (identifier "unaff_EDI") (+ "+") (number_literal "0x1e13b")) (, ",") (number_literal "0x8eb") (, ",") (binary_expression "unaff_EDI + 0x1f861" (identifier "unaff_EDI") (+ "+") (number_literal "0x1f861")) (, ",") (identifier "uVar1") () ")"))) (; ";"))) (} "}"))) (expression_statement "uVar5 = 0xffffff00;" (assignment_expression "uVar5 = 0xffffff00" (identifier "uVar5") (= "=") (number_literal "0xffffff00")) (; ";")) (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" (identifier "uVar3") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uVar4 = 0xff;" (assignment_expression "uVar4 = 0xff" (identifier "uVar4") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (extraout_ECX == 4) {\n    uVar5 = 0;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffffffff;\n    uVar6 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }" (else "else") (if_statement "if (extraout_ECX == 4) {\n    uVar5 = 0;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffffffff;\n    uVar6 = 0;\n  }\n  else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }" (if "if") (parenthesized_expression "(extraout_ECX == 4)" (( "(") (binary_expression "extraout_ECX == 4" (identifier "extraout_ECX") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n    uVar5 = 0;\n    uVar3 = 0xffffffff;\n    uVar4 = 0xffffffff;\n    uVar6 = 0;\n  }" ({ "{") (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" (identifier "uVar3") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" (identifier "uVar4") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }" (else "else") (compound_statement "{\n    if (extraout_ECX != 8) goto LAB_00045ba6;\n    uVar5 = 0;\n    uVar3 = 0;\n    uVar4 = 0xffffffff;\n    uVar6 = 0xffffffff;\n  }" ({ "{") (if_statement "if (extraout_ECX != 8) goto LAB_00045ba6;" (if "if") (parenthesized_expression "(extraout_ECX != 8)" (( "(") (binary_expression "extraout_ECX != 8" (identifier "extraout_ECX") (!= "!=") (number_literal "8")) () ")")) (goto_statement "goto LAB_00045ba6;" (goto "goto") (statement_identifier "LAB_00045ba6") (; ";"))) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" (identifier "uVar4") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" (identifier "uVar6") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}")))))))) (if_statement "if (((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')) &&\n     (local_78 == 0)) {\n    local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1;\n  }" (if "if") (parenthesized_expression "(((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')) &&\n     (local_78 == 0))" (( "(") (binary_expression "((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')) &&\n     (local_78 == 0)" (parenthesized_expression "((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0'))" (( "(") (binary_expression "(*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')" (parenthesized_expression "(*(int *)(unaff_EDI + 0x434f5) != 2)" (( "(") (binary_expression "*(int *)(unaff_EDI + 0x434f5) != 2" (pointer_expression "*(int *)(unaff_EDI + 0x434f5)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x434f5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x434f5)" (( "(") (binary_expression "unaff_EDI + 0x434f5" (identifier "unaff_EDI") (+ "+") (number_literal "0x434f5")) () ")")))) (!= "!=") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(*(char *)(unaff_EDI + 0x4367b) != '\0')" (( "(") (binary_expression "*(char *)(unaff_EDI + 0x4367b) != '\0'" (pointer_expression "*(char *)(unaff_EDI + 0x4367b)" (* "*") (cast_expression "(char *)(unaff_EDI + 0x4367b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x4367b)" (( "(") (binary_expression "unaff_EDI + 0x4367b" (identifier "unaff_EDI") (+ "+") (number_literal "0x4367b")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_78 == 0)" (( "(") (binary_expression "local_78 == 0" (identifier "local_78") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1;\n  }" ({ "{") (expression_statement "local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1;" (assignment_expression "local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1" (identifier "local_78") (= "=") (binary_expression "(0x7fffffff < uVar1 + 0x80000000) - 1" (parenthesized_expression "(0x7fffffff < uVar1 + 0x80000000)" (( "(") (binary_expression "0x7fffffff < uVar1 + 0x80000000" (number_literal "0x7fffffff") (< "<") (binary_expression "uVar1 + 0x80000000" (identifier "uVar1") (+ "+") (number_literal "0x80000000"))) () ")")) (- "-") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "uVar4 = uVar4 & uVar1;" (assignment_expression "uVar4 = uVar4 & uVar1" (identifier "uVar4") (= "=") (binary_expression "uVar4 & uVar1" (identifier "uVar4") (& "&") (identifier "uVar1"))) (; ";")) (expression_statement "uVar6 = local_78 & uVar6;" (assignment_expression "uVar6 = local_78 & uVar6" (identifier "uVar6") (= "=") (binary_expression "local_78 & uVar6" (identifier "local_78") (& "&") (identifier "uVar6"))) (; ";")) (if_statement "if (((uVar1 & uVar5) != 0 || (local_78 & uVar3) != 0) &&\n     (uVar5 != (uVar1 & uVar5) || uVar3 != (local_78 & uVar3))) {\n    FUN_0002c250(local_6c,uVar1,local_78);\n    FUN_0002c250(local_44,uVar4,uVar6);\n    uVar2 = dcgettext(0,unaff_EDI + 0x1e211,5);\n    FUN_0002bc80(uVar2,local_6c,local_44);\n    return CONCAT44(uVar6,uVar4);\n  }" (if "if") (parenthesized_expression "(((uVar1 & uVar5) != 0 || (local_78 & uVar3) != 0) &&\n     (uVar5 != (uVar1 & uVar5) || uVar3 != (local_78 & uVar3)))" (( "(") (binary_expression "((uVar1 & uVar5) != 0 || (local_78 & uVar3) != 0) &&\n     (uVar5 != (uVar1 & uVar5) || uVar3 != (local_78 & uVar3))" (parenthesized_expression "((uVar1 & uVar5) != 0 || (local_78 & uVar3) != 0)" (( "(") (binary_expression "(uVar1 & uVar5) != 0 || (local_78 & uVar3) != 0" (binary_expression "(uVar1 & uVar5) != 0" (parenthesized_expression "(uVar1 & uVar5)" (( "(") (binary_expression "uVar1 & uVar5" (identifier "uVar1") (& "&") (identifier "uVar5")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "(local_78 & uVar3) != 0" (parenthesized_expression "(local_78 & uVar3)" (( "(") (binary_expression "local_78 & uVar3" (identifier "local_78") (& "&") (identifier "uVar3")) () ")")) (!= "!=") (number_literal "0"))) () ")")) (&& "&&") (parenthesized_expression "(uVar5 != (uVar1 & uVar5) || uVar3 != (local_78 & uVar3))" (( "(") (binary_expression "uVar5 != (uVar1 & uVar5) || uVar3 != (local_78 & uVar3)" (binary_expression "uVar5 != (uVar1 & uVar5)" (identifier "uVar5") (!= "!=") (parenthesized_expression "(uVar1 & uVar5)" (( "(") (binary_expression "uVar1 & uVar5" (identifier "uVar1") (& "&") (identifier "uVar5")) () ")"))) (|| "||") (binary_expression "uVar3 != (local_78 & uVar3)" (identifier "uVar3") (!= "!=") (parenthesized_expression "(local_78 & uVar3)" (( "(") (binary_expression "local_78 & uVar3" (identifier "local_78") (& "&") (identifier "uVar3")) () ")")))) () ")"))) () ")")) (compound_statement "{\n    FUN_0002c250(local_6c,uVar1,local_78);\n    FUN_0002c250(local_44,uVar4,uVar6);\n    uVar2 = dcgettext(0,unaff_EDI + 0x1e211,5);\n    FUN_0002bc80(uVar2,local_6c,local_44);\n    return CONCAT44(uVar6,uVar4);\n  }" ({ "{") (expression_statement "FUN_0002c250(local_6c,uVar1,local_78);" (call_expression "FUN_0002c250(local_6c,uVar1,local_78)" (identifier "FUN_0002c250") (argument_list "(local_6c,uVar1,local_78)" (( "(") (identifier "local_6c") (, ",") (identifier "uVar1") (, ",") (identifier "local_78") () ")"))) (; ";")) (expression_statement "FUN_0002c250(local_44,uVar4,uVar6);" (call_expression "FUN_0002c250(local_44,uVar4,uVar6)" (identifier "FUN_0002c250") (argument_list "(local_44,uVar4,uVar6)" (( "(") (identifier "local_44") (, ",") (identifier "uVar4") (, ",") (identifier "uVar6") () ")"))) (; ";")) (expression_statement "uVar2 = dcgettext(0,unaff_EDI + 0x1e211,5);" (assignment_expression "uVar2 = dcgettext(0,unaff_EDI + 0x1e211,5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,unaff_EDI + 0x1e211,5)" (identifier "dcgettext") (argument_list "(0,unaff_EDI + 0x1e211,5)" (( "(") (number_literal "0") (, ",") (binary_expression "unaff_EDI + 0x1e211" (identifier "unaff_EDI") (+ "+") (number_literal "0x1e211")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bc80(uVar2,local_6c,local_44);" (call_expression "FUN_0002bc80(uVar2,local_6c,local_44)" (identifier "FUN_0002bc80") (argument_list "(uVar2,local_6c,local_44)" (( "(") (identifier "uVar2") (, ",") (identifier "local_6c") (, ",") (identifier "local_44") () ")"))) (; ";")) (return_statement "return CONCAT44(uVar6,uVar4);" (return "return") (call_expression "CONCAT44(uVar6,uVar4)" (identifier "CONCAT44") (argument_list "(uVar6,uVar4)" (( "(") (identifier "uVar6") (, ",") (identifier "uVar4") () ")"))) (; ";")) (} "}"))) (return_statement "return CONCAT44(uVar6,uVar4);" (return "return") (call_expression "CONCAT44(uVar6,uVar4)" (identifier "CONCAT44") (argument_list "(uVar6,uVar4)" (( "(") (identifier "uVar6") (, ",") (identifier "uVar4") () ")"))) (; ";")) (} "}")))

type_1 function_1(type_1 val,int size)

{
  type_2 var_6;
  char *format;
  int var_2;
  type_2 var_10;
  type_2 var_7;
  type_2 var_9;
  type_2 var_8;
  int var_4;
  type_3 uVar6;
  type_2 var_5;
  char buf1 [40];
  char buf2 [40];
  
  uVar6 = var_1();
  var_5 = (type_2)((type_4)uVar6 >> 0x20);
  var_6 = (type_2)uVar6;
  if (var_2 == 2) {
    var_9 = 0xffff0000;
    var_10 = 0xffffffff;
    var_7 = 0xffff;
    var_8 = 0;
  }
  else if (var_2 < 3) {
    if (var_2 != 1) {
LAB_00045ba6:
                    /* WARNING: Subroutine does not return */
      var_3((char *)(var_4 + 0x1e13b),0x8eb,(char *)(var_4 + 0x1f861));
    }
    var_9 = 0xffffff00;
    var_10 = 0xffffffff;
    var_7 = 0xff;
    var_8 = 0;
  }
  else if (var_2 == 4) {
    var_9 = 0;
    var_10 = 0xffffffff;
    var_7 = 0xffffffff;
    var_8 = 0;
  }
  else {
    if (var_2 != 8) goto LAB_00045ba6;
    var_9 = 0;
    var_10 = 0;
    var_7 = 0xffffffff;
    var_8 = 0xffffffff;
  }
  if (((*(int *)(var_4 + 0x434f5) != 2) || (*(char *)(var_4 + 0x4367b) != '\0')) &&
     (var_5 == 0)) {
    var_5 = (0x7fffffff < var_6 + 0x80000000) - 1;
  }
  var_7 = var_7 & var_6;
  var_8 = var_5 & var_8;
  if (((var_6 & var_9) != 0 || (var_5 & var_10) != 0) &&
     (var_9 != (var_6 & var_9) || var_10 != (var_5 & var_10))) {
    var_11(buf1,var_12(var_5,var_6));
    var_11(buf2,var_12(var_8,var_7));
    format = (char *)var_13(0,var_4 + 0x1e211,5);
    var_14(format,buf1,buf2);
    return var_12(var_8,var_7);
  }
  return var_12(var_8,var_7);
}


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

undefined8 MASKED(void)

{
  uint uVar1;
  undefined4 uVar2;
  int extraout_ECX;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  int unaff_EDI;
  undefined8 uVar7;
  uint local_78;
  undefined1 local_6c [40];
  undefined1 local_44 [52];
  
  uVar7 = FUN_0001d569();
  local_78 = (uint)((ulonglong)uVar7 >> 0x20);
  uVar1 = (uint)uVar7;
  if (extraout_ECX == 2) {
    uVar5 = 0xffff0000;
    uVar3 = 0xffffffff;
    uVar4 = 0xffff;
    uVar6 = 0;
  }
  else if (extraout_ECX < 3) {
    if (extraout_ECX != 1) {
LAB_00045ba6:
                    /* WARNING: Subroutine does not return */
      FUN_0002be80(unaff_EDI + 0x1e13b,0x8eb,unaff_EDI + 0x1f861,uVar1);
    }
    uVar5 = 0xffffff00;
    uVar3 = 0xffffffff;
    uVar4 = 0xff;
    uVar6 = 0;
  }
  else if (extraout_ECX == 4) {
    uVar5 = 0;
    uVar3 = 0xffffffff;
    uVar4 = 0xffffffff;
    uVar6 = 0;
  }
  else {
    if (extraout_ECX != 8) goto LAB_00045ba6;
    uVar5 = 0;
    uVar3 = 0;
    uVar4 = 0xffffffff;
    uVar6 = 0xffffffff;
  }
  if (((*(int *)(unaff_EDI + 0x434f5) != 2) || (*(char *)(unaff_EDI + 0x4367b) != '\0')) &&
     (local_78 == 0)) {
    local_78 = (0x7fffffff < uVar1 + 0x80000000) - 1;
  }
  uVar4 = uVar4 & uVar1;
  uVar6 = local_78 & uVar6;
  if (((uVar1 & uVar5) != 0 || (local_78 & uVar3) != 0) &&
     (uVar5 != (uVar1 & uVar5) || uVar3 != (local_78 & uVar3))) {
    FUN_0002c250(local_6c,uVar1,local_78);
    FUN_0002c250(local_44,uVar4,uVar6);
    uVar2 = dcgettext(0,unaff_EDI + 0x1e211,5);
    FUN_0002bc80(uVar2,local_6c,local_44);
    return CONCAT44(uVar6,uVar4);
  }
  return CONCAT44(uVar6,uVar4);
}

