
void columns_set_cols(Columns *cols,gint ncols,gint *percentages)

{
  GTypeClass *pGVar1;
  int iVar2;
  GType GVar3;
  undefined8 *puVar4;
  undefined8 uVar5;
  long lVar6;
  GList *pGVar7;
  
  if (cols == (Columns *)0x0) {
    g_return_if_fail_warning(0,"columns_set_cols","cols != NULL");
  }
  else {
    GVar3 = columns_get_type();
    pGVar1 = (cols->container).widget.parent_instance.g_type_instance.g_class;
    if (((pGVar1 == (GTypeClass *)0x0) || (pGVar1->g_type != GVar3)) &&
       (iVar2 = g_type_check_instance_is_a(cols,GVar3), iVar2 == 0)) {
      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");
      return;
    }
    if (ncols < 1) {
      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");
    }
    else if (percentages == (gint *)0x0) {
      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");
    }
    else {
      puVar4 = (undefined8 *)g_malloc(0x40);
      *puVar4 = 0;
      *(gint *)(puVar4 + 4) = ncols;
      uVar5 = g_malloc_n((long)ncols,4);
      puVar4[5] = uVar5;
      *(undefined4 *)(puVar4 + 2) = 0;
      lVar6 = 0;
      do {
        *(undefined4 *)(puVar4[5] + lVar6) = *(undefined4 *)((long)percentages + lVar6);
        lVar6 = lVar6 + 4;
      } while (lVar6 != (ulong)(ncols - 1) * 4 + 4);
      pGVar7 = (GList *)g_list_append(cols->children,puVar4);
      cols->children = pGVar7;
    }
  }
  return;
}



void FUN_0013b4b8(long *param_1,int param_2,long param_3)

{
  int iVar1;
  long lVar2;
  undefined8 *puVar3;
  undefined8 uVar4;
  
  if (param_1 == (long *)0x0) {
    g_return_if_fail_warning(0,"columns_set_cols","cols != NULL");
  }
  else {
    lVar2 = FUN_0013a859();
    if ((((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&
       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)) {
      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");
      return;
    }
    if (param_2 < 1) {
      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");
    }
    else if (param_3 == 0) {
      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");
    }
    else {
      puVar3 = (undefined8 *)g_malloc(0x40);
      *puVar3 = 0;
      *(int *)(puVar3 + 4) = param_2;
      uVar4 = g_malloc_n((long)param_2,4);
      puVar3[5] = uVar4;
      *(undefined4 *)(puVar3 + 2) = 0;
      lVar2 = 0;
      do {
        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);
        lVar2 = lVar2 + 4;
      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);
      lVar2 = g_list_append(param_1[5],puVar3);
      param_1[5] = lVar2;
    }
  }
  return;
}


PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x8
TEST RDI,RDI
JZ 0x0013b513
MOV R12,RDI
MOV R13D,ESI
MOV RBP,RDX
CALL 0x0013a859
MOV RDX,qword ptr [R12]
TEST RDX,RDX
JZ 0x0013b4e7
CMP qword ptr [RDX],RAX
JZ 0x0013b567
MOV RSI,RAX
MOV RDI,R12
CALL 0x001115d0
TEST EAX,EAX
JNZ 0x0013b567
LEA RDX,[0x18018a]
LEA RSI,[0x1802b0]
MOV EDI,0x0
CALL 0x00110210
JMP 0x0013b5d8
LEA RDX,[0x18015f]
LEA RSI,[0x1802b0]
MOV EDI,0x0
CALL 0x00110210
JMP 0x0013b5d8
LEA RDX,[0x18016c]
LEA RSI,[0x1802b0]
MOV EDI,0x0
CALL 0x00110210
JMP 0x0013b5d8
LEA RDX,[0x180176]
LEA RSI,[0x1802b0]
MOV EDI,0x0
CALL 0x00110210
JMP 0x0013b5d8
TEST R13D,R13D
JLE 0x0013b530
TEST RBP,RBP
JZ 0x0013b54d
MOV EDI,0x40
CALL 0x00110b80
MOV RBX,RAX
MOV qword ptr [RAX],0x0
MOV dword ptr [RAX + 0x20],R13D
MOVSXD RDI,R13D
MOV ESI,0x4
CALL 0x00110080
MOV qword ptr [RBX + 0x28],RAX
MOV dword ptr [RBX + 0x10],0x0
LEA EAX,[R13 + -0x1]
LEA RSI,[0x4 + RAX*0x4]
MOV EAX,0x0
MOV ECX,dword ptr [RBP + RAX*0x1]
MOV RDX,qword ptr [RBX + 0x28]
MOV dword ptr [RDX + RAX*0x1],ECX
ADD RAX,0x4
CMP RAX,RSI
JNZ 0x0013b5b2
MOV RDI,qword ptr [R12 + 0x28]
MOV RSI,RBX
CALL 0x00110730
MOV qword ptr [R12 + 0x28],RAX
ADD RSP,0x8
POP RBX
POP RBP
POP R12
POP R13
RET
(translation_unit "void FUN_0013b4b8(long *param_1,int param_2,long param_3)\n\n{\n  int iVar1;\n  long lVar2;\n  undefined8 *puVar3;\n  undefined8 uVar4;\n  \n  if (param_1 == (long *)0x0) {\n    g_return_if_fail_warning(0,"columns_set_cols","cols != NULL");\n  }\n  else {\n    lVar2 = FUN_0013a859();\n    if ((((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&\n       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)) {\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }\n    if (param_2 < 1) {\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }\n    else if (param_3 == 0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_0013b4b8(long *param_1,int param_2,long param_3)\n\n{\n  int iVar1;\n  long lVar2;\n  undefined8 *puVar3;\n  undefined8 uVar4;\n  \n  if (param_1 == (long *)0x0) {\n    g_return_if_fail_warning(0,"columns_set_cols","cols != NULL");\n  }\n  else {\n    lVar2 = FUN_0013a859();\n    if ((((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&\n       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)) {\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }\n    if (param_2 < 1) {\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }\n    else if (param_3 == 0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0013b4b8(long *param_1,int param_2,long param_3)" identifier (parameter_list "(long *param_1,int param_2,long param_3)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  undefined8 *puVar3;\n  undefined8 uVar4;\n  \n  if (param_1 == (long *)0x0) {\n    g_return_if_fail_warning(0,"columns_set_cols","cols != NULL");\n  }\n  else {\n    lVar2 = FUN_0013a859();\n    if ((((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&\n       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)) {\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }\n    if (param_2 < 1) {\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }\n    else if (param_3 == 0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (if_statement "if (param_1 == (long *)0x0) {\n    g_return_if_fail_warning(0,"columns_set_cols","cols != NULL");\n  }\n  else {\n    lVar2 = FUN_0013a859();\n    if ((((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&\n       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)) {\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }\n    if (param_2 < 1) {\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }\n    else if (param_3 == 0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }\n  }" if (parenthesized_expression "(param_1 == (long *)0x0)" ( (binary_expression "param_1 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    g_return_if_fail_warning(0,"columns_set_cols","cols != NULL");\n  }" { (expression_statement "g_return_if_fail_warning(0,"columns_set_cols","cols != NULL");" (call_expression "g_return_if_fail_warning(0,"columns_set_cols","cols != NULL")" identifier (argument_list "(0,"columns_set_cols","cols != NULL")" ( number_literal , (string_literal ""columns_set_cols"" " string_content ") , (string_literal ""cols != NULL"" " string_content ") ))) ;) }) (else_clause "else {\n    lVar2 = FUN_0013a859();\n    if ((((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&\n       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)) {\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }\n    if (param_2 < 1) {\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }\n    else if (param_3 == 0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }\n  }" else (compound_statement "{\n    lVar2 = FUN_0013a859();\n    if ((((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&\n       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)) {\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }\n    if (param_2 < 1) {\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }\n    else if (param_3 == 0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }\n  }" { (expression_statement "lVar2 = FUN_0013a859();" (assignment_expression "lVar2 = FUN_0013a859()" identifier = (call_expression "FUN_0013a859()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&\n       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)) {\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }" if (parenthesized_expression "((((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&\n       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0))" ( (binary_expression "(((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&\n       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)" (parenthesized_expression "(((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2))" ( (binary_expression "((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)" (parenthesized_expression "((long *)*param_1 == (long *)0x0)" ( (binary_expression "(long *)*param_1 == (long *)0x0" (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*(long *)*param_1 != lVar2)" ( (binary_expression "*(long *)*param_1 != lVar2" (pointer_expression "*(long *)*param_1" * (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) != identifier) ))) )) && (parenthesized_expression "(iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)" ( (comma_expression "iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0" (assignment_expression "iVar1 = g_type_check_instance_is_a(param_1,lVar2)" identifier = (call_expression "g_type_check_instance_is_a(param_1,lVar2)" identifier (argument_list "(param_1,lVar2)" ( identifier , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }" { (expression_statement "g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");" (call_expression "g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)")" identifier (argument_list "(0,"columns_set_cols","IS_COLUMNS(cols)")" ( number_literal , (string_literal ""columns_set_cols"" " string_content ") , (string_literal ""IS_COLUMNS(cols)"" " string_content ") ))) ;) (return_statement "return;" return ;) })) (if_statement "if (param_2 < 1) {\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }\n    else if (param_3 == 0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }" if (parenthesized_expression "(param_2 < 1)" ( (binary_expression "param_2 < 1" identifier < number_literal) )) (compound_statement "{\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }" { (expression_statement "g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");" (call_expression "g_return_if_fail_warning(0,"columns_set_cols","ncols > 0")" identifier (argument_list "(0,"columns_set_cols","ncols > 0")" ( number_literal , (string_literal ""columns_set_cols"" " string_content ") , (string_literal ""ncols > 0"" " string_content ") ))) ;) }) (else_clause "else if (param_3 == 0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }" else (if_statement "if (param_3 == 0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }" { (expression_statement "g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");" (call_expression "g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL")" identifier (argument_list "(0,"columns_set_cols","percentages != NULL")" ( number_literal , (string_literal ""columns_set_cols"" " string_content ") , (string_literal ""percentages != NULL"" " string_content ") ))) ;) }) (else_clause "else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }" else (compound_statement "{\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }" { (expression_statement "puVar3 = (undefined8 *)g_malloc(0x40);" (assignment_expression "puVar3 = (undefined8 *)g_malloc(0x40)" identifier = (cast_expression "(undefined8 *)g_malloc(0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "g_malloc(0x40)" identifier (argument_list "(0x40)" ( number_literal ))))) ;) (expression_statement "*puVar3 = 0;" (assignment_expression "*puVar3 = 0" (pointer_expression "*puVar3" * identifier) = number_literal) ;) (expression_statement "*(int *)(puVar3 + 4) = param_2;" (assignment_expression "*(int *)(puVar3 + 4) = param_2" (pointer_expression "*(int *)(puVar3 + 4)" * (cast_expression "(int *)(puVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 4)" ( (binary_expression "puVar3 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = g_malloc_n((long)param_2,4);" (assignment_expression "uVar4 = g_malloc_n((long)param_2,4)" identifier = (call_expression "g_malloc_n((long)param_2,4)" identifier (argument_list "((long)param_2,4)" ( (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , number_literal )))) ;) (expression_statement "puVar3[5] = uVar4;" (assignment_expression "puVar3[5] = uVar4" (subscript_expression "puVar3[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar3 + 2) = 0;" (assignment_expression "*(undefined4 *)(puVar3 + 2) = 0" (pointer_expression "*(undefined4 *)(puVar3 + 2)" * (cast_expression "(undefined4 *)(puVar3 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 2)" ( (binary_expression "puVar3 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "lVar2 = 0;" (assignment_expression "lVar2 = 0" identifier = number_literal) ;) (do_statement "do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);" do (compound_statement "{\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      }" { (expression_statement "*(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);" (assignment_expression "*(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2)" (pointer_expression "*(undefined4 *)(puVar3[5] + lVar2)" * (cast_expression "(undefined4 *)(puVar3[5] + lVar2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3[5] + lVar2)" ( (binary_expression "puVar3[5] + lVar2" (subscript_expression "puVar3[5]" identifier [ number_literal ]) + identifier) )))) = (pointer_expression "*(undefined4 *)(param_3 + lVar2)" * (cast_expression "(undefined4 *)(param_3 + lVar2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + lVar2)" ( (binary_expression "param_3 + lVar2" identifier + identifier) ))))) ;) (expression_statement "lVar2 = lVar2 + 4;" (assignment_expression "lVar2 = lVar2 + 4" identifier = (binary_expression "lVar2 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar2 != (ulong)(param_2 - 1) * 4 + 4)" ( (binary_expression "lVar2 != (ulong)(param_2 - 1) * 4 + 4" identifier != (binary_expression "(ulong)(param_2 - 1) * 4 + 4" (binary_expression "(ulong)(param_2 - 1) * 4" (call_expression "(ulong)(param_2 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(param_2 - 1)" ( (binary_expression "param_2 - 1" identifier - number_literal) ))) * number_literal) + number_literal)) )) ;) (expression_statement "lVar2 = g_list_append(param_1[5],puVar3);" (assignment_expression "lVar2 = g_list_append(param_1[5],puVar3)" identifier = (call_expression "g_list_append(param_1[5],puVar3)" identifier (argument_list "(param_1[5],puVar3)" ( (subscript_expression "param_1[5]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "param_1[5] = lVar2;" (assignment_expression "param_1[5] = lVar2" (subscript_expression "param_1[5]" identifier [ number_literal ]) = identifier) ;) }))))) }))) (return_statement "return;" return ;) })))
(translation_unit "void columns_set_cols(Columns *cols,gint ncols,gint *percentages)\n\n{\n  GTypeClass *pGVar1;\n  int iVar2;\n  GType GVar3;\n  undefined8 *puVar4;\n  undefined8 uVar5;\n  long lVar6;\n  GList *pGVar7;\n  \n  if (cols == (Columns *)0x0) {\n    g_return_if_fail_warning(0,"columns_set_cols","cols != NULL");\n  }\n  else {\n    GVar3 = columns_get_type();\n    pGVar1 = (cols->container).widget.parent_instance.g_type_instance.g_class;\n    if (((pGVar1 == (GTypeClass *)0x0) || (pGVar1->g_type != GVar3)) &&\n       (iVar2 = g_type_check_instance_is_a(cols,GVar3), iVar2 == 0)) {\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }\n    if (ncols < 1) {\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }\n    else if (percentages == (gint *)0x0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar4 = (undefined8 *)g_malloc(0x40);\n      *puVar4 = 0;\n      *(gint *)(puVar4 + 4) = ncols;\n      uVar5 = g_malloc_n((long)ncols,4);\n      puVar4[5] = uVar5;\n      *(undefined4 *)(puVar4 + 2) = 0;\n      lVar6 = 0;\n      do {\n        *(undefined4 *)(puVar4[5] + lVar6) = *(undefined4 *)((long)percentages + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != (ulong)(ncols - 1) * 4 + 4);\n      pGVar7 = (GList *)g_list_append(cols->children,puVar4);\n      cols->children = pGVar7;\n    }\n  }\n  return;\n}\n\n" (function_definition "void columns_set_cols(Columns *cols,gint ncols,gint *percentages)\n\n{\n  GTypeClass *pGVar1;\n  int iVar2;\n  GType GVar3;\n  undefined8 *puVar4;\n  undefined8 uVar5;\n  long lVar6;\n  GList *pGVar7;\n  \n  if (cols == (Columns *)0x0) {\n    g_return_if_fail_warning(0,"columns_set_cols","cols != NULL");\n  }\n  else {\n    GVar3 = columns_get_type();\n    pGVar1 = (cols->container).widget.parent_instance.g_type_instance.g_class;\n    if (((pGVar1 == (GTypeClass *)0x0) || (pGVar1->g_type != GVar3)) &&\n       (iVar2 = g_type_check_instance_is_a(cols,GVar3), iVar2 == 0)) {\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }\n    if (ncols < 1) {\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }\n    else if (percentages == (gint *)0x0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar4 = (undefined8 *)g_malloc(0x40);\n      *puVar4 = 0;\n      *(gint *)(puVar4 + 4) = ncols;\n      uVar5 = g_malloc_n((long)ncols,4);\n      puVar4[5] = uVar5;\n      *(undefined4 *)(puVar4 + 2) = 0;\n      lVar6 = 0;\n      do {\n        *(undefined4 *)(puVar4[5] + lVar6) = *(undefined4 *)((long)percentages + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != (ulong)(ncols - 1) * 4 + 4);\n      pGVar7 = (GList *)g_list_append(cols->children,puVar4);\n      cols->children = pGVar7;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "columns_set_cols(Columns *cols,gint ncols,gint *percentages)" identifier (parameter_list "(Columns *cols,gint ncols,gint *percentages)" ( (parameter_declaration "Columns *cols" type_identifier (pointer_declarator "*cols" * identifier)) , (parameter_declaration "gint ncols" type_identifier identifier) , (parameter_declaration "gint *percentages" type_identifier (pointer_declarator "*percentages" * identifier)) ))) (compound_statement "{\n  GTypeClass *pGVar1;\n  int iVar2;\n  GType GVar3;\n  undefined8 *puVar4;\n  undefined8 uVar5;\n  long lVar6;\n  GList *pGVar7;\n  \n  if (cols == (Columns *)0x0) {\n    g_return_if_fail_warning(0,"columns_set_cols","cols != NULL");\n  }\n  else {\n    GVar3 = columns_get_type();\n    pGVar1 = (cols->container).widget.parent_instance.g_type_instance.g_class;\n    if (((pGVar1 == (GTypeClass *)0x0) || (pGVar1->g_type != GVar3)) &&\n       (iVar2 = g_type_check_instance_is_a(cols,GVar3), iVar2 == 0)) {\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }\n    if (ncols < 1) {\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }\n    else if (percentages == (gint *)0x0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar4 = (undefined8 *)g_malloc(0x40);\n      *puVar4 = 0;\n      *(gint *)(puVar4 + 4) = ncols;\n      uVar5 = g_malloc_n((long)ncols,4);\n      puVar4[5] = uVar5;\n      *(undefined4 *)(puVar4 + 2) = 0;\n      lVar6 = 0;\n      do {\n        *(undefined4 *)(puVar4[5] + lVar6) = *(undefined4 *)((long)percentages + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != (ulong)(ncols - 1) * 4 + 4);\n      pGVar7 = (GList *)g_list_append(cols->children,puVar4);\n      cols->children = pGVar7;\n    }\n  }\n  return;\n}" { (declaration "GTypeClass *pGVar1;" type_identifier (pointer_declarator "*pGVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "GType GVar3;" type_identifier identifier ;) (declaration "undefined8 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "GList *pGVar7;" type_identifier (pointer_declarator "*pGVar7" * identifier) ;) (if_statement "if (cols == (Columns *)0x0) {\n    g_return_if_fail_warning(0,"columns_set_cols","cols != NULL");\n  }\n  else {\n    GVar3 = columns_get_type();\n    pGVar1 = (cols->container).widget.parent_instance.g_type_instance.g_class;\n    if (((pGVar1 == (GTypeClass *)0x0) || (pGVar1->g_type != GVar3)) &&\n       (iVar2 = g_type_check_instance_is_a(cols,GVar3), iVar2 == 0)) {\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }\n    if (ncols < 1) {\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }\n    else if (percentages == (gint *)0x0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar4 = (undefined8 *)g_malloc(0x40);\n      *puVar4 = 0;\n      *(gint *)(puVar4 + 4) = ncols;\n      uVar5 = g_malloc_n((long)ncols,4);\n      puVar4[5] = uVar5;\n      *(undefined4 *)(puVar4 + 2) = 0;\n      lVar6 = 0;\n      do {\n        *(undefined4 *)(puVar4[5] + lVar6) = *(undefined4 *)((long)percentages + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != (ulong)(ncols - 1) * 4 + 4);\n      pGVar7 = (GList *)g_list_append(cols->children,puVar4);\n      cols->children = pGVar7;\n    }\n  }" if (parenthesized_expression "(cols == (Columns *)0x0)" ( (binary_expression "cols == (Columns *)0x0" identifier == (cast_expression "(Columns *)0x0" ( (type_descriptor "Columns *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    g_return_if_fail_warning(0,"columns_set_cols","cols != NULL");\n  }" { (expression_statement "g_return_if_fail_warning(0,"columns_set_cols","cols != NULL");" (call_expression "g_return_if_fail_warning(0,"columns_set_cols","cols != NULL")" identifier (argument_list "(0,"columns_set_cols","cols != NULL")" ( number_literal , (string_literal ""columns_set_cols"" " string_content ") , (string_literal ""cols != NULL"" " string_content ") ))) ;) }) (else_clause "else {\n    GVar3 = columns_get_type();\n    pGVar1 = (cols->container).widget.parent_instance.g_type_instance.g_class;\n    if (((pGVar1 == (GTypeClass *)0x0) || (pGVar1->g_type != GVar3)) &&\n       (iVar2 = g_type_check_instance_is_a(cols,GVar3), iVar2 == 0)) {\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }\n    if (ncols < 1) {\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }\n    else if (percentages == (gint *)0x0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar4 = (undefined8 *)g_malloc(0x40);\n      *puVar4 = 0;\n      *(gint *)(puVar4 + 4) = ncols;\n      uVar5 = g_malloc_n((long)ncols,4);\n      puVar4[5] = uVar5;\n      *(undefined4 *)(puVar4 + 2) = 0;\n      lVar6 = 0;\n      do {\n        *(undefined4 *)(puVar4[5] + lVar6) = *(undefined4 *)((long)percentages + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != (ulong)(ncols - 1) * 4 + 4);\n      pGVar7 = (GList *)g_list_append(cols->children,puVar4);\n      cols->children = pGVar7;\n    }\n  }" else (compound_statement "{\n    GVar3 = columns_get_type();\n    pGVar1 = (cols->container).widget.parent_instance.g_type_instance.g_class;\n    if (((pGVar1 == (GTypeClass *)0x0) || (pGVar1->g_type != GVar3)) &&\n       (iVar2 = g_type_check_instance_is_a(cols,GVar3), iVar2 == 0)) {\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }\n    if (ncols < 1) {\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }\n    else if (percentages == (gint *)0x0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar4 = (undefined8 *)g_malloc(0x40);\n      *puVar4 = 0;\n      *(gint *)(puVar4 + 4) = ncols;\n      uVar5 = g_malloc_n((long)ncols,4);\n      puVar4[5] = uVar5;\n      *(undefined4 *)(puVar4 + 2) = 0;\n      lVar6 = 0;\n      do {\n        *(undefined4 *)(puVar4[5] + lVar6) = *(undefined4 *)((long)percentages + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != (ulong)(ncols - 1) * 4 + 4);\n      pGVar7 = (GList *)g_list_append(cols->children,puVar4);\n      cols->children = pGVar7;\n    }\n  }" { (expression_statement "GVar3 = columns_get_type();" (assignment_expression "GVar3 = columns_get_type()" identifier = (call_expression "columns_get_type()" identifier (argument_list "()" ( )))) ;) (expression_statement "pGVar1 = (cols->container).widget.parent_instance.g_type_instance.g_class;" (assignment_expression "pGVar1 = (cols->container).widget.parent_instance.g_type_instance.g_class" identifier = (field_expression "(cols->container).widget.parent_instance.g_type_instance.g_class" (field_expression "(cols->container).widget.parent_instance.g_type_instance" (field_expression "(cols->container).widget.parent_instance" (field_expression "(cols->container).widget" (parenthesized_expression "(cols->container)" ( (field_expression "cols->container" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (((pGVar1 == (GTypeClass *)0x0) || (pGVar1->g_type != GVar3)) &&\n       (iVar2 = g_type_check_instance_is_a(cols,GVar3), iVar2 == 0)) {\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }" if (parenthesized_expression "(((pGVar1 == (GTypeClass *)0x0) || (pGVar1->g_type != GVar3)) &&\n       (iVar2 = g_type_check_instance_is_a(cols,GVar3), iVar2 == 0))" ( (binary_expression "((pGVar1 == (GTypeClass *)0x0) || (pGVar1->g_type != GVar3)) &&\n       (iVar2 = g_type_check_instance_is_a(cols,GVar3), iVar2 == 0)" (parenthesized_expression "((pGVar1 == (GTypeClass *)0x0) || (pGVar1->g_type != GVar3))" ( (binary_expression "(pGVar1 == (GTypeClass *)0x0) || (pGVar1->g_type != GVar3)" (parenthesized_expression "(pGVar1 == (GTypeClass *)0x0)" ( (binary_expression "pGVar1 == (GTypeClass *)0x0" identifier == (cast_expression "(GTypeClass *)0x0" ( (type_descriptor "GTypeClass *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pGVar1->g_type != GVar3)" ( (binary_expression "pGVar1->g_type != GVar3" (field_expression "pGVar1->g_type" identifier -> field_identifier) != identifier) ))) )) && (parenthesized_expression "(iVar2 = g_type_check_instance_is_a(cols,GVar3), iVar2 == 0)" ( (comma_expression "iVar2 = g_type_check_instance_is_a(cols,GVar3), iVar2 == 0" (assignment_expression "iVar2 = g_type_check_instance_is_a(cols,GVar3)" identifier = (call_expression "g_type_check_instance_is_a(cols,GVar3)" identifier (argument_list "(cols,GVar3)" ( identifier , identifier )))) , (binary_expression "iVar2 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }" { (expression_statement "g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");" (call_expression "g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)")" identifier (argument_list "(0,"columns_set_cols","IS_COLUMNS(cols)")" ( number_literal , (string_literal ""columns_set_cols"" " string_content ") , (string_literal ""IS_COLUMNS(cols)"" " string_content ") ))) ;) (return_statement "return;" return ;) })) (if_statement "if (ncols < 1) {\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }\n    else if (percentages == (gint *)0x0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar4 = (undefined8 *)g_malloc(0x40);\n      *puVar4 = 0;\n      *(gint *)(puVar4 + 4) = ncols;\n      uVar5 = g_malloc_n((long)ncols,4);\n      puVar4[5] = uVar5;\n      *(undefined4 *)(puVar4 + 2) = 0;\n      lVar6 = 0;\n      do {\n        *(undefined4 *)(puVar4[5] + lVar6) = *(undefined4 *)((long)percentages + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != (ulong)(ncols - 1) * 4 + 4);\n      pGVar7 = (GList *)g_list_append(cols->children,puVar4);\n      cols->children = pGVar7;\n    }" if (parenthesized_expression "(ncols < 1)" ( (binary_expression "ncols < 1" identifier < number_literal) )) (compound_statement "{\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }" { (expression_statement "g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");" (call_expression "g_return_if_fail_warning(0,"columns_set_cols","ncols > 0")" identifier (argument_list "(0,"columns_set_cols","ncols > 0")" ( number_literal , (string_literal ""columns_set_cols"" " string_content ") , (string_literal ""ncols > 0"" " string_content ") ))) ;) }) (else_clause "else if (percentages == (gint *)0x0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar4 = (undefined8 *)g_malloc(0x40);\n      *puVar4 = 0;\n      *(gint *)(puVar4 + 4) = ncols;\n      uVar5 = g_malloc_n((long)ncols,4);\n      puVar4[5] = uVar5;\n      *(undefined4 *)(puVar4 + 2) = 0;\n      lVar6 = 0;\n      do {\n        *(undefined4 *)(puVar4[5] + lVar6) = *(undefined4 *)((long)percentages + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != (ulong)(ncols - 1) * 4 + 4);\n      pGVar7 = (GList *)g_list_append(cols->children,puVar4);\n      cols->children = pGVar7;\n    }" else (if_statement "if (percentages == (gint *)0x0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar4 = (undefined8 *)g_malloc(0x40);\n      *puVar4 = 0;\n      *(gint *)(puVar4 + 4) = ncols;\n      uVar5 = g_malloc_n((long)ncols,4);\n      puVar4[5] = uVar5;\n      *(undefined4 *)(puVar4 + 2) = 0;\n      lVar6 = 0;\n      do {\n        *(undefined4 *)(puVar4[5] + lVar6) = *(undefined4 *)((long)percentages + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != (ulong)(ncols - 1) * 4 + 4);\n      pGVar7 = (GList *)g_list_append(cols->children,puVar4);\n      cols->children = pGVar7;\n    }" if (parenthesized_expression "(percentages == (gint *)0x0)" ( (binary_expression "percentages == (gint *)0x0" identifier == (cast_expression "(gint *)0x0" ( (type_descriptor "gint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }" { (expression_statement "g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");" (call_expression "g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL")" identifier (argument_list "(0,"columns_set_cols","percentages != NULL")" ( number_literal , (string_literal ""columns_set_cols"" " string_content ") , (string_literal ""percentages != NULL"" " string_content ") ))) ;) }) (else_clause "else {\n      puVar4 = (undefined8 *)g_malloc(0x40);\n      *puVar4 = 0;\n      *(gint *)(puVar4 + 4) = ncols;\n      uVar5 = g_malloc_n((long)ncols,4);\n      puVar4[5] = uVar5;\n      *(undefined4 *)(puVar4 + 2) = 0;\n      lVar6 = 0;\n      do {\n        *(undefined4 *)(puVar4[5] + lVar6) = *(undefined4 *)((long)percentages + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != (ulong)(ncols - 1) * 4 + 4);\n      pGVar7 = (GList *)g_list_append(cols->children,puVar4);\n      cols->children = pGVar7;\n    }" else (compound_statement "{\n      puVar4 = (undefined8 *)g_malloc(0x40);\n      *puVar4 = 0;\n      *(gint *)(puVar4 + 4) = ncols;\n      uVar5 = g_malloc_n((long)ncols,4);\n      puVar4[5] = uVar5;\n      *(undefined4 *)(puVar4 + 2) = 0;\n      lVar6 = 0;\n      do {\n        *(undefined4 *)(puVar4[5] + lVar6) = *(undefined4 *)((long)percentages + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != (ulong)(ncols - 1) * 4 + 4);\n      pGVar7 = (GList *)g_list_append(cols->children,puVar4);\n      cols->children = pGVar7;\n    }" { (expression_statement "puVar4 = (undefined8 *)g_malloc(0x40);" (assignment_expression "puVar4 = (undefined8 *)g_malloc(0x40)" identifier = (cast_expression "(undefined8 *)g_malloc(0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "g_malloc(0x40)" identifier (argument_list "(0x40)" ( number_literal ))))) ;) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "*(gint *)(puVar4 + 4) = ncols;" (assignment_expression "*(gint *)(puVar4 + 4) = ncols" (pointer_expression "*(gint *)(puVar4 + 4)" * (cast_expression "(gint *)(puVar4 + 4)" ( (type_descriptor "gint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 4)" ( (binary_expression "puVar4 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar5 = g_malloc_n((long)ncols,4);" (assignment_expression "uVar5 = g_malloc_n((long)ncols,4)" identifier = (call_expression "g_malloc_n((long)ncols,4)" identifier (argument_list "((long)ncols,4)" ( (cast_expression "(long)ncols" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , number_literal )))) ;) (expression_statement "puVar4[5] = uVar5;" (assignment_expression "puVar4[5] = uVar5" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar4 + 2) = 0;" (assignment_expression "*(undefined4 *)(puVar4 + 2) = 0" (pointer_expression "*(undefined4 *)(puVar4 + 2)" * (cast_expression "(undefined4 *)(puVar4 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "lVar6 = 0;" (assignment_expression "lVar6 = 0" identifier = number_literal) ;) (do_statement "do {\n        *(undefined4 *)(puVar4[5] + lVar6) = *(undefined4 *)((long)percentages + lVar6);\n        lVar6 = lVar6 + 4;\n      } while (lVar6 != (ulong)(ncols - 1) * 4 + 4);" do (compound_statement "{\n        *(undefined4 *)(puVar4[5] + lVar6) = *(undefined4 *)((long)percentages + lVar6);\n        lVar6 = lVar6 + 4;\n      }" { (expression_statement "*(undefined4 *)(puVar4[5] + lVar6) = *(undefined4 *)((long)percentages + lVar6);" (assignment_expression "*(undefined4 *)(puVar4[5] + lVar6) = *(undefined4 *)((long)percentages + lVar6)" (pointer_expression "*(undefined4 *)(puVar4[5] + lVar6)" * (cast_expression "(undefined4 *)(puVar4[5] + lVar6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4[5] + lVar6)" ( (binary_expression "puVar4[5] + lVar6" (subscript_expression "puVar4[5]" identifier [ number_literal ]) + identifier) )))) = (pointer_expression "*(undefined4 *)((long)percentages + lVar6)" * (cast_expression "(undefined4 *)((long)percentages + lVar6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)percentages + lVar6)" ( (binary_expression "(long)percentages + lVar6" (cast_expression "(long)percentages" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))))) ;) (expression_statement "lVar6 = lVar6 + 4;" (assignment_expression "lVar6 = lVar6 + 4" identifier = (binary_expression "lVar6 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar6 != (ulong)(ncols - 1) * 4 + 4)" ( (binary_expression "lVar6 != (ulong)(ncols - 1) * 4 + 4" identifier != (binary_expression "(ulong)(ncols - 1) * 4 + 4" (binary_expression "(ulong)(ncols - 1) * 4" (call_expression "(ulong)(ncols - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(ncols - 1)" ( (binary_expression "ncols - 1" identifier - number_literal) ))) * number_literal) + number_literal)) )) ;) (expression_statement "pGVar7 = (GList *)g_list_append(cols->children,puVar4);" (assignment_expression "pGVar7 = (GList *)g_list_append(cols->children,puVar4)" identifier = (cast_expression "(GList *)g_list_append(cols->children,puVar4)" ( (type_descriptor "GList *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "g_list_append(cols->children,puVar4)" identifier (argument_list "(cols->children,puVar4)" ( (field_expression "cols->children" identifier -> field_identifier) , identifier ))))) ;) (expression_statement "cols->children = pGVar7;" (assignment_expression "cols->children = pGVar7" (field_expression "cols->children" identifier -> field_identifier) = identifier) ;) }))))) }))) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0013b4b8(long *param_1,int param_2,long param_3)\n\n{\n  int iVar1;\n  long lVar2;\n  undefined8 *puVar3;\n  undefined8 uVar4;\n  \n  if (param_1 == (long *)0x0) {\n    g_return_if_fail_warning(0,"columns_set_cols","cols != NULL");\n  }\n  else {\n    lVar2 = FUN_0013a859();\n    if ((((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&\n       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)) {\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }\n    if (param_2 < 1) {\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }\n    else if (param_3 == 0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_0013b4b8(long *param_1,int param_2,long param_3)\n\n{\n  int iVar1;\n  long lVar2;\n  undefined8 *puVar3;\n  undefined8 uVar4;\n  \n  if (param_1 == (long *)0x0) {\n    g_return_if_fail_warning(0,"columns_set_cols","cols != NULL");\n  }\n  else {\n    lVar2 = FUN_0013a859();\n    if ((((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&\n       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)) {\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }\n    if (param_2 < 1) {\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }\n    else if (param_3 == 0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0013b4b8(long *param_1,int param_2,long param_3)" identifier (parameter_list "(long *param_1,int param_2,long param_3)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  undefined8 *puVar3;\n  undefined8 uVar4;\n  \n  if (param_1 == (long *)0x0) {\n    g_return_if_fail_warning(0,"columns_set_cols","cols != NULL");\n  }\n  else {\n    lVar2 = FUN_0013a859();\n    if ((((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&\n       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)) {\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }\n    if (param_2 < 1) {\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }\n    else if (param_3 == 0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (if_statement "if (param_1 == (long *)0x0) {\n    g_return_if_fail_warning(0,"columns_set_cols","cols != NULL");\n  }\n  else {\n    lVar2 = FUN_0013a859();\n    if ((((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&\n       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)) {\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }\n    if (param_2 < 1) {\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }\n    else if (param_3 == 0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }\n  }" if (parenthesized_expression "(param_1 == (long *)0x0)" ( (binary_expression "param_1 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    g_return_if_fail_warning(0,"columns_set_cols","cols != NULL");\n  }" { (expression_statement "g_return_if_fail_warning(0,"columns_set_cols","cols != NULL");" (call_expression "g_return_if_fail_warning(0,"columns_set_cols","cols != NULL")" identifier (argument_list "(0,"columns_set_cols","cols != NULL")" ( number_literal , (string_literal ""columns_set_cols"" " string_content ") , (string_literal ""cols != NULL"" " string_content ") ))) ;) }) (else_clause "else {\n    lVar2 = FUN_0013a859();\n    if ((((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&\n       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)) {\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }\n    if (param_2 < 1) {\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }\n    else if (param_3 == 0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }\n  }" else (compound_statement "{\n    lVar2 = FUN_0013a859();\n    if ((((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&\n       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)) {\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }\n    if (param_2 < 1) {\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }\n    else if (param_3 == 0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }\n  }" { (expression_statement "lVar2 = FUN_0013a859();" (assignment_expression "lVar2 = FUN_0013a859()" identifier = (call_expression "FUN_0013a859()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&\n       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)) {\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }" if (parenthesized_expression "((((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&\n       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0))" ( (binary_expression "(((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&\n       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)" (parenthesized_expression "(((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2))" ( (binary_expression "((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)" (parenthesized_expression "((long *)*param_1 == (long *)0x0)" ( (binary_expression "(long *)*param_1 == (long *)0x0" (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*(long *)*param_1 != lVar2)" ( (binary_expression "*(long *)*param_1 != lVar2" (pointer_expression "*(long *)*param_1" * (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) != identifier) ))) )) && (parenthesized_expression "(iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)" ( (comma_expression "iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0" (assignment_expression "iVar1 = g_type_check_instance_is_a(param_1,lVar2)" identifier = (call_expression "g_type_check_instance_is_a(param_1,lVar2)" identifier (argument_list "(param_1,lVar2)" ( identifier , identifier )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }" { (expression_statement "g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");" (call_expression "g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)")" identifier (argument_list "(0,"columns_set_cols","IS_COLUMNS(cols)")" ( number_literal , (string_literal ""columns_set_cols"" " string_content ") , (string_literal ""IS_COLUMNS(cols)"" " string_content ") ))) ;) (return_statement "return;" return ;) })) (if_statement "if (param_2 < 1) {\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }\n    else if (param_3 == 0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }" if (parenthesized_expression "(param_2 < 1)" ( (binary_expression "param_2 < 1" identifier < number_literal) )) (compound_statement "{\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }" { (expression_statement "g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");" (call_expression "g_return_if_fail_warning(0,"columns_set_cols","ncols > 0")" identifier (argument_list "(0,"columns_set_cols","ncols > 0")" ( number_literal , (string_literal ""columns_set_cols"" " string_content ") , (string_literal ""ncols > 0"" " string_content ") ))) ;) }) (else_clause "else if (param_3 == 0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }" else (if_statement "if (param_3 == 0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }" { (expression_statement "g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");" (call_expression "g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL")" identifier (argument_list "(0,"columns_set_cols","percentages != NULL")" ( number_literal , (string_literal ""columns_set_cols"" " string_content ") , (string_literal ""percentages != NULL"" " string_content ") ))) ;) }) (else_clause "else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }" else (compound_statement "{\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }" { (expression_statement "puVar3 = (undefined8 *)g_malloc(0x40);" (assignment_expression "puVar3 = (undefined8 *)g_malloc(0x40)" identifier = (cast_expression "(undefined8 *)g_malloc(0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "g_malloc(0x40)" identifier (argument_list "(0x40)" ( number_literal ))))) ;) (expression_statement "*puVar3 = 0;" (assignment_expression "*puVar3 = 0" (pointer_expression "*puVar3" * identifier) = number_literal) ;) (expression_statement "*(int *)(puVar3 + 4) = param_2;" (assignment_expression "*(int *)(puVar3 + 4) = param_2" (pointer_expression "*(int *)(puVar3 + 4)" * (cast_expression "(int *)(puVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 4)" ( (binary_expression "puVar3 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = g_malloc_n((long)param_2,4);" (assignment_expression "uVar4 = g_malloc_n((long)param_2,4)" identifier = (call_expression "g_malloc_n((long)param_2,4)" identifier (argument_list "((long)param_2,4)" ( (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , number_literal )))) ;) (expression_statement "puVar3[5] = uVar4;" (assignment_expression "puVar3[5] = uVar4" (subscript_expression "puVar3[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar3 + 2) = 0;" (assignment_expression "*(undefined4 *)(puVar3 + 2) = 0" (pointer_expression "*(undefined4 *)(puVar3 + 2)" * (cast_expression "(undefined4 *)(puVar3 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 2)" ( (binary_expression "puVar3 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "lVar2 = 0;" (assignment_expression "lVar2 = 0" identifier = number_literal) ;) (do_statement "do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);" do (compound_statement "{\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      }" { (expression_statement "*(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);" (assignment_expression "*(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2)" (pointer_expression "*(undefined4 *)(puVar3[5] + lVar2)" * (cast_expression "(undefined4 *)(puVar3[5] + lVar2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3[5] + lVar2)" ( (binary_expression "puVar3[5] + lVar2" (subscript_expression "puVar3[5]" identifier [ number_literal ]) + identifier) )))) = (pointer_expression "*(undefined4 *)(param_3 + lVar2)" * (cast_expression "(undefined4 *)(param_3 + lVar2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + lVar2)" ( (binary_expression "param_3 + lVar2" identifier + identifier) ))))) ;) (expression_statement "lVar2 = lVar2 + 4;" (assignment_expression "lVar2 = lVar2 + 4" identifier = (binary_expression "lVar2 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar2 != (ulong)(param_2 - 1) * 4 + 4)" ( (binary_expression "lVar2 != (ulong)(param_2 - 1) * 4 + 4" identifier != (binary_expression "(ulong)(param_2 - 1) * 4 + 4" (binary_expression "(ulong)(param_2 - 1) * 4" (call_expression "(ulong)(param_2 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(param_2 - 1)" ( (binary_expression "param_2 - 1" identifier - number_literal) ))) * number_literal) + number_literal)) )) ;) (expression_statement "lVar2 = g_list_append(param_1[5],puVar3);" (assignment_expression "lVar2 = g_list_append(param_1[5],puVar3)" identifier = (call_expression "g_list_append(param_1[5],puVar3)" identifier (argument_list "(param_1[5],puVar3)" ( (subscript_expression "param_1[5]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "param_1[5] = lVar2;" (assignment_expression "param_1[5] = lVar2" (subscript_expression "param_1[5]" identifier [ number_literal ]) = identifier) ;) }))))) }))) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , (string_literal " string_content ") ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) != IDENT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , (string_literal " string_content ") ))) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , (string_literal " string_content ") ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , (string_literal " string_content ") ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) * LIT) + LIT)) )) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))))) }))) (return_statement return ;) })))
(function_definition "void FUN_0013b4b8(long *param_1,int param_2,long param_3)\n\n{\n  int iVar1;\n  long lVar2;\n  undefined8 *puVar3;\n  undefined8 uVar4;\n  \n  if (param_1 == (long *)0x0) {\n    g_return_if_fail_warning(0,"columns_set_cols","cols != NULL");\n  }\n  else {\n    lVar2 = FUN_0013a859();\n    if ((((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&\n       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)) {\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }\n    if (param_2 < 1) {\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }\n    else if (param_3 == 0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0013b4b8(long *param_1,int param_2,long param_3)" (identifier "FUN_0013b4b8") (parameter_list "(long *param_1,int param_2,long param_3)" (( "(") (parameter_declaration "long *param_1" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "long param_3" (sized_type_specifier "long" (long "long")) (identifier "param_3")) () ")"))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  undefined8 *puVar3;\n  undefined8 uVar4;\n  \n  if (param_1 == (long *)0x0) {\n    g_return_if_fail_warning(0,"columns_set_cols","cols != NULL");\n  }\n  else {\n    lVar2 = FUN_0013a859();\n    if ((((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&\n       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)) {\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }\n    if (param_2 < 1) {\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }\n    else if (param_3 == 0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "undefined8 *puVar3;" (type_identifier "undefined8") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (if_statement "if (param_1 == (long *)0x0) {\n    g_return_if_fail_warning(0,"columns_set_cols","cols != NULL");\n  }\n  else {\n    lVar2 = FUN_0013a859();\n    if ((((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&\n       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)) {\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }\n    if (param_2 < 1) {\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }\n    else if (param_3 == 0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }\n  }" (if "if") (parenthesized_expression "(param_1 == (long *)0x0)" (( "(") (binary_expression "param_1 == (long *)0x0" (identifier "param_1") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    g_return_if_fail_warning(0,"columns_set_cols","cols != NULL");\n  }" ({ "{") (expression_statement "g_return_if_fail_warning(0,"columns_set_cols","cols != NULL");" (call_expression "g_return_if_fail_warning(0,"columns_set_cols","cols != NULL")" (identifier "g_return_if_fail_warning") (argument_list "(0,"columns_set_cols","cols != NULL")" (( "(") (number_literal "0") (, ",") (string_literal ""columns_set_cols"" (" """) (string_content "columns_set_cols") (" """)) (, ",") (string_literal ""cols != NULL"" (" """) (string_content "cols != NULL") (" """)) () ")"))) (; ";")) (} "}")) (else_clause "else {\n    lVar2 = FUN_0013a859();\n    if ((((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&\n       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)) {\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }\n    if (param_2 < 1) {\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }\n    else if (param_3 == 0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }\n  }" (else "else") (compound_statement "{\n    lVar2 = FUN_0013a859();\n    if ((((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&\n       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)) {\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }\n    if (param_2 < 1) {\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }\n    else if (param_3 == 0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }\n  }" ({ "{") (expression_statement "lVar2 = FUN_0013a859();" (assignment_expression "lVar2 = FUN_0013a859()" (identifier "lVar2") (= "=") (call_expression "FUN_0013a859()" (identifier "FUN_0013a859") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&\n       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)) {\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }" (if "if") (parenthesized_expression "((((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&\n       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0))" (( "(") (binary_expression "(((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&\n       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)" (parenthesized_expression "(((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2))" (( "(") (binary_expression "((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)" (parenthesized_expression "((long *)*param_1 == (long *)0x0)" (( "(") (binary_expression "(long *)*param_1 == (long *)0x0" (cast_expression "(long *)*param_1" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(*(long *)*param_1 != lVar2)" (( "(") (binary_expression "*(long *)*param_1 != lVar2" (pointer_expression "*(long *)*param_1" (* "*") (cast_expression "(long *)*param_1" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (!= "!=") (identifier "lVar2")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)" (( "(") (comma_expression "iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0" (assignment_expression "iVar1 = g_type_check_instance_is_a(param_1,lVar2)" (identifier "iVar1") (= "=") (call_expression "g_type_check_instance_is_a(param_1,lVar2)" (identifier "g_type_check_instance_is_a") (argument_list "(param_1,lVar2)" (( "(") (identifier "param_1") (, ",") (identifier "lVar2") () ")")))) (, ",") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");\n      return;\n    }" ({ "{") (expression_statement "g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");" (call_expression "g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)")" (identifier "g_return_if_fail_warning") (argument_list "(0,"columns_set_cols","IS_COLUMNS(cols)")" (( "(") (number_literal "0") (, ",") (string_literal ""columns_set_cols"" (" """) (string_content "columns_set_cols") (" """)) (, ",") (string_literal ""IS_COLUMNS(cols)"" (" """) (string_content "IS_COLUMNS(cols)") (" """)) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (param_2 < 1) {\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }\n    else if (param_3 == 0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }" (if "if") (parenthesized_expression "(param_2 < 1)" (( "(") (binary_expression "param_2 < 1" (identifier "param_2") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");\n    }" ({ "{") (expression_statement "g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");" (call_expression "g_return_if_fail_warning(0,"columns_set_cols","ncols > 0")" (identifier "g_return_if_fail_warning") (argument_list "(0,"columns_set_cols","ncols > 0")" (( "(") (number_literal "0") (, ",") (string_literal ""columns_set_cols"" (" """) (string_content "columns_set_cols") (" """)) (, ",") (string_literal ""ncols > 0"" (" """) (string_content "ncols > 0") (" """)) () ")"))) (; ";")) (} "}")) (else_clause "else if (param_3 == 0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }" (else "else") (if_statement "if (param_3 == 0) {\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }\n    else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");\n    }" ({ "{") (expression_statement "g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");" (call_expression "g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL")" (identifier "g_return_if_fail_warning") (argument_list "(0,"columns_set_cols","percentages != NULL")" (( "(") (number_literal "0") (, ",") (string_literal ""columns_set_cols"" (" """) (string_content "columns_set_cols") (" """)) (, ",") (string_literal ""percentages != NULL"" (" """) (string_content "percentages != NULL") (" """)) () ")"))) (; ";")) (} "}")) (else_clause "else {\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }" (else "else") (compound_statement "{\n      puVar3 = (undefined8 *)g_malloc(0x40);\n      *puVar3 = 0;\n      *(int *)(puVar3 + 4) = param_2;\n      uVar4 = g_malloc_n((long)param_2,4);\n      puVar3[5] = uVar4;\n      *(undefined4 *)(puVar3 + 2) = 0;\n      lVar2 = 0;\n      do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);\n      lVar2 = g_list_append(param_1[5],puVar3);\n      param_1[5] = lVar2;\n    }" ({ "{") (expression_statement "puVar3 = (undefined8 *)g_malloc(0x40);" (assignment_expression "puVar3 = (undefined8 *)g_malloc(0x40)" (identifier "puVar3") (= "=") (cast_expression "(undefined8 *)g_malloc(0x40)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "g_malloc(0x40)" (identifier "g_malloc") (argument_list "(0x40)" (( "(") (number_literal "0x40") () ")"))))) (; ";")) (expression_statement "*puVar3 = 0;" (assignment_expression "*puVar3 = 0" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(puVar3 + 4) = param_2;" (assignment_expression "*(int *)(puVar3 + 4) = param_2" (pointer_expression "*(int *)(puVar3 + 4)" (* "*") (cast_expression "(int *)(puVar3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 4)" (( "(") (binary_expression "puVar3 + 4" (identifier "puVar3") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "uVar4 = g_malloc_n((long)param_2,4);" (assignment_expression "uVar4 = g_malloc_n((long)param_2,4)" (identifier "uVar4") (= "=") (call_expression "g_malloc_n((long)param_2,4)" (identifier "g_malloc_n") (argument_list "((long)param_2,4)" (( "(") (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "puVar3[5] = uVar4;" (assignment_expression "puVar3[5] = uVar4" (subscript_expression "puVar3[5]" (identifier "puVar3") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "*(undefined4 *)(puVar3 + 2) = 0;" (assignment_expression "*(undefined4 *)(puVar3 + 2) = 0" (pointer_expression "*(undefined4 *)(puVar3 + 2)" (* "*") (cast_expression "(undefined4 *)(puVar3 + 2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 2)" (( "(") (binary_expression "puVar3 + 2" (identifier "puVar3") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar2 = 0;" (assignment_expression "lVar2 = 0" (identifier "lVar2") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);" (do "do") (compound_statement "{\n        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);\n        lVar2 = lVar2 + 4;\n      }" ({ "{") (expression_statement "*(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);" (assignment_expression "*(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2)" (pointer_expression "*(undefined4 *)(puVar3[5] + lVar2)" (* "*") (cast_expression "(undefined4 *)(puVar3[5] + lVar2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3[5] + lVar2)" (( "(") (binary_expression "puVar3[5] + lVar2" (subscript_expression "puVar3[5]" (identifier "puVar3") ([ "[") (number_literal "5") (] "]")) (+ "+") (identifier "lVar2")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_3 + lVar2)" (* "*") (cast_expression "(undefined4 *)(param_3 + lVar2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + lVar2)" (( "(") (binary_expression "param_3 + lVar2" (identifier "param_3") (+ "+") (identifier "lVar2")) () ")"))))) (; ";")) (expression_statement "lVar2 = lVar2 + 4;" (assignment_expression "lVar2 = lVar2 + 4" (identifier "lVar2") (= "=") (binary_expression "lVar2 + 4" (identifier "lVar2") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar2 != (ulong)(param_2 - 1) * 4 + 4)" (( "(") (binary_expression "lVar2 != (ulong)(param_2 - 1) * 4 + 4" (identifier "lVar2") (!= "!=") (binary_expression "(ulong)(param_2 - 1) * 4 + 4" (binary_expression "(ulong)(param_2 - 1) * 4" (call_expression "(ulong)(param_2 - 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(param_2 - 1)" (( "(") (binary_expression "param_2 - 1" (identifier "param_2") (- "-") (number_literal "1")) () ")"))) (* "*") (number_literal "4")) (+ "+") (number_literal "4"))) () ")")) (; ";")) (expression_statement "lVar2 = g_list_append(param_1[5],puVar3);" (assignment_expression "lVar2 = g_list_append(param_1[5],puVar3)" (identifier "lVar2") (= "=") (call_expression "g_list_append(param_1[5],puVar3)" (identifier "g_list_append") (argument_list "(param_1[5],puVar3)" (( "(") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (, ",") (identifier "puVar3") () ")")))) (; ";")) (expression_statement "param_1[5] = lVar2;" (assignment_expression "param_1[5] = lVar2" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "lVar2")) (; ";")) (} "}")))))) (} "}")))) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *var_1,type_2 var_8,type_2 *var_9)

{
  type_3 *var_4;
  int var_7;
  type_4 var_5;
  type_5 *var_11;
  type_5 uVar5;
  long var_13;
  type_6 *pGVar7;
  
  if (var_1 == (type_1 *)0x0) {
    var_2(0,"columns_set_cols","cols != NULL");
  }
  else {
    var_5 = var_3();
    var_4 = (var_1->container).widget.parent_instance.g_type_instance.g_class;
    if (((var_4 == (type_3 *)0x0) || (var_4->g_type != var_5)) &&
       (var_7 = var_6(var_1,var_5), var_7 == 0)) {
      var_2(0,"columns_set_cols","IS_COLUMNS(cols)");
      return;
    }
    if (var_8 < 1) {
      var_2(0,"columns_set_cols","ncols > 0");
    }
    else if (var_9 == (type_2 *)0x0) {
      var_2(0,"columns_set_cols","percentages != NULL");
    }
    else {
      var_11 = (type_5 *)var_10(0x40);
      *var_11 = 0;
      *(type_2 *)(var_11 + 4) = var_8;
      uVar5 = var_12((long)var_8,4);
      var_11[5] = uVar5;
      *(type_7 *)(var_11 + 2) = 0;
      var_13 = 0;
      do {
        *(type_7 *)(var_11[5] + var_13) = *(type_7 *)((long)var_9 + var_13);
        var_13 = var_13 + 4;
      } while (var_13 != (ulong)(var_8 - 1) * 4 + 4);
      pGVar7 = (type_6 *)var_14(var_1->children,var_11);
      var_1->children = pGVar7;
    }
  }
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (string_literal (string_content)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) right: (identifier))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (string_literal (string_content))))) (return_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (string_literal (string_content)))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (string_literal (string_content)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))))))))) (return_statement))))

void MASKED(long *param_1,int param_2,long param_3)

{
  int iVar1;
  long lVar2;
  undefined8 *puVar3;
  undefined8 uVar4;
  
  if (param_1 == (long *)0x0) {
    g_return_if_fail_warning(0,"columns_set_cols","cols != NULL");
  }
  else {
    lVar2 = FUN_0013a859();
    if ((((long *)*param_1 == (long *)0x0) || (*(long *)*param_1 != lVar2)) &&
       (iVar1 = g_type_check_instance_is_a(param_1,lVar2), iVar1 == 0)) {
      g_return_if_fail_warning(0,"columns_set_cols","IS_COLUMNS(cols)");
      return;
    }
    if (param_2 < 1) {
      g_return_if_fail_warning(0,"columns_set_cols","ncols > 0");
    }
    else if (param_3 == 0) {
      g_return_if_fail_warning(0,"columns_set_cols","percentages != NULL");
    }
    else {
      puVar3 = (undefined8 *)g_malloc(0x40);
      *puVar3 = 0;
      *(int *)(puVar3 + 4) = param_2;
      uVar4 = g_malloc_n((long)param_2,4);
      puVar3[5] = uVar4;
      *(undefined4 *)(puVar3 + 2) = 0;
      lVar2 = 0;
      do {
        *(undefined4 *)(puVar3[5] + lVar2) = *(undefined4 *)(param_3 + lVar2);
        lVar2 = lVar2 + 4;
      } while (lVar2 != (ulong)(param_2 - 1) * 4 + 4);
      lVar2 = g_list_append(param_1[5],puVar3);
      param_1[5] = lVar2;
    }
  }
  return;
}

