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

void ppc_tc(int ignore)

{
  byte bVar1;
  byte *pbVar2;
  uint align;
  
  bVar1 = *input_line_pointer;
  if ((((bVar1 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar1 == 0x20) || ((lex_type[bVar1] & 1) != 0))
  {
    pbVar2 = (byte *)(input_line_pointer + 1);
    do {
      do {
        input_line_pointer = (char *)pbVar2;
        bVar1 = *input_line_pointer;
        pbVar2 = (byte *)input_line_pointer + 1;
      } while (((bVar1 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar1 == 0x20);
    } while ((lex_type[bVar1] & 1) != 0);
  }
  align = 3 - (ppc_obj64 == 0);
  frag_align(align,0,0);
  record_alignment(now_seg,align);
  if (*input_line_pointer == ',') {
    input_line_pointer = input_line_pointer + 1;
    cons((-(uint)(ppc_obj64 == 0) & 0xfffffffc) + 8);
    return;
  }
  demand_empty_rest_of_line();
  return;
}



void FUN_00041cd0(void)

{
  undefined4 *puVar1;
  byte bVar2;
  byte *pbVar3;
  int unaff_EBP;
  int iVar4;
  
  FUN_00020010();
  puVar1 = (undefined4 *)(unaff_EBP + 0x36222);
  bVar2 = *(byte *)*puVar1;
  if ((((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20) ||
     (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0)) {
    pbVar3 = (byte *)*puVar1 + 1;
    do {
      do {
        *puVar1 = pbVar3;
        bVar2 = *pbVar3;
        pbVar3 = pbVar3 + 1;
      } while (((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20);
    } while (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0);
  }
  iVar4 = 3 - (uint)(*(int *)(unaff_EBP + 0x2d81e) == 0);
  FUN_00024c40(iVar4,0,0);
  FUN_0003f050(*(undefined4 *)(unaff_EBP + 0x36026),iVar4);
  if (*(char *)*puVar1 == ',') {
    *puVar1 = (char *)*puVar1 + 1;
    FUN_00031af0((-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8);
    return;
  }
  FUN_0002e290();
  return;
}


PUSH EBP
CALL 0x00020010
ADD EBP,0x2d32a
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0xc
LEA ESI,[EBP + 0x8ef8]
LEA EDI,[EBP + 0x3e0]
MOV EDX,dword ptr [ESI]
MOVZX EAX,byte ptr [EDX]
MOV ECX,EAX
AND ECX,0xffffffdf
SUB ECX,0x5b
AND ECX,0xfd
SETZ BL
CMP AL,0x20
SETZ CL
OR BL,CL
JNZ 0x00041d13
TEST byte ptr [EDI + EAX*0x1],0x1
JZ 0x00041d48
ADD EDX,0x1
LEA ESI,[ESI]
LEA ESI,[ESI]
MOV dword ptr [ESI],EDX
MOVZX EAX,byte ptr [EDX]
ADD EDX,0x1
MOV ECX,EAX
AND ECX,0xffffffdf
SUB ECX,0x5b
AND ECX,0xfd
SETZ BL
CMP AL,0x20
SETZ CL
OR BL,CL
JNZ 0x00041d20
TEST byte ptr [EDI + EAX*0x1],0x1
JNZ 0x00041d20
CMP dword ptr [EBP + 0x4f4],0x1
MOV EBX,EBP
SBB EDI,EDI
SUB ESP,0x4
ADD EDI,0x3
PUSH 0x0
PUSH 0x0
PUSH EDI
CALL 0x00024c40
POP EAX
LEA EAX,[EBP + 0x8cfc]
POP EDX
PUSH EDI
PUSH dword ptr [EAX]
CALL 0x0003f050
MOV EAX,dword ptr [ESI]
ADD ESP,0x10
CMP byte ptr [EAX],0x2c
JNZ 0x00041da5
ADD EAX,0x1
CMP dword ptr [EBP + 0x4f4],0x1
MOV dword ptr [ESI],EAX
SBB EAX,EAX
SUB ESP,0xc
AND EAX,0xfffffffc
ADD EAX,0x8
PUSH EAX
CALL 0x00031af0
ADD ESP,0x10
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET
CALL 0x0002e290
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "void FUN_00041cd0(void)\n\n{\n  undefined4 *puVar1;\n  byte bVar2;\n  byte *pbVar3;\n  int unaff_EBP;\n  int iVar4;\n  \n  FUN_00020010();\n  puVar1 = (undefined4 *)(unaff_EBP + 0x36222);\n  bVar2 = *(byte *)*puVar1;\n  if ((((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20) ||\n     (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0)) {\n    pbVar3 = (byte *)*puVar1 + 1;\n    do {\n      do {\n        *puVar1 = pbVar3;\n        bVar2 = *pbVar3;\n        pbVar3 = pbVar3 + 1;\n      } while (((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20);\n    } while (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0);\n  }\n  iVar4 = 3 - (uint)(*(int *)(unaff_EBP + 0x2d81e) == 0);\n  FUN_00024c40(iVar4,0,0);\n  FUN_0003f050(*(undefined4 *)(unaff_EBP + 0x36026),iVar4);\n  if (*(char *)*puVar1 == ',') {\n    *puVar1 = (char *)*puVar1 + 1;\n    FUN_00031af0((-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8);\n    return;\n  }\n  FUN_0002e290();\n  return;\n}\n\n" (function_definition "void FUN_00041cd0(void)\n\n{\n  undefined4 *puVar1;\n  byte bVar2;\n  byte *pbVar3;\n  int unaff_EBP;\n  int iVar4;\n  \n  FUN_00020010();\n  puVar1 = (undefined4 *)(unaff_EBP + 0x36222);\n  bVar2 = *(byte *)*puVar1;\n  if ((((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20) ||\n     (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0)) {\n    pbVar3 = (byte *)*puVar1 + 1;\n    do {\n      do {\n        *puVar1 = pbVar3;\n        bVar2 = *pbVar3;\n        pbVar3 = pbVar3 + 1;\n      } while (((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20);\n    } while (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0);\n  }\n  iVar4 = 3 - (uint)(*(int *)(unaff_EBP + 0x2d81e) == 0);\n  FUN_00024c40(iVar4,0,0);\n  FUN_0003f050(*(undefined4 *)(unaff_EBP + 0x36026),iVar4);\n  if (*(char *)*puVar1 == ',') {\n    *puVar1 = (char *)*puVar1 + 1;\n    FUN_00031af0((-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8);\n    return;\n  }\n  FUN_0002e290();\n  return;\n}" primitive_type (function_declarator "FUN_00041cd0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined4 *puVar1;\n  byte bVar2;\n  byte *pbVar3;\n  int unaff_EBP;\n  int iVar4;\n  \n  FUN_00020010();\n  puVar1 = (undefined4 *)(unaff_EBP + 0x36222);\n  bVar2 = *(byte *)*puVar1;\n  if ((((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20) ||\n     (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0)) {\n    pbVar3 = (byte *)*puVar1 + 1;\n    do {\n      do {\n        *puVar1 = pbVar3;\n        bVar2 = *pbVar3;\n        pbVar3 = pbVar3 + 1;\n      } while (((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20);\n    } while (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0);\n  }\n  iVar4 = 3 - (uint)(*(int *)(unaff_EBP + 0x2d81e) == 0);\n  FUN_00024c40(iVar4,0,0);\n  FUN_0003f050(*(undefined4 *)(unaff_EBP + 0x36026),iVar4);\n  if (*(char *)*puVar1 == ',') {\n    *puVar1 = (char *)*puVar1 + 1;\n    FUN_00031af0((-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8);\n    return;\n  }\n  FUN_0002e290();\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (expression_statement "FUN_00020010();" (call_expression "FUN_00020010()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar1 = (undefined4 *)(unaff_EBP + 0x36222);" (assignment_expression "puVar1 = (undefined4 *)(unaff_EBP + 0x36222)" identifier = (cast_expression "(undefined4 *)(unaff_EBP + 0x36222)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x36222)" ( (binary_expression "unaff_EBP + 0x36222" identifier + number_literal) )))) ;) (expression_statement "bVar2 = *(byte *)*puVar1;" (assignment_expression "bVar2 = *(byte *)*puVar1" identifier = (pointer_expression "*(byte *)*puVar1" * (cast_expression "(byte *)*puVar1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier)))) ;) (if_statement "if ((((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20) ||\n     (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0)) {\n    pbVar3 = (byte *)*puVar1 + 1;\n    do {\n      do {\n        *puVar1 = pbVar3;\n        bVar2 = *pbVar3;\n        pbVar3 = pbVar3 + 1;\n      } while (((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20);\n    } while (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0);\n  }" if (parenthesized_expression "((((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20) ||\n     (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0))" ( (binary_expression "(((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20) ||\n     (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0)" (parenthesized_expression "(((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20)" ( (binary_expression "((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20" (binary_expression "((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0" (parenthesized_expression "((bVar2 & 0xffffffdf) - 0x5b & 0xfd)" ( (binary_expression "(bVar2 & 0xffffffdf) - 0x5b & 0xfd" (binary_expression "(bVar2 & 0xffffffdf) - 0x5b" (parenthesized_expression "(bVar2 & 0xffffffdf)" ( (binary_expression "bVar2 & 0xffffffdf" identifier & number_literal) )) - number_literal) & number_literal) )) == number_literal) || (binary_expression "bVar2 == 0x20" identifier == number_literal)) )) || (parenthesized_expression "(((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0)" ( (binary_expression "((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0" (parenthesized_expression "((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1)" ( (binary_expression "(&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1" (subscript_expression "(&UNK_0002d70a)[(uint)bVar2 + unaff_EBP]" (parenthesized_expression "(&UNK_0002d70a)" ( (pointer_expression "&UNK_0002d70a" & identifier) )) [ (binary_expression "(uint)bVar2 + unaff_EBP" (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier) + identifier) ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    pbVar3 = (byte *)*puVar1 + 1;\n    do {\n      do {\n        *puVar1 = pbVar3;\n        bVar2 = *pbVar3;\n        pbVar3 = pbVar3 + 1;\n      } while (((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20);\n    } while (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0);\n  }" { (expression_statement "pbVar3 = (byte *)*puVar1 + 1;" (assignment_expression "pbVar3 = (byte *)*puVar1 + 1" identifier = (binary_expression "(byte *)*puVar1 + 1" (cast_expression "(byte *)*puVar1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier)) + number_literal)) ;) (do_statement "do {\n      do {\n        *puVar1 = pbVar3;\n        bVar2 = *pbVar3;\n        pbVar3 = pbVar3 + 1;\n      } while (((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20);\n    } while (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0);" do (compound_statement "{\n      do {\n        *puVar1 = pbVar3;\n        bVar2 = *pbVar3;\n        pbVar3 = pbVar3 + 1;\n      } while (((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20);\n    }" { (do_statement "do {\n        *puVar1 = pbVar3;\n        bVar2 = *pbVar3;\n        pbVar3 = pbVar3 + 1;\n      } while (((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20);" do (compound_statement "{\n        *puVar1 = pbVar3;\n        bVar2 = *pbVar3;\n        pbVar3 = pbVar3 + 1;\n      }" { (expression_statement "*puVar1 = pbVar3;" (assignment_expression "*puVar1 = pbVar3" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "bVar2 = *pbVar3;" (assignment_expression "bVar2 = *pbVar3" identifier = (pointer_expression "*pbVar3" * identifier)) ;) (expression_statement "pbVar3 = pbVar3 + 1;" (assignment_expression "pbVar3 = pbVar3 + 1" identifier = (binary_expression "pbVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20)" ( (binary_expression "((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20" (binary_expression "((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0" (parenthesized_expression "((bVar2 & 0xffffffdf) - 0x5b & 0xfd)" ( (binary_expression "(bVar2 & 0xffffffdf) - 0x5b & 0xfd" (binary_expression "(bVar2 & 0xffffffdf) - 0x5b" (parenthesized_expression "(bVar2 & 0xffffffdf)" ( (binary_expression "bVar2 & 0xffffffdf" identifier & number_literal) )) - number_literal) & number_literal) )) == number_literal) || (binary_expression "bVar2 == 0x20" identifier == number_literal)) )) ;) }) while (parenthesized_expression "(((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0)" ( (binary_expression "((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0" (parenthesized_expression "((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1)" ( (binary_expression "(&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1" (subscript_expression "(&UNK_0002d70a)[(uint)bVar2 + unaff_EBP]" (parenthesized_expression "(&UNK_0002d70a)" ( (pointer_expression "&UNK_0002d70a" & identifier) )) [ (binary_expression "(uint)bVar2 + unaff_EBP" (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier) + identifier) ]) & number_literal) )) != number_literal) )) ;) })) (expression_statement "iVar4 = 3 - (uint)(*(int *)(unaff_EBP + 0x2d81e) == 0);" (assignment_expression "iVar4 = 3 - (uint)(*(int *)(unaff_EBP + 0x2d81e) == 0)" identifier = (binary_expression "3 - (uint)(*(int *)(unaff_EBP + 0x2d81e) == 0)" number_literal - (call_expression "(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(unaff_EBP + 0x2d81e) == 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x2d81e) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x2d81e)" * (cast_expression "(int *)(unaff_EBP + 0x2d81e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x2d81e)" ( (binary_expression "unaff_EBP + 0x2d81e" identifier + number_literal) )))) == number_literal) ))))) ;) (expression_statement "FUN_00024c40(iVar4,0,0);" (call_expression "FUN_00024c40(iVar4,0,0)" identifier (argument_list "(iVar4,0,0)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "FUN_0003f050(*(undefined4 *)(unaff_EBP + 0x36026),iVar4);" (call_expression "FUN_0003f050(*(undefined4 *)(unaff_EBP + 0x36026),iVar4)" identifier (argument_list "(*(undefined4 *)(unaff_EBP + 0x36026),iVar4)" ( (pointer_expression "*(undefined4 *)(unaff_EBP + 0x36026)" * (cast_expression "(undefined4 *)(unaff_EBP + 0x36026)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x36026)" ( (binary_expression "unaff_EBP + 0x36026" identifier + number_literal) )))) , identifier ))) ;) (if_statement "if (*(char *)*puVar1 == ',') {\n    *puVar1 = (char *)*puVar1 + 1;\n    FUN_00031af0((-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8);\n    return;\n  }" if (parenthesized_expression "(*(char *)*puVar1 == ',')" ( (binary_expression "*(char *)*puVar1 == ','" (pointer_expression "*(char *)*puVar1" * (cast_expression "(char *)*puVar1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) == (char_literal "','" ' character ')) )) (compound_statement "{\n    *puVar1 = (char *)*puVar1 + 1;\n    FUN_00031af0((-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8);\n    return;\n  }" { (expression_statement "*puVar1 = (char *)*puVar1 + 1;" (assignment_expression "*puVar1 = (char *)*puVar1 + 1" (pointer_expression "*puVar1" * identifier) = (binary_expression "(char *)*puVar1 + 1" (cast_expression "(char *)*puVar1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier)) + number_literal)) ;) (expression_statement "FUN_00031af0((-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8);" (call_expression "FUN_00031af0((-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8)" identifier (argument_list "((-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8)" ( (binary_expression "(-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8" (parenthesized_expression "(-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc)" ( (binary_expression "-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc" (unary_expression "-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0)" - (call_expression "(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(unaff_EBP + 0x2d81e) == 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x2d81e) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x2d81e)" * (cast_expression "(int *)(unaff_EBP + 0x2d81e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x2d81e)" ( (binary_expression "unaff_EBP + 0x2d81e" identifier + number_literal) )))) == number_literal) )))) & number_literal) )) + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_0002e290();" (call_expression "FUN_0002e290()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */\n/* WARNING: Unknown calling convention */\n\nvoid ppc_tc(int ignore)\n\n{\n  byte bVar1;\n  byte *pbVar2;\n  uint align;\n  \n  bVar1 = *input_line_pointer;\n  if ((((bVar1 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar1 == 0x20) || ((lex_type[bVar1] & 1) != 0))\n  {\n    pbVar2 = (byte *)(input_line_pointer + 1);\n    do {\n      do {\n        input_line_pointer = (char *)pbVar2;\n        bVar1 = *input_line_pointer;\n        pbVar2 = (byte *)input_line_pointer + 1;\n      } while (((bVar1 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar1 == 0x20);\n    } while ((lex_type[bVar1] & 1) != 0);\n  }\n  align = 3 - (ppc_obj64 == 0);\n  frag_align(align,0,0);\n  record_alignment(now_seg,align);\n  if (*input_line_pointer == ',') {\n    input_line_pointer = input_line_pointer + 1;\n    cons((-(uint)(ppc_obj64 == 0) & 0xfffffffc) + 8);\n    return;\n  }\n  demand_empty_rest_of_line();\n  return;\n}\n\n" comment comment (function_definition "void ppc_tc(int ignore)\n\n{\n  byte bVar1;\n  byte *pbVar2;\n  uint align;\n  \n  bVar1 = *input_line_pointer;\n  if ((((bVar1 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar1 == 0x20) || ((lex_type[bVar1] & 1) != 0))\n  {\n    pbVar2 = (byte *)(input_line_pointer + 1);\n    do {\n      do {\n        input_line_pointer = (char *)pbVar2;\n        bVar1 = *input_line_pointer;\n        pbVar2 = (byte *)input_line_pointer + 1;\n      } while (((bVar1 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar1 == 0x20);\n    } while ((lex_type[bVar1] & 1) != 0);\n  }\n  align = 3 - (ppc_obj64 == 0);\n  frag_align(align,0,0);\n  record_alignment(now_seg,align);\n  if (*input_line_pointer == ',') {\n    input_line_pointer = input_line_pointer + 1;\n    cons((-(uint)(ppc_obj64 == 0) & 0xfffffffc) + 8);\n    return;\n  }\n  demand_empty_rest_of_line();\n  return;\n}" primitive_type (function_declarator "ppc_tc(int ignore)" identifier (parameter_list "(int ignore)" ( (parameter_declaration "int ignore" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  byte *pbVar2;\n  uint align;\n  \n  bVar1 = *input_line_pointer;\n  if ((((bVar1 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar1 == 0x20) || ((lex_type[bVar1] & 1) != 0))\n  {\n    pbVar2 = (byte *)(input_line_pointer + 1);\n    do {\n      do {\n        input_line_pointer = (char *)pbVar2;\n        bVar1 = *input_line_pointer;\n        pbVar2 = (byte *)input_line_pointer + 1;\n      } while (((bVar1 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar1 == 0x20);\n    } while ((lex_type[bVar1] & 1) != 0);\n  }\n  align = 3 - (ppc_obj64 == 0);\n  frag_align(align,0,0);\n  record_alignment(now_seg,align);\n  if (*input_line_pointer == ',') {\n    input_line_pointer = input_line_pointer + 1;\n    cons((-(uint)(ppc_obj64 == 0) & 0xfffffffc) + 8);\n    return;\n  }\n  demand_empty_rest_of_line();\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "uint align;" type_identifier identifier ;) (expression_statement "bVar1 = *input_line_pointer;" (assignment_expression "bVar1 = *input_line_pointer" identifier = (pointer_expression "*input_line_pointer" * identifier)) ;) (if_statement "if ((((bVar1 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar1 == 0x20) || ((lex_type[bVar1] & 1) != 0))\n  {\n    pbVar2 = (byte *)(input_line_pointer + 1);\n    do {\n      do {\n        input_line_pointer = (char *)pbVar2;\n        bVar1 = *input_line_pointer;\n        pbVar2 = (byte *)input_line_pointer + 1;\n      } while (((bVar1 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar1 == 0x20);\n    } while ((lex_type[bVar1] & 1) != 0);\n  }" if (parenthesized_expression "((((bVar1 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar1 == 0x20) || ((lex_type[bVar1] & 1) != 0))" ( (binary_expression "(((bVar1 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar1 == 0x20) || ((lex_type[bVar1] & 1) != 0)" (parenthesized_expression "(((bVar1 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar1 == 0x20)" ( (binary_expression "((bVar1 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar1 == 0x20" (binary_expression "((bVar1 & 0xffffffdf) - 0x5b & 0xfd) == 0" (parenthesized_expression "((bVar1 & 0xffffffdf) - 0x5b & 0xfd)" ( (binary_expression "(bVar1 & 0xffffffdf) - 0x5b & 0xfd" (binary_expression "(bVar1 & 0xffffffdf) - 0x5b" (parenthesized_expression "(bVar1 & 0xffffffdf)" ( (binary_expression "bVar1 & 0xffffffdf" identifier & number_literal) )) - number_literal) & number_literal) )) == number_literal) || (binary_expression "bVar1 == 0x20" identifier == number_literal)) )) || (parenthesized_expression "((lex_type[bVar1] & 1) != 0)" ( (binary_expression "(lex_type[bVar1] & 1) != 0" (parenthesized_expression "(lex_type[bVar1] & 1)" ( (binary_expression "lex_type[bVar1] & 1" (subscript_expression "lex_type[bVar1]" identifier [ identifier ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    pbVar2 = (byte *)(input_line_pointer + 1);\n    do {\n      do {\n        input_line_pointer = (char *)pbVar2;\n        bVar1 = *input_line_pointer;\n        pbVar2 = (byte *)input_line_pointer + 1;\n      } while (((bVar1 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar1 == 0x20);\n    } while ((lex_type[bVar1] & 1) != 0);\n  }" { (expression_statement "pbVar2 = (byte *)(input_line_pointer + 1);" (assignment_expression "pbVar2 = (byte *)(input_line_pointer + 1)" identifier = (cast_expression "(byte *)(input_line_pointer + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(input_line_pointer + 1)" ( (binary_expression "input_line_pointer + 1" identifier + number_literal) )))) ;) (do_statement "do {\n      do {\n        input_line_pointer = (char *)pbVar2;\n        bVar1 = *input_line_pointer;\n        pbVar2 = (byte *)input_line_pointer + 1;\n      } while (((bVar1 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar1 == 0x20);\n    } while ((lex_type[bVar1] & 1) != 0);" do (compound_statement "{\n      do {\n        input_line_pointer = (char *)pbVar2;\n        bVar1 = *input_line_pointer;\n        pbVar2 = (byte *)input_line_pointer + 1;\n      } while (((bVar1 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar1 == 0x20);\n    }" { (do_statement "do {\n        input_line_pointer = (char *)pbVar2;\n        bVar1 = *input_line_pointer;\n        pbVar2 = (byte *)input_line_pointer + 1;\n      } while (((bVar1 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar1 == 0x20);" do (compound_statement "{\n        input_line_pointer = (char *)pbVar2;\n        bVar1 = *input_line_pointer;\n        pbVar2 = (byte *)input_line_pointer + 1;\n      }" { (expression_statement "input_line_pointer = (char *)pbVar2;" (assignment_expression "input_line_pointer = (char *)pbVar2" identifier = (cast_expression "(char *)pbVar2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar1 = *input_line_pointer;" (assignment_expression "bVar1 = *input_line_pointer" identifier = (pointer_expression "*input_line_pointer" * identifier)) ;) (expression_statement "pbVar2 = (byte *)input_line_pointer + 1;" (assignment_expression "pbVar2 = (byte *)input_line_pointer + 1" identifier = (binary_expression "(byte *)input_line_pointer + 1" (cast_expression "(byte *)input_line_pointer" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + number_literal)) ;) }) while (parenthesized_expression "(((bVar1 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar1 == 0x20)" ( (binary_expression "((bVar1 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar1 == 0x20" (binary_expression "((bVar1 & 0xffffffdf) - 0x5b & 0xfd) == 0" (parenthesized_expression "((bVar1 & 0xffffffdf) - 0x5b & 0xfd)" ( (binary_expression "(bVar1 & 0xffffffdf) - 0x5b & 0xfd" (binary_expression "(bVar1 & 0xffffffdf) - 0x5b" (parenthesized_expression "(bVar1 & 0xffffffdf)" ( (binary_expression "bVar1 & 0xffffffdf" identifier & number_literal) )) - number_literal) & number_literal) )) == number_literal) || (binary_expression "bVar1 == 0x20" identifier == number_literal)) )) ;) }) while (parenthesized_expression "((lex_type[bVar1] & 1) != 0)" ( (binary_expression "(lex_type[bVar1] & 1) != 0" (parenthesized_expression "(lex_type[bVar1] & 1)" ( (binary_expression "lex_type[bVar1] & 1" (subscript_expression "lex_type[bVar1]" identifier [ identifier ]) & number_literal) )) != number_literal) )) ;) })) (expression_statement "align = 3 - (ppc_obj64 == 0);" (assignment_expression "align = 3 - (ppc_obj64 == 0)" identifier = (binary_expression "3 - (ppc_obj64 == 0)" number_literal - (parenthesized_expression "(ppc_obj64 == 0)" ( (binary_expression "ppc_obj64 == 0" identifier == number_literal) )))) ;) (expression_statement "frag_align(align,0,0);" (call_expression "frag_align(align,0,0)" identifier (argument_list "(align,0,0)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "record_alignment(now_seg,align);" (call_expression "record_alignment(now_seg,align)" identifier (argument_list "(now_seg,align)" ( identifier , identifier ))) ;) (if_statement "if (*input_line_pointer == ',') {\n    input_line_pointer = input_line_pointer + 1;\n    cons((-(uint)(ppc_obj64 == 0) & 0xfffffffc) + 8);\n    return;\n  }" if (parenthesized_expression "(*input_line_pointer == ',')" ( (binary_expression "*input_line_pointer == ','" (pointer_expression "*input_line_pointer" * identifier) == (char_literal "','" ' character ')) )) (compound_statement "{\n    input_line_pointer = input_line_pointer + 1;\n    cons((-(uint)(ppc_obj64 == 0) & 0xfffffffc) + 8);\n    return;\n  }" { (expression_statement "input_line_pointer = input_line_pointer + 1;" (assignment_expression "input_line_pointer = input_line_pointer + 1" identifier = (binary_expression "input_line_pointer + 1" identifier + number_literal)) ;) (expression_statement "cons((-(uint)(ppc_obj64 == 0) & 0xfffffffc) + 8);" (call_expression "cons((-(uint)(ppc_obj64 == 0) & 0xfffffffc) + 8)" identifier (argument_list "((-(uint)(ppc_obj64 == 0) & 0xfffffffc) + 8)" ( (binary_expression "(-(uint)(ppc_obj64 == 0) & 0xfffffffc) + 8" (parenthesized_expression "(-(uint)(ppc_obj64 == 0) & 0xfffffffc)" ( (binary_expression "-(uint)(ppc_obj64 == 0) & 0xfffffffc" (unary_expression "-(uint)(ppc_obj64 == 0)" - (call_expression "(uint)(ppc_obj64 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ppc_obj64 == 0)" ( (binary_expression "ppc_obj64 == 0" identifier == number_literal) )))) & number_literal) )) + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "demand_empty_rest_of_line();" (call_expression "demand_empty_rest_of_line()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00041cd0(void)\n\n{\n  undefined4 *puVar1;\n  byte bVar2;\n  byte *pbVar3;\n  int unaff_EBP;\n  int iVar4;\n  \n  FUN_00020010();\n  puVar1 = (undefined4 *)(unaff_EBP + 0x36222);\n  bVar2 = *(byte *)*puVar1;\n  if ((((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20) ||\n     (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0)) {\n    pbVar3 = (byte *)*puVar1 + 1;\n    do {\n      do {\n        *puVar1 = pbVar3;\n        bVar2 = *pbVar3;\n        pbVar3 = pbVar3 + 1;\n      } while (((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20);\n    } while (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0);\n  }\n  iVar4 = 3 - (uint)(*(int *)(unaff_EBP + 0x2d81e) == 0);\n  FUN_00024c40(iVar4,0,0);\n  FUN_0003f050(*(undefined4 *)(unaff_EBP + 0x36026),iVar4);\n  if (*(char *)*puVar1 == ',') {\n    *puVar1 = (char *)*puVar1 + 1;\n    FUN_00031af0((-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8);\n    return;\n  }\n  FUN_0002e290();\n  return;\n}\n\n" (function_definition "void FUN_00041cd0(void)\n\n{\n  undefined4 *puVar1;\n  byte bVar2;\n  byte *pbVar3;\n  int unaff_EBP;\n  int iVar4;\n  \n  FUN_00020010();\n  puVar1 = (undefined4 *)(unaff_EBP + 0x36222);\n  bVar2 = *(byte *)*puVar1;\n  if ((((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20) ||\n     (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0)) {\n    pbVar3 = (byte *)*puVar1 + 1;\n    do {\n      do {\n        *puVar1 = pbVar3;\n        bVar2 = *pbVar3;\n        pbVar3 = pbVar3 + 1;\n      } while (((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20);\n    } while (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0);\n  }\n  iVar4 = 3 - (uint)(*(int *)(unaff_EBP + 0x2d81e) == 0);\n  FUN_00024c40(iVar4,0,0);\n  FUN_0003f050(*(undefined4 *)(unaff_EBP + 0x36026),iVar4);\n  if (*(char *)*puVar1 == ',') {\n    *puVar1 = (char *)*puVar1 + 1;\n    FUN_00031af0((-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8);\n    return;\n  }\n  FUN_0002e290();\n  return;\n}" primitive_type (function_declarator "FUN_00041cd0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined4 *puVar1;\n  byte bVar2;\n  byte *pbVar3;\n  int unaff_EBP;\n  int iVar4;\n  \n  FUN_00020010();\n  puVar1 = (undefined4 *)(unaff_EBP + 0x36222);\n  bVar2 = *(byte *)*puVar1;\n  if ((((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20) ||\n     (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0)) {\n    pbVar3 = (byte *)*puVar1 + 1;\n    do {\n      do {\n        *puVar1 = pbVar3;\n        bVar2 = *pbVar3;\n        pbVar3 = pbVar3 + 1;\n      } while (((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20);\n    } while (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0);\n  }\n  iVar4 = 3 - (uint)(*(int *)(unaff_EBP + 0x2d81e) == 0);\n  FUN_00024c40(iVar4,0,0);\n  FUN_0003f050(*(undefined4 *)(unaff_EBP + 0x36026),iVar4);\n  if (*(char *)*puVar1 == ',') {\n    *puVar1 = (char *)*puVar1 + 1;\n    FUN_00031af0((-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8);\n    return;\n  }\n  FUN_0002e290();\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (expression_statement "FUN_00020010();" (call_expression "FUN_00020010()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar1 = (undefined4 *)(unaff_EBP + 0x36222);" (assignment_expression "puVar1 = (undefined4 *)(unaff_EBP + 0x36222)" identifier = (cast_expression "(undefined4 *)(unaff_EBP + 0x36222)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x36222)" ( (binary_expression "unaff_EBP + 0x36222" identifier + number_literal) )))) ;) (expression_statement "bVar2 = *(byte *)*puVar1;" (assignment_expression "bVar2 = *(byte *)*puVar1" identifier = (pointer_expression "*(byte *)*puVar1" * (cast_expression "(byte *)*puVar1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier)))) ;) (if_statement "if ((((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20) ||\n     (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0)) {\n    pbVar3 = (byte *)*puVar1 + 1;\n    do {\n      do {\n        *puVar1 = pbVar3;\n        bVar2 = *pbVar3;\n        pbVar3 = pbVar3 + 1;\n      } while (((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20);\n    } while (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0);\n  }" if (parenthesized_expression "((((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20) ||\n     (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0))" ( (binary_expression "(((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20) ||\n     (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0)" (parenthesized_expression "(((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20)" ( (binary_expression "((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20" (binary_expression "((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0" (parenthesized_expression "((bVar2 & 0xffffffdf) - 0x5b & 0xfd)" ( (binary_expression "(bVar2 & 0xffffffdf) - 0x5b & 0xfd" (binary_expression "(bVar2 & 0xffffffdf) - 0x5b" (parenthesized_expression "(bVar2 & 0xffffffdf)" ( (binary_expression "bVar2 & 0xffffffdf" identifier & number_literal) )) - number_literal) & number_literal) )) == number_literal) || (binary_expression "bVar2 == 0x20" identifier == number_literal)) )) || (parenthesized_expression "(((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0)" ( (binary_expression "((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0" (parenthesized_expression "((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1)" ( (binary_expression "(&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1" (subscript_expression "(&UNK_0002d70a)[(uint)bVar2 + unaff_EBP]" (parenthesized_expression "(&UNK_0002d70a)" ( (pointer_expression "&UNK_0002d70a" & identifier) )) [ (binary_expression "(uint)bVar2 + unaff_EBP" (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier) + identifier) ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    pbVar3 = (byte *)*puVar1 + 1;\n    do {\n      do {\n        *puVar1 = pbVar3;\n        bVar2 = *pbVar3;\n        pbVar3 = pbVar3 + 1;\n      } while (((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20);\n    } while (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0);\n  }" { (expression_statement "pbVar3 = (byte *)*puVar1 + 1;" (assignment_expression "pbVar3 = (byte *)*puVar1 + 1" identifier = (binary_expression "(byte *)*puVar1 + 1" (cast_expression "(byte *)*puVar1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier)) + number_literal)) ;) (do_statement "do {\n      do {\n        *puVar1 = pbVar3;\n        bVar2 = *pbVar3;\n        pbVar3 = pbVar3 + 1;\n      } while (((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20);\n    } while (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0);" do (compound_statement "{\n      do {\n        *puVar1 = pbVar3;\n        bVar2 = *pbVar3;\n        pbVar3 = pbVar3 + 1;\n      } while (((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20);\n    }" { (do_statement "do {\n        *puVar1 = pbVar3;\n        bVar2 = *pbVar3;\n        pbVar3 = pbVar3 + 1;\n      } while (((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20);" do (compound_statement "{\n        *puVar1 = pbVar3;\n        bVar2 = *pbVar3;\n        pbVar3 = pbVar3 + 1;\n      }" { (expression_statement "*puVar1 = pbVar3;" (assignment_expression "*puVar1 = pbVar3" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "bVar2 = *pbVar3;" (assignment_expression "bVar2 = *pbVar3" identifier = (pointer_expression "*pbVar3" * identifier)) ;) (expression_statement "pbVar3 = pbVar3 + 1;" (assignment_expression "pbVar3 = pbVar3 + 1" identifier = (binary_expression "pbVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20)" ( (binary_expression "((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20" (binary_expression "((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0" (parenthesized_expression "((bVar2 & 0xffffffdf) - 0x5b & 0xfd)" ( (binary_expression "(bVar2 & 0xffffffdf) - 0x5b & 0xfd" (binary_expression "(bVar2 & 0xffffffdf) - 0x5b" (parenthesized_expression "(bVar2 & 0xffffffdf)" ( (binary_expression "bVar2 & 0xffffffdf" identifier & number_literal) )) - number_literal) & number_literal) )) == number_literal) || (binary_expression "bVar2 == 0x20" identifier == number_literal)) )) ;) }) while (parenthesized_expression "(((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0)" ( (binary_expression "((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0" (parenthesized_expression "((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1)" ( (binary_expression "(&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1" (subscript_expression "(&UNK_0002d70a)[(uint)bVar2 + unaff_EBP]" (parenthesized_expression "(&UNK_0002d70a)" ( (pointer_expression "&UNK_0002d70a" & identifier) )) [ (binary_expression "(uint)bVar2 + unaff_EBP" (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier) + identifier) ]) & number_literal) )) != number_literal) )) ;) })) (expression_statement "iVar4 = 3 - (uint)(*(int *)(unaff_EBP + 0x2d81e) == 0);" (assignment_expression "iVar4 = 3 - (uint)(*(int *)(unaff_EBP + 0x2d81e) == 0)" identifier = (binary_expression "3 - (uint)(*(int *)(unaff_EBP + 0x2d81e) == 0)" number_literal - (call_expression "(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(unaff_EBP + 0x2d81e) == 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x2d81e) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x2d81e)" * (cast_expression "(int *)(unaff_EBP + 0x2d81e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x2d81e)" ( (binary_expression "unaff_EBP + 0x2d81e" identifier + number_literal) )))) == number_literal) ))))) ;) (expression_statement "FUN_00024c40(iVar4,0,0);" (call_expression "FUN_00024c40(iVar4,0,0)" identifier (argument_list "(iVar4,0,0)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "FUN_0003f050(*(undefined4 *)(unaff_EBP + 0x36026),iVar4);" (call_expression "FUN_0003f050(*(undefined4 *)(unaff_EBP + 0x36026),iVar4)" identifier (argument_list "(*(undefined4 *)(unaff_EBP + 0x36026),iVar4)" ( (pointer_expression "*(undefined4 *)(unaff_EBP + 0x36026)" * (cast_expression "(undefined4 *)(unaff_EBP + 0x36026)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x36026)" ( (binary_expression "unaff_EBP + 0x36026" identifier + number_literal) )))) , identifier ))) ;) (if_statement "if (*(char *)*puVar1 == ',') {\n    *puVar1 = (char *)*puVar1 + 1;\n    FUN_00031af0((-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8);\n    return;\n  }" if (parenthesized_expression "(*(char *)*puVar1 == ',')" ( (binary_expression "*(char *)*puVar1 == ','" (pointer_expression "*(char *)*puVar1" * (cast_expression "(char *)*puVar1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) == (char_literal "','" ' character ')) )) (compound_statement "{\n    *puVar1 = (char *)*puVar1 + 1;\n    FUN_00031af0((-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8);\n    return;\n  }" { (expression_statement "*puVar1 = (char *)*puVar1 + 1;" (assignment_expression "*puVar1 = (char *)*puVar1 + 1" (pointer_expression "*puVar1" * identifier) = (binary_expression "(char *)*puVar1 + 1" (cast_expression "(char *)*puVar1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier)) + number_literal)) ;) (expression_statement "FUN_00031af0((-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8);" (call_expression "FUN_00031af0((-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8)" identifier (argument_list "((-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8)" ( (binary_expression "(-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8" (parenthesized_expression "(-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc)" ( (binary_expression "-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc" (unary_expression "-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0)" - (call_expression "(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(unaff_EBP + 0x2d81e) == 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x2d81e) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x2d81e)" * (cast_expression "(int *)(unaff_EBP + 0x2d81e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x2d81e)" ( (binary_expression "unaff_EBP + 0x2d81e" identifier + number_literal) )))) == number_literal) )))) & number_literal) )) + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_0002e290();" (call_expression "FUN_0002e290()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) - LIT) & LIT) )) == LIT) || (binary_expression IDENT == LIT)) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ]) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) + LIT)) ;) (do_statement do (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) - LIT) & LIT) )) == LIT) || (binary_expression IDENT == LIT)) )) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ]) & LIT) )) != LIT) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression LIT - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )))) & LIT) )) + LIT) ))) ;) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00041cd0(void)\n\n{\n  undefined4 *puVar1;\n  byte bVar2;\n  byte *pbVar3;\n  int unaff_EBP;\n  int iVar4;\n  \n  FUN_00020010();\n  puVar1 = (undefined4 *)(unaff_EBP + 0x36222);\n  bVar2 = *(byte *)*puVar1;\n  if ((((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20) ||\n     (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0)) {\n    pbVar3 = (byte *)*puVar1 + 1;\n    do {\n      do {\n        *puVar1 = pbVar3;\n        bVar2 = *pbVar3;\n        pbVar3 = pbVar3 + 1;\n      } while (((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20);\n    } while (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0);\n  }\n  iVar4 = 3 - (uint)(*(int *)(unaff_EBP + 0x2d81e) == 0);\n  FUN_00024c40(iVar4,0,0);\n  FUN_0003f050(*(undefined4 *)(unaff_EBP + 0x36026),iVar4);\n  if (*(char *)*puVar1 == ',') {\n    *puVar1 = (char *)*puVar1 + 1;\n    FUN_00031af0((-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8);\n    return;\n  }\n  FUN_0002e290();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00041cd0(void)" (identifier "FUN_00041cd0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  byte bVar2;\n  byte *pbVar3;\n  int unaff_EBP;\n  int iVar4;\n  \n  FUN_00020010();\n  puVar1 = (undefined4 *)(unaff_EBP + 0x36222);\n  bVar2 = *(byte *)*puVar1;\n  if ((((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20) ||\n     (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0)) {\n    pbVar3 = (byte *)*puVar1 + 1;\n    do {\n      do {\n        *puVar1 = pbVar3;\n        bVar2 = *pbVar3;\n        pbVar3 = pbVar3 + 1;\n      } while (((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20);\n    } while (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0);\n  }\n  iVar4 = 3 - (uint)(*(int *)(unaff_EBP + 0x2d81e) == 0);\n  FUN_00024c40(iVar4,0,0);\n  FUN_0003f050(*(undefined4 *)(unaff_EBP + 0x36026),iVar4);\n  if (*(char *)*puVar1 == ',') {\n    *puVar1 = (char *)*puVar1 + 1;\n    FUN_00031af0((-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8);\n    return;\n  }\n  FUN_0002e290();\n  return;\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "byte *pbVar3;" (type_identifier "byte") (pointer_declarator "*pbVar3" (* "*") (identifier "pbVar3")) (; ";")) (declaration "int unaff_EBP;" (primitive_type "int") (identifier "unaff_EBP") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (expression_statement "FUN_00020010();" (call_expression "FUN_00020010()" (identifier "FUN_00020010") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar1 = (undefined4 *)(unaff_EBP + 0x36222);" (assignment_expression "puVar1 = (undefined4 *)(unaff_EBP + 0x36222)" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)(unaff_EBP + 0x36222)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x36222)" (( "(") (binary_expression "unaff_EBP + 0x36222" (identifier "unaff_EBP") (+ "+") (number_literal "0x36222")) () ")")))) (; ";")) (expression_statement "bVar2 = *(byte *)*puVar1;" (assignment_expression "bVar2 = *(byte *)*puVar1" (identifier "bVar2") (= "=") (pointer_expression "*(byte *)*puVar1" (* "*") (cast_expression "(byte *)*puVar1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))))) (; ";")) (if_statement "if ((((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20) ||\n     (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0)) {\n    pbVar3 = (byte *)*puVar1 + 1;\n    do {\n      do {\n        *puVar1 = pbVar3;\n        bVar2 = *pbVar3;\n        pbVar3 = pbVar3 + 1;\n      } while (((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20);\n    } while (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0);\n  }" (if "if") (parenthesized_expression "((((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20) ||\n     (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0))" (( "(") (binary_expression "(((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20) ||\n     (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0)" (parenthesized_expression "(((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20)" (( "(") (binary_expression "((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20" (binary_expression "((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0" (parenthesized_expression "((bVar2 & 0xffffffdf) - 0x5b & 0xfd)" (( "(") (binary_expression "(bVar2 & 0xffffffdf) - 0x5b & 0xfd" (binary_expression "(bVar2 & 0xffffffdf) - 0x5b" (parenthesized_expression "(bVar2 & 0xffffffdf)" (( "(") (binary_expression "bVar2 & 0xffffffdf" (identifier "bVar2") (& "&") (number_literal "0xffffffdf")) () ")")) (- "-") (number_literal "0x5b")) (& "&") (number_literal "0xfd")) () ")")) (== "==") (number_literal "0")) (|| "||") (binary_expression "bVar2 == 0x20" (identifier "bVar2") (== "==") (number_literal "0x20"))) () ")")) (|| "||") (parenthesized_expression "(((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0)" (( "(") (binary_expression "((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0" (parenthesized_expression "((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1)" (( "(") (binary_expression "(&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1" (subscript_expression "(&UNK_0002d70a)[(uint)bVar2 + unaff_EBP]" (parenthesized_expression "(&UNK_0002d70a)" (( "(") (pointer_expression "&UNK_0002d70a" (& "&") (identifier "UNK_0002d70a")) () ")")) ([ "[") (binary_expression "(uint)bVar2 + unaff_EBP" (cast_expression "(uint)bVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar2")) (+ "+") (identifier "unaff_EBP")) (] "]")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    pbVar3 = (byte *)*puVar1 + 1;\n    do {\n      do {\n        *puVar1 = pbVar3;\n        bVar2 = *pbVar3;\n        pbVar3 = pbVar3 + 1;\n      } while (((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20);\n    } while (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0);\n  }" ({ "{") (expression_statement "pbVar3 = (byte *)*puVar1 + 1;" (assignment_expression "pbVar3 = (byte *)*puVar1 + 1" (identifier "pbVar3") (= "=") (binary_expression "(byte *)*puVar1 + 1" (cast_expression "(byte *)*puVar1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) (+ "+") (number_literal "1"))) (; ";")) (do_statement "do {\n      do {\n        *puVar1 = pbVar3;\n        bVar2 = *pbVar3;\n        pbVar3 = pbVar3 + 1;\n      } while (((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20);\n    } while (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0);" (do "do") (compound_statement "{\n      do {\n        *puVar1 = pbVar3;\n        bVar2 = *pbVar3;\n        pbVar3 = pbVar3 + 1;\n      } while (((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20);\n    }" ({ "{") (do_statement "do {\n        *puVar1 = pbVar3;\n        bVar2 = *pbVar3;\n        pbVar3 = pbVar3 + 1;\n      } while (((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20);" (do "do") (compound_statement "{\n        *puVar1 = pbVar3;\n        bVar2 = *pbVar3;\n        pbVar3 = pbVar3 + 1;\n      }" ({ "{") (expression_statement "*puVar1 = pbVar3;" (assignment_expression "*puVar1 = pbVar3" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (identifier "pbVar3")) (; ";")) (expression_statement "bVar2 = *pbVar3;" (assignment_expression "bVar2 = *pbVar3" (identifier "bVar2") (= "=") (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3"))) (; ";")) (expression_statement "pbVar3 = pbVar3 + 1;" (assignment_expression "pbVar3 = pbVar3 + 1" (identifier "pbVar3") (= "=") (binary_expression "pbVar3 + 1" (identifier "pbVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20)" (( "(") (binary_expression "((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20" (binary_expression "((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0" (parenthesized_expression "((bVar2 & 0xffffffdf) - 0x5b & 0xfd)" (( "(") (binary_expression "(bVar2 & 0xffffffdf) - 0x5b & 0xfd" (binary_expression "(bVar2 & 0xffffffdf) - 0x5b" (parenthesized_expression "(bVar2 & 0xffffffdf)" (( "(") (binary_expression "bVar2 & 0xffffffdf" (identifier "bVar2") (& "&") (number_literal "0xffffffdf")) () ")")) (- "-") (number_literal "0x5b")) (& "&") (number_literal "0xfd")) () ")")) (== "==") (number_literal "0")) (|| "||") (binary_expression "bVar2 == 0x20" (identifier "bVar2") (== "==") (number_literal "0x20"))) () ")")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0)" (( "(") (binary_expression "((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0" (parenthesized_expression "((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1)" (( "(") (binary_expression "(&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1" (subscript_expression "(&UNK_0002d70a)[(uint)bVar2 + unaff_EBP]" (parenthesized_expression "(&UNK_0002d70a)" (( "(") (pointer_expression "&UNK_0002d70a" (& "&") (identifier "UNK_0002d70a")) () ")")) ([ "[") (binary_expression "(uint)bVar2 + unaff_EBP" (cast_expression "(uint)bVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar2")) (+ "+") (identifier "unaff_EBP")) (] "]")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar4 = 3 - (uint)(*(int *)(unaff_EBP + 0x2d81e) == 0);" (assignment_expression "iVar4 = 3 - (uint)(*(int *)(unaff_EBP + 0x2d81e) == 0)" (identifier "iVar4") (= "=") (binary_expression "3 - (uint)(*(int *)(unaff_EBP + 0x2d81e) == 0)" (number_literal "3") (- "-") (call_expression "(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(unaff_EBP + 0x2d81e) == 0)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x2d81e) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x2d81e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x2d81e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x2d81e)" (( "(") (binary_expression "unaff_EBP + 0x2d81e" (identifier "unaff_EBP") (+ "+") (number_literal "0x2d81e")) () ")")))) (== "==") (number_literal "0")) () ")"))))) (; ";")) (expression_statement "FUN_00024c40(iVar4,0,0);" (call_expression "FUN_00024c40(iVar4,0,0)" (identifier "FUN_00024c40") (argument_list "(iVar4,0,0)" (( "(") (identifier "iVar4") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_0003f050(*(undefined4 *)(unaff_EBP + 0x36026),iVar4);" (call_expression "FUN_0003f050(*(undefined4 *)(unaff_EBP + 0x36026),iVar4)" (identifier "FUN_0003f050") (argument_list "(*(undefined4 *)(unaff_EBP + 0x36026),iVar4)" (( "(") (pointer_expression "*(undefined4 *)(unaff_EBP + 0x36026)" (* "*") (cast_expression "(undefined4 *)(unaff_EBP + 0x36026)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x36026)" (( "(") (binary_expression "unaff_EBP + 0x36026" (identifier "unaff_EBP") (+ "+") (number_literal "0x36026")) () ")")))) (, ",") (identifier "iVar4") () ")"))) (; ";")) (if_statement "if (*(char *)*puVar1 == ',') {\n    *puVar1 = (char *)*puVar1 + 1;\n    FUN_00031af0((-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8);\n    return;\n  }" (if "if") (parenthesized_expression "(*(char *)*puVar1 == ',')" (( "(") (binary_expression "*(char *)*puVar1 == ','" (pointer_expression "*(char *)*puVar1" (* "*") (cast_expression "(char *)*puVar1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")))) (== "==") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (compound_statement "{\n    *puVar1 = (char *)*puVar1 + 1;\n    FUN_00031af0((-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8);\n    return;\n  }" ({ "{") (expression_statement "*puVar1 = (char *)*puVar1 + 1;" (assignment_expression "*puVar1 = (char *)*puVar1 + 1" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (binary_expression "(char *)*puVar1 + 1" (cast_expression "(char *)*puVar1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_00031af0((-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8);" (call_expression "FUN_00031af0((-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8)" (identifier "FUN_00031af0") (argument_list "((-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8)" (( "(") (binary_expression "(-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8" (parenthesized_expression "(-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc)" (( "(") (binary_expression "-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc" (unary_expression "-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0)" (- "-") (call_expression "(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(unaff_EBP + 0x2d81e) == 0)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x2d81e) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x2d81e)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x2d81e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x2d81e)" (( "(") (binary_expression "unaff_EBP + 0x2d81e" (identifier "unaff_EBP") (+ "+") (number_literal "0x2d81e")) () ")")))) (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0xfffffffc")) () ")")) (+ "+") (number_literal "8")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_0002e290();" (call_expression "FUN_0002e290()" (identifier "FUN_0002e290") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void function_1(int ignore)

{
  type_1 var_1;
  type_1 *pbVar2;
  type_2 align;
  
  var_1 = *var_2;
  if ((((var_1 & 0xffffffdf) - 0x5b & 0xfd) == 0 || var_1 == 0x20) || ((lex_type[var_1] & 1) != 0))
  {
    pbVar2 = (type_1 *)(var_2 + 1);
    do {
      do {
        var_2 = (char *)pbVar2;
        var_1 = *var_2;
        pbVar2 = (type_1 *)var_2 + 1;
      } while (((var_1 & 0xffffffdf) - 0x5b & 0xfd) == 0 || var_1 == 0x20);
    } while ((lex_type[var_1] & 1) != 0);
  }
  align = 3 - (var_3 == 0);
  var_4(align,0,0);
  var_5(now_seg,align);
  if (*var_2 == ',') {
    var_2 = var_2 + 1;
    var_6((-(type_2)(var_3 == 0) & 0xfffffffc) + 8);
    return;
  }
  var_7();
  return;
}


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

void MASKED(void)

{
  undefined4 *puVar1;
  byte bVar2;
  byte *pbVar3;
  int unaff_EBP;
  int iVar4;
  
  FUN_00020010();
  puVar1 = (undefined4 *)(unaff_EBP + 0x36222);
  bVar2 = *(byte *)*puVar1;
  if ((((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20) ||
     (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0)) {
    pbVar3 = (byte *)*puVar1 + 1;
    do {
      do {
        *puVar1 = pbVar3;
        bVar2 = *pbVar3;
        pbVar3 = pbVar3 + 1;
      } while (((bVar2 & 0xffffffdf) - 0x5b & 0xfd) == 0 || bVar2 == 0x20);
    } while (((&UNK_0002d70a)[(uint)bVar2 + unaff_EBP] & 1) != 0);
  }
  iVar4 = 3 - (uint)(*(int *)(unaff_EBP + 0x2d81e) == 0);
  FUN_00024c40(iVar4,0,0);
  FUN_0003f050(*(undefined4 *)(unaff_EBP + 0x36026),iVar4);
  if (*(char *)*puVar1 == ',') {
    *puVar1 = (char *)*puVar1 + 1;
    FUN_00031af0((-(uint)(*(int *)(unaff_EBP + 0x2d81e) == 0) & 0xfffffffc) + 8);
    return;
  }
  FUN_0002e290();
  return;
}

