
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

unifont * x11font_create(GtkWidget *widget,char *name,int wide,int bold,int shadowoffset,
                        int shadowalways)

{
  unifont *puVar1;
  undefined4 uVar2;
  XFontStruct *xfs;
  undefined4 uVar3;
  undefined4 uVar4;
  int iVar5;
  unifont *puVar6;
  int iVar7;
  unifont *puVar8;
  char *pcVar9;
  int iVar10;
  uint uVar11;
  int in_GS_OFFSET;
  int local_48;
  int local_44;
  XChar2b space;
  ulong registry_ret;
  ulong encoding_ret;
  ulong spacing_ret;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x4a7a9;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  uVar2 = gdk_display_get_default();
  uVar2 = gdk_x11_display_get_xdisplay(uVar2);
  xfs = (XFontStruct *)XLoadQueryFont(uVar2,name);
  if (xfs == (XFontStruct *)0x0) {
    puVar6 = (unifont *)0x0;
    goto LAB_0004a952;
  }
  uVar3 = XInternAtom(uVar2,"CHARSET_REGISTRY",0);
  uVar4 = XInternAtom(uVar2,"CHARSET_ENCODING",0);
  iVar5 = XGetFontProperty(xfs,uVar3,&registry_ret);
  if (iVar5 == 0) {
LAB_0004a82c:
    uVar3 = XInternAtom(uVar2,"SPACING",0);
    iVar5 = XGetFontProperty(xfs,uVar3,&spacing_ret);
    if (iVar5 != 0) {
      local_48 = 0;
      iVar5 = 0;
      local_44 = 0;
LAB_0004a982:
      uVar11 = 1;
      pcVar9 = (char *)XGetAtomName(uVar2,spacing_ret);
      if (pcVar9 != (char *)0x0) {
        pcVar9 = strchr("CcMm",(int)*pcVar9);
        uVar11 = (uint)(pcVar9 == (char *)0x0);
      }
      goto LAB_0004a9bb;
    }
    uVar11 = 1;
    puVar6 = (unifont *)safemalloc(1,0x10c);
    local_44 = 0;
    puVar6->vt = &x11font_vtable;
    iVar5 = 0;
LAB_0004a883:
    iVar7 = XTextWidth(xfs,"0",1);
    local_48 = 0;
  }
  else {
    iVar5 = XGetFontProperty(xfs,uVar4,&encoding_ret);
    if (iVar5 == 0) goto LAB_0004a82c;
    pcVar9 = (char *)XGetAtomName(uVar2,registry_ret);
    iVar5 = XGetAtomName(uVar2,encoding_ret);
    if ((pcVar9 == (char *)0x0) || (iVar5 == 0)) goto LAB_0004a82c;
    pcVar9 = dupcat(pcVar9,"-",iVar5,0);
    iVar5 = charset_from_xenc(pcVar9);
    iVar7 = strcasecmp(pcVar9,"iso10646-1");
    if (iVar7 == 0) {
      local_48 = 1;
      iVar5 = 0x37;
      local_44 = 0x37;
    }
    else if (iVar5 == 1) {
      iVar7 = 1;
      do {
        iVar10 = x11_font_has_glyph(xfs,'\0',(uchar)iVar7);
        if (iVar10 == 0) {
          local_44 = 1;
          local_48 = 0;
          goto LAB_0004aadb;
        }
        iVar7 = iVar7 + 1;
      } while (iVar7 != 0x20);
      local_44 = 2;
      local_48 = 0;
    }
    else {
      local_48 = 0;
      local_44 = iVar5;
    }
LAB_0004aadb:
    safefree(pcVar9);
    uVar3 = XInternAtom(uVar2,"SPACING",0);
    iVar7 = XGetFontProperty(xfs,uVar3,&spacing_ret);
    if (iVar7 != 0) goto LAB_0004a982;
    uVar11 = 1;
LAB_0004a9bb:
    puVar6 = (unifont *)safemalloc(1,0x10c);
    puVar6->vt = &x11font_vtable;
    if (local_48 == 0) goto LAB_0004a883;
    space.byte1 = '\0';
    space.byte2 = '0';
    iVar7 = XTextWidth16(xfs,&space,1);
  }
  iVar10 = xfs->descent;
  puVar6->width = iVar7;
  iVar7 = xfs->ascent;
  puVar6->public_charset = iVar5;
  puVar6->want_fallback = 1;
  puVar6->ascent = iVar7;
  puVar6->height = iVar7 + iVar10;
  puVar6->preferred_drawtype = 0;
  puVar6[7].want_fallback = local_44;
  puVar6[7].descent = uVar11;
  puVar6[7].ascent = local_48;
  puVar6->descent = iVar10;
  puVar6[7].preferred_drawtype = wide;
  puVar6[8].vt = (unifont_vtable *)bold;
  puVar6[8].public_charset = shadowoffset;
  puVar6[8].width = shadowalways;
  puVar8 = puVar6 + 1;
  do {
    puVar8->vt = (unifont_vtable *)0x0;
    puVar1 = puVar8 + 1;
    puVar8->public_charset = 0;
    puVar8->width = 0;
    puVar8->height = 0;
    puVar8->ascent = 0;
    puVar8->descent = 0;
    puVar8 = (unifont *)&puVar1->descent;
  } while (&puVar6[7].ascent != &puVar1->descent);
  puVar6[1].vt = (unifont_vtable *)xfs;
  puVar6[1].public_charset = 1;
LAB_0004a952:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return puVar6;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



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

undefined4 *
FUN_0004a7a0(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
            undefined4 param_5,undefined4 param_6)

{
  undefined4 uVar1;
  int iVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  int iVar5;
  undefined4 *puVar6;
  undefined4 *puVar7;
  undefined4 *puVar8;
  char *pcVar9;
  int iVar10;
  int iVar11;
  uint uVar12;
  int in_GS_OFFSET;
  int local_48;
  int local_44;
  undefined2 local_2e;
  undefined4 local_2c;
  undefined4 local_28;
  undefined4 local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x4a7a9;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  uVar1 = gdk_display_get_default();
  uVar1 = gdk_x11_display_get_xdisplay(uVar1);
  iVar2 = XLoadQueryFont(uVar1,param_2);
  if (iVar2 == 0) {
    puVar6 = (undefined4 *)0x0;
    goto LAB_0004a952;
  }
  uVar3 = XInternAtom(uVar1,"CHARSET_REGISTRY",0);
  uVar4 = XInternAtom(uVar1,"CHARSET_ENCODING",0);
  iVar5 = XGetFontProperty(iVar2,uVar3,&local_2c);
  if (iVar5 == 0) {
LAB_0004a82c:
    uVar3 = XInternAtom(uVar1,"SPACING",0);
    iVar5 = XGetFontProperty(iVar2,uVar3,&local_24);
    if (iVar5 != 0) {
      local_48 = 0;
      iVar5 = 0;
      local_44 = 0;
LAB_0004a982:
      uVar12 = 1;
      pcVar9 = (char *)XGetAtomName(uVar1,local_24);
      if (pcVar9 != (char *)0x0) {
        pcVar9 = strchr("CcMm",(int)*pcVar9);
        uVar12 = (uint)(pcVar9 == (char *)0x0);
      }
      goto LAB_0004a9bb;
    }
    uVar12 = 1;
    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);
    local_44 = 0;
    *puVar6 = &PTR_FUN_000a0dc0;
    iVar5 = 0;
LAB_0004a883:
    uVar1 = XTextWidth(iVar2,"0",1);
    local_48 = 0;
  }
  else {
    iVar5 = XGetFontProperty(iVar2,uVar4,&local_28);
    if (iVar5 == 0) goto LAB_0004a82c;
    iVar5 = XGetAtomName(uVar1,local_2c);
    iVar10 = XGetAtomName(uVar1,local_28);
    if ((iVar5 == 0) || (iVar10 == 0)) goto LAB_0004a82c;
    pcVar9 = (char *)FUN_0002bf70(iVar5,"-",iVar10,0);
    iVar5 = FUN_0001b250(pcVar9);
    iVar10 = strcasecmp(pcVar9,"iso10646-1");
    if (iVar10 == 0) {
      local_48 = 1;
      iVar5 = 0x37;
      local_44 = 0x37;
    }
    else if (iVar5 == 1) {
      iVar10 = 1;
      do {
        iVar11 = FUN_00048d90();
        if (iVar11 == 0) {
          local_44 = 1;
          local_48 = 0;
          goto LAB_0004aadb;
        }
        iVar10 = iVar10 + 1;
      } while (iVar10 != 0x20);
      local_44 = 2;
      local_48 = 0;
    }
    else {
      local_48 = 0;
      local_44 = iVar5;
    }
LAB_0004aadb:
    FUN_0002c6a0(pcVar9);
    uVar3 = XInternAtom(uVar1,"SPACING",0);
    iVar10 = XGetFontProperty(iVar2,uVar3,&local_24);
    if (iVar10 != 0) goto LAB_0004a982;
    uVar12 = 1;
LAB_0004a9bb:
    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);
    *puVar6 = &PTR_FUN_000a0dc0;
    if (local_48 == 0) goto LAB_0004a883;
    local_2e = 0x3000;
    uVar1 = XTextWidth16(iVar2,&local_2e,1);
  }
  iVar10 = *(int *)(iVar2 + 0x4c);
  puVar6[2] = uVar1;
  iVar11 = *(int *)(iVar2 + 0x48);
  puVar6[1] = iVar5;
  puVar6[6] = 1;
  puVar6[4] = iVar11;
  puVar6[3] = iVar11 + iVar10;
  puVar6[7] = 0;
  puVar6[0x3e] = local_44;
  puVar6[0x3d] = uVar12;
  puVar6[0x3c] = local_48;
  puVar6[5] = iVar10;
  puVar6[0x3f] = param_3;
  puVar6[0x40] = param_4;
  puVar6[0x41] = param_5;
  puVar6[0x42] = param_6;
  puVar7 = puVar6 + 8;
  do {
    *puVar7 = 0;
    puVar8 = puVar7 + 0xd;
    puVar7[1] = 0;
    puVar7[2] = 0;
    puVar7[3] = 0;
    puVar7[4] = 0;
    puVar7[5] = 0;
    puVar7 = puVar8;
  } while (puVar6 + 0x3c != puVar8);
  puVar6[8] = iVar2;
  puVar6[9] = 1;
LAB_0004a952:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return puVar6;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0005c430();
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x0001a360
ADD EBX,0x5703b
SUB ESP,0x3c
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x2c],EAX
XOR EAX,EAX
MOV ESI,dword ptr [ESP + 0x54]
CALL 0x00018de0
SUB ESP,0xc
PUSH EAX
CALL 0x00019e70
POP EDX
POP ECX
PUSH ESI
PUSH EAX
MOV EDI,EAX
CALL 0x00019c10
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004ab20
SUB ESP,0x4
MOV ESI,EAX
LEA EAX,[EBX + 0xfffd7573]
PUSH 0x0
PUSH EAX
PUSH EDI
CALL 0x00018b10
ADD ESP,0xc
MOV EBP,EAX
LEA EAX,[EBX + 0xfffd7584]
PUSH 0x0
PUSH EAX
PUSH EDI
CALL 0x00018b10
MOV dword ptr [ESP + 0x14],EAX
ADD ESP,0xc
LEA EAX,[ESP + 0x24]
PUSH EAX
PUSH EBP
PUSH ESI
CALL 0x00018210
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004aa10
SUB ESP,0x4
LEA EAX,[EBX + 0xfffd75a0]
PUSH 0x0
PUSH EAX
PUSH EDI
CALL 0x00018b10
ADD ESP,0xc
LEA EDX,[ESP + 0x2c]
PUSH EDX
PUSH EAX
PUSH ESI
CALL 0x00018210
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JNZ 0x0004a970
SUB ESP,0x8
MOV EDI,0x1
PUSH 0x10c
PUSH 0x1
CALL 0x0002be10
ADD ESP,0x10
MOV EDX,EAX
LEA EAX,[EBX + 0xfffff5dc]
MOV dword ptr [ESP + 0x8],0x0
MOV dword ptr [EDX],EAX
MOV dword ptr [ESP + 0xc],EDX
LEA EAX,[EBX + 0xfffd4ecb]
SUB ESP,0x4
PUSH 0x1
PUSH EAX
PUSH ESI
CALL 0x000181f0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x4],0x0
MOV ECX,dword ptr [ESI + 0x4c]
MOV dword ptr [EDX + 0x8],EAX
MOV EAX,dword ptr [ESI + 0x48]
MOV dword ptr [EDX + 0x4],EBP
MOV dword ptr [EDX + 0x18],0x1
MOV dword ptr [EDX + 0x10],EAX
ADD EAX,ECX
MOV dword ptr [EDX + 0xc],EAX
MOV EAX,dword ptr [ESP + 0x8]
MOV dword ptr [EDX + 0x1c],0x0
MOV dword ptr [EDX + 0xf8],EAX
MOV EAX,dword ptr [ESP + 0x4]
MOV dword ptr [EDX + 0xf4],EDI
MOV dword ptr [EDX + 0xf0],EAX
MOV EAX,dword ptr [ESP + 0x58]
MOV dword ptr [EDX + 0x14],ECX
LEA ECX,[EDX + 0xf0]
MOV dword ptr [EDX + 0xfc],EAX
MOV EAX,dword ptr [ESP + 0x5c]
MOV dword ptr [EDX + 0x100],EAX
MOV EAX,dword ptr [ESP + 0x60]
MOV dword ptr [EDX + 0x104],EAX
MOV EAX,dword ptr [ESP + 0x64]
MOV dword ptr [EDX + 0x108],EAX
LEA EAX,[EDX + 0x20]
MOV dword ptr [EAX],0x0
ADD EAX,0x34
MOV dword ptr [EAX + -0x30],0x0
MOV dword ptr [EAX + -0x2c],0x0
MOV dword ptr [EAX + -0x28],0x0
MOV dword ptr [EAX + -0x24],0x0
MOV dword ptr [EAX + -0x20],0x0
CMP ECX,EAX
JNZ 0x0004a918
MOV dword ptr [EDX + 0x20],ESI
MOV dword ptr [EDX + 0x24],0x1
MOV EDI,dword ptr [ESP + 0x2c]
XOR EDI,dword ptr GS:[0x14]
MOV EAX,EDX
JNZ 0x0004ab65
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV dword ptr [ESP + 0x4],0x0
XOR EBP,EBP
MOV dword ptr [ESP + 0x8],0x0
SUB ESP,0x8
PUSH dword ptr [ESP + 0x30]
PUSH EDI
MOV EDI,0x1
CALL 0x00019e40
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004a9bb
MOVSX EAX,byte ptr [EAX]
SUB ESP,0x8
PUSH EAX
LEA EAX,[EBX + 0xfffd756e]
PUSH EAX
CALL 0x00018f80
ADD ESP,0x10
TEST EAX,EAX
SETZ AL
MOVZX EAX,AL
MOV EDI,EAX
SUB ESP,0x8
PUSH 0x10c
PUSH 0x1
CALL 0x0002be10
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x4]
MOV EDX,EAX
LEA EAX,[EBX + 0xfffff5dc]
MOV dword ptr [EDX],EAX
TEST ECX,ECX
JZ 0x0004a883
MOV EAX,0x3000
MOV dword ptr [ESP + 0xc],EDX
SUB ESP,0x4
MOV word ptr [ESP + 0x22],AX
PUSH 0x1
LEA EAX,[ESP + 0x26]
PUSH EAX
PUSH ESI
CALL 0x000195c0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
JMP 0x0004a8a8
SUB ESP,0x4
LEA EAX,[ESP + 0x28]
PUSH EAX
PUSH dword ptr [ESP + 0xc]
PUSH ESI
CALL 0x00018210
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004a82c
SUB ESP,0x8
PUSH dword ptr [ESP + 0x28]
PUSH EDI
CALL 0x00019e40
POP ECX
MOV EBP,EAX
POP EAX
PUSH dword ptr [ESP + 0x2c]
PUSH EDI
CALL 0x00019e40
ADD ESP,0x10
TEST EBP,EBP
JZ 0x0004a82c
TEST EAX,EAX
JZ 0x0004a82c
PUSH 0x0
PUSH EAX
LEA EAX,[EBX + 0xfffce1fa]
PUSH EAX
PUSH EBP
CALL 0x0002bf70
MOV dword ptr [ESP + 0x1c],EAX
MOV dword ptr [ESP],EAX
CALL 0x0001b250
MOV EBP,EAX
POP EAX
LEA EAX,[EBX + 0xfffd7595]
POP EDX
PUSH EAX
PUSH dword ptr [ESP + 0x18]
CALL 0x00019540
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004ab27
CMP EBP,0x1
JNZ 0x0004ab3e
MOV EAX,0x1
MOV dword ptr [ESP + 0x4],EDI
MOV EDI,EAX
JMP 0x0004aabc
ADD EDI,0x1
CMP EDI,0x20
JZ 0x0004ab4c
XOR EDX,EDX
MOV ECX,EDI
MOV EAX,ESI
CALL 0x00048d90
TEST EAX,EAX
JNZ 0x0004aab0
MOV EDI,dword ptr [ESP + 0x4]
MOV dword ptr [ESP + 0x8],0x1
MOV dword ptr [ESP + 0x4],EAX
SUB ESP,0xc
PUSH dword ptr [ESP + 0x18]
CALL 0x0002c6a0
ADD ESP,0xc
LEA EAX,[EBX + 0xfffd75a0]
PUSH 0x0
PUSH EAX
PUSH EDI
CALL 0x00018b10
ADD ESP,0xc
LEA EDX,[ESP + 0x2c]
PUSH EDX
PUSH EAX
PUSH ESI
CALL 0x00018210
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004a982
MOV EDI,0x1
JMP 0x0004a9bb
XOR EDX,EDX
JMP 0x0004a952
MOV dword ptr [ESP + 0x4],0x1
MOV EBP,0x37
MOV dword ptr [ESP + 0x8],0x37
JMP 0x0004aadb
MOV dword ptr [ESP + 0x8],EBP
MOV dword ptr [ESP + 0x4],0x0
JMP 0x0004aadb
MOV EDI,dword ptr [ESP + 0x4]
MOV dword ptr [ESP + 0x8],0x2
MOV dword ptr [ESP + 0x4],0x0
JMP 0x0004aadb
CALL 0x0005c430
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 *\nFUN_0004a7a0(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  char *pcVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  int in_GS_OFFSET;\n  int local_48;\n  int local_44;\n  undefined2 local_2e;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4a7a9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar1 = gdk_display_get_default();\n  uVar1 = gdk_x11_display_get_xdisplay(uVar1);\n  iVar2 = XLoadQueryFont(uVar1,param_2);\n  if (iVar2 == 0) {\n    puVar6 = (undefined4 *)0x0;\n    goto LAB_0004a952;\n  }\n  uVar3 = XInternAtom(uVar1,"CHARSET_REGISTRY",0);\n  uVar4 = XInternAtom(uVar1,"CHARSET_ENCODING",0);\n  iVar5 = XGetFontProperty(iVar2,uVar3,&local_2c);\n  if (iVar5 == 0) {\nLAB_0004a82c:\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar5 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar5 != 0) {\n      local_48 = 0;\n      iVar5 = 0;\n      local_44 = 0;\nLAB_0004a982:\n      uVar12 = 1;\n      pcVar9 = (char *)XGetAtomName(uVar1,local_24);\n      if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar12 = (uint)(pcVar9 == (char *)0x0);\n      }\n      goto LAB_0004a9bb;\n    }\n    uVar12 = 1;\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    local_44 = 0;\n    *puVar6 = &PTR_FUN_000a0dc0;\n    iVar5 = 0;\nLAB_0004a883:\n    uVar1 = XTextWidth(iVar2,"0",1);\n    local_48 = 0;\n  }\n  else {\n    iVar5 = XGetFontProperty(iVar2,uVar4,&local_28);\n    if (iVar5 == 0) goto LAB_0004a82c;\n    iVar5 = XGetAtomName(uVar1,local_2c);\n    iVar10 = XGetAtomName(uVar1,local_28);\n    if ((iVar5 == 0) || (iVar10 == 0)) goto LAB_0004a82c;\n    pcVar9 = (char *)FUN_0002bf70(iVar5,"-",iVar10,0);\n    iVar5 = FUN_0001b250(pcVar9);\n    iVar10 = strcasecmp(pcVar9,"iso10646-1");\n    if (iVar10 == 0) {\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }\n    else if (iVar5 == 1) {\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }\nLAB_0004aadb:\n    FUN_0002c6a0(pcVar9);\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar10 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar10 != 0) goto LAB_0004a982;\n    uVar12 = 1;\nLAB_0004a9bb:\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    *puVar6 = &PTR_FUN_000a0dc0;\n    if (local_48 == 0) goto LAB_0004a883;\n    local_2e = 0x3000;\n    uVar1 = XTextWidth16(iVar2,&local_2e,1);\n  }\n  iVar10 = *(int *)(iVar2 + 0x4c);\n  puVar6[2] = uVar1;\n  iVar11 = *(int *)(iVar2 + 0x48);\n  puVar6[1] = iVar5;\n  puVar6[6] = 1;\n  puVar6[4] = iVar11;\n  puVar6[3] = iVar11 + iVar10;\n  puVar6[7] = 0;\n  puVar6[0x3e] = local_44;\n  puVar6[0x3d] = uVar12;\n  puVar6[0x3c] = local_48;\n  puVar6[5] = iVar10;\n  puVar6[0x3f] = param_3;\n  puVar6[0x40] = param_4;\n  puVar6[0x41] = param_5;\n  puVar6[0x42] = param_6;\n  puVar7 = puVar6 + 8;\n  do {\n    *puVar7 = 0;\n    puVar8 = puVar7 + 0xd;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar7[4] = 0;\n    puVar7[5] = 0;\n    puVar7 = puVar8;\n  } while (puVar6 + 0x3c != puVar8);\n  puVar6[8] = iVar2;\n  puVar6[9] = 1;\nLAB_0004a952:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0005c430();\n}\n\n" comment (function_definition "undefined4 *\nFUN_0004a7a0(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  char *pcVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  int in_GS_OFFSET;\n  int local_48;\n  int local_44;\n  undefined2 local_2e;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4a7a9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar1 = gdk_display_get_default();\n  uVar1 = gdk_x11_display_get_xdisplay(uVar1);\n  iVar2 = XLoadQueryFont(uVar1,param_2);\n  if (iVar2 == 0) {\n    puVar6 = (undefined4 *)0x0;\n    goto LAB_0004a952;\n  }\n  uVar3 = XInternAtom(uVar1,"CHARSET_REGISTRY",0);\n  uVar4 = XInternAtom(uVar1,"CHARSET_ENCODING",0);\n  iVar5 = XGetFontProperty(iVar2,uVar3,&local_2c);\n  if (iVar5 == 0) {\nLAB_0004a82c:\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar5 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar5 != 0) {\n      local_48 = 0;\n      iVar5 = 0;\n      local_44 = 0;\nLAB_0004a982:\n      uVar12 = 1;\n      pcVar9 = (char *)XGetAtomName(uVar1,local_24);\n      if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar12 = (uint)(pcVar9 == (char *)0x0);\n      }\n      goto LAB_0004a9bb;\n    }\n    uVar12 = 1;\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    local_44 = 0;\n    *puVar6 = &PTR_FUN_000a0dc0;\n    iVar5 = 0;\nLAB_0004a883:\n    uVar1 = XTextWidth(iVar2,"0",1);\n    local_48 = 0;\n  }\n  else {\n    iVar5 = XGetFontProperty(iVar2,uVar4,&local_28);\n    if (iVar5 == 0) goto LAB_0004a82c;\n    iVar5 = XGetAtomName(uVar1,local_2c);\n    iVar10 = XGetAtomName(uVar1,local_28);\n    if ((iVar5 == 0) || (iVar10 == 0)) goto LAB_0004a82c;\n    pcVar9 = (char *)FUN_0002bf70(iVar5,"-",iVar10,0);\n    iVar5 = FUN_0001b250(pcVar9);\n    iVar10 = strcasecmp(pcVar9,"iso10646-1");\n    if (iVar10 == 0) {\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }\n    else if (iVar5 == 1) {\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }\nLAB_0004aadb:\n    FUN_0002c6a0(pcVar9);\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar10 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar10 != 0) goto LAB_0004a982;\n    uVar12 = 1;\nLAB_0004a9bb:\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    *puVar6 = &PTR_FUN_000a0dc0;\n    if (local_48 == 0) goto LAB_0004a883;\n    local_2e = 0x3000;\n    uVar1 = XTextWidth16(iVar2,&local_2e,1);\n  }\n  iVar10 = *(int *)(iVar2 + 0x4c);\n  puVar6[2] = uVar1;\n  iVar11 = *(int *)(iVar2 + 0x48);\n  puVar6[1] = iVar5;\n  puVar6[6] = 1;\n  puVar6[4] = iVar11;\n  puVar6[3] = iVar11 + iVar10;\n  puVar6[7] = 0;\n  puVar6[0x3e] = local_44;\n  puVar6[0x3d] = uVar12;\n  puVar6[0x3c] = local_48;\n  puVar6[5] = iVar10;\n  puVar6[0x3f] = param_3;\n  puVar6[0x40] = param_4;\n  puVar6[0x41] = param_5;\n  puVar6[0x42] = param_6;\n  puVar7 = puVar6 + 8;\n  do {\n    *puVar7 = 0;\n    puVar8 = puVar7 + 0xd;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar7[4] = 0;\n    puVar7[5] = 0;\n    puVar7 = puVar8;\n  } while (puVar6 + 0x3c != puVar8);\n  puVar6[8] = iVar2;\n  puVar6[9] = 1;\nLAB_0004a952:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0005c430();\n}" type_identifier (pointer_declarator "*\nFUN_0004a7a0(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6)" * (function_declarator "FUN_0004a7a0(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) )))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  char *pcVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  int in_GS_OFFSET;\n  int local_48;\n  int local_44;\n  undefined2 local_2e;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4a7a9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar1 = gdk_display_get_default();\n  uVar1 = gdk_x11_display_get_xdisplay(uVar1);\n  iVar2 = XLoadQueryFont(uVar1,param_2);\n  if (iVar2 == 0) {\n    puVar6 = (undefined4 *)0x0;\n    goto LAB_0004a952;\n  }\n  uVar3 = XInternAtom(uVar1,"CHARSET_REGISTRY",0);\n  uVar4 = XInternAtom(uVar1,"CHARSET_ENCODING",0);\n  iVar5 = XGetFontProperty(iVar2,uVar3,&local_2c);\n  if (iVar5 == 0) {\nLAB_0004a82c:\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar5 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar5 != 0) {\n      local_48 = 0;\n      iVar5 = 0;\n      local_44 = 0;\nLAB_0004a982:\n      uVar12 = 1;\n      pcVar9 = (char *)XGetAtomName(uVar1,local_24);\n      if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar12 = (uint)(pcVar9 == (char *)0x0);\n      }\n      goto LAB_0004a9bb;\n    }\n    uVar12 = 1;\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    local_44 = 0;\n    *puVar6 = &PTR_FUN_000a0dc0;\n    iVar5 = 0;\nLAB_0004a883:\n    uVar1 = XTextWidth(iVar2,"0",1);\n    local_48 = 0;\n  }\n  else {\n    iVar5 = XGetFontProperty(iVar2,uVar4,&local_28);\n    if (iVar5 == 0) goto LAB_0004a82c;\n    iVar5 = XGetAtomName(uVar1,local_2c);\n    iVar10 = XGetAtomName(uVar1,local_28);\n    if ((iVar5 == 0) || (iVar10 == 0)) goto LAB_0004a82c;\n    pcVar9 = (char *)FUN_0002bf70(iVar5,"-",iVar10,0);\n    iVar5 = FUN_0001b250(pcVar9);\n    iVar10 = strcasecmp(pcVar9,"iso10646-1");\n    if (iVar10 == 0) {\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }\n    else if (iVar5 == 1) {\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }\nLAB_0004aadb:\n    FUN_0002c6a0(pcVar9);\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar10 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar10 != 0) goto LAB_0004a982;\n    uVar12 = 1;\nLAB_0004a9bb:\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    *puVar6 = &PTR_FUN_000a0dc0;\n    if (local_48 == 0) goto LAB_0004a883;\n    local_2e = 0x3000;\n    uVar1 = XTextWidth16(iVar2,&local_2e,1);\n  }\n  iVar10 = *(int *)(iVar2 + 0x4c);\n  puVar6[2] = uVar1;\n  iVar11 = *(int *)(iVar2 + 0x48);\n  puVar6[1] = iVar5;\n  puVar6[6] = 1;\n  puVar6[4] = iVar11;\n  puVar6[3] = iVar11 + iVar10;\n  puVar6[7] = 0;\n  puVar6[0x3e] = local_44;\n  puVar6[0x3d] = uVar12;\n  puVar6[0x3c] = local_48;\n  puVar6[5] = iVar10;\n  puVar6[0x3f] = param_3;\n  puVar6[0x40] = param_4;\n  puVar6[0x41] = param_5;\n  puVar6[0x42] = param_6;\n  puVar7 = puVar6 + 8;\n  do {\n    *puVar7 = 0;\n    puVar8 = puVar7 + 0xd;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar7[4] = 0;\n    puVar7[5] = 0;\n    puVar7 = puVar8;\n  } while (puVar6 + 0x3c != puVar8);\n  puVar6[8] = iVar2;\n  puVar6[9] = 1;\nLAB_0004a952:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0005c430();\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "undefined2 local_2e;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x4a7a9;" (assignment_expression "uStack_14 = 0x4a7a9" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = gdk_display_get_default();" (assignment_expression "uVar1 = gdk_display_get_default()" identifier = (call_expression "gdk_display_get_default()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = gdk_x11_display_get_xdisplay(uVar1);" (assignment_expression "uVar1 = gdk_x11_display_get_xdisplay(uVar1)" identifier = (call_expression "gdk_x11_display_get_xdisplay(uVar1)" identifier (argument_list "(uVar1)" ( identifier )))) ;) (expression_statement "iVar2 = XLoadQueryFont(uVar1,param_2);" (assignment_expression "iVar2 = XLoadQueryFont(uVar1,param_2)" identifier = (call_expression "XLoadQueryFont(uVar1,param_2)" identifier (argument_list "(uVar1,param_2)" ( identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n    puVar6 = (undefined4 *)0x0;\n    goto LAB_0004a952;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    puVar6 = (undefined4 *)0x0;\n    goto LAB_0004a952;\n  }" { (expression_statement "puVar6 = (undefined4 *)0x0;" (assignment_expression "puVar6 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004a952;" goto statement_identifier ;) })) (expression_statement "uVar3 = XInternAtom(uVar1,"CHARSET_REGISTRY",0);" (assignment_expression "uVar3 = XInternAtom(uVar1,"CHARSET_REGISTRY",0)" identifier = (call_expression "XInternAtom(uVar1,"CHARSET_REGISTRY",0)" identifier (argument_list "(uVar1,"CHARSET_REGISTRY",0)" ( identifier , (string_literal ""CHARSET_REGISTRY"" " string_content ") , number_literal )))) ;) (expression_statement "uVar4 = XInternAtom(uVar1,"CHARSET_ENCODING",0);" (assignment_expression "uVar4 = XInternAtom(uVar1,"CHARSET_ENCODING",0)" identifier = (call_expression "XInternAtom(uVar1,"CHARSET_ENCODING",0)" identifier (argument_list "(uVar1,"CHARSET_ENCODING",0)" ( identifier , (string_literal ""CHARSET_ENCODING"" " string_content ") , number_literal )))) ;) (expression_statement "iVar5 = XGetFontProperty(iVar2,uVar3,&local_2c);" (assignment_expression "iVar5 = XGetFontProperty(iVar2,uVar3,&local_2c)" identifier = (call_expression "XGetFontProperty(iVar2,uVar3,&local_2c)" identifier (argument_list "(iVar2,uVar3,&local_2c)" ( identifier , identifier , (pointer_expression "&local_2c" & identifier) )))) ;) (if_statement "if (iVar5 == 0) {\nLAB_0004a82c:\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar5 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar5 != 0) {\n      local_48 = 0;\n      iVar5 = 0;\n      local_44 = 0;\nLAB_0004a982:\n      uVar12 = 1;\n      pcVar9 = (char *)XGetAtomName(uVar1,local_24);\n      if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar12 = (uint)(pcVar9 == (char *)0x0);\n      }\n      goto LAB_0004a9bb;\n    }\n    uVar12 = 1;\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    local_44 = 0;\n    *puVar6 = &PTR_FUN_000a0dc0;\n    iVar5 = 0;\nLAB_0004a883:\n    uVar1 = XTextWidth(iVar2,"0",1);\n    local_48 = 0;\n  }\n  else {\n    iVar5 = XGetFontProperty(iVar2,uVar4,&local_28);\n    if (iVar5 == 0) goto LAB_0004a82c;\n    iVar5 = XGetAtomName(uVar1,local_2c);\n    iVar10 = XGetAtomName(uVar1,local_28);\n    if ((iVar5 == 0) || (iVar10 == 0)) goto LAB_0004a82c;\n    pcVar9 = (char *)FUN_0002bf70(iVar5,"-",iVar10,0);\n    iVar5 = FUN_0001b250(pcVar9);\n    iVar10 = strcasecmp(pcVar9,"iso10646-1");\n    if (iVar10 == 0) {\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }\n    else if (iVar5 == 1) {\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }\nLAB_0004aadb:\n    FUN_0002c6a0(pcVar9);\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar10 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar10 != 0) goto LAB_0004a982;\n    uVar12 = 1;\nLAB_0004a9bb:\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    *puVar6 = &PTR_FUN_000a0dc0;\n    if (local_48 == 0) goto LAB_0004a883;\n    local_2e = 0x3000;\n    uVar1 = XTextWidth16(iVar2,&local_2e,1);\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0004a82c:\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar5 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar5 != 0) {\n      local_48 = 0;\n      iVar5 = 0;\n      local_44 = 0;\nLAB_0004a982:\n      uVar12 = 1;\n      pcVar9 = (char *)XGetAtomName(uVar1,local_24);\n      if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar12 = (uint)(pcVar9 == (char *)0x0);\n      }\n      goto LAB_0004a9bb;\n    }\n    uVar12 = 1;\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    local_44 = 0;\n    *puVar6 = &PTR_FUN_000a0dc0;\n    iVar5 = 0;\nLAB_0004a883:\n    uVar1 = XTextWidth(iVar2,"0",1);\n    local_48 = 0;\n  }" { (labeled_statement "LAB_0004a82c:\n    uVar3 = XInternAtom(uVar1,"SPACING",0);" statement_identifier : (expression_statement "uVar3 = XInternAtom(uVar1,"SPACING",0);" (assignment_expression "uVar3 = XInternAtom(uVar1,"SPACING",0)" identifier = (call_expression "XInternAtom(uVar1,"SPACING",0)" identifier (argument_list "(uVar1,"SPACING",0)" ( identifier , (string_literal ""SPACING"" " string_content ") , number_literal )))) ;)) (expression_statement "iVar5 = XGetFontProperty(iVar2,uVar3,&local_24);" (assignment_expression "iVar5 = XGetFontProperty(iVar2,uVar3,&local_24)" identifier = (call_expression "XGetFontProperty(iVar2,uVar3,&local_24)" identifier (argument_list "(iVar2,uVar3,&local_24)" ( identifier , identifier , (pointer_expression "&local_24" & identifier) )))) ;) (if_statement "if (iVar5 != 0) {\n      local_48 = 0;\n      iVar5 = 0;\n      local_44 = 0;\nLAB_0004a982:\n      uVar12 = 1;\n      pcVar9 = (char *)XGetAtomName(uVar1,local_24);\n      if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar12 = (uint)(pcVar9 == (char *)0x0);\n      }\n      goto LAB_0004a9bb;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      local_48 = 0;\n      iVar5 = 0;\n      local_44 = 0;\nLAB_0004a982:\n      uVar12 = 1;\n      pcVar9 = (char *)XGetAtomName(uVar1,local_24);\n      if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar12 = (uint)(pcVar9 == (char *)0x0);\n      }\n      goto LAB_0004a9bb;\n    }" { (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0004a982:\n      uVar12 = 1;" statement_identifier : (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" identifier = number_literal) ;)) (expression_statement "pcVar9 = (char *)XGetAtomName(uVar1,local_24);" (assignment_expression "pcVar9 = (char *)XGetAtomName(uVar1,local_24)" identifier = (cast_expression "(char *)XGetAtomName(uVar1,local_24)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "XGetAtomName(uVar1,local_24)" identifier (argument_list "(uVar1,local_24)" ( identifier , identifier ))))) ;) (if_statement "if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar12 = (uint)(pcVar9 == (char *)0x0);\n      }" if (parenthesized_expression "(pcVar9 != (char *)0x0)" ( (binary_expression "pcVar9 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar12 = (uint)(pcVar9 == (char *)0x0);\n      }" { (expression_statement "pcVar9 = strchr("CcMm",(int)*pcVar9);" (assignment_expression "pcVar9 = strchr("CcMm",(int)*pcVar9)" identifier = (call_expression "strchr("CcMm",(int)*pcVar9)" identifier (argument_list "("CcMm",(int)*pcVar9)" ( (string_literal ""CcMm"" " string_content ") , (cast_expression "(int)*pcVar9" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar9" * identifier)) )))) ;) (expression_statement "uVar12 = (uint)(pcVar9 == (char *)0x0);" (assignment_expression "uVar12 = (uint)(pcVar9 == (char *)0x0)" identifier = (call_expression "(uint)(pcVar9 == (char *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar9 == (char *)0x0)" ( (binary_expression "pcVar9 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ;) })) (goto_statement "goto LAB_0004a9bb;" goto statement_identifier ;) })) (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" identifier = number_literal) ;) (expression_statement "puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);" (assignment_expression "puVar6 = (undefined4 *)FUN_0002be10(1,0x10c)" identifier = (cast_expression "(undefined4 *)FUN_0002be10(1,0x10c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002be10(1,0x10c)" identifier (argument_list "(1,0x10c)" ( number_literal , number_literal ))))) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "*puVar6 = &PTR_FUN_000a0dc0;" (assignment_expression "*puVar6 = &PTR_FUN_000a0dc0" (pointer_expression "*puVar6" * identifier) = (pointer_expression "&PTR_FUN_000a0dc0" & identifier)) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0004a883:\n    uVar1 = XTextWidth(iVar2,"0",1);" statement_identifier : (expression_statement "uVar1 = XTextWidth(iVar2,"0",1);" (assignment_expression "uVar1 = XTextWidth(iVar2,"0",1)" identifier = (call_expression "XTextWidth(iVar2,"0",1)" identifier (argument_list "(iVar2,"0",1)" ( identifier , (string_literal ""0"" " string_content ") , number_literal )))) ;)) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    iVar5 = XGetFontProperty(iVar2,uVar4,&local_28);\n    if (iVar5 == 0) goto LAB_0004a82c;\n    iVar5 = XGetAtomName(uVar1,local_2c);\n    iVar10 = XGetAtomName(uVar1,local_28);\n    if ((iVar5 == 0) || (iVar10 == 0)) goto LAB_0004a82c;\n    pcVar9 = (char *)FUN_0002bf70(iVar5,"-",iVar10,0);\n    iVar5 = FUN_0001b250(pcVar9);\n    iVar10 = strcasecmp(pcVar9,"iso10646-1");\n    if (iVar10 == 0) {\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }\n    else if (iVar5 == 1) {\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }\nLAB_0004aadb:\n    FUN_0002c6a0(pcVar9);\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar10 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar10 != 0) goto LAB_0004a982;\n    uVar12 = 1;\nLAB_0004a9bb:\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    *puVar6 = &PTR_FUN_000a0dc0;\n    if (local_48 == 0) goto LAB_0004a883;\n    local_2e = 0x3000;\n    uVar1 = XTextWidth16(iVar2,&local_2e,1);\n  }" else (compound_statement "{\n    iVar5 = XGetFontProperty(iVar2,uVar4,&local_28);\n    if (iVar5 == 0) goto LAB_0004a82c;\n    iVar5 = XGetAtomName(uVar1,local_2c);\n    iVar10 = XGetAtomName(uVar1,local_28);\n    if ((iVar5 == 0) || (iVar10 == 0)) goto LAB_0004a82c;\n    pcVar9 = (char *)FUN_0002bf70(iVar5,"-",iVar10,0);\n    iVar5 = FUN_0001b250(pcVar9);\n    iVar10 = strcasecmp(pcVar9,"iso10646-1");\n    if (iVar10 == 0) {\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }\n    else if (iVar5 == 1) {\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }\nLAB_0004aadb:\n    FUN_0002c6a0(pcVar9);\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar10 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar10 != 0) goto LAB_0004a982;\n    uVar12 = 1;\nLAB_0004a9bb:\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    *puVar6 = &PTR_FUN_000a0dc0;\n    if (local_48 == 0) goto LAB_0004a883;\n    local_2e = 0x3000;\n    uVar1 = XTextWidth16(iVar2,&local_2e,1);\n  }" { (expression_statement "iVar5 = XGetFontProperty(iVar2,uVar4,&local_28);" (assignment_expression "iVar5 = XGetFontProperty(iVar2,uVar4,&local_28)" identifier = (call_expression "XGetFontProperty(iVar2,uVar4,&local_28)" identifier (argument_list "(iVar2,uVar4,&local_28)" ( identifier , identifier , (pointer_expression "&local_28" & identifier) )))) ;) (if_statement "if (iVar5 == 0) goto LAB_0004a82c;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004a82c;" goto statement_identifier ;)) (expression_statement "iVar5 = XGetAtomName(uVar1,local_2c);" (assignment_expression "iVar5 = XGetAtomName(uVar1,local_2c)" identifier = (call_expression "XGetAtomName(uVar1,local_2c)" identifier (argument_list "(uVar1,local_2c)" ( identifier , identifier )))) ;) (expression_statement "iVar10 = XGetAtomName(uVar1,local_28);" (assignment_expression "iVar10 = XGetAtomName(uVar1,local_28)" identifier = (call_expression "XGetAtomName(uVar1,local_28)" identifier (argument_list "(uVar1,local_28)" ( identifier , identifier )))) ;) (if_statement "if ((iVar5 == 0) || (iVar10 == 0)) goto LAB_0004a82c;" if (parenthesized_expression "((iVar5 == 0) || (iVar10 == 0))" ( (binary_expression "(iVar5 == 0) || (iVar10 == 0)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_0004a82c;" goto statement_identifier ;)) (expression_statement "pcVar9 = (char *)FUN_0002bf70(iVar5,"-",iVar10,0);" (assignment_expression "pcVar9 = (char *)FUN_0002bf70(iVar5,"-",iVar10,0)" identifier = (cast_expression "(char *)FUN_0002bf70(iVar5,"-",iVar10,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002bf70(iVar5,"-",iVar10,0)" identifier (argument_list "(iVar5,"-",iVar10,0)" ( identifier , (string_literal ""-"" " string_content ") , identifier , number_literal ))))) ;) (expression_statement "iVar5 = FUN_0001b250(pcVar9);" (assignment_expression "iVar5 = FUN_0001b250(pcVar9)" identifier = (call_expression "FUN_0001b250(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier )))) ;) (expression_statement "iVar10 = strcasecmp(pcVar9,"iso10646-1");" (assignment_expression "iVar10 = strcasecmp(pcVar9,"iso10646-1")" identifier = (call_expression "strcasecmp(pcVar9,"iso10646-1")" identifier (argument_list "(pcVar9,"iso10646-1")" ( identifier , (string_literal ""iso10646-1"" " string_content ") )))) ;) (if_statement "if (iVar10 == 0) {\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }\n    else if (iVar5 == 1) {\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }" { (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = 0x37;" (assignment_expression "iVar5 = 0x37" identifier = number_literal) ;) (expression_statement "local_44 = 0x37;" (assignment_expression "local_44 = 0x37" identifier = number_literal) ;) }) (else_clause "else if (iVar5 == 1) {\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }" else (if_statement "if (iVar5 == 1) {\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }" if (parenthesized_expression "(iVar5 == 1)" ( (binary_expression "iVar5 == 1" identifier == number_literal) )) (compound_statement "{\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }" { (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) (do_statement "do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);" do (compound_statement "{\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      }" { (expression_statement "iVar11 = FUN_00048d90();" (assignment_expression "iVar11 = FUN_00048d90()" identifier = (call_expression "FUN_00048d90()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }" { (expression_statement "local_44 = 1;" (assignment_expression "local_44 = 1" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0004aadb;" goto statement_identifier ;) })) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar10 != 0x20)" ( (binary_expression "iVar10 != 0x20" identifier != number_literal) )) ;) (expression_statement "local_44 = 2;" (assignment_expression "local_44 = 2" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }" else (compound_statement "{\n      local_48 = 0;\n      local_44 = iVar5;\n    }" { (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_44 = iVar5;" (assignment_expression "local_44 = iVar5" identifier = identifier) ;) }))))) (labeled_statement "LAB_0004aadb:\n    FUN_0002c6a0(pcVar9);" statement_identifier : (expression_statement "FUN_0002c6a0(pcVar9);" (call_expression "FUN_0002c6a0(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;)) (expression_statement "uVar3 = XInternAtom(uVar1,"SPACING",0);" (assignment_expression "uVar3 = XInternAtom(uVar1,"SPACING",0)" identifier = (call_expression "XInternAtom(uVar1,"SPACING",0)" identifier (argument_list "(uVar1,"SPACING",0)" ( identifier , (string_literal ""SPACING"" " string_content ") , number_literal )))) ;) (expression_statement "iVar10 = XGetFontProperty(iVar2,uVar3,&local_24);" (assignment_expression "iVar10 = XGetFontProperty(iVar2,uVar3,&local_24)" identifier = (call_expression "XGetFontProperty(iVar2,uVar3,&local_24)" identifier (argument_list "(iVar2,uVar3,&local_24)" ( identifier , identifier , (pointer_expression "&local_24" & identifier) )))) ;) (if_statement "if (iVar10 != 0) goto LAB_0004a982;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004a982;" goto statement_identifier ;)) (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0004a9bb:\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);" statement_identifier : (expression_statement "puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);" (assignment_expression "puVar6 = (undefined4 *)FUN_0002be10(1,0x10c)" identifier = (cast_expression "(undefined4 *)FUN_0002be10(1,0x10c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002be10(1,0x10c)" identifier (argument_list "(1,0x10c)" ( number_literal , number_literal ))))) ;)) (expression_statement "*puVar6 = &PTR_FUN_000a0dc0;" (assignment_expression "*puVar6 = &PTR_FUN_000a0dc0" (pointer_expression "*puVar6" * identifier) = (pointer_expression "&PTR_FUN_000a0dc0" & identifier)) ;) (if_statement "if (local_48 == 0) goto LAB_0004a883;" if (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004a883;" goto statement_identifier ;)) (expression_statement "local_2e = 0x3000;" (assignment_expression "local_2e = 0x3000" identifier = number_literal) ;) (expression_statement "uVar1 = XTextWidth16(iVar2,&local_2e,1);" (assignment_expression "uVar1 = XTextWidth16(iVar2,&local_2e,1)" identifier = (call_expression "XTextWidth16(iVar2,&local_2e,1)" identifier (argument_list "(iVar2,&local_2e,1)" ( identifier , (pointer_expression "&local_2e" & identifier) , number_literal )))) ;) }))) (expression_statement "iVar10 = *(int *)(iVar2 + 0x4c);" (assignment_expression "iVar10 = *(int *)(iVar2 + 0x4c)" identifier = (pointer_expression "*(int *)(iVar2 + 0x4c)" * (cast_expression "(int *)(iVar2 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x4c)" ( (binary_expression "iVar2 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "puVar6[2] = uVar1;" (assignment_expression "puVar6[2] = uVar1" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar11 = *(int *)(iVar2 + 0x48);" (assignment_expression "iVar11 = *(int *)(iVar2 + 0x48)" identifier = (pointer_expression "*(int *)(iVar2 + 0x48)" * (cast_expression "(int *)(iVar2 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x48)" ( (binary_expression "iVar2 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "puVar6[1] = iVar5;" (assignment_expression "puVar6[1] = iVar5" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[6] = 1;" (assignment_expression "puVar6[6] = 1" (subscript_expression "puVar6[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6[4] = iVar11;" (assignment_expression "puVar6[4] = iVar11" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[3] = iVar11 + iVar10;" (assignment_expression "puVar6[3] = iVar11 + iVar10" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = (binary_expression "iVar11 + iVar10" identifier + identifier)) ;) (expression_statement "puVar6[7] = 0;" (assignment_expression "puVar6[7] = 0" (subscript_expression "puVar6[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6[0x3e] = local_44;" (assignment_expression "puVar6[0x3e] = local_44" (subscript_expression "puVar6[0x3e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[0x3d] = uVar12;" (assignment_expression "puVar6[0x3d] = uVar12" (subscript_expression "puVar6[0x3d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[0x3c] = local_48;" (assignment_expression "puVar6[0x3c] = local_48" (subscript_expression "puVar6[0x3c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[5] = iVar10;" (assignment_expression "puVar6[5] = iVar10" (subscript_expression "puVar6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[0x3f] = param_3;" (assignment_expression "puVar6[0x3f] = param_3" (subscript_expression "puVar6[0x3f]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[0x40] = param_4;" (assignment_expression "puVar6[0x40] = param_4" (subscript_expression "puVar6[0x40]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[0x41] = param_5;" (assignment_expression "puVar6[0x41] = param_5" (subscript_expression "puVar6[0x41]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[0x42] = param_6;" (assignment_expression "puVar6[0x42] = param_6" (subscript_expression "puVar6[0x42]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7 = puVar6 + 8;" (assignment_expression "puVar7 = puVar6 + 8" identifier = (binary_expression "puVar6 + 8" identifier + number_literal)) ;) (do_statement "do {\n    *puVar7 = 0;\n    puVar8 = puVar7 + 0xd;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar7[4] = 0;\n    puVar7[5] = 0;\n    puVar7 = puVar8;\n  } while (puVar6 + 0x3c != puVar8);" do (compound_statement "{\n    *puVar7 = 0;\n    puVar8 = puVar7 + 0xd;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar7[4] = 0;\n    puVar7[5] = 0;\n    puVar7 = puVar8;\n  }" { (expression_statement "*puVar7 = 0;" (assignment_expression "*puVar7 = 0" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar8 = puVar7 + 0xd;" (assignment_expression "puVar8 = puVar7 + 0xd" identifier = (binary_expression "puVar7 + 0xd" identifier + number_literal)) ;) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[2] = 0;" (assignment_expression "puVar7[2] = 0" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[4] = 0;" (assignment_expression "puVar7[4] = 0" (subscript_expression "puVar7[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7 = puVar8;" (assignment_expression "puVar7 = puVar8" identifier = identifier) ;) }) while (parenthesized_expression "(puVar6 + 0x3c != puVar8)" ( (binary_expression "puVar6 + 0x3c != puVar8" (binary_expression "puVar6 + 0x3c" identifier + number_literal) != identifier) )) ;) (expression_statement "puVar6[8] = iVar2;" (assignment_expression "puVar6[8] = iVar2" (subscript_expression "puVar6[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[9] = 1;" (assignment_expression "puVar6[9] = 1" (subscript_expression "puVar6[9]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_0004a952:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return puVar6;\n  }" { (return_statement "return puVar6;" return identifier ;) }))) comment (expression_statement "FUN_0005c430();" (call_expression "FUN_0005c430()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nunifont * x11font_create(GtkWidget *widget,char *name,int wide,int bold,int shadowoffset,\n                        int shadowalways)\n\n{\n  unifont *puVar1;\n  undefined4 uVar2;\n  XFontStruct *xfs;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  unifont *puVar6;\n  int iVar7;\n  unifont *puVar8;\n  char *pcVar9;\n  int iVar10;\n  uint uVar11;\n  int in_GS_OFFSET;\n  int local_48;\n  int local_44;\n  XChar2b space;\n  ulong registry_ret;\n  ulong encoding_ret;\n  ulong spacing_ret;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4a7a9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar2 = gdk_display_get_default();\n  uVar2 = gdk_x11_display_get_xdisplay(uVar2);\n  xfs = (XFontStruct *)XLoadQueryFont(uVar2,name);\n  if (xfs == (XFontStruct *)0x0) {\n    puVar6 = (unifont *)0x0;\n    goto LAB_0004a952;\n  }\n  uVar3 = XInternAtom(uVar2,"CHARSET_REGISTRY",0);\n  uVar4 = XInternAtom(uVar2,"CHARSET_ENCODING",0);\n  iVar5 = XGetFontProperty(xfs,uVar3,&registry_ret);\n  if (iVar5 == 0) {\nLAB_0004a82c:\n    uVar3 = XInternAtom(uVar2,"SPACING",0);\n    iVar5 = XGetFontProperty(xfs,uVar3,&spacing_ret);\n    if (iVar5 != 0) {\n      local_48 = 0;\n      iVar5 = 0;\n      local_44 = 0;\nLAB_0004a982:\n      uVar11 = 1;\n      pcVar9 = (char *)XGetAtomName(uVar2,spacing_ret);\n      if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar11 = (uint)(pcVar9 == (char *)0x0);\n      }\n      goto LAB_0004a9bb;\n    }\n    uVar11 = 1;\n    puVar6 = (unifont *)safemalloc(1,0x10c);\n    local_44 = 0;\n    puVar6->vt = &x11font_vtable;\n    iVar5 = 0;\nLAB_0004a883:\n    iVar7 = XTextWidth(xfs,"0",1);\n    local_48 = 0;\n  }\n  else {\n    iVar5 = XGetFontProperty(xfs,uVar4,&encoding_ret);\n    if (iVar5 == 0) goto LAB_0004a82c;\n    pcVar9 = (char *)XGetAtomName(uVar2,registry_ret);\n    iVar5 = XGetAtomName(uVar2,encoding_ret);\n    if ((pcVar9 == (char *)0x0) || (iVar5 == 0)) goto LAB_0004a82c;\n    pcVar9 = dupcat(pcVar9,"-",iVar5,0);\n    iVar5 = charset_from_xenc(pcVar9);\n    iVar7 = strcasecmp(pcVar9,"iso10646-1");\n    if (iVar7 == 0) {\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }\n    else if (iVar5 == 1) {\n      iVar7 = 1;\n      do {\n        iVar10 = x11_font_has_glyph(xfs,'\0',(uchar)iVar7);\n        if (iVar10 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar7 = iVar7 + 1;\n      } while (iVar7 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }\nLAB_0004aadb:\n    safefree(pcVar9);\n    uVar3 = XInternAtom(uVar2,"SPACING",0);\n    iVar7 = XGetFontProperty(xfs,uVar3,&spacing_ret);\n    if (iVar7 != 0) goto LAB_0004a982;\n    uVar11 = 1;\nLAB_0004a9bb:\n    puVar6 = (unifont *)safemalloc(1,0x10c);\n    puVar6->vt = &x11font_vtable;\n    if (local_48 == 0) goto LAB_0004a883;\n    space.byte1 = '\0';\n    space.byte2 = '0';\n    iVar7 = XTextWidth16(xfs,&space,1);\n  }\n  iVar10 = xfs->descent;\n  puVar6->width = iVar7;\n  iVar7 = xfs->ascent;\n  puVar6->public_charset = iVar5;\n  puVar6->want_fallback = 1;\n  puVar6->ascent = iVar7;\n  puVar6->height = iVar7 + iVar10;\n  puVar6->preferred_drawtype = 0;\n  puVar6[7].want_fallback = local_44;\n  puVar6[7].descent = uVar11;\n  puVar6[7].ascent = local_48;\n  puVar6->descent = iVar10;\n  puVar6[7].preferred_drawtype = wide;\n  puVar6[8].vt = (unifont_vtable *)bold;\n  puVar6[8].public_charset = shadowoffset;\n  puVar6[8].width = shadowalways;\n  puVar8 = puVar6 + 1;\n  do {\n    puVar8->vt = (unifont_vtable *)0x0;\n    puVar1 = puVar8 + 1;\n    puVar8->public_charset = 0;\n    puVar8->width = 0;\n    puVar8->height = 0;\n    puVar8->ascent = 0;\n    puVar8->descent = 0;\n    puVar8 = (unifont *)&puVar1->descent;\n  } while (&puVar6[7].ascent != &puVar1->descent);\n  puVar6[1].vt = (unifont_vtable *)xfs;\n  puVar6[1].public_charset = 1;\nLAB_0004a952:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" comment comment comment (function_definition "unifont * x11font_create(GtkWidget *widget,char *name,int wide,int bold,int shadowoffset,\n                        int shadowalways)\n\n{\n  unifont *puVar1;\n  undefined4 uVar2;\n  XFontStruct *xfs;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  unifont *puVar6;\n  int iVar7;\n  unifont *puVar8;\n  char *pcVar9;\n  int iVar10;\n  uint uVar11;\n  int in_GS_OFFSET;\n  int local_48;\n  int local_44;\n  XChar2b space;\n  ulong registry_ret;\n  ulong encoding_ret;\n  ulong spacing_ret;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4a7a9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar2 = gdk_display_get_default();\n  uVar2 = gdk_x11_display_get_xdisplay(uVar2);\n  xfs = (XFontStruct *)XLoadQueryFont(uVar2,name);\n  if (xfs == (XFontStruct *)0x0) {\n    puVar6 = (unifont *)0x0;\n    goto LAB_0004a952;\n  }\n  uVar3 = XInternAtom(uVar2,"CHARSET_REGISTRY",0);\n  uVar4 = XInternAtom(uVar2,"CHARSET_ENCODING",0);\n  iVar5 = XGetFontProperty(xfs,uVar3,&registry_ret);\n  if (iVar5 == 0) {\nLAB_0004a82c:\n    uVar3 = XInternAtom(uVar2,"SPACING",0);\n    iVar5 = XGetFontProperty(xfs,uVar3,&spacing_ret);\n    if (iVar5 != 0) {\n      local_48 = 0;\n      iVar5 = 0;\n      local_44 = 0;\nLAB_0004a982:\n      uVar11 = 1;\n      pcVar9 = (char *)XGetAtomName(uVar2,spacing_ret);\n      if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar11 = (uint)(pcVar9 == (char *)0x0);\n      }\n      goto LAB_0004a9bb;\n    }\n    uVar11 = 1;\n    puVar6 = (unifont *)safemalloc(1,0x10c);\n    local_44 = 0;\n    puVar6->vt = &x11font_vtable;\n    iVar5 = 0;\nLAB_0004a883:\n    iVar7 = XTextWidth(xfs,"0",1);\n    local_48 = 0;\n  }\n  else {\n    iVar5 = XGetFontProperty(xfs,uVar4,&encoding_ret);\n    if (iVar5 == 0) goto LAB_0004a82c;\n    pcVar9 = (char *)XGetAtomName(uVar2,registry_ret);\n    iVar5 = XGetAtomName(uVar2,encoding_ret);\n    if ((pcVar9 == (char *)0x0) || (iVar5 == 0)) goto LAB_0004a82c;\n    pcVar9 = dupcat(pcVar9,"-",iVar5,0);\n    iVar5 = charset_from_xenc(pcVar9);\n    iVar7 = strcasecmp(pcVar9,"iso10646-1");\n    if (iVar7 == 0) {\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }\n    else if (iVar5 == 1) {\n      iVar7 = 1;\n      do {\n        iVar10 = x11_font_has_glyph(xfs,'\0',(uchar)iVar7);\n        if (iVar10 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar7 = iVar7 + 1;\n      } while (iVar7 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }\nLAB_0004aadb:\n    safefree(pcVar9);\n    uVar3 = XInternAtom(uVar2,"SPACING",0);\n    iVar7 = XGetFontProperty(xfs,uVar3,&spacing_ret);\n    if (iVar7 != 0) goto LAB_0004a982;\n    uVar11 = 1;\nLAB_0004a9bb:\n    puVar6 = (unifont *)safemalloc(1,0x10c);\n    puVar6->vt = &x11font_vtable;\n    if (local_48 == 0) goto LAB_0004a883;\n    space.byte1 = '\0';\n    space.byte2 = '0';\n    iVar7 = XTextWidth16(xfs,&space,1);\n  }\n  iVar10 = xfs->descent;\n  puVar6->width = iVar7;\n  iVar7 = xfs->ascent;\n  puVar6->public_charset = iVar5;\n  puVar6->want_fallback = 1;\n  puVar6->ascent = iVar7;\n  puVar6->height = iVar7 + iVar10;\n  puVar6->preferred_drawtype = 0;\n  puVar6[7].want_fallback = local_44;\n  puVar6[7].descent = uVar11;\n  puVar6[7].ascent = local_48;\n  puVar6->descent = iVar10;\n  puVar6[7].preferred_drawtype = wide;\n  puVar6[8].vt = (unifont_vtable *)bold;\n  puVar6[8].public_charset = shadowoffset;\n  puVar6[8].width = shadowalways;\n  puVar8 = puVar6 + 1;\n  do {\n    puVar8->vt = (unifont_vtable *)0x0;\n    puVar1 = puVar8 + 1;\n    puVar8->public_charset = 0;\n    puVar8->width = 0;\n    puVar8->height = 0;\n    puVar8->ascent = 0;\n    puVar8->descent = 0;\n    puVar8 = (unifont *)&puVar1->descent;\n  } while (&puVar6[7].ascent != &puVar1->descent);\n  puVar6[1].vt = (unifont_vtable *)xfs;\n  puVar6[1].public_charset = 1;\nLAB_0004a952:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" type_identifier (pointer_declarator "* x11font_create(GtkWidget *widget,char *name,int wide,int bold,int shadowoffset,\n                        int shadowalways)" * (function_declarator "x11font_create(GtkWidget *widget,char *name,int wide,int bold,int shadowoffset,\n                        int shadowalways)" identifier (parameter_list "(GtkWidget *widget,char *name,int wide,int bold,int shadowoffset,\n                        int shadowalways)" ( (parameter_declaration "GtkWidget *widget" type_identifier (pointer_declarator "*widget" * identifier)) , (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "int wide" primitive_type identifier) , (parameter_declaration "int bold" primitive_type identifier) , (parameter_declaration "int shadowoffset" primitive_type identifier) , (parameter_declaration "int shadowalways" primitive_type identifier) )))) (compound_statement "{\n  unifont *puVar1;\n  undefined4 uVar2;\n  XFontStruct *xfs;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  unifont *puVar6;\n  int iVar7;\n  unifont *puVar8;\n  char *pcVar9;\n  int iVar10;\n  uint uVar11;\n  int in_GS_OFFSET;\n  int local_48;\n  int local_44;\n  XChar2b space;\n  ulong registry_ret;\n  ulong encoding_ret;\n  ulong spacing_ret;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4a7a9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar2 = gdk_display_get_default();\n  uVar2 = gdk_x11_display_get_xdisplay(uVar2);\n  xfs = (XFontStruct *)XLoadQueryFont(uVar2,name);\n  if (xfs == (XFontStruct *)0x0) {\n    puVar6 = (unifont *)0x0;\n    goto LAB_0004a952;\n  }\n  uVar3 = XInternAtom(uVar2,"CHARSET_REGISTRY",0);\n  uVar4 = XInternAtom(uVar2,"CHARSET_ENCODING",0);\n  iVar5 = XGetFontProperty(xfs,uVar3,&registry_ret);\n  if (iVar5 == 0) {\nLAB_0004a82c:\n    uVar3 = XInternAtom(uVar2,"SPACING",0);\n    iVar5 = XGetFontProperty(xfs,uVar3,&spacing_ret);\n    if (iVar5 != 0) {\n      local_48 = 0;\n      iVar5 = 0;\n      local_44 = 0;\nLAB_0004a982:\n      uVar11 = 1;\n      pcVar9 = (char *)XGetAtomName(uVar2,spacing_ret);\n      if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar11 = (uint)(pcVar9 == (char *)0x0);\n      }\n      goto LAB_0004a9bb;\n    }\n    uVar11 = 1;\n    puVar6 = (unifont *)safemalloc(1,0x10c);\n    local_44 = 0;\n    puVar6->vt = &x11font_vtable;\n    iVar5 = 0;\nLAB_0004a883:\n    iVar7 = XTextWidth(xfs,"0",1);\n    local_48 = 0;\n  }\n  else {\n    iVar5 = XGetFontProperty(xfs,uVar4,&encoding_ret);\n    if (iVar5 == 0) goto LAB_0004a82c;\n    pcVar9 = (char *)XGetAtomName(uVar2,registry_ret);\n    iVar5 = XGetAtomName(uVar2,encoding_ret);\n    if ((pcVar9 == (char *)0x0) || (iVar5 == 0)) goto LAB_0004a82c;\n    pcVar9 = dupcat(pcVar9,"-",iVar5,0);\n    iVar5 = charset_from_xenc(pcVar9);\n    iVar7 = strcasecmp(pcVar9,"iso10646-1");\n    if (iVar7 == 0) {\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }\n    else if (iVar5 == 1) {\n      iVar7 = 1;\n      do {\n        iVar10 = x11_font_has_glyph(xfs,'\0',(uchar)iVar7);\n        if (iVar10 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar7 = iVar7 + 1;\n      } while (iVar7 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }\nLAB_0004aadb:\n    safefree(pcVar9);\n    uVar3 = XInternAtom(uVar2,"SPACING",0);\n    iVar7 = XGetFontProperty(xfs,uVar3,&spacing_ret);\n    if (iVar7 != 0) goto LAB_0004a982;\n    uVar11 = 1;\nLAB_0004a9bb:\n    puVar6 = (unifont *)safemalloc(1,0x10c);\n    puVar6->vt = &x11font_vtable;\n    if (local_48 == 0) goto LAB_0004a883;\n    space.byte1 = '\0';\n    space.byte2 = '0';\n    iVar7 = XTextWidth16(xfs,&space,1);\n  }\n  iVar10 = xfs->descent;\n  puVar6->width = iVar7;\n  iVar7 = xfs->ascent;\n  puVar6->public_charset = iVar5;\n  puVar6->want_fallback = 1;\n  puVar6->ascent = iVar7;\n  puVar6->height = iVar7 + iVar10;\n  puVar6->preferred_drawtype = 0;\n  puVar6[7].want_fallback = local_44;\n  puVar6[7].descent = uVar11;\n  puVar6[7].ascent = local_48;\n  puVar6->descent = iVar10;\n  puVar6[7].preferred_drawtype = wide;\n  puVar6[8].vt = (unifont_vtable *)bold;\n  puVar6[8].public_charset = shadowoffset;\n  puVar6[8].width = shadowalways;\n  puVar8 = puVar6 + 1;\n  do {\n    puVar8->vt = (unifont_vtable *)0x0;\n    puVar1 = puVar8 + 1;\n    puVar8->public_charset = 0;\n    puVar8->width = 0;\n    puVar8->height = 0;\n    puVar8->ascent = 0;\n    puVar8->descent = 0;\n    puVar8 = (unifont *)&puVar1->descent;\n  } while (&puVar6[7].ascent != &puVar1->descent);\n  puVar6[1].vt = (unifont_vtable *)xfs;\n  puVar6[1].public_charset = 1;\nLAB_0004a952:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "unifont *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "XFontStruct *xfs;" type_identifier (pointer_declarator "*xfs" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "unifont *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "unifont *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "XChar2b space;" type_identifier identifier ;) (declaration "ulong registry_ret;" type_identifier identifier ;) (declaration "ulong encoding_ret;" type_identifier identifier ;) (declaration "ulong spacing_ret;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x4a7a9;" (assignment_expression "uStack_14 = 0x4a7a9" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" 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 "xfs = (XFontStruct *)XLoadQueryFont(uVar2,name);" (assignment_expression "xfs = (XFontStruct *)XLoadQueryFont(uVar2,name)" identifier = (cast_expression "(XFontStruct *)XLoadQueryFont(uVar2,name)" ( (type_descriptor "XFontStruct *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "XLoadQueryFont(uVar2,name)" identifier (argument_list "(uVar2,name)" ( identifier , identifier ))))) ;) (if_statement "if (xfs == (XFontStruct *)0x0) {\n    puVar6 = (unifont *)0x0;\n    goto LAB_0004a952;\n  }" if (parenthesized_expression "(xfs == (XFontStruct *)0x0)" ( (binary_expression "xfs == (XFontStruct *)0x0" identifier == (cast_expression "(XFontStruct *)0x0" ( (type_descriptor "XFontStruct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar6 = (unifont *)0x0;\n    goto LAB_0004a952;\n  }" { (expression_statement "puVar6 = (unifont *)0x0;" (assignment_expression "puVar6 = (unifont *)0x0" identifier = (cast_expression "(unifont *)0x0" ( (type_descriptor "unifont *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004a952;" goto statement_identifier ;) })) (expression_statement "uVar3 = XInternAtom(uVar2,"CHARSET_REGISTRY",0);" (assignment_expression "uVar3 = XInternAtom(uVar2,"CHARSET_REGISTRY",0)" identifier = (call_expression "XInternAtom(uVar2,"CHARSET_REGISTRY",0)" identifier (argument_list "(uVar2,"CHARSET_REGISTRY",0)" ( identifier , (string_literal ""CHARSET_REGISTRY"" " string_content ") , number_literal )))) ;) (expression_statement "uVar4 = XInternAtom(uVar2,"CHARSET_ENCODING",0);" (assignment_expression "uVar4 = XInternAtom(uVar2,"CHARSET_ENCODING",0)" identifier = (call_expression "XInternAtom(uVar2,"CHARSET_ENCODING",0)" identifier (argument_list "(uVar2,"CHARSET_ENCODING",0)" ( identifier , (string_literal ""CHARSET_ENCODING"" " string_content ") , number_literal )))) ;) (expression_statement "iVar5 = XGetFontProperty(xfs,uVar3,&registry_ret);" (assignment_expression "iVar5 = XGetFontProperty(xfs,uVar3,&registry_ret)" identifier = (call_expression "XGetFontProperty(xfs,uVar3,&registry_ret)" identifier (argument_list "(xfs,uVar3,&registry_ret)" ( identifier , identifier , (pointer_expression "&registry_ret" & identifier) )))) ;) (if_statement "if (iVar5 == 0) {\nLAB_0004a82c:\n    uVar3 = XInternAtom(uVar2,"SPACING",0);\n    iVar5 = XGetFontProperty(xfs,uVar3,&spacing_ret);\n    if (iVar5 != 0) {\n      local_48 = 0;\n      iVar5 = 0;\n      local_44 = 0;\nLAB_0004a982:\n      uVar11 = 1;\n      pcVar9 = (char *)XGetAtomName(uVar2,spacing_ret);\n      if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar11 = (uint)(pcVar9 == (char *)0x0);\n      }\n      goto LAB_0004a9bb;\n    }\n    uVar11 = 1;\n    puVar6 = (unifont *)safemalloc(1,0x10c);\n    local_44 = 0;\n    puVar6->vt = &x11font_vtable;\n    iVar5 = 0;\nLAB_0004a883:\n    iVar7 = XTextWidth(xfs,"0",1);\n    local_48 = 0;\n  }\n  else {\n    iVar5 = XGetFontProperty(xfs,uVar4,&encoding_ret);\n    if (iVar5 == 0) goto LAB_0004a82c;\n    pcVar9 = (char *)XGetAtomName(uVar2,registry_ret);\n    iVar5 = XGetAtomName(uVar2,encoding_ret);\n    if ((pcVar9 == (char *)0x0) || (iVar5 == 0)) goto LAB_0004a82c;\n    pcVar9 = dupcat(pcVar9,"-",iVar5,0);\n    iVar5 = charset_from_xenc(pcVar9);\n    iVar7 = strcasecmp(pcVar9,"iso10646-1");\n    if (iVar7 == 0) {\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }\n    else if (iVar5 == 1) {\n      iVar7 = 1;\n      do {\n        iVar10 = x11_font_has_glyph(xfs,'\0',(uchar)iVar7);\n        if (iVar10 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar7 = iVar7 + 1;\n      } while (iVar7 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }\nLAB_0004aadb:\n    safefree(pcVar9);\n    uVar3 = XInternAtom(uVar2,"SPACING",0);\n    iVar7 = XGetFontProperty(xfs,uVar3,&spacing_ret);\n    if (iVar7 != 0) goto LAB_0004a982;\n    uVar11 = 1;\nLAB_0004a9bb:\n    puVar6 = (unifont *)safemalloc(1,0x10c);\n    puVar6->vt = &x11font_vtable;\n    if (local_48 == 0) goto LAB_0004a883;\n    space.byte1 = '\0';\n    space.byte2 = '0';\n    iVar7 = XTextWidth16(xfs,&space,1);\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0004a82c:\n    uVar3 = XInternAtom(uVar2,"SPACING",0);\n    iVar5 = XGetFontProperty(xfs,uVar3,&spacing_ret);\n    if (iVar5 != 0) {\n      local_48 = 0;\n      iVar5 = 0;\n      local_44 = 0;\nLAB_0004a982:\n      uVar11 = 1;\n      pcVar9 = (char *)XGetAtomName(uVar2,spacing_ret);\n      if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar11 = (uint)(pcVar9 == (char *)0x0);\n      }\n      goto LAB_0004a9bb;\n    }\n    uVar11 = 1;\n    puVar6 = (unifont *)safemalloc(1,0x10c);\n    local_44 = 0;\n    puVar6->vt = &x11font_vtable;\n    iVar5 = 0;\nLAB_0004a883:\n    iVar7 = XTextWidth(xfs,"0",1);\n    local_48 = 0;\n  }" { (labeled_statement "LAB_0004a82c:\n    uVar3 = XInternAtom(uVar2,"SPACING",0);" statement_identifier : (expression_statement "uVar3 = XInternAtom(uVar2,"SPACING",0);" (assignment_expression "uVar3 = XInternAtom(uVar2,"SPACING",0)" identifier = (call_expression "XInternAtom(uVar2,"SPACING",0)" identifier (argument_list "(uVar2,"SPACING",0)" ( identifier , (string_literal ""SPACING"" " string_content ") , number_literal )))) ;)) (expression_statement "iVar5 = XGetFontProperty(xfs,uVar3,&spacing_ret);" (assignment_expression "iVar5 = XGetFontProperty(xfs,uVar3,&spacing_ret)" identifier = (call_expression "XGetFontProperty(xfs,uVar3,&spacing_ret)" identifier (argument_list "(xfs,uVar3,&spacing_ret)" ( identifier , identifier , (pointer_expression "&spacing_ret" & identifier) )))) ;) (if_statement "if (iVar5 != 0) {\n      local_48 = 0;\n      iVar5 = 0;\n      local_44 = 0;\nLAB_0004a982:\n      uVar11 = 1;\n      pcVar9 = (char *)XGetAtomName(uVar2,spacing_ret);\n      if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar11 = (uint)(pcVar9 == (char *)0x0);\n      }\n      goto LAB_0004a9bb;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      local_48 = 0;\n      iVar5 = 0;\n      local_44 = 0;\nLAB_0004a982:\n      uVar11 = 1;\n      pcVar9 = (char *)XGetAtomName(uVar2,spacing_ret);\n      if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar11 = (uint)(pcVar9 == (char *)0x0);\n      }\n      goto LAB_0004a9bb;\n    }" { (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0004a982:\n      uVar11 = 1;" statement_identifier : (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;)) (expression_statement "pcVar9 = (char *)XGetAtomName(uVar2,spacing_ret);" (assignment_expression "pcVar9 = (char *)XGetAtomName(uVar2,spacing_ret)" identifier = (cast_expression "(char *)XGetAtomName(uVar2,spacing_ret)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "XGetAtomName(uVar2,spacing_ret)" identifier (argument_list "(uVar2,spacing_ret)" ( identifier , identifier ))))) ;) (if_statement "if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar11 = (uint)(pcVar9 == (char *)0x0);\n      }" if (parenthesized_expression "(pcVar9 != (char *)0x0)" ( (binary_expression "pcVar9 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar11 = (uint)(pcVar9 == (char *)0x0);\n      }" { (expression_statement "pcVar9 = strchr("CcMm",(int)*pcVar9);" (assignment_expression "pcVar9 = strchr("CcMm",(int)*pcVar9)" identifier = (call_expression "strchr("CcMm",(int)*pcVar9)" identifier (argument_list "("CcMm",(int)*pcVar9)" ( (string_literal ""CcMm"" " string_content ") , (cast_expression "(int)*pcVar9" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar9" * identifier)) )))) ;) (expression_statement "uVar11 = (uint)(pcVar9 == (char *)0x0);" (assignment_expression "uVar11 = (uint)(pcVar9 == (char *)0x0)" identifier = (call_expression "(uint)(pcVar9 == (char *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar9 == (char *)0x0)" ( (binary_expression "pcVar9 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ;) })) (goto_statement "goto LAB_0004a9bb;" goto statement_identifier ;) })) (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (expression_statement "puVar6 = (unifont *)safemalloc(1,0x10c);" (assignment_expression "puVar6 = (unifont *)safemalloc(1,0x10c)" identifier = (cast_expression "(unifont *)safemalloc(1,0x10c)" ( (type_descriptor "unifont *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "safemalloc(1,0x10c)" identifier (argument_list "(1,0x10c)" ( number_literal , number_literal ))))) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "puVar6->vt = &x11font_vtable;" (assignment_expression "puVar6->vt = &x11font_vtable" (field_expression "puVar6->vt" identifier -> field_identifier) = (pointer_expression "&x11font_vtable" & identifier)) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0004a883:\n    iVar7 = XTextWidth(xfs,"0",1);" statement_identifier : (expression_statement "iVar7 = XTextWidth(xfs,"0",1);" (assignment_expression "iVar7 = XTextWidth(xfs,"0",1)" identifier = (call_expression "XTextWidth(xfs,"0",1)" identifier (argument_list "(xfs,"0",1)" ( identifier , (string_literal ""0"" " string_content ") , number_literal )))) ;)) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    iVar5 = XGetFontProperty(xfs,uVar4,&encoding_ret);\n    if (iVar5 == 0) goto LAB_0004a82c;\n    pcVar9 = (char *)XGetAtomName(uVar2,registry_ret);\n    iVar5 = XGetAtomName(uVar2,encoding_ret);\n    if ((pcVar9 == (char *)0x0) || (iVar5 == 0)) goto LAB_0004a82c;\n    pcVar9 = dupcat(pcVar9,"-",iVar5,0);\n    iVar5 = charset_from_xenc(pcVar9);\n    iVar7 = strcasecmp(pcVar9,"iso10646-1");\n    if (iVar7 == 0) {\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }\n    else if (iVar5 == 1) {\n      iVar7 = 1;\n      do {\n        iVar10 = x11_font_has_glyph(xfs,'\0',(uchar)iVar7);\n        if (iVar10 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar7 = iVar7 + 1;\n      } while (iVar7 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }\nLAB_0004aadb:\n    safefree(pcVar9);\n    uVar3 = XInternAtom(uVar2,"SPACING",0);\n    iVar7 = XGetFontProperty(xfs,uVar3,&spacing_ret);\n    if (iVar7 != 0) goto LAB_0004a982;\n    uVar11 = 1;\nLAB_0004a9bb:\n    puVar6 = (unifont *)safemalloc(1,0x10c);\n    puVar6->vt = &x11font_vtable;\n    if (local_48 == 0) goto LAB_0004a883;\n    space.byte1 = '\0';\n    space.byte2 = '0';\n    iVar7 = XTextWidth16(xfs,&space,1);\n  }" else (compound_statement "{\n    iVar5 = XGetFontProperty(xfs,uVar4,&encoding_ret);\n    if (iVar5 == 0) goto LAB_0004a82c;\n    pcVar9 = (char *)XGetAtomName(uVar2,registry_ret);\n    iVar5 = XGetAtomName(uVar2,encoding_ret);\n    if ((pcVar9 == (char *)0x0) || (iVar5 == 0)) goto LAB_0004a82c;\n    pcVar9 = dupcat(pcVar9,"-",iVar5,0);\n    iVar5 = charset_from_xenc(pcVar9);\n    iVar7 = strcasecmp(pcVar9,"iso10646-1");\n    if (iVar7 == 0) {\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }\n    else if (iVar5 == 1) {\n      iVar7 = 1;\n      do {\n        iVar10 = x11_font_has_glyph(xfs,'\0',(uchar)iVar7);\n        if (iVar10 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar7 = iVar7 + 1;\n      } while (iVar7 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }\nLAB_0004aadb:\n    safefree(pcVar9);\n    uVar3 = XInternAtom(uVar2,"SPACING",0);\n    iVar7 = XGetFontProperty(xfs,uVar3,&spacing_ret);\n    if (iVar7 != 0) goto LAB_0004a982;\n    uVar11 = 1;\nLAB_0004a9bb:\n    puVar6 = (unifont *)safemalloc(1,0x10c);\n    puVar6->vt = &x11font_vtable;\n    if (local_48 == 0) goto LAB_0004a883;\n    space.byte1 = '\0';\n    space.byte2 = '0';\n    iVar7 = XTextWidth16(xfs,&space,1);\n  }" { (expression_statement "iVar5 = XGetFontProperty(xfs,uVar4,&encoding_ret);" (assignment_expression "iVar5 = XGetFontProperty(xfs,uVar4,&encoding_ret)" identifier = (call_expression "XGetFontProperty(xfs,uVar4,&encoding_ret)" identifier (argument_list "(xfs,uVar4,&encoding_ret)" ( identifier , identifier , (pointer_expression "&encoding_ret" & identifier) )))) ;) (if_statement "if (iVar5 == 0) goto LAB_0004a82c;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004a82c;" goto statement_identifier ;)) (expression_statement "pcVar9 = (char *)XGetAtomName(uVar2,registry_ret);" (assignment_expression "pcVar9 = (char *)XGetAtomName(uVar2,registry_ret)" identifier = (cast_expression "(char *)XGetAtomName(uVar2,registry_ret)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "XGetAtomName(uVar2,registry_ret)" identifier (argument_list "(uVar2,registry_ret)" ( identifier , identifier ))))) ;) (expression_statement "iVar5 = XGetAtomName(uVar2,encoding_ret);" (assignment_expression "iVar5 = XGetAtomName(uVar2,encoding_ret)" identifier = (call_expression "XGetAtomName(uVar2,encoding_ret)" identifier (argument_list "(uVar2,encoding_ret)" ( identifier , identifier )))) ;) (if_statement "if ((pcVar9 == (char *)0x0) || (iVar5 == 0)) goto LAB_0004a82c;" if (parenthesized_expression "((pcVar9 == (char *)0x0) || (iVar5 == 0))" ( (binary_expression "(pcVar9 == (char *)0x0) || (iVar5 == 0)" (parenthesized_expression "(pcVar9 == (char *)0x0)" ( (binary_expression "pcVar9 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_0004a82c;" goto statement_identifier ;)) (expression_statement "pcVar9 = dupcat(pcVar9,"-",iVar5,0);" (assignment_expression "pcVar9 = dupcat(pcVar9,"-",iVar5,0)" identifier = (call_expression "dupcat(pcVar9,"-",iVar5,0)" identifier (argument_list "(pcVar9,"-",iVar5,0)" ( identifier , (string_literal ""-"" " string_content ") , identifier , number_literal )))) ;) (expression_statement "iVar5 = charset_from_xenc(pcVar9);" (assignment_expression "iVar5 = charset_from_xenc(pcVar9)" identifier = (call_expression "charset_from_xenc(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier )))) ;) (expression_statement "iVar7 = strcasecmp(pcVar9,"iso10646-1");" (assignment_expression "iVar7 = strcasecmp(pcVar9,"iso10646-1")" identifier = (call_expression "strcasecmp(pcVar9,"iso10646-1")" identifier (argument_list "(pcVar9,"iso10646-1")" ( identifier , (string_literal ""iso10646-1"" " string_content ") )))) ;) (if_statement "if (iVar7 == 0) {\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }\n    else if (iVar5 == 1) {\n      iVar7 = 1;\n      do {\n        iVar10 = x11_font_has_glyph(xfs,'\0',(uchar)iVar7);\n        if (iVar10 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar7 = iVar7 + 1;\n      } while (iVar7 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }" { (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = 0x37;" (assignment_expression "iVar5 = 0x37" identifier = number_literal) ;) (expression_statement "local_44 = 0x37;" (assignment_expression "local_44 = 0x37" identifier = number_literal) ;) }) (else_clause "else if (iVar5 == 1) {\n      iVar7 = 1;\n      do {\n        iVar10 = x11_font_has_glyph(xfs,'\0',(uchar)iVar7);\n        if (iVar10 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar7 = iVar7 + 1;\n      } while (iVar7 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }" else (if_statement "if (iVar5 == 1) {\n      iVar7 = 1;\n      do {\n        iVar10 = x11_font_has_glyph(xfs,'\0',(uchar)iVar7);\n        if (iVar10 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar7 = iVar7 + 1;\n      } while (iVar7 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }" if (parenthesized_expression "(iVar5 == 1)" ( (binary_expression "iVar5 == 1" identifier == number_literal) )) (compound_statement "{\n      iVar7 = 1;\n      do {\n        iVar10 = x11_font_has_glyph(xfs,'\0',(uchar)iVar7);\n        if (iVar10 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar7 = iVar7 + 1;\n      } while (iVar7 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }" { (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (do_statement "do {\n        iVar10 = x11_font_has_glyph(xfs,'\0',(uchar)iVar7);\n        if (iVar10 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar7 = iVar7 + 1;\n      } while (iVar7 != 0x20);" do (compound_statement "{\n        iVar10 = x11_font_has_glyph(xfs,'\0',(uchar)iVar7);\n        if (iVar10 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar7 = iVar7 + 1;\n      }" { (expression_statement "iVar10 = x11_font_has_glyph(xfs,'\0',(uchar)iVar7);" (assignment_expression "iVar10 = x11_font_has_glyph(xfs,'\0',(uchar)iVar7)" identifier = (call_expression "x11_font_has_glyph(xfs,'\0',(uchar)iVar7)" identifier (argument_list "(xfs,'\0',(uchar)iVar7)" ( identifier , (char_literal "'\0'" ' escape_sequence ') , (cast_expression "(uchar)iVar7" ( (type_descriptor "uchar" type_identifier) ) identifier) )))) ;) (if_statement "if (iVar10 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }" { (expression_statement "local_44 = 1;" (assignment_expression "local_44 = 1" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0004aadb;" goto statement_identifier ;) })) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 != 0x20)" ( (binary_expression "iVar7 != 0x20" identifier != number_literal) )) ;) (expression_statement "local_44 = 2;" (assignment_expression "local_44 = 2" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }" else (compound_statement "{\n      local_48 = 0;\n      local_44 = iVar5;\n    }" { (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_44 = iVar5;" (assignment_expression "local_44 = iVar5" identifier = identifier) ;) }))))) (labeled_statement "LAB_0004aadb:\n    safefree(pcVar9);" statement_identifier : (expression_statement "safefree(pcVar9);" (call_expression "safefree(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;)) (expression_statement "uVar3 = XInternAtom(uVar2,"SPACING",0);" (assignment_expression "uVar3 = XInternAtom(uVar2,"SPACING",0)" identifier = (call_expression "XInternAtom(uVar2,"SPACING",0)" identifier (argument_list "(uVar2,"SPACING",0)" ( identifier , (string_literal ""SPACING"" " string_content ") , number_literal )))) ;) (expression_statement "iVar7 = XGetFontProperty(xfs,uVar3,&spacing_ret);" (assignment_expression "iVar7 = XGetFontProperty(xfs,uVar3,&spacing_ret)" identifier = (call_expression "XGetFontProperty(xfs,uVar3,&spacing_ret)" identifier (argument_list "(xfs,uVar3,&spacing_ret)" ( identifier , identifier , (pointer_expression "&spacing_ret" & identifier) )))) ;) (if_statement "if (iVar7 != 0) goto LAB_0004a982;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004a982;" goto statement_identifier ;)) (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0004a9bb:\n    puVar6 = (unifont *)safemalloc(1,0x10c);" statement_identifier : (expression_statement "puVar6 = (unifont *)safemalloc(1,0x10c);" (assignment_expression "puVar6 = (unifont *)safemalloc(1,0x10c)" identifier = (cast_expression "(unifont *)safemalloc(1,0x10c)" ( (type_descriptor "unifont *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "safemalloc(1,0x10c)" identifier (argument_list "(1,0x10c)" ( number_literal , number_literal ))))) ;)) (expression_statement "puVar6->vt = &x11font_vtable;" (assignment_expression "puVar6->vt = &x11font_vtable" (field_expression "puVar6->vt" identifier -> field_identifier) = (pointer_expression "&x11font_vtable" & identifier)) ;) (if_statement "if (local_48 == 0) goto LAB_0004a883;" if (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004a883;" goto statement_identifier ;)) (expression_statement "space.byte1 = '\0';" (assignment_expression "space.byte1 = '\0'" (field_expression "space.byte1" identifier . field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "space.byte2 = '0';" (assignment_expression "space.byte2 = '0'" (field_expression "space.byte2" identifier . field_identifier) = (char_literal "'0'" ' character ')) ;) (expression_statement "iVar7 = XTextWidth16(xfs,&space,1);" (assignment_expression "iVar7 = XTextWidth16(xfs,&space,1)" identifier = (call_expression "XTextWidth16(xfs,&space,1)" identifier (argument_list "(xfs,&space,1)" ( identifier , (pointer_expression "&space" & identifier) , number_literal )))) ;) }))) (expression_statement "iVar10 = xfs->descent;" (assignment_expression "iVar10 = xfs->descent" identifier = (field_expression "xfs->descent" identifier -> field_identifier)) ;) (expression_statement "puVar6->width = iVar7;" (assignment_expression "puVar6->width = iVar7" (field_expression "puVar6->width" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar7 = xfs->ascent;" (assignment_expression "iVar7 = xfs->ascent" identifier = (field_expression "xfs->ascent" identifier -> field_identifier)) ;) (expression_statement "puVar6->public_charset = iVar5;" (assignment_expression "puVar6->public_charset = iVar5" (field_expression "puVar6->public_charset" identifier -> field_identifier) = identifier) ;) (expression_statement "puVar6->want_fallback = 1;" (assignment_expression "puVar6->want_fallback = 1" (field_expression "puVar6->want_fallback" identifier -> field_identifier) = number_literal) ;) (expression_statement "puVar6->ascent = iVar7;" (assignment_expression "puVar6->ascent = iVar7" (field_expression "puVar6->ascent" identifier -> field_identifier) = identifier) ;) (expression_statement "puVar6->height = iVar7 + iVar10;" (assignment_expression "puVar6->height = iVar7 + iVar10" (field_expression "puVar6->height" identifier -> field_identifier) = (binary_expression "iVar7 + iVar10" identifier + identifier)) ;) (expression_statement "puVar6->preferred_drawtype = 0;" (assignment_expression "puVar6->preferred_drawtype = 0" (field_expression "puVar6->preferred_drawtype" identifier -> field_identifier) = number_literal) ;) (expression_statement "puVar6[7].want_fallback = local_44;" (assignment_expression "puVar6[7].want_fallback = local_44" (field_expression "puVar6[7].want_fallback" (subscript_expression "puVar6[7]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "puVar6[7].descent = uVar11;" (assignment_expression "puVar6[7].descent = uVar11" (field_expression "puVar6[7].descent" (subscript_expression "puVar6[7]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "puVar6[7].ascent = local_48;" (assignment_expression "puVar6[7].ascent = local_48" (field_expression "puVar6[7].ascent" (subscript_expression "puVar6[7]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "puVar6->descent = iVar10;" (assignment_expression "puVar6->descent = iVar10" (field_expression "puVar6->descent" identifier -> field_identifier) = identifier) ;) (expression_statement "puVar6[7].preferred_drawtype = wide;" (assignment_expression "puVar6[7].preferred_drawtype = wide" (field_expression "puVar6[7].preferred_drawtype" (subscript_expression "puVar6[7]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "puVar6[8].vt = (unifont_vtable *)bold;" (assignment_expression "puVar6[8].vt = (unifont_vtable *)bold" (field_expression "puVar6[8].vt" (subscript_expression "puVar6[8]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(unifont_vtable *)bold" ( (type_descriptor "unifont_vtable *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar6[8].public_charset = shadowoffset;" (assignment_expression "puVar6[8].public_charset = shadowoffset" (field_expression "puVar6[8].public_charset" (subscript_expression "puVar6[8]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "puVar6[8].width = shadowalways;" (assignment_expression "puVar6[8].width = shadowalways" (field_expression "puVar6[8].width" (subscript_expression "puVar6[8]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "puVar8 = puVar6 + 1;" (assignment_expression "puVar8 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) (do_statement "do {\n    puVar8->vt = (unifont_vtable *)0x0;\n    puVar1 = puVar8 + 1;\n    puVar8->public_charset = 0;\n    puVar8->width = 0;\n    puVar8->height = 0;\n    puVar8->ascent = 0;\n    puVar8->descent = 0;\n    puVar8 = (unifont *)&puVar1->descent;\n  } while (&puVar6[7].ascent != &puVar1->descent);" do (compound_statement "{\n    puVar8->vt = (unifont_vtable *)0x0;\n    puVar1 = puVar8 + 1;\n    puVar8->public_charset = 0;\n    puVar8->width = 0;\n    puVar8->height = 0;\n    puVar8->ascent = 0;\n    puVar8->descent = 0;\n    puVar8 = (unifont *)&puVar1->descent;\n  }" { (expression_statement "puVar8->vt = (unifont_vtable *)0x0;" (assignment_expression "puVar8->vt = (unifont_vtable *)0x0" (field_expression "puVar8->vt" identifier -> field_identifier) = (cast_expression "(unifont_vtable *)0x0" ( (type_descriptor "unifont_vtable *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar1 = puVar8 + 1;" (assignment_expression "puVar1 = puVar8 + 1" identifier = (binary_expression "puVar8 + 1" identifier + number_literal)) ;) (expression_statement "puVar8->public_charset = 0;" (assignment_expression "puVar8->public_charset = 0" (field_expression "puVar8->public_charset" identifier -> field_identifier) = number_literal) ;) (expression_statement "puVar8->width = 0;" (assignment_expression "puVar8->width = 0" (field_expression "puVar8->width" identifier -> field_identifier) = number_literal) ;) (expression_statement "puVar8->height = 0;" (assignment_expression "puVar8->height = 0" (field_expression "puVar8->height" identifier -> field_identifier) = number_literal) ;) (expression_statement "puVar8->ascent = 0;" (assignment_expression "puVar8->ascent = 0" (field_expression "puVar8->ascent" identifier -> field_identifier) = number_literal) ;) (expression_statement "puVar8->descent = 0;" (assignment_expression "puVar8->descent = 0" (field_expression "puVar8->descent" identifier -> field_identifier) = number_literal) ;) (expression_statement "puVar8 = (unifont *)&puVar1->descent;" (assignment_expression "puVar8 = (unifont *)&puVar1->descent" identifier = (cast_expression "(unifont *)&puVar1->descent" ( (type_descriptor "unifont *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&puVar1->descent" & (field_expression "puVar1->descent" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(&puVar6[7].ascent != &puVar1->descent)" ( (binary_expression "&puVar6[7].ascent != &puVar1->descent" (pointer_expression "&puVar6[7].ascent" & (field_expression "puVar6[7].ascent" (subscript_expression "puVar6[7]" identifier [ number_literal ]) . field_identifier)) != (pointer_expression "&puVar1->descent" & (field_expression "puVar1->descent" identifier -> field_identifier))) )) ;) (expression_statement "puVar6[1].vt = (unifont_vtable *)xfs;" (assignment_expression "puVar6[1].vt = (unifont_vtable *)xfs" (field_expression "puVar6[1].vt" (subscript_expression "puVar6[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(unifont_vtable *)xfs" ( (type_descriptor "unifont_vtable *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar6[1].public_charset = 1;" (assignment_expression "puVar6[1].public_charset = 1" (field_expression "puVar6[1].public_charset" (subscript_expression "puVar6[1]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (labeled_statement "LAB_0004a952:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return puVar6;\n  }" { (return_statement "return puVar6;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "undefined4 *\nFUN_0004a7a0(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  char *pcVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  int in_GS_OFFSET;\n  int local_48;\n  int local_44;\n  undefined2 local_2e;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4a7a9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar1 = gdk_display_get_default();\n  uVar1 = gdk_x11_display_get_xdisplay(uVar1);\n  iVar2 = XLoadQueryFont(uVar1,param_2);\n  if (iVar2 == 0) {\n    puVar6 = (undefined4 *)0x0;\n    goto LAB_0004a952;\n  }\n  uVar3 = XInternAtom(uVar1,"CHARSET_REGISTRY",0);\n  uVar4 = XInternAtom(uVar1,"CHARSET_ENCODING",0);\n  iVar5 = XGetFontProperty(iVar2,uVar3,&local_2c);\n  if (iVar5 == 0) {\nLAB_0004a82c:\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar5 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar5 != 0) {\n      local_48 = 0;\n      iVar5 = 0;\n      local_44 = 0;\nLAB_0004a982:\n      uVar12 = 1;\n      pcVar9 = (char *)XGetAtomName(uVar1,local_24);\n      if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar12 = (uint)(pcVar9 == (char *)0x0);\n      }\n      goto LAB_0004a9bb;\n    }\n    uVar12 = 1;\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    local_44 = 0;\n    *puVar6 = &PTR_FUN_000a0dc0;\n    iVar5 = 0;\nLAB_0004a883:\n    uVar1 = XTextWidth(iVar2,"0",1);\n    local_48 = 0;\n  }\n  else {\n    iVar5 = XGetFontProperty(iVar2,uVar4,&local_28);\n    if (iVar5 == 0) goto LAB_0004a82c;\n    iVar5 = XGetAtomName(uVar1,local_2c);\n    iVar10 = XGetAtomName(uVar1,local_28);\n    if ((iVar5 == 0) || (iVar10 == 0)) goto LAB_0004a82c;\n    pcVar9 = (char *)FUN_0002bf70(iVar5,"-",iVar10,0);\n    iVar5 = FUN_0001b250(pcVar9);\n    iVar10 = strcasecmp(pcVar9,"iso10646-1");\n    if (iVar10 == 0) {\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }\n    else if (iVar5 == 1) {\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }\nLAB_0004aadb:\n    FUN_0002c6a0(pcVar9);\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar10 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar10 != 0) goto LAB_0004a982;\n    uVar12 = 1;\nLAB_0004a9bb:\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    *puVar6 = &PTR_FUN_000a0dc0;\n    if (local_48 == 0) goto LAB_0004a883;\n    local_2e = 0x3000;\n    uVar1 = XTextWidth16(iVar2,&local_2e,1);\n  }\n  iVar10 = *(int *)(iVar2 + 0x4c);\n  puVar6[2] = uVar1;\n  iVar11 = *(int *)(iVar2 + 0x48);\n  puVar6[1] = iVar5;\n  puVar6[6] = 1;\n  puVar6[4] = iVar11;\n  puVar6[3] = iVar11 + iVar10;\n  puVar6[7] = 0;\n  puVar6[0x3e] = local_44;\n  puVar6[0x3d] = uVar12;\n  puVar6[0x3c] = local_48;\n  puVar6[5] = iVar10;\n  puVar6[0x3f] = param_3;\n  puVar6[0x40] = param_4;\n  puVar6[0x41] = param_5;\n  puVar6[0x42] = param_6;\n  puVar7 = puVar6 + 8;\n  do {\n    *puVar7 = 0;\n    puVar8 = puVar7 + 0xd;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar7[4] = 0;\n    puVar7[5] = 0;\n    puVar7 = puVar8;\n  } while (puVar6 + 0x3c != puVar8);\n  puVar6[8] = iVar2;\n  puVar6[9] = 1;\nLAB_0004a952:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }\n                    \n  FUN_0005c430();\n}\n\n" (function_definition "undefined4 *\nFUN_0004a7a0(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  char *pcVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  int in_GS_OFFSET;\n  int local_48;\n  int local_44;\n  undefined2 local_2e;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4a7a9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar1 = gdk_display_get_default();\n  uVar1 = gdk_x11_display_get_xdisplay(uVar1);\n  iVar2 = XLoadQueryFont(uVar1,param_2);\n  if (iVar2 == 0) {\n    puVar6 = (undefined4 *)0x0;\n    goto LAB_0004a952;\n  }\n  uVar3 = XInternAtom(uVar1,"CHARSET_REGISTRY",0);\n  uVar4 = XInternAtom(uVar1,"CHARSET_ENCODING",0);\n  iVar5 = XGetFontProperty(iVar2,uVar3,&local_2c);\n  if (iVar5 == 0) {\nLAB_0004a82c:\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar5 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar5 != 0) {\n      local_48 = 0;\n      iVar5 = 0;\n      local_44 = 0;\nLAB_0004a982:\n      uVar12 = 1;\n      pcVar9 = (char *)XGetAtomName(uVar1,local_24);\n      if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar12 = (uint)(pcVar9 == (char *)0x0);\n      }\n      goto LAB_0004a9bb;\n    }\n    uVar12 = 1;\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    local_44 = 0;\n    *puVar6 = &PTR_FUN_000a0dc0;\n    iVar5 = 0;\nLAB_0004a883:\n    uVar1 = XTextWidth(iVar2,"0",1);\n    local_48 = 0;\n  }\n  else {\n    iVar5 = XGetFontProperty(iVar2,uVar4,&local_28);\n    if (iVar5 == 0) goto LAB_0004a82c;\n    iVar5 = XGetAtomName(uVar1,local_2c);\n    iVar10 = XGetAtomName(uVar1,local_28);\n    if ((iVar5 == 0) || (iVar10 == 0)) goto LAB_0004a82c;\n    pcVar9 = (char *)FUN_0002bf70(iVar5,"-",iVar10,0);\n    iVar5 = FUN_0001b250(pcVar9);\n    iVar10 = strcasecmp(pcVar9,"iso10646-1");\n    if (iVar10 == 0) {\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }\n    else if (iVar5 == 1) {\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }\nLAB_0004aadb:\n    FUN_0002c6a0(pcVar9);\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar10 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar10 != 0) goto LAB_0004a982;\n    uVar12 = 1;\nLAB_0004a9bb:\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    *puVar6 = &PTR_FUN_000a0dc0;\n    if (local_48 == 0) goto LAB_0004a883;\n    local_2e = 0x3000;\n    uVar1 = XTextWidth16(iVar2,&local_2e,1);\n  }\n  iVar10 = *(int *)(iVar2 + 0x4c);\n  puVar6[2] = uVar1;\n  iVar11 = *(int *)(iVar2 + 0x48);\n  puVar6[1] = iVar5;\n  puVar6[6] = 1;\n  puVar6[4] = iVar11;\n  puVar6[3] = iVar11 + iVar10;\n  puVar6[7] = 0;\n  puVar6[0x3e] = local_44;\n  puVar6[0x3d] = uVar12;\n  puVar6[0x3c] = local_48;\n  puVar6[5] = iVar10;\n  puVar6[0x3f] = param_3;\n  puVar6[0x40] = param_4;\n  puVar6[0x41] = param_5;\n  puVar6[0x42] = param_6;\n  puVar7 = puVar6 + 8;\n  do {\n    *puVar7 = 0;\n    puVar8 = puVar7 + 0xd;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar7[4] = 0;\n    puVar7[5] = 0;\n    puVar7 = puVar8;\n  } while (puVar6 + 0x3c != puVar8);\n  puVar6[8] = iVar2;\n  puVar6[9] = 1;\nLAB_0004a952:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }\n                    \n  FUN_0005c430();\n}" type_identifier (pointer_declarator "*\nFUN_0004a7a0(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6)" * (function_declarator "FUN_0004a7a0(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) )))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  char *pcVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  int in_GS_OFFSET;\n  int local_48;\n  int local_44;\n  undefined2 local_2e;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4a7a9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar1 = gdk_display_get_default();\n  uVar1 = gdk_x11_display_get_xdisplay(uVar1);\n  iVar2 = XLoadQueryFont(uVar1,param_2);\n  if (iVar2 == 0) {\n    puVar6 = (undefined4 *)0x0;\n    goto LAB_0004a952;\n  }\n  uVar3 = XInternAtom(uVar1,"CHARSET_REGISTRY",0);\n  uVar4 = XInternAtom(uVar1,"CHARSET_ENCODING",0);\n  iVar5 = XGetFontProperty(iVar2,uVar3,&local_2c);\n  if (iVar5 == 0) {\nLAB_0004a82c:\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar5 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar5 != 0) {\n      local_48 = 0;\n      iVar5 = 0;\n      local_44 = 0;\nLAB_0004a982:\n      uVar12 = 1;\n      pcVar9 = (char *)XGetAtomName(uVar1,local_24);\n      if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar12 = (uint)(pcVar9 == (char *)0x0);\n      }\n      goto LAB_0004a9bb;\n    }\n    uVar12 = 1;\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    local_44 = 0;\n    *puVar6 = &PTR_FUN_000a0dc0;\n    iVar5 = 0;\nLAB_0004a883:\n    uVar1 = XTextWidth(iVar2,"0",1);\n    local_48 = 0;\n  }\n  else {\n    iVar5 = XGetFontProperty(iVar2,uVar4,&local_28);\n    if (iVar5 == 0) goto LAB_0004a82c;\n    iVar5 = XGetAtomName(uVar1,local_2c);\n    iVar10 = XGetAtomName(uVar1,local_28);\n    if ((iVar5 == 0) || (iVar10 == 0)) goto LAB_0004a82c;\n    pcVar9 = (char *)FUN_0002bf70(iVar5,"-",iVar10,0);\n    iVar5 = FUN_0001b250(pcVar9);\n    iVar10 = strcasecmp(pcVar9,"iso10646-1");\n    if (iVar10 == 0) {\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }\n    else if (iVar5 == 1) {\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }\nLAB_0004aadb:\n    FUN_0002c6a0(pcVar9);\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar10 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar10 != 0) goto LAB_0004a982;\n    uVar12 = 1;\nLAB_0004a9bb:\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    *puVar6 = &PTR_FUN_000a0dc0;\n    if (local_48 == 0) goto LAB_0004a883;\n    local_2e = 0x3000;\n    uVar1 = XTextWidth16(iVar2,&local_2e,1);\n  }\n  iVar10 = *(int *)(iVar2 + 0x4c);\n  puVar6[2] = uVar1;\n  iVar11 = *(int *)(iVar2 + 0x48);\n  puVar6[1] = iVar5;\n  puVar6[6] = 1;\n  puVar6[4] = iVar11;\n  puVar6[3] = iVar11 + iVar10;\n  puVar6[7] = 0;\n  puVar6[0x3e] = local_44;\n  puVar6[0x3d] = uVar12;\n  puVar6[0x3c] = local_48;\n  puVar6[5] = iVar10;\n  puVar6[0x3f] = param_3;\n  puVar6[0x40] = param_4;\n  puVar6[0x41] = param_5;\n  puVar6[0x42] = param_6;\n  puVar7 = puVar6 + 8;\n  do {\n    *puVar7 = 0;\n    puVar8 = puVar7 + 0xd;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar7[4] = 0;\n    puVar7[5] = 0;\n    puVar7 = puVar8;\n  } while (puVar6 + 0x3c != puVar8);\n  puVar6[8] = iVar2;\n  puVar6[9] = 1;\nLAB_0004a952:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }\n                    \n  FUN_0005c430();\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "undefined2 local_2e;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x4a7a9;" (assignment_expression "uStack_14 = 0x4a7a9" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = gdk_display_get_default();" (assignment_expression "uVar1 = gdk_display_get_default()" identifier = (call_expression "gdk_display_get_default()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = gdk_x11_display_get_xdisplay(uVar1);" (assignment_expression "uVar1 = gdk_x11_display_get_xdisplay(uVar1)" identifier = (call_expression "gdk_x11_display_get_xdisplay(uVar1)" identifier (argument_list "(uVar1)" ( identifier )))) ;) (expression_statement "iVar2 = XLoadQueryFont(uVar1,param_2);" (assignment_expression "iVar2 = XLoadQueryFont(uVar1,param_2)" identifier = (call_expression "XLoadQueryFont(uVar1,param_2)" identifier (argument_list "(uVar1,param_2)" ( identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n    puVar6 = (undefined4 *)0x0;\n    goto LAB_0004a952;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    puVar6 = (undefined4 *)0x0;\n    goto LAB_0004a952;\n  }" { (expression_statement "puVar6 = (undefined4 *)0x0;" (assignment_expression "puVar6 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004a952;" goto statement_identifier ;) })) (expression_statement "uVar3 = XInternAtom(uVar1,"CHARSET_REGISTRY",0);" (assignment_expression "uVar3 = XInternAtom(uVar1,"CHARSET_REGISTRY",0)" identifier = (call_expression "XInternAtom(uVar1,"CHARSET_REGISTRY",0)" identifier (argument_list "(uVar1,"CHARSET_REGISTRY",0)" ( identifier , (string_literal ""CHARSET_REGISTRY"" " string_content ") , number_literal )))) ;) (expression_statement "uVar4 = XInternAtom(uVar1,"CHARSET_ENCODING",0);" (assignment_expression "uVar4 = XInternAtom(uVar1,"CHARSET_ENCODING",0)" identifier = (call_expression "XInternAtom(uVar1,"CHARSET_ENCODING",0)" identifier (argument_list "(uVar1,"CHARSET_ENCODING",0)" ( identifier , (string_literal ""CHARSET_ENCODING"" " string_content ") , number_literal )))) ;) (expression_statement "iVar5 = XGetFontProperty(iVar2,uVar3,&local_2c);" (assignment_expression "iVar5 = XGetFontProperty(iVar2,uVar3,&local_2c)" identifier = (call_expression "XGetFontProperty(iVar2,uVar3,&local_2c)" identifier (argument_list "(iVar2,uVar3,&local_2c)" ( identifier , identifier , (pointer_expression "&local_2c" & identifier) )))) ;) (if_statement "if (iVar5 == 0) {\nLAB_0004a82c:\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar5 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar5 != 0) {\n      local_48 = 0;\n      iVar5 = 0;\n      local_44 = 0;\nLAB_0004a982:\n      uVar12 = 1;\n      pcVar9 = (char *)XGetAtomName(uVar1,local_24);\n      if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar12 = (uint)(pcVar9 == (char *)0x0);\n      }\n      goto LAB_0004a9bb;\n    }\n    uVar12 = 1;\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    local_44 = 0;\n    *puVar6 = &PTR_FUN_000a0dc0;\n    iVar5 = 0;\nLAB_0004a883:\n    uVar1 = XTextWidth(iVar2,"0",1);\n    local_48 = 0;\n  }\n  else {\n    iVar5 = XGetFontProperty(iVar2,uVar4,&local_28);\n    if (iVar5 == 0) goto LAB_0004a82c;\n    iVar5 = XGetAtomName(uVar1,local_2c);\n    iVar10 = XGetAtomName(uVar1,local_28);\n    if ((iVar5 == 0) || (iVar10 == 0)) goto LAB_0004a82c;\n    pcVar9 = (char *)FUN_0002bf70(iVar5,"-",iVar10,0);\n    iVar5 = FUN_0001b250(pcVar9);\n    iVar10 = strcasecmp(pcVar9,"iso10646-1");\n    if (iVar10 == 0) {\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }\n    else if (iVar5 == 1) {\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }\nLAB_0004aadb:\n    FUN_0002c6a0(pcVar9);\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar10 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar10 != 0) goto LAB_0004a982;\n    uVar12 = 1;\nLAB_0004a9bb:\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    *puVar6 = &PTR_FUN_000a0dc0;\n    if (local_48 == 0) goto LAB_0004a883;\n    local_2e = 0x3000;\n    uVar1 = XTextWidth16(iVar2,&local_2e,1);\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0004a82c:\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar5 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar5 != 0) {\n      local_48 = 0;\n      iVar5 = 0;\n      local_44 = 0;\nLAB_0004a982:\n      uVar12 = 1;\n      pcVar9 = (char *)XGetAtomName(uVar1,local_24);\n      if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar12 = (uint)(pcVar9 == (char *)0x0);\n      }\n      goto LAB_0004a9bb;\n    }\n    uVar12 = 1;\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    local_44 = 0;\n    *puVar6 = &PTR_FUN_000a0dc0;\n    iVar5 = 0;\nLAB_0004a883:\n    uVar1 = XTextWidth(iVar2,"0",1);\n    local_48 = 0;\n  }" { (labeled_statement "LAB_0004a82c:\n    uVar3 = XInternAtom(uVar1,"SPACING",0);" statement_identifier : (expression_statement "uVar3 = XInternAtom(uVar1,"SPACING",0);" (assignment_expression "uVar3 = XInternAtom(uVar1,"SPACING",0)" identifier = (call_expression "XInternAtom(uVar1,"SPACING",0)" identifier (argument_list "(uVar1,"SPACING",0)" ( identifier , (string_literal ""SPACING"" " string_content ") , number_literal )))) ;)) (expression_statement "iVar5 = XGetFontProperty(iVar2,uVar3,&local_24);" (assignment_expression "iVar5 = XGetFontProperty(iVar2,uVar3,&local_24)" identifier = (call_expression "XGetFontProperty(iVar2,uVar3,&local_24)" identifier (argument_list "(iVar2,uVar3,&local_24)" ( identifier , identifier , (pointer_expression "&local_24" & identifier) )))) ;) (if_statement "if (iVar5 != 0) {\n      local_48 = 0;\n      iVar5 = 0;\n      local_44 = 0;\nLAB_0004a982:\n      uVar12 = 1;\n      pcVar9 = (char *)XGetAtomName(uVar1,local_24);\n      if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar12 = (uint)(pcVar9 == (char *)0x0);\n      }\n      goto LAB_0004a9bb;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      local_48 = 0;\n      iVar5 = 0;\n      local_44 = 0;\nLAB_0004a982:\n      uVar12 = 1;\n      pcVar9 = (char *)XGetAtomName(uVar1,local_24);\n      if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar12 = (uint)(pcVar9 == (char *)0x0);\n      }\n      goto LAB_0004a9bb;\n    }" { (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0004a982:\n      uVar12 = 1;" statement_identifier : (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" identifier = number_literal) ;)) (expression_statement "pcVar9 = (char *)XGetAtomName(uVar1,local_24);" (assignment_expression "pcVar9 = (char *)XGetAtomName(uVar1,local_24)" identifier = (cast_expression "(char *)XGetAtomName(uVar1,local_24)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "XGetAtomName(uVar1,local_24)" identifier (argument_list "(uVar1,local_24)" ( identifier , identifier ))))) ;) (if_statement "if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar12 = (uint)(pcVar9 == (char *)0x0);\n      }" if (parenthesized_expression "(pcVar9 != (char *)0x0)" ( (binary_expression "pcVar9 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar12 = (uint)(pcVar9 == (char *)0x0);\n      }" { (expression_statement "pcVar9 = strchr("CcMm",(int)*pcVar9);" (assignment_expression "pcVar9 = strchr("CcMm",(int)*pcVar9)" identifier = (call_expression "strchr("CcMm",(int)*pcVar9)" identifier (argument_list "("CcMm",(int)*pcVar9)" ( (string_literal ""CcMm"" " string_content ") , (cast_expression "(int)*pcVar9" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar9" * identifier)) )))) ;) (expression_statement "uVar12 = (uint)(pcVar9 == (char *)0x0);" (assignment_expression "uVar12 = (uint)(pcVar9 == (char *)0x0)" identifier = (call_expression "(uint)(pcVar9 == (char *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar9 == (char *)0x0)" ( (binary_expression "pcVar9 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ;) })) (goto_statement "goto LAB_0004a9bb;" goto statement_identifier ;) })) (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" identifier = number_literal) ;) (expression_statement "puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);" (assignment_expression "puVar6 = (undefined4 *)FUN_0002be10(1,0x10c)" identifier = (cast_expression "(undefined4 *)FUN_0002be10(1,0x10c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002be10(1,0x10c)" identifier (argument_list "(1,0x10c)" ( number_literal , number_literal ))))) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "*puVar6 = &PTR_FUN_000a0dc0;" (assignment_expression "*puVar6 = &PTR_FUN_000a0dc0" (pointer_expression "*puVar6" * identifier) = (pointer_expression "&PTR_FUN_000a0dc0" & identifier)) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0004a883:\n    uVar1 = XTextWidth(iVar2,"0",1);" statement_identifier : (expression_statement "uVar1 = XTextWidth(iVar2,"0",1);" (assignment_expression "uVar1 = XTextWidth(iVar2,"0",1)" identifier = (call_expression "XTextWidth(iVar2,"0",1)" identifier (argument_list "(iVar2,"0",1)" ( identifier , (string_literal ""0"" " string_content ") , number_literal )))) ;)) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    iVar5 = XGetFontProperty(iVar2,uVar4,&local_28);\n    if (iVar5 == 0) goto LAB_0004a82c;\n    iVar5 = XGetAtomName(uVar1,local_2c);\n    iVar10 = XGetAtomName(uVar1,local_28);\n    if ((iVar5 == 0) || (iVar10 == 0)) goto LAB_0004a82c;\n    pcVar9 = (char *)FUN_0002bf70(iVar5,"-",iVar10,0);\n    iVar5 = FUN_0001b250(pcVar9);\n    iVar10 = strcasecmp(pcVar9,"iso10646-1");\n    if (iVar10 == 0) {\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }\n    else if (iVar5 == 1) {\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }\nLAB_0004aadb:\n    FUN_0002c6a0(pcVar9);\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar10 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar10 != 0) goto LAB_0004a982;\n    uVar12 = 1;\nLAB_0004a9bb:\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    *puVar6 = &PTR_FUN_000a0dc0;\n    if (local_48 == 0) goto LAB_0004a883;\n    local_2e = 0x3000;\n    uVar1 = XTextWidth16(iVar2,&local_2e,1);\n  }" else (compound_statement "{\n    iVar5 = XGetFontProperty(iVar2,uVar4,&local_28);\n    if (iVar5 == 0) goto LAB_0004a82c;\n    iVar5 = XGetAtomName(uVar1,local_2c);\n    iVar10 = XGetAtomName(uVar1,local_28);\n    if ((iVar5 == 0) || (iVar10 == 0)) goto LAB_0004a82c;\n    pcVar9 = (char *)FUN_0002bf70(iVar5,"-",iVar10,0);\n    iVar5 = FUN_0001b250(pcVar9);\n    iVar10 = strcasecmp(pcVar9,"iso10646-1");\n    if (iVar10 == 0) {\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }\n    else if (iVar5 == 1) {\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }\nLAB_0004aadb:\n    FUN_0002c6a0(pcVar9);\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar10 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar10 != 0) goto LAB_0004a982;\n    uVar12 = 1;\nLAB_0004a9bb:\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    *puVar6 = &PTR_FUN_000a0dc0;\n    if (local_48 == 0) goto LAB_0004a883;\n    local_2e = 0x3000;\n    uVar1 = XTextWidth16(iVar2,&local_2e,1);\n  }" { (expression_statement "iVar5 = XGetFontProperty(iVar2,uVar4,&local_28);" (assignment_expression "iVar5 = XGetFontProperty(iVar2,uVar4,&local_28)" identifier = (call_expression "XGetFontProperty(iVar2,uVar4,&local_28)" identifier (argument_list "(iVar2,uVar4,&local_28)" ( identifier , identifier , (pointer_expression "&local_28" & identifier) )))) ;) (if_statement "if (iVar5 == 0) goto LAB_0004a82c;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004a82c;" goto statement_identifier ;)) (expression_statement "iVar5 = XGetAtomName(uVar1,local_2c);" (assignment_expression "iVar5 = XGetAtomName(uVar1,local_2c)" identifier = (call_expression "XGetAtomName(uVar1,local_2c)" identifier (argument_list "(uVar1,local_2c)" ( identifier , identifier )))) ;) (expression_statement "iVar10 = XGetAtomName(uVar1,local_28);" (assignment_expression "iVar10 = XGetAtomName(uVar1,local_28)" identifier = (call_expression "XGetAtomName(uVar1,local_28)" identifier (argument_list "(uVar1,local_28)" ( identifier , identifier )))) ;) (if_statement "if ((iVar5 == 0) || (iVar10 == 0)) goto LAB_0004a82c;" if (parenthesized_expression "((iVar5 == 0) || (iVar10 == 0))" ( (binary_expression "(iVar5 == 0) || (iVar10 == 0)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_0004a82c;" goto statement_identifier ;)) (expression_statement "pcVar9 = (char *)FUN_0002bf70(iVar5,"-",iVar10,0);" (assignment_expression "pcVar9 = (char *)FUN_0002bf70(iVar5,"-",iVar10,0)" identifier = (cast_expression "(char *)FUN_0002bf70(iVar5,"-",iVar10,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002bf70(iVar5,"-",iVar10,0)" identifier (argument_list "(iVar5,"-",iVar10,0)" ( identifier , (string_literal ""-"" " string_content ") , identifier , number_literal ))))) ;) (expression_statement "iVar5 = FUN_0001b250(pcVar9);" (assignment_expression "iVar5 = FUN_0001b250(pcVar9)" identifier = (call_expression "FUN_0001b250(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier )))) ;) (expression_statement "iVar10 = strcasecmp(pcVar9,"iso10646-1");" (assignment_expression "iVar10 = strcasecmp(pcVar9,"iso10646-1")" identifier = (call_expression "strcasecmp(pcVar9,"iso10646-1")" identifier (argument_list "(pcVar9,"iso10646-1")" ( identifier , (string_literal ""iso10646-1"" " string_content ") )))) ;) (if_statement "if (iVar10 == 0) {\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }\n    else if (iVar5 == 1) {\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }" { (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = 0x37;" (assignment_expression "iVar5 = 0x37" identifier = number_literal) ;) (expression_statement "local_44 = 0x37;" (assignment_expression "local_44 = 0x37" identifier = number_literal) ;) }) (else_clause "else if (iVar5 == 1) {\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }" else (if_statement "if (iVar5 == 1) {\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }" if (parenthesized_expression "(iVar5 == 1)" ( (binary_expression "iVar5 == 1" identifier == number_literal) )) (compound_statement "{\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }" { (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) (do_statement "do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);" do (compound_statement "{\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      }" { (expression_statement "iVar11 = FUN_00048d90();" (assignment_expression "iVar11 = FUN_00048d90()" identifier = (call_expression "FUN_00048d90()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }" { (expression_statement "local_44 = 1;" (assignment_expression "local_44 = 1" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0004aadb;" goto statement_identifier ;) })) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar10 != 0x20)" ( (binary_expression "iVar10 != 0x20" identifier != number_literal) )) ;) (expression_statement "local_44 = 2;" (assignment_expression "local_44 = 2" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }" else (compound_statement "{\n      local_48 = 0;\n      local_44 = iVar5;\n    }" { (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_44 = iVar5;" (assignment_expression "local_44 = iVar5" identifier = identifier) ;) }))))) (labeled_statement "LAB_0004aadb:\n    FUN_0002c6a0(pcVar9);" statement_identifier : (expression_statement "FUN_0002c6a0(pcVar9);" (call_expression "FUN_0002c6a0(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;)) (expression_statement "uVar3 = XInternAtom(uVar1,"SPACING",0);" (assignment_expression "uVar3 = XInternAtom(uVar1,"SPACING",0)" identifier = (call_expression "XInternAtom(uVar1,"SPACING",0)" identifier (argument_list "(uVar1,"SPACING",0)" ( identifier , (string_literal ""SPACING"" " string_content ") , number_literal )))) ;) (expression_statement "iVar10 = XGetFontProperty(iVar2,uVar3,&local_24);" (assignment_expression "iVar10 = XGetFontProperty(iVar2,uVar3,&local_24)" identifier = (call_expression "XGetFontProperty(iVar2,uVar3,&local_24)" identifier (argument_list "(iVar2,uVar3,&local_24)" ( identifier , identifier , (pointer_expression "&local_24" & identifier) )))) ;) (if_statement "if (iVar10 != 0) goto LAB_0004a982;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004a982;" goto statement_identifier ;)) (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0004a9bb:\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);" statement_identifier : (expression_statement "puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);" (assignment_expression "puVar6 = (undefined4 *)FUN_0002be10(1,0x10c)" identifier = (cast_expression "(undefined4 *)FUN_0002be10(1,0x10c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002be10(1,0x10c)" identifier (argument_list "(1,0x10c)" ( number_literal , number_literal ))))) ;)) (expression_statement "*puVar6 = &PTR_FUN_000a0dc0;" (assignment_expression "*puVar6 = &PTR_FUN_000a0dc0" (pointer_expression "*puVar6" * identifier) = (pointer_expression "&PTR_FUN_000a0dc0" & identifier)) ;) (if_statement "if (local_48 == 0) goto LAB_0004a883;" if (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004a883;" goto statement_identifier ;)) (expression_statement "local_2e = 0x3000;" (assignment_expression "local_2e = 0x3000" identifier = number_literal) ;) (expression_statement "uVar1 = XTextWidth16(iVar2,&local_2e,1);" (assignment_expression "uVar1 = XTextWidth16(iVar2,&local_2e,1)" identifier = (call_expression "XTextWidth16(iVar2,&local_2e,1)" identifier (argument_list "(iVar2,&local_2e,1)" ( identifier , (pointer_expression "&local_2e" & identifier) , number_literal )))) ;) }))) (expression_statement "iVar10 = *(int *)(iVar2 + 0x4c);" (assignment_expression "iVar10 = *(int *)(iVar2 + 0x4c)" identifier = (pointer_expression "*(int *)(iVar2 + 0x4c)" * (cast_expression "(int *)(iVar2 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x4c)" ( (binary_expression "iVar2 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "puVar6[2] = uVar1;" (assignment_expression "puVar6[2] = uVar1" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar11 = *(int *)(iVar2 + 0x48);" (assignment_expression "iVar11 = *(int *)(iVar2 + 0x48)" identifier = (pointer_expression "*(int *)(iVar2 + 0x48)" * (cast_expression "(int *)(iVar2 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x48)" ( (binary_expression "iVar2 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "puVar6[1] = iVar5;" (assignment_expression "puVar6[1] = iVar5" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[6] = 1;" (assignment_expression "puVar6[6] = 1" (subscript_expression "puVar6[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6[4] = iVar11;" (assignment_expression "puVar6[4] = iVar11" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[3] = iVar11 + iVar10;" (assignment_expression "puVar6[3] = iVar11 + iVar10" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = (binary_expression "iVar11 + iVar10" identifier + identifier)) ;) (expression_statement "puVar6[7] = 0;" (assignment_expression "puVar6[7] = 0" (subscript_expression "puVar6[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6[0x3e] = local_44;" (assignment_expression "puVar6[0x3e] = local_44" (subscript_expression "puVar6[0x3e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[0x3d] = uVar12;" (assignment_expression "puVar6[0x3d] = uVar12" (subscript_expression "puVar6[0x3d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[0x3c] = local_48;" (assignment_expression "puVar6[0x3c] = local_48" (subscript_expression "puVar6[0x3c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[5] = iVar10;" (assignment_expression "puVar6[5] = iVar10" (subscript_expression "puVar6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[0x3f] = param_3;" (assignment_expression "puVar6[0x3f] = param_3" (subscript_expression "puVar6[0x3f]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[0x40] = param_4;" (assignment_expression "puVar6[0x40] = param_4" (subscript_expression "puVar6[0x40]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[0x41] = param_5;" (assignment_expression "puVar6[0x41] = param_5" (subscript_expression "puVar6[0x41]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[0x42] = param_6;" (assignment_expression "puVar6[0x42] = param_6" (subscript_expression "puVar6[0x42]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7 = puVar6 + 8;" (assignment_expression "puVar7 = puVar6 + 8" identifier = (binary_expression "puVar6 + 8" identifier + number_literal)) ;) (do_statement "do {\n    *puVar7 = 0;\n    puVar8 = puVar7 + 0xd;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar7[4] = 0;\n    puVar7[5] = 0;\n    puVar7 = puVar8;\n  } while (puVar6 + 0x3c != puVar8);" do (compound_statement "{\n    *puVar7 = 0;\n    puVar8 = puVar7 + 0xd;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar7[4] = 0;\n    puVar7[5] = 0;\n    puVar7 = puVar8;\n  }" { (expression_statement "*puVar7 = 0;" (assignment_expression "*puVar7 = 0" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar8 = puVar7 + 0xd;" (assignment_expression "puVar8 = puVar7 + 0xd" identifier = (binary_expression "puVar7 + 0xd" identifier + number_literal)) ;) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[2] = 0;" (assignment_expression "puVar7[2] = 0" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[4] = 0;" (assignment_expression "puVar7[4] = 0" (subscript_expression "puVar7[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7 = puVar8;" (assignment_expression "puVar7 = puVar8" identifier = identifier) ;) }) while (parenthesized_expression "(puVar6 + 0x3c != puVar8)" ( (binary_expression "puVar6 + 0x3c != puVar8" (binary_expression "puVar6 + 0x3c" identifier + number_literal) != identifier) )) ;) (expression_statement "puVar6[8] = iVar2;" (assignment_expression "puVar6[8] = iVar2" (subscript_expression "puVar6[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[9] = 1;" (assignment_expression "puVar6[9] = 1" (subscript_expression "puVar6[9]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_0004a952:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return puVar6;\n  }" { (return_statement "return puVar6;" return identifier ;) }))) (expression_statement "FUN_0005c430();" (call_expression "FUN_0005c430()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression 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 , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & 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) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )))) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT )))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (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) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , LIT ))))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (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 = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT )))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != IDENT) )) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "undefined4 *\nFUN_0004a7a0(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  char *pcVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  int in_GS_OFFSET;\n  int local_48;\n  int local_44;\n  undefined2 local_2e;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4a7a9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar1 = gdk_display_get_default();\n  uVar1 = gdk_x11_display_get_xdisplay(uVar1);\n  iVar2 = XLoadQueryFont(uVar1,param_2);\n  if (iVar2 == 0) {\n    puVar6 = (undefined4 *)0x0;\n    goto LAB_0004a952;\n  }\n  uVar3 = XInternAtom(uVar1,"CHARSET_REGISTRY",0);\n  uVar4 = XInternAtom(uVar1,"CHARSET_ENCODING",0);\n  iVar5 = XGetFontProperty(iVar2,uVar3,&local_2c);\n  if (iVar5 == 0) {\nLAB_0004a82c:\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar5 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar5 != 0) {\n      local_48 = 0;\n      iVar5 = 0;\n      local_44 = 0;\nLAB_0004a982:\n      uVar12 = 1;\n      pcVar9 = (char *)XGetAtomName(uVar1,local_24);\n      if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar12 = (uint)(pcVar9 == (char *)0x0);\n      }\n      goto LAB_0004a9bb;\n    }\n    uVar12 = 1;\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    local_44 = 0;\n    *puVar6 = &PTR_FUN_000a0dc0;\n    iVar5 = 0;\nLAB_0004a883:\n    uVar1 = XTextWidth(iVar2,"0",1);\n    local_48 = 0;\n  }\n  else {\n    iVar5 = XGetFontProperty(iVar2,uVar4,&local_28);\n    if (iVar5 == 0) goto LAB_0004a82c;\n    iVar5 = XGetAtomName(uVar1,local_2c);\n    iVar10 = XGetAtomName(uVar1,local_28);\n    if ((iVar5 == 0) || (iVar10 == 0)) goto LAB_0004a82c;\n    pcVar9 = (char *)FUN_0002bf70(iVar5,"-",iVar10,0);\n    iVar5 = FUN_0001b250(pcVar9);\n    iVar10 = strcasecmp(pcVar9,"iso10646-1");\n    if (iVar10 == 0) {\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }\n    else if (iVar5 == 1) {\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }\nLAB_0004aadb:\n    FUN_0002c6a0(pcVar9);\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar10 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar10 != 0) goto LAB_0004a982;\n    uVar12 = 1;\nLAB_0004a9bb:\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    *puVar6 = &PTR_FUN_000a0dc0;\n    if (local_48 == 0) goto LAB_0004a883;\n    local_2e = 0x3000;\n    uVar1 = XTextWidth16(iVar2,&local_2e,1);\n  }\n  iVar10 = *(int *)(iVar2 + 0x4c);\n  puVar6[2] = uVar1;\n  iVar11 = *(int *)(iVar2 + 0x48);\n  puVar6[1] = iVar5;\n  puVar6[6] = 1;\n  puVar6[4] = iVar11;\n  puVar6[3] = iVar11 + iVar10;\n  puVar6[7] = 0;\n  puVar6[0x3e] = local_44;\n  puVar6[0x3d] = uVar12;\n  puVar6[0x3c] = local_48;\n  puVar6[5] = iVar10;\n  puVar6[0x3f] = param_3;\n  puVar6[0x40] = param_4;\n  puVar6[0x41] = param_5;\n  puVar6[0x42] = param_6;\n  puVar7 = puVar6 + 8;\n  do {\n    *puVar7 = 0;\n    puVar8 = puVar7 + 0xd;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar7[4] = 0;\n    puVar7[5] = 0;\n    puVar7 = puVar8;\n  } while (puVar6 + 0x3c != puVar8);\n  puVar6[8] = iVar2;\n  puVar6[9] = 1;\nLAB_0004a952:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }\n                    \n  FUN_0005c430();\n}" (type_identifier "undefined4") (pointer_declarator "*\nFUN_0004a7a0(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6)" (* "*") (function_declarator "FUN_0004a7a0(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6)" (identifier "FUN_0004a7a0") (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) () ")")))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  char *pcVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  int in_GS_OFFSET;\n  int local_48;\n  int local_44;\n  undefined2 local_2e;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4a7a9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar1 = gdk_display_get_default();\n  uVar1 = gdk_x11_display_get_xdisplay(uVar1);\n  iVar2 = XLoadQueryFont(uVar1,param_2);\n  if (iVar2 == 0) {\n    puVar6 = (undefined4 *)0x0;\n    goto LAB_0004a952;\n  }\n  uVar3 = XInternAtom(uVar1,"CHARSET_REGISTRY",0);\n  uVar4 = XInternAtom(uVar1,"CHARSET_ENCODING",0);\n  iVar5 = XGetFontProperty(iVar2,uVar3,&local_2c);\n  if (iVar5 == 0) {\nLAB_0004a82c:\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar5 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar5 != 0) {\n      local_48 = 0;\n      iVar5 = 0;\n      local_44 = 0;\nLAB_0004a982:\n      uVar12 = 1;\n      pcVar9 = (char *)XGetAtomName(uVar1,local_24);\n      if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar12 = (uint)(pcVar9 == (char *)0x0);\n      }\n      goto LAB_0004a9bb;\n    }\n    uVar12 = 1;\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    local_44 = 0;\n    *puVar6 = &PTR_FUN_000a0dc0;\n    iVar5 = 0;\nLAB_0004a883:\n    uVar1 = XTextWidth(iVar2,"0",1);\n    local_48 = 0;\n  }\n  else {\n    iVar5 = XGetFontProperty(iVar2,uVar4,&local_28);\n    if (iVar5 == 0) goto LAB_0004a82c;\n    iVar5 = XGetAtomName(uVar1,local_2c);\n    iVar10 = XGetAtomName(uVar1,local_28);\n    if ((iVar5 == 0) || (iVar10 == 0)) goto LAB_0004a82c;\n    pcVar9 = (char *)FUN_0002bf70(iVar5,"-",iVar10,0);\n    iVar5 = FUN_0001b250(pcVar9);\n    iVar10 = strcasecmp(pcVar9,"iso10646-1");\n    if (iVar10 == 0) {\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }\n    else if (iVar5 == 1) {\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }\nLAB_0004aadb:\n    FUN_0002c6a0(pcVar9);\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar10 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar10 != 0) goto LAB_0004a982;\n    uVar12 = 1;\nLAB_0004a9bb:\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    *puVar6 = &PTR_FUN_000a0dc0;\n    if (local_48 == 0) goto LAB_0004a883;\n    local_2e = 0x3000;\n    uVar1 = XTextWidth16(iVar2,&local_2e,1);\n  }\n  iVar10 = *(int *)(iVar2 + 0x4c);\n  puVar6[2] = uVar1;\n  iVar11 = *(int *)(iVar2 + 0x48);\n  puVar6[1] = iVar5;\n  puVar6[6] = 1;\n  puVar6[4] = iVar11;\n  puVar6[3] = iVar11 + iVar10;\n  puVar6[7] = 0;\n  puVar6[0x3e] = local_44;\n  puVar6[0x3d] = uVar12;\n  puVar6[0x3c] = local_48;\n  puVar6[5] = iVar10;\n  puVar6[0x3f] = param_3;\n  puVar6[0x40] = param_4;\n  puVar6[0x41] = param_5;\n  puVar6[0x42] = param_6;\n  puVar7 = puVar6 + 8;\n  do {\n    *puVar7 = 0;\n    puVar8 = puVar7 + 0xd;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar7[4] = 0;\n    puVar7[5] = 0;\n    puVar7 = puVar8;\n  } while (puVar6 + 0x3c != puVar8);\n  puVar6[8] = iVar2;\n  puVar6[9] = 1;\nLAB_0004a952:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }\n                    \n  FUN_0005c430();\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "char *pcVar9;" (primitive_type "char") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "int local_48;" (primitive_type "int") (identifier "local_48") (; ";")) (declaration "int local_44;" (primitive_type "int") (identifier "local_44") (; ";")) (declaration "undefined2 local_2e;" (type_identifier "undefined2") (identifier "local_2e") (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x4a7a9;" (assignment_expression "uStack_14 = 0x4a7a9" (identifier "uStack_14") (= "=") (number_literal "0x4a7a9")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "uVar1 = gdk_display_get_default();" (assignment_expression "uVar1 = gdk_display_get_default()" (identifier "uVar1") (= "=") (call_expression "gdk_display_get_default()" (identifier "gdk_display_get_default") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar1 = gdk_x11_display_get_xdisplay(uVar1);" (assignment_expression "uVar1 = gdk_x11_display_get_xdisplay(uVar1)" (identifier "uVar1") (= "=") (call_expression "gdk_x11_display_get_xdisplay(uVar1)" (identifier "gdk_x11_display_get_xdisplay") (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")")))) (; ";")) (expression_statement "iVar2 = XLoadQueryFont(uVar1,param_2);" (assignment_expression "iVar2 = XLoadQueryFont(uVar1,param_2)" (identifier "iVar2") (= "=") (call_expression "XLoadQueryFont(uVar1,param_2)" (identifier "XLoadQueryFont") (argument_list "(uVar1,param_2)" (( "(") (identifier "uVar1") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n    puVar6 = (undefined4 *)0x0;\n    goto LAB_0004a952;\n  }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    puVar6 = (undefined4 *)0x0;\n    goto LAB_0004a952;\n  }" ({ "{") (expression_statement "puVar6 = (undefined4 *)0x0;" (assignment_expression "puVar6 = (undefined4 *)0x0" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0004a952;" (goto "goto") (statement_identifier "LAB_0004a952") (; ";")) (} "}"))) (expression_statement "uVar3 = XInternAtom(uVar1,"CHARSET_REGISTRY",0);" (assignment_expression "uVar3 = XInternAtom(uVar1,"CHARSET_REGISTRY",0)" (identifier "uVar3") (= "=") (call_expression "XInternAtom(uVar1,"CHARSET_REGISTRY",0)" (identifier "XInternAtom") (argument_list "(uVar1,"CHARSET_REGISTRY",0)" (( "(") (identifier "uVar1") (, ",") (string_literal ""CHARSET_REGISTRY"" (" """) (string_content "CHARSET_REGISTRY") (" """)) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar4 = XInternAtom(uVar1,"CHARSET_ENCODING",0);" (assignment_expression "uVar4 = XInternAtom(uVar1,"CHARSET_ENCODING",0)" (identifier "uVar4") (= "=") (call_expression "XInternAtom(uVar1,"CHARSET_ENCODING",0)" (identifier "XInternAtom") (argument_list "(uVar1,"CHARSET_ENCODING",0)" (( "(") (identifier "uVar1") (, ",") (string_literal ""CHARSET_ENCODING"" (" """) (string_content "CHARSET_ENCODING") (" """)) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "iVar5 = XGetFontProperty(iVar2,uVar3,&local_2c);" (assignment_expression "iVar5 = XGetFontProperty(iVar2,uVar3,&local_2c)" (identifier "iVar5") (= "=") (call_expression "XGetFontProperty(iVar2,uVar3,&local_2c)" (identifier "XGetFontProperty") (argument_list "(iVar2,uVar3,&local_2c)" (( "(") (identifier "iVar2") (, ",") (identifier "uVar3") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\nLAB_0004a82c:\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar5 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar5 != 0) {\n      local_48 = 0;\n      iVar5 = 0;\n      local_44 = 0;\nLAB_0004a982:\n      uVar12 = 1;\n      pcVar9 = (char *)XGetAtomName(uVar1,local_24);\n      if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar12 = (uint)(pcVar9 == (char *)0x0);\n      }\n      goto LAB_0004a9bb;\n    }\n    uVar12 = 1;\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    local_44 = 0;\n    *puVar6 = &PTR_FUN_000a0dc0;\n    iVar5 = 0;\nLAB_0004a883:\n    uVar1 = XTextWidth(iVar2,"0",1);\n    local_48 = 0;\n  }\n  else {\n    iVar5 = XGetFontProperty(iVar2,uVar4,&local_28);\n    if (iVar5 == 0) goto LAB_0004a82c;\n    iVar5 = XGetAtomName(uVar1,local_2c);\n    iVar10 = XGetAtomName(uVar1,local_28);\n    if ((iVar5 == 0) || (iVar10 == 0)) goto LAB_0004a82c;\n    pcVar9 = (char *)FUN_0002bf70(iVar5,"-",iVar10,0);\n    iVar5 = FUN_0001b250(pcVar9);\n    iVar10 = strcasecmp(pcVar9,"iso10646-1");\n    if (iVar10 == 0) {\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }\n    else if (iVar5 == 1) {\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }\nLAB_0004aadb:\n    FUN_0002c6a0(pcVar9);\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar10 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar10 != 0) goto LAB_0004a982;\n    uVar12 = 1;\nLAB_0004a9bb:\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    *puVar6 = &PTR_FUN_000a0dc0;\n    if (local_48 == 0) goto LAB_0004a883;\n    local_2e = 0x3000;\n    uVar1 = XTextWidth16(iVar2,&local_2e,1);\n  }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0004a82c:\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar5 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar5 != 0) {\n      local_48 = 0;\n      iVar5 = 0;\n      local_44 = 0;\nLAB_0004a982:\n      uVar12 = 1;\n      pcVar9 = (char *)XGetAtomName(uVar1,local_24);\n      if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar12 = (uint)(pcVar9 == (char *)0x0);\n      }\n      goto LAB_0004a9bb;\n    }\n    uVar12 = 1;\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    local_44 = 0;\n    *puVar6 = &PTR_FUN_000a0dc0;\n    iVar5 = 0;\nLAB_0004a883:\n    uVar1 = XTextWidth(iVar2,"0",1);\n    local_48 = 0;\n  }" ({ "{") (labeled_statement "LAB_0004a82c:\n    uVar3 = XInternAtom(uVar1,"SPACING",0);" (statement_identifier "LAB_0004a82c") (: ":") (expression_statement "uVar3 = XInternAtom(uVar1,"SPACING",0);" (assignment_expression "uVar3 = XInternAtom(uVar1,"SPACING",0)" (identifier "uVar3") (= "=") (call_expression "XInternAtom(uVar1,"SPACING",0)" (identifier "XInternAtom") (argument_list "(uVar1,"SPACING",0)" (( "(") (identifier "uVar1") (, ",") (string_literal ""SPACING"" (" """) (string_content "SPACING") (" """)) (, ",") (number_literal "0") () ")")))) (; ";"))) (expression_statement "iVar5 = XGetFontProperty(iVar2,uVar3,&local_24);" (assignment_expression "iVar5 = XGetFontProperty(iVar2,uVar3,&local_24)" (identifier "iVar5") (= "=") (call_expression "XGetFontProperty(iVar2,uVar3,&local_24)" (identifier "XGetFontProperty") (argument_list "(iVar2,uVar3,&local_24)" (( "(") (identifier "iVar2") (, ",") (identifier "uVar3") (, ",") (pointer_expression "&local_24" (& "&") (identifier "local_24")) () ")")))) (; ";")) (if_statement "if (iVar5 != 0) {\n      local_48 = 0;\n      iVar5 = 0;\n      local_44 = 0;\nLAB_0004a982:\n      uVar12 = 1;\n      pcVar9 = (char *)XGetAtomName(uVar1,local_24);\n      if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar12 = (uint)(pcVar9 == (char *)0x0);\n      }\n      goto LAB_0004a9bb;\n    }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      local_48 = 0;\n      iVar5 = 0;\n      local_44 = 0;\nLAB_0004a982:\n      uVar12 = 1;\n      pcVar9 = (char *)XGetAtomName(uVar1,local_24);\n      if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar12 = (uint)(pcVar9 == (char *)0x0);\n      }\n      goto LAB_0004a9bb;\n    }" ({ "{") (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" (identifier "local_44") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0004a982:\n      uVar12 = 1;" (statement_identifier "LAB_0004a982") (: ":") (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" (identifier "uVar12") (= "=") (number_literal "1")) (; ";"))) (expression_statement "pcVar9 = (char *)XGetAtomName(uVar1,local_24);" (assignment_expression "pcVar9 = (char *)XGetAtomName(uVar1,local_24)" (identifier "pcVar9") (= "=") (cast_expression "(char *)XGetAtomName(uVar1,local_24)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "XGetAtomName(uVar1,local_24)" (identifier "XGetAtomName") (argument_list "(uVar1,local_24)" (( "(") (identifier "uVar1") (, ",") (identifier "local_24") () ")"))))) (; ";")) (if_statement "if (pcVar9 != (char *)0x0) {\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar12 = (uint)(pcVar9 == (char *)0x0);\n      }" (if "if") (parenthesized_expression "(pcVar9 != (char *)0x0)" (( "(") (binary_expression "pcVar9 != (char *)0x0" (identifier "pcVar9") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        pcVar9 = strchr("CcMm",(int)*pcVar9);\n        uVar12 = (uint)(pcVar9 == (char *)0x0);\n      }" ({ "{") (expression_statement "pcVar9 = strchr("CcMm",(int)*pcVar9);" (assignment_expression "pcVar9 = strchr("CcMm",(int)*pcVar9)" (identifier "pcVar9") (= "=") (call_expression "strchr("CcMm",(int)*pcVar9)" (identifier "strchr") (argument_list "("CcMm",(int)*pcVar9)" (( "(") (string_literal ""CcMm"" (" """) (string_content "CcMm") (" """)) (, ",") (cast_expression "(int)*pcVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9"))) () ")")))) (; ";")) (expression_statement "uVar12 = (uint)(pcVar9 == (char *)0x0);" (assignment_expression "uVar12 = (uint)(pcVar9 == (char *)0x0)" (identifier "uVar12") (= "=") (call_expression "(uint)(pcVar9 == (char *)0x0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pcVar9 == (char *)0x0)" (( "(") (binary_expression "pcVar9 == (char *)0x0" (identifier "pcVar9") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")))) (; ";")) (} "}"))) (goto_statement "goto LAB_0004a9bb;" (goto "goto") (statement_identifier "LAB_0004a9bb") (; ";")) (} "}"))) (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" (identifier "uVar12") (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);" (assignment_expression "puVar6 = (undefined4 *)FUN_0002be10(1,0x10c)" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)FUN_0002be10(1,0x10c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0002be10(1,0x10c)" (identifier "FUN_0002be10") (argument_list "(1,0x10c)" (( "(") (number_literal "1") (, ",") (number_literal "0x10c") () ")"))))) (; ";")) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" (identifier "local_44") (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar6 = &PTR_FUN_000a0dc0;" (assignment_expression "*puVar6 = &PTR_FUN_000a0dc0" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (pointer_expression "&PTR_FUN_000a0dc0" (& "&") (identifier "PTR_FUN_000a0dc0"))) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0004a883:\n    uVar1 = XTextWidth(iVar2,"0",1);" (statement_identifier "LAB_0004a883") (: ":") (expression_statement "uVar1 = XTextWidth(iVar2,"0",1);" (assignment_expression "uVar1 = XTextWidth(iVar2,"0",1)" (identifier "uVar1") (= "=") (call_expression "XTextWidth(iVar2,"0",1)" (identifier "XTextWidth") (argument_list "(iVar2,"0",1)" (( "(") (identifier "iVar2") (, ",") (string_literal ""0"" (" """) (string_content "0") (" """)) (, ",") (number_literal "1") () ")")))) (; ";"))) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    iVar5 = XGetFontProperty(iVar2,uVar4,&local_28);\n    if (iVar5 == 0) goto LAB_0004a82c;\n    iVar5 = XGetAtomName(uVar1,local_2c);\n    iVar10 = XGetAtomName(uVar1,local_28);\n    if ((iVar5 == 0) || (iVar10 == 0)) goto LAB_0004a82c;\n    pcVar9 = (char *)FUN_0002bf70(iVar5,"-",iVar10,0);\n    iVar5 = FUN_0001b250(pcVar9);\n    iVar10 = strcasecmp(pcVar9,"iso10646-1");\n    if (iVar10 == 0) {\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }\n    else if (iVar5 == 1) {\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }\nLAB_0004aadb:\n    FUN_0002c6a0(pcVar9);\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar10 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar10 != 0) goto LAB_0004a982;\n    uVar12 = 1;\nLAB_0004a9bb:\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    *puVar6 = &PTR_FUN_000a0dc0;\n    if (local_48 == 0) goto LAB_0004a883;\n    local_2e = 0x3000;\n    uVar1 = XTextWidth16(iVar2,&local_2e,1);\n  }" (else "else") (compound_statement "{\n    iVar5 = XGetFontProperty(iVar2,uVar4,&local_28);\n    if (iVar5 == 0) goto LAB_0004a82c;\n    iVar5 = XGetAtomName(uVar1,local_2c);\n    iVar10 = XGetAtomName(uVar1,local_28);\n    if ((iVar5 == 0) || (iVar10 == 0)) goto LAB_0004a82c;\n    pcVar9 = (char *)FUN_0002bf70(iVar5,"-",iVar10,0);\n    iVar5 = FUN_0001b250(pcVar9);\n    iVar10 = strcasecmp(pcVar9,"iso10646-1");\n    if (iVar10 == 0) {\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }\n    else if (iVar5 == 1) {\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }\nLAB_0004aadb:\n    FUN_0002c6a0(pcVar9);\n    uVar3 = XInternAtom(uVar1,"SPACING",0);\n    iVar10 = XGetFontProperty(iVar2,uVar3,&local_24);\n    if (iVar10 != 0) goto LAB_0004a982;\n    uVar12 = 1;\nLAB_0004a9bb:\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);\n    *puVar6 = &PTR_FUN_000a0dc0;\n    if (local_48 == 0) goto LAB_0004a883;\n    local_2e = 0x3000;\n    uVar1 = XTextWidth16(iVar2,&local_2e,1);\n  }" ({ "{") (expression_statement "iVar5 = XGetFontProperty(iVar2,uVar4,&local_28);" (assignment_expression "iVar5 = XGetFontProperty(iVar2,uVar4,&local_28)" (identifier "iVar5") (= "=") (call_expression "XGetFontProperty(iVar2,uVar4,&local_28)" (identifier "XGetFontProperty") (argument_list "(iVar2,uVar4,&local_28)" (( "(") (identifier "iVar2") (, ",") (identifier "uVar4") (, ",") (pointer_expression "&local_28" (& "&") (identifier "local_28")) () ")")))) (; ";")) (if_statement "if (iVar5 == 0) goto LAB_0004a82c;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004a82c;" (goto "goto") (statement_identifier "LAB_0004a82c") (; ";"))) (expression_statement "iVar5 = XGetAtomName(uVar1,local_2c);" (assignment_expression "iVar5 = XGetAtomName(uVar1,local_2c)" (identifier "iVar5") (= "=") (call_expression "XGetAtomName(uVar1,local_2c)" (identifier "XGetAtomName") (argument_list "(uVar1,local_2c)" (( "(") (identifier "uVar1") (, ",") (identifier "local_2c") () ")")))) (; ";")) (expression_statement "iVar10 = XGetAtomName(uVar1,local_28);" (assignment_expression "iVar10 = XGetAtomName(uVar1,local_28)" (identifier "iVar10") (= "=") (call_expression "XGetAtomName(uVar1,local_28)" (identifier "XGetAtomName") (argument_list "(uVar1,local_28)" (( "(") (identifier "uVar1") (, ",") (identifier "local_28") () ")")))) (; ";")) (if_statement "if ((iVar5 == 0) || (iVar10 == 0)) goto LAB_0004a82c;" (if "if") (parenthesized_expression "((iVar5 == 0) || (iVar10 == 0))" (( "(") (binary_expression "(iVar5 == 0) || (iVar10 == 0)" (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_0004a82c;" (goto "goto") (statement_identifier "LAB_0004a82c") (; ";"))) (expression_statement "pcVar9 = (char *)FUN_0002bf70(iVar5,"-",iVar10,0);" (assignment_expression "pcVar9 = (char *)FUN_0002bf70(iVar5,"-",iVar10,0)" (identifier "pcVar9") (= "=") (cast_expression "(char *)FUN_0002bf70(iVar5,"-",iVar10,0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0002bf70(iVar5,"-",iVar10,0)" (identifier "FUN_0002bf70") (argument_list "(iVar5,"-",iVar10,0)" (( "(") (identifier "iVar5") (, ",") (string_literal ""-"" (" """) (string_content "-") (" """)) (, ",") (identifier "iVar10") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "iVar5 = FUN_0001b250(pcVar9);" (assignment_expression "iVar5 = FUN_0001b250(pcVar9)" (identifier "iVar5") (= "=") (call_expression "FUN_0001b250(pcVar9)" (identifier "FUN_0001b250") (argument_list "(pcVar9)" (( "(") (identifier "pcVar9") () ")")))) (; ";")) (expression_statement "iVar10 = strcasecmp(pcVar9,"iso10646-1");" (assignment_expression "iVar10 = strcasecmp(pcVar9,"iso10646-1")" (identifier "iVar10") (= "=") (call_expression "strcasecmp(pcVar9,"iso10646-1")" (identifier "strcasecmp") (argument_list "(pcVar9,"iso10646-1")" (( "(") (identifier "pcVar9") (, ",") (string_literal ""iso10646-1"" (" """) (string_content "iso10646-1") (" """)) () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }\n    else if (iVar5 == 1) {\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_48 = 1;\n      iVar5 = 0x37;\n      local_44 = 0x37;\n    }" ({ "{") (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" (identifier "local_48") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar5 = 0x37;" (assignment_expression "iVar5 = 0x37" (identifier "iVar5") (= "=") (number_literal "0x37")) (; ";")) (expression_statement "local_44 = 0x37;" (assignment_expression "local_44 = 0x37" (identifier "local_44") (= "=") (number_literal "0x37")) (; ";")) (} "}")) (else_clause "else if (iVar5 == 1) {\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }" (else "else") (if_statement "if (iVar5 == 1) {\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }\n    else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }" (if "if") (parenthesized_expression "(iVar5 == 1)" (( "(") (binary_expression "iVar5 == 1" (identifier "iVar5") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      iVar10 = 1;\n      do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);\n      local_44 = 2;\n      local_48 = 0;\n    }" ({ "{") (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" (identifier "iVar10") (= "=") (number_literal "1")) (; ";")) (do_statement "do {\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      } while (iVar10 != 0x20);" (do "do") (compound_statement "{\n        iVar11 = FUN_00048d90();\n        if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }\n        iVar10 = iVar10 + 1;\n      }" ({ "{") (expression_statement "iVar11 = FUN_00048d90();" (assignment_expression "iVar11 = FUN_00048d90()" (identifier "iVar11") (= "=") (call_expression "FUN_00048d90()" (identifier "FUN_00048d90") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar11 == 0) {\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_44 = 1;\n          local_48 = 0;\n          goto LAB_0004aadb;\n        }" ({ "{") (expression_statement "local_44 = 1;" (assignment_expression "local_44 = 1" (identifier "local_44") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0004aadb;" (goto "goto") (statement_identifier "LAB_0004aadb") (; ";")) (} "}"))) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar10 != 0x20)" (( "(") (binary_expression "iVar10 != 0x20" (identifier "iVar10") (!= "!=") (number_literal "0x20")) () ")")) (; ";")) (expression_statement "local_44 = 2;" (assignment_expression "local_44 = 2" (identifier "local_44") (= "=") (number_literal "2")) (; ";")) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      local_48 = 0;\n      local_44 = iVar5;\n    }" (else "else") (compound_statement "{\n      local_48 = 0;\n      local_44 = iVar5;\n    }" ({ "{") (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_44 = iVar5;" (assignment_expression "local_44 = iVar5" (identifier "local_44") (= "=") (identifier "iVar5")) (; ";")) (} "}")))))) (labeled_statement "LAB_0004aadb:\n    FUN_0002c6a0(pcVar9);" (statement_identifier "LAB_0004aadb") (: ":") (expression_statement "FUN_0002c6a0(pcVar9);" (call_expression "FUN_0002c6a0(pcVar9)" (identifier "FUN_0002c6a0") (argument_list "(pcVar9)" (( "(") (identifier "pcVar9") () ")"))) (; ";"))) (expression_statement "uVar3 = XInternAtom(uVar1,"SPACING",0);" (assignment_expression "uVar3 = XInternAtom(uVar1,"SPACING",0)" (identifier "uVar3") (= "=") (call_expression "XInternAtom(uVar1,"SPACING",0)" (identifier "XInternAtom") (argument_list "(uVar1,"SPACING",0)" (( "(") (identifier "uVar1") (, ",") (string_literal ""SPACING"" (" """) (string_content "SPACING") (" """)) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "iVar10 = XGetFontProperty(iVar2,uVar3,&local_24);" (assignment_expression "iVar10 = XGetFontProperty(iVar2,uVar3,&local_24)" (identifier "iVar10") (= "=") (call_expression "XGetFontProperty(iVar2,uVar3,&local_24)" (identifier "XGetFontProperty") (argument_list "(iVar2,uVar3,&local_24)" (( "(") (identifier "iVar2") (, ",") (identifier "uVar3") (, ",") (pointer_expression "&local_24" (& "&") (identifier "local_24")) () ")")))) (; ";")) (if_statement "if (iVar10 != 0) goto LAB_0004a982;" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004a982;" (goto "goto") (statement_identifier "LAB_0004a982") (; ";"))) (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" (identifier "uVar12") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_0004a9bb:\n    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);" (statement_identifier "LAB_0004a9bb") (: ":") (expression_statement "puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);" (assignment_expression "puVar6 = (undefined4 *)FUN_0002be10(1,0x10c)" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)FUN_0002be10(1,0x10c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0002be10(1,0x10c)" (identifier "FUN_0002be10") (argument_list "(1,0x10c)" (( "(") (number_literal "1") (, ",") (number_literal "0x10c") () ")"))))) (; ";"))) (expression_statement "*puVar6 = &PTR_FUN_000a0dc0;" (assignment_expression "*puVar6 = &PTR_FUN_000a0dc0" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (pointer_expression "&PTR_FUN_000a0dc0" (& "&") (identifier "PTR_FUN_000a0dc0"))) (; ";")) (if_statement "if (local_48 == 0) goto LAB_0004a883;" (if "if") (parenthesized_expression "(local_48 == 0)" (( "(") (binary_expression "local_48 == 0" (identifier "local_48") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004a883;" (goto "goto") (statement_identifier "LAB_0004a883") (; ";"))) (expression_statement "local_2e = 0x3000;" (assignment_expression "local_2e = 0x3000" (identifier "local_2e") (= "=") (number_literal "0x3000")) (; ";")) (expression_statement "uVar1 = XTextWidth16(iVar2,&local_2e,1);" (assignment_expression "uVar1 = XTextWidth16(iVar2,&local_2e,1)" (identifier "uVar1") (= "=") (call_expression "XTextWidth16(iVar2,&local_2e,1)" (identifier "XTextWidth16") (argument_list "(iVar2,&local_2e,1)" (( "(") (identifier "iVar2") (, ",") (pointer_expression "&local_2e" (& "&") (identifier "local_2e")) (, ",") (number_literal "1") () ")")))) (; ";")) (} "}")))) (expression_statement "iVar10 = *(int *)(iVar2 + 0x4c);" (assignment_expression "iVar10 = *(int *)(iVar2 + 0x4c)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar2 + 0x4c)" (* "*") (cast_expression "(int *)(iVar2 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x4c)" (( "(") (binary_expression "iVar2 + 0x4c" (identifier "iVar2") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "puVar6[2] = uVar1;" (assignment_expression "puVar6[2] = uVar1" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "iVar11 = *(int *)(iVar2 + 0x48);" (assignment_expression "iVar11 = *(int *)(iVar2 + 0x48)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar2 + 0x48)" (* "*") (cast_expression "(int *)(iVar2 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x48)" (( "(") (binary_expression "iVar2 + 0x48" (identifier "iVar2") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "puVar6[1] = iVar5;" (assignment_expression "puVar6[1] = iVar5" (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "puVar6[6] = 1;" (assignment_expression "puVar6[6] = 1" (subscript_expression "puVar6[6]" (identifier "puVar6") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar6[4] = iVar11;" (assignment_expression "puVar6[4] = iVar11" (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "puVar6[3] = iVar11 + iVar10;" (assignment_expression "puVar6[3] = iVar11 + iVar10" (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "iVar11 + iVar10" (identifier "iVar11") (+ "+") (identifier "iVar10"))) (; ";")) (expression_statement "puVar6[7] = 0;" (assignment_expression "puVar6[7] = 0" (subscript_expression "puVar6[7]" (identifier "puVar6") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar6[0x3e] = local_44;" (assignment_expression "puVar6[0x3e] = local_44" (subscript_expression "puVar6[0x3e]" (identifier "puVar6") ([ "[") (number_literal "0x3e") (] "]")) (= "=") (identifier "local_44")) (; ";")) (expression_statement "puVar6[0x3d] = uVar12;" (assignment_expression "puVar6[0x3d] = uVar12" (subscript_expression "puVar6[0x3d]" (identifier "puVar6") ([ "[") (number_literal "0x3d") (] "]")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "puVar6[0x3c] = local_48;" (assignment_expression "puVar6[0x3c] = local_48" (subscript_expression "puVar6[0x3c]" (identifier "puVar6") ([ "[") (number_literal "0x3c") (] "]")) (= "=") (identifier "local_48")) (; ";")) (expression_statement "puVar6[5] = iVar10;" (assignment_expression "puVar6[5] = iVar10" (subscript_expression "puVar6[5]" (identifier "puVar6") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "puVar6[0x3f] = param_3;" (assignment_expression "puVar6[0x3f] = param_3" (subscript_expression "puVar6[0x3f]" (identifier "puVar6") ([ "[") (number_literal "0x3f") (] "]")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "puVar6[0x40] = param_4;" (assignment_expression "puVar6[0x40] = param_4" (subscript_expression "puVar6[0x40]" (identifier "puVar6") ([ "[") (number_literal "0x40") (] "]")) (= "=") (identifier "param_4")) (; ";")) (expression_statement "puVar6[0x41] = param_5;" (assignment_expression "puVar6[0x41] = param_5" (subscript_expression "puVar6[0x41]" (identifier "puVar6") ([ "[") (number_literal "0x41") (] "]")) (= "=") (identifier "param_5")) (; ";")) (expression_statement "puVar6[0x42] = param_6;" (assignment_expression "puVar6[0x42] = param_6" (subscript_expression "puVar6[0x42]" (identifier "puVar6") ([ "[") (number_literal "0x42") (] "]")) (= "=") (identifier "param_6")) (; ";")) (expression_statement "puVar7 = puVar6 + 8;" (assignment_expression "puVar7 = puVar6 + 8" (identifier "puVar7") (= "=") (binary_expression "puVar6 + 8" (identifier "puVar6") (+ "+") (number_literal "8"))) (; ";")) (do_statement "do {\n    *puVar7 = 0;\n    puVar8 = puVar7 + 0xd;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar7[4] = 0;\n    puVar7[5] = 0;\n    puVar7 = puVar8;\n  } while (puVar6 + 0x3c != puVar8);" (do "do") (compound_statement "{\n    *puVar7 = 0;\n    puVar8 = puVar7 + 0xd;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n    puVar7[4] = 0;\n    puVar7[5] = 0;\n    puVar7 = puVar8;\n  }" ({ "{") (expression_statement "*puVar7 = 0;" (assignment_expression "*puVar7 = 0" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar8 = puVar7 + 0xd;" (assignment_expression "puVar8 = puVar7 + 0xd" (identifier "puVar8") (= "=") (binary_expression "puVar7 + 0xd" (identifier "puVar7") (+ "+") (number_literal "0xd"))) (; ";")) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[2] = 0;" (assignment_expression "puVar7[2] = 0" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[4] = 0;" (assignment_expression "puVar7[4] = 0" (subscript_expression "puVar7[4]" (identifier "puVar7") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" (identifier "puVar7") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7 = puVar8;" (assignment_expression "puVar7 = puVar8" (identifier "puVar7") (= "=") (identifier "puVar8")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar6 + 0x3c != puVar8)" (( "(") (binary_expression "puVar6 + 0x3c != puVar8" (binary_expression "puVar6 + 0x3c" (identifier "puVar6") (+ "+") (number_literal "0x3c")) (!= "!=") (identifier "puVar8")) () ")")) (; ";")) (expression_statement "puVar6[8] = iVar2;" (assignment_expression "puVar6[8] = iVar2" (subscript_expression "puVar6[8]" (identifier "puVar6") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "puVar6[9] = 1;" (assignment_expression "puVar6[9] = 1" (subscript_expression "puVar6[9]" (identifier "puVar6") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_0004a952:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }" (statement_identifier "LAB_0004a952") (: ":") (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }" (if "if") (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return puVar6;\n  }" ({ "{") (return_statement "return puVar6;" (return "return") (identifier "puVar6") (; ";")) (} "}")))) (expression_statement "FUN_0005c430();" (call_expression "FUN_0005c430()" (identifier "FUN_0005c430") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

type_1 * function_1(type_2 *widget,char *name,int wide,int bold,int shadowoffset,
                        int shadowalways)

{
  type_1 *puVar1;
  type_3 uVar2;
  type_4 *var_5;
  type_3 uVar3;
  type_3 uVar4;
  int var_8;
  type_1 *var_23;
  int var_17;
  type_1 *var_24;
  char *var_10;
  int var_19;
  type_5 uVar11;
  int var_1;
  int var_21;
  int local_44;
  type_6 space;
  type_7 registry_ret;
  type_7 encoding_ret;
  type_7 spacing_ret;
  int var_25;
  type_3 uStack_14;
  
  uStack_14 = 0x4a7a9;
  var_25 = *(int *)(var_1 + 0x14);
  uVar2 = var_2();
  uVar2 = var_3(uVar2);
  var_5 = (type_4 *)var_4(uVar2,name);
  if (var_5 == (type_4 *)0x0) {
    var_23 = (type_1 *)0x0;
    goto LAB_0004a952;
  }
  uVar3 = var_6(uVar2,"CHARSET_REGISTRY",0);
  uVar4 = var_6(uVar2,"CHARSET_ENCODING",0);
  var_8 = var_7(var_5,uVar3,&registry_ret);
  if (var_8 == 0) {
LAB_0004a82c:
    uVar3 = var_6(uVar2,"SPACING",0);
    var_8 = var_7(var_5,uVar3,&spacing_ret);
    if (var_8 != 0) {
      var_21 = 0;
      var_8 = 0;
      local_44 = 0;
LAB_0004a982:
      uVar11 = 1;
      var_10 = (char *)var_9(uVar2,spacing_ret);
      if (var_10 != (char *)0x0) {
        var_10 = var_11("CcMm",(int)*var_10);
        uVar11 = (type_5)(var_10 == (char *)0x0);
      }
      goto LAB_0004a9bb;
    }
    uVar11 = 1;
    var_23 = (type_1 *)var_12(1,0x10c);
    local_44 = 0;
    var_23->vt = &x11font_vtable;
    var_8 = 0;
LAB_0004a883:
    var_17 = var_13(var_5,"0",1);
    var_21 = 0;
  }
  else {
    var_8 = var_7(var_5,uVar4,&encoding_ret);
    if (var_8 == 0) goto LAB_0004a82c;
    var_10 = (char *)var_9(uVar2,registry_ret);
    var_8 = var_9(uVar2,encoding_ret);
    if ((var_10 == (char *)0x0) || (var_8 == 0)) goto LAB_0004a82c;
    var_10 = var_14(var_10,"-",var_8,0);
    var_8 = var_15(var_10);
    var_17 = var_16(var_10,"iso10646-1");
    if (var_17 == 0) {
      var_21 = 1;
      var_8 = 0x37;
      local_44 = 0x37;
    }
    else if (var_8 == 1) {
      var_17 = 1;
      do {
        var_19 = var_18(var_5,'\0',(type_8)var_17);
        if (var_19 == 0) {
          local_44 = 1;
          var_21 = 0;
          goto LAB_0004aadb;
        }
        var_17 = var_17 + 1;
      } while (var_17 != 0x20);
      local_44 = 2;
      var_21 = 0;
    }
    else {
      var_21 = 0;
      local_44 = var_8;
    }
LAB_0004aadb:
    var_20(var_10);
    uVar3 = var_6(uVar2,"SPACING",0);
    var_17 = var_7(var_5,uVar3,&spacing_ret);
    if (var_17 != 0) goto LAB_0004a982;
    uVar11 = 1;
LAB_0004a9bb:
    var_23 = (type_1 *)var_12(1,0x10c);
    var_23->vt = &x11font_vtable;
    if (var_21 == 0) goto LAB_0004a883;
    space.byte1 = '\0';
    space.byte2 = '0';
    var_17 = var_22(var_5,&space,1);
  }
  var_19 = var_5->descent;
  var_23->width = var_17;
  var_17 = var_5->ascent;
  var_23->public_charset = var_8;
  var_23->want_fallback = 1;
  var_23->ascent = var_17;
  var_23->height = var_17 + var_19;
  var_23->preferred_drawtype = 0;
  var_23[7].want_fallback = local_44;
  var_23[7].descent = uVar11;
  var_23[7].ascent = var_21;
  var_23->descent = var_19;
  var_23[7].preferred_drawtype = wide;
  var_23[8].vt = (type_9 *)bold;
  var_23[8].public_charset = shadowoffset;
  var_23[8].width = shadowalways;
  var_24 = var_23 + 1;
  do {
    var_24->vt = (type_9 *)0x0;
    puVar1 = var_24 + 1;
    var_24->public_charset = 0;
    var_24->width = 0;
    var_24->height = 0;
    var_24->ascent = 0;
    var_24->descent = 0;
    var_24 = (type_1 *)&puVar1->descent;
  } while (&var_23[7].ascent != &puVar1->descent);
  var_23[1].vt = (type_9 *)var_5;
  var_23[1].public_charset = 1;
LAB_0004a952:
  if (var_25 == *(int *)(var_1 + 0x14)) {
    return var_23;
  }
                    /* WARNING: Subroutine does not return */
  var_26();
}


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

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

undefined4 *
MASKED(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
            undefined4 param_5,undefined4 param_6)

{
  undefined4 uVar1;
  int iVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  int iVar5;
  undefined4 *puVar6;
  undefined4 *puVar7;
  undefined4 *puVar8;
  char *pcVar9;
  int iVar10;
  int iVar11;
  uint uVar12;
  int in_GS_OFFSET;
  int local_48;
  int local_44;
  undefined2 local_2e;
  undefined4 local_2c;
  undefined4 local_28;
  undefined4 local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x4a7a9;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  uVar1 = gdk_display_get_default();
  uVar1 = gdk_x11_display_get_xdisplay(uVar1);
  iVar2 = XLoadQueryFont(uVar1,param_2);
  if (iVar2 == 0) {
    puVar6 = (undefined4 *)0x0;
    goto LAB_0004a952;
  }
  uVar3 = XInternAtom(uVar1,"CHARSET_REGISTRY",0);
  uVar4 = XInternAtom(uVar1,"CHARSET_ENCODING",0);
  iVar5 = XGetFontProperty(iVar2,uVar3,&local_2c);
  if (iVar5 == 0) {
LAB_0004a82c:
    uVar3 = XInternAtom(uVar1,"SPACING",0);
    iVar5 = XGetFontProperty(iVar2,uVar3,&local_24);
    if (iVar5 != 0) {
      local_48 = 0;
      iVar5 = 0;
      local_44 = 0;
LAB_0004a982:
      uVar12 = 1;
      pcVar9 = (char *)XGetAtomName(uVar1,local_24);
      if (pcVar9 != (char *)0x0) {
        pcVar9 = strchr("CcMm",(int)*pcVar9);
        uVar12 = (uint)(pcVar9 == (char *)0x0);
      }
      goto LAB_0004a9bb;
    }
    uVar12 = 1;
    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);
    local_44 = 0;
    *puVar6 = &PTR_FUN_000a0dc0;
    iVar5 = 0;
LAB_0004a883:
    uVar1 = XTextWidth(iVar2,"0",1);
    local_48 = 0;
  }
  else {
    iVar5 = XGetFontProperty(iVar2,uVar4,&local_28);
    if (iVar5 == 0) goto LAB_0004a82c;
    iVar5 = XGetAtomName(uVar1,local_2c);
    iVar10 = XGetAtomName(uVar1,local_28);
    if ((iVar5 == 0) || (iVar10 == 0)) goto LAB_0004a82c;
    pcVar9 = (char *)FUN_0002bf70(iVar5,"-",iVar10,0);
    iVar5 = FUN_0001b250(pcVar9);
    iVar10 = strcasecmp(pcVar9,"iso10646-1");
    if (iVar10 == 0) {
      local_48 = 1;
      iVar5 = 0x37;
      local_44 = 0x37;
    }
    else if (iVar5 == 1) {
      iVar10 = 1;
      do {
        iVar11 = FUN_00048d90();
        if (iVar11 == 0) {
          local_44 = 1;
          local_48 = 0;
          goto LAB_0004aadb;
        }
        iVar10 = iVar10 + 1;
      } while (iVar10 != 0x20);
      local_44 = 2;
      local_48 = 0;
    }
    else {
      local_48 = 0;
      local_44 = iVar5;
    }
LAB_0004aadb:
    FUN_0002c6a0(pcVar9);
    uVar3 = XInternAtom(uVar1,"SPACING",0);
    iVar10 = XGetFontProperty(iVar2,uVar3,&local_24);
    if (iVar10 != 0) goto LAB_0004a982;
    uVar12 = 1;
LAB_0004a9bb:
    puVar6 = (undefined4 *)FUN_0002be10(1,0x10c);
    *puVar6 = &PTR_FUN_000a0dc0;
    if (local_48 == 0) goto LAB_0004a883;
    local_2e = 0x3000;
    uVar1 = XTextWidth16(iVar2,&local_2e,1);
  }
  iVar10 = *(int *)(iVar2 + 0x4c);
  puVar6[2] = uVar1;
  iVar11 = *(int *)(iVar2 + 0x48);
  puVar6[1] = iVar5;
  puVar6[6] = 1;
  puVar6[4] = iVar11;
  puVar6[3] = iVar11 + iVar10;
  puVar6[7] = 0;
  puVar6[0x3e] = local_44;
  puVar6[0x3d] = uVar12;
  puVar6[0x3c] = local_48;
  puVar6[5] = iVar10;
  puVar6[0x3f] = param_3;
  puVar6[0x40] = param_4;
  puVar6[0x41] = param_5;
  puVar6[0x42] = param_6;
  puVar7 = puVar6 + 8;
  do {
    *puVar7 = 0;
    puVar8 = puVar7 + 0xd;
    puVar7[1] = 0;
    puVar7[2] = 0;
    puVar7[3] = 0;
    puVar7[4] = 0;
    puVar7[5] = 0;
    puVar7 = puVar8;
  } while (puVar6 + 0x3c != puVar8);
  puVar6[8] = iVar2;
  puVar6[9] = 1;
LAB_0004a952:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return puVar6;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0005c430();
}

