
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

int set_compatibility_level(char *option_name,int mode)

{
  char cVar1;
  int iVar2;
  int *__s2;
  uint uVar3;
  char *value;
  char cVar4;
  int iVar5;
  anon_struct_12_3_5082e56b *paVar6;
  
  if (mode == 0) {
LAB_000c504b:
    if (shopt_compat31 == 0) {
      if (shopt_compat32 == 0) {
        if (shopt_compat40 == 0) {
          if (shopt_compat41 == 0) {
            if (shopt_compat42 == 0) {
              if (shopt_compat43 == 0) {
                if (shopt_compat44 == 0) {
                  shell_compatibility_level = 0x32;
                  uVar3 = 0x32;
                }
                else {
                  shell_compatibility_level = 0x2c;
                  uVar3 = 0x2c;
                }
              }
              else {
                shell_compatibility_level = 0x2b;
                uVar3 = 0x2b;
              }
            }
            else {
              shell_compatibility_level = 0x2a;
              uVar3 = 0x2a;
            }
          }
          else {
            shell_compatibility_level = 0x29;
            uVar3 = 0x29;
          }
        }
        else {
          shell_compatibility_level = 0x28;
          uVar3 = 0x28;
        }
      }
      else {
        shell_compatibility_level = 0x20;
        uVar3 = 0x20;
      }
    }
    else {
      shell_compatibility_level = 0x1f;
      uVar3 = 0x1f;
    }
    value = itos((ulonglong)uVar3);
    bind_variable("BASH_COMPAT",value,0);
    free(value);
    return 0;
  }
  paVar6 = shopt_vars;
  shopt_compat32 = 0;
  cVar4 = 'a';
  iVar5 = 0;
  shopt_compat31 = 0;
  shopt_compat43 = 0;
  shopt_compat42 = 0;
  shopt_compat41 = 0;
  shopt_compat40 = 0;
  shopt_compat44 = 0;
  cVar1 = *option_name;
  __s2 = (int *)&DAT_00125c74;
LAB_000c5020:
  paVar6 = paVar6 + 1;
  if (cVar1 == cVar4) {
    iVar2 = strcmp(option_name,(char *)__s2);
    if (iVar2 == 0) {
      __s2 = shopt_vars[iVar5].value;
LAB_000c5045:
      *__s2 = mode;
      goto LAB_000c504b;
    }
  }
  __s2 = (int *)paVar6->name;
  iVar5 = iVar5 + 1;
  if (__s2 == (int *)0x0) goto LAB_000c5045;
  cVar4 = (char)*__s2;
  goto LAB_000c5020;
}



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

undefined4 FUN_000c4f80(char *param_1,int param_2)

{
  char cVar1;
  int iVar2;
  int *__s2;
  undefined4 uVar3;
  void *__ptr;
  char cVar4;
  int iVar5;
  undefined **ppuVar6;
  
  if (param_2 == 0) {
LAB_000c504b:
    if (DAT_001797ec == 0) {
      if (DAT_001797e8 == 0) {
        if (DAT_001797e4 == 0) {
          if (DAT_001797e0 == 0) {
            if (DAT_001797dc == 0) {
              if (DAT_001797d8 == 0) {
                if (DAT_001797d4 == 0) {
                  shell_compatibility_level = 0x32;
                  uVar3 = 0x32;
                }
                else {
                  shell_compatibility_level = 0x2c;
                  uVar3 = 0x2c;
                }
              }
              else {
                shell_compatibility_level = 0x2b;
                uVar3 = 0x2b;
              }
            }
            else {
              shell_compatibility_level = 0x2a;
              uVar3 = 0x2a;
            }
          }
          else {
            shell_compatibility_level = 0x29;
            uVar3 = 0x29;
          }
        }
        else {
          shell_compatibility_level = 0x28;
          uVar3 = 0x28;
        }
      }
      else {
        shell_compatibility_level = 0x20;
        uVar3 = 0x20;
      }
    }
    else {
      shell_compatibility_level = 0x1f;
      uVar3 = 0x1f;
    }
    __ptr = (void *)itos(uVar3,0);
    bind_variable("BASH_COMPAT",__ptr,0);
    free(__ptr);
    return 0;
  }
  DAT_001797e8 = 0;
  cVar4 = 'a';
  iVar5 = 0;
  DAT_001797ec = 0;
  DAT_001797d8 = 0;
  DAT_001797dc = 0;
  DAT_001797e0 = 0;
  DAT_001797e4 = 0;
  DAT_001797d4 = 0;
  cVar1 = *param_1;
  __s2 = (int *)&DAT_00125c74;
  ppuVar6 = &PTR_s_assoc_expand_once_001713cc;
LAB_000c5020:
  if (cVar1 == cVar4) {
    iVar2 = strcmp(param_1,(char *)__s2);
    if (iVar2 == 0) {
      __s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];
LAB_000c5045:
      *__s2 = param_2;
      goto LAB_000c504b;
    }
  }
  __s2 = (int *)*ppuVar6;
  iVar5 = iVar5 + 1;
  if (__s2 == (int *)0x0) goto LAB_000c5045;
  cVar4 = (char)*__s2;
  ppuVar6 = ppuVar6 + 3;
  goto LAB_000c5020;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000312b0
ADD EBX,0xad077
SUB ESP,0xc
MOV ESI,dword ptr [ESP + 0x24]
TEST ESI,ESI
JZ 0x000c504b
MOV EAX,dword ptr [ESP + 0x20]
LEA EBP,[EBX + 0xfffff3cc]
XOR ESI,ESI
MOV dword ptr [EBX + 0x77e8],0x0
MOV EDX,EBP
MOV ECX,0x61
MOV EBP,ESI
MOV dword ptr [EBX + 0x77ec],0x0
MOV dword ptr [EBX + 0x77d8],0x0
MOV ESI,EDX
MOV dword ptr [EBX + 0x77dc],0x0
MOV dword ptr [EBX + 0x77e0],0x0
MOV dword ptr [EBX + 0x77e4],0x0
MOV dword ptr [EBX + 0x77d4],0x0
MOVZX EDI,byte ptr [EAX]
LEA EAX,[EBX + 0xfffb3c74]
JMP 0x000c5020
ADD ESI,0xc
MOV EAX,dword ptr [ESI + -0xc]
ADD EBP,0x1
TEST EAX,EAX
JZ 0x000c5045
MOVZX ECX,byte ptr [EAX]
MOV EDX,EDI
CMP DL,CL
JNZ 0x000c5010
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [ESP + 0x2c]
CALL 0x0002e100
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000c5010
LEA EAX,[EBP + EBP*0x2]
MOV EAX,dword ptr [EBX + EAX*0x4 + 0xfffff3c4]
MOV EDX,dword ptr [ESP + 0x24]
MOV dword ptr [EAX],EDX
MOV ECX,dword ptr [EBX + 0x77ec]
LEA EAX,[EBX + 0x930]
TEST ECX,ECX
JZ 0x000c50a0
MOV dword ptr [EAX],0x1f
XOR EDX,EDX
MOV EAX,0x1f
SUB ESP,0x8
PUSH EDX
PUSH EAX
CALL 0x000d4fb0
ADD ESP,0xc
PUSH 0x0
MOV ESI,EAX
PUSH EAX
LEA EAX,[EBX + 0xfffa0c16]
PUSH EAX
CALL 0x000589c0
MOV dword ptr [ESP],ESI
CALL 0x0002e200
ADD ESP,0x1c
XOR EAX,EAX
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDX,dword ptr [EBX + 0x77e8]
TEST EDX,EDX
JZ 0x000c50c0
MOV dword ptr [EAX],0x20
XOR EDX,EDX
MOV EAX,0x20
JMP 0x000c5068
MOV EBP,dword ptr [EBX + 0x77e4]
TEST EBP,EBP
JNZ 0x000c50e8
MOV EDI,dword ptr [EBX + 0x77e0]
TEST EDI,EDI
JZ 0x000c5100
MOV dword ptr [EAX],0x29
XOR EDX,EDX
MOV EAX,0x29
JMP 0x000c5068
MOV dword ptr [EAX],0x28
XOR EDX,EDX
MOV EAX,0x28
JMP 0x000c5068
MOV ESI,dword ptr [EBX + 0x77dc]
TEST ESI,ESI
JNZ 0x000c5130
MOV ECX,dword ptr [EBX + 0x77d8]
TEST ECX,ECX
JZ 0x000c5148
MOV dword ptr [EAX],0x2b
XOR EDX,EDX
MOV EAX,0x2b
JMP 0x000c5068
MOV dword ptr [EAX],0x2a
XOR EDX,EDX
MOV EAX,0x2a
JMP 0x000c5068
MOV EDX,dword ptr [EBX + 0x77d4]
TEST EDX,EDX
JZ 0x000c5164
MOV dword ptr [EAX],0x2c
XOR EDX,EDX
MOV EAX,0x2c
JMP 0x000c5068
MOV dword ptr [EAX],0x32
XOR EDX,EDX
MOV EAX,0x32
JMP 0x000c5068
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 FUN_000c4f80(char *param_1,int param_2)\n\n{\n  char cVar1;\n  int iVar2;\n  int *__s2;\n  undefined4 uVar3;\n  void *__ptr;\n  char cVar4;\n  int iVar5;\n  undefined **ppuVar6;\n  \n  if (param_2 == 0) {\nLAB_000c504b:\n    if (DAT_001797ec == 0) {\n      if (DAT_001797e8 == 0) {\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }\n    else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }\n    __ptr = (void *)itos(uVar3,0);\n    bind_variable("BASH_COMPAT",__ptr,0);\n    free(__ptr);\n    return 0;\n  }\n  DAT_001797e8 = 0;\n  cVar4 = 'a';\n  iVar5 = 0;\n  DAT_001797ec = 0;\n  DAT_001797d8 = 0;\n  DAT_001797dc = 0;\n  DAT_001797e0 = 0;\n  DAT_001797e4 = 0;\n  DAT_001797d4 = 0;\n  cVar1 = *param_1;\n  __s2 = (int *)&DAT_00125c74;\n  ppuVar6 = &PTR_s_assoc_expand_once_001713cc;\nLAB_000c5020:\n  if (cVar1 == cVar4) {\n    iVar2 = strcmp(param_1,(char *)__s2);\n    if (iVar2 == 0) {\n      __s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];\nLAB_000c5045:\n      *__s2 = param_2;\n      goto LAB_000c504b;\n    }\n  }\n  __s2 = (int *)*ppuVar6;\n  iVar5 = iVar5 + 1;\n  if (__s2 == (int *)0x0) goto LAB_000c5045;\n  cVar4 = (char)*__s2;\n  ppuVar6 = ppuVar6 + 3;\n  goto LAB_000c5020;\n}\n\n" comment (function_definition "undefined4 FUN_000c4f80(char *param_1,int param_2)\n\n{\n  char cVar1;\n  int iVar2;\n  int *__s2;\n  undefined4 uVar3;\n  void *__ptr;\n  char cVar4;\n  int iVar5;\n  undefined **ppuVar6;\n  \n  if (param_2 == 0) {\nLAB_000c504b:\n    if (DAT_001797ec == 0) {\n      if (DAT_001797e8 == 0) {\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }\n    else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }\n    __ptr = (void *)itos(uVar3,0);\n    bind_variable("BASH_COMPAT",__ptr,0);\n    free(__ptr);\n    return 0;\n  }\n  DAT_001797e8 = 0;\n  cVar4 = 'a';\n  iVar5 = 0;\n  DAT_001797ec = 0;\n  DAT_001797d8 = 0;\n  DAT_001797dc = 0;\n  DAT_001797e0 = 0;\n  DAT_001797e4 = 0;\n  DAT_001797d4 = 0;\n  cVar1 = *param_1;\n  __s2 = (int *)&DAT_00125c74;\n  ppuVar6 = &PTR_s_assoc_expand_once_001713cc;\nLAB_000c5020:\n  if (cVar1 == cVar4) {\n    iVar2 = strcmp(param_1,(char *)__s2);\n    if (iVar2 == 0) {\n      __s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];\nLAB_000c5045:\n      *__s2 = param_2;\n      goto LAB_000c504b;\n    }\n  }\n  __s2 = (int *)*ppuVar6;\n  iVar5 = iVar5 + 1;\n  if (__s2 == (int *)0x0) goto LAB_000c5045;\n  cVar4 = (char)*__s2;\n  ppuVar6 = ppuVar6 + 3;\n  goto LAB_000c5020;\n}" type_identifier (function_declarator "FUN_000c4f80(char *param_1,int param_2)" identifier (parameter_list "(char *param_1,int param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int *__s2;\n  undefined4 uVar3;\n  void *__ptr;\n  char cVar4;\n  int iVar5;\n  undefined **ppuVar6;\n  \n  if (param_2 == 0) {\nLAB_000c504b:\n    if (DAT_001797ec == 0) {\n      if (DAT_001797e8 == 0) {\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }\n    else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }\n    __ptr = (void *)itos(uVar3,0);\n    bind_variable("BASH_COMPAT",__ptr,0);\n    free(__ptr);\n    return 0;\n  }\n  DAT_001797e8 = 0;\n  cVar4 = 'a';\n  iVar5 = 0;\n  DAT_001797ec = 0;\n  DAT_001797d8 = 0;\n  DAT_001797dc = 0;\n  DAT_001797e0 = 0;\n  DAT_001797e4 = 0;\n  DAT_001797d4 = 0;\n  cVar1 = *param_1;\n  __s2 = (int *)&DAT_00125c74;\n  ppuVar6 = &PTR_s_assoc_expand_once_001713cc;\nLAB_000c5020:\n  if (cVar1 == cVar4) {\n    iVar2 = strcmp(param_1,(char *)__s2);\n    if (iVar2 == 0) {\n      __s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];\nLAB_000c5045:\n      *__s2 = param_2;\n      goto LAB_000c504b;\n    }\n  }\n  __s2 = (int *)*ppuVar6;\n  iVar5 = iVar5 + 1;\n  if (__s2 == (int *)0x0) goto LAB_000c5045;\n  cVar4 = (char)*__s2;\n  ppuVar6 = ppuVar6 + 3;\n  goto LAB_000c5020;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *__s2;" primitive_type (pointer_declarator "*__s2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined **ppuVar6;" type_identifier (pointer_declarator "**ppuVar6" * (pointer_declarator "*ppuVar6" * identifier)) ;) (if_statement "if (param_2 == 0) {\nLAB_000c504b:\n    if (DAT_001797ec == 0) {\n      if (DAT_001797e8 == 0) {\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }\n    else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }\n    __ptr = (void *)itos(uVar3,0);\n    bind_variable("BASH_COMPAT",__ptr,0);\n    free(__ptr);\n    return 0;\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000c504b:\n    if (DAT_001797ec == 0) {\n      if (DAT_001797e8 == 0) {\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }\n    else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }\n    __ptr = (void *)itos(uVar3,0);\n    bind_variable("BASH_COMPAT",__ptr,0);\n    free(__ptr);\n    return 0;\n  }" { (labeled_statement "LAB_000c504b:\n    if (DAT_001797ec == 0) {\n      if (DAT_001797e8 == 0) {\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }\n    else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }" statement_identifier : (if_statement "if (DAT_001797ec == 0) {\n      if (DAT_001797e8 == 0) {\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }\n    else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }" if (parenthesized_expression "(DAT_001797ec == 0)" ( (binary_expression "DAT_001797ec == 0" identifier == number_literal) )) (compound_statement "{\n      if (DAT_001797e8 == 0) {\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }" { (if_statement "if (DAT_001797e8 == 0) {\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }" if (parenthesized_expression "(DAT_001797e8 == 0)" ( (binary_expression "DAT_001797e8 == 0" identifier == number_literal) )) (compound_statement "{\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }" { (if_statement "if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }" if (parenthesized_expression "(DAT_001797e4 == 0)" ( (binary_expression "DAT_001797e4 == 0" identifier == number_literal) )) (compound_statement "{\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }" { (if_statement "if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }" if (parenthesized_expression "(DAT_001797e0 == 0)" ( (binary_expression "DAT_001797e0 == 0" identifier == number_literal) )) (compound_statement "{\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }" { (if_statement "if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }" if (parenthesized_expression "(DAT_001797dc == 0)" ( (binary_expression "DAT_001797dc == 0" identifier == number_literal) )) (compound_statement "{\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }" { (if_statement "if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }" if (parenthesized_expression "(DAT_001797d8 == 0)" ( (binary_expression "DAT_001797d8 == 0" identifier == number_literal) )) (compound_statement "{\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }" { (if_statement "if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }" if (parenthesized_expression "(DAT_001797d4 == 0)" ( (binary_expression "DAT_001797d4 == 0" identifier == number_literal) )) (compound_statement "{\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }" { (expression_statement "shell_compatibility_level = 0x32;" (assignment_expression "shell_compatibility_level = 0x32" identifier = number_literal) ;) (expression_statement "uVar3 = 0x32;" (assignment_expression "uVar3 = 0x32" identifier = number_literal) ;) }) (else_clause "else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }" else (compound_statement "{\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }" { (expression_statement "shell_compatibility_level = 0x2c;" (assignment_expression "shell_compatibility_level = 0x2c" identifier = number_literal) ;) (expression_statement "uVar3 = 0x2c;" (assignment_expression "uVar3 = 0x2c" identifier = number_literal) ;) }))) }) (else_clause "else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }" else (compound_statement "{\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }" { (expression_statement "shell_compatibility_level = 0x2b;" (assignment_expression "shell_compatibility_level = 0x2b" identifier = number_literal) ;) (expression_statement "uVar3 = 0x2b;" (assignment_expression "uVar3 = 0x2b" identifier = number_literal) ;) }))) }) (else_clause "else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }" else (compound_statement "{\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }" { (expression_statement "shell_compatibility_level = 0x2a;" (assignment_expression "shell_compatibility_level = 0x2a" identifier = number_literal) ;) (expression_statement "uVar3 = 0x2a;" (assignment_expression "uVar3 = 0x2a" identifier = number_literal) ;) }))) }) (else_clause "else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }" else (compound_statement "{\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }" { (expression_statement "shell_compatibility_level = 0x29;" (assignment_expression "shell_compatibility_level = 0x29" identifier = number_literal) ;) (expression_statement "uVar3 = 0x29;" (assignment_expression "uVar3 = 0x29" identifier = number_literal) ;) }))) }) (else_clause "else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }" else (compound_statement "{\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }" { (expression_statement "shell_compatibility_level = 0x28;" (assignment_expression "shell_compatibility_level = 0x28" identifier = number_literal) ;) (expression_statement "uVar3 = 0x28;" (assignment_expression "uVar3 = 0x28" identifier = number_literal) ;) }))) }) (else_clause "else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }" else (compound_statement "{\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }" { (expression_statement "shell_compatibility_level = 0x20;" (assignment_expression "shell_compatibility_level = 0x20" identifier = number_literal) ;) (expression_statement "uVar3 = 0x20;" (assignment_expression "uVar3 = 0x20" identifier = number_literal) ;) }))) }) (else_clause "else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }" else (compound_statement "{\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }" { (expression_statement "shell_compatibility_level = 0x1f;" (assignment_expression "shell_compatibility_level = 0x1f" identifier = number_literal) ;) (expression_statement "uVar3 = 0x1f;" (assignment_expression "uVar3 = 0x1f" identifier = number_literal) ;) })))) (expression_statement "__ptr = (void *)itos(uVar3,0);" (assignment_expression "__ptr = (void *)itos(uVar3,0)" identifier = (cast_expression "(void *)itos(uVar3,0)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "itos(uVar3,0)" identifier (argument_list "(uVar3,0)" ( identifier , number_literal ))))) ;) (expression_statement "bind_variable("BASH_COMPAT",__ptr,0);" (call_expression "bind_variable("BASH_COMPAT",__ptr,0)" identifier (argument_list "("BASH_COMPAT",__ptr,0)" ( (string_literal ""BASH_COMPAT"" " string_content ") , identifier , number_literal ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "DAT_001797e8 = 0;" (assignment_expression "DAT_001797e8 = 0" identifier = number_literal) ;) (expression_statement "cVar4 = 'a';" (assignment_expression "cVar4 = 'a'" identifier = (char_literal "'a'" ' character ')) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "DAT_001797ec = 0;" (assignment_expression "DAT_001797ec = 0" identifier = number_literal) ;) (expression_statement "DAT_001797d8 = 0;" (assignment_expression "DAT_001797d8 = 0" identifier = number_literal) ;) (expression_statement "DAT_001797dc = 0;" (assignment_expression "DAT_001797dc = 0" identifier = number_literal) ;) (expression_statement "DAT_001797e0 = 0;" (assignment_expression "DAT_001797e0 = 0" identifier = number_literal) ;) (expression_statement "DAT_001797e4 = 0;" (assignment_expression "DAT_001797e4 = 0" identifier = number_literal) ;) (expression_statement "DAT_001797d4 = 0;" (assignment_expression "DAT_001797d4 = 0" identifier = number_literal) ;) (expression_statement "cVar1 = *param_1;" (assignment_expression "cVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "__s2 = (int *)&DAT_00125c74;" (assignment_expression "__s2 = (int *)&DAT_00125c74" identifier = (cast_expression "(int *)&DAT_00125c74" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00125c74" & identifier))) ;) (expression_statement "ppuVar6 = &PTR_s_assoc_expand_once_001713cc;" (assignment_expression "ppuVar6 = &PTR_s_assoc_expand_once_001713cc" identifier = (pointer_expression "&PTR_s_assoc_expand_once_001713cc" & identifier)) ;) (labeled_statement "LAB_000c5020:\n  if (cVar1 == cVar4) {\n    iVar2 = strcmp(param_1,(char *)__s2);\n    if (iVar2 == 0) {\n      __s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];\nLAB_000c5045:\n      *__s2 = param_2;\n      goto LAB_000c504b;\n    }\n  }" statement_identifier : (if_statement "if (cVar1 == cVar4) {\n    iVar2 = strcmp(param_1,(char *)__s2);\n    if (iVar2 == 0) {\n      __s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];\nLAB_000c5045:\n      *__s2 = param_2;\n      goto LAB_000c504b;\n    }\n  }" if (parenthesized_expression "(cVar1 == cVar4)" ( (binary_expression "cVar1 == cVar4" identifier == identifier) )) (compound_statement "{\n    iVar2 = strcmp(param_1,(char *)__s2);\n    if (iVar2 == 0) {\n      __s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];\nLAB_000c5045:\n      *__s2 = param_2;\n      goto LAB_000c504b;\n    }\n  }" { (expression_statement "iVar2 = strcmp(param_1,(char *)__s2);" (assignment_expression "iVar2 = strcmp(param_1,(char *)__s2)" identifier = (call_expression "strcmp(param_1,(char *)__s2)" identifier (argument_list "(param_1,(char *)__s2)" ( identifier , (cast_expression "(char *)__s2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n      __s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];\nLAB_000c5045:\n      *__s2 = param_2;\n      goto LAB_000c504b;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      __s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];\nLAB_000c5045:\n      *__s2 = param_2;\n      goto LAB_000c504b;\n    }" { (expression_statement "__s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];" (assignment_expression "__s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3]" identifier = (cast_expression "(int *)(&PTR_autocd_001713c4)[iVar5 * 3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "(&PTR_autocd_001713c4)[iVar5 * 3]" (parenthesized_expression "(&PTR_autocd_001713c4)" ( (pointer_expression "&PTR_autocd_001713c4" & identifier) )) [ (binary_expression "iVar5 * 3" identifier * number_literal) ]))) ;) (labeled_statement "LAB_000c5045:\n      *__s2 = param_2;" statement_identifier : (expression_statement "*__s2 = param_2;" (assignment_expression "*__s2 = param_2" (pointer_expression "*__s2" * identifier) = identifier) ;)) (goto_statement "goto LAB_000c504b;" goto statement_identifier ;) })) }))) (expression_statement "__s2 = (int *)*ppuVar6;" (assignment_expression "__s2 = (int *)*ppuVar6" identifier = (cast_expression "(int *)*ppuVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*ppuVar6" * identifier))) ;) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if (__s2 == (int *)0x0) goto LAB_000c5045;" if (parenthesized_expression "(__s2 == (int *)0x0)" ( (binary_expression "__s2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000c5045;" goto statement_identifier ;)) (expression_statement "cVar4 = (char)*__s2;" (assignment_expression "cVar4 = (char)*__s2" identifier = (cast_expression "(char)*__s2" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*__s2" * identifier))) ;) (expression_statement "ppuVar6 = ppuVar6 + 3;" (assignment_expression "ppuVar6 = ppuVar6 + 3" identifier = (binary_expression "ppuVar6 + 3" identifier + number_literal)) ;) (goto_statement "goto LAB_000c5020;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nint set_compatibility_level(char *option_name,int mode)\n\n{\n  char cVar1;\n  int iVar2;\n  int *__s2;\n  uint uVar3;\n  char *value;\n  char cVar4;\n  int iVar5;\n  anon_struct_12_3_5082e56b *paVar6;\n  \n  if (mode == 0) {\nLAB_000c504b:\n    if (shopt_compat31 == 0) {\n      if (shopt_compat32 == 0) {\n        if (shopt_compat40 == 0) {\n          if (shopt_compat41 == 0) {\n            if (shopt_compat42 == 0) {\n              if (shopt_compat43 == 0) {\n                if (shopt_compat44 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }\n    else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }\n    value = itos((ulonglong)uVar3);\n    bind_variable("BASH_COMPAT",value,0);\n    free(value);\n    return 0;\n  }\n  paVar6 = shopt_vars;\n  shopt_compat32 = 0;\n  cVar4 = 'a';\n  iVar5 = 0;\n  shopt_compat31 = 0;\n  shopt_compat43 = 0;\n  shopt_compat42 = 0;\n  shopt_compat41 = 0;\n  shopt_compat40 = 0;\n  shopt_compat44 = 0;\n  cVar1 = *option_name;\n  __s2 = (int *)&DAT_00125c74;\nLAB_000c5020:\n  paVar6 = paVar6 + 1;\n  if (cVar1 == cVar4) {\n    iVar2 = strcmp(option_name,(char *)__s2);\n    if (iVar2 == 0) {\n      __s2 = shopt_vars[iVar5].value;\nLAB_000c5045:\n      *__s2 = mode;\n      goto LAB_000c504b;\n    }\n  }\n  __s2 = (int *)paVar6->name;\n  iVar5 = iVar5 + 1;\n  if (__s2 == (int *)0x0) goto LAB_000c5045;\n  cVar4 = (char)*__s2;\n  goto LAB_000c5020;\n}\n\n" comment comment (function_definition "int set_compatibility_level(char *option_name,int mode)\n\n{\n  char cVar1;\n  int iVar2;\n  int *__s2;\n  uint uVar3;\n  char *value;\n  char cVar4;\n  int iVar5;\n  anon_struct_12_3_5082e56b *paVar6;\n  \n  if (mode == 0) {\nLAB_000c504b:\n    if (shopt_compat31 == 0) {\n      if (shopt_compat32 == 0) {\n        if (shopt_compat40 == 0) {\n          if (shopt_compat41 == 0) {\n            if (shopt_compat42 == 0) {\n              if (shopt_compat43 == 0) {\n                if (shopt_compat44 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }\n    else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }\n    value = itos((ulonglong)uVar3);\n    bind_variable("BASH_COMPAT",value,0);\n    free(value);\n    return 0;\n  }\n  paVar6 = shopt_vars;\n  shopt_compat32 = 0;\n  cVar4 = 'a';\n  iVar5 = 0;\n  shopt_compat31 = 0;\n  shopt_compat43 = 0;\n  shopt_compat42 = 0;\n  shopt_compat41 = 0;\n  shopt_compat40 = 0;\n  shopt_compat44 = 0;\n  cVar1 = *option_name;\n  __s2 = (int *)&DAT_00125c74;\nLAB_000c5020:\n  paVar6 = paVar6 + 1;\n  if (cVar1 == cVar4) {\n    iVar2 = strcmp(option_name,(char *)__s2);\n    if (iVar2 == 0) {\n      __s2 = shopt_vars[iVar5].value;\nLAB_000c5045:\n      *__s2 = mode;\n      goto LAB_000c504b;\n    }\n  }\n  __s2 = (int *)paVar6->name;\n  iVar5 = iVar5 + 1;\n  if (__s2 == (int *)0x0) goto LAB_000c5045;\n  cVar4 = (char)*__s2;\n  goto LAB_000c5020;\n}" primitive_type (function_declarator "set_compatibility_level(char *option_name,int mode)" identifier (parameter_list "(char *option_name,int mode)" ( (parameter_declaration "char *option_name" primitive_type (pointer_declarator "*option_name" * identifier)) , (parameter_declaration "int mode" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int *__s2;\n  uint uVar3;\n  char *value;\n  char cVar4;\n  int iVar5;\n  anon_struct_12_3_5082e56b *paVar6;\n  \n  if (mode == 0) {\nLAB_000c504b:\n    if (shopt_compat31 == 0) {\n      if (shopt_compat32 == 0) {\n        if (shopt_compat40 == 0) {\n          if (shopt_compat41 == 0) {\n            if (shopt_compat42 == 0) {\n              if (shopt_compat43 == 0) {\n                if (shopt_compat44 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }\n    else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }\n    value = itos((ulonglong)uVar3);\n    bind_variable("BASH_COMPAT",value,0);\n    free(value);\n    return 0;\n  }\n  paVar6 = shopt_vars;\n  shopt_compat32 = 0;\n  cVar4 = 'a';\n  iVar5 = 0;\n  shopt_compat31 = 0;\n  shopt_compat43 = 0;\n  shopt_compat42 = 0;\n  shopt_compat41 = 0;\n  shopt_compat40 = 0;\n  shopt_compat44 = 0;\n  cVar1 = *option_name;\n  __s2 = (int *)&DAT_00125c74;\nLAB_000c5020:\n  paVar6 = paVar6 + 1;\n  if (cVar1 == cVar4) {\n    iVar2 = strcmp(option_name,(char *)__s2);\n    if (iVar2 == 0) {\n      __s2 = shopt_vars[iVar5].value;\nLAB_000c5045:\n      *__s2 = mode;\n      goto LAB_000c504b;\n    }\n  }\n  __s2 = (int *)paVar6->name;\n  iVar5 = iVar5 + 1;\n  if (__s2 == (int *)0x0) goto LAB_000c5045;\n  cVar4 = (char)*__s2;\n  goto LAB_000c5020;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *__s2;" primitive_type (pointer_declarator "*__s2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "char *value;" primitive_type (pointer_declarator "*value" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "anon_struct_12_3_5082e56b *paVar6;" type_identifier (pointer_declarator "*paVar6" * identifier) ;) (if_statement "if (mode == 0) {\nLAB_000c504b:\n    if (shopt_compat31 == 0) {\n      if (shopt_compat32 == 0) {\n        if (shopt_compat40 == 0) {\n          if (shopt_compat41 == 0) {\n            if (shopt_compat42 == 0) {\n              if (shopt_compat43 == 0) {\n                if (shopt_compat44 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }\n    else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }\n    value = itos((ulonglong)uVar3);\n    bind_variable("BASH_COMPAT",value,0);\n    free(value);\n    return 0;\n  }" if (parenthesized_expression "(mode == 0)" ( (binary_expression "mode == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000c504b:\n    if (shopt_compat31 == 0) {\n      if (shopt_compat32 == 0) {\n        if (shopt_compat40 == 0) {\n          if (shopt_compat41 == 0) {\n            if (shopt_compat42 == 0) {\n              if (shopt_compat43 == 0) {\n                if (shopt_compat44 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }\n    else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }\n    value = itos((ulonglong)uVar3);\n    bind_variable("BASH_COMPAT",value,0);\n    free(value);\n    return 0;\n  }" { (labeled_statement "LAB_000c504b:\n    if (shopt_compat31 == 0) {\n      if (shopt_compat32 == 0) {\n        if (shopt_compat40 == 0) {\n          if (shopt_compat41 == 0) {\n            if (shopt_compat42 == 0) {\n              if (shopt_compat43 == 0) {\n                if (shopt_compat44 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }\n    else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }" statement_identifier : (if_statement "if (shopt_compat31 == 0) {\n      if (shopt_compat32 == 0) {\n        if (shopt_compat40 == 0) {\n          if (shopt_compat41 == 0) {\n            if (shopt_compat42 == 0) {\n              if (shopt_compat43 == 0) {\n                if (shopt_compat44 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }\n    else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }" if (parenthesized_expression "(shopt_compat31 == 0)" ( (binary_expression "shopt_compat31 == 0" identifier == number_literal) )) (compound_statement "{\n      if (shopt_compat32 == 0) {\n        if (shopt_compat40 == 0) {\n          if (shopt_compat41 == 0) {\n            if (shopt_compat42 == 0) {\n              if (shopt_compat43 == 0) {\n                if (shopt_compat44 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }" { (if_statement "if (shopt_compat32 == 0) {\n        if (shopt_compat40 == 0) {\n          if (shopt_compat41 == 0) {\n            if (shopt_compat42 == 0) {\n              if (shopt_compat43 == 0) {\n                if (shopt_compat44 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }" if (parenthesized_expression "(shopt_compat32 == 0)" ( (binary_expression "shopt_compat32 == 0" identifier == number_literal) )) (compound_statement "{\n        if (shopt_compat40 == 0) {\n          if (shopt_compat41 == 0) {\n            if (shopt_compat42 == 0) {\n              if (shopt_compat43 == 0) {\n                if (shopt_compat44 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }" { (if_statement "if (shopt_compat40 == 0) {\n          if (shopt_compat41 == 0) {\n            if (shopt_compat42 == 0) {\n              if (shopt_compat43 == 0) {\n                if (shopt_compat44 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }" if (parenthesized_expression "(shopt_compat40 == 0)" ( (binary_expression "shopt_compat40 == 0" identifier == number_literal) )) (compound_statement "{\n          if (shopt_compat41 == 0) {\n            if (shopt_compat42 == 0) {\n              if (shopt_compat43 == 0) {\n                if (shopt_compat44 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }" { (if_statement "if (shopt_compat41 == 0) {\n            if (shopt_compat42 == 0) {\n              if (shopt_compat43 == 0) {\n                if (shopt_compat44 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }" if (parenthesized_expression "(shopt_compat41 == 0)" ( (binary_expression "shopt_compat41 == 0" identifier == number_literal) )) (compound_statement "{\n            if (shopt_compat42 == 0) {\n              if (shopt_compat43 == 0) {\n                if (shopt_compat44 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }" { (if_statement "if (shopt_compat42 == 0) {\n              if (shopt_compat43 == 0) {\n                if (shopt_compat44 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }" if (parenthesized_expression "(shopt_compat42 == 0)" ( (binary_expression "shopt_compat42 == 0" identifier == number_literal) )) (compound_statement "{\n              if (shopt_compat43 == 0) {\n                if (shopt_compat44 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }" { (if_statement "if (shopt_compat43 == 0) {\n                if (shopt_compat44 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }" if (parenthesized_expression "(shopt_compat43 == 0)" ( (binary_expression "shopt_compat43 == 0" identifier == number_literal) )) (compound_statement "{\n                if (shopt_compat44 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }" { (if_statement "if (shopt_compat44 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }" if (parenthesized_expression "(shopt_compat44 == 0)" ( (binary_expression "shopt_compat44 == 0" identifier == number_literal) )) (compound_statement "{\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }" { (expression_statement "shell_compatibility_level = 0x32;" (assignment_expression "shell_compatibility_level = 0x32" identifier = number_literal) ;) (expression_statement "uVar3 = 0x32;" (assignment_expression "uVar3 = 0x32" identifier = number_literal) ;) }) (else_clause "else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }" else (compound_statement "{\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }" { (expression_statement "shell_compatibility_level = 0x2c;" (assignment_expression "shell_compatibility_level = 0x2c" identifier = number_literal) ;) (expression_statement "uVar3 = 0x2c;" (assignment_expression "uVar3 = 0x2c" identifier = number_literal) ;) }))) }) (else_clause "else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }" else (compound_statement "{\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }" { (expression_statement "shell_compatibility_level = 0x2b;" (assignment_expression "shell_compatibility_level = 0x2b" identifier = number_literal) ;) (expression_statement "uVar3 = 0x2b;" (assignment_expression "uVar3 = 0x2b" identifier = number_literal) ;) }))) }) (else_clause "else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }" else (compound_statement "{\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }" { (expression_statement "shell_compatibility_level = 0x2a;" (assignment_expression "shell_compatibility_level = 0x2a" identifier = number_literal) ;) (expression_statement "uVar3 = 0x2a;" (assignment_expression "uVar3 = 0x2a" identifier = number_literal) ;) }))) }) (else_clause "else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }" else (compound_statement "{\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }" { (expression_statement "shell_compatibility_level = 0x29;" (assignment_expression "shell_compatibility_level = 0x29" identifier = number_literal) ;) (expression_statement "uVar3 = 0x29;" (assignment_expression "uVar3 = 0x29" identifier = number_literal) ;) }))) }) (else_clause "else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }" else (compound_statement "{\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }" { (expression_statement "shell_compatibility_level = 0x28;" (assignment_expression "shell_compatibility_level = 0x28" identifier = number_literal) ;) (expression_statement "uVar3 = 0x28;" (assignment_expression "uVar3 = 0x28" identifier = number_literal) ;) }))) }) (else_clause "else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }" else (compound_statement "{\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }" { (expression_statement "shell_compatibility_level = 0x20;" (assignment_expression "shell_compatibility_level = 0x20" identifier = number_literal) ;) (expression_statement "uVar3 = 0x20;" (assignment_expression "uVar3 = 0x20" identifier = number_literal) ;) }))) }) (else_clause "else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }" else (compound_statement "{\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }" { (expression_statement "shell_compatibility_level = 0x1f;" (assignment_expression "shell_compatibility_level = 0x1f" identifier = number_literal) ;) (expression_statement "uVar3 = 0x1f;" (assignment_expression "uVar3 = 0x1f" identifier = number_literal) ;) })))) (expression_statement "value = itos((ulonglong)uVar3);" (assignment_expression "value = itos((ulonglong)uVar3)" identifier = (call_expression "itos((ulonglong)uVar3)" identifier (argument_list "((ulonglong)uVar3)" ( (cast_expression "(ulonglong)uVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) )))) ;) (expression_statement "bind_variable("BASH_COMPAT",value,0);" (call_expression "bind_variable("BASH_COMPAT",value,0)" identifier (argument_list "("BASH_COMPAT",value,0)" ( (string_literal ""BASH_COMPAT"" " string_content ") , identifier , number_literal ))) ;) (expression_statement "free(value);" (call_expression "free(value)" identifier (argument_list "(value)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "paVar6 = shopt_vars;" (assignment_expression "paVar6 = shopt_vars" identifier = identifier) ;) (expression_statement "shopt_compat32 = 0;" (assignment_expression "shopt_compat32 = 0" identifier = number_literal) ;) (expression_statement "cVar4 = 'a';" (assignment_expression "cVar4 = 'a'" identifier = (char_literal "'a'" ' character ')) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "shopt_compat31 = 0;" (assignment_expression "shopt_compat31 = 0" identifier = number_literal) ;) (expression_statement "shopt_compat43 = 0;" (assignment_expression "shopt_compat43 = 0" identifier = number_literal) ;) (expression_statement "shopt_compat42 = 0;" (assignment_expression "shopt_compat42 = 0" identifier = number_literal) ;) (expression_statement "shopt_compat41 = 0;" (assignment_expression "shopt_compat41 = 0" identifier = number_literal) ;) (expression_statement "shopt_compat40 = 0;" (assignment_expression "shopt_compat40 = 0" identifier = number_literal) ;) (expression_statement "shopt_compat44 = 0;" (assignment_expression "shopt_compat44 = 0" identifier = number_literal) ;) (expression_statement "cVar1 = *option_name;" (assignment_expression "cVar1 = *option_name" identifier = (pointer_expression "*option_name" * identifier)) ;) (expression_statement "__s2 = (int *)&DAT_00125c74;" (assignment_expression "__s2 = (int *)&DAT_00125c74" identifier = (cast_expression "(int *)&DAT_00125c74" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00125c74" & identifier))) ;) (labeled_statement "LAB_000c5020:\n  paVar6 = paVar6 + 1;" statement_identifier : (expression_statement "paVar6 = paVar6 + 1;" (assignment_expression "paVar6 = paVar6 + 1" identifier = (binary_expression "paVar6 + 1" identifier + number_literal)) ;)) (if_statement "if (cVar1 == cVar4) {\n    iVar2 = strcmp(option_name,(char *)__s2);\n    if (iVar2 == 0) {\n      __s2 = shopt_vars[iVar5].value;\nLAB_000c5045:\n      *__s2 = mode;\n      goto LAB_000c504b;\n    }\n  }" if (parenthesized_expression "(cVar1 == cVar4)" ( (binary_expression "cVar1 == cVar4" identifier == identifier) )) (compound_statement "{\n    iVar2 = strcmp(option_name,(char *)__s2);\n    if (iVar2 == 0) {\n      __s2 = shopt_vars[iVar5].value;\nLAB_000c5045:\n      *__s2 = mode;\n      goto LAB_000c504b;\n    }\n  }" { (expression_statement "iVar2 = strcmp(option_name,(char *)__s2);" (assignment_expression "iVar2 = strcmp(option_name,(char *)__s2)" identifier = (call_expression "strcmp(option_name,(char *)__s2)" identifier (argument_list "(option_name,(char *)__s2)" ( identifier , (cast_expression "(char *)__s2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n      __s2 = shopt_vars[iVar5].value;\nLAB_000c5045:\n      *__s2 = mode;\n      goto LAB_000c504b;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      __s2 = shopt_vars[iVar5].value;\nLAB_000c5045:\n      *__s2 = mode;\n      goto LAB_000c504b;\n    }" { (expression_statement "__s2 = shopt_vars[iVar5].value;" (assignment_expression "__s2 = shopt_vars[iVar5].value" identifier = (field_expression "shopt_vars[iVar5].value" (subscript_expression "shopt_vars[iVar5]" identifier [ identifier ]) . field_identifier)) ;) (labeled_statement "LAB_000c5045:\n      *__s2 = mode;" statement_identifier : (expression_statement "*__s2 = mode;" (assignment_expression "*__s2 = mode" (pointer_expression "*__s2" * identifier) = identifier) ;)) (goto_statement "goto LAB_000c504b;" goto statement_identifier ;) })) })) (expression_statement "__s2 = (int *)paVar6->name;" (assignment_expression "__s2 = (int *)paVar6->name" identifier = (cast_expression "(int *)paVar6->name" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "paVar6->name" identifier -> field_identifier))) ;) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if (__s2 == (int *)0x0) goto LAB_000c5045;" if (parenthesized_expression "(__s2 == (int *)0x0)" ( (binary_expression "__s2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000c5045;" goto statement_identifier ;)) (expression_statement "cVar4 = (char)*__s2;" (assignment_expression "cVar4 = (char)*__s2" identifier = (cast_expression "(char)*__s2" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*__s2" * identifier))) ;) (goto_statement "goto LAB_000c5020;" goto statement_identifier ;) })))
(translation_unit "undefined4 FUN_000c4f80(char *param_1,int param_2)\n\n{\n  char cVar1;\n  int iVar2;\n  int *__s2;\n  undefined4 uVar3;\n  void *__ptr;\n  char cVar4;\n  int iVar5;\n  undefined **ppuVar6;\n  \n  if (param_2 == 0) {\nLAB_000c504b:\n    if (DAT_001797ec == 0) {\n      if (DAT_001797e8 == 0) {\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }\n    else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }\n    __ptr = (void *)itos(uVar3,0);\n    bind_variable("BASH_COMPAT",__ptr,0);\n    free(__ptr);\n    return 0;\n  }\n  DAT_001797e8 = 0;\n  cVar4 = 'a';\n  iVar5 = 0;\n  DAT_001797ec = 0;\n  DAT_001797d8 = 0;\n  DAT_001797dc = 0;\n  DAT_001797e0 = 0;\n  DAT_001797e4 = 0;\n  DAT_001797d4 = 0;\n  cVar1 = *param_1;\n  __s2 = (int *)&DAT_00125c74;\n  ppuVar6 = &PTR_s_assoc_expand_once_001713cc;\nLAB_000c5020:\n  if (cVar1 == cVar4) {\n    iVar2 = strcmp(param_1,(char *)__s2);\n    if (iVar2 == 0) {\n      __s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];\nLAB_000c5045:\n      *__s2 = param_2;\n      goto LAB_000c504b;\n    }\n  }\n  __s2 = (int *)*ppuVar6;\n  iVar5 = iVar5 + 1;\n  if (__s2 == (int *)0x0) goto LAB_000c5045;\n  cVar4 = (char)*__s2;\n  ppuVar6 = ppuVar6 + 3;\n  goto LAB_000c5020;\n}\n\n" (function_definition "undefined4 FUN_000c4f80(char *param_1,int param_2)\n\n{\n  char cVar1;\n  int iVar2;\n  int *__s2;\n  undefined4 uVar3;\n  void *__ptr;\n  char cVar4;\n  int iVar5;\n  undefined **ppuVar6;\n  \n  if (param_2 == 0) {\nLAB_000c504b:\n    if (DAT_001797ec == 0) {\n      if (DAT_001797e8 == 0) {\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }\n    else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }\n    __ptr = (void *)itos(uVar3,0);\n    bind_variable("BASH_COMPAT",__ptr,0);\n    free(__ptr);\n    return 0;\n  }\n  DAT_001797e8 = 0;\n  cVar4 = 'a';\n  iVar5 = 0;\n  DAT_001797ec = 0;\n  DAT_001797d8 = 0;\n  DAT_001797dc = 0;\n  DAT_001797e0 = 0;\n  DAT_001797e4 = 0;\n  DAT_001797d4 = 0;\n  cVar1 = *param_1;\n  __s2 = (int *)&DAT_00125c74;\n  ppuVar6 = &PTR_s_assoc_expand_once_001713cc;\nLAB_000c5020:\n  if (cVar1 == cVar4) {\n    iVar2 = strcmp(param_1,(char *)__s2);\n    if (iVar2 == 0) {\n      __s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];\nLAB_000c5045:\n      *__s2 = param_2;\n      goto LAB_000c504b;\n    }\n  }\n  __s2 = (int *)*ppuVar6;\n  iVar5 = iVar5 + 1;\n  if (__s2 == (int *)0x0) goto LAB_000c5045;\n  cVar4 = (char)*__s2;\n  ppuVar6 = ppuVar6 + 3;\n  goto LAB_000c5020;\n}" type_identifier (function_declarator "FUN_000c4f80(char *param_1,int param_2)" identifier (parameter_list "(char *param_1,int param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int *__s2;\n  undefined4 uVar3;\n  void *__ptr;\n  char cVar4;\n  int iVar5;\n  undefined **ppuVar6;\n  \n  if (param_2 == 0) {\nLAB_000c504b:\n    if (DAT_001797ec == 0) {\n      if (DAT_001797e8 == 0) {\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }\n    else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }\n    __ptr = (void *)itos(uVar3,0);\n    bind_variable("BASH_COMPAT",__ptr,0);\n    free(__ptr);\n    return 0;\n  }\n  DAT_001797e8 = 0;\n  cVar4 = 'a';\n  iVar5 = 0;\n  DAT_001797ec = 0;\n  DAT_001797d8 = 0;\n  DAT_001797dc = 0;\n  DAT_001797e0 = 0;\n  DAT_001797e4 = 0;\n  DAT_001797d4 = 0;\n  cVar1 = *param_1;\n  __s2 = (int *)&DAT_00125c74;\n  ppuVar6 = &PTR_s_assoc_expand_once_001713cc;\nLAB_000c5020:\n  if (cVar1 == cVar4) {\n    iVar2 = strcmp(param_1,(char *)__s2);\n    if (iVar2 == 0) {\n      __s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];\nLAB_000c5045:\n      *__s2 = param_2;\n      goto LAB_000c504b;\n    }\n  }\n  __s2 = (int *)*ppuVar6;\n  iVar5 = iVar5 + 1;\n  if (__s2 == (int *)0x0) goto LAB_000c5045;\n  cVar4 = (char)*__s2;\n  ppuVar6 = ppuVar6 + 3;\n  goto LAB_000c5020;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *__s2;" primitive_type (pointer_declarator "*__s2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined **ppuVar6;" type_identifier (pointer_declarator "**ppuVar6" * (pointer_declarator "*ppuVar6" * identifier)) ;) (if_statement "if (param_2 == 0) {\nLAB_000c504b:\n    if (DAT_001797ec == 0) {\n      if (DAT_001797e8 == 0) {\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }\n    else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }\n    __ptr = (void *)itos(uVar3,0);\n    bind_variable("BASH_COMPAT",__ptr,0);\n    free(__ptr);\n    return 0;\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000c504b:\n    if (DAT_001797ec == 0) {\n      if (DAT_001797e8 == 0) {\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }\n    else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }\n    __ptr = (void *)itos(uVar3,0);\n    bind_variable("BASH_COMPAT",__ptr,0);\n    free(__ptr);\n    return 0;\n  }" { (labeled_statement "LAB_000c504b:\n    if (DAT_001797ec == 0) {\n      if (DAT_001797e8 == 0) {\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }\n    else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }" statement_identifier : (if_statement "if (DAT_001797ec == 0) {\n      if (DAT_001797e8 == 0) {\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }\n    else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }" if (parenthesized_expression "(DAT_001797ec == 0)" ( (binary_expression "DAT_001797ec == 0" identifier == number_literal) )) (compound_statement "{\n      if (DAT_001797e8 == 0) {\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }" { (if_statement "if (DAT_001797e8 == 0) {\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }" if (parenthesized_expression "(DAT_001797e8 == 0)" ( (binary_expression "DAT_001797e8 == 0" identifier == number_literal) )) (compound_statement "{\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }" { (if_statement "if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }" if (parenthesized_expression "(DAT_001797e4 == 0)" ( (binary_expression "DAT_001797e4 == 0" identifier == number_literal) )) (compound_statement "{\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }" { (if_statement "if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }" if (parenthesized_expression "(DAT_001797e0 == 0)" ( (binary_expression "DAT_001797e0 == 0" identifier == number_literal) )) (compound_statement "{\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }" { (if_statement "if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }" if (parenthesized_expression "(DAT_001797dc == 0)" ( (binary_expression "DAT_001797dc == 0" identifier == number_literal) )) (compound_statement "{\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }" { (if_statement "if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }" if (parenthesized_expression "(DAT_001797d8 == 0)" ( (binary_expression "DAT_001797d8 == 0" identifier == number_literal) )) (compound_statement "{\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }" { (if_statement "if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }" if (parenthesized_expression "(DAT_001797d4 == 0)" ( (binary_expression "DAT_001797d4 == 0" identifier == number_literal) )) (compound_statement "{\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }" { (expression_statement "shell_compatibility_level = 0x32;" (assignment_expression "shell_compatibility_level = 0x32" identifier = number_literal) ;) (expression_statement "uVar3 = 0x32;" (assignment_expression "uVar3 = 0x32" identifier = number_literal) ;) }) (else_clause "else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }" else (compound_statement "{\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }" { (expression_statement "shell_compatibility_level = 0x2c;" (assignment_expression "shell_compatibility_level = 0x2c" identifier = number_literal) ;) (expression_statement "uVar3 = 0x2c;" (assignment_expression "uVar3 = 0x2c" identifier = number_literal) ;) }))) }) (else_clause "else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }" else (compound_statement "{\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }" { (expression_statement "shell_compatibility_level = 0x2b;" (assignment_expression "shell_compatibility_level = 0x2b" identifier = number_literal) ;) (expression_statement "uVar3 = 0x2b;" (assignment_expression "uVar3 = 0x2b" identifier = number_literal) ;) }))) }) (else_clause "else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }" else (compound_statement "{\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }" { (expression_statement "shell_compatibility_level = 0x2a;" (assignment_expression "shell_compatibility_level = 0x2a" identifier = number_literal) ;) (expression_statement "uVar3 = 0x2a;" (assignment_expression "uVar3 = 0x2a" identifier = number_literal) ;) }))) }) (else_clause "else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }" else (compound_statement "{\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }" { (expression_statement "shell_compatibility_level = 0x29;" (assignment_expression "shell_compatibility_level = 0x29" identifier = number_literal) ;) (expression_statement "uVar3 = 0x29;" (assignment_expression "uVar3 = 0x29" identifier = number_literal) ;) }))) }) (else_clause "else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }" else (compound_statement "{\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }" { (expression_statement "shell_compatibility_level = 0x28;" (assignment_expression "shell_compatibility_level = 0x28" identifier = number_literal) ;) (expression_statement "uVar3 = 0x28;" (assignment_expression "uVar3 = 0x28" identifier = number_literal) ;) }))) }) (else_clause "else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }" else (compound_statement "{\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }" { (expression_statement "shell_compatibility_level = 0x20;" (assignment_expression "shell_compatibility_level = 0x20" identifier = number_literal) ;) (expression_statement "uVar3 = 0x20;" (assignment_expression "uVar3 = 0x20" identifier = number_literal) ;) }))) }) (else_clause "else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }" else (compound_statement "{\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }" { (expression_statement "shell_compatibility_level = 0x1f;" (assignment_expression "shell_compatibility_level = 0x1f" identifier = number_literal) ;) (expression_statement "uVar3 = 0x1f;" (assignment_expression "uVar3 = 0x1f" identifier = number_literal) ;) })))) (expression_statement "__ptr = (void *)itos(uVar3,0);" (assignment_expression "__ptr = (void *)itos(uVar3,0)" identifier = (cast_expression "(void *)itos(uVar3,0)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "itos(uVar3,0)" identifier (argument_list "(uVar3,0)" ( identifier , number_literal ))))) ;) (expression_statement "bind_variable("BASH_COMPAT",__ptr,0);" (call_expression "bind_variable("BASH_COMPAT",__ptr,0)" identifier (argument_list "("BASH_COMPAT",__ptr,0)" ( (string_literal ""BASH_COMPAT"" " string_content ") , identifier , number_literal ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "DAT_001797e8 = 0;" (assignment_expression "DAT_001797e8 = 0" identifier = number_literal) ;) (expression_statement "cVar4 = 'a';" (assignment_expression "cVar4 = 'a'" identifier = (char_literal "'a'" ' character ')) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "DAT_001797ec = 0;" (assignment_expression "DAT_001797ec = 0" identifier = number_literal) ;) (expression_statement "DAT_001797d8 = 0;" (assignment_expression "DAT_001797d8 = 0" identifier = number_literal) ;) (expression_statement "DAT_001797dc = 0;" (assignment_expression "DAT_001797dc = 0" identifier = number_literal) ;) (expression_statement "DAT_001797e0 = 0;" (assignment_expression "DAT_001797e0 = 0" identifier = number_literal) ;) (expression_statement "DAT_001797e4 = 0;" (assignment_expression "DAT_001797e4 = 0" identifier = number_literal) ;) (expression_statement "DAT_001797d4 = 0;" (assignment_expression "DAT_001797d4 = 0" identifier = number_literal) ;) (expression_statement "cVar1 = *param_1;" (assignment_expression "cVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "__s2 = (int *)&DAT_00125c74;" (assignment_expression "__s2 = (int *)&DAT_00125c74" identifier = (cast_expression "(int *)&DAT_00125c74" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00125c74" & identifier))) ;) (expression_statement "ppuVar6 = &PTR_s_assoc_expand_once_001713cc;" (assignment_expression "ppuVar6 = &PTR_s_assoc_expand_once_001713cc" identifier = (pointer_expression "&PTR_s_assoc_expand_once_001713cc" & identifier)) ;) (labeled_statement "LAB_000c5020:\n  if (cVar1 == cVar4) {\n    iVar2 = strcmp(param_1,(char *)__s2);\n    if (iVar2 == 0) {\n      __s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];\nLAB_000c5045:\n      *__s2 = param_2;\n      goto LAB_000c504b;\n    }\n  }" statement_identifier : (if_statement "if (cVar1 == cVar4) {\n    iVar2 = strcmp(param_1,(char *)__s2);\n    if (iVar2 == 0) {\n      __s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];\nLAB_000c5045:\n      *__s2 = param_2;\n      goto LAB_000c504b;\n    }\n  }" if (parenthesized_expression "(cVar1 == cVar4)" ( (binary_expression "cVar1 == cVar4" identifier == identifier) )) (compound_statement "{\n    iVar2 = strcmp(param_1,(char *)__s2);\n    if (iVar2 == 0) {\n      __s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];\nLAB_000c5045:\n      *__s2 = param_2;\n      goto LAB_000c504b;\n    }\n  }" { (expression_statement "iVar2 = strcmp(param_1,(char *)__s2);" (assignment_expression "iVar2 = strcmp(param_1,(char *)__s2)" identifier = (call_expression "strcmp(param_1,(char *)__s2)" identifier (argument_list "(param_1,(char *)__s2)" ( identifier , (cast_expression "(char *)__s2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n      __s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];\nLAB_000c5045:\n      *__s2 = param_2;\n      goto LAB_000c504b;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      __s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];\nLAB_000c5045:\n      *__s2 = param_2;\n      goto LAB_000c504b;\n    }" { (expression_statement "__s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];" (assignment_expression "__s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3]" identifier = (cast_expression "(int *)(&PTR_autocd_001713c4)[iVar5 * 3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "(&PTR_autocd_001713c4)[iVar5 * 3]" (parenthesized_expression "(&PTR_autocd_001713c4)" ( (pointer_expression "&PTR_autocd_001713c4" & identifier) )) [ (binary_expression "iVar5 * 3" identifier * number_literal) ]))) ;) (labeled_statement "LAB_000c5045:\n      *__s2 = param_2;" statement_identifier : (expression_statement "*__s2 = param_2;" (assignment_expression "*__s2 = param_2" (pointer_expression "*__s2" * identifier) = identifier) ;)) (goto_statement "goto LAB_000c504b;" goto statement_identifier ;) })) }))) (expression_statement "__s2 = (int *)*ppuVar6;" (assignment_expression "__s2 = (int *)*ppuVar6" identifier = (cast_expression "(int *)*ppuVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*ppuVar6" * identifier))) ;) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if (__s2 == (int *)0x0) goto LAB_000c5045;" if (parenthesized_expression "(__s2 == (int *)0x0)" ( (binary_expression "__s2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000c5045;" goto statement_identifier ;)) (expression_statement "cVar4 = (char)*__s2;" (assignment_expression "cVar4 = (char)*__s2" identifier = (cast_expression "(char)*__s2" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*__s2" * identifier))) ;) (expression_statement "ppuVar6 = ppuVar6 + 3;" (assignment_expression "ppuVar6 = ppuVar6 + 3" identifier = (binary_expression "ppuVar6 + 3" identifier + number_literal)) ;) (goto_statement "goto LAB_000c5020;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;)) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "undefined4 FUN_000c4f80(char *param_1,int param_2)\n\n{\n  char cVar1;\n  int iVar2;\n  int *__s2;\n  undefined4 uVar3;\n  void *__ptr;\n  char cVar4;\n  int iVar5;\n  undefined **ppuVar6;\n  \n  if (param_2 == 0) {\nLAB_000c504b:\n    if (DAT_001797ec == 0) {\n      if (DAT_001797e8 == 0) {\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }\n    else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }\n    __ptr = (void *)itos(uVar3,0);\n    bind_variable("BASH_COMPAT",__ptr,0);\n    free(__ptr);\n    return 0;\n  }\n  DAT_001797e8 = 0;\n  cVar4 = 'a';\n  iVar5 = 0;\n  DAT_001797ec = 0;\n  DAT_001797d8 = 0;\n  DAT_001797dc = 0;\n  DAT_001797e0 = 0;\n  DAT_001797e4 = 0;\n  DAT_001797d4 = 0;\n  cVar1 = *param_1;\n  __s2 = (int *)&DAT_00125c74;\n  ppuVar6 = &PTR_s_assoc_expand_once_001713cc;\nLAB_000c5020:\n  if (cVar1 == cVar4) {\n    iVar2 = strcmp(param_1,(char *)__s2);\n    if (iVar2 == 0) {\n      __s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];\nLAB_000c5045:\n      *__s2 = param_2;\n      goto LAB_000c504b;\n    }\n  }\n  __s2 = (int *)*ppuVar6;\n  iVar5 = iVar5 + 1;\n  if (__s2 == (int *)0x0) goto LAB_000c5045;\n  cVar4 = (char)*__s2;\n  ppuVar6 = ppuVar6 + 3;\n  goto LAB_000c5020;\n}" (type_identifier "undefined4") (function_declarator "FUN_000c4f80(char *param_1,int param_2)" (identifier "FUN_000c4f80") (parameter_list "(char *param_1,int param_2)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int *__s2;\n  undefined4 uVar3;\n  void *__ptr;\n  char cVar4;\n  int iVar5;\n  undefined **ppuVar6;\n  \n  if (param_2 == 0) {\nLAB_000c504b:\n    if (DAT_001797ec == 0) {\n      if (DAT_001797e8 == 0) {\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }\n    else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }\n    __ptr = (void *)itos(uVar3,0);\n    bind_variable("BASH_COMPAT",__ptr,0);\n    free(__ptr);\n    return 0;\n  }\n  DAT_001797e8 = 0;\n  cVar4 = 'a';\n  iVar5 = 0;\n  DAT_001797ec = 0;\n  DAT_001797d8 = 0;\n  DAT_001797dc = 0;\n  DAT_001797e0 = 0;\n  DAT_001797e4 = 0;\n  DAT_001797d4 = 0;\n  cVar1 = *param_1;\n  __s2 = (int *)&DAT_00125c74;\n  ppuVar6 = &PTR_s_assoc_expand_once_001713cc;\nLAB_000c5020:\n  if (cVar1 == cVar4) {\n    iVar2 = strcmp(param_1,(char *)__s2);\n    if (iVar2 == 0) {\n      __s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];\nLAB_000c5045:\n      *__s2 = param_2;\n      goto LAB_000c504b;\n    }\n  }\n  __s2 = (int *)*ppuVar6;\n  iVar5 = iVar5 + 1;\n  if (__s2 == (int *)0x0) goto LAB_000c5045;\n  cVar4 = (char)*__s2;\n  ppuVar6 = ppuVar6 + 3;\n  goto LAB_000c5020;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int *__s2;" (primitive_type "int") (pointer_declarator "*__s2" (* "*") (identifier "__s2")) (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "void *__ptr;" (primitive_type "void") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined **ppuVar6;" (type_identifier "undefined") (pointer_declarator "**ppuVar6" (* "*") (pointer_declarator "*ppuVar6" (* "*") (identifier "ppuVar6"))) (; ";")) (if_statement "if (param_2 == 0) {\nLAB_000c504b:\n    if (DAT_001797ec == 0) {\n      if (DAT_001797e8 == 0) {\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }\n    else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }\n    __ptr = (void *)itos(uVar3,0);\n    bind_variable("BASH_COMPAT",__ptr,0);\n    free(__ptr);\n    return 0;\n  }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000c504b:\n    if (DAT_001797ec == 0) {\n      if (DAT_001797e8 == 0) {\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }\n    else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }\n    __ptr = (void *)itos(uVar3,0);\n    bind_variable("BASH_COMPAT",__ptr,0);\n    free(__ptr);\n    return 0;\n  }" ({ "{") (labeled_statement "LAB_000c504b:\n    if (DAT_001797ec == 0) {\n      if (DAT_001797e8 == 0) {\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }\n    else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }" (statement_identifier "LAB_000c504b") (: ":") (if_statement "if (DAT_001797ec == 0) {\n      if (DAT_001797e8 == 0) {\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }\n    else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }" (if "if") (parenthesized_expression "(DAT_001797ec == 0)" (( "(") (binary_expression "DAT_001797ec == 0" (identifier "DAT_001797ec") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (DAT_001797e8 == 0) {\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }\n    }" ({ "{") (if_statement "if (DAT_001797e8 == 0) {\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }\n      else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }" (if "if") (parenthesized_expression "(DAT_001797e8 == 0)" (( "(") (binary_expression "DAT_001797e8 == 0" (identifier "DAT_001797e8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }\n      }" ({ "{") (if_statement "if (DAT_001797e4 == 0) {\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }\n        else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }" (if "if") (parenthesized_expression "(DAT_001797e4 == 0)" (( "(") (binary_expression "DAT_001797e4 == 0" (identifier "DAT_001797e4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }\n        }" ({ "{") (if_statement "if (DAT_001797e0 == 0) {\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }\n          else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }" (if "if") (parenthesized_expression "(DAT_001797e0 == 0)" (( "(") (binary_expression "DAT_001797e0 == 0" (identifier "DAT_001797e0") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }\n          }" ({ "{") (if_statement "if (DAT_001797dc == 0) {\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }\n            else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }" (if "if") (parenthesized_expression "(DAT_001797dc == 0)" (( "(") (binary_expression "DAT_001797dc == 0" (identifier "DAT_001797dc") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }\n            }" ({ "{") (if_statement "if (DAT_001797d8 == 0) {\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }\n              else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }" (if "if") (parenthesized_expression "(DAT_001797d8 == 0)" (( "(") (binary_expression "DAT_001797d8 == 0" (identifier "DAT_001797d8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }\n              }" ({ "{") (if_statement "if (DAT_001797d4 == 0) {\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }\n                else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }" (if "if") (parenthesized_expression "(DAT_001797d4 == 0)" (( "(") (binary_expression "DAT_001797d4 == 0" (identifier "DAT_001797d4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  shell_compatibility_level = 0x32;\n                  uVar3 = 0x32;\n                }" ({ "{") (expression_statement "shell_compatibility_level = 0x32;" (assignment_expression "shell_compatibility_level = 0x32" (identifier "shell_compatibility_level") (= "=") (number_literal "0x32")) (; ";")) (expression_statement "uVar3 = 0x32;" (assignment_expression "uVar3 = 0x32" (identifier "uVar3") (= "=") (number_literal "0x32")) (; ";")) (} "}")) (else_clause "else {\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }" (else "else") (compound_statement "{\n                  shell_compatibility_level = 0x2c;\n                  uVar3 = 0x2c;\n                }" ({ "{") (expression_statement "shell_compatibility_level = 0x2c;" (assignment_expression "shell_compatibility_level = 0x2c" (identifier "shell_compatibility_level") (= "=") (number_literal "0x2c")) (; ";")) (expression_statement "uVar3 = 0x2c;" (assignment_expression "uVar3 = 0x2c" (identifier "uVar3") (= "=") (number_literal "0x2c")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }" (else "else") (compound_statement "{\n                shell_compatibility_level = 0x2b;\n                uVar3 = 0x2b;\n              }" ({ "{") (expression_statement "shell_compatibility_level = 0x2b;" (assignment_expression "shell_compatibility_level = 0x2b" (identifier "shell_compatibility_level") (= "=") (number_literal "0x2b")) (; ";")) (expression_statement "uVar3 = 0x2b;" (assignment_expression "uVar3 = 0x2b" (identifier "uVar3") (= "=") (number_literal "0x2b")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }" (else "else") (compound_statement "{\n              shell_compatibility_level = 0x2a;\n              uVar3 = 0x2a;\n            }" ({ "{") (expression_statement "shell_compatibility_level = 0x2a;" (assignment_expression "shell_compatibility_level = 0x2a" (identifier "shell_compatibility_level") (= "=") (number_literal "0x2a")) (; ";")) (expression_statement "uVar3 = 0x2a;" (assignment_expression "uVar3 = 0x2a" (identifier "uVar3") (= "=") (number_literal "0x2a")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }" (else "else") (compound_statement "{\n            shell_compatibility_level = 0x29;\n            uVar3 = 0x29;\n          }" ({ "{") (expression_statement "shell_compatibility_level = 0x29;" (assignment_expression "shell_compatibility_level = 0x29" (identifier "shell_compatibility_level") (= "=") (number_literal "0x29")) (; ";")) (expression_statement "uVar3 = 0x29;" (assignment_expression "uVar3 = 0x29" (identifier "uVar3") (= "=") (number_literal "0x29")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }" (else "else") (compound_statement "{\n          shell_compatibility_level = 0x28;\n          uVar3 = 0x28;\n        }" ({ "{") (expression_statement "shell_compatibility_level = 0x28;" (assignment_expression "shell_compatibility_level = 0x28" (identifier "shell_compatibility_level") (= "=") (number_literal "0x28")) (; ";")) (expression_statement "uVar3 = 0x28;" (assignment_expression "uVar3 = 0x28" (identifier "uVar3") (= "=") (number_literal "0x28")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }" (else "else") (compound_statement "{\n        shell_compatibility_level = 0x20;\n        uVar3 = 0x20;\n      }" ({ "{") (expression_statement "shell_compatibility_level = 0x20;" (assignment_expression "shell_compatibility_level = 0x20" (identifier "shell_compatibility_level") (= "=") (number_literal "0x20")) (; ";")) (expression_statement "uVar3 = 0x20;" (assignment_expression "uVar3 = 0x20" (identifier "uVar3") (= "=") (number_literal "0x20")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }" (else "else") (compound_statement "{\n      shell_compatibility_level = 0x1f;\n      uVar3 = 0x1f;\n    }" ({ "{") (expression_statement "shell_compatibility_level = 0x1f;" (assignment_expression "shell_compatibility_level = 0x1f" (identifier "shell_compatibility_level") (= "=") (number_literal "0x1f")) (; ";")) (expression_statement "uVar3 = 0x1f;" (assignment_expression "uVar3 = 0x1f" (identifier "uVar3") (= "=") (number_literal "0x1f")) (; ";")) (} "}"))))) (expression_statement "__ptr = (void *)itos(uVar3,0);" (assignment_expression "__ptr = (void *)itos(uVar3,0)" (identifier "__ptr") (= "=") (cast_expression "(void *)itos(uVar3,0)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "itos(uVar3,0)" (identifier "itos") (argument_list "(uVar3,0)" (( "(") (identifier "uVar3") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "bind_variable("BASH_COMPAT",__ptr,0);" (call_expression "bind_variable("BASH_COMPAT",__ptr,0)" (identifier "bind_variable") (argument_list "("BASH_COMPAT",__ptr,0)" (( "(") (string_literal ""BASH_COMPAT"" (" """) (string_content "BASH_COMPAT") (" """)) (, ",") (identifier "__ptr") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "DAT_001797e8 = 0;" (assignment_expression "DAT_001797e8 = 0" (identifier "DAT_001797e8") (= "=") (number_literal "0")) (; ";")) (expression_statement "cVar4 = 'a';" (assignment_expression "cVar4 = 'a'" (identifier "cVar4") (= "=") (char_literal "'a'" (' "'") (character "a") (' "'"))) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_001797ec = 0;" (assignment_expression "DAT_001797ec = 0" (identifier "DAT_001797ec") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_001797d8 = 0;" (assignment_expression "DAT_001797d8 = 0" (identifier "DAT_001797d8") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_001797dc = 0;" (assignment_expression "DAT_001797dc = 0" (identifier "DAT_001797dc") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_001797e0 = 0;" (assignment_expression "DAT_001797e0 = 0" (identifier "DAT_001797e0") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_001797e4 = 0;" (assignment_expression "DAT_001797e4 = 0" (identifier "DAT_001797e4") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_001797d4 = 0;" (assignment_expression "DAT_001797d4 = 0" (identifier "DAT_001797d4") (= "=") (number_literal "0")) (; ";")) (expression_statement "cVar1 = *param_1;" (assignment_expression "cVar1 = *param_1" (identifier "cVar1") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "__s2 = (int *)&DAT_00125c74;" (assignment_expression "__s2 = (int *)&DAT_00125c74" (identifier "__s2") (= "=") (cast_expression "(int *)&DAT_00125c74" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00125c74" (& "&") (identifier "DAT_00125c74")))) (; ";")) (expression_statement "ppuVar6 = &PTR_s_assoc_expand_once_001713cc;" (assignment_expression "ppuVar6 = &PTR_s_assoc_expand_once_001713cc" (identifier "ppuVar6") (= "=") (pointer_expression "&PTR_s_assoc_expand_once_001713cc" (& "&") (identifier "PTR_s_assoc_expand_once_001713cc"))) (; ";")) (labeled_statement "LAB_000c5020:\n  if (cVar1 == cVar4) {\n    iVar2 = strcmp(param_1,(char *)__s2);\n    if (iVar2 == 0) {\n      __s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];\nLAB_000c5045:\n      *__s2 = param_2;\n      goto LAB_000c504b;\n    }\n  }" (statement_identifier "LAB_000c5020") (: ":") (if_statement "if (cVar1 == cVar4) {\n    iVar2 = strcmp(param_1,(char *)__s2);\n    if (iVar2 == 0) {\n      __s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];\nLAB_000c5045:\n      *__s2 = param_2;\n      goto LAB_000c504b;\n    }\n  }" (if "if") (parenthesized_expression "(cVar1 == cVar4)" (( "(") (binary_expression "cVar1 == cVar4" (identifier "cVar1") (== "==") (identifier "cVar4")) () ")")) (compound_statement "{\n    iVar2 = strcmp(param_1,(char *)__s2);\n    if (iVar2 == 0) {\n      __s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];\nLAB_000c5045:\n      *__s2 = param_2;\n      goto LAB_000c504b;\n    }\n  }" ({ "{") (expression_statement "iVar2 = strcmp(param_1,(char *)__s2);" (assignment_expression "iVar2 = strcmp(param_1,(char *)__s2)" (identifier "iVar2") (= "=") (call_expression "strcmp(param_1,(char *)__s2)" (identifier "strcmp") (argument_list "(param_1,(char *)__s2)" (( "(") (identifier "param_1") (, ",") (cast_expression "(char *)__s2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s2")) () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n      __s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];\nLAB_000c5045:\n      *__s2 = param_2;\n      goto LAB_000c504b;\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      __s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];\nLAB_000c5045:\n      *__s2 = param_2;\n      goto LAB_000c504b;\n    }" ({ "{") (expression_statement "__s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];" (assignment_expression "__s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3]" (identifier "__s2") (= "=") (cast_expression "(int *)(&PTR_autocd_001713c4)[iVar5 * 3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "(&PTR_autocd_001713c4)[iVar5 * 3]" (parenthesized_expression "(&PTR_autocd_001713c4)" (( "(") (pointer_expression "&PTR_autocd_001713c4" (& "&") (identifier "PTR_autocd_001713c4")) () ")")) ([ "[") (binary_expression "iVar5 * 3" (identifier "iVar5") (* "*") (number_literal "3")) (] "]")))) (; ";")) (labeled_statement "LAB_000c5045:\n      *__s2 = param_2;" (statement_identifier "LAB_000c5045") (: ":") (expression_statement "*__s2 = param_2;" (assignment_expression "*__s2 = param_2" (pointer_expression "*__s2" (* "*") (identifier "__s2")) (= "=") (identifier "param_2")) (; ";"))) (goto_statement "goto LAB_000c504b;" (goto "goto") (statement_identifier "LAB_000c504b") (; ";")) (} "}"))) (} "}")))) (expression_statement "__s2 = (int *)*ppuVar6;" (assignment_expression "__s2 = (int *)*ppuVar6" (identifier "__s2") (= "=") (cast_expression "(int *)*ppuVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*ppuVar6" (* "*") (identifier "ppuVar6")))) (; ";")) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (__s2 == (int *)0x0) goto LAB_000c5045;" (if "if") (parenthesized_expression "(__s2 == (int *)0x0)" (( "(") (binary_expression "__s2 == (int *)0x0" (identifier "__s2") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000c5045;" (goto "goto") (statement_identifier "LAB_000c5045") (; ";"))) (expression_statement "cVar4 = (char)*__s2;" (assignment_expression "cVar4 = (char)*__s2" (identifier "cVar4") (= "=") (cast_expression "(char)*__s2" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*__s2" (* "*") (identifier "__s2")))) (; ";")) (expression_statement "ppuVar6 = ppuVar6 + 3;" (assignment_expression "ppuVar6 = ppuVar6 + 3" (identifier "ppuVar6") (= "=") (binary_expression "ppuVar6 + 3" (identifier "ppuVar6") (+ "+") (number_literal "3"))) (; ";")) (goto_statement "goto LAB_000c5020;" (goto "goto") (statement_identifier "LAB_000c5020") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

int function_1(char *option_name,int var_1)

{
  char var_13;
  int var_16;
  int *var_18;
  type_1 uVar3;
  char *value;
  char var_14;
  int var_17;
  type_2 *var_12;
  
  if (var_1 == 0) {
LAB_000c504b:
    if (var_2 == 0) {
      if (var_3 == 0) {
        if (var_4 == 0) {
          if (var_5 == 0) {
            if (var_6 == 0) {
              if (var_7 == 0) {
                if (var_8 == 0) {
                  shell_compatibility_level = 0x32;
                  uVar3 = 0x32;
                }
                else {
                  shell_compatibility_level = 0x2c;
                  uVar3 = 0x2c;
                }
              }
              else {
                shell_compatibility_level = 0x2b;
                uVar3 = 0x2b;
              }
            }
            else {
              shell_compatibility_level = 0x2a;
              uVar3 = 0x2a;
            }
          }
          else {
            shell_compatibility_level = 0x29;
            uVar3 = 0x29;
          }
        }
        else {
          shell_compatibility_level = 0x28;
          uVar3 = 0x28;
        }
      }
      else {
        shell_compatibility_level = 0x20;
        uVar3 = 0x20;
      }
    }
    else {
      shell_compatibility_level = 0x1f;
      uVar3 = 0x1f;
    }
    value = var_9((type_3)uVar3);
    var_10("BASH_COMPAT",value,0);
    var_11(value);
    return 0;
  }
  var_12 = shopt_vars;
  var_3 = 0;
  var_14 = 'a';
  var_17 = 0;
  var_2 = 0;
  var_7 = 0;
  var_6 = 0;
  var_5 = 0;
  var_4 = 0;
  var_8 = 0;
  var_13 = *option_name;
  var_18 = (int *)&DAT_00125c74;
LAB_000c5020:
  var_12 = var_12 + 1;
  if (var_13 == var_14) {
    var_16 = var_15(option_name,(char *)var_18);
    if (var_16 == 0) {
      var_18 = shopt_vars[var_17].value;
LAB_000c5045:
      *var_18 = var_1;
      goto LAB_000c504b;
    }
  }
  var_18 = (int *)var_12->name;
  var_17 = var_17 + 1;
  if (var_18 == (int *)0x0) goto LAB_000c5045;
  var_14 = (char)*var_18;
  goto LAB_000c5020;
}


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

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

undefined4 MASKED(char *param_1,int param_2)

{
  char cVar1;
  int iVar2;
  int *__s2;
  undefined4 uVar3;
  void *__ptr;
  char cVar4;
  int iVar5;
  undefined **ppuVar6;
  
  if (param_2 == 0) {
LAB_000c504b:
    if (DAT_001797ec == 0) {
      if (DAT_001797e8 == 0) {
        if (DAT_001797e4 == 0) {
          if (DAT_001797e0 == 0) {
            if (DAT_001797dc == 0) {
              if (DAT_001797d8 == 0) {
                if (DAT_001797d4 == 0) {
                  shell_compatibility_level = 0x32;
                  uVar3 = 0x32;
                }
                else {
                  shell_compatibility_level = 0x2c;
                  uVar3 = 0x2c;
                }
              }
              else {
                shell_compatibility_level = 0x2b;
                uVar3 = 0x2b;
              }
            }
            else {
              shell_compatibility_level = 0x2a;
              uVar3 = 0x2a;
            }
          }
          else {
            shell_compatibility_level = 0x29;
            uVar3 = 0x29;
          }
        }
        else {
          shell_compatibility_level = 0x28;
          uVar3 = 0x28;
        }
      }
      else {
        shell_compatibility_level = 0x20;
        uVar3 = 0x20;
      }
    }
    else {
      shell_compatibility_level = 0x1f;
      uVar3 = 0x1f;
    }
    __ptr = (void *)itos(uVar3,0);
    bind_variable("BASH_COMPAT",__ptr,0);
    free(__ptr);
    return 0;
  }
  DAT_001797e8 = 0;
  cVar4 = 'a';
  iVar5 = 0;
  DAT_001797ec = 0;
  DAT_001797d8 = 0;
  DAT_001797dc = 0;
  DAT_001797e0 = 0;
  DAT_001797e4 = 0;
  DAT_001797d4 = 0;
  cVar1 = *param_1;
  __s2 = (int *)&DAT_00125c74;
  ppuVar6 = &PTR_s_assoc_expand_once_001713cc;
LAB_000c5020:
  if (cVar1 == cVar4) {
    iVar2 = strcmp(param_1,(char *)__s2);
    if (iVar2 == 0) {
      __s2 = (int *)(&PTR_autocd_001713c4)[iVar5 * 3];
LAB_000c5045:
      *__s2 = param_2;
      goto LAB_000c504b;
    }
  }
  __s2 = (int *)*ppuVar6;
  iVar5 = iVar5 + 1;
  if (__s2 == (int *)0x0) goto LAB_000c5045;
  cVar4 = (char)*__s2;
  ppuVar6 = ppuVar6 + 3;
  goto LAB_000c5020;
}

