
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

void x11_alloc_subfont(x11font *xfont,wchar_t sfid)

{
  int iVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  xlfd_decomposed *dec;
  XFontStruct *pXVar5;
  char *pcVar6;
  long in_FS_OFFSET;
  ulong ret;
  long local_30;
  
  local_30 = *(long *)(in_FS_OFFSET + 0x28);
  uVar2 = gdk_display_get_default();
  uVar2 = gdk_x11_display_get_xdisplay(uVar2);
  pXVar5 = xfont->fonts[0].xfs;
  uVar3 = gdk_display_get_default();
  uVar3 = gdk_x11_display_get_xdisplay(uVar3);
  uVar4 = XInternAtom(uVar3,&DAT_001ca678,0);
  iVar1 = XGetFontProperty(pXVar5,uVar4,&ret);
  pcVar6 = (char *)0x0;
  if (iVar1 != 0) {
    pcVar6 = (char *)XGetAtomName(uVar3,ret);
    dec = xlfd_decompose(pcVar6);
    if (dec == (xlfd_decomposed *)0x0) {
      pcVar6 = (char *)0x0;
    }
    else {
      if ((sfid & 1U) != 0) {
        dec->weight_name = "bold";
      }
      if ((sfid & 2U) != 0) {
        dec->add_style_name = "*";
        dec->setwidth_name = "*";
        dec->average_width = dec->average_width << 1;
      }
      pcVar6 = xlfd_recompose(dec);
      safefree(dec);
    }
  }
  pXVar5 = (XFontStruct *)XLoadQueryFont(uVar2,pcVar6);
  xfont->fonts[sfid].xfs = pXVar5;
  xfont->fonts[sfid].allocated = L'\x01';
  safefree(pcVar6);
  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}



void FUN_0017c32c(long param_1,uint param_2)

{
  int iVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  undefined8 uVar5;
  long lVar6;
  long in_FS_OFFSET;
  undefined8 local_38;
  long local_30;
  
  local_30 = *(long *)(in_FS_OFFSET + 0x28);
  uVar2 = gdk_display_get_default();
  uVar3 = gdk_x11_display_get_xdisplay(uVar2);
  uVar2 = *(undefined8 *)(param_1 + 0x28);
  uVar4 = gdk_display_get_default();
  uVar4 = gdk_x11_display_get_xdisplay(uVar4);
  uVar5 = XInternAtom(uVar4,&DAT_001ca678,0);
  iVar1 = XGetFontProperty(uVar2,uVar5,&local_38);
  uVar2 = 0;
  if (iVar1 != 0) {
    uVar2 = XGetAtomName(uVar4,local_38);
    lVar6 = FUN_0017bd65(uVar2);
    if (lVar6 == 0) {
      uVar2 = 0;
    }
    else {
      if ((param_2 & 1) != 0) {
        *(char **)(lVar6 + 0x10) = "bold";
      }
      if ((param_2 & 2) != 0) {
        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;
        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;
        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;
      }
      uVar2 = FUN_0017bf4a(lVar6);
      FUN_00127101(lVar6);
    }
  }
  uVar3 = XLoadQueryFont(uVar3,uVar2);
  *(undefined8 *)(param_1 + 0x28 + (long)(int)param_2 * 0x50) = uVar3;
  *(undefined4 *)(param_1 + 0x30 + (long)(int)param_2 * 0x50) = 1;
  FUN_00127101(uVar2);
  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}


PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x10
MOV RBX,RDI
MOV R12D,ESI
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x8],RAX
XOR EAX,EAX
CALL 0x00114e40
MOV RDI,RAX
CALL 0x00115fd0
MOV R14,RAX
MOV RBP,qword ptr [RBX + 0x28]
CALL 0x00114e40
MOV RDI,RAX
CALL 0x00115fd0
MOV R13,RAX
MOV EDX,0x0
LEA RSI,[0x1ca678]
MOV RDI,RAX
CALL 0x00114b60
MOV RDX,RSP
MOV RSI,RAX
MOV RDI,RBP
CALL 0x00114200
MOV EBP,0x0
TEST EAX,EAX
JZ 0x0017c3fa
MOV RSI,qword ptr [RSP]
MOV RDI,R13
CALL 0x00115fb0
MOV RDI,RAX
CALL 0x0017bd65
MOV R13,RAX
TEST RAX,RAX
JZ 0x0017c44a
TEST R12B,0x1
JZ 0x0017c3ce
LEA RAX,[0x1c8be9]
MOV qword ptr [R13 + 0x10],RAX
TEST R12B,0x2
JZ 0x0017c3e7
LEA RAX,[0x1bc141]
MOV qword ptr [R13 + 0x28],RAX
MOV qword ptr [R13 + 0x20],RAX
SHL dword ptr [R13 + 0x48],0x1
MOV RDI,R13
CALL 0x0017bf4a
MOV RBP,RAX
MOV RDI,R13
CALL 0x00127101
MOV RSI,RBP
MOV RDI,R14
CALL 0x00115db0
MOVSXD RSI,R12D
LEA RDX,[RSI*0x4]
LEA RCX,[RDX + RSI*0x1]
SHL RCX,0x4
MOV qword ptr [RBX + RCX*0x1 + 0x28],RAX
MOV dword ptr [RBX + RCX*0x1 + 0x30],0x1
MOV RDI,RBP
CALL 0x00127101
MOV RAX,qword ptr [RSP + 0x8]
XOR RAX,qword ptr FS:[0x28]
JNZ 0x0017c44f
ADD RSP,0x10
POP RBX
POP RBP
POP R12
POP R13
POP R14
RET
MOV RBP,RAX
JMP 0x0017c3fa
CALL 0x00115250
(translation_unit "void FUN_0017c32c(long param_1,uint param_2)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  long lVar6;\n  long in_FS_OFFSET;\n  undefined8 local_38;\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar2 = gdk_display_get_default();\n  uVar3 = gdk_x11_display_get_xdisplay(uVar2);\n  uVar2 = *(undefined8 *)(param_1 + 0x28);\n  uVar4 = gdk_display_get_default();\n  uVar4 = gdk_x11_display_get_xdisplay(uVar4);\n  uVar5 = XInternAtom(uVar4,&DAT_001ca678,0);\n  iVar1 = XGetFontProperty(uVar2,uVar5,&local_38);\n  uVar2 = 0;\n  if (iVar1 != 0) {\n    uVar2 = XGetAtomName(uVar4,local_38);\n    lVar6 = FUN_0017bd65(uVar2);\n    if (lVar6 == 0) {\n      uVar2 = 0;\n    }\n    else {\n      if ((param_2 & 1) != 0) {\n        *(char **)(lVar6 + 0x10) = "bold";\n      }\n      if ((param_2 & 2) != 0) {\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }\n      uVar2 = FUN_0017bf4a(lVar6);\n      FUN_00127101(lVar6);\n    }\n  }\n  uVar3 = XLoadQueryFont(uVar3,uVar2);\n  *(undefined8 *)(param_1 + 0x28 + (long)(int)param_2 * 0x50) = uVar3;\n  *(undefined4 *)(param_1 + 0x30 + (long)(int)param_2 * 0x50) = 1;\n  FUN_00127101(uVar2);\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "void FUN_0017c32c(long param_1,uint param_2)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  long lVar6;\n  long in_FS_OFFSET;\n  undefined8 local_38;\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar2 = gdk_display_get_default();\n  uVar3 = gdk_x11_display_get_xdisplay(uVar2);\n  uVar2 = *(undefined8 *)(param_1 + 0x28);\n  uVar4 = gdk_display_get_default();\n  uVar4 = gdk_x11_display_get_xdisplay(uVar4);\n  uVar5 = XInternAtom(uVar4,&DAT_001ca678,0);\n  iVar1 = XGetFontProperty(uVar2,uVar5,&local_38);\n  uVar2 = 0;\n  if (iVar1 != 0) {\n    uVar2 = XGetAtomName(uVar4,local_38);\n    lVar6 = FUN_0017bd65(uVar2);\n    if (lVar6 == 0) {\n      uVar2 = 0;\n    }\n    else {\n      if ((param_2 & 1) != 0) {\n        *(char **)(lVar6 + 0x10) = "bold";\n      }\n      if ((param_2 & 2) != 0) {\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }\n      uVar2 = FUN_0017bf4a(lVar6);\n      FUN_00127101(lVar6);\n    }\n  }\n  uVar3 = XLoadQueryFont(uVar3,uVar2);\n  *(undefined8 *)(param_1 + 0x28 + (long)(int)param_2 * 0x50) = uVar3;\n  *(undefined4 *)(param_1 + 0x30 + (long)(int)param_2 * 0x50) = 1;\n  FUN_00127101(uVar2);\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "FUN_0017c32c(long param_1,uint param_2)" identifier (parameter_list "(long param_1,uint param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  long lVar6;\n  long in_FS_OFFSET;\n  undefined8 local_38;\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar2 = gdk_display_get_default();\n  uVar3 = gdk_x11_display_get_xdisplay(uVar2);\n  uVar2 = *(undefined8 *)(param_1 + 0x28);\n  uVar4 = gdk_display_get_default();\n  uVar4 = gdk_x11_display_get_xdisplay(uVar4);\n  uVar5 = XInternAtom(uVar4,&DAT_001ca678,0);\n  iVar1 = XGetFontProperty(uVar2,uVar5,&local_38);\n  uVar2 = 0;\n  if (iVar1 != 0) {\n    uVar2 = XGetAtomName(uVar4,local_38);\n    lVar6 = FUN_0017bd65(uVar2);\n    if (lVar6 == 0) {\n      uVar2 = 0;\n    }\n    else {\n      if ((param_2 & 1) != 0) {\n        *(char **)(lVar6 + 0x10) = "bold";\n      }\n      if ((param_2 & 2) != 0) {\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }\n      uVar2 = FUN_0017bf4a(lVar6);\n      FUN_00127101(lVar6);\n    }\n  }\n  uVar3 = XLoadQueryFont(uVar3,uVar2);\n  *(undefined8 *)(param_1 + 0x28 + (long)(int)param_2 * 0x50) = uVar3;\n  *(undefined4 *)(param_1 + 0x30 + (long)(int)param_2 * 0x50) = 1;\n  FUN_00127101(uVar2);\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_38;" type_identifier identifier ;) (declaration "long local_30;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_30 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_30 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = gdk_display_get_default();" (assignment_expression "uVar2 = gdk_display_get_default()" identifier = (call_expression "gdk_display_get_default()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar3 = gdk_x11_display_get_xdisplay(uVar2);" (assignment_expression "uVar3 = gdk_x11_display_get_xdisplay(uVar2)" identifier = (call_expression "gdk_x11_display_get_xdisplay(uVar2)" identifier (argument_list "(uVar2)" ( identifier )))) ;) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x28);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x28)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x28)" * (cast_expression "(undefined8 *)(param_1 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = gdk_display_get_default();" (assignment_expression "uVar4 = gdk_display_get_default()" identifier = (call_expression "gdk_display_get_default()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar4 = gdk_x11_display_get_xdisplay(uVar4);" (assignment_expression "uVar4 = gdk_x11_display_get_xdisplay(uVar4)" identifier = (call_expression "gdk_x11_display_get_xdisplay(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "uVar5 = XInternAtom(uVar4,&DAT_001ca678,0);" (assignment_expression "uVar5 = XInternAtom(uVar4,&DAT_001ca678,0)" identifier = (call_expression "XInternAtom(uVar4,&DAT_001ca678,0)" identifier (argument_list "(uVar4,&DAT_001ca678,0)" ( identifier , (pointer_expression "&DAT_001ca678" & identifier) , number_literal )))) ;) (expression_statement "iVar1 = XGetFontProperty(uVar2,uVar5,&local_38);" (assignment_expression "iVar1 = XGetFontProperty(uVar2,uVar5,&local_38)" identifier = (call_expression "XGetFontProperty(uVar2,uVar5,&local_38)" identifier (argument_list "(uVar2,uVar5,&local_38)" ( identifier , identifier , (pointer_expression "&local_38" & identifier) )))) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (if_statement "if (iVar1 != 0) {\n    uVar2 = XGetAtomName(uVar4,local_38);\n    lVar6 = FUN_0017bd65(uVar2);\n    if (lVar6 == 0) {\n      uVar2 = 0;\n    }\n    else {\n      if ((param_2 & 1) != 0) {\n        *(char **)(lVar6 + 0x10) = "bold";\n      }\n      if ((param_2 & 2) != 0) {\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }\n      uVar2 = FUN_0017bf4a(lVar6);\n      FUN_00127101(lVar6);\n    }\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar2 = XGetAtomName(uVar4,local_38);\n    lVar6 = FUN_0017bd65(uVar2);\n    if (lVar6 == 0) {\n      uVar2 = 0;\n    }\n    else {\n      if ((param_2 & 1) != 0) {\n        *(char **)(lVar6 + 0x10) = "bold";\n      }\n      if ((param_2 & 2) != 0) {\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }\n      uVar2 = FUN_0017bf4a(lVar6);\n      FUN_00127101(lVar6);\n    }\n  }" { (expression_statement "uVar2 = XGetAtomName(uVar4,local_38);" (assignment_expression "uVar2 = XGetAtomName(uVar4,local_38)" identifier = (call_expression "XGetAtomName(uVar4,local_38)" identifier (argument_list "(uVar4,local_38)" ( identifier , identifier )))) ;) (expression_statement "lVar6 = FUN_0017bd65(uVar2);" (assignment_expression "lVar6 = FUN_0017bd65(uVar2)" identifier = (call_expression "FUN_0017bd65(uVar2)" identifier (argument_list "(uVar2)" ( identifier )))) ;) (if_statement "if (lVar6 == 0) {\n      uVar2 = 0;\n    }\n    else {\n      if ((param_2 & 1) != 0) {\n        *(char **)(lVar6 + 0x10) = "bold";\n      }\n      if ((param_2 & 2) != 0) {\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }\n      uVar2 = FUN_0017bf4a(lVar6);\n      FUN_00127101(lVar6);\n    }" if (parenthesized_expression "(lVar6 == 0)" ( (binary_expression "lVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar2 = 0;\n    }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if ((param_2 & 1) != 0) {\n        *(char **)(lVar6 + 0x10) = "bold";\n      }\n      if ((param_2 & 2) != 0) {\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }\n      uVar2 = FUN_0017bf4a(lVar6);\n      FUN_00127101(lVar6);\n    }" else (compound_statement "{\n      if ((param_2 & 1) != 0) {\n        *(char **)(lVar6 + 0x10) = "bold";\n      }\n      if ((param_2 & 2) != 0) {\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }\n      uVar2 = FUN_0017bf4a(lVar6);\n      FUN_00127101(lVar6);\n    }" { (if_statement "if ((param_2 & 1) != 0) {\n        *(char **)(lVar6 + 0x10) = "bold";\n      }" if (parenthesized_expression "((param_2 & 1) != 0)" ( (binary_expression "(param_2 & 1) != 0" (parenthesized_expression "(param_2 & 1)" ( (binary_expression "param_2 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        *(char **)(lVar6 + 0x10) = "bold";\n      }" { (expression_statement "*(char **)(lVar6 + 0x10) = "bold";" (assignment_expression "*(char **)(lVar6 + 0x10) = "bold"" (pointer_expression "*(char **)(lVar6 + 0x10)" * (cast_expression "(char **)(lVar6 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar6 + 0x10)" ( (binary_expression "lVar6 + 0x10" identifier + number_literal) )))) = (string_literal ""bold"" " string_content ")) ;) })) (if_statement "if ((param_2 & 2) != 0) {\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }" if (parenthesized_expression "((param_2 & 2) != 0)" ( (binary_expression "(param_2 & 2) != 0" (parenthesized_expression "(param_2 & 2)" ( (binary_expression "param_2 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }" { (expression_statement "*(undefined **)(lVar6 + 0x28) = &DAT_001bc141;" (assignment_expression "*(undefined **)(lVar6 + 0x28) = &DAT_001bc141" (pointer_expression "*(undefined **)(lVar6 + 0x28)" * (cast_expression "(undefined **)(lVar6 + 0x28)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar6 + 0x28)" ( (binary_expression "lVar6 + 0x28" identifier + number_literal) )))) = (pointer_expression "&DAT_001bc141" & identifier)) ;) (expression_statement "*(undefined **)(lVar6 + 0x20) = &DAT_001bc141;" (assignment_expression "*(undefined **)(lVar6 + 0x20) = &DAT_001bc141" (pointer_expression "*(undefined **)(lVar6 + 0x20)" * (cast_expression "(undefined **)(lVar6 + 0x20)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) )))) = (pointer_expression "&DAT_001bc141" & identifier)) ;) (expression_statement "*(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;" (assignment_expression "*(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1" (pointer_expression "*(int *)(lVar6 + 0x48)" * (cast_expression "(int *)(lVar6 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x48)" ( (binary_expression "lVar6 + 0x48" identifier + number_literal) )))) = (binary_expression "*(int *)(lVar6 + 0x48) << 1" (pointer_expression "*(int *)(lVar6 + 0x48)" * (cast_expression "(int *)(lVar6 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x48)" ( (binary_expression "lVar6 + 0x48" identifier + number_literal) )))) << number_literal)) ;) })) (expression_statement "uVar2 = FUN_0017bf4a(lVar6);" (assignment_expression "uVar2 = FUN_0017bf4a(lVar6)" identifier = (call_expression "FUN_0017bf4a(lVar6)" identifier (argument_list "(lVar6)" ( identifier )))) ;) (expression_statement "FUN_00127101(lVar6);" (call_expression "FUN_00127101(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))) ;) }))) })) (expression_statement "uVar3 = XLoadQueryFont(uVar3,uVar2);" (assignment_expression "uVar3 = XLoadQueryFont(uVar3,uVar2)" identifier = (call_expression "XLoadQueryFont(uVar3,uVar2)" identifier (argument_list "(uVar3,uVar2)" ( identifier , identifier )))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x28 + (long)(int)param_2 * 0x50) = uVar3;" (assignment_expression "*(undefined8 *)(param_1 + 0x28 + (long)(int)param_2 * 0x50) = uVar3" (pointer_expression "*(undefined8 *)(param_1 + 0x28 + (long)(int)param_2 * 0x50)" * (cast_expression "(undefined8 *)(param_1 + 0x28 + (long)(int)param_2 * 0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28 + (long)(int)param_2 * 0x50)" ( (binary_expression "param_1 + 0x28 + (long)(int)param_2 * 0x50" (binary_expression "param_1 + 0x28" identifier + number_literal) + (binary_expression "(long)(int)param_2 * 0x50" (cast_expression "(long)(int)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) * number_literal)) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x30 + (long)(int)param_2 * 0x50) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x30 + (long)(int)param_2 * 0x50) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x30 + (long)(int)param_2 * 0x50)" * (cast_expression "(undefined4 *)(param_1 + 0x30 + (long)(int)param_2 * 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30 + (long)(int)param_2 * 0x50)" ( (binary_expression "param_1 + 0x30 + (long)(int)param_2 * 0x50" (binary_expression "param_1 + 0x30" identifier + number_literal) + (binary_expression "(long)(int)param_2 * 0x50" (cast_expression "(long)(int)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) * number_literal)) )))) = number_literal) ;) (expression_statement "FUN_00127101(uVar2);" (call_expression "FUN_00127101(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) (if_statement "if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" if (parenthesized_expression "(local_30 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_30 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nvoid x11_alloc_subfont(x11font *xfont,wchar_t sfid)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  xlfd_decomposed *dec;\n  XFontStruct *pXVar5;\n  char *pcVar6;\n  long in_FS_OFFSET;\n  ulong ret;\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar2 = gdk_display_get_default();\n  uVar2 = gdk_x11_display_get_xdisplay(uVar2);\n  pXVar5 = xfont->fonts[0].xfs;\n  uVar3 = gdk_display_get_default();\n  uVar3 = gdk_x11_display_get_xdisplay(uVar3);\n  uVar4 = XInternAtom(uVar3,&DAT_001ca678,0);\n  iVar1 = XGetFontProperty(pXVar5,uVar4,&ret);\n  pcVar6 = (char *)0x0;\n  if (iVar1 != 0) {\n    pcVar6 = (char *)XGetAtomName(uVar3,ret);\n    dec = xlfd_decompose(pcVar6);\n    if (dec == (xlfd_decomposed *)0x0) {\n      pcVar6 = (char *)0x0;\n    }\n    else {\n      if ((sfid & 1U) != 0) {\n        dec->weight_name = "bold";\n      }\n      if ((sfid & 2U) != 0) {\n        dec->add_style_name = "*";\n        dec->setwidth_name = "*";\n        dec->average_width = dec->average_width << 1;\n      }\n      pcVar6 = xlfd_recompose(dec);\n      safefree(dec);\n    }\n  }\n  pXVar5 = (XFontStruct *)XLoadQueryFont(uVar2,pcVar6);\n  xfont->fonts[sfid].xfs = pXVar5;\n  xfont->fonts[sfid].allocated = L'\x01';\n  safefree(pcVar6);\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" comment (function_definition "void x11_alloc_subfont(x11font *xfont,wchar_t sfid)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  xlfd_decomposed *dec;\n  XFontStruct *pXVar5;\n  char *pcVar6;\n  long in_FS_OFFSET;\n  ulong ret;\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar2 = gdk_display_get_default();\n  uVar2 = gdk_x11_display_get_xdisplay(uVar2);\n  pXVar5 = xfont->fonts[0].xfs;\n  uVar3 = gdk_display_get_default();\n  uVar3 = gdk_x11_display_get_xdisplay(uVar3);\n  uVar4 = XInternAtom(uVar3,&DAT_001ca678,0);\n  iVar1 = XGetFontProperty(pXVar5,uVar4,&ret);\n  pcVar6 = (char *)0x0;\n  if (iVar1 != 0) {\n    pcVar6 = (char *)XGetAtomName(uVar3,ret);\n    dec = xlfd_decompose(pcVar6);\n    if (dec == (xlfd_decomposed *)0x0) {\n      pcVar6 = (char *)0x0;\n    }\n    else {\n      if ((sfid & 1U) != 0) {\n        dec->weight_name = "bold";\n      }\n      if ((sfid & 2U) != 0) {\n        dec->add_style_name = "*";\n        dec->setwidth_name = "*";\n        dec->average_width = dec->average_width << 1;\n      }\n      pcVar6 = xlfd_recompose(dec);\n      safefree(dec);\n    }\n  }\n  pXVar5 = (XFontStruct *)XLoadQueryFont(uVar2,pcVar6);\n  xfont->fonts[sfid].xfs = pXVar5;\n  xfont->fonts[sfid].allocated = L'\x01';\n  safefree(pcVar6);\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "x11_alloc_subfont(x11font *xfont,wchar_t sfid)" identifier (parameter_list "(x11font *xfont,wchar_t sfid)" ( (parameter_declaration "x11font *xfont" type_identifier (pointer_declarator "*xfont" * identifier)) , (parameter_declaration "wchar_t sfid" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  xlfd_decomposed *dec;\n  XFontStruct *pXVar5;\n  char *pcVar6;\n  long in_FS_OFFSET;\n  ulong ret;\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar2 = gdk_display_get_default();\n  uVar2 = gdk_x11_display_get_xdisplay(uVar2);\n  pXVar5 = xfont->fonts[0].xfs;\n  uVar3 = gdk_display_get_default();\n  uVar3 = gdk_x11_display_get_xdisplay(uVar3);\n  uVar4 = XInternAtom(uVar3,&DAT_001ca678,0);\n  iVar1 = XGetFontProperty(pXVar5,uVar4,&ret);\n  pcVar6 = (char *)0x0;\n  if (iVar1 != 0) {\n    pcVar6 = (char *)XGetAtomName(uVar3,ret);\n    dec = xlfd_decompose(pcVar6);\n    if (dec == (xlfd_decomposed *)0x0) {\n      pcVar6 = (char *)0x0;\n    }\n    else {\n      if ((sfid & 1U) != 0) {\n        dec->weight_name = "bold";\n      }\n      if ((sfid & 2U) != 0) {\n        dec->add_style_name = "*";\n        dec->setwidth_name = "*";\n        dec->average_width = dec->average_width << 1;\n      }\n      pcVar6 = xlfd_recompose(dec);\n      safefree(dec);\n    }\n  }\n  pXVar5 = (XFontStruct *)XLoadQueryFont(uVar2,pcVar6);\n  xfont->fonts[sfid].xfs = pXVar5;\n  xfont->fonts[sfid].allocated = L'\x01';\n  safefree(pcVar6);\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "xlfd_decomposed *dec;" type_identifier (pointer_declarator "*dec" * identifier) ;) (declaration "XFontStruct *pXVar5;" type_identifier (pointer_declarator "*pXVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong ret;" type_identifier identifier ;) (declaration "long local_30;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_30 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_30 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = gdk_display_get_default();" (assignment_expression "uVar2 = gdk_display_get_default()" identifier = (call_expression "gdk_display_get_default()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar2 = gdk_x11_display_get_xdisplay(uVar2);" (assignment_expression "uVar2 = gdk_x11_display_get_xdisplay(uVar2)" identifier = (call_expression "gdk_x11_display_get_xdisplay(uVar2)" identifier (argument_list "(uVar2)" ( identifier )))) ;) (expression_statement "pXVar5 = xfont->fonts[0].xfs;" (assignment_expression "pXVar5 = xfont->fonts[0].xfs" identifier = (field_expression "xfont->fonts[0].xfs" (subscript_expression "xfont->fonts[0]" (field_expression "xfont->fonts" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "uVar3 = gdk_display_get_default();" (assignment_expression "uVar3 = gdk_display_get_default()" identifier = (call_expression "gdk_display_get_default()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar3 = gdk_x11_display_get_xdisplay(uVar3);" (assignment_expression "uVar3 = gdk_x11_display_get_xdisplay(uVar3)" identifier = (call_expression "gdk_x11_display_get_xdisplay(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "uVar4 = XInternAtom(uVar3,&DAT_001ca678,0);" (assignment_expression "uVar4 = XInternAtom(uVar3,&DAT_001ca678,0)" identifier = (call_expression "XInternAtom(uVar3,&DAT_001ca678,0)" identifier (argument_list "(uVar3,&DAT_001ca678,0)" ( identifier , (pointer_expression "&DAT_001ca678" & identifier) , number_literal )))) ;) (expression_statement "iVar1 = XGetFontProperty(pXVar5,uVar4,&ret);" (assignment_expression "iVar1 = XGetFontProperty(pXVar5,uVar4,&ret)" identifier = (call_expression "XGetFontProperty(pXVar5,uVar4,&ret)" identifier (argument_list "(pXVar5,uVar4,&ret)" ( identifier , identifier , (pointer_expression "&ret" & identifier) )))) ;) (expression_statement "pcVar6 = (char *)0x0;" (assignment_expression "pcVar6 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar1 != 0) {\n    pcVar6 = (char *)XGetAtomName(uVar3,ret);\n    dec = xlfd_decompose(pcVar6);\n    if (dec == (xlfd_decomposed *)0x0) {\n      pcVar6 = (char *)0x0;\n    }\n    else {\n      if ((sfid & 1U) != 0) {\n        dec->weight_name = "bold";\n      }\n      if ((sfid & 2U) != 0) {\n        dec->add_style_name = "*";\n        dec->setwidth_name = "*";\n        dec->average_width = dec->average_width << 1;\n      }\n      pcVar6 = xlfd_recompose(dec);\n      safefree(dec);\n    }\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    pcVar6 = (char *)XGetAtomName(uVar3,ret);\n    dec = xlfd_decompose(pcVar6);\n    if (dec == (xlfd_decomposed *)0x0) {\n      pcVar6 = (char *)0x0;\n    }\n    else {\n      if ((sfid & 1U) != 0) {\n        dec->weight_name = "bold";\n      }\n      if ((sfid & 2U) != 0) {\n        dec->add_style_name = "*";\n        dec->setwidth_name = "*";\n        dec->average_width = dec->average_width << 1;\n      }\n      pcVar6 = xlfd_recompose(dec);\n      safefree(dec);\n    }\n  }" { (expression_statement "pcVar6 = (char *)XGetAtomName(uVar3,ret);" (assignment_expression "pcVar6 = (char *)XGetAtomName(uVar3,ret)" identifier = (cast_expression "(char *)XGetAtomName(uVar3,ret)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "XGetAtomName(uVar3,ret)" identifier (argument_list "(uVar3,ret)" ( identifier , identifier ))))) ;) (expression_statement "dec = xlfd_decompose(pcVar6);" (assignment_expression "dec = xlfd_decompose(pcVar6)" identifier = (call_expression "xlfd_decompose(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier )))) ;) (if_statement "if (dec == (xlfd_decomposed *)0x0) {\n      pcVar6 = (char *)0x0;\n    }\n    else {\n      if ((sfid & 1U) != 0) {\n        dec->weight_name = "bold";\n      }\n      if ((sfid & 2U) != 0) {\n        dec->add_style_name = "*";\n        dec->setwidth_name = "*";\n        dec->average_width = dec->average_width << 1;\n      }\n      pcVar6 = xlfd_recompose(dec);\n      safefree(dec);\n    }" if (parenthesized_expression "(dec == (xlfd_decomposed *)0x0)" ( (binary_expression "dec == (xlfd_decomposed *)0x0" identifier == (cast_expression "(xlfd_decomposed *)0x0" ( (type_descriptor "xlfd_decomposed *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar6 = (char *)0x0;\n    }" { (expression_statement "pcVar6 = (char *)0x0;" (assignment_expression "pcVar6 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      if ((sfid & 1U) != 0) {\n        dec->weight_name = "bold";\n      }\n      if ((sfid & 2U) != 0) {\n        dec->add_style_name = "*";\n        dec->setwidth_name = "*";\n        dec->average_width = dec->average_width << 1;\n      }\n      pcVar6 = xlfd_recompose(dec);\n      safefree(dec);\n    }" else (compound_statement "{\n      if ((sfid & 1U) != 0) {\n        dec->weight_name = "bold";\n      }\n      if ((sfid & 2U) != 0) {\n        dec->add_style_name = "*";\n        dec->setwidth_name = "*";\n        dec->average_width = dec->average_width << 1;\n      }\n      pcVar6 = xlfd_recompose(dec);\n      safefree(dec);\n    }" { (if_statement "if ((sfid & 1U) != 0) {\n        dec->weight_name = "bold";\n      }" if (parenthesized_expression "((sfid & 1U) != 0)" ( (binary_expression "(sfid & 1U) != 0" (parenthesized_expression "(sfid & 1U)" ( (binary_expression "sfid & 1U" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        dec->weight_name = "bold";\n      }" { (expression_statement "dec->weight_name = "bold";" (assignment_expression "dec->weight_name = "bold"" (field_expression "dec->weight_name" identifier -> field_identifier) = (string_literal ""bold"" " string_content ")) ;) })) (if_statement "if ((sfid & 2U) != 0) {\n        dec->add_style_name = "*";\n        dec->setwidth_name = "*";\n        dec->average_width = dec->average_width << 1;\n      }" if (parenthesized_expression "((sfid & 2U) != 0)" ( (binary_expression "(sfid & 2U) != 0" (parenthesized_expression "(sfid & 2U)" ( (binary_expression "sfid & 2U" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        dec->add_style_name = "*";\n        dec->setwidth_name = "*";\n        dec->average_width = dec->average_width << 1;\n      }" { (expression_statement "dec->add_style_name = "*";" (assignment_expression "dec->add_style_name = "*"" (field_expression "dec->add_style_name" identifier -> field_identifier) = (string_literal ""*"" " string_content ")) ;) (expression_statement "dec->setwidth_name = "*";" (assignment_expression "dec->setwidth_name = "*"" (field_expression "dec->setwidth_name" identifier -> field_identifier) = (string_literal ""*"" " string_content ")) ;) (expression_statement "dec->average_width = dec->average_width << 1;" (assignment_expression "dec->average_width = dec->average_width << 1" (field_expression "dec->average_width" identifier -> field_identifier) = (binary_expression "dec->average_width << 1" (field_expression "dec->average_width" identifier -> field_identifier) << number_literal)) ;) })) (expression_statement "pcVar6 = xlfd_recompose(dec);" (assignment_expression "pcVar6 = xlfd_recompose(dec)" identifier = (call_expression "xlfd_recompose(dec)" identifier (argument_list "(dec)" ( identifier )))) ;) (expression_statement "safefree(dec);" (call_expression "safefree(dec)" identifier (argument_list "(dec)" ( identifier ))) ;) }))) })) (expression_statement "pXVar5 = (XFontStruct *)XLoadQueryFont(uVar2,pcVar6);" (assignment_expression "pXVar5 = (XFontStruct *)XLoadQueryFont(uVar2,pcVar6)" identifier = (cast_expression "(XFontStruct *)XLoadQueryFont(uVar2,pcVar6)" ( (type_descriptor "XFontStruct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "XLoadQueryFont(uVar2,pcVar6)" identifier (argument_list "(uVar2,pcVar6)" ( identifier , identifier ))))) ;) (expression_statement "xfont->fonts[sfid].xfs = pXVar5;" (assignment_expression "xfont->fonts[sfid].xfs = pXVar5" (field_expression "xfont->fonts[sfid].xfs" (subscript_expression "xfont->fonts[sfid]" (field_expression "xfont->fonts" identifier -> field_identifier) [ identifier ]) . field_identifier) = identifier) ;) (expression_statement "xfont->fonts[sfid].allocated = L'\x01';" (assignment_expression "xfont->fonts[sfid].allocated = L'\x01'" (field_expression "xfont->fonts[sfid].allocated" (subscript_expression "xfont->fonts[sfid]" (field_expression "xfont->fonts" identifier -> field_identifier) [ identifier ]) . field_identifier) = (char_literal "L'\x01'" L' escape_sequence ')) ;) (expression_statement "safefree(pcVar6);" (call_expression "safefree(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (if_statement "if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" if (parenthesized_expression "(local_30 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_30 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void FUN_0017c32c(long param_1,uint param_2)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  long lVar6;\n  long in_FS_OFFSET;\n  undefined8 local_38;\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar2 = gdk_display_get_default();\n  uVar3 = gdk_x11_display_get_xdisplay(uVar2);\n  uVar2 = *(undefined8 *)(param_1 + 0x28);\n  uVar4 = gdk_display_get_default();\n  uVar4 = gdk_x11_display_get_xdisplay(uVar4);\n  uVar5 = XInternAtom(uVar4,&DAT_001ca678,0);\n  iVar1 = XGetFontProperty(uVar2,uVar5,&local_38);\n  uVar2 = 0;\n  if (iVar1 != 0) {\n    uVar2 = XGetAtomName(uVar4,local_38);\n    lVar6 = FUN_0017bd65(uVar2);\n    if (lVar6 == 0) {\n      uVar2 = 0;\n    }\n    else {\n      if ((param_2 & 1) != 0) {\n        *(char **)(lVar6 + 0x10) = "bold";\n      }\n      if ((param_2 & 2) != 0) {\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }\n      uVar2 = FUN_0017bf4a(lVar6);\n      FUN_00127101(lVar6);\n    }\n  }\n  uVar3 = XLoadQueryFont(uVar3,uVar2);\n  *(undefined8 *)(param_1 + 0x28 + (long)(int)param_2 * 0x50) = uVar3;\n  *(undefined4 *)(param_1 + 0x30 + (long)(int)param_2 * 0x50) = 1;\n  FUN_00127101(uVar2);\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}\n\n" (function_definition "void FUN_0017c32c(long param_1,uint param_2)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  long lVar6;\n  long in_FS_OFFSET;\n  undefined8 local_38;\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar2 = gdk_display_get_default();\n  uVar3 = gdk_x11_display_get_xdisplay(uVar2);\n  uVar2 = *(undefined8 *)(param_1 + 0x28);\n  uVar4 = gdk_display_get_default();\n  uVar4 = gdk_x11_display_get_xdisplay(uVar4);\n  uVar5 = XInternAtom(uVar4,&DAT_001ca678,0);\n  iVar1 = XGetFontProperty(uVar2,uVar5,&local_38);\n  uVar2 = 0;\n  if (iVar1 != 0) {\n    uVar2 = XGetAtomName(uVar4,local_38);\n    lVar6 = FUN_0017bd65(uVar2);\n    if (lVar6 == 0) {\n      uVar2 = 0;\n    }\n    else {\n      if ((param_2 & 1) != 0) {\n        *(char **)(lVar6 + 0x10) = "bold";\n      }\n      if ((param_2 & 2) != 0) {\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }\n      uVar2 = FUN_0017bf4a(lVar6);\n      FUN_00127101(lVar6);\n    }\n  }\n  uVar3 = XLoadQueryFont(uVar3,uVar2);\n  *(undefined8 *)(param_1 + 0x28 + (long)(int)param_2 * 0x50) = uVar3;\n  *(undefined4 *)(param_1 + 0x30 + (long)(int)param_2 * 0x50) = 1;\n  FUN_00127101(uVar2);\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}" primitive_type (function_declarator "FUN_0017c32c(long param_1,uint param_2)" identifier (parameter_list "(long param_1,uint param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  long lVar6;\n  long in_FS_OFFSET;\n  undefined8 local_38;\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar2 = gdk_display_get_default();\n  uVar3 = gdk_x11_display_get_xdisplay(uVar2);\n  uVar2 = *(undefined8 *)(param_1 + 0x28);\n  uVar4 = gdk_display_get_default();\n  uVar4 = gdk_x11_display_get_xdisplay(uVar4);\n  uVar5 = XInternAtom(uVar4,&DAT_001ca678,0);\n  iVar1 = XGetFontProperty(uVar2,uVar5,&local_38);\n  uVar2 = 0;\n  if (iVar1 != 0) {\n    uVar2 = XGetAtomName(uVar4,local_38);\n    lVar6 = FUN_0017bd65(uVar2);\n    if (lVar6 == 0) {\n      uVar2 = 0;\n    }\n    else {\n      if ((param_2 & 1) != 0) {\n        *(char **)(lVar6 + 0x10) = "bold";\n      }\n      if ((param_2 & 2) != 0) {\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }\n      uVar2 = FUN_0017bf4a(lVar6);\n      FUN_00127101(lVar6);\n    }\n  }\n  uVar3 = XLoadQueryFont(uVar3,uVar2);\n  *(undefined8 *)(param_1 + 0x28 + (long)(int)param_2 * 0x50) = uVar3;\n  *(undefined4 *)(param_1 + 0x30 + (long)(int)param_2 * 0x50) = 1;\n  FUN_00127101(uVar2);\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_38;" type_identifier identifier ;) (declaration "long local_30;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_30 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_30 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = gdk_display_get_default();" (assignment_expression "uVar2 = gdk_display_get_default()" identifier = (call_expression "gdk_display_get_default()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar3 = gdk_x11_display_get_xdisplay(uVar2);" (assignment_expression "uVar3 = gdk_x11_display_get_xdisplay(uVar2)" identifier = (call_expression "gdk_x11_display_get_xdisplay(uVar2)" identifier (argument_list "(uVar2)" ( identifier )))) ;) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x28);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x28)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x28)" * (cast_expression "(undefined8 *)(param_1 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = gdk_display_get_default();" (assignment_expression "uVar4 = gdk_display_get_default()" identifier = (call_expression "gdk_display_get_default()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar4 = gdk_x11_display_get_xdisplay(uVar4);" (assignment_expression "uVar4 = gdk_x11_display_get_xdisplay(uVar4)" identifier = (call_expression "gdk_x11_display_get_xdisplay(uVar4)" identifier (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "uVar5 = XInternAtom(uVar4,&DAT_001ca678,0);" (assignment_expression "uVar5 = XInternAtom(uVar4,&DAT_001ca678,0)" identifier = (call_expression "XInternAtom(uVar4,&DAT_001ca678,0)" identifier (argument_list "(uVar4,&DAT_001ca678,0)" ( identifier , (pointer_expression "&DAT_001ca678" & identifier) , number_literal )))) ;) (expression_statement "iVar1 = XGetFontProperty(uVar2,uVar5,&local_38);" (assignment_expression "iVar1 = XGetFontProperty(uVar2,uVar5,&local_38)" identifier = (call_expression "XGetFontProperty(uVar2,uVar5,&local_38)" identifier (argument_list "(uVar2,uVar5,&local_38)" ( identifier , identifier , (pointer_expression "&local_38" & identifier) )))) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (if_statement "if (iVar1 != 0) {\n    uVar2 = XGetAtomName(uVar4,local_38);\n    lVar6 = FUN_0017bd65(uVar2);\n    if (lVar6 == 0) {\n      uVar2 = 0;\n    }\n    else {\n      if ((param_2 & 1) != 0) {\n        *(char **)(lVar6 + 0x10) = "bold";\n      }\n      if ((param_2 & 2) != 0) {\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }\n      uVar2 = FUN_0017bf4a(lVar6);\n      FUN_00127101(lVar6);\n    }\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar2 = XGetAtomName(uVar4,local_38);\n    lVar6 = FUN_0017bd65(uVar2);\n    if (lVar6 == 0) {\n      uVar2 = 0;\n    }\n    else {\n      if ((param_2 & 1) != 0) {\n        *(char **)(lVar6 + 0x10) = "bold";\n      }\n      if ((param_2 & 2) != 0) {\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }\n      uVar2 = FUN_0017bf4a(lVar6);\n      FUN_00127101(lVar6);\n    }\n  }" { (expression_statement "uVar2 = XGetAtomName(uVar4,local_38);" (assignment_expression "uVar2 = XGetAtomName(uVar4,local_38)" identifier = (call_expression "XGetAtomName(uVar4,local_38)" identifier (argument_list "(uVar4,local_38)" ( identifier , identifier )))) ;) (expression_statement "lVar6 = FUN_0017bd65(uVar2);" (assignment_expression "lVar6 = FUN_0017bd65(uVar2)" identifier = (call_expression "FUN_0017bd65(uVar2)" identifier (argument_list "(uVar2)" ( identifier )))) ;) (if_statement "if (lVar6 == 0) {\n      uVar2 = 0;\n    }\n    else {\n      if ((param_2 & 1) != 0) {\n        *(char **)(lVar6 + 0x10) = "bold";\n      }\n      if ((param_2 & 2) != 0) {\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }\n      uVar2 = FUN_0017bf4a(lVar6);\n      FUN_00127101(lVar6);\n    }" if (parenthesized_expression "(lVar6 == 0)" ( (binary_expression "lVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar2 = 0;\n    }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if ((param_2 & 1) != 0) {\n        *(char **)(lVar6 + 0x10) = "bold";\n      }\n      if ((param_2 & 2) != 0) {\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }\n      uVar2 = FUN_0017bf4a(lVar6);\n      FUN_00127101(lVar6);\n    }" else (compound_statement "{\n      if ((param_2 & 1) != 0) {\n        *(char **)(lVar6 + 0x10) = "bold";\n      }\n      if ((param_2 & 2) != 0) {\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }\n      uVar2 = FUN_0017bf4a(lVar6);\n      FUN_00127101(lVar6);\n    }" { (if_statement "if ((param_2 & 1) != 0) {\n        *(char **)(lVar6 + 0x10) = "bold";\n      }" if (parenthesized_expression "((param_2 & 1) != 0)" ( (binary_expression "(param_2 & 1) != 0" (parenthesized_expression "(param_2 & 1)" ( (binary_expression "param_2 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        *(char **)(lVar6 + 0x10) = "bold";\n      }" { (expression_statement "*(char **)(lVar6 + 0x10) = "bold";" (assignment_expression "*(char **)(lVar6 + 0x10) = "bold"" (pointer_expression "*(char **)(lVar6 + 0x10)" * (cast_expression "(char **)(lVar6 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar6 + 0x10)" ( (binary_expression "lVar6 + 0x10" identifier + number_literal) )))) = (string_literal ""bold"" " string_content ")) ;) })) (if_statement "if ((param_2 & 2) != 0) {\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }" if (parenthesized_expression "((param_2 & 2) != 0)" ( (binary_expression "(param_2 & 2) != 0" (parenthesized_expression "(param_2 & 2)" ( (binary_expression "param_2 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }" { (expression_statement "*(undefined **)(lVar6 + 0x28) = &DAT_001bc141;" (assignment_expression "*(undefined **)(lVar6 + 0x28) = &DAT_001bc141" (pointer_expression "*(undefined **)(lVar6 + 0x28)" * (cast_expression "(undefined **)(lVar6 + 0x28)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar6 + 0x28)" ( (binary_expression "lVar6 + 0x28" identifier + number_literal) )))) = (pointer_expression "&DAT_001bc141" & identifier)) ;) (expression_statement "*(undefined **)(lVar6 + 0x20) = &DAT_001bc141;" (assignment_expression "*(undefined **)(lVar6 + 0x20) = &DAT_001bc141" (pointer_expression "*(undefined **)(lVar6 + 0x20)" * (cast_expression "(undefined **)(lVar6 + 0x20)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) )))) = (pointer_expression "&DAT_001bc141" & identifier)) ;) (expression_statement "*(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;" (assignment_expression "*(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1" (pointer_expression "*(int *)(lVar6 + 0x48)" * (cast_expression "(int *)(lVar6 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x48)" ( (binary_expression "lVar6 + 0x48" identifier + number_literal) )))) = (binary_expression "*(int *)(lVar6 + 0x48) << 1" (pointer_expression "*(int *)(lVar6 + 0x48)" * (cast_expression "(int *)(lVar6 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x48)" ( (binary_expression "lVar6 + 0x48" identifier + number_literal) )))) << number_literal)) ;) })) (expression_statement "uVar2 = FUN_0017bf4a(lVar6);" (assignment_expression "uVar2 = FUN_0017bf4a(lVar6)" identifier = (call_expression "FUN_0017bf4a(lVar6)" identifier (argument_list "(lVar6)" ( identifier )))) ;) (expression_statement "FUN_00127101(lVar6);" (call_expression "FUN_00127101(lVar6)" identifier (argument_list "(lVar6)" ( identifier ))) ;) }))) })) (expression_statement "uVar3 = XLoadQueryFont(uVar3,uVar2);" (assignment_expression "uVar3 = XLoadQueryFont(uVar3,uVar2)" identifier = (call_expression "XLoadQueryFont(uVar3,uVar2)" identifier (argument_list "(uVar3,uVar2)" ( identifier , identifier )))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x28 + (long)(int)param_2 * 0x50) = uVar3;" (assignment_expression "*(undefined8 *)(param_1 + 0x28 + (long)(int)param_2 * 0x50) = uVar3" (pointer_expression "*(undefined8 *)(param_1 + 0x28 + (long)(int)param_2 * 0x50)" * (cast_expression "(undefined8 *)(param_1 + 0x28 + (long)(int)param_2 * 0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28 + (long)(int)param_2 * 0x50)" ( (binary_expression "param_1 + 0x28 + (long)(int)param_2 * 0x50" (binary_expression "param_1 + 0x28" identifier + number_literal) + (binary_expression "(long)(int)param_2 * 0x50" (cast_expression "(long)(int)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) * number_literal)) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x30 + (long)(int)param_2 * 0x50) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x30 + (long)(int)param_2 * 0x50) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x30 + (long)(int)param_2 * 0x50)" * (cast_expression "(undefined4 *)(param_1 + 0x30 + (long)(int)param_2 * 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30 + (long)(int)param_2 * 0x50)" ( (binary_expression "param_1 + 0x30 + (long)(int)param_2 * 0x50" (binary_expression "param_1 + 0x30" identifier + number_literal) + (binary_expression "(long)(int)param_2 * 0x50" (cast_expression "(long)(int)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) * number_literal)) )))) = number_literal) ;) (expression_statement "FUN_00127101(uVar2);" (call_expression "FUN_00127101(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) (if_statement "if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" if (parenthesized_expression "(local_30 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_30 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (string_literal " string_content ")) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) * LIT)) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void FUN_0017c32c(long param_1,uint param_2)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  long lVar6;\n  long in_FS_OFFSET;\n  undefined8 local_38;\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar2 = gdk_display_get_default();\n  uVar3 = gdk_x11_display_get_xdisplay(uVar2);\n  uVar2 = *(undefined8 *)(param_1 + 0x28);\n  uVar4 = gdk_display_get_default();\n  uVar4 = gdk_x11_display_get_xdisplay(uVar4);\n  uVar5 = XInternAtom(uVar4,&DAT_001ca678,0);\n  iVar1 = XGetFontProperty(uVar2,uVar5,&local_38);\n  uVar2 = 0;\n  if (iVar1 != 0) {\n    uVar2 = XGetAtomName(uVar4,local_38);\n    lVar6 = FUN_0017bd65(uVar2);\n    if (lVar6 == 0) {\n      uVar2 = 0;\n    }\n    else {\n      if ((param_2 & 1) != 0) {\n        *(char **)(lVar6 + 0x10) = "bold";\n      }\n      if ((param_2 & 2) != 0) {\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }\n      uVar2 = FUN_0017bf4a(lVar6);\n      FUN_00127101(lVar6);\n    }\n  }\n  uVar3 = XLoadQueryFont(uVar3,uVar2);\n  *(undefined8 *)(param_1 + 0x28 + (long)(int)param_2 * 0x50) = uVar3;\n  *(undefined4 *)(param_1 + 0x30 + (long)(int)param_2 * 0x50) = 1;\n  FUN_00127101(uVar2);\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}" (primitive_type "void") (function_declarator "FUN_0017c32c(long param_1,uint param_2)" (identifier "FUN_0017c32c") (parameter_list "(long param_1,uint param_2)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  long lVar6;\n  long in_FS_OFFSET;\n  undefined8 local_38;\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar2 = gdk_display_get_default();\n  uVar3 = gdk_x11_display_get_xdisplay(uVar2);\n  uVar2 = *(undefined8 *)(param_1 + 0x28);\n  uVar4 = gdk_display_get_default();\n  uVar4 = gdk_x11_display_get_xdisplay(uVar4);\n  uVar5 = XInternAtom(uVar4,&DAT_001ca678,0);\n  iVar1 = XGetFontProperty(uVar2,uVar5,&local_38);\n  uVar2 = 0;\n  if (iVar1 != 0) {\n    uVar2 = XGetAtomName(uVar4,local_38);\n    lVar6 = FUN_0017bd65(uVar2);\n    if (lVar6 == 0) {\n      uVar2 = 0;\n    }\n    else {\n      if ((param_2 & 1) != 0) {\n        *(char **)(lVar6 + 0x10) = "bold";\n      }\n      if ((param_2 & 2) != 0) {\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }\n      uVar2 = FUN_0017bf4a(lVar6);\n      FUN_00127101(lVar6);\n    }\n  }\n  uVar3 = XLoadQueryFont(uVar3,uVar2);\n  *(undefined8 *)(param_1 + 0x28 + (long)(int)param_2 * 0x50) = uVar3;\n  *(undefined4 *)(param_1 + 0x30 + (long)(int)param_2 * 0x50) = 1;\n  FUN_00127101(uVar2);\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "undefined8 uVar3;" (type_identifier "undefined8") (identifier "uVar3") (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "undefined8 uVar5;" (type_identifier "undefined8") (identifier "uVar5") (; ";")) (declaration "long lVar6;" (sized_type_specifier "long" (long "long")) (identifier "lVar6") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "undefined8 local_38;" (type_identifier "undefined8") (identifier "local_38") (; ";")) (declaration "long local_30;" (sized_type_specifier "long" (long "long")) (identifier "local_30") (; ";")) (expression_statement "local_30 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_30 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_30") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar2 = gdk_display_get_default();" (assignment_expression "uVar2 = gdk_display_get_default()" (identifier "uVar2") (= "=") (call_expression "gdk_display_get_default()" (identifier "gdk_display_get_default") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar3 = gdk_x11_display_get_xdisplay(uVar2);" (assignment_expression "uVar3 = gdk_x11_display_get_xdisplay(uVar2)" (identifier "uVar3") (= "=") (call_expression "gdk_x11_display_get_xdisplay(uVar2)" (identifier "gdk_x11_display_get_xdisplay") (argument_list "(uVar2)" (( "(") (identifier "uVar2") () ")")))) (; ";")) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x28);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x28)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x28)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar4 = gdk_display_get_default();" (assignment_expression "uVar4 = gdk_display_get_default()" (identifier "uVar4") (= "=") (call_expression "gdk_display_get_default()" (identifier "gdk_display_get_default") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar4 = gdk_x11_display_get_xdisplay(uVar4);" (assignment_expression "uVar4 = gdk_x11_display_get_xdisplay(uVar4)" (identifier "uVar4") (= "=") (call_expression "gdk_x11_display_get_xdisplay(uVar4)" (identifier "gdk_x11_display_get_xdisplay") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")")))) (; ";")) (expression_statement "uVar5 = XInternAtom(uVar4,&DAT_001ca678,0);" (assignment_expression "uVar5 = XInternAtom(uVar4,&DAT_001ca678,0)" (identifier "uVar5") (= "=") (call_expression "XInternAtom(uVar4,&DAT_001ca678,0)" (identifier "XInternAtom") (argument_list "(uVar4,&DAT_001ca678,0)" (( "(") (identifier "uVar4") (, ",") (pointer_expression "&DAT_001ca678" (& "&") (identifier "DAT_001ca678")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "iVar1 = XGetFontProperty(uVar2,uVar5,&local_38);" (assignment_expression "iVar1 = XGetFontProperty(uVar2,uVar5,&local_38)" (identifier "iVar1") (= "=") (call_expression "XGetFontProperty(uVar2,uVar5,&local_38)" (identifier "XGetFontProperty") (argument_list "(uVar2,uVar5,&local_38)" (( "(") (identifier "uVar2") (, ",") (identifier "uVar5") (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) () ")")))) (; ";")) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar1 != 0) {\n    uVar2 = XGetAtomName(uVar4,local_38);\n    lVar6 = FUN_0017bd65(uVar2);\n    if (lVar6 == 0) {\n      uVar2 = 0;\n    }\n    else {\n      if ((param_2 & 1) != 0) {\n        *(char **)(lVar6 + 0x10) = "bold";\n      }\n      if ((param_2 & 2) != 0) {\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }\n      uVar2 = FUN_0017bf4a(lVar6);\n      FUN_00127101(lVar6);\n    }\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar2 = XGetAtomName(uVar4,local_38);\n    lVar6 = FUN_0017bd65(uVar2);\n    if (lVar6 == 0) {\n      uVar2 = 0;\n    }\n    else {\n      if ((param_2 & 1) != 0) {\n        *(char **)(lVar6 + 0x10) = "bold";\n      }\n      if ((param_2 & 2) != 0) {\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }\n      uVar2 = FUN_0017bf4a(lVar6);\n      FUN_00127101(lVar6);\n    }\n  }" ({ "{") (expression_statement "uVar2 = XGetAtomName(uVar4,local_38);" (assignment_expression "uVar2 = XGetAtomName(uVar4,local_38)" (identifier "uVar2") (= "=") (call_expression "XGetAtomName(uVar4,local_38)" (identifier "XGetAtomName") (argument_list "(uVar4,local_38)" (( "(") (identifier "uVar4") (, ",") (identifier "local_38") () ")")))) (; ";")) (expression_statement "lVar6 = FUN_0017bd65(uVar2);" (assignment_expression "lVar6 = FUN_0017bd65(uVar2)" (identifier "lVar6") (= "=") (call_expression "FUN_0017bd65(uVar2)" (identifier "FUN_0017bd65") (argument_list "(uVar2)" (( "(") (identifier "uVar2") () ")")))) (; ";")) (if_statement "if (lVar6 == 0) {\n      uVar2 = 0;\n    }\n    else {\n      if ((param_2 & 1) != 0) {\n        *(char **)(lVar6 + 0x10) = "bold";\n      }\n      if ((param_2 & 2) != 0) {\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }\n      uVar2 = FUN_0017bf4a(lVar6);\n      FUN_00127101(lVar6);\n    }" (if "if") (parenthesized_expression "(lVar6 == 0)" (( "(") (binary_expression "lVar6 == 0" (identifier "lVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar2 = 0;\n    }" ({ "{") (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      if ((param_2 & 1) != 0) {\n        *(char **)(lVar6 + 0x10) = "bold";\n      }\n      if ((param_2 & 2) != 0) {\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }\n      uVar2 = FUN_0017bf4a(lVar6);\n      FUN_00127101(lVar6);\n    }" (else "else") (compound_statement "{\n      if ((param_2 & 1) != 0) {\n        *(char **)(lVar6 + 0x10) = "bold";\n      }\n      if ((param_2 & 2) != 0) {\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }\n      uVar2 = FUN_0017bf4a(lVar6);\n      FUN_00127101(lVar6);\n    }" ({ "{") (if_statement "if ((param_2 & 1) != 0) {\n        *(char **)(lVar6 + 0x10) = "bold";\n      }" (if "if") (parenthesized_expression "((param_2 & 1) != 0)" (( "(") (binary_expression "(param_2 & 1) != 0" (parenthesized_expression "(param_2 & 1)" (( "(") (binary_expression "param_2 & 1" (identifier "param_2") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        *(char **)(lVar6 + 0x10) = "bold";\n      }" ({ "{") (expression_statement "*(char **)(lVar6 + 0x10) = "bold";" (assignment_expression "*(char **)(lVar6 + 0x10) = "bold"" (pointer_expression "*(char **)(lVar6 + 0x10)" (* "*") (cast_expression "(char **)(lVar6 + 0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar6 + 0x10)" (( "(") (binary_expression "lVar6 + 0x10" (identifier "lVar6") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (string_literal ""bold"" (" """) (string_content "bold") (" """))) (; ";")) (} "}"))) (if_statement "if ((param_2 & 2) != 0) {\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }" (if "if") (parenthesized_expression "((param_2 & 2) != 0)" (( "(") (binary_expression "(param_2 & 2) != 0" (parenthesized_expression "(param_2 & 2)" (( "(") (binary_expression "param_2 & 2" (identifier "param_2") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;\n        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;\n        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;\n      }" ({ "{") (expression_statement "*(undefined **)(lVar6 + 0x28) = &DAT_001bc141;" (assignment_expression "*(undefined **)(lVar6 + 0x28) = &DAT_001bc141" (pointer_expression "*(undefined **)(lVar6 + 0x28)" (* "*") (cast_expression "(undefined **)(lVar6 + 0x28)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar6 + 0x28)" (( "(") (binary_expression "lVar6 + 0x28" (identifier "lVar6") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (pointer_expression "&DAT_001bc141" (& "&") (identifier "DAT_001bc141"))) (; ";")) (expression_statement "*(undefined **)(lVar6 + 0x20) = &DAT_001bc141;" (assignment_expression "*(undefined **)(lVar6 + 0x20) = &DAT_001bc141" (pointer_expression "*(undefined **)(lVar6 + 0x20)" (* "*") (cast_expression "(undefined **)(lVar6 + 0x20)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar6 + 0x20)" (( "(") (binary_expression "lVar6 + 0x20" (identifier "lVar6") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (pointer_expression "&DAT_001bc141" (& "&") (identifier "DAT_001bc141"))) (; ";")) (expression_statement "*(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;" (assignment_expression "*(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1" (pointer_expression "*(int *)(lVar6 + 0x48)" (* "*") (cast_expression "(int *)(lVar6 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x48)" (( "(") (binary_expression "lVar6 + 0x48" (identifier "lVar6") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (binary_expression "*(int *)(lVar6 + 0x48) << 1" (pointer_expression "*(int *)(lVar6 + 0x48)" (* "*") (cast_expression "(int *)(lVar6 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x48)" (( "(") (binary_expression "lVar6 + 0x48" (identifier "lVar6") (+ "+") (number_literal "0x48")) () ")")))) (<< "<<") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "uVar2 = FUN_0017bf4a(lVar6);" (assignment_expression "uVar2 = FUN_0017bf4a(lVar6)" (identifier "uVar2") (= "=") (call_expression "FUN_0017bf4a(lVar6)" (identifier "FUN_0017bf4a") (argument_list "(lVar6)" (( "(") (identifier "lVar6") () ")")))) (; ";")) (expression_statement "FUN_00127101(lVar6);" (call_expression "FUN_00127101(lVar6)" (identifier "FUN_00127101") (argument_list "(lVar6)" (( "(") (identifier "lVar6") () ")"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "uVar3 = XLoadQueryFont(uVar3,uVar2);" (assignment_expression "uVar3 = XLoadQueryFont(uVar3,uVar2)" (identifier "uVar3") (= "=") (call_expression "XLoadQueryFont(uVar3,uVar2)" (identifier "XLoadQueryFont") (argument_list "(uVar3,uVar2)" (( "(") (identifier "uVar3") (, ",") (identifier "uVar2") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(param_1 + 0x28 + (long)(int)param_2 * 0x50) = uVar3;" (assignment_expression "*(undefined8 *)(param_1 + 0x28 + (long)(int)param_2 * 0x50) = uVar3" (pointer_expression "*(undefined8 *)(param_1 + 0x28 + (long)(int)param_2 * 0x50)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x28 + (long)(int)param_2 * 0x50)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28 + (long)(int)param_2 * 0x50)" (( "(") (binary_expression "param_1 + 0x28 + (long)(int)param_2 * 0x50" (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) (+ "+") (binary_expression "(long)(int)param_2 * 0x50" (cast_expression "(long)(int)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) (* "*") (number_literal "0x50"))) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x30 + (long)(int)param_2 * 0x50) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x30 + (long)(int)param_2 * 0x50) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x30 + (long)(int)param_2 * 0x50)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x30 + (long)(int)param_2 * 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30 + (long)(int)param_2 * 0x50)" (( "(") (binary_expression "param_1 + 0x30 + (long)(int)param_2 * 0x50" (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) (+ "+") (binary_expression "(long)(int)param_2 * 0x50" (cast_expression "(long)(int)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) (* "*") (number_literal "0x50"))) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_00127101(uVar2);" (call_expression "FUN_00127101(uVar2)" (identifier "FUN_00127101") (argument_list "(uVar2)" (( "(") (identifier "uVar2") () ")"))) (; ";")) (if_statement "if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_30 == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_30 == *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_30") (== "==") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

void function_1(type_1 *xfont,type_2 var_10)

{
  int var_6;
  type_3 uVar2;
  type_3 uVar3;
  type_3 uVar4;
  type_4 *var_9;
  type_5 *pXVar5;
  char *pcVar6;
  long var_1;
  type_6 ret;
  long var_14;
  
  var_14 = *(long *)(var_1 + 0x28);
  uVar2 = var_2();
  uVar2 = var_3(uVar2);
  pXVar5 = xfont->fonts[0].xfs;
  uVar3 = var_2();
  uVar3 = var_3(uVar3);
  uVar4 = var_4(uVar3,&DAT_001ca678,0);
  var_6 = var_5(pXVar5,uVar4,&ret);
  pcVar6 = (char *)0x0;
  if (var_6 != 0) {
    pcVar6 = (char *)var_7(uVar3,ret);
    var_9 = var_8(pcVar6);
    if (var_9 == (type_4 *)0x0) {
      pcVar6 = (char *)0x0;
    }
    else {
      if ((var_10 & 1U) != 0) {
        var_9->weight_name = "bold";
      }
      if ((var_10 & 2U) != 0) {
        var_9->add_style_name = "*";
        var_9->setwidth_name = "*";
        var_9->average_width = var_9->average_width << 1;
      }
      pcVar6 = var_11(var_9);
      var_12(var_9);
    }
  }
  pXVar5 = (type_5 *)var_13(uVar2,pcVar6);
  xfont->fonts[var_10].xfs = pXVar5;
  xfont->fonts[var_10].allocated = L'\x01';
  var_12(pcVar6);
  if (var_14 == *(long *)(var_1 + 0x28)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_15();
}


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

void MASKED(long param_1,uint param_2)

{
  int iVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  undefined8 uVar5;
  long lVar6;
  long in_FS_OFFSET;
  undefined8 local_38;
  long local_30;
  
  local_30 = *(long *)(in_FS_OFFSET + 0x28);
  uVar2 = gdk_display_get_default();
  uVar3 = gdk_x11_display_get_xdisplay(uVar2);
  uVar2 = *(undefined8 *)(param_1 + 0x28);
  uVar4 = gdk_display_get_default();
  uVar4 = gdk_x11_display_get_xdisplay(uVar4);
  uVar5 = XInternAtom(uVar4,&DAT_001ca678,0);
  iVar1 = XGetFontProperty(uVar2,uVar5,&local_38);
  uVar2 = 0;
  if (iVar1 != 0) {
    uVar2 = XGetAtomName(uVar4,local_38);
    lVar6 = FUN_0017bd65(uVar2);
    if (lVar6 == 0) {
      uVar2 = 0;
    }
    else {
      if ((param_2 & 1) != 0) {
        *(char **)(lVar6 + 0x10) = "bold";
      }
      if ((param_2 & 2) != 0) {
        *(undefined **)(lVar6 + 0x28) = &DAT_001bc141;
        *(undefined **)(lVar6 + 0x20) = &DAT_001bc141;
        *(int *)(lVar6 + 0x48) = *(int *)(lVar6 + 0x48) << 1;
      }
      uVar2 = FUN_0017bf4a(lVar6);
      FUN_00127101(lVar6);
    }
  }
  uVar3 = XLoadQueryFont(uVar3,uVar2);
  *(undefined8 *)(param_1 + 0x28 + (long)(int)param_2 * 0x50) = uVar3;
  *(undefined4 *)(param_1 + 0x30 + (long)(int)param_2 * 0x50) = 1;
  FUN_00127101(uVar2);
  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}

