
void colour_handler(control *ctrl,void *dlg,void *data,int event)

{
  long lVar1;
  long *plVar2;
  int iVar3;
  int iVar4;
  int g_00;
  char *__nptr;
  long lVar5;
  char **ppcVar6;
  long in_FS_OFFSET;
  int r;
  int g;
  int b;
  char buf [40];
  
  lVar1 = *(long *)(in_FS_OFFSET + 0x28);
  plVar2 = *(long **)((long)ctrl + 0x20);
  if (event == 0) {
    if ((control *)*plVar2 != ctrl) goto LAB_00116bb8;
    dlg_update_start(ctrl,dlg);
    dlg_listbox_clear(ctrl,dlg);
    ppcVar6 = colours;
    do {
      dlg_listbox_add(ctrl,dlg,*ppcVar6);
      ppcVar6 = ppcVar6 + 1;
    } while (ppcVar6 != (char **)gsslibkeywords);
    dlg_update_done(ctrl,dlg);
LAB_00116c1b:
    dlg_editbox_set((control *)plVar2[1],dlg,"");
    dlg_editbox_set((control *)plVar2[2],dlg,"");
    dlg_editbox_set((control *)plVar2[3],dlg,"");
  }
  else {
    if (event == 3) {
      if ((control *)*plVar2 != ctrl) goto LAB_00116bb8;
      iVar3 = dlg_listbox_index(ctrl,dlg);
      if (iVar3 < 0) goto LAB_00116c1b;
      iVar3 = iVar3 * 3;
      r = conf_get_int_int((Conf *)data,0x89,iVar3);
      g = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);
      b = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);
    }
    else {
      if (event == 2) {
        if ((((control *)plVar2[1] == ctrl) || ((control *)plVar2[2] == ctrl)) ||
           ((control *)plVar2[3] == ctrl)) {
          __nptr = dlg_editbox_get(ctrl,dlg);
          lVar5 = strtol(__nptr,(char **)0x0,10);
          safefree(__nptr);
          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);
          if (-1 < iVar3) {
            iVar4 = 0;
            if (-1 < (int)lVar5) {
              iVar4 = (int)lVar5;
            }
            if (0xff < iVar4) {
              iVar4 = 0xff;
            }
            if ((control *)plVar2[1] == ctrl) {
              conf_set_int_int((Conf *)data,0x89,iVar3 * 3,iVar4);
            }
            else if ((control *)plVar2[2] == ctrl) {
              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 1,iVar4);
            }
            else if ((control *)plVar2[3] == ctrl) {
              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 2,iVar4);
            }
          }
        }
        goto LAB_00116bb8;
      }
      if (event == 1) {
        if ((control *)plVar2[4] == ctrl) {
          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);
          if (iVar3 < 0) {
            dlg_beep(dlg);
          }
          else {
            iVar3 = iVar3 * 3;
            iVar4 = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);
            g_00 = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);
            iVar3 = conf_get_int_int((Conf *)data,0x89,iVar3);
            dlg_coloursel_start(ctrl,dlg,iVar3,g_00,iVar4);
          }
        }
        goto LAB_00116bb8;
      }
      if ((event != 4) || ((control *)plVar2[4] != ctrl)) goto LAB_00116bb8;
      iVar3 = dlg_listbox_index((control *)*plVar2,dlg);
      iVar4 = dlg_coloursel_results(ctrl,dlg,&r,&g,&b);
      if (iVar4 == 0) goto LAB_00116bb8;
      iVar3 = iVar3 * 3;
      conf_set_int_int((Conf *)data,0x89,iVar3,r);
      conf_set_int_int((Conf *)data,0x89,iVar3 + 1,g);
      conf_set_int_int((Conf *)data,0x89,iVar3 + 2,b);
    }
    __sprintf_chk(buf,1,0x28,&DAT_0016e1fb,r);
    dlg_editbox_set((control *)plVar2[1],dlg,buf);
    __sprintf_chk(buf,1,0x28,&DAT_0016e1fb,g);
    dlg_editbox_set((control *)plVar2[2],dlg,buf);
    __sprintf_chk(buf,1,0x28,&DAT_0016e1fb,b);
    dlg_editbox_set((control *)plVar2[3],dlg,buf);
  }
LAB_00116bb8:
  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}



void FUN_00116b82(long param_1,undefined8 param_2,undefined8 param_3,int param_4)

{
  long *plVar1;
  int iVar2;
  int iVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  char *__nptr;
  long lVar7;
  undefined **ppuVar8;
  long in_FS_OFFSET;
  undefined4 local_74;
  undefined4 local_70;
  undefined4 local_6c;
  undefined1 local_68 [40];
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  plVar1 = *(long **)(param_1 + 0x20);
  if (param_4 == 0) {
    if (*plVar1 != param_1) goto LAB_00116bb8;
    FUN_0013794b();
    FUN_00136b7f(param_1,param_2);
    ppuVar8 = &PTR_s_Default_Foreground_0018a4a0;
    do {
      FUN_00136e91(param_1,param_2,*ppuVar8);
      ppuVar8 = ppuVar8 + 1;
    } while (ppuVar8 != &PTR_s_dummy_0018a550);
    FUN_0013794c(param_1,param_2);
LAB_00116c1b:
    FUN_001369ee(plVar1[1],param_2,&DAT_001786b4);
    FUN_001369ee(plVar1[2],param_2,&DAT_001786b4);
    FUN_001369ee(plVar1[3],param_2,&DAT_001786b4);
  }
  else {
    if (param_4 == 3) {
      if (*plVar1 != param_1) goto LAB_00116bb8;
      iVar2 = FUN_00136fbe();
      if (iVar2 < 0) goto LAB_00116c1b;
      iVar2 = iVar2 * 3;
      local_74 = FUN_001142ad(param_3,0x89,iVar2);
      local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);
      local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);
    }
    else {
      if (param_4 == 2) {
        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {
          __nptr = (char *)FUN_00136aab(param_1,param_2);
          lVar7 = strtol(__nptr,(char **)0x0,10);
          FUN_001217b3(__nptr);
          iVar2 = FUN_00136fbe(*plVar1,param_2);
          if (-1 < iVar2) {
            iVar3 = 0;
            if (-1 < (int)lVar7) {
              iVar3 = (int)lVar7;
            }
            if (0xff < iVar3) {
              iVar3 = 0xff;
            }
            if (plVar1[1] == param_1) {
              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);
            }
            else if (plVar1[2] == param_1) {
              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);
            }
            else if (plVar1[3] == param_1) {
              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);
            }
          }
        }
        goto LAB_00116bb8;
      }
      if (param_4 == 1) {
        if (plVar1[4] == param_1) {
          iVar2 = FUN_00136fbe(*plVar1);
          if (iVar2 < 0) {
            FUN_00137a47(param_2);
          }
          else {
            iVar2 = iVar2 * 3;
            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);
            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);
            uVar6 = FUN_001142ad(param_3,0x89,iVar2);
            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);
          }
        }
        goto LAB_00116bb8;
      }
      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;
      iVar2 = FUN_00136fbe(*plVar1);
      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);
      if (iVar3 == 0) goto LAB_00116bb8;
      iVar2 = iVar2 * 3;
      FUN_0011493c(param_3,0x89,iVar2,local_74);
      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);
      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);
    }
    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_74);
    FUN_001369ee(plVar1[1],param_2,local_68);
    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_70);
    FUN_001369ee(plVar1[2],param_2,local_68);
    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_6c);
    FUN_001369ee(plVar1[3],param_2,local_68);
  }
LAB_00116bb8:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x48
MOV RBP,RDI
MOV R12,RSI
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x38],RAX
XOR EAX,EAX
MOV R13,qword ptr [RDI + 0x20]
TEST ECX,ECX
JNZ 0x00116c59
CMP qword ptr [R13],RDI
JZ 0x00116bdb
MOV RAX,qword ptr [RSP + 0x38]
XOR RAX,qword ptr FS:[0x28]
JNZ 0x00116f2c
ADD RSP,0x48
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
CALL 0x0013794b
MOV RSI,R12
MOV RDI,RBP
CALL 0x00136b7f
LEA RBX,[0x18a4a0]
LEA R14,[RBX + 0xb0]
MOV RDX,qword ptr [RBX]
MOV RSI,R12
MOV RDI,RBP
CALL 0x00136e91
ADD RBX,0x8
CMP RBX,R14
JNZ 0x00116bf9
MOV RSI,R12
MOV RDI,RBP
CALL 0x0013794c
MOV RDI,qword ptr [R13 + 0x8]
LEA RDX,[0x1786b4]
MOV RSI,R12
CALL 0x001369ee
MOV RDI,qword ptr [R13 + 0x10]
LEA RDX,[0x1786b4]
MOV RSI,R12
CALL 0x001369ee
MOV RDI,qword ptr [R13 + 0x18]
LEA RDX,[0x1786b4]
MOV RSI,R12
CALL 0x001369ee
JMP 0x00116bb8
MOV RBX,RDX
CMP ECX,0x3
JZ 0x00116cf9
CMP ECX,0x2
JZ 0x00116dee
CMP ECX,0x1
JZ 0x00116eb4
CMP ECX,0x4
JNZ 0x00116bb8
CMP qword ptr [R13 + 0x20],RDI
JNZ 0x00116bb8
MOV RDI,qword ptr [R13]
CALL 0x00136fbe
MOV R14D,EAX
LEA RCX,[RSP + 0x8]
LEA RDX,[RSP + 0x4]
LEA R8,[RSP + 0xc]
MOV RSI,R12
MOV RDI,RBP
CALL 0x00137d93
TEST EAX,EAX
JZ 0x00116bb8
LEA EBP,[R14 + R14*0x2]
MOV ECX,dword ptr [RSP + 0x4]
MOV EDX,EBP
MOV ESI,0x89
MOV RDI,RBX
CALL 0x0011493c
LEA EDX,[RBP + 0x1]
MOV ECX,dword ptr [RSP + 0x8]
MOV ESI,0x89
MOV RDI,RBX
CALL 0x0011493c
LEA EDX,[RBP + 0x2]
MOV ECX,dword ptr [RSP + 0xc]
MOV ESI,0x89
MOV RDI,RBX
CALL 0x0011493c
JMP 0x00116d4e
CMP qword ptr [R13],RDI
JNZ 0x00116bb8
CALL 0x00136fbe
TEST EAX,EAX
JS 0x00116c1b
LEA EBP,[RAX + RAX*0x2]
MOV EDX,EBP
MOV ESI,0x89
MOV RDI,RBX
CALL 0x001142ad
MOV dword ptr [RSP + 0x4],EAX
LEA EDX,[RBP + 0x1]
MOV ESI,0x89
MOV RDI,RBX
CALL 0x001142ad
MOV dword ptr [RSP + 0x8],EAX
LEA EDX,[RBP + 0x2]
MOV ESI,0x89
MOV RDI,RBX
CALL 0x001142ad
MOV dword ptr [RSP + 0xc],EAX
LEA RBX,[RSP + 0x10]
MOV R8D,dword ptr [RSP + 0x4]
LEA RCX,[0x16e1fb]
MOV EDX,0x28
MOV ESI,0x1
MOV RDI,RBX
MOV EAX,0x0
CALL 0x0010f8e0
MOV RDI,qword ptr [R13 + 0x8]
MOV RDX,RBX
MOV RSI,R12
CALL 0x001369ee
MOV R8D,dword ptr [RSP + 0x8]
LEA RCX,[0x16e1fb]
MOV EDX,0x28
MOV ESI,0x1
MOV RDI,RBX
MOV EAX,0x0
CALL 0x0010f8e0
MOV RDI,qword ptr [R13 + 0x10]
MOV RDX,RBX
MOV RSI,R12
CALL 0x001369ee
MOV R8D,dword ptr [RSP + 0xc]
LEA RCX,[0x16e1fb]
MOV EDX,0x28
MOV ESI,0x1
MOV RDI,RBX
MOV EAX,0x0
CALL 0x0010f8e0
MOV RDI,qword ptr [R13 + 0x18]
MOV RDX,RBX
MOV RSI,R12
CALL 0x001369ee
JMP 0x00116bb8
CMP qword ptr [R13 + 0x8],RDI
JZ 0x00116e04
CMP qword ptr [R13 + 0x10],RDI
JZ 0x00116e04
CMP qword ptr [R13 + 0x18],RDI
JNZ 0x00116bb8
MOV RSI,R12
MOV RDI,RBP
CALL 0x00136aab
MOV R15,RAX
MOV EDX,0xa
MOV ESI,0x0
MOV RDI,RAX
CALL 0x001105f0
MOV R14,RAX
MOV RDI,R15
CALL 0x001217b3
MOV RSI,R12
MOV RDI,qword ptr [R13]
CALL 0x00136fbe
TEST EAX,EAX
JS 0x00116bb8
TEST R14D,R14D
MOV ECX,0x0
CMOVNS ECX,R14D
CMP ECX,0xff
MOV EDX,0xff
CMOVG ECX,EDX
CMP qword ptr [R13 + 0x8],RBP
JZ 0x00116e89
CMP qword ptr [R13 + 0x10],RBP
JZ 0x00116e9e
CMP qword ptr [R13 + 0x18],RBP
JNZ 0x00116bb8
LEA EDX,[RAX + RAX*0x2 + 0x2]
MOV ESI,0x89
MOV RDI,RBX
CALL 0x0011493c
JMP 0x00116bb8
LEA EDX,[RAX + RAX*0x2]
MOV ESI,0x89
MOV RDI,RBX
CALL 0x0011493c
JMP 0x00116bb8
LEA EDX,[RAX + RAX*0x2 + 0x1]
MOV ESI,0x89
MOV RDI,RBX
CALL 0x0011493c
JMP 0x00116bb8
CMP qword ptr [R13 + 0x20],RDI
JNZ 0x00116bb8
MOV RDI,qword ptr [R13]
CALL 0x00136fbe
TEST EAX,EAX
JS 0x00116f1f
LEA R13D,[RAX + RAX*0x2]
LEA EDX,[R13 + 0x2]
MOV ESI,0x89
MOV RDI,RBX
CALL 0x001142ad
MOV R15D,EAX
LEA EDX,[R13 + 0x1]
MOV ESI,0x89
MOV RDI,RBX
CALL 0x001142ad
MOV R14D,EAX
MOV EDX,R13D
MOV ESI,0x89
MOV RDI,RBX
CALL 0x001142ad
MOV R8D,R15D
MOV ECX,R14D
MOV EDX,EAX
MOV RSI,R12
MOV RDI,RBP
CALL 0x00137c12
JMP 0x00116bb8
MOV RDI,R12
CALL 0x00137a47
JMP 0x00116bb8
CALL 0x00110180
(translation_unit "void FUN_00116b82(long param_1,undefined8 param_2,undefined8 param_3,int param_4)\n\n{\n  long *plVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  char *__nptr;\n  long lVar7;\n  undefined **ppuVar8;\n  long in_FS_OFFSET;\n  undefined4 local_74;\n  undefined4 local_70;\n  undefined4 local_6c;\n  undefined1 local_68 [40];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  plVar1 = *(long **)(param_1 + 0x20);\n  if (param_4 == 0) {\n    if (*plVar1 != param_1) goto LAB_00116bb8;\n    FUN_0013794b();\n    FUN_00136b7f(param_1,param_2);\n    ppuVar8 = &PTR_s_Default_Foreground_0018a4a0;\n    do {\n      FUN_00136e91(param_1,param_2,*ppuVar8);\n      ppuVar8 = ppuVar8 + 1;\n    } while (ppuVar8 != &PTR_s_dummy_0018a550);\n    FUN_0013794c(param_1,param_2);\nLAB_00116c1b:\n    FUN_001369ee(plVar1[1],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[2],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[3],param_2,&DAT_001786b4);\n  }\n  else {\n    if (param_4 == 3) {\n      if (*plVar1 != param_1) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe();\n      if (iVar2 < 0) goto LAB_00116c1b;\n      iVar2 = iVar2 * 3;\n      local_74 = FUN_001142ad(param_3,0x89,iVar2);\n      local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n      local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);\n    }\n    else {\n      if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe(*plVar1);\n      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);\n      if (iVar3 == 0) goto LAB_00116bb8;\n      iVar2 = iVar2 * 3;\n      FUN_0011493c(param_3,0x89,iVar2,local_74);\n      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);\n      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);\n    }\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_74);\n    FUN_001369ee(plVar1[1],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_70);\n    FUN_001369ee(plVar1[2],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_6c);\n    FUN_001369ee(plVar1[3],param_2,local_68);\n  }\nLAB_00116bb8:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "void FUN_00116b82(long param_1,undefined8 param_2,undefined8 param_3,int param_4)\n\n{\n  long *plVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  char *__nptr;\n  long lVar7;\n  undefined **ppuVar8;\n  long in_FS_OFFSET;\n  undefined4 local_74;\n  undefined4 local_70;\n  undefined4 local_6c;\n  undefined1 local_68 [40];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  plVar1 = *(long **)(param_1 + 0x20);\n  if (param_4 == 0) {\n    if (*plVar1 != param_1) goto LAB_00116bb8;\n    FUN_0013794b();\n    FUN_00136b7f(param_1,param_2);\n    ppuVar8 = &PTR_s_Default_Foreground_0018a4a0;\n    do {\n      FUN_00136e91(param_1,param_2,*ppuVar8);\n      ppuVar8 = ppuVar8 + 1;\n    } while (ppuVar8 != &PTR_s_dummy_0018a550);\n    FUN_0013794c(param_1,param_2);\nLAB_00116c1b:\n    FUN_001369ee(plVar1[1],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[2],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[3],param_2,&DAT_001786b4);\n  }\n  else {\n    if (param_4 == 3) {\n      if (*plVar1 != param_1) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe();\n      if (iVar2 < 0) goto LAB_00116c1b;\n      iVar2 = iVar2 * 3;\n      local_74 = FUN_001142ad(param_3,0x89,iVar2);\n      local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n      local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);\n    }\n    else {\n      if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe(*plVar1);\n      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);\n      if (iVar3 == 0) goto LAB_00116bb8;\n      iVar2 = iVar2 * 3;\n      FUN_0011493c(param_3,0x89,iVar2,local_74);\n      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);\n      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);\n    }\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_74);\n    FUN_001369ee(plVar1[1],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_70);\n    FUN_001369ee(plVar1[2],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_6c);\n    FUN_001369ee(plVar1[3],param_2,local_68);\n  }\nLAB_00116bb8:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "FUN_00116b82(long param_1,undefined8 param_2,undefined8 param_3,int param_4)" identifier (parameter_list "(long param_1,undefined8 param_2,undefined8 param_3,int param_4)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  long *plVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  char *__nptr;\n  long lVar7;\n  undefined **ppuVar8;\n  long in_FS_OFFSET;\n  undefined4 local_74;\n  undefined4 local_70;\n  undefined4 local_6c;\n  undefined1 local_68 [40];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  plVar1 = *(long **)(param_1 + 0x20);\n  if (param_4 == 0) {\n    if (*plVar1 != param_1) goto LAB_00116bb8;\n    FUN_0013794b();\n    FUN_00136b7f(param_1,param_2);\n    ppuVar8 = &PTR_s_Default_Foreground_0018a4a0;\n    do {\n      FUN_00136e91(param_1,param_2,*ppuVar8);\n      ppuVar8 = ppuVar8 + 1;\n    } while (ppuVar8 != &PTR_s_dummy_0018a550);\n    FUN_0013794c(param_1,param_2);\nLAB_00116c1b:\n    FUN_001369ee(plVar1[1],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[2],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[3],param_2,&DAT_001786b4);\n  }\n  else {\n    if (param_4 == 3) {\n      if (*plVar1 != param_1) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe();\n      if (iVar2 < 0) goto LAB_00116c1b;\n      iVar2 = iVar2 * 3;\n      local_74 = FUN_001142ad(param_3,0x89,iVar2);\n      local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n      local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);\n    }\n    else {\n      if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe(*plVar1);\n      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);\n      if (iVar3 == 0) goto LAB_00116bb8;\n      iVar2 = iVar2 * 3;\n      FUN_0011493c(param_3,0x89,iVar2,local_74);\n      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);\n      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);\n    }\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_74);\n    FUN_001369ee(plVar1[1],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_70);\n    FUN_001369ee(plVar1[2],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_6c);\n    FUN_001369ee(plVar1[3],param_2,local_68);\n  }\nLAB_00116bb8:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "long *plVar1;" (sized_type_specifier "long" long) (pointer_declarator "*plVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "char *__nptr;" primitive_type (pointer_declarator "*__nptr" * identifier) ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined **ppuVar8;" type_identifier (pointer_declarator "**ppuVar8" * (pointer_declarator "*ppuVar8" * identifier)) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 local_74;" type_identifier identifier ;) (declaration "undefined4 local_70;" type_identifier identifier ;) (declaration "undefined4 local_6c;" type_identifier identifier ;) (declaration "undefined1 local_68 [40];" type_identifier (array_declarator "local_68 [40]" identifier [ number_literal ]) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "plVar1 = *(long **)(param_1 + 0x20);" (assignment_expression "plVar1 = *(long **)(param_1 + 0x20)" identifier = (pointer_expression "*(long **)(param_1 + 0x20)" * (cast_expression "(long **)(param_1 + 0x20)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (param_4 == 0) {\n    if (*plVar1 != param_1) goto LAB_00116bb8;\n    FUN_0013794b();\n    FUN_00136b7f(param_1,param_2);\n    ppuVar8 = &PTR_s_Default_Foreground_0018a4a0;\n    do {\n      FUN_00136e91(param_1,param_2,*ppuVar8);\n      ppuVar8 = ppuVar8 + 1;\n    } while (ppuVar8 != &PTR_s_dummy_0018a550);\n    FUN_0013794c(param_1,param_2);\nLAB_00116c1b:\n    FUN_001369ee(plVar1[1],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[2],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[3],param_2,&DAT_001786b4);\n  }\n  else {\n    if (param_4 == 3) {\n      if (*plVar1 != param_1) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe();\n      if (iVar2 < 0) goto LAB_00116c1b;\n      iVar2 = iVar2 * 3;\n      local_74 = FUN_001142ad(param_3,0x89,iVar2);\n      local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n      local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);\n    }\n    else {\n      if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe(*plVar1);\n      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);\n      if (iVar3 == 0) goto LAB_00116bb8;\n      iVar2 = iVar2 * 3;\n      FUN_0011493c(param_3,0x89,iVar2,local_74);\n      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);\n      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);\n    }\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_74);\n    FUN_001369ee(plVar1[1],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_70);\n    FUN_001369ee(plVar1[2],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_6c);\n    FUN_001369ee(plVar1[3],param_2,local_68);\n  }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n    if (*plVar1 != param_1) goto LAB_00116bb8;\n    FUN_0013794b();\n    FUN_00136b7f(param_1,param_2);\n    ppuVar8 = &PTR_s_Default_Foreground_0018a4a0;\n    do {\n      FUN_00136e91(param_1,param_2,*ppuVar8);\n      ppuVar8 = ppuVar8 + 1;\n    } while (ppuVar8 != &PTR_s_dummy_0018a550);\n    FUN_0013794c(param_1,param_2);\nLAB_00116c1b:\n    FUN_001369ee(plVar1[1],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[2],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[3],param_2,&DAT_001786b4);\n  }" { (if_statement "if (*plVar1 != param_1) goto LAB_00116bb8;" if (parenthesized_expression "(*plVar1 != param_1)" ( (binary_expression "*plVar1 != param_1" (pointer_expression "*plVar1" * identifier) != identifier) )) (goto_statement "goto LAB_00116bb8;" goto statement_identifier ;)) (expression_statement "FUN_0013794b();" (call_expression "FUN_0013794b()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00136b7f(param_1,param_2);" (call_expression "FUN_00136b7f(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) (expression_statement "ppuVar8 = &PTR_s_Default_Foreground_0018a4a0;" (assignment_expression "ppuVar8 = &PTR_s_Default_Foreground_0018a4a0" identifier = (pointer_expression "&PTR_s_Default_Foreground_0018a4a0" & identifier)) ;) (do_statement "do {\n      FUN_00136e91(param_1,param_2,*ppuVar8);\n      ppuVar8 = ppuVar8 + 1;\n    } while (ppuVar8 != &PTR_s_dummy_0018a550);" do (compound_statement "{\n      FUN_00136e91(param_1,param_2,*ppuVar8);\n      ppuVar8 = ppuVar8 + 1;\n    }" { (expression_statement "FUN_00136e91(param_1,param_2,*ppuVar8);" (call_expression "FUN_00136e91(param_1,param_2,*ppuVar8)" identifier (argument_list "(param_1,param_2,*ppuVar8)" ( identifier , identifier , (pointer_expression "*ppuVar8" * identifier) ))) ;) (expression_statement "ppuVar8 = ppuVar8 + 1;" (assignment_expression "ppuVar8 = ppuVar8 + 1" identifier = (binary_expression "ppuVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppuVar8 != &PTR_s_dummy_0018a550)" ( (binary_expression "ppuVar8 != &PTR_s_dummy_0018a550" identifier != (pointer_expression "&PTR_s_dummy_0018a550" & identifier)) )) ;) (expression_statement "FUN_0013794c(param_1,param_2);" (call_expression "FUN_0013794c(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) (labeled_statement "LAB_00116c1b:\n    FUN_001369ee(plVar1[1],param_2,&DAT_001786b4);" statement_identifier : (expression_statement "FUN_001369ee(plVar1[1],param_2,&DAT_001786b4);" (call_expression "FUN_001369ee(plVar1[1],param_2,&DAT_001786b4)" identifier (argument_list "(plVar1[1],param_2,&DAT_001786b4)" ( (subscript_expression "plVar1[1]" identifier [ number_literal ]) , identifier , (pointer_expression "&DAT_001786b4" & identifier) ))) ;)) (expression_statement "FUN_001369ee(plVar1[2],param_2,&DAT_001786b4);" (call_expression "FUN_001369ee(plVar1[2],param_2,&DAT_001786b4)" identifier (argument_list "(plVar1[2],param_2,&DAT_001786b4)" ( (subscript_expression "plVar1[2]" identifier [ number_literal ]) , identifier , (pointer_expression "&DAT_001786b4" & identifier) ))) ;) (expression_statement "FUN_001369ee(plVar1[3],param_2,&DAT_001786b4);" (call_expression "FUN_001369ee(plVar1[3],param_2,&DAT_001786b4)" identifier (argument_list "(plVar1[3],param_2,&DAT_001786b4)" ( (subscript_expression "plVar1[3]" identifier [ number_literal ]) , identifier , (pointer_expression "&DAT_001786b4" & identifier) ))) ;) }) (else_clause "else {\n    if (param_4 == 3) {\n      if (*plVar1 != param_1) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe();\n      if (iVar2 < 0) goto LAB_00116c1b;\n      iVar2 = iVar2 * 3;\n      local_74 = FUN_001142ad(param_3,0x89,iVar2);\n      local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n      local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);\n    }\n    else {\n      if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe(*plVar1);\n      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);\n      if (iVar3 == 0) goto LAB_00116bb8;\n      iVar2 = iVar2 * 3;\n      FUN_0011493c(param_3,0x89,iVar2,local_74);\n      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);\n      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);\n    }\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_74);\n    FUN_001369ee(plVar1[1],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_70);\n    FUN_001369ee(plVar1[2],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_6c);\n    FUN_001369ee(plVar1[3],param_2,local_68);\n  }" else (compound_statement "{\n    if (param_4 == 3) {\n      if (*plVar1 != param_1) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe();\n      if (iVar2 < 0) goto LAB_00116c1b;\n      iVar2 = iVar2 * 3;\n      local_74 = FUN_001142ad(param_3,0x89,iVar2);\n      local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n      local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);\n    }\n    else {\n      if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe(*plVar1);\n      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);\n      if (iVar3 == 0) goto LAB_00116bb8;\n      iVar2 = iVar2 * 3;\n      FUN_0011493c(param_3,0x89,iVar2,local_74);\n      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);\n      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);\n    }\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_74);\n    FUN_001369ee(plVar1[1],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_70);\n    FUN_001369ee(plVar1[2],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_6c);\n    FUN_001369ee(plVar1[3],param_2,local_68);\n  }" { (if_statement "if (param_4 == 3) {\n      if (*plVar1 != param_1) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe();\n      if (iVar2 < 0) goto LAB_00116c1b;\n      iVar2 = iVar2 * 3;\n      local_74 = FUN_001142ad(param_3,0x89,iVar2);\n      local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n      local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);\n    }\n    else {\n      if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe(*plVar1);\n      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);\n      if (iVar3 == 0) goto LAB_00116bb8;\n      iVar2 = iVar2 * 3;\n      FUN_0011493c(param_3,0x89,iVar2,local_74);\n      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);\n      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);\n    }" if (parenthesized_expression "(param_4 == 3)" ( (binary_expression "param_4 == 3" identifier == number_literal) )) (compound_statement "{\n      if (*plVar1 != param_1) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe();\n      if (iVar2 < 0) goto LAB_00116c1b;\n      iVar2 = iVar2 * 3;\n      local_74 = FUN_001142ad(param_3,0x89,iVar2);\n      local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n      local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);\n    }" { (if_statement "if (*plVar1 != param_1) goto LAB_00116bb8;" if (parenthesized_expression "(*plVar1 != param_1)" ( (binary_expression "*plVar1 != param_1" (pointer_expression "*plVar1" * identifier) != identifier) )) (goto_statement "goto LAB_00116bb8;" goto statement_identifier ;)) (expression_statement "iVar2 = FUN_00136fbe();" (assignment_expression "iVar2 = FUN_00136fbe()" identifier = (call_expression "FUN_00136fbe()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 < 0) goto LAB_00116c1b;" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00116c1b;" goto statement_identifier ;)) (expression_statement "iVar2 = iVar2 * 3;" (assignment_expression "iVar2 = iVar2 * 3" identifier = (binary_expression "iVar2 * 3" identifier * number_literal)) ;) (expression_statement "local_74 = FUN_001142ad(param_3,0x89,iVar2);" (assignment_expression "local_74 = FUN_001142ad(param_3,0x89,iVar2)" identifier = (call_expression "FUN_001142ad(param_3,0x89,iVar2)" identifier (argument_list "(param_3,0x89,iVar2)" ( identifier , number_literal , identifier )))) ;) (expression_statement "local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);" (assignment_expression "local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1)" identifier = (call_expression "FUN_001142ad(param_3,0x89,iVar2 + 1)" identifier (argument_list "(param_3,0x89,iVar2 + 1)" ( identifier , number_literal , (binary_expression "iVar2 + 1" identifier + number_literal) )))) ;) (expression_statement "local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);" (assignment_expression "local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2)" identifier = (call_expression "FUN_001142ad(param_3,0x89,iVar2 + 2)" identifier (argument_list "(param_3,0x89,iVar2 + 2)" ( identifier , number_literal , (binary_expression "iVar2 + 2" identifier + number_literal) )))) ;) }) (else_clause "else {\n      if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe(*plVar1);\n      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);\n      if (iVar3 == 0) goto LAB_00116bb8;\n      iVar2 = iVar2 * 3;\n      FUN_0011493c(param_3,0x89,iVar2,local_74);\n      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);\n      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);\n    }" else (compound_statement "{\n      if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe(*plVar1);\n      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);\n      if (iVar3 == 0) goto LAB_00116bb8;\n      iVar2 = iVar2 * 3;\n      FUN_0011493c(param_3,0x89,iVar2,local_74);\n      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);\n      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);\n    }" { (if_statement "if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }" if (parenthesized_expression "(param_4 == 2)" ( (binary_expression "param_4 == 2" identifier == number_literal) )) (compound_statement "{\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }" { (if_statement "if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }" if (parenthesized_expression "(((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1))" ( (binary_expression "((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)" (parenthesized_expression "((plVar1[1] == param_1) || (plVar1[2] == param_1))" ( (binary_expression "(plVar1[1] == param_1) || (plVar1[2] == param_1)" (parenthesized_expression "(plVar1[1] == param_1)" ( (binary_expression "plVar1[1] == param_1" (subscript_expression "plVar1[1]" identifier [ number_literal ]) == identifier) )) || (parenthesized_expression "(plVar1[2] == param_1)" ( (binary_expression "plVar1[2] == param_1" (subscript_expression "plVar1[2]" identifier [ number_literal ]) == identifier) ))) )) || (parenthesized_expression "(plVar1[3] == param_1)" ( (binary_expression "plVar1[3] == param_1" (subscript_expression "plVar1[3]" identifier [ number_literal ]) == identifier) ))) )) (compound_statement "{\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }" { (expression_statement "__nptr = (char *)FUN_00136aab(param_1,param_2);" (assignment_expression "__nptr = (char *)FUN_00136aab(param_1,param_2)" identifier = (cast_expression "(char *)FUN_00136aab(param_1,param_2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00136aab(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))))) ;) (expression_statement "lVar7 = strtol(__nptr,(char **)0x0,10);" (assignment_expression "lVar7 = strtol(__nptr,(char **)0x0,10)" identifier = (call_expression "strtol(__nptr,(char **)0x0,10)" identifier (argument_list "(__nptr,(char **)0x0,10)" ( identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;) (expression_statement "FUN_001217b3(__nptr);" (call_expression "FUN_001217b3(__nptr)" identifier (argument_list "(__nptr)" ( identifier ))) ;) (expression_statement "iVar2 = FUN_00136fbe(*plVar1,param_2);" (assignment_expression "iVar2 = FUN_00136fbe(*plVar1,param_2)" identifier = (call_expression "FUN_00136fbe(*plVar1,param_2)" identifier (argument_list "(*plVar1,param_2)" ( (pointer_expression "*plVar1" * identifier) , identifier )))) ;) (if_statement "if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }" if (parenthesized_expression "(-1 < iVar2)" ( (binary_expression "-1 < iVar2" number_literal < identifier) )) (compound_statement "{\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }" if (parenthesized_expression "(-1 < (int)lVar7)" ( (binary_expression "-1 < (int)lVar7" number_literal < (cast_expression "(int)lVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              iVar3 = (int)lVar7;\n            }" { (expression_statement "iVar3 = (int)lVar7;" (assignment_expression "iVar3 = (int)lVar7" identifier = (cast_expression "(int)lVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (if_statement "if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }" if (parenthesized_expression "(0xff < iVar3)" ( (binary_expression "0xff < iVar3" number_literal < identifier) )) (compound_statement "{\n              iVar3 = 0xff;\n            }" { (expression_statement "iVar3 = 0xff;" (assignment_expression "iVar3 = 0xff" identifier = number_literal) ;) })) (if_statement "if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }" if (parenthesized_expression "(plVar1[1] == param_1)" ( (binary_expression "plVar1[1] == param_1" (subscript_expression "plVar1[1]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }" { (expression_statement "FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);" (call_expression "FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3)" identifier (argument_list "(param_3,0x89,iVar2 * 3,iVar3)" ( identifier , number_literal , (binary_expression "iVar2 * 3" identifier * number_literal) , identifier ))) ;) }) (else_clause "else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }" else (if_statement "if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }" if (parenthesized_expression "(plVar1[2] == param_1)" ( (binary_expression "plVar1[2] == param_1" (subscript_expression "plVar1[2]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }" { (expression_statement "FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);" (call_expression "FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3)" identifier (argument_list "(param_3,0x89,iVar2 * 3 + 1,iVar3)" ( identifier , number_literal , (binary_expression "iVar2 * 3 + 1" (binary_expression "iVar2 * 3" identifier * number_literal) + number_literal) , identifier ))) ;) }) (else_clause "else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }" else (if_statement "if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }" if (parenthesized_expression "(plVar1[3] == param_1)" ( (binary_expression "plVar1[3] == param_1" (subscript_expression "plVar1[3]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }" { (expression_statement "FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);" (call_expression "FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3)" identifier (argument_list "(param_3,0x89,iVar2 * 3 + 2,iVar3)" ( identifier , number_literal , (binary_expression "iVar2 * 3 + 2" (binary_expression "iVar2 * 3" identifier * number_literal) + number_literal) , identifier ))) ;) })))))) })) })) (goto_statement "goto LAB_00116bb8;" goto statement_identifier ;) })) (if_statement "if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }" if (parenthesized_expression "(param_4 == 1)" ( (binary_expression "param_4 == 1" identifier == number_literal) )) (compound_statement "{\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }" { (if_statement "if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }" if (parenthesized_expression "(plVar1[4] == param_1)" ( (binary_expression "plVar1[4] == param_1" (subscript_expression "plVar1[4]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }" { (expression_statement "iVar2 = FUN_00136fbe(*plVar1);" (assignment_expression "iVar2 = FUN_00136fbe(*plVar1)" identifier = (call_expression "FUN_00136fbe(*plVar1)" identifier (argument_list "(*plVar1)" ( (pointer_expression "*plVar1" * identifier) )))) ;) (if_statement "if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n            FUN_00137a47(param_2);\n          }" { (expression_statement "FUN_00137a47(param_2);" (call_expression "FUN_00137a47(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) }) (else_clause "else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }" else (compound_statement "{\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }" { (expression_statement "iVar2 = iVar2 * 3;" (assignment_expression "iVar2 = iVar2 * 3" identifier = (binary_expression "iVar2 * 3" identifier * number_literal)) ;) (expression_statement "uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);" (assignment_expression "uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2)" identifier = (call_expression "FUN_001142ad(param_3,0x89,iVar2 + 2)" identifier (argument_list "(param_3,0x89,iVar2 + 2)" ( identifier , number_literal , (binary_expression "iVar2 + 2" identifier + number_literal) )))) ;) (expression_statement "uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);" (assignment_expression "uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1)" identifier = (call_expression "FUN_001142ad(param_3,0x89,iVar2 + 1)" identifier (argument_list "(param_3,0x89,iVar2 + 1)" ( identifier , number_literal , (binary_expression "iVar2 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar6 = FUN_001142ad(param_3,0x89,iVar2);" (assignment_expression "uVar6 = FUN_001142ad(param_3,0x89,iVar2)" identifier = (call_expression "FUN_001142ad(param_3,0x89,iVar2)" identifier (argument_list "(param_3,0x89,iVar2)" ( identifier , number_literal , identifier )))) ;) (expression_statement "FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);" (call_expression "FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4)" identifier (argument_list "(param_1,param_2,uVar6,uVar5,uVar4)" ( identifier , identifier , identifier , identifier , identifier ))) ;) }))) })) (goto_statement "goto LAB_00116bb8;" goto statement_identifier ;) })) (if_statement "if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;" if (parenthesized_expression "((param_4 != 4) || (plVar1[4] != param_1))" ( (binary_expression "(param_4 != 4) || (plVar1[4] != param_1)" (parenthesized_expression "(param_4 != 4)" ( (binary_expression "param_4 != 4" identifier != number_literal) )) || (parenthesized_expression "(plVar1[4] != param_1)" ( (binary_expression "plVar1[4] != param_1" (subscript_expression "plVar1[4]" identifier [ number_literal ]) != identifier) ))) )) (goto_statement "goto LAB_00116bb8;" goto statement_identifier ;)) (expression_statement "iVar2 = FUN_00136fbe(*plVar1);" (assignment_expression "iVar2 = FUN_00136fbe(*plVar1)" identifier = (call_expression "FUN_00136fbe(*plVar1)" identifier (argument_list "(*plVar1)" ( (pointer_expression "*plVar1" * identifier) )))) ;) (expression_statement "iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);" (assignment_expression "iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c)" identifier = (call_expression "FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c)" identifier (argument_list "(param_1,param_2,&local_74,&local_70,&local_6c)" ( identifier , identifier , (pointer_expression "&local_74" & identifier) , (pointer_expression "&local_70" & identifier) , (pointer_expression "&local_6c" & identifier) )))) ;) (if_statement "if (iVar3 == 0) goto LAB_00116bb8;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00116bb8;" goto statement_identifier ;)) (expression_statement "iVar2 = iVar2 * 3;" (assignment_expression "iVar2 = iVar2 * 3" identifier = (binary_expression "iVar2 * 3" identifier * number_literal)) ;) (expression_statement "FUN_0011493c(param_3,0x89,iVar2,local_74);" (call_expression "FUN_0011493c(param_3,0x89,iVar2,local_74)" identifier (argument_list "(param_3,0x89,iVar2,local_74)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);" (call_expression "FUN_0011493c(param_3,0x89,iVar2 + 1,local_70)" identifier (argument_list "(param_3,0x89,iVar2 + 1,local_70)" ( identifier , number_literal , (binary_expression "iVar2 + 1" identifier + number_literal) , identifier ))) ;) (expression_statement "FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);" (call_expression "FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c)" identifier (argument_list "(param_3,0x89,iVar2 + 2,local_6c)" ( identifier , number_literal , (binary_expression "iVar2 + 2" identifier + number_literal) , identifier ))) ;) }))) (expression_statement "__sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_74);" (call_expression "__sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_74)" identifier (argument_list "(local_68,1,0x28,&DAT_0016e1fb,local_74)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_0016e1fb" & identifier) , identifier ))) ;) (expression_statement "FUN_001369ee(plVar1[1],param_2,local_68);" (call_expression "FUN_001369ee(plVar1[1],param_2,local_68)" identifier (argument_list "(plVar1[1],param_2,local_68)" ( (subscript_expression "plVar1[1]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "__sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_70);" (call_expression "__sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_70)" identifier (argument_list "(local_68,1,0x28,&DAT_0016e1fb,local_70)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_0016e1fb" & identifier) , identifier ))) ;) (expression_statement "FUN_001369ee(plVar1[2],param_2,local_68);" (call_expression "FUN_001369ee(plVar1[2],param_2,local_68)" identifier (argument_list "(plVar1[2],param_2,local_68)" ( (subscript_expression "plVar1[2]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "__sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_6c);" (call_expression "__sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_6c)" identifier (argument_list "(local_68,1,0x28,&DAT_0016e1fb,local_6c)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_0016e1fb" & identifier) , identifier ))) ;) (expression_statement "FUN_001369ee(plVar1[3],param_2,local_68);" (call_expression "FUN_001369ee(plVar1[3],param_2,local_68)" identifier (argument_list "(plVar1[3],param_2,local_68)" ( (subscript_expression "plVar1[3]" identifier [ number_literal ]) , identifier , identifier ))) ;) }))) (labeled_statement "LAB_00116bb8:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void colour_handler(control *ctrl,void *dlg,void *data,int event)\n\n{\n  long lVar1;\n  long *plVar2;\n  int iVar3;\n  int iVar4;\n  int g_00;\n  char *__nptr;\n  long lVar5;\n  char **ppcVar6;\n  long in_FS_OFFSET;\n  int r;\n  int g;\n  int b;\n  char buf [40];\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  plVar2 = *(long **)((long)ctrl + 0x20);\n  if (event == 0) {\n    if ((control *)*plVar2 != ctrl) goto LAB_00116bb8;\n    dlg_update_start(ctrl,dlg);\n    dlg_listbox_clear(ctrl,dlg);\n    ppcVar6 = colours;\n    do {\n      dlg_listbox_add(ctrl,dlg,*ppcVar6);\n      ppcVar6 = ppcVar6 + 1;\n    } while (ppcVar6 != (char **)gsslibkeywords);\n    dlg_update_done(ctrl,dlg);\nLAB_00116c1b:\n    dlg_editbox_set((control *)plVar2[1],dlg,"");\n    dlg_editbox_set((control *)plVar2[2],dlg,"");\n    dlg_editbox_set((control *)plVar2[3],dlg,"");\n  }\n  else {\n    if (event == 3) {\n      if ((control *)*plVar2 != ctrl) goto LAB_00116bb8;\n      iVar3 = dlg_listbox_index(ctrl,dlg);\n      if (iVar3 < 0) goto LAB_00116c1b;\n      iVar3 = iVar3 * 3;\n      r = conf_get_int_int((Conf *)data,0x89,iVar3);\n      g = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);\n      b = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);\n    }\n    else {\n      if (event == 2) {\n        if ((((control *)plVar2[1] == ctrl) || ((control *)plVar2[2] == ctrl)) ||\n           ((control *)plVar2[3] == ctrl)) {\n          __nptr = dlg_editbox_get(ctrl,dlg);\n          lVar5 = strtol(__nptr,(char **)0x0,10);\n          safefree(__nptr);\n          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n          if (-1 < iVar3) {\n            iVar4 = 0;\n            if (-1 < (int)lVar5) {\n              iVar4 = (int)lVar5;\n            }\n            if (0xff < iVar4) {\n              iVar4 = 0xff;\n            }\n            if ((control *)plVar2[1] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3,iVar4);\n            }\n            else if ((control *)plVar2[2] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 1,iVar4);\n            }\n            else if ((control *)plVar2[3] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 2,iVar4);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (event == 1) {\n        if ((control *)plVar2[4] == ctrl) {\n          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n          if (iVar3 < 0) {\n            dlg_beep(dlg);\n          }\n          else {\n            iVar3 = iVar3 * 3;\n            iVar4 = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);\n            g_00 = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);\n            iVar3 = conf_get_int_int((Conf *)data,0x89,iVar3);\n            dlg_coloursel_start(ctrl,dlg,iVar3,g_00,iVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((event != 4) || ((control *)plVar2[4] != ctrl)) goto LAB_00116bb8;\n      iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n      iVar4 = dlg_coloursel_results(ctrl,dlg,&r,&g,&b);\n      if (iVar4 == 0) goto LAB_00116bb8;\n      iVar3 = iVar3 * 3;\n      conf_set_int_int((Conf *)data,0x89,iVar3,r);\n      conf_set_int_int((Conf *)data,0x89,iVar3 + 1,g);\n      conf_set_int_int((Conf *)data,0x89,iVar3 + 2,b);\n    }\n    __sprintf_chk(buf,1,0x28,&DAT_0016e1fb,r);\n    dlg_editbox_set((control *)plVar2[1],dlg,buf);\n    __sprintf_chk(buf,1,0x28,&DAT_0016e1fb,g);\n    dlg_editbox_set((control *)plVar2[2],dlg,buf);\n    __sprintf_chk(buf,1,0x28,&DAT_0016e1fb,b);\n    dlg_editbox_set((control *)plVar2[3],dlg,buf);\n  }\nLAB_00116bb8:\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "void colour_handler(control *ctrl,void *dlg,void *data,int event)\n\n{\n  long lVar1;\n  long *plVar2;\n  int iVar3;\n  int iVar4;\n  int g_00;\n  char *__nptr;\n  long lVar5;\n  char **ppcVar6;\n  long in_FS_OFFSET;\n  int r;\n  int g;\n  int b;\n  char buf [40];\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  plVar2 = *(long **)((long)ctrl + 0x20);\n  if (event == 0) {\n    if ((control *)*plVar2 != ctrl) goto LAB_00116bb8;\n    dlg_update_start(ctrl,dlg);\n    dlg_listbox_clear(ctrl,dlg);\n    ppcVar6 = colours;\n    do {\n      dlg_listbox_add(ctrl,dlg,*ppcVar6);\n      ppcVar6 = ppcVar6 + 1;\n    } while (ppcVar6 != (char **)gsslibkeywords);\n    dlg_update_done(ctrl,dlg);\nLAB_00116c1b:\n    dlg_editbox_set((control *)plVar2[1],dlg,"");\n    dlg_editbox_set((control *)plVar2[2],dlg,"");\n    dlg_editbox_set((control *)plVar2[3],dlg,"");\n  }\n  else {\n    if (event == 3) {\n      if ((control *)*plVar2 != ctrl) goto LAB_00116bb8;\n      iVar3 = dlg_listbox_index(ctrl,dlg);\n      if (iVar3 < 0) goto LAB_00116c1b;\n      iVar3 = iVar3 * 3;\n      r = conf_get_int_int((Conf *)data,0x89,iVar3);\n      g = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);\n      b = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);\n    }\n    else {\n      if (event == 2) {\n        if ((((control *)plVar2[1] == ctrl) || ((control *)plVar2[2] == ctrl)) ||\n           ((control *)plVar2[3] == ctrl)) {\n          __nptr = dlg_editbox_get(ctrl,dlg);\n          lVar5 = strtol(__nptr,(char **)0x0,10);\n          safefree(__nptr);\n          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n          if (-1 < iVar3) {\n            iVar4 = 0;\n            if (-1 < (int)lVar5) {\n              iVar4 = (int)lVar5;\n            }\n            if (0xff < iVar4) {\n              iVar4 = 0xff;\n            }\n            if ((control *)plVar2[1] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3,iVar4);\n            }\n            else if ((control *)plVar2[2] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 1,iVar4);\n            }\n            else if ((control *)plVar2[3] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 2,iVar4);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (event == 1) {\n        if ((control *)plVar2[4] == ctrl) {\n          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n          if (iVar3 < 0) {\n            dlg_beep(dlg);\n          }\n          else {\n            iVar3 = iVar3 * 3;\n            iVar4 = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);\n            g_00 = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);\n            iVar3 = conf_get_int_int((Conf *)data,0x89,iVar3);\n            dlg_coloursel_start(ctrl,dlg,iVar3,g_00,iVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((event != 4) || ((control *)plVar2[4] != ctrl)) goto LAB_00116bb8;\n      iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n      iVar4 = dlg_coloursel_results(ctrl,dlg,&r,&g,&b);\n      if (iVar4 == 0) goto LAB_00116bb8;\n      iVar3 = iVar3 * 3;\n      conf_set_int_int((Conf *)data,0x89,iVar3,r);\n      conf_set_int_int((Conf *)data,0x89,iVar3 + 1,g);\n      conf_set_int_int((Conf *)data,0x89,iVar3 + 2,b);\n    }\n    __sprintf_chk(buf,1,0x28,&DAT_0016e1fb,r);\n    dlg_editbox_set((control *)plVar2[1],dlg,buf);\n    __sprintf_chk(buf,1,0x28,&DAT_0016e1fb,g);\n    dlg_editbox_set((control *)plVar2[2],dlg,buf);\n    __sprintf_chk(buf,1,0x28,&DAT_0016e1fb,b);\n    dlg_editbox_set((control *)plVar2[3],dlg,buf);\n  }\nLAB_00116bb8:\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "colour_handler(control *ctrl,void *dlg,void *data,int event)" identifier (parameter_list "(control *ctrl,void *dlg,void *data,int event)" ( (parameter_declaration "control *ctrl" type_identifier (pointer_declarator "*ctrl" * identifier)) , (parameter_declaration "void *dlg" primitive_type (pointer_declarator "*dlg" * identifier)) , (parameter_declaration "void *data" primitive_type (pointer_declarator "*data" * identifier)) , (parameter_declaration "int event" primitive_type identifier) ))) (compound_statement "{\n  long lVar1;\n  long *plVar2;\n  int iVar3;\n  int iVar4;\n  int g_00;\n  char *__nptr;\n  long lVar5;\n  char **ppcVar6;\n  long in_FS_OFFSET;\n  int r;\n  int g;\n  int b;\n  char buf [40];\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  plVar2 = *(long **)((long)ctrl + 0x20);\n  if (event == 0) {\n    if ((control *)*plVar2 != ctrl) goto LAB_00116bb8;\n    dlg_update_start(ctrl,dlg);\n    dlg_listbox_clear(ctrl,dlg);\n    ppcVar6 = colours;\n    do {\n      dlg_listbox_add(ctrl,dlg,*ppcVar6);\n      ppcVar6 = ppcVar6 + 1;\n    } while (ppcVar6 != (char **)gsslibkeywords);\n    dlg_update_done(ctrl,dlg);\nLAB_00116c1b:\n    dlg_editbox_set((control *)plVar2[1],dlg,"");\n    dlg_editbox_set((control *)plVar2[2],dlg,"");\n    dlg_editbox_set((control *)plVar2[3],dlg,"");\n  }\n  else {\n    if (event == 3) {\n      if ((control *)*plVar2 != ctrl) goto LAB_00116bb8;\n      iVar3 = dlg_listbox_index(ctrl,dlg);\n      if (iVar3 < 0) goto LAB_00116c1b;\n      iVar3 = iVar3 * 3;\n      r = conf_get_int_int((Conf *)data,0x89,iVar3);\n      g = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);\n      b = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);\n    }\n    else {\n      if (event == 2) {\n        if ((((control *)plVar2[1] == ctrl) || ((control *)plVar2[2] == ctrl)) ||\n           ((control *)plVar2[3] == ctrl)) {\n          __nptr = dlg_editbox_get(ctrl,dlg);\n          lVar5 = strtol(__nptr,(char **)0x0,10);\n          safefree(__nptr);\n          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n          if (-1 < iVar3) {\n            iVar4 = 0;\n            if (-1 < (int)lVar5) {\n              iVar4 = (int)lVar5;\n            }\n            if (0xff < iVar4) {\n              iVar4 = 0xff;\n            }\n            if ((control *)plVar2[1] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3,iVar4);\n            }\n            else if ((control *)plVar2[2] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 1,iVar4);\n            }\n            else if ((control *)plVar2[3] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 2,iVar4);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (event == 1) {\n        if ((control *)plVar2[4] == ctrl) {\n          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n          if (iVar3 < 0) {\n            dlg_beep(dlg);\n          }\n          else {\n            iVar3 = iVar3 * 3;\n            iVar4 = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);\n            g_00 = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);\n            iVar3 = conf_get_int_int((Conf *)data,0x89,iVar3);\n            dlg_coloursel_start(ctrl,dlg,iVar3,g_00,iVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((event != 4) || ((control *)plVar2[4] != ctrl)) goto LAB_00116bb8;\n      iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n      iVar4 = dlg_coloursel_results(ctrl,dlg,&r,&g,&b);\n      if (iVar4 == 0) goto LAB_00116bb8;\n      iVar3 = iVar3 * 3;\n      conf_set_int_int((Conf *)data,0x89,iVar3,r);\n      conf_set_int_int((Conf *)data,0x89,iVar3 + 1,g);\n      conf_set_int_int((Conf *)data,0x89,iVar3 + 2,b);\n    }\n    __sprintf_chk(buf,1,0x28,&DAT_0016e1fb,r);\n    dlg_editbox_set((control *)plVar2[1],dlg,buf);\n    __sprintf_chk(buf,1,0x28,&DAT_0016e1fb,g);\n    dlg_editbox_set((control *)plVar2[2],dlg,buf);\n    __sprintf_chk(buf,1,0x28,&DAT_0016e1fb,b);\n    dlg_editbox_set((control *)plVar2[3],dlg,buf);\n  }\nLAB_00116bb8:\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar2;" (sized_type_specifier "long" long) (pointer_declarator "*plVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int g_00;" primitive_type identifier ;) (declaration "char *__nptr;" primitive_type (pointer_declarator "*__nptr" * identifier) ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "char **ppcVar6;" primitive_type (pointer_declarator "**ppcVar6" * (pointer_declarator "*ppcVar6" * identifier)) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "int r;" primitive_type identifier ;) (declaration "int g;" primitive_type identifier ;) (declaration "int b;" primitive_type identifier ;) (declaration "char buf [40];" primitive_type (array_declarator "buf [40]" identifier [ number_literal ]) ;) (expression_statement "lVar1 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar1 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "plVar2 = *(long **)((long)ctrl + 0x20);" (assignment_expression "plVar2 = *(long **)((long)ctrl + 0x20)" identifier = (pointer_expression "*(long **)((long)ctrl + 0x20)" * (cast_expression "(long **)((long)ctrl + 0x20)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)ctrl + 0x20)" ( (binary_expression "(long)ctrl + 0x20" (cast_expression "(long)ctrl" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if (event == 0) {\n    if ((control *)*plVar2 != ctrl) goto LAB_00116bb8;\n    dlg_update_start(ctrl,dlg);\n    dlg_listbox_clear(ctrl,dlg);\n    ppcVar6 = colours;\n    do {\n      dlg_listbox_add(ctrl,dlg,*ppcVar6);\n      ppcVar6 = ppcVar6 + 1;\n    } while (ppcVar6 != (char **)gsslibkeywords);\n    dlg_update_done(ctrl,dlg);\nLAB_00116c1b:\n    dlg_editbox_set((control *)plVar2[1],dlg,"");\n    dlg_editbox_set((control *)plVar2[2],dlg,"");\n    dlg_editbox_set((control *)plVar2[3],dlg,"");\n  }\n  else {\n    if (event == 3) {\n      if ((control *)*plVar2 != ctrl) goto LAB_00116bb8;\n      iVar3 = dlg_listbox_index(ctrl,dlg);\n      if (iVar3 < 0) goto LAB_00116c1b;\n      iVar3 = iVar3 * 3;\n      r = conf_get_int_int((Conf *)data,0x89,iVar3);\n      g = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);\n      b = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);\n    }\n    else {\n      if (event == 2) {\n        if ((((control *)plVar2[1] == ctrl) || ((control *)plVar2[2] == ctrl)) ||\n           ((control *)plVar2[3] == ctrl)) {\n          __nptr = dlg_editbox_get(ctrl,dlg);\n          lVar5 = strtol(__nptr,(char **)0x0,10);\n          safefree(__nptr);\n          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n          if (-1 < iVar3) {\n            iVar4 = 0;\n            if (-1 < (int)lVar5) {\n              iVar4 = (int)lVar5;\n            }\n            if (0xff < iVar4) {\n              iVar4 = 0xff;\n            }\n            if ((control *)plVar2[1] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3,iVar4);\n            }\n            else if ((control *)plVar2[2] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 1,iVar4);\n            }\n            else if ((control *)plVar2[3] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 2,iVar4);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (event == 1) {\n        if ((control *)plVar2[4] == ctrl) {\n          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n          if (iVar3 < 0) {\n            dlg_beep(dlg);\n          }\n          else {\n            iVar3 = iVar3 * 3;\n            iVar4 = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);\n            g_00 = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);\n            iVar3 = conf_get_int_int((Conf *)data,0x89,iVar3);\n            dlg_coloursel_start(ctrl,dlg,iVar3,g_00,iVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((event != 4) || ((control *)plVar2[4] != ctrl)) goto LAB_00116bb8;\n      iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n      iVar4 = dlg_coloursel_results(ctrl,dlg,&r,&g,&b);\n      if (iVar4 == 0) goto LAB_00116bb8;\n      iVar3 = iVar3 * 3;\n      conf_set_int_int((Conf *)data,0x89,iVar3,r);\n      conf_set_int_int((Conf *)data,0x89,iVar3 + 1,g);\n      conf_set_int_int((Conf *)data,0x89,iVar3 + 2,b);\n    }\n    __sprintf_chk(buf,1,0x28,&DAT_0016e1fb,r);\n    dlg_editbox_set((control *)plVar2[1],dlg,buf);\n    __sprintf_chk(buf,1,0x28,&DAT_0016e1fb,g);\n    dlg_editbox_set((control *)plVar2[2],dlg,buf);\n    __sprintf_chk(buf,1,0x28,&DAT_0016e1fb,b);\n    dlg_editbox_set((control *)plVar2[3],dlg,buf);\n  }" if (parenthesized_expression "(event == 0)" ( (binary_expression "event == 0" identifier == number_literal) )) (compound_statement "{\n    if ((control *)*plVar2 != ctrl) goto LAB_00116bb8;\n    dlg_update_start(ctrl,dlg);\n    dlg_listbox_clear(ctrl,dlg);\n    ppcVar6 = colours;\n    do {\n      dlg_listbox_add(ctrl,dlg,*ppcVar6);\n      ppcVar6 = ppcVar6 + 1;\n    } while (ppcVar6 != (char **)gsslibkeywords);\n    dlg_update_done(ctrl,dlg);\nLAB_00116c1b:\n    dlg_editbox_set((control *)plVar2[1],dlg,"");\n    dlg_editbox_set((control *)plVar2[2],dlg,"");\n    dlg_editbox_set((control *)plVar2[3],dlg,"");\n  }" { (if_statement "if ((control *)*plVar2 != ctrl) goto LAB_00116bb8;" if (parenthesized_expression "((control *)*plVar2 != ctrl)" ( (binary_expression "(control *)*plVar2 != ctrl" (cast_expression "(control *)*plVar2" ( (type_descriptor "control *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar2" * identifier)) != identifier) )) (goto_statement "goto LAB_00116bb8;" goto statement_identifier ;)) (expression_statement "dlg_update_start(ctrl,dlg);" (call_expression "dlg_update_start(ctrl,dlg)" identifier (argument_list "(ctrl,dlg)" ( identifier , identifier ))) ;) (expression_statement "dlg_listbox_clear(ctrl,dlg);" (call_expression "dlg_listbox_clear(ctrl,dlg)" identifier (argument_list "(ctrl,dlg)" ( identifier , identifier ))) ;) (expression_statement "ppcVar6 = colours;" (assignment_expression "ppcVar6 = colours" identifier = identifier) ;) (do_statement "do {\n      dlg_listbox_add(ctrl,dlg,*ppcVar6);\n      ppcVar6 = ppcVar6 + 1;\n    } while (ppcVar6 != (char **)gsslibkeywords);" do (compound_statement "{\n      dlg_listbox_add(ctrl,dlg,*ppcVar6);\n      ppcVar6 = ppcVar6 + 1;\n    }" { (expression_statement "dlg_listbox_add(ctrl,dlg,*ppcVar6);" (call_expression "dlg_listbox_add(ctrl,dlg,*ppcVar6)" identifier (argument_list "(ctrl,dlg,*ppcVar6)" ( identifier , identifier , (pointer_expression "*ppcVar6" * identifier) ))) ;) (expression_statement "ppcVar6 = ppcVar6 + 1;" (assignment_expression "ppcVar6 = ppcVar6 + 1" identifier = (binary_expression "ppcVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppcVar6 != (char **)gsslibkeywords)" ( (binary_expression "ppcVar6 != (char **)gsslibkeywords" identifier != (cast_expression "(char **)gsslibkeywords" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) )) ;) (expression_statement "dlg_update_done(ctrl,dlg);" (call_expression "dlg_update_done(ctrl,dlg)" identifier (argument_list "(ctrl,dlg)" ( identifier , identifier ))) ;) (labeled_statement "LAB_00116c1b:\n    dlg_editbox_set((control *)plVar2[1],dlg,"");" statement_identifier : (expression_statement "dlg_editbox_set((control *)plVar2[1],dlg,"");" (call_expression "dlg_editbox_set((control *)plVar2[1],dlg,"")" identifier (argument_list "((control *)plVar2[1],dlg,"")" ( (cast_expression "(control *)plVar2[1]" ( (type_descriptor "control *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[1]" identifier [ number_literal ])) , identifier , (string_literal """" " ") ))) ;)) (expression_statement "dlg_editbox_set((control *)plVar2[2],dlg,"");" (call_expression "dlg_editbox_set((control *)plVar2[2],dlg,"")" identifier (argument_list "((control *)plVar2[2],dlg,"")" ( (cast_expression "(control *)plVar2[2]" ( (type_descriptor "control *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[2]" identifier [ number_literal ])) , identifier , (string_literal """" " ") ))) ;) (expression_statement "dlg_editbox_set((control *)plVar2[3],dlg,"");" (call_expression "dlg_editbox_set((control *)plVar2[3],dlg,"")" identifier (argument_list "((control *)plVar2[3],dlg,"")" ( (cast_expression "(control *)plVar2[3]" ( (type_descriptor "control *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[3]" identifier [ number_literal ])) , identifier , (string_literal """" " ") ))) ;) }) (else_clause "else {\n    if (event == 3) {\n      if ((control *)*plVar2 != ctrl) goto LAB_00116bb8;\n      iVar3 = dlg_listbox_index(ctrl,dlg);\n      if (iVar3 < 0) goto LAB_00116c1b;\n      iVar3 = iVar3 * 3;\n      r = conf_get_int_int((Conf *)data,0x89,iVar3);\n      g = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);\n      b = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);\n    }\n    else {\n      if (event == 2) {\n        if ((((control *)plVar2[1] == ctrl) || ((control *)plVar2[2] == ctrl)) ||\n           ((control *)plVar2[3] == ctrl)) {\n          __nptr = dlg_editbox_get(ctrl,dlg);\n          lVar5 = strtol(__nptr,(char **)0x0,10);\n          safefree(__nptr);\n          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n          if (-1 < iVar3) {\n            iVar4 = 0;\n            if (-1 < (int)lVar5) {\n              iVar4 = (int)lVar5;\n            }\n            if (0xff < iVar4) {\n              iVar4 = 0xff;\n            }\n            if ((control *)plVar2[1] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3,iVar4);\n            }\n            else if ((control *)plVar2[2] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 1,iVar4);\n            }\n            else if ((control *)plVar2[3] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 2,iVar4);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (event == 1) {\n        if ((control *)plVar2[4] == ctrl) {\n          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n          if (iVar3 < 0) {\n            dlg_beep(dlg);\n          }\n          else {\n            iVar3 = iVar3 * 3;\n            iVar4 = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);\n            g_00 = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);\n            iVar3 = conf_get_int_int((Conf *)data,0x89,iVar3);\n            dlg_coloursel_start(ctrl,dlg,iVar3,g_00,iVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((event != 4) || ((control *)plVar2[4] != ctrl)) goto LAB_00116bb8;\n      iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n      iVar4 = dlg_coloursel_results(ctrl,dlg,&r,&g,&b);\n      if (iVar4 == 0) goto LAB_00116bb8;\n      iVar3 = iVar3 * 3;\n      conf_set_int_int((Conf *)data,0x89,iVar3,r);\n      conf_set_int_int((Conf *)data,0x89,iVar3 + 1,g);\n      conf_set_int_int((Conf *)data,0x89,iVar3 + 2,b);\n    }\n    __sprintf_chk(buf,1,0x28,&DAT_0016e1fb,r);\n    dlg_editbox_set((control *)plVar2[1],dlg,buf);\n    __sprintf_chk(buf,1,0x28,&DAT_0016e1fb,g);\n    dlg_editbox_set((control *)plVar2[2],dlg,buf);\n    __sprintf_chk(buf,1,0x28,&DAT_0016e1fb,b);\n    dlg_editbox_set((control *)plVar2[3],dlg,buf);\n  }" else (compound_statement "{\n    if (event == 3) {\n      if ((control *)*plVar2 != ctrl) goto LAB_00116bb8;\n      iVar3 = dlg_listbox_index(ctrl,dlg);\n      if (iVar3 < 0) goto LAB_00116c1b;\n      iVar3 = iVar3 * 3;\n      r = conf_get_int_int((Conf *)data,0x89,iVar3);\n      g = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);\n      b = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);\n    }\n    else {\n      if (event == 2) {\n        if ((((control *)plVar2[1] == ctrl) || ((control *)plVar2[2] == ctrl)) ||\n           ((control *)plVar2[3] == ctrl)) {\n          __nptr = dlg_editbox_get(ctrl,dlg);\n          lVar5 = strtol(__nptr,(char **)0x0,10);\n          safefree(__nptr);\n          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n          if (-1 < iVar3) {\n            iVar4 = 0;\n            if (-1 < (int)lVar5) {\n              iVar4 = (int)lVar5;\n            }\n            if (0xff < iVar4) {\n              iVar4 = 0xff;\n            }\n            if ((control *)plVar2[1] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3,iVar4);\n            }\n            else if ((control *)plVar2[2] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 1,iVar4);\n            }\n            else if ((control *)plVar2[3] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 2,iVar4);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (event == 1) {\n        if ((control *)plVar2[4] == ctrl) {\n          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n          if (iVar3 < 0) {\n            dlg_beep(dlg);\n          }\n          else {\n            iVar3 = iVar3 * 3;\n            iVar4 = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);\n            g_00 = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);\n            iVar3 = conf_get_int_int((Conf *)data,0x89,iVar3);\n            dlg_coloursel_start(ctrl,dlg,iVar3,g_00,iVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((event != 4) || ((control *)plVar2[4] != ctrl)) goto LAB_00116bb8;\n      iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n      iVar4 = dlg_coloursel_results(ctrl,dlg,&r,&g,&b);\n      if (iVar4 == 0) goto LAB_00116bb8;\n      iVar3 = iVar3 * 3;\n      conf_set_int_int((Conf *)data,0x89,iVar3,r);\n      conf_set_int_int((Conf *)data,0x89,iVar3 + 1,g);\n      conf_set_int_int((Conf *)data,0x89,iVar3 + 2,b);\n    }\n    __sprintf_chk(buf,1,0x28,&DAT_0016e1fb,r);\n    dlg_editbox_set((control *)plVar2[1],dlg,buf);\n    __sprintf_chk(buf,1,0x28,&DAT_0016e1fb,g);\n    dlg_editbox_set((control *)plVar2[2],dlg,buf);\n    __sprintf_chk(buf,1,0x28,&DAT_0016e1fb,b);\n    dlg_editbox_set((control *)plVar2[3],dlg,buf);\n  }" { (if_statement "if (event == 3) {\n      if ((control *)*plVar2 != ctrl) goto LAB_00116bb8;\n      iVar3 = dlg_listbox_index(ctrl,dlg);\n      if (iVar3 < 0) goto LAB_00116c1b;\n      iVar3 = iVar3 * 3;\n      r = conf_get_int_int((Conf *)data,0x89,iVar3);\n      g = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);\n      b = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);\n    }\n    else {\n      if (event == 2) {\n        if ((((control *)plVar2[1] == ctrl) || ((control *)plVar2[2] == ctrl)) ||\n           ((control *)plVar2[3] == ctrl)) {\n          __nptr = dlg_editbox_get(ctrl,dlg);\n          lVar5 = strtol(__nptr,(char **)0x0,10);\n          safefree(__nptr);\n          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n          if (-1 < iVar3) {\n            iVar4 = 0;\n            if (-1 < (int)lVar5) {\n              iVar4 = (int)lVar5;\n            }\n            if (0xff < iVar4) {\n              iVar4 = 0xff;\n            }\n            if ((control *)plVar2[1] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3,iVar4);\n            }\n            else if ((control *)plVar2[2] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 1,iVar4);\n            }\n            else if ((control *)plVar2[3] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 2,iVar4);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (event == 1) {\n        if ((control *)plVar2[4] == ctrl) {\n          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n          if (iVar3 < 0) {\n            dlg_beep(dlg);\n          }\n          else {\n            iVar3 = iVar3 * 3;\n            iVar4 = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);\n            g_00 = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);\n            iVar3 = conf_get_int_int((Conf *)data,0x89,iVar3);\n            dlg_coloursel_start(ctrl,dlg,iVar3,g_00,iVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((event != 4) || ((control *)plVar2[4] != ctrl)) goto LAB_00116bb8;\n      iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n      iVar4 = dlg_coloursel_results(ctrl,dlg,&r,&g,&b);\n      if (iVar4 == 0) goto LAB_00116bb8;\n      iVar3 = iVar3 * 3;\n      conf_set_int_int((Conf *)data,0x89,iVar3,r);\n      conf_set_int_int((Conf *)data,0x89,iVar3 + 1,g);\n      conf_set_int_int((Conf *)data,0x89,iVar3 + 2,b);\n    }" if (parenthesized_expression "(event == 3)" ( (binary_expression "event == 3" identifier == number_literal) )) (compound_statement "{\n      if ((control *)*plVar2 != ctrl) goto LAB_00116bb8;\n      iVar3 = dlg_listbox_index(ctrl,dlg);\n      if (iVar3 < 0) goto LAB_00116c1b;\n      iVar3 = iVar3 * 3;\n      r = conf_get_int_int((Conf *)data,0x89,iVar3);\n      g = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);\n      b = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);\n    }" { (if_statement "if ((control *)*plVar2 != ctrl) goto LAB_00116bb8;" if (parenthesized_expression "((control *)*plVar2 != ctrl)" ( (binary_expression "(control *)*plVar2 != ctrl" (cast_expression "(control *)*plVar2" ( (type_descriptor "control *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar2" * identifier)) != identifier) )) (goto_statement "goto LAB_00116bb8;" goto statement_identifier ;)) (expression_statement "iVar3 = dlg_listbox_index(ctrl,dlg);" (assignment_expression "iVar3 = dlg_listbox_index(ctrl,dlg)" identifier = (call_expression "dlg_listbox_index(ctrl,dlg)" identifier (argument_list "(ctrl,dlg)" ( identifier , identifier )))) ;) (if_statement "if (iVar3 < 0) goto LAB_00116c1b;" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00116c1b;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 * 3;" (assignment_expression "iVar3 = iVar3 * 3" identifier = (binary_expression "iVar3 * 3" identifier * number_literal)) ;) (expression_statement "r = conf_get_int_int((Conf *)data,0x89,iVar3);" (assignment_expression "r = conf_get_int_int((Conf *)data,0x89,iVar3)" identifier = (call_expression "conf_get_int_int((Conf *)data,0x89,iVar3)" identifier (argument_list "((Conf *)data,0x89,iVar3)" ( (cast_expression "(Conf *)data" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , identifier )))) ;) (expression_statement "g = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);" (assignment_expression "g = conf_get_int_int((Conf *)data,0x89,iVar3 + 1)" identifier = (call_expression "conf_get_int_int((Conf *)data,0x89,iVar3 + 1)" identifier (argument_list "((Conf *)data,0x89,iVar3 + 1)" ( (cast_expression "(Conf *)data" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , (binary_expression "iVar3 + 1" identifier + number_literal) )))) ;) (expression_statement "b = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);" (assignment_expression "b = conf_get_int_int((Conf *)data,0x89,iVar3 + 2)" identifier = (call_expression "conf_get_int_int((Conf *)data,0x89,iVar3 + 2)" identifier (argument_list "((Conf *)data,0x89,iVar3 + 2)" ( (cast_expression "(Conf *)data" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , (binary_expression "iVar3 + 2" identifier + number_literal) )))) ;) }) (else_clause "else {\n      if (event == 2) {\n        if ((((control *)plVar2[1] == ctrl) || ((control *)plVar2[2] == ctrl)) ||\n           ((control *)plVar2[3] == ctrl)) {\n          __nptr = dlg_editbox_get(ctrl,dlg);\n          lVar5 = strtol(__nptr,(char **)0x0,10);\n          safefree(__nptr);\n          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n          if (-1 < iVar3) {\n            iVar4 = 0;\n            if (-1 < (int)lVar5) {\n              iVar4 = (int)lVar5;\n            }\n            if (0xff < iVar4) {\n              iVar4 = 0xff;\n            }\n            if ((control *)plVar2[1] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3,iVar4);\n            }\n            else if ((control *)plVar2[2] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 1,iVar4);\n            }\n            else if ((control *)plVar2[3] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 2,iVar4);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (event == 1) {\n        if ((control *)plVar2[4] == ctrl) {\n          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n          if (iVar3 < 0) {\n            dlg_beep(dlg);\n          }\n          else {\n            iVar3 = iVar3 * 3;\n            iVar4 = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);\n            g_00 = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);\n            iVar3 = conf_get_int_int((Conf *)data,0x89,iVar3);\n            dlg_coloursel_start(ctrl,dlg,iVar3,g_00,iVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((event != 4) || ((control *)plVar2[4] != ctrl)) goto LAB_00116bb8;\n      iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n      iVar4 = dlg_coloursel_results(ctrl,dlg,&r,&g,&b);\n      if (iVar4 == 0) goto LAB_00116bb8;\n      iVar3 = iVar3 * 3;\n      conf_set_int_int((Conf *)data,0x89,iVar3,r);\n      conf_set_int_int((Conf *)data,0x89,iVar3 + 1,g);\n      conf_set_int_int((Conf *)data,0x89,iVar3 + 2,b);\n    }" else (compound_statement "{\n      if (event == 2) {\n        if ((((control *)plVar2[1] == ctrl) || ((control *)plVar2[2] == ctrl)) ||\n           ((control *)plVar2[3] == ctrl)) {\n          __nptr = dlg_editbox_get(ctrl,dlg);\n          lVar5 = strtol(__nptr,(char **)0x0,10);\n          safefree(__nptr);\n          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n          if (-1 < iVar3) {\n            iVar4 = 0;\n            if (-1 < (int)lVar5) {\n              iVar4 = (int)lVar5;\n            }\n            if (0xff < iVar4) {\n              iVar4 = 0xff;\n            }\n            if ((control *)plVar2[1] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3,iVar4);\n            }\n            else if ((control *)plVar2[2] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 1,iVar4);\n            }\n            else if ((control *)plVar2[3] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 2,iVar4);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (event == 1) {\n        if ((control *)plVar2[4] == ctrl) {\n          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n          if (iVar3 < 0) {\n            dlg_beep(dlg);\n          }\n          else {\n            iVar3 = iVar3 * 3;\n            iVar4 = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);\n            g_00 = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);\n            iVar3 = conf_get_int_int((Conf *)data,0x89,iVar3);\n            dlg_coloursel_start(ctrl,dlg,iVar3,g_00,iVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((event != 4) || ((control *)plVar2[4] != ctrl)) goto LAB_00116bb8;\n      iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n      iVar4 = dlg_coloursel_results(ctrl,dlg,&r,&g,&b);\n      if (iVar4 == 0) goto LAB_00116bb8;\n      iVar3 = iVar3 * 3;\n      conf_set_int_int((Conf *)data,0x89,iVar3,r);\n      conf_set_int_int((Conf *)data,0x89,iVar3 + 1,g);\n      conf_set_int_int((Conf *)data,0x89,iVar3 + 2,b);\n    }" { (if_statement "if (event == 2) {\n        if ((((control *)plVar2[1] == ctrl) || ((control *)plVar2[2] == ctrl)) ||\n           ((control *)plVar2[3] == ctrl)) {\n          __nptr = dlg_editbox_get(ctrl,dlg);\n          lVar5 = strtol(__nptr,(char **)0x0,10);\n          safefree(__nptr);\n          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n          if (-1 < iVar3) {\n            iVar4 = 0;\n            if (-1 < (int)lVar5) {\n              iVar4 = (int)lVar5;\n            }\n            if (0xff < iVar4) {\n              iVar4 = 0xff;\n            }\n            if ((control *)plVar2[1] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3,iVar4);\n            }\n            else if ((control *)plVar2[2] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 1,iVar4);\n            }\n            else if ((control *)plVar2[3] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 2,iVar4);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }" if (parenthesized_expression "(event == 2)" ( (binary_expression "event == 2" identifier == number_literal) )) (compound_statement "{\n        if ((((control *)plVar2[1] == ctrl) || ((control *)plVar2[2] == ctrl)) ||\n           ((control *)plVar2[3] == ctrl)) {\n          __nptr = dlg_editbox_get(ctrl,dlg);\n          lVar5 = strtol(__nptr,(char **)0x0,10);\n          safefree(__nptr);\n          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n          if (-1 < iVar3) {\n            iVar4 = 0;\n            if (-1 < (int)lVar5) {\n              iVar4 = (int)lVar5;\n            }\n            if (0xff < iVar4) {\n              iVar4 = 0xff;\n            }\n            if ((control *)plVar2[1] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3,iVar4);\n            }\n            else if ((control *)plVar2[2] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 1,iVar4);\n            }\n            else if ((control *)plVar2[3] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 2,iVar4);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }" { (if_statement "if ((((control *)plVar2[1] == ctrl) || ((control *)plVar2[2] == ctrl)) ||\n           ((control *)plVar2[3] == ctrl)) {\n          __nptr = dlg_editbox_get(ctrl,dlg);\n          lVar5 = strtol(__nptr,(char **)0x0,10);\n          safefree(__nptr);\n          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n          if (-1 < iVar3) {\n            iVar4 = 0;\n            if (-1 < (int)lVar5) {\n              iVar4 = (int)lVar5;\n            }\n            if (0xff < iVar4) {\n              iVar4 = 0xff;\n            }\n            if ((control *)plVar2[1] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3,iVar4);\n            }\n            else if ((control *)plVar2[2] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 1,iVar4);\n            }\n            else if ((control *)plVar2[3] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 2,iVar4);\n            }\n          }\n        }" if (parenthesized_expression "((((control *)plVar2[1] == ctrl) || ((control *)plVar2[2] == ctrl)) ||\n           ((control *)plVar2[3] == ctrl))" ( (binary_expression "(((control *)plVar2[1] == ctrl) || ((control *)plVar2[2] == ctrl)) ||\n           ((control *)plVar2[3] == ctrl)" (parenthesized_expression "(((control *)plVar2[1] == ctrl) || ((control *)plVar2[2] == ctrl))" ( (binary_expression "((control *)plVar2[1] == ctrl) || ((control *)plVar2[2] == ctrl)" (parenthesized_expression "((control *)plVar2[1] == ctrl)" ( (binary_expression "(control *)plVar2[1] == ctrl" (cast_expression "(control *)plVar2[1]" ( (type_descriptor "control *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[1]" identifier [ number_literal ])) == identifier) )) || (parenthesized_expression "((control *)plVar2[2] == ctrl)" ( (binary_expression "(control *)plVar2[2] == ctrl" (cast_expression "(control *)plVar2[2]" ( (type_descriptor "control *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[2]" identifier [ number_literal ])) == identifier) ))) )) || (parenthesized_expression "((control *)plVar2[3] == ctrl)" ( (binary_expression "(control *)plVar2[3] == ctrl" (cast_expression "(control *)plVar2[3]" ( (type_descriptor "control *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[3]" identifier [ number_literal ])) == identifier) ))) )) (compound_statement "{\n          __nptr = dlg_editbox_get(ctrl,dlg);\n          lVar5 = strtol(__nptr,(char **)0x0,10);\n          safefree(__nptr);\n          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n          if (-1 < iVar3) {\n            iVar4 = 0;\n            if (-1 < (int)lVar5) {\n              iVar4 = (int)lVar5;\n            }\n            if (0xff < iVar4) {\n              iVar4 = 0xff;\n            }\n            if ((control *)plVar2[1] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3,iVar4);\n            }\n            else if ((control *)plVar2[2] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 1,iVar4);\n            }\n            else if ((control *)plVar2[3] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 2,iVar4);\n            }\n          }\n        }" { (expression_statement "__nptr = dlg_editbox_get(ctrl,dlg);" (assignment_expression "__nptr = dlg_editbox_get(ctrl,dlg)" identifier = (call_expression "dlg_editbox_get(ctrl,dlg)" identifier (argument_list "(ctrl,dlg)" ( identifier , identifier )))) ;) (expression_statement "lVar5 = strtol(__nptr,(char **)0x0,10);" (assignment_expression "lVar5 = strtol(__nptr,(char **)0x0,10)" identifier = (call_expression "strtol(__nptr,(char **)0x0,10)" identifier (argument_list "(__nptr,(char **)0x0,10)" ( identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;) (expression_statement "safefree(__nptr);" (call_expression "safefree(__nptr)" identifier (argument_list "(__nptr)" ( identifier ))) ;) (expression_statement "iVar3 = dlg_listbox_index((control *)*plVar2,dlg);" (assignment_expression "iVar3 = dlg_listbox_index((control *)*plVar2,dlg)" identifier = (call_expression "dlg_listbox_index((control *)*plVar2,dlg)" identifier (argument_list "((control *)*plVar2,dlg)" ( (cast_expression "(control *)*plVar2" ( (type_descriptor "control *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar2" * identifier)) , identifier )))) ;) (if_statement "if (-1 < iVar3) {\n            iVar4 = 0;\n            if (-1 < (int)lVar5) {\n              iVar4 = (int)lVar5;\n            }\n            if (0xff < iVar4) {\n              iVar4 = 0xff;\n            }\n            if ((control *)plVar2[1] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3,iVar4);\n            }\n            else if ((control *)plVar2[2] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 1,iVar4);\n            }\n            else if ((control *)plVar2[3] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 2,iVar4);\n            }\n          }" if (parenthesized_expression "(-1 < iVar3)" ( (binary_expression "-1 < iVar3" number_literal < identifier) )) (compound_statement "{\n            iVar4 = 0;\n            if (-1 < (int)lVar5) {\n              iVar4 = (int)lVar5;\n            }\n            if (0xff < iVar4) {\n              iVar4 = 0xff;\n            }\n            if ((control *)plVar2[1] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3,iVar4);\n            }\n            else if ((control *)plVar2[2] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 1,iVar4);\n            }\n            else if ((control *)plVar2[3] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 2,iVar4);\n            }\n          }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)lVar5) {\n              iVar4 = (int)lVar5;\n            }" if (parenthesized_expression "(-1 < (int)lVar5)" ( (binary_expression "-1 < (int)lVar5" number_literal < (cast_expression "(int)lVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              iVar4 = (int)lVar5;\n            }" { (expression_statement "iVar4 = (int)lVar5;" (assignment_expression "iVar4 = (int)lVar5" identifier = (cast_expression "(int)lVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (if_statement "if (0xff < iVar4) {\n              iVar4 = 0xff;\n            }" if (parenthesized_expression "(0xff < iVar4)" ( (binary_expression "0xff < iVar4" number_literal < identifier) )) (compound_statement "{\n              iVar4 = 0xff;\n            }" { (expression_statement "iVar4 = 0xff;" (assignment_expression "iVar4 = 0xff" identifier = number_literal) ;) })) (if_statement "if ((control *)plVar2[1] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3,iVar4);\n            }\n            else if ((control *)plVar2[2] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 1,iVar4);\n            }\n            else if ((control *)plVar2[3] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 2,iVar4);\n            }" if (parenthesized_expression "((control *)plVar2[1] == ctrl)" ( (binary_expression "(control *)plVar2[1] == ctrl" (cast_expression "(control *)plVar2[1]" ( (type_descriptor "control *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[1]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3,iVar4);\n            }" { (expression_statement "conf_set_int_int((Conf *)data,0x89,iVar3 * 3,iVar4);" (call_expression "conf_set_int_int((Conf *)data,0x89,iVar3 * 3,iVar4)" identifier (argument_list "((Conf *)data,0x89,iVar3 * 3,iVar4)" ( (cast_expression "(Conf *)data" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , (binary_expression "iVar3 * 3" identifier * number_literal) , identifier ))) ;) }) (else_clause "else if ((control *)plVar2[2] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 1,iVar4);\n            }\n            else if ((control *)plVar2[3] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 2,iVar4);\n            }" else (if_statement "if ((control *)plVar2[2] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 1,iVar4);\n            }\n            else if ((control *)plVar2[3] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 2,iVar4);\n            }" if (parenthesized_expression "((control *)plVar2[2] == ctrl)" ( (binary_expression "(control *)plVar2[2] == ctrl" (cast_expression "(control *)plVar2[2]" ( (type_descriptor "control *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[2]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 1,iVar4);\n            }" { (expression_statement "conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 1,iVar4);" (call_expression "conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 1,iVar4)" identifier (argument_list "((Conf *)data,0x89,iVar3 * 3 + 1,iVar4)" ( (cast_expression "(Conf *)data" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , (binary_expression "iVar3 * 3 + 1" (binary_expression "iVar3 * 3" identifier * number_literal) + number_literal) , identifier ))) ;) }) (else_clause "else if ((control *)plVar2[3] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 2,iVar4);\n            }" else (if_statement "if ((control *)plVar2[3] == ctrl) {\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 2,iVar4);\n            }" if (parenthesized_expression "((control *)plVar2[3] == ctrl)" ( (binary_expression "(control *)plVar2[3] == ctrl" (cast_expression "(control *)plVar2[3]" ( (type_descriptor "control *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[3]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n              conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 2,iVar4);\n            }" { (expression_statement "conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 2,iVar4);" (call_expression "conf_set_int_int((Conf *)data,0x89,iVar3 * 3 + 2,iVar4)" identifier (argument_list "((Conf *)data,0x89,iVar3 * 3 + 2,iVar4)" ( (cast_expression "(Conf *)data" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , (binary_expression "iVar3 * 3 + 2" (binary_expression "iVar3 * 3" identifier * number_literal) + number_literal) , identifier ))) ;) })))))) })) })) (goto_statement "goto LAB_00116bb8;" goto statement_identifier ;) })) (if_statement "if (event == 1) {\n        if ((control *)plVar2[4] == ctrl) {\n          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n          if (iVar3 < 0) {\n            dlg_beep(dlg);\n          }\n          else {\n            iVar3 = iVar3 * 3;\n            iVar4 = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);\n            g_00 = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);\n            iVar3 = conf_get_int_int((Conf *)data,0x89,iVar3);\n            dlg_coloursel_start(ctrl,dlg,iVar3,g_00,iVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }" if (parenthesized_expression "(event == 1)" ( (binary_expression "event == 1" identifier == number_literal) )) (compound_statement "{\n        if ((control *)plVar2[4] == ctrl) {\n          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n          if (iVar3 < 0) {\n            dlg_beep(dlg);\n          }\n          else {\n            iVar3 = iVar3 * 3;\n            iVar4 = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);\n            g_00 = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);\n            iVar3 = conf_get_int_int((Conf *)data,0x89,iVar3);\n            dlg_coloursel_start(ctrl,dlg,iVar3,g_00,iVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }" { (if_statement "if ((control *)plVar2[4] == ctrl) {\n          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n          if (iVar3 < 0) {\n            dlg_beep(dlg);\n          }\n          else {\n            iVar3 = iVar3 * 3;\n            iVar4 = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);\n            g_00 = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);\n            iVar3 = conf_get_int_int((Conf *)data,0x89,iVar3);\n            dlg_coloursel_start(ctrl,dlg,iVar3,g_00,iVar4);\n          }\n        }" if (parenthesized_expression "((control *)plVar2[4] == ctrl)" ( (binary_expression "(control *)plVar2[4] == ctrl" (cast_expression "(control *)plVar2[4]" ( (type_descriptor "control *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[4]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n          iVar3 = dlg_listbox_index((control *)*plVar2,dlg);\n          if (iVar3 < 0) {\n            dlg_beep(dlg);\n          }\n          else {\n            iVar3 = iVar3 * 3;\n            iVar4 = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);\n            g_00 = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);\n            iVar3 = conf_get_int_int((Conf *)data,0x89,iVar3);\n            dlg_coloursel_start(ctrl,dlg,iVar3,g_00,iVar4);\n          }\n        }" { (expression_statement "iVar3 = dlg_listbox_index((control *)*plVar2,dlg);" (assignment_expression "iVar3 = dlg_listbox_index((control *)*plVar2,dlg)" identifier = (call_expression "dlg_listbox_index((control *)*plVar2,dlg)" identifier (argument_list "((control *)*plVar2,dlg)" ( (cast_expression "(control *)*plVar2" ( (type_descriptor "control *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar2" * identifier)) , identifier )))) ;) (if_statement "if (iVar3 < 0) {\n            dlg_beep(dlg);\n          }\n          else {\n            iVar3 = iVar3 * 3;\n            iVar4 = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);\n            g_00 = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);\n            iVar3 = conf_get_int_int((Conf *)data,0x89,iVar3);\n            dlg_coloursel_start(ctrl,dlg,iVar3,g_00,iVar4);\n          }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n            dlg_beep(dlg);\n          }" { (expression_statement "dlg_beep(dlg);" (call_expression "dlg_beep(dlg)" identifier (argument_list "(dlg)" ( identifier ))) ;) }) (else_clause "else {\n            iVar3 = iVar3 * 3;\n            iVar4 = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);\n            g_00 = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);\n            iVar3 = conf_get_int_int((Conf *)data,0x89,iVar3);\n            dlg_coloursel_start(ctrl,dlg,iVar3,g_00,iVar4);\n          }" else (compound_statement "{\n            iVar3 = iVar3 * 3;\n            iVar4 = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);\n            g_00 = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);\n            iVar3 = conf_get_int_int((Conf *)data,0x89,iVar3);\n            dlg_coloursel_start(ctrl,dlg,iVar3,g_00,iVar4);\n          }" { (expression_statement "iVar3 = iVar3 * 3;" (assignment_expression "iVar3 = iVar3 * 3" identifier = (binary_expression "iVar3 * 3" identifier * number_literal)) ;) (expression_statement "iVar4 = conf_get_int_int((Conf *)data,0x89,iVar3 + 2);" (assignment_expression "iVar4 = conf_get_int_int((Conf *)data,0x89,iVar3 + 2)" identifier = (call_expression "conf_get_int_int((Conf *)data,0x89,iVar3 + 2)" identifier (argument_list "((Conf *)data,0x89,iVar3 + 2)" ( (cast_expression "(Conf *)data" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , (binary_expression "iVar3 + 2" identifier + number_literal) )))) ;) (expression_statement "g_00 = conf_get_int_int((Conf *)data,0x89,iVar3 + 1);" (assignment_expression "g_00 = conf_get_int_int((Conf *)data,0x89,iVar3 + 1)" identifier = (call_expression "conf_get_int_int((Conf *)data,0x89,iVar3 + 1)" identifier (argument_list "((Conf *)data,0x89,iVar3 + 1)" ( (cast_expression "(Conf *)data" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , (binary_expression "iVar3 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar3 = conf_get_int_int((Conf *)data,0x89,iVar3);" (assignment_expression "iVar3 = conf_get_int_int((Conf *)data,0x89,iVar3)" identifier = (call_expression "conf_get_int_int((Conf *)data,0x89,iVar3)" identifier (argument_list "((Conf *)data,0x89,iVar3)" ( (cast_expression "(Conf *)data" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , identifier )))) ;) (expression_statement "dlg_coloursel_start(ctrl,dlg,iVar3,g_00,iVar4);" (call_expression "dlg_coloursel_start(ctrl,dlg,iVar3,g_00,iVar4)" identifier (argument_list "(ctrl,dlg,iVar3,g_00,iVar4)" ( identifier , identifier , identifier , identifier , identifier ))) ;) }))) })) (goto_statement "goto LAB_00116bb8;" goto statement_identifier ;) })) (if_statement "if ((event != 4) || ((control *)plVar2[4] != ctrl)) goto LAB_00116bb8;" if (parenthesized_expression "((event != 4) || ((control *)plVar2[4] != ctrl))" ( (binary_expression "(event != 4) || ((control *)plVar2[4] != ctrl)" (parenthesized_expression "(event != 4)" ( (binary_expression "event != 4" identifier != number_literal) )) || (parenthesized_expression "((control *)plVar2[4] != ctrl)" ( (binary_expression "(control *)plVar2[4] != ctrl" (cast_expression "(control *)plVar2[4]" ( (type_descriptor "control *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[4]" identifier [ number_literal ])) != identifier) ))) )) (goto_statement "goto LAB_00116bb8;" goto statement_identifier ;)) (expression_statement "iVar3 = dlg_listbox_index((control *)*plVar2,dlg);" (assignment_expression "iVar3 = dlg_listbox_index((control *)*plVar2,dlg)" identifier = (call_expression "dlg_listbox_index((control *)*plVar2,dlg)" identifier (argument_list "((control *)*plVar2,dlg)" ( (cast_expression "(control *)*plVar2" ( (type_descriptor "control *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar2" * identifier)) , identifier )))) ;) (expression_statement "iVar4 = dlg_coloursel_results(ctrl,dlg,&r,&g,&b);" (assignment_expression "iVar4 = dlg_coloursel_results(ctrl,dlg,&r,&g,&b)" identifier = (call_expression "dlg_coloursel_results(ctrl,dlg,&r,&g,&b)" identifier (argument_list "(ctrl,dlg,&r,&g,&b)" ( identifier , identifier , (pointer_expression "&r" & identifier) , (pointer_expression "&g" & identifier) , (pointer_expression "&b" & identifier) )))) ;) (if_statement "if (iVar4 == 0) goto LAB_00116bb8;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00116bb8;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 * 3;" (assignment_expression "iVar3 = iVar3 * 3" identifier = (binary_expression "iVar3 * 3" identifier * number_literal)) ;) (expression_statement "conf_set_int_int((Conf *)data,0x89,iVar3,r);" (call_expression "conf_set_int_int((Conf *)data,0x89,iVar3,r)" identifier (argument_list "((Conf *)data,0x89,iVar3,r)" ( (cast_expression "(Conf *)data" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , identifier , identifier ))) ;) (expression_statement "conf_set_int_int((Conf *)data,0x89,iVar3 + 1,g);" (call_expression "conf_set_int_int((Conf *)data,0x89,iVar3 + 1,g)" identifier (argument_list "((Conf *)data,0x89,iVar3 + 1,g)" ( (cast_expression "(Conf *)data" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , (binary_expression "iVar3 + 1" identifier + number_literal) , identifier ))) ;) (expression_statement "conf_set_int_int((Conf *)data,0x89,iVar3 + 2,b);" (call_expression "conf_set_int_int((Conf *)data,0x89,iVar3 + 2,b)" identifier (argument_list "((Conf *)data,0x89,iVar3 + 2,b)" ( (cast_expression "(Conf *)data" ( (type_descriptor "Conf *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , (binary_expression "iVar3 + 2" identifier + number_literal) , identifier ))) ;) }))) (expression_statement "__sprintf_chk(buf,1,0x28,&DAT_0016e1fb,r);" (call_expression "__sprintf_chk(buf,1,0x28,&DAT_0016e1fb,r)" identifier (argument_list "(buf,1,0x28,&DAT_0016e1fb,r)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_0016e1fb" & identifier) , identifier ))) ;) (expression_statement "dlg_editbox_set((control *)plVar2[1],dlg,buf);" (call_expression "dlg_editbox_set((control *)plVar2[1],dlg,buf)" identifier (argument_list "((control *)plVar2[1],dlg,buf)" ( (cast_expression "(control *)plVar2[1]" ( (type_descriptor "control *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[1]" identifier [ number_literal ])) , identifier , identifier ))) ;) (expression_statement "__sprintf_chk(buf,1,0x28,&DAT_0016e1fb,g);" (call_expression "__sprintf_chk(buf,1,0x28,&DAT_0016e1fb,g)" identifier (argument_list "(buf,1,0x28,&DAT_0016e1fb,g)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_0016e1fb" & identifier) , identifier ))) ;) (expression_statement "dlg_editbox_set((control *)plVar2[2],dlg,buf);" (call_expression "dlg_editbox_set((control *)plVar2[2],dlg,buf)" identifier (argument_list "((control *)plVar2[2],dlg,buf)" ( (cast_expression "(control *)plVar2[2]" ( (type_descriptor "control *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[2]" identifier [ number_literal ])) , identifier , identifier ))) ;) (expression_statement "__sprintf_chk(buf,1,0x28,&DAT_0016e1fb,b);" (call_expression "__sprintf_chk(buf,1,0x28,&DAT_0016e1fb,b)" identifier (argument_list "(buf,1,0x28,&DAT_0016e1fb,b)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_0016e1fb" & identifier) , identifier ))) ;) (expression_statement "dlg_editbox_set((control *)plVar2[3],dlg,buf);" (call_expression "dlg_editbox_set((control *)plVar2[3],dlg,buf)" identifier (argument_list "((control *)plVar2[3],dlg,buf)" ( (cast_expression "(control *)plVar2[3]" ( (type_descriptor "control *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[3]" identifier [ number_literal ])) , identifier , identifier ))) ;) }))) (labeled_statement "LAB_00116bb8:\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" statement_identifier : (if_statement "if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" if (parenthesized_expression "(lVar1 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar1 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void FUN_00116b82(long param_1,undefined8 param_2,undefined8 param_3,int param_4)\n\n{\n  long *plVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  char *__nptr;\n  long lVar7;\n  undefined **ppuVar8;\n  long in_FS_OFFSET;\n  undefined4 local_74;\n  undefined4 local_70;\n  undefined4 local_6c;\n  undefined1 local_68 [40];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  plVar1 = *(long **)(param_1 + 0x20);\n  if (param_4 == 0) {\n    if (*plVar1 != param_1) goto LAB_00116bb8;\n    FUN_0013794b();\n    FUN_00136b7f(param_1,param_2);\n    ppuVar8 = &PTR_s_Default_Foreground_0018a4a0;\n    do {\n      FUN_00136e91(param_1,param_2,*ppuVar8);\n      ppuVar8 = ppuVar8 + 1;\n    } while (ppuVar8 != &PTR_s_dummy_0018a550);\n    FUN_0013794c(param_1,param_2);\nLAB_00116c1b:\n    FUN_001369ee(plVar1[1],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[2],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[3],param_2,&DAT_001786b4);\n  }\n  else {\n    if (param_4 == 3) {\n      if (*plVar1 != param_1) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe();\n      if (iVar2 < 0) goto LAB_00116c1b;\n      iVar2 = iVar2 * 3;\n      local_74 = FUN_001142ad(param_3,0x89,iVar2);\n      local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n      local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);\n    }\n    else {\n      if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe(*plVar1);\n      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);\n      if (iVar3 == 0) goto LAB_00116bb8;\n      iVar2 = iVar2 * 3;\n      FUN_0011493c(param_3,0x89,iVar2,local_74);\n      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);\n      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);\n    }\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_74);\n    FUN_001369ee(plVar1[1],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_70);\n    FUN_001369ee(plVar1[2],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_6c);\n    FUN_001369ee(plVar1[3],param_2,local_68);\n  }\nLAB_00116bb8:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}\n\n" (function_definition "void FUN_00116b82(long param_1,undefined8 param_2,undefined8 param_3,int param_4)\n\n{\n  long *plVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  char *__nptr;\n  long lVar7;\n  undefined **ppuVar8;\n  long in_FS_OFFSET;\n  undefined4 local_74;\n  undefined4 local_70;\n  undefined4 local_6c;\n  undefined1 local_68 [40];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  plVar1 = *(long **)(param_1 + 0x20);\n  if (param_4 == 0) {\n    if (*plVar1 != param_1) goto LAB_00116bb8;\n    FUN_0013794b();\n    FUN_00136b7f(param_1,param_2);\n    ppuVar8 = &PTR_s_Default_Foreground_0018a4a0;\n    do {\n      FUN_00136e91(param_1,param_2,*ppuVar8);\n      ppuVar8 = ppuVar8 + 1;\n    } while (ppuVar8 != &PTR_s_dummy_0018a550);\n    FUN_0013794c(param_1,param_2);\nLAB_00116c1b:\n    FUN_001369ee(plVar1[1],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[2],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[3],param_2,&DAT_001786b4);\n  }\n  else {\n    if (param_4 == 3) {\n      if (*plVar1 != param_1) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe();\n      if (iVar2 < 0) goto LAB_00116c1b;\n      iVar2 = iVar2 * 3;\n      local_74 = FUN_001142ad(param_3,0x89,iVar2);\n      local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n      local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);\n    }\n    else {\n      if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe(*plVar1);\n      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);\n      if (iVar3 == 0) goto LAB_00116bb8;\n      iVar2 = iVar2 * 3;\n      FUN_0011493c(param_3,0x89,iVar2,local_74);\n      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);\n      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);\n    }\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_74);\n    FUN_001369ee(plVar1[1],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_70);\n    FUN_001369ee(plVar1[2],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_6c);\n    FUN_001369ee(plVar1[3],param_2,local_68);\n  }\nLAB_00116bb8:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}" primitive_type (function_declarator "FUN_00116b82(long param_1,undefined8 param_2,undefined8 param_3,int param_4)" identifier (parameter_list "(long param_1,undefined8 param_2,undefined8 param_3,int param_4)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  long *plVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  char *__nptr;\n  long lVar7;\n  undefined **ppuVar8;\n  long in_FS_OFFSET;\n  undefined4 local_74;\n  undefined4 local_70;\n  undefined4 local_6c;\n  undefined1 local_68 [40];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  plVar1 = *(long **)(param_1 + 0x20);\n  if (param_4 == 0) {\n    if (*plVar1 != param_1) goto LAB_00116bb8;\n    FUN_0013794b();\n    FUN_00136b7f(param_1,param_2);\n    ppuVar8 = &PTR_s_Default_Foreground_0018a4a0;\n    do {\n      FUN_00136e91(param_1,param_2,*ppuVar8);\n      ppuVar8 = ppuVar8 + 1;\n    } while (ppuVar8 != &PTR_s_dummy_0018a550);\n    FUN_0013794c(param_1,param_2);\nLAB_00116c1b:\n    FUN_001369ee(plVar1[1],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[2],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[3],param_2,&DAT_001786b4);\n  }\n  else {\n    if (param_4 == 3) {\n      if (*plVar1 != param_1) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe();\n      if (iVar2 < 0) goto LAB_00116c1b;\n      iVar2 = iVar2 * 3;\n      local_74 = FUN_001142ad(param_3,0x89,iVar2);\n      local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n      local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);\n    }\n    else {\n      if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe(*plVar1);\n      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);\n      if (iVar3 == 0) goto LAB_00116bb8;\n      iVar2 = iVar2 * 3;\n      FUN_0011493c(param_3,0x89,iVar2,local_74);\n      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);\n      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);\n    }\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_74);\n    FUN_001369ee(plVar1[1],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_70);\n    FUN_001369ee(plVar1[2],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_6c);\n    FUN_001369ee(plVar1[3],param_2,local_68);\n  }\nLAB_00116bb8:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}" { (declaration "long *plVar1;" (sized_type_specifier "long" long) (pointer_declarator "*plVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "char *__nptr;" primitive_type (pointer_declarator "*__nptr" * identifier) ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined **ppuVar8;" type_identifier (pointer_declarator "**ppuVar8" * (pointer_declarator "*ppuVar8" * identifier)) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 local_74;" type_identifier identifier ;) (declaration "undefined4 local_70;" type_identifier identifier ;) (declaration "undefined4 local_6c;" type_identifier identifier ;) (declaration "undefined1 local_68 [40];" type_identifier (array_declarator "local_68 [40]" identifier [ number_literal ]) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "plVar1 = *(long **)(param_1 + 0x20);" (assignment_expression "plVar1 = *(long **)(param_1 + 0x20)" identifier = (pointer_expression "*(long **)(param_1 + 0x20)" * (cast_expression "(long **)(param_1 + 0x20)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (param_4 == 0) {\n    if (*plVar1 != param_1) goto LAB_00116bb8;\n    FUN_0013794b();\n    FUN_00136b7f(param_1,param_2);\n    ppuVar8 = &PTR_s_Default_Foreground_0018a4a0;\n    do {\n      FUN_00136e91(param_1,param_2,*ppuVar8);\n      ppuVar8 = ppuVar8 + 1;\n    } while (ppuVar8 != &PTR_s_dummy_0018a550);\n    FUN_0013794c(param_1,param_2);\nLAB_00116c1b:\n    FUN_001369ee(plVar1[1],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[2],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[3],param_2,&DAT_001786b4);\n  }\n  else {\n    if (param_4 == 3) {\n      if (*plVar1 != param_1) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe();\n      if (iVar2 < 0) goto LAB_00116c1b;\n      iVar2 = iVar2 * 3;\n      local_74 = FUN_001142ad(param_3,0x89,iVar2);\n      local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n      local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);\n    }\n    else {\n      if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe(*plVar1);\n      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);\n      if (iVar3 == 0) goto LAB_00116bb8;\n      iVar2 = iVar2 * 3;\n      FUN_0011493c(param_3,0x89,iVar2,local_74);\n      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);\n      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);\n    }\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_74);\n    FUN_001369ee(plVar1[1],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_70);\n    FUN_001369ee(plVar1[2],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_6c);\n    FUN_001369ee(plVar1[3],param_2,local_68);\n  }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n    if (*plVar1 != param_1) goto LAB_00116bb8;\n    FUN_0013794b();\n    FUN_00136b7f(param_1,param_2);\n    ppuVar8 = &PTR_s_Default_Foreground_0018a4a0;\n    do {\n      FUN_00136e91(param_1,param_2,*ppuVar8);\n      ppuVar8 = ppuVar8 + 1;\n    } while (ppuVar8 != &PTR_s_dummy_0018a550);\n    FUN_0013794c(param_1,param_2);\nLAB_00116c1b:\n    FUN_001369ee(plVar1[1],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[2],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[3],param_2,&DAT_001786b4);\n  }" { (if_statement "if (*plVar1 != param_1) goto LAB_00116bb8;" if (parenthesized_expression "(*plVar1 != param_1)" ( (binary_expression "*plVar1 != param_1" (pointer_expression "*plVar1" * identifier) != identifier) )) (goto_statement "goto LAB_00116bb8;" goto statement_identifier ;)) (expression_statement "FUN_0013794b();" (call_expression "FUN_0013794b()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00136b7f(param_1,param_2);" (call_expression "FUN_00136b7f(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) (expression_statement "ppuVar8 = &PTR_s_Default_Foreground_0018a4a0;" (assignment_expression "ppuVar8 = &PTR_s_Default_Foreground_0018a4a0" identifier = (pointer_expression "&PTR_s_Default_Foreground_0018a4a0" & identifier)) ;) (do_statement "do {\n      FUN_00136e91(param_1,param_2,*ppuVar8);\n      ppuVar8 = ppuVar8 + 1;\n    } while (ppuVar8 != &PTR_s_dummy_0018a550);" do (compound_statement "{\n      FUN_00136e91(param_1,param_2,*ppuVar8);\n      ppuVar8 = ppuVar8 + 1;\n    }" { (expression_statement "FUN_00136e91(param_1,param_2,*ppuVar8);" (call_expression "FUN_00136e91(param_1,param_2,*ppuVar8)" identifier (argument_list "(param_1,param_2,*ppuVar8)" ( identifier , identifier , (pointer_expression "*ppuVar8" * identifier) ))) ;) (expression_statement "ppuVar8 = ppuVar8 + 1;" (assignment_expression "ppuVar8 = ppuVar8 + 1" identifier = (binary_expression "ppuVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppuVar8 != &PTR_s_dummy_0018a550)" ( (binary_expression "ppuVar8 != &PTR_s_dummy_0018a550" identifier != (pointer_expression "&PTR_s_dummy_0018a550" & identifier)) )) ;) (expression_statement "FUN_0013794c(param_1,param_2);" (call_expression "FUN_0013794c(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) (labeled_statement "LAB_00116c1b:\n    FUN_001369ee(plVar1[1],param_2,&DAT_001786b4);" statement_identifier : (expression_statement "FUN_001369ee(plVar1[1],param_2,&DAT_001786b4);" (call_expression "FUN_001369ee(plVar1[1],param_2,&DAT_001786b4)" identifier (argument_list "(plVar1[1],param_2,&DAT_001786b4)" ( (subscript_expression "plVar1[1]" identifier [ number_literal ]) , identifier , (pointer_expression "&DAT_001786b4" & identifier) ))) ;)) (expression_statement "FUN_001369ee(plVar1[2],param_2,&DAT_001786b4);" (call_expression "FUN_001369ee(plVar1[2],param_2,&DAT_001786b4)" identifier (argument_list "(plVar1[2],param_2,&DAT_001786b4)" ( (subscript_expression "plVar1[2]" identifier [ number_literal ]) , identifier , (pointer_expression "&DAT_001786b4" & identifier) ))) ;) (expression_statement "FUN_001369ee(plVar1[3],param_2,&DAT_001786b4);" (call_expression "FUN_001369ee(plVar1[3],param_2,&DAT_001786b4)" identifier (argument_list "(plVar1[3],param_2,&DAT_001786b4)" ( (subscript_expression "plVar1[3]" identifier [ number_literal ]) , identifier , (pointer_expression "&DAT_001786b4" & identifier) ))) ;) }) (else_clause "else {\n    if (param_4 == 3) {\n      if (*plVar1 != param_1) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe();\n      if (iVar2 < 0) goto LAB_00116c1b;\n      iVar2 = iVar2 * 3;\n      local_74 = FUN_001142ad(param_3,0x89,iVar2);\n      local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n      local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);\n    }\n    else {\n      if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe(*plVar1);\n      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);\n      if (iVar3 == 0) goto LAB_00116bb8;\n      iVar2 = iVar2 * 3;\n      FUN_0011493c(param_3,0x89,iVar2,local_74);\n      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);\n      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);\n    }\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_74);\n    FUN_001369ee(plVar1[1],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_70);\n    FUN_001369ee(plVar1[2],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_6c);\n    FUN_001369ee(plVar1[3],param_2,local_68);\n  }" else (compound_statement "{\n    if (param_4 == 3) {\n      if (*plVar1 != param_1) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe();\n      if (iVar2 < 0) goto LAB_00116c1b;\n      iVar2 = iVar2 * 3;\n      local_74 = FUN_001142ad(param_3,0x89,iVar2);\n      local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n      local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);\n    }\n    else {\n      if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe(*plVar1);\n      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);\n      if (iVar3 == 0) goto LAB_00116bb8;\n      iVar2 = iVar2 * 3;\n      FUN_0011493c(param_3,0x89,iVar2,local_74);\n      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);\n      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);\n    }\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_74);\n    FUN_001369ee(plVar1[1],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_70);\n    FUN_001369ee(plVar1[2],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_6c);\n    FUN_001369ee(plVar1[3],param_2,local_68);\n  }" { (if_statement "if (param_4 == 3) {\n      if (*plVar1 != param_1) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe();\n      if (iVar2 < 0) goto LAB_00116c1b;\n      iVar2 = iVar2 * 3;\n      local_74 = FUN_001142ad(param_3,0x89,iVar2);\n      local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n      local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);\n    }\n    else {\n      if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe(*plVar1);\n      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);\n      if (iVar3 == 0) goto LAB_00116bb8;\n      iVar2 = iVar2 * 3;\n      FUN_0011493c(param_3,0x89,iVar2,local_74);\n      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);\n      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);\n    }" if (parenthesized_expression "(param_4 == 3)" ( (binary_expression "param_4 == 3" identifier == number_literal) )) (compound_statement "{\n      if (*plVar1 != param_1) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe();\n      if (iVar2 < 0) goto LAB_00116c1b;\n      iVar2 = iVar2 * 3;\n      local_74 = FUN_001142ad(param_3,0x89,iVar2);\n      local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n      local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);\n    }" { (if_statement "if (*plVar1 != param_1) goto LAB_00116bb8;" if (parenthesized_expression "(*plVar1 != param_1)" ( (binary_expression "*plVar1 != param_1" (pointer_expression "*plVar1" * identifier) != identifier) )) (goto_statement "goto LAB_00116bb8;" goto statement_identifier ;)) (expression_statement "iVar2 = FUN_00136fbe();" (assignment_expression "iVar2 = FUN_00136fbe()" identifier = (call_expression "FUN_00136fbe()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 < 0) goto LAB_00116c1b;" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00116c1b;" goto statement_identifier ;)) (expression_statement "iVar2 = iVar2 * 3;" (assignment_expression "iVar2 = iVar2 * 3" identifier = (binary_expression "iVar2 * 3" identifier * number_literal)) ;) (expression_statement "local_74 = FUN_001142ad(param_3,0x89,iVar2);" (assignment_expression "local_74 = FUN_001142ad(param_3,0x89,iVar2)" identifier = (call_expression "FUN_001142ad(param_3,0x89,iVar2)" identifier (argument_list "(param_3,0x89,iVar2)" ( identifier , number_literal , identifier )))) ;) (expression_statement "local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);" (assignment_expression "local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1)" identifier = (call_expression "FUN_001142ad(param_3,0x89,iVar2 + 1)" identifier (argument_list "(param_3,0x89,iVar2 + 1)" ( identifier , number_literal , (binary_expression "iVar2 + 1" identifier + number_literal) )))) ;) (expression_statement "local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);" (assignment_expression "local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2)" identifier = (call_expression "FUN_001142ad(param_3,0x89,iVar2 + 2)" identifier (argument_list "(param_3,0x89,iVar2 + 2)" ( identifier , number_literal , (binary_expression "iVar2 + 2" identifier + number_literal) )))) ;) }) (else_clause "else {\n      if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe(*plVar1);\n      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);\n      if (iVar3 == 0) goto LAB_00116bb8;\n      iVar2 = iVar2 * 3;\n      FUN_0011493c(param_3,0x89,iVar2,local_74);\n      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);\n      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);\n    }" else (compound_statement "{\n      if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe(*plVar1);\n      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);\n      if (iVar3 == 0) goto LAB_00116bb8;\n      iVar2 = iVar2 * 3;\n      FUN_0011493c(param_3,0x89,iVar2,local_74);\n      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);\n      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);\n    }" { (if_statement "if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }" if (parenthesized_expression "(param_4 == 2)" ( (binary_expression "param_4 == 2" identifier == number_literal) )) (compound_statement "{\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }" { (if_statement "if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }" if (parenthesized_expression "(((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1))" ( (binary_expression "((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)" (parenthesized_expression "((plVar1[1] == param_1) || (plVar1[2] == param_1))" ( (binary_expression "(plVar1[1] == param_1) || (plVar1[2] == param_1)" (parenthesized_expression "(plVar1[1] == param_1)" ( (binary_expression "plVar1[1] == param_1" (subscript_expression "plVar1[1]" identifier [ number_literal ]) == identifier) )) || (parenthesized_expression "(plVar1[2] == param_1)" ( (binary_expression "plVar1[2] == param_1" (subscript_expression "plVar1[2]" identifier [ number_literal ]) == identifier) ))) )) || (parenthesized_expression "(plVar1[3] == param_1)" ( (binary_expression "plVar1[3] == param_1" (subscript_expression "plVar1[3]" identifier [ number_literal ]) == identifier) ))) )) (compound_statement "{\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }" { (expression_statement "__nptr = (char *)FUN_00136aab(param_1,param_2);" (assignment_expression "__nptr = (char *)FUN_00136aab(param_1,param_2)" identifier = (cast_expression "(char *)FUN_00136aab(param_1,param_2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00136aab(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))))) ;) (expression_statement "lVar7 = strtol(__nptr,(char **)0x0,10);" (assignment_expression "lVar7 = strtol(__nptr,(char **)0x0,10)" identifier = (call_expression "strtol(__nptr,(char **)0x0,10)" identifier (argument_list "(__nptr,(char **)0x0,10)" ( identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;) (expression_statement "FUN_001217b3(__nptr);" (call_expression "FUN_001217b3(__nptr)" identifier (argument_list "(__nptr)" ( identifier ))) ;) (expression_statement "iVar2 = FUN_00136fbe(*plVar1,param_2);" (assignment_expression "iVar2 = FUN_00136fbe(*plVar1,param_2)" identifier = (call_expression "FUN_00136fbe(*plVar1,param_2)" identifier (argument_list "(*plVar1,param_2)" ( (pointer_expression "*plVar1" * identifier) , identifier )))) ;) (if_statement "if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }" if (parenthesized_expression "(-1 < iVar2)" ( (binary_expression "-1 < iVar2" number_literal < identifier) )) (compound_statement "{\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }" if (parenthesized_expression "(-1 < (int)lVar7)" ( (binary_expression "-1 < (int)lVar7" number_literal < (cast_expression "(int)lVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              iVar3 = (int)lVar7;\n            }" { (expression_statement "iVar3 = (int)lVar7;" (assignment_expression "iVar3 = (int)lVar7" identifier = (cast_expression "(int)lVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (if_statement "if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }" if (parenthesized_expression "(0xff < iVar3)" ( (binary_expression "0xff < iVar3" number_literal < identifier) )) (compound_statement "{\n              iVar3 = 0xff;\n            }" { (expression_statement "iVar3 = 0xff;" (assignment_expression "iVar3 = 0xff" identifier = number_literal) ;) })) (if_statement "if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }" if (parenthesized_expression "(plVar1[1] == param_1)" ( (binary_expression "plVar1[1] == param_1" (subscript_expression "plVar1[1]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }" { (expression_statement "FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);" (call_expression "FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3)" identifier (argument_list "(param_3,0x89,iVar2 * 3,iVar3)" ( identifier , number_literal , (binary_expression "iVar2 * 3" identifier * number_literal) , identifier ))) ;) }) (else_clause "else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }" else (if_statement "if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }" if (parenthesized_expression "(plVar1[2] == param_1)" ( (binary_expression "plVar1[2] == param_1" (subscript_expression "plVar1[2]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }" { (expression_statement "FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);" (call_expression "FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3)" identifier (argument_list "(param_3,0x89,iVar2 * 3 + 1,iVar3)" ( identifier , number_literal , (binary_expression "iVar2 * 3 + 1" (binary_expression "iVar2 * 3" identifier * number_literal) + number_literal) , identifier ))) ;) }) (else_clause "else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }" else (if_statement "if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }" if (parenthesized_expression "(plVar1[3] == param_1)" ( (binary_expression "plVar1[3] == param_1" (subscript_expression "plVar1[3]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }" { (expression_statement "FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);" (call_expression "FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3)" identifier (argument_list "(param_3,0x89,iVar2 * 3 + 2,iVar3)" ( identifier , number_literal , (binary_expression "iVar2 * 3 + 2" (binary_expression "iVar2 * 3" identifier * number_literal) + number_literal) , identifier ))) ;) })))))) })) })) (goto_statement "goto LAB_00116bb8;" goto statement_identifier ;) })) (if_statement "if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }" if (parenthesized_expression "(param_4 == 1)" ( (binary_expression "param_4 == 1" identifier == number_literal) )) (compound_statement "{\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }" { (if_statement "if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }" if (parenthesized_expression "(plVar1[4] == param_1)" ( (binary_expression "plVar1[4] == param_1" (subscript_expression "plVar1[4]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }" { (expression_statement "iVar2 = FUN_00136fbe(*plVar1);" (assignment_expression "iVar2 = FUN_00136fbe(*plVar1)" identifier = (call_expression "FUN_00136fbe(*plVar1)" identifier (argument_list "(*plVar1)" ( (pointer_expression "*plVar1" * identifier) )))) ;) (if_statement "if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n            FUN_00137a47(param_2);\n          }" { (expression_statement "FUN_00137a47(param_2);" (call_expression "FUN_00137a47(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) }) (else_clause "else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }" else (compound_statement "{\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }" { (expression_statement "iVar2 = iVar2 * 3;" (assignment_expression "iVar2 = iVar2 * 3" identifier = (binary_expression "iVar2 * 3" identifier * number_literal)) ;) (expression_statement "uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);" (assignment_expression "uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2)" identifier = (call_expression "FUN_001142ad(param_3,0x89,iVar2 + 2)" identifier (argument_list "(param_3,0x89,iVar2 + 2)" ( identifier , number_literal , (binary_expression "iVar2 + 2" identifier + number_literal) )))) ;) (expression_statement "uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);" (assignment_expression "uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1)" identifier = (call_expression "FUN_001142ad(param_3,0x89,iVar2 + 1)" identifier (argument_list "(param_3,0x89,iVar2 + 1)" ( identifier , number_literal , (binary_expression "iVar2 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar6 = FUN_001142ad(param_3,0x89,iVar2);" (assignment_expression "uVar6 = FUN_001142ad(param_3,0x89,iVar2)" identifier = (call_expression "FUN_001142ad(param_3,0x89,iVar2)" identifier (argument_list "(param_3,0x89,iVar2)" ( identifier , number_literal , identifier )))) ;) (expression_statement "FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);" (call_expression "FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4)" identifier (argument_list "(param_1,param_2,uVar6,uVar5,uVar4)" ( identifier , identifier , identifier , identifier , identifier ))) ;) }))) })) (goto_statement "goto LAB_00116bb8;" goto statement_identifier ;) })) (if_statement "if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;" if (parenthesized_expression "((param_4 != 4) || (plVar1[4] != param_1))" ( (binary_expression "(param_4 != 4) || (plVar1[4] != param_1)" (parenthesized_expression "(param_4 != 4)" ( (binary_expression "param_4 != 4" identifier != number_literal) )) || (parenthesized_expression "(plVar1[4] != param_1)" ( (binary_expression "plVar1[4] != param_1" (subscript_expression "plVar1[4]" identifier [ number_literal ]) != identifier) ))) )) (goto_statement "goto LAB_00116bb8;" goto statement_identifier ;)) (expression_statement "iVar2 = FUN_00136fbe(*plVar1);" (assignment_expression "iVar2 = FUN_00136fbe(*plVar1)" identifier = (call_expression "FUN_00136fbe(*plVar1)" identifier (argument_list "(*plVar1)" ( (pointer_expression "*plVar1" * identifier) )))) ;) (expression_statement "iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);" (assignment_expression "iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c)" identifier = (call_expression "FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c)" identifier (argument_list "(param_1,param_2,&local_74,&local_70,&local_6c)" ( identifier , identifier , (pointer_expression "&local_74" & identifier) , (pointer_expression "&local_70" & identifier) , (pointer_expression "&local_6c" & identifier) )))) ;) (if_statement "if (iVar3 == 0) goto LAB_00116bb8;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00116bb8;" goto statement_identifier ;)) (expression_statement "iVar2 = iVar2 * 3;" (assignment_expression "iVar2 = iVar2 * 3" identifier = (binary_expression "iVar2 * 3" identifier * number_literal)) ;) (expression_statement "FUN_0011493c(param_3,0x89,iVar2,local_74);" (call_expression "FUN_0011493c(param_3,0x89,iVar2,local_74)" identifier (argument_list "(param_3,0x89,iVar2,local_74)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);" (call_expression "FUN_0011493c(param_3,0x89,iVar2 + 1,local_70)" identifier (argument_list "(param_3,0x89,iVar2 + 1,local_70)" ( identifier , number_literal , (binary_expression "iVar2 + 1" identifier + number_literal) , identifier ))) ;) (expression_statement "FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);" (call_expression "FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c)" identifier (argument_list "(param_3,0x89,iVar2 + 2,local_6c)" ( identifier , number_literal , (binary_expression "iVar2 + 2" identifier + number_literal) , identifier ))) ;) }))) (expression_statement "__sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_74);" (call_expression "__sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_74)" identifier (argument_list "(local_68,1,0x28,&DAT_0016e1fb,local_74)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_0016e1fb" & identifier) , identifier ))) ;) (expression_statement "FUN_001369ee(plVar1[1],param_2,local_68);" (call_expression "FUN_001369ee(plVar1[1],param_2,local_68)" identifier (argument_list "(plVar1[1],param_2,local_68)" ( (subscript_expression "plVar1[1]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "__sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_70);" (call_expression "__sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_70)" identifier (argument_list "(local_68,1,0x28,&DAT_0016e1fb,local_70)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_0016e1fb" & identifier) , identifier ))) ;) (expression_statement "FUN_001369ee(plVar1[2],param_2,local_68);" (call_expression "FUN_001369ee(plVar1[2],param_2,local_68)" identifier (argument_list "(plVar1[2],param_2,local_68)" ( (subscript_expression "plVar1[2]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "__sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_6c);" (call_expression "__sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_6c)" identifier (argument_list "(local_68,1,0x28,&DAT_0016e1fb,local_6c)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_0016e1fb" & identifier) , identifier ))) ;) (expression_statement "FUN_001369ee(plVar1[3],param_2,local_68);" (call_expression "FUN_001369ee(plVar1[3],param_2,local_68)" identifier (argument_list "(plVar1[3],param_2,local_68)" ( (subscript_expression "plVar1[3]" identifier [ number_literal ]) , identifier , identifier ))) ;) }))) (labeled_statement "LAB_00116bb8:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , (pointer_expression & IDENT) ))) ;)) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , (pointer_expression & IDENT) ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) ))) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression IDENT * LIT) , IDENT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (binary_expression IDENT * LIT) + LIT) , IDENT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (binary_expression IDENT * LIT) + LIT) , IDENT ))) ;) })))))) })) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) }))) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , (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 = (binary_expression IDENT * LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) , IDENT ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void FUN_00116b82(long param_1,undefined8 param_2,undefined8 param_3,int param_4)\n\n{\n  long *plVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  char *__nptr;\n  long lVar7;\n  undefined **ppuVar8;\n  long in_FS_OFFSET;\n  undefined4 local_74;\n  undefined4 local_70;\n  undefined4 local_6c;\n  undefined1 local_68 [40];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  plVar1 = *(long **)(param_1 + 0x20);\n  if (param_4 == 0) {\n    if (*plVar1 != param_1) goto LAB_00116bb8;\n    FUN_0013794b();\n    FUN_00136b7f(param_1,param_2);\n    ppuVar8 = &PTR_s_Default_Foreground_0018a4a0;\n    do {\n      FUN_00136e91(param_1,param_2,*ppuVar8);\n      ppuVar8 = ppuVar8 + 1;\n    } while (ppuVar8 != &PTR_s_dummy_0018a550);\n    FUN_0013794c(param_1,param_2);\nLAB_00116c1b:\n    FUN_001369ee(plVar1[1],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[2],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[3],param_2,&DAT_001786b4);\n  }\n  else {\n    if (param_4 == 3) {\n      if (*plVar1 != param_1) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe();\n      if (iVar2 < 0) goto LAB_00116c1b;\n      iVar2 = iVar2 * 3;\n      local_74 = FUN_001142ad(param_3,0x89,iVar2);\n      local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n      local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);\n    }\n    else {\n      if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe(*plVar1);\n      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);\n      if (iVar3 == 0) goto LAB_00116bb8;\n      iVar2 = iVar2 * 3;\n      FUN_0011493c(param_3,0x89,iVar2,local_74);\n      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);\n      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);\n    }\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_74);\n    FUN_001369ee(plVar1[1],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_70);\n    FUN_001369ee(plVar1[2],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_6c);\n    FUN_001369ee(plVar1[3],param_2,local_68);\n  }\nLAB_00116bb8:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}" (primitive_type "void") (function_declarator "FUN_00116b82(long param_1,undefined8 param_2,undefined8 param_3,int param_4)" (identifier "FUN_00116b82") (parameter_list "(long param_1,undefined8 param_2,undefined8 param_3,int param_4)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  long *plVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  char *__nptr;\n  long lVar7;\n  undefined **ppuVar8;\n  long in_FS_OFFSET;\n  undefined4 local_74;\n  undefined4 local_70;\n  undefined4 local_6c;\n  undefined1 local_68 [40];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  plVar1 = *(long **)(param_1 + 0x20);\n  if (param_4 == 0) {\n    if (*plVar1 != param_1) goto LAB_00116bb8;\n    FUN_0013794b();\n    FUN_00136b7f(param_1,param_2);\n    ppuVar8 = &PTR_s_Default_Foreground_0018a4a0;\n    do {\n      FUN_00136e91(param_1,param_2,*ppuVar8);\n      ppuVar8 = ppuVar8 + 1;\n    } while (ppuVar8 != &PTR_s_dummy_0018a550);\n    FUN_0013794c(param_1,param_2);\nLAB_00116c1b:\n    FUN_001369ee(plVar1[1],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[2],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[3],param_2,&DAT_001786b4);\n  }\n  else {\n    if (param_4 == 3) {\n      if (*plVar1 != param_1) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe();\n      if (iVar2 < 0) goto LAB_00116c1b;\n      iVar2 = iVar2 * 3;\n      local_74 = FUN_001142ad(param_3,0x89,iVar2);\n      local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n      local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);\n    }\n    else {\n      if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe(*plVar1);\n      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);\n      if (iVar3 == 0) goto LAB_00116bb8;\n      iVar2 = iVar2 * 3;\n      FUN_0011493c(param_3,0x89,iVar2,local_74);\n      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);\n      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);\n    }\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_74);\n    FUN_001369ee(plVar1[1],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_70);\n    FUN_001369ee(plVar1[2],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_6c);\n    FUN_001369ee(plVar1[3],param_2,local_68);\n  }\nLAB_00116bb8:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}" ({ "{") (declaration "long *plVar1;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar1" (* "*") (identifier "plVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "char *__nptr;" (primitive_type "char") (pointer_declarator "*__nptr" (* "*") (identifier "__nptr")) (; ";")) (declaration "long lVar7;" (sized_type_specifier "long" (long "long")) (identifier "lVar7") (; ";")) (declaration "undefined **ppuVar8;" (type_identifier "undefined") (pointer_declarator "**ppuVar8" (* "*") (pointer_declarator "*ppuVar8" (* "*") (identifier "ppuVar8"))) (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "undefined4 local_74;" (type_identifier "undefined4") (identifier "local_74") (; ";")) (declaration "undefined4 local_70;" (type_identifier "undefined4") (identifier "local_70") (; ";")) (declaration "undefined4 local_6c;" (type_identifier "undefined4") (identifier "local_6c") (; ";")) (declaration "undefined1 local_68 [40];" (type_identifier "undefined1") (array_declarator "local_68 [40]" (identifier "local_68") ([ "[") (number_literal "40") (] "]")) (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "plVar1 = *(long **)(param_1 + 0x20);" (assignment_expression "plVar1 = *(long **)(param_1 + 0x20)" (identifier "plVar1") (= "=") (pointer_expression "*(long **)(param_1 + 0x20)" (* "*") (cast_expression "(long **)(param_1 + 0x20)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (if_statement "if (param_4 == 0) {\n    if (*plVar1 != param_1) goto LAB_00116bb8;\n    FUN_0013794b();\n    FUN_00136b7f(param_1,param_2);\n    ppuVar8 = &PTR_s_Default_Foreground_0018a4a0;\n    do {\n      FUN_00136e91(param_1,param_2,*ppuVar8);\n      ppuVar8 = ppuVar8 + 1;\n    } while (ppuVar8 != &PTR_s_dummy_0018a550);\n    FUN_0013794c(param_1,param_2);\nLAB_00116c1b:\n    FUN_001369ee(plVar1[1],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[2],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[3],param_2,&DAT_001786b4);\n  }\n  else {\n    if (param_4 == 3) {\n      if (*plVar1 != param_1) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe();\n      if (iVar2 < 0) goto LAB_00116c1b;\n      iVar2 = iVar2 * 3;\n      local_74 = FUN_001142ad(param_3,0x89,iVar2);\n      local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n      local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);\n    }\n    else {\n      if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe(*plVar1);\n      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);\n      if (iVar3 == 0) goto LAB_00116bb8;\n      iVar2 = iVar2 * 3;\n      FUN_0011493c(param_3,0x89,iVar2,local_74);\n      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);\n      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);\n    }\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_74);\n    FUN_001369ee(plVar1[1],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_70);\n    FUN_001369ee(plVar1[2],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_6c);\n    FUN_001369ee(plVar1[3],param_2,local_68);\n  }" (if "if") (parenthesized_expression "(param_4 == 0)" (( "(") (binary_expression "param_4 == 0" (identifier "param_4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (*plVar1 != param_1) goto LAB_00116bb8;\n    FUN_0013794b();\n    FUN_00136b7f(param_1,param_2);\n    ppuVar8 = &PTR_s_Default_Foreground_0018a4a0;\n    do {\n      FUN_00136e91(param_1,param_2,*ppuVar8);\n      ppuVar8 = ppuVar8 + 1;\n    } while (ppuVar8 != &PTR_s_dummy_0018a550);\n    FUN_0013794c(param_1,param_2);\nLAB_00116c1b:\n    FUN_001369ee(plVar1[1],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[2],param_2,&DAT_001786b4);\n    FUN_001369ee(plVar1[3],param_2,&DAT_001786b4);\n  }" ({ "{") (if_statement "if (*plVar1 != param_1) goto LAB_00116bb8;" (if "if") (parenthesized_expression "(*plVar1 != param_1)" (( "(") (binary_expression "*plVar1 != param_1" (pointer_expression "*plVar1" (* "*") (identifier "plVar1")) (!= "!=") (identifier "param_1")) () ")")) (goto_statement "goto LAB_00116bb8;" (goto "goto") (statement_identifier "LAB_00116bb8") (; ";"))) (expression_statement "FUN_0013794b();" (call_expression "FUN_0013794b()" (identifier "FUN_0013794b") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00136b7f(param_1,param_2);" (call_expression "FUN_00136b7f(param_1,param_2)" (identifier "FUN_00136b7f") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "ppuVar8 = &PTR_s_Default_Foreground_0018a4a0;" (assignment_expression "ppuVar8 = &PTR_s_Default_Foreground_0018a4a0" (identifier "ppuVar8") (= "=") (pointer_expression "&PTR_s_Default_Foreground_0018a4a0" (& "&") (identifier "PTR_s_Default_Foreground_0018a4a0"))) (; ";")) (do_statement "do {\n      FUN_00136e91(param_1,param_2,*ppuVar8);\n      ppuVar8 = ppuVar8 + 1;\n    } while (ppuVar8 != &PTR_s_dummy_0018a550);" (do "do") (compound_statement "{\n      FUN_00136e91(param_1,param_2,*ppuVar8);\n      ppuVar8 = ppuVar8 + 1;\n    }" ({ "{") (expression_statement "FUN_00136e91(param_1,param_2,*ppuVar8);" (call_expression "FUN_00136e91(param_1,param_2,*ppuVar8)" (identifier "FUN_00136e91") (argument_list "(param_1,param_2,*ppuVar8)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (pointer_expression "*ppuVar8" (* "*") (identifier "ppuVar8")) () ")"))) (; ";")) (expression_statement "ppuVar8 = ppuVar8 + 1;" (assignment_expression "ppuVar8 = ppuVar8 + 1" (identifier "ppuVar8") (= "=") (binary_expression "ppuVar8 + 1" (identifier "ppuVar8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppuVar8 != &PTR_s_dummy_0018a550)" (( "(") (binary_expression "ppuVar8 != &PTR_s_dummy_0018a550" (identifier "ppuVar8") (!= "!=") (pointer_expression "&PTR_s_dummy_0018a550" (& "&") (identifier "PTR_s_dummy_0018a550"))) () ")")) (; ";")) (expression_statement "FUN_0013794c(param_1,param_2);" (call_expression "FUN_0013794c(param_1,param_2)" (identifier "FUN_0013794c") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (labeled_statement "LAB_00116c1b:\n    FUN_001369ee(plVar1[1],param_2,&DAT_001786b4);" (statement_identifier "LAB_00116c1b") (: ":") (expression_statement "FUN_001369ee(plVar1[1],param_2,&DAT_001786b4);" (call_expression "FUN_001369ee(plVar1[1],param_2,&DAT_001786b4)" (identifier "FUN_001369ee") (argument_list "(plVar1[1],param_2,&DAT_001786b4)" (( "(") (subscript_expression "plVar1[1]" (identifier "plVar1") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "param_2") (, ",") (pointer_expression "&DAT_001786b4" (& "&") (identifier "DAT_001786b4")) () ")"))) (; ";"))) (expression_statement "FUN_001369ee(plVar1[2],param_2,&DAT_001786b4);" (call_expression "FUN_001369ee(plVar1[2],param_2,&DAT_001786b4)" (identifier "FUN_001369ee") (argument_list "(plVar1[2],param_2,&DAT_001786b4)" (( "(") (subscript_expression "plVar1[2]" (identifier "plVar1") ([ "[") (number_literal "2") (] "]")) (, ",") (identifier "param_2") (, ",") (pointer_expression "&DAT_001786b4" (& "&") (identifier "DAT_001786b4")) () ")"))) (; ";")) (expression_statement "FUN_001369ee(plVar1[3],param_2,&DAT_001786b4);" (call_expression "FUN_001369ee(plVar1[3],param_2,&DAT_001786b4)" (identifier "FUN_001369ee") (argument_list "(plVar1[3],param_2,&DAT_001786b4)" (( "(") (subscript_expression "plVar1[3]" (identifier "plVar1") ([ "[") (number_literal "3") (] "]")) (, ",") (identifier "param_2") (, ",") (pointer_expression "&DAT_001786b4" (& "&") (identifier "DAT_001786b4")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n    if (param_4 == 3) {\n      if (*plVar1 != param_1) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe();\n      if (iVar2 < 0) goto LAB_00116c1b;\n      iVar2 = iVar2 * 3;\n      local_74 = FUN_001142ad(param_3,0x89,iVar2);\n      local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n      local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);\n    }\n    else {\n      if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe(*plVar1);\n      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);\n      if (iVar3 == 0) goto LAB_00116bb8;\n      iVar2 = iVar2 * 3;\n      FUN_0011493c(param_3,0x89,iVar2,local_74);\n      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);\n      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);\n    }\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_74);\n    FUN_001369ee(plVar1[1],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_70);\n    FUN_001369ee(plVar1[2],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_6c);\n    FUN_001369ee(plVar1[3],param_2,local_68);\n  }" (else "else") (compound_statement "{\n    if (param_4 == 3) {\n      if (*plVar1 != param_1) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe();\n      if (iVar2 < 0) goto LAB_00116c1b;\n      iVar2 = iVar2 * 3;\n      local_74 = FUN_001142ad(param_3,0x89,iVar2);\n      local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n      local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);\n    }\n    else {\n      if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe(*plVar1);\n      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);\n      if (iVar3 == 0) goto LAB_00116bb8;\n      iVar2 = iVar2 * 3;\n      FUN_0011493c(param_3,0x89,iVar2,local_74);\n      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);\n      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);\n    }\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_74);\n    FUN_001369ee(plVar1[1],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_70);\n    FUN_001369ee(plVar1[2],param_2,local_68);\n    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_6c);\n    FUN_001369ee(plVar1[3],param_2,local_68);\n  }" ({ "{") (if_statement "if (param_4 == 3) {\n      if (*plVar1 != param_1) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe();\n      if (iVar2 < 0) goto LAB_00116c1b;\n      iVar2 = iVar2 * 3;\n      local_74 = FUN_001142ad(param_3,0x89,iVar2);\n      local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n      local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);\n    }\n    else {\n      if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe(*plVar1);\n      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);\n      if (iVar3 == 0) goto LAB_00116bb8;\n      iVar2 = iVar2 * 3;\n      FUN_0011493c(param_3,0x89,iVar2,local_74);\n      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);\n      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);\n    }" (if "if") (parenthesized_expression "(param_4 == 3)" (( "(") (binary_expression "param_4 == 3" (identifier "param_4") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n      if (*plVar1 != param_1) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe();\n      if (iVar2 < 0) goto LAB_00116c1b;\n      iVar2 = iVar2 * 3;\n      local_74 = FUN_001142ad(param_3,0x89,iVar2);\n      local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n      local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);\n    }" ({ "{") (if_statement "if (*plVar1 != param_1) goto LAB_00116bb8;" (if "if") (parenthesized_expression "(*plVar1 != param_1)" (( "(") (binary_expression "*plVar1 != param_1" (pointer_expression "*plVar1" (* "*") (identifier "plVar1")) (!= "!=") (identifier "param_1")) () ")")) (goto_statement "goto LAB_00116bb8;" (goto "goto") (statement_identifier "LAB_00116bb8") (; ";"))) (expression_statement "iVar2 = FUN_00136fbe();" (assignment_expression "iVar2 = FUN_00136fbe()" (identifier "iVar2") (= "=") (call_expression "FUN_00136fbe()" (identifier "FUN_00136fbe") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar2 < 0) goto LAB_00116c1b;" (if "if") (parenthesized_expression "(iVar2 < 0)" (( "(") (binary_expression "iVar2 < 0" (identifier "iVar2") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_00116c1b;" (goto "goto") (statement_identifier "LAB_00116c1b") (; ";"))) (expression_statement "iVar2 = iVar2 * 3;" (assignment_expression "iVar2 = iVar2 * 3" (identifier "iVar2") (= "=") (binary_expression "iVar2 * 3" (identifier "iVar2") (* "*") (number_literal "3"))) (; ";")) (expression_statement "local_74 = FUN_001142ad(param_3,0x89,iVar2);" (assignment_expression "local_74 = FUN_001142ad(param_3,0x89,iVar2)" (identifier "local_74") (= "=") (call_expression "FUN_001142ad(param_3,0x89,iVar2)" (identifier "FUN_001142ad") (argument_list "(param_3,0x89,iVar2)" (( "(") (identifier "param_3") (, ",") (number_literal "0x89") (, ",") (identifier "iVar2") () ")")))) (; ";")) (expression_statement "local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);" (assignment_expression "local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1)" (identifier "local_70") (= "=") (call_expression "FUN_001142ad(param_3,0x89,iVar2 + 1)" (identifier "FUN_001142ad") (argument_list "(param_3,0x89,iVar2 + 1)" (( "(") (identifier "param_3") (, ",") (number_literal "0x89") (, ",") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);" (assignment_expression "local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2)" (identifier "local_6c") (= "=") (call_expression "FUN_001142ad(param_3,0x89,iVar2 + 2)" (identifier "FUN_001142ad") (argument_list "(param_3,0x89,iVar2 + 2)" (( "(") (identifier "param_3") (, ",") (number_literal "0x89") (, ",") (binary_expression "iVar2 + 2" (identifier "iVar2") (+ "+") (number_literal "2")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n      if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe(*plVar1);\n      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);\n      if (iVar3 == 0) goto LAB_00116bb8;\n      iVar2 = iVar2 * 3;\n      FUN_0011493c(param_3,0x89,iVar2,local_74);\n      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);\n      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);\n    }" (else "else") (compound_statement "{\n      if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }\n      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;\n      iVar2 = FUN_00136fbe(*plVar1);\n      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);\n      if (iVar3 == 0) goto LAB_00116bb8;\n      iVar2 = iVar2 * 3;\n      FUN_0011493c(param_3,0x89,iVar2,local_74);\n      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);\n      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);\n    }" ({ "{") (if_statement "if (param_4 == 2) {\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }" (if "if") (parenthesized_expression "(param_4 == 2)" (( "(") (binary_expression "param_4 == 2" (identifier "param_4") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }\n        goto LAB_00116bb8;\n      }" ({ "{") (if_statement "if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }" (if "if") (parenthesized_expression "(((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1))" (( "(") (binary_expression "((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)" (parenthesized_expression "((plVar1[1] == param_1) || (plVar1[2] == param_1))" (( "(") (binary_expression "(plVar1[1] == param_1) || (plVar1[2] == param_1)" (parenthesized_expression "(plVar1[1] == param_1)" (( "(") (binary_expression "plVar1[1] == param_1" (subscript_expression "plVar1[1]" (identifier "plVar1") ([ "[") (number_literal "1") (] "]")) (== "==") (identifier "param_1")) () ")")) (|| "||") (parenthesized_expression "(plVar1[2] == param_1)" (( "(") (binary_expression "plVar1[2] == param_1" (subscript_expression "plVar1[2]" (identifier "plVar1") ([ "[") (number_literal "2") (] "]")) (== "==") (identifier "param_1")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(plVar1[3] == param_1)" (( "(") (binary_expression "plVar1[3] == param_1" (subscript_expression "plVar1[3]" (identifier "plVar1") ([ "[") (number_literal "3") (] "]")) (== "==") (identifier "param_1")) () ")"))) () ")")) (compound_statement "{\n          __nptr = (char *)FUN_00136aab(param_1,param_2);\n          lVar7 = strtol(__nptr,(char **)0x0,10);\n          FUN_001217b3(__nptr);\n          iVar2 = FUN_00136fbe(*plVar1,param_2);\n          if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }\n        }" ({ "{") (expression_statement "__nptr = (char *)FUN_00136aab(param_1,param_2);" (assignment_expression "__nptr = (char *)FUN_00136aab(param_1,param_2)" (identifier "__nptr") (= "=") (cast_expression "(char *)FUN_00136aab(param_1,param_2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00136aab(param_1,param_2)" (identifier "FUN_00136aab") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")"))))) (; ";")) (expression_statement "lVar7 = strtol(__nptr,(char **)0x0,10);" (assignment_expression "lVar7 = strtol(__nptr,(char **)0x0,10)" (identifier "lVar7") (= "=") (call_expression "strtol(__nptr,(char **)0x0,10)" (identifier "strtol") (argument_list "(__nptr,(char **)0x0,10)" (( "(") (identifier "__nptr") (, ",") (cast_expression "(char **)0x0" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0")) (, ",") (number_literal "10") () ")")))) (; ";")) (expression_statement "FUN_001217b3(__nptr);" (call_expression "FUN_001217b3(__nptr)" (identifier "FUN_001217b3") (argument_list "(__nptr)" (( "(") (identifier "__nptr") () ")"))) (; ";")) (expression_statement "iVar2 = FUN_00136fbe(*plVar1,param_2);" (assignment_expression "iVar2 = FUN_00136fbe(*plVar1,param_2)" (identifier "iVar2") (= "=") (call_expression "FUN_00136fbe(*plVar1,param_2)" (identifier "FUN_00136fbe") (argument_list "(*plVar1,param_2)" (( "(") (pointer_expression "*plVar1" (* "*") (identifier "plVar1")) (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (-1 < iVar2) {\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }" (if "if") (parenthesized_expression "(-1 < iVar2)" (( "(") (binary_expression "-1 < iVar2" (number_literal "-1") (< "<") (identifier "iVar2")) () ")")) (compound_statement "{\n            iVar3 = 0;\n            if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }\n            if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }\n            if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }\n          }" ({ "{") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (if_statement "if (-1 < (int)lVar7) {\n              iVar3 = (int)lVar7;\n            }" (if "if") (parenthesized_expression "(-1 < (int)lVar7)" (( "(") (binary_expression "-1 < (int)lVar7" (number_literal "-1") (< "<") (cast_expression "(int)lVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar7"))) () ")")) (compound_statement "{\n              iVar3 = (int)lVar7;\n            }" ({ "{") (expression_statement "iVar3 = (int)lVar7;" (assignment_expression "iVar3 = (int)lVar7" (identifier "iVar3") (= "=") (cast_expression "(int)lVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar7"))) (; ";")) (} "}"))) (if_statement "if (0xff < iVar3) {\n              iVar3 = 0xff;\n            }" (if "if") (parenthesized_expression "(0xff < iVar3)" (( "(") (binary_expression "0xff < iVar3" (number_literal "0xff") (< "<") (identifier "iVar3")) () ")")) (compound_statement "{\n              iVar3 = 0xff;\n            }" ({ "{") (expression_statement "iVar3 = 0xff;" (assignment_expression "iVar3 = 0xff" (identifier "iVar3") (= "=") (number_literal "0xff")) (; ";")) (} "}"))) (if_statement "if (plVar1[1] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }\n            else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }" (if "if") (parenthesized_expression "(plVar1[1] == param_1)" (( "(") (binary_expression "plVar1[1] == param_1" (subscript_expression "plVar1[1]" (identifier "plVar1") ([ "[") (number_literal "1") (] "]")) (== "==") (identifier "param_1")) () ")")) (compound_statement "{\n              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);\n            }" ({ "{") (expression_statement "FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);" (call_expression "FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3)" (identifier "FUN_0011493c") (argument_list "(param_3,0x89,iVar2 * 3,iVar3)" (( "(") (identifier "param_3") (, ",") (number_literal "0x89") (, ",") (binary_expression "iVar2 * 3" (identifier "iVar2") (* "*") (number_literal "3")) (, ",") (identifier "iVar3") () ")"))) (; ";")) (} "}")) (else_clause "else if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }" (else "else") (if_statement "if (plVar1[2] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }\n            else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }" (if "if") (parenthesized_expression "(plVar1[2] == param_1)" (( "(") (binary_expression "plVar1[2] == param_1" (subscript_expression "plVar1[2]" (identifier "plVar1") ([ "[") (number_literal "2") (] "]")) (== "==") (identifier "param_1")) () ")")) (compound_statement "{\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);\n            }" ({ "{") (expression_statement "FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);" (call_expression "FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3)" (identifier "FUN_0011493c") (argument_list "(param_3,0x89,iVar2 * 3 + 1,iVar3)" (( "(") (identifier "param_3") (, ",") (number_literal "0x89") (, ",") (binary_expression "iVar2 * 3 + 1" (binary_expression "iVar2 * 3" (identifier "iVar2") (* "*") (number_literal "3")) (+ "+") (number_literal "1")) (, ",") (identifier "iVar3") () ")"))) (; ";")) (} "}")) (else_clause "else if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }" (else "else") (if_statement "if (plVar1[3] == param_1) {\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }" (if "if") (parenthesized_expression "(plVar1[3] == param_1)" (( "(") (binary_expression "plVar1[3] == param_1" (subscript_expression "plVar1[3]" (identifier "plVar1") ([ "[") (number_literal "3") (] "]")) (== "==") (identifier "param_1")) () ")")) (compound_statement "{\n              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);\n            }" ({ "{") (expression_statement "FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);" (call_expression "FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3)" (identifier "FUN_0011493c") (argument_list "(param_3,0x89,iVar2 * 3 + 2,iVar3)" (( "(") (identifier "param_3") (, ",") (number_literal "0x89") (, ",") (binary_expression "iVar2 * 3 + 2" (binary_expression "iVar2 * 3" (identifier "iVar2") (* "*") (number_literal "3")) (+ "+") (number_literal "2")) (, ",") (identifier "iVar3") () ")"))) (; ";")) (} "}"))))))) (} "}"))) (} "}"))) (goto_statement "goto LAB_00116bb8;" (goto "goto") (statement_identifier "LAB_00116bb8") (; ";")) (} "}"))) (if_statement "if (param_4 == 1) {\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }" (if "if") (parenthesized_expression "(param_4 == 1)" (( "(") (binary_expression "param_4 == 1" (identifier "param_4") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }\n        goto LAB_00116bb8;\n      }" ({ "{") (if_statement "if (plVar1[4] == param_1) {\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }" (if "if") (parenthesized_expression "(plVar1[4] == param_1)" (( "(") (binary_expression "plVar1[4] == param_1" (subscript_expression "plVar1[4]" (identifier "plVar1") ([ "[") (number_literal "4") (] "]")) (== "==") (identifier "param_1")) () ")")) (compound_statement "{\n          iVar2 = FUN_00136fbe(*plVar1);\n          if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }\n        }" ({ "{") (expression_statement "iVar2 = FUN_00136fbe(*plVar1);" (assignment_expression "iVar2 = FUN_00136fbe(*plVar1)" (identifier "iVar2") (= "=") (call_expression "FUN_00136fbe(*plVar1)" (identifier "FUN_00136fbe") (argument_list "(*plVar1)" (( "(") (pointer_expression "*plVar1" (* "*") (identifier "plVar1")) () ")")))) (; ";")) (if_statement "if (iVar2 < 0) {\n            FUN_00137a47(param_2);\n          }\n          else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }" (if "if") (parenthesized_expression "(iVar2 < 0)" (( "(") (binary_expression "iVar2 < 0" (identifier "iVar2") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            FUN_00137a47(param_2);\n          }" ({ "{") (expression_statement "FUN_00137a47(param_2);" (call_expression "FUN_00137a47(param_2)" (identifier "FUN_00137a47") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }" (else "else") (compound_statement "{\n            iVar2 = iVar2 * 3;\n            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);\n            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);\n            uVar6 = FUN_001142ad(param_3,0x89,iVar2);\n            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);\n          }" ({ "{") (expression_statement "iVar2 = iVar2 * 3;" (assignment_expression "iVar2 = iVar2 * 3" (identifier "iVar2") (= "=") (binary_expression "iVar2 * 3" (identifier "iVar2") (* "*") (number_literal "3"))) (; ";")) (expression_statement "uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);" (assignment_expression "uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2)" (identifier "uVar4") (= "=") (call_expression "FUN_001142ad(param_3,0x89,iVar2 + 2)" (identifier "FUN_001142ad") (argument_list "(param_3,0x89,iVar2 + 2)" (( "(") (identifier "param_3") (, ",") (number_literal "0x89") (, ",") (binary_expression "iVar2 + 2" (identifier "iVar2") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);" (assignment_expression "uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1)" (identifier "uVar5") (= "=") (call_expression "FUN_001142ad(param_3,0x89,iVar2 + 1)" (identifier "FUN_001142ad") (argument_list "(param_3,0x89,iVar2 + 1)" (( "(") (identifier "param_3") (, ",") (number_literal "0x89") (, ",") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar6 = FUN_001142ad(param_3,0x89,iVar2);" (assignment_expression "uVar6 = FUN_001142ad(param_3,0x89,iVar2)" (identifier "uVar6") (= "=") (call_expression "FUN_001142ad(param_3,0x89,iVar2)" (identifier "FUN_001142ad") (argument_list "(param_3,0x89,iVar2)" (( "(") (identifier "param_3") (, ",") (number_literal "0x89") (, ",") (identifier "iVar2") () ")")))) (; ";")) (expression_statement "FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);" (call_expression "FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4)" (identifier "FUN_00137c12") (argument_list "(param_1,param_2,uVar6,uVar5,uVar4)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "uVar6") (, ",") (identifier "uVar5") (, ",") (identifier "uVar4") () ")"))) (; ";")) (} "}")))) (} "}"))) (goto_statement "goto LAB_00116bb8;" (goto "goto") (statement_identifier "LAB_00116bb8") (; ";")) (} "}"))) (if_statement "if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;" (if "if") (parenthesized_expression "((param_4 != 4) || (plVar1[4] != param_1))" (( "(") (binary_expression "(param_4 != 4) || (plVar1[4] != param_1)" (parenthesized_expression "(param_4 != 4)" (( "(") (binary_expression "param_4 != 4" (identifier "param_4") (!= "!=") (number_literal "4")) () ")")) (|| "||") (parenthesized_expression "(plVar1[4] != param_1)" (( "(") (binary_expression "plVar1[4] != param_1" (subscript_expression "plVar1[4]" (identifier "plVar1") ([ "[") (number_literal "4") (] "]")) (!= "!=") (identifier "param_1")) () ")"))) () ")")) (goto_statement "goto LAB_00116bb8;" (goto "goto") (statement_identifier "LAB_00116bb8") (; ";"))) (expression_statement "iVar2 = FUN_00136fbe(*plVar1);" (assignment_expression "iVar2 = FUN_00136fbe(*plVar1)" (identifier "iVar2") (= "=") (call_expression "FUN_00136fbe(*plVar1)" (identifier "FUN_00136fbe") (argument_list "(*plVar1)" (( "(") (pointer_expression "*plVar1" (* "*") (identifier "plVar1")) () ")")))) (; ";")) (expression_statement "iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);" (assignment_expression "iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c)" (identifier "iVar3") (= "=") (call_expression "FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c)" (identifier "FUN_00137d93") (argument_list "(param_1,param_2,&local_74,&local_70,&local_6c)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (pointer_expression "&local_74" (& "&") (identifier "local_74")) (, ",") (pointer_expression "&local_70" (& "&") (identifier "local_70")) (, ",") (pointer_expression "&local_6c" (& "&") (identifier "local_6c")) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_00116bb8;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00116bb8;" (goto "goto") (statement_identifier "LAB_00116bb8") (; ";"))) (expression_statement "iVar2 = iVar2 * 3;" (assignment_expression "iVar2 = iVar2 * 3" (identifier "iVar2") (= "=") (binary_expression "iVar2 * 3" (identifier "iVar2") (* "*") (number_literal "3"))) (; ";")) (expression_statement "FUN_0011493c(param_3,0x89,iVar2,local_74);" (call_expression "FUN_0011493c(param_3,0x89,iVar2,local_74)" (identifier "FUN_0011493c") (argument_list "(param_3,0x89,iVar2,local_74)" (( "(") (identifier "param_3") (, ",") (number_literal "0x89") (, ",") (identifier "iVar2") (, ",") (identifier "local_74") () ")"))) (; ";")) (expression_statement "FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);" (call_expression "FUN_0011493c(param_3,0x89,iVar2 + 1,local_70)" (identifier "FUN_0011493c") (argument_list "(param_3,0x89,iVar2 + 1,local_70)" (( "(") (identifier "param_3") (, ",") (number_literal "0x89") (, ",") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1")) (, ",") (identifier "local_70") () ")"))) (; ";")) (expression_statement "FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);" (call_expression "FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c)" (identifier "FUN_0011493c") (argument_list "(param_3,0x89,iVar2 + 2,local_6c)" (( "(") (identifier "param_3") (, ",") (number_literal "0x89") (, ",") (binary_expression "iVar2 + 2" (identifier "iVar2") (+ "+") (number_literal "2")) (, ",") (identifier "local_6c") () ")"))) (; ";")) (} "}")))) (expression_statement "__sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_74);" (call_expression "__sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_74)" (identifier "__sprintf_chk") (argument_list "(local_68,1,0x28,&DAT_0016e1fb,local_74)" (( "(") (identifier "local_68") (, ",") (number_literal "1") (, ",") (number_literal "0x28") (, ",") (pointer_expression "&DAT_0016e1fb" (& "&") (identifier "DAT_0016e1fb")) (, ",") (identifier "local_74") () ")"))) (; ";")) (expression_statement "FUN_001369ee(plVar1[1],param_2,local_68);" (call_expression "FUN_001369ee(plVar1[1],param_2,local_68)" (identifier "FUN_001369ee") (argument_list "(plVar1[1],param_2,local_68)" (( "(") (subscript_expression "plVar1[1]" (identifier "plVar1") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "param_2") (, ",") (identifier "local_68") () ")"))) (; ";")) (expression_statement "__sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_70);" (call_expression "__sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_70)" (identifier "__sprintf_chk") (argument_list "(local_68,1,0x28,&DAT_0016e1fb,local_70)" (( "(") (identifier "local_68") (, ",") (number_literal "1") (, ",") (number_literal "0x28") (, ",") (pointer_expression "&DAT_0016e1fb" (& "&") (identifier "DAT_0016e1fb")) (, ",") (identifier "local_70") () ")"))) (; ";")) (expression_statement "FUN_001369ee(plVar1[2],param_2,local_68);" (call_expression "FUN_001369ee(plVar1[2],param_2,local_68)" (identifier "FUN_001369ee") (argument_list "(plVar1[2],param_2,local_68)" (( "(") (subscript_expression "plVar1[2]" (identifier "plVar1") ([ "[") (number_literal "2") (] "]")) (, ",") (identifier "param_2") (, ",") (identifier "local_68") () ")"))) (; ";")) (expression_statement "__sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_6c);" (call_expression "__sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_6c)" (identifier "__sprintf_chk") (argument_list "(local_68,1,0x28,&DAT_0016e1fb,local_6c)" (( "(") (identifier "local_68") (, ",") (number_literal "1") (, ",") (number_literal "0x28") (, ",") (pointer_expression "&DAT_0016e1fb" (& "&") (identifier "DAT_0016e1fb")) (, ",") (identifier "local_6c") () ")"))) (; ";")) (expression_statement "FUN_001369ee(plVar1[3],param_2,local_68);" (call_expression "FUN_001369ee(plVar1[3],param_2,local_68)" (identifier "FUN_001369ee") (argument_list "(plVar1[3],param_2,local_68)" (( "(") (subscript_expression "plVar1[3]" (identifier "plVar1") ([ "[") (number_literal "3") (] "]")) (, ",") (identifier "param_2") (, ",") (identifier "local_68") () ")"))) (; ";")) (} "}")))) (labeled_statement "LAB_00116bb8:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" (statement_identifier "LAB_00116bb8") (: ":") (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (== "==") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

void function_1(type_1 *var_3,void *dlg,void *data,int var_2)

{
  long var_22;
  long *plVar2;
  int var_11;
  int var_16;
  int g_00;
  char *__nptr;
  long lVar5;
  char **var_7;
  long var_1;
  int r;
  int g;
  int b;
  char buf [40];
  
  var_22 = *(long *)(var_1 + 0x28);
  plVar2 = *(long **)((long)var_3 + 0x20);
  if (var_2 == 0) {
    if ((type_1 *)*plVar2 != var_3) goto LAB_00116bb8;
    var_4(var_3,dlg);
    var_5(var_3,dlg);
    var_7 = colours;
    do {
      var_6(var_3,dlg,*var_7);
      var_7 = var_7 + 1;
    } while (var_7 != (char **)gsslibkeywords);
    var_8(var_3,dlg);
LAB_00116c1b:
    var_9((type_1 *)plVar2[1],dlg,"");
    var_9((type_1 *)plVar2[2],dlg,"");
    var_9((type_1 *)plVar2[3],dlg,"");
  }
  else {
    if (var_2 == 3) {
      if ((type_1 *)*plVar2 != var_3) goto LAB_00116bb8;
      var_11 = var_10(var_3,dlg);
      if (var_11 < 0) goto LAB_00116c1b;
      var_11 = var_11 * 3;
      r = var_12((type_2 *)data,0x89,var_11);
      g = var_12((type_2 *)data,0x89,var_11 + 1);
      b = var_12((type_2 *)data,0x89,var_11 + 2);
    }
    else {
      if (var_2 == 2) {
        if ((((type_1 *)plVar2[1] == var_3) || ((type_1 *)plVar2[2] == var_3)) ||
           ((type_1 *)plVar2[3] == var_3)) {
          __nptr = var_13(var_3,dlg);
          lVar5 = var_14(__nptr,(char **)0x0,10);
          var_15(__nptr);
          var_11 = var_10((type_1 *)*plVar2,dlg);
          if (-1 < var_11) {
            var_16 = 0;
            if (-1 < (int)lVar5) {
              var_16 = (int)lVar5;
            }
            if (0xff < var_16) {
              var_16 = 0xff;
            }
            if ((type_1 *)plVar2[1] == var_3) {
              var_17((type_2 *)data,0x89,var_11 * 3,var_16);
            }
            else if ((type_1 *)plVar2[2] == var_3) {
              var_17((type_2 *)data,0x89,var_11 * 3 + 1,var_16);
            }
            else if ((type_1 *)plVar2[3] == var_3) {
              var_17((type_2 *)data,0x89,var_11 * 3 + 2,var_16);
            }
          }
        }
        goto LAB_00116bb8;
      }
      if (var_2 == 1) {
        if ((type_1 *)plVar2[4] == var_3) {
          var_11 = var_10((type_1 *)*plVar2,dlg);
          if (var_11 < 0) {
            var_18(dlg);
          }
          else {
            var_11 = var_11 * 3;
            var_16 = var_12((type_2 *)data,0x89,var_11 + 2);
            g_00 = var_12((type_2 *)data,0x89,var_11 + 1);
            var_11 = var_12((type_2 *)data,0x89,var_11);
            var_19(var_3,dlg,var_11,g_00,var_16);
          }
        }
        goto LAB_00116bb8;
      }
      if ((var_2 != 4) || ((type_1 *)plVar2[4] != var_3)) goto LAB_00116bb8;
      var_11 = var_10((type_1 *)*plVar2,dlg);
      var_16 = var_20(var_3,dlg,&r,&g,&b);
      if (var_16 == 0) goto LAB_00116bb8;
      var_11 = var_11 * 3;
      var_17((type_2 *)data,0x89,var_11,r);
      var_17((type_2 *)data,0x89,var_11 + 1,g);
      var_17((type_2 *)data,0x89,var_11 + 2,b);
    }
    var_21(buf,1,0x28,&DAT_0016e1fb,r);
    var_9((type_1 *)plVar2[1],dlg,buf);
    var_21(buf,1,0x28,&DAT_0016e1fb,g);
    var_9((type_1 *)plVar2[2],dlg,buf);
    var_21(buf,1,0x28,&DAT_0016e1fb,b);
    var_9((type_1 *)plVar2[3],dlg,buf);
  }
LAB_00116bb8:
  if (var_22 == *(long *)(var_1 + 0x28)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_23();
}


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

void MASKED(long param_1,undefined8 param_2,undefined8 param_3,int param_4)

{
  long *plVar1;
  int iVar2;
  int iVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  char *__nptr;
  long lVar7;
  undefined **ppuVar8;
  long in_FS_OFFSET;
  undefined4 local_74;
  undefined4 local_70;
  undefined4 local_6c;
  undefined1 local_68 [40];
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  plVar1 = *(long **)(param_1 + 0x20);
  if (param_4 == 0) {
    if (*plVar1 != param_1) goto LAB_00116bb8;
    FUN_0013794b();
    FUN_00136b7f(param_1,param_2);
    ppuVar8 = &PTR_s_Default_Foreground_0018a4a0;
    do {
      FUN_00136e91(param_1,param_2,*ppuVar8);
      ppuVar8 = ppuVar8 + 1;
    } while (ppuVar8 != &PTR_s_dummy_0018a550);
    FUN_0013794c(param_1,param_2);
LAB_00116c1b:
    FUN_001369ee(plVar1[1],param_2,&DAT_001786b4);
    FUN_001369ee(plVar1[2],param_2,&DAT_001786b4);
    FUN_001369ee(plVar1[3],param_2,&DAT_001786b4);
  }
  else {
    if (param_4 == 3) {
      if (*plVar1 != param_1) goto LAB_00116bb8;
      iVar2 = FUN_00136fbe();
      if (iVar2 < 0) goto LAB_00116c1b;
      iVar2 = iVar2 * 3;
      local_74 = FUN_001142ad(param_3,0x89,iVar2);
      local_70 = FUN_001142ad(param_3,0x89,iVar2 + 1);
      local_6c = FUN_001142ad(param_3,0x89,iVar2 + 2);
    }
    else {
      if (param_4 == 2) {
        if (((plVar1[1] == param_1) || (plVar1[2] == param_1)) || (plVar1[3] == param_1)) {
          __nptr = (char *)FUN_00136aab(param_1,param_2);
          lVar7 = strtol(__nptr,(char **)0x0,10);
          FUN_001217b3(__nptr);
          iVar2 = FUN_00136fbe(*plVar1,param_2);
          if (-1 < iVar2) {
            iVar3 = 0;
            if (-1 < (int)lVar7) {
              iVar3 = (int)lVar7;
            }
            if (0xff < iVar3) {
              iVar3 = 0xff;
            }
            if (plVar1[1] == param_1) {
              FUN_0011493c(param_3,0x89,iVar2 * 3,iVar3);
            }
            else if (plVar1[2] == param_1) {
              FUN_0011493c(param_3,0x89,iVar2 * 3 + 1,iVar3);
            }
            else if (plVar1[3] == param_1) {
              FUN_0011493c(param_3,0x89,iVar2 * 3 + 2,iVar3);
            }
          }
        }
        goto LAB_00116bb8;
      }
      if (param_4 == 1) {
        if (plVar1[4] == param_1) {
          iVar2 = FUN_00136fbe(*plVar1);
          if (iVar2 < 0) {
            FUN_00137a47(param_2);
          }
          else {
            iVar2 = iVar2 * 3;
            uVar4 = FUN_001142ad(param_3,0x89,iVar2 + 2);
            uVar5 = FUN_001142ad(param_3,0x89,iVar2 + 1);
            uVar6 = FUN_001142ad(param_3,0x89,iVar2);
            FUN_00137c12(param_1,param_2,uVar6,uVar5,uVar4);
          }
        }
        goto LAB_00116bb8;
      }
      if ((param_4 != 4) || (plVar1[4] != param_1)) goto LAB_00116bb8;
      iVar2 = FUN_00136fbe(*plVar1);
      iVar3 = FUN_00137d93(param_1,param_2,&local_74,&local_70,&local_6c);
      if (iVar3 == 0) goto LAB_00116bb8;
      iVar2 = iVar2 * 3;
      FUN_0011493c(param_3,0x89,iVar2,local_74);
      FUN_0011493c(param_3,0x89,iVar2 + 1,local_70);
      FUN_0011493c(param_3,0x89,iVar2 + 2,local_6c);
    }
    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_74);
    FUN_001369ee(plVar1[1],param_2,local_68);
    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_70);
    FUN_001369ee(plVar1[2],param_2,local_68);
    __sprintf_chk(local_68,1,0x28,&DAT_0016e1fb,local_6c);
    FUN_001369ee(plVar1[3],param_2,local_68);
  }
LAB_00116bb8:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}

