
int __regparm3 sqlite3VdbeLoadString(Vdbe *p,int iDest,char *zStr)

{
  Op *pOVar1;
  int iVar2;
  int iVar3;
  int unaff_EBX;
  int in_stack_ffffffec;
  int in_stack_fffffff0;
  
  iVar3 = p->nOp;
  if (iVar3 < p->nOpAlloc) {
    p->nOp = iVar3 + 1;
    pOVar1 = p->aOp + iVar3;
    pOVar1->p2 = iDest;
    pOVar1->p3 = 0;
    (pOVar1->p4).i = 0;
    pOVar1->opcode = 'j';
    pOVar1->p4type = '\0';
    pOVar1->p5 = 0;
    pOVar1->p1 = 0;
    pOVar1->zComment = (char *)0x0;
  }
  else {
    iVar3 = growOp3((Vdbe *)iDest,0,in_stack_ffffffec,in_stack_fffffff0,unaff_EBX);
  }
  if (p->db->mallocFailed == '\0') {
    iVar2 = iVar3;
    if (iVar3 < 0) {
      iVar2 = p->nOp + -1;
    }
    vdbeChangeP4Full(p,p->aOp + iVar2,zStr,0);
  }
  return iVar3;
}



int __regparm3 FUN_00073f70(int *param_1,undefined4 param_2)

{
  undefined4 *puVar1;
  int iVar2;
  
  iVar2 = param_1[0x1a];
  if (iVar2 < param_1[0x1b]) {
    param_1[0x1a] = iVar2 + 1;
    puVar1 = (undefined4 *)(param_1[0x19] + iVar2 * 0x18);
    puVar1[2] = param_2;
    puVar1[3] = 0;
    puVar1[4] = 0;
    *puVar1 = 0x6a;
    puVar1[1] = 0;
    puVar1[5] = 0;
  }
  else {
    iVar2 = FUN_00072e30(param_2,0);
  }
  if (*(char *)(*param_1 + 0x4d) == '\0') {
    FUN_000627d0(0);
  }
  return iVar2;
}


PUSH EDI
MOV EDI,ECX
PUSH ESI
PUSH EBX
MOV EBX,EAX
MOV ESI,dword ptr [EAX + 0x68]
CMP ESI,dword ptr [EAX + 0x6c]
JGE 0x00073ff0
MOV ECX,dword ptr [EBX + 0x64]
LEA EAX,[ESI + 0x1]
MOV dword ptr [EBX + 0x68],EAX
LEA EAX,[ESI + ESI*0x2]
LEA EAX,[ECX + EAX*0x8]
MOV dword ptr [EAX + 0x8],EDX
MOV dword ptr [EAX + 0xc],0x0
MOV dword ptr [EAX + 0x10],0x0
MOV dword ptr [EAX],0x6a
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX + 0x14],0x0
MOV EAX,dword ptr [EBX]
CMP byte ptr [EAX + 0x4d],0x0
JNZ 0x00073fdb
MOV EAX,ESI
TEST ESI,ESI
JS 0x00073fe8
SUB ESP,0xc
LEA EDX,[EAX + EAX*0x2]
MOV EAX,dword ptr [EBX + 0x64]
MOV ECX,EDI
PUSH 0x0
LEA EDX,[EAX + EDX*0x8]
MOV EAX,EBX
CALL 0x000627d0
ADD ESP,0x10
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
RET
MOV EAX,dword ptr [EBX + 0x68]
SUB EAX,0x1
JMP 0x00073fc1
SUB ESP,0x8
XOR ECX,ECX
PUSH 0x0
PUSH EDX
MOV EDX,0x6a
CALL 0x00072e30
ADD ESP,0x10
MOV ESI,EAX
JMP 0x00073fb3
(translation_unit "int __regparm3 FUN_00073f70(int *param_1,undefined4 param_2)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  \n  iVar2 = param_1[0x1a];\n  if (iVar2 < param_1[0x1b]) {\n    param_1[0x1a] = iVar2 + 1;\n    puVar1 = (undefined4 *)(param_1[0x19] + iVar2 * 0x18);\n    puVar1[2] = param_2;\n    puVar1[3] = 0;\n    puVar1[4] = 0;\n    *puVar1 = 0x6a;\n    puVar1[1] = 0;\n    puVar1[5] = 0;\n  }\n  else {\n    iVar2 = FUN_00072e30(param_2,0);\n  }\n  if (*(char *)(*param_1 + 0x4d) == '\0') {\n    FUN_000627d0(0);\n  }\n  return iVar2;\n}\n\n" (function_definition "int __regparm3 FUN_00073f70(int *param_1,undefined4 param_2)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  \n  iVar2 = param_1[0x1a];\n  if (iVar2 < param_1[0x1b]) {\n    param_1[0x1a] = iVar2 + 1;\n    puVar1 = (undefined4 *)(param_1[0x19] + iVar2 * 0x18);\n    puVar1[2] = param_2;\n    puVar1[3] = 0;\n    puVar1[4] = 0;\n    *puVar1 = 0x6a;\n    puVar1[1] = 0;\n    puVar1[5] = 0;\n  }\n  else {\n    iVar2 = FUN_00072e30(param_2,0);\n  }\n  if (*(char *)(*param_1 + 0x4d) == '\0') {\n    FUN_000627d0(0);\n  }\n  return iVar2;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00073f70(int *param_1,undefined4 param_2)" identifier (parameter_list "(int *param_1,undefined4 param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  int iVar2;\n  \n  iVar2 = param_1[0x1a];\n  if (iVar2 < param_1[0x1b]) {\n    param_1[0x1a] = iVar2 + 1;\n    puVar1 = (undefined4 *)(param_1[0x19] + iVar2 * 0x18);\n    puVar1[2] = param_2;\n    puVar1[3] = 0;\n    puVar1[4] = 0;\n    *puVar1 = 0x6a;\n    puVar1[1] = 0;\n    puVar1[5] = 0;\n  }\n  else {\n    iVar2 = FUN_00072e30(param_2,0);\n  }\n  if (*(char *)(*param_1 + 0x4d) == '\0') {\n    FUN_000627d0(0);\n  }\n  return iVar2;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (expression_statement "iVar2 = param_1[0x1a];" (assignment_expression "iVar2 = param_1[0x1a]" identifier = (subscript_expression "param_1[0x1a]" identifier [ number_literal ])) ;) (if_statement "if (iVar2 < param_1[0x1b]) {\n    param_1[0x1a] = iVar2 + 1;\n    puVar1 = (undefined4 *)(param_1[0x19] + iVar2 * 0x18);\n    puVar1[2] = param_2;\n    puVar1[3] = 0;\n    puVar1[4] = 0;\n    *puVar1 = 0x6a;\n    puVar1[1] = 0;\n    puVar1[5] = 0;\n  }\n  else {\n    iVar2 = FUN_00072e30(param_2,0);\n  }" if (parenthesized_expression "(iVar2 < param_1[0x1b])" ( (binary_expression "iVar2 < param_1[0x1b]" identifier < (subscript_expression "param_1[0x1b]" identifier [ number_literal ])) )) (compound_statement "{\n    param_1[0x1a] = iVar2 + 1;\n    puVar1 = (undefined4 *)(param_1[0x19] + iVar2 * 0x18);\n    puVar1[2] = param_2;\n    puVar1[3] = 0;\n    puVar1[4] = 0;\n    *puVar1 = 0x6a;\n    puVar1[1] = 0;\n    puVar1[5] = 0;\n  }" { (expression_statement "param_1[0x1a] = iVar2 + 1;" (assignment_expression "param_1[0x1a] = iVar2 + 1" (subscript_expression "param_1[0x1a]" identifier [ number_literal ]) = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "puVar1 = (undefined4 *)(param_1[0x19] + iVar2 * 0x18);" (assignment_expression "puVar1 = (undefined4 *)(param_1[0x19] + iVar2 * 0x18)" identifier = (cast_expression "(undefined4 *)(param_1[0x19] + iVar2 * 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x19] + iVar2 * 0x18)" ( (binary_expression "param_1[0x19] + iVar2 * 0x18" (subscript_expression "param_1[0x19]" identifier [ number_literal ]) + (binary_expression "iVar2 * 0x18" identifier * number_literal)) )))) ;) (expression_statement "puVar1[2] = param_2;" (assignment_expression "puVar1[2] = param_2" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[3] = 0;" (assignment_expression "puVar1[3] = 0" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[4] = 0;" (assignment_expression "puVar1[4] = 0" (subscript_expression "puVar1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar1 = 0x6a;" (assignment_expression "*puVar1 = 0x6a" (pointer_expression "*puVar1" * identifier) = number_literal) ;) (expression_statement "puVar1[1] = 0;" (assignment_expression "puVar1[1] = 0" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[5] = 0;" (assignment_expression "puVar1[5] = 0" (subscript_expression "puVar1[5]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n    iVar2 = FUN_00072e30(param_2,0);\n  }" else (compound_statement "{\n    iVar2 = FUN_00072e30(param_2,0);\n  }" { (expression_statement "iVar2 = FUN_00072e30(param_2,0);" (assignment_expression "iVar2 = FUN_00072e30(param_2,0)" identifier = (call_expression "FUN_00072e30(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal )))) ;) }))) (if_statement "if (*(char *)(*param_1 + 0x4d) == '\0') {\n    FUN_000627d0(0);\n  }" if (parenthesized_expression "(*(char *)(*param_1 + 0x4d) == '\0')" ( (binary_expression "*(char *)(*param_1 + 0x4d) == '\0'" (pointer_expression "*(char *)(*param_1 + 0x4d)" * (cast_expression "(char *)(*param_1 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x4d)" ( (binary_expression "*param_1 + 0x4d" (pointer_expression "*param_1" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    FUN_000627d0(0);\n  }" { (expression_statement "FUN_000627d0(0);" (call_expression "FUN_000627d0(0)" identifier (argument_list "(0)" ( number_literal ))) ;) })) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit "int __regparm3 sqlite3VdbeLoadString(Vdbe *p,int iDest,char *zStr)\n\n{\n  Op *pOVar1;\n  int iVar2;\n  int iVar3;\n  int unaff_EBX;\n  int in_stack_ffffffec;\n  int in_stack_fffffff0;\n  \n  iVar3 = p->nOp;\n  if (iVar3 < p->nOpAlloc) {\n    p->nOp = iVar3 + 1;\n    pOVar1 = p->aOp + iVar3;\n    pOVar1->p2 = iDest;\n    pOVar1->p3 = 0;\n    (pOVar1->p4).i = 0;\n    pOVar1->opcode = 'j';\n    pOVar1->p4type = '\0';\n    pOVar1->p5 = 0;\n    pOVar1->p1 = 0;\n    pOVar1->zComment = (char *)0x0;\n  }\n  else {\n    iVar3 = growOp3((Vdbe *)iDest,0,in_stack_ffffffec,in_stack_fffffff0,unaff_EBX);\n  }\n  if (p->db->mallocFailed == '\0') {\n    iVar2 = iVar3;\n    if (iVar3 < 0) {\n      iVar2 = p->nOp + -1;\n    }\n    vdbeChangeP4Full(p,p->aOp + iVar2,zStr,0);\n  }\n  return iVar3;\n}\n\n" (function_definition "int __regparm3 sqlite3VdbeLoadString(Vdbe *p,int iDest,char *zStr)\n\n{\n  Op *pOVar1;\n  int iVar2;\n  int iVar3;\n  int unaff_EBX;\n  int in_stack_ffffffec;\n  int in_stack_fffffff0;\n  \n  iVar3 = p->nOp;\n  if (iVar3 < p->nOpAlloc) {\n    p->nOp = iVar3 + 1;\n    pOVar1 = p->aOp + iVar3;\n    pOVar1->p2 = iDest;\n    pOVar1->p3 = 0;\n    (pOVar1->p4).i = 0;\n    pOVar1->opcode = 'j';\n    pOVar1->p4type = '\0';\n    pOVar1->p5 = 0;\n    pOVar1->p1 = 0;\n    pOVar1->zComment = (char *)0x0;\n  }\n  else {\n    iVar3 = growOp3((Vdbe *)iDest,0,in_stack_ffffffec,in_stack_fffffff0,unaff_EBX);\n  }\n  if (p->db->mallocFailed == '\0') {\n    iVar2 = iVar3;\n    if (iVar3 < 0) {\n      iVar2 = p->nOp + -1;\n    }\n    vdbeChangeP4Full(p,p->aOp + iVar2,zStr,0);\n  }\n  return iVar3;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "sqlite3VdbeLoadString(Vdbe *p,int iDest,char *zStr)" identifier (parameter_list "(Vdbe *p,int iDest,char *zStr)" ( (parameter_declaration "Vdbe *p" type_identifier (pointer_declarator "*p" * identifier)) , (parameter_declaration "int iDest" primitive_type identifier) , (parameter_declaration "char *zStr" primitive_type (pointer_declarator "*zStr" * identifier)) ))) (compound_statement "{\n  Op *pOVar1;\n  int iVar2;\n  int iVar3;\n  int unaff_EBX;\n  int in_stack_ffffffec;\n  int in_stack_fffffff0;\n  \n  iVar3 = p->nOp;\n  if (iVar3 < p->nOpAlloc) {\n    p->nOp = iVar3 + 1;\n    pOVar1 = p->aOp + iVar3;\n    pOVar1->p2 = iDest;\n    pOVar1->p3 = 0;\n    (pOVar1->p4).i = 0;\n    pOVar1->opcode = 'j';\n    pOVar1->p4type = '\0';\n    pOVar1->p5 = 0;\n    pOVar1->p1 = 0;\n    pOVar1->zComment = (char *)0x0;\n  }\n  else {\n    iVar3 = growOp3((Vdbe *)iDest,0,in_stack_ffffffec,in_stack_fffffff0,unaff_EBX);\n  }\n  if (p->db->mallocFailed == '\0') {\n    iVar2 = iVar3;\n    if (iVar3 < 0) {\n      iVar2 = p->nOp + -1;\n    }\n    vdbeChangeP4Full(p,p->aOp + iVar2,zStr,0);\n  }\n  return iVar3;\n}" { (declaration "Op *pOVar1;" type_identifier (pointer_declarator "*pOVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int unaff_EBX;" primitive_type identifier ;) (declaration "int in_stack_ffffffec;" primitive_type identifier ;) (declaration "int in_stack_fffffff0;" primitive_type identifier ;) (expression_statement "iVar3 = p->nOp;" (assignment_expression "iVar3 = p->nOp" identifier = (field_expression "p->nOp" identifier -> field_identifier)) ;) (if_statement "if (iVar3 < p->nOpAlloc) {\n    p->nOp = iVar3 + 1;\n    pOVar1 = p->aOp + iVar3;\n    pOVar1->p2 = iDest;\n    pOVar1->p3 = 0;\n    (pOVar1->p4).i = 0;\n    pOVar1->opcode = 'j';\n    pOVar1->p4type = '\0';\n    pOVar1->p5 = 0;\n    pOVar1->p1 = 0;\n    pOVar1->zComment = (char *)0x0;\n  }\n  else {\n    iVar3 = growOp3((Vdbe *)iDest,0,in_stack_ffffffec,in_stack_fffffff0,unaff_EBX);\n  }" if (parenthesized_expression "(iVar3 < p->nOpAlloc)" ( (binary_expression "iVar3 < p->nOpAlloc" identifier < (field_expression "p->nOpAlloc" identifier -> field_identifier)) )) (compound_statement "{\n    p->nOp = iVar3 + 1;\n    pOVar1 = p->aOp + iVar3;\n    pOVar1->p2 = iDest;\n    pOVar1->p3 = 0;\n    (pOVar1->p4).i = 0;\n    pOVar1->opcode = 'j';\n    pOVar1->p4type = '\0';\n    pOVar1->p5 = 0;\n    pOVar1->p1 = 0;\n    pOVar1->zComment = (char *)0x0;\n  }" { (expression_statement "p->nOp = iVar3 + 1;" (assignment_expression "p->nOp = iVar3 + 1" (field_expression "p->nOp" identifier -> field_identifier) = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "pOVar1 = p->aOp + iVar3;" (assignment_expression "pOVar1 = p->aOp + iVar3" identifier = (binary_expression "p->aOp + iVar3" (field_expression "p->aOp" identifier -> field_identifier) + identifier)) ;) (expression_statement "pOVar1->p2 = iDest;" (assignment_expression "pOVar1->p2 = iDest" (field_expression "pOVar1->p2" identifier -> field_identifier) = identifier) ;) (expression_statement "pOVar1->p3 = 0;" (assignment_expression "pOVar1->p3 = 0" (field_expression "pOVar1->p3" identifier -> field_identifier) = number_literal) ;) (expression_statement "(pOVar1->p4).i = 0;" (assignment_expression "(pOVar1->p4).i = 0" (field_expression "(pOVar1->p4).i" (parenthesized_expression "(pOVar1->p4)" ( (field_expression "pOVar1->p4" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "pOVar1->opcode = 'j';" (assignment_expression "pOVar1->opcode = 'j'" (field_expression "pOVar1->opcode" identifier -> field_identifier) = (char_literal "'j'" ' character ')) ;) (expression_statement "pOVar1->p4type = '\0';" (assignment_expression "pOVar1->p4type = '\0'" (field_expression "pOVar1->p4type" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pOVar1->p5 = 0;" (assignment_expression "pOVar1->p5 = 0" (field_expression "pOVar1->p5" identifier -> field_identifier) = number_literal) ;) (expression_statement "pOVar1->p1 = 0;" (assignment_expression "pOVar1->p1 = 0" (field_expression "pOVar1->p1" identifier -> field_identifier) = number_literal) ;) (expression_statement "pOVar1->zComment = (char *)0x0;" (assignment_expression "pOVar1->zComment = (char *)0x0" (field_expression "pOVar1->zComment" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    iVar3 = growOp3((Vdbe *)iDest,0,in_stack_ffffffec,in_stack_fffffff0,unaff_EBX);\n  }" else (compound_statement "{\n    iVar3 = growOp3((Vdbe *)iDest,0,in_stack_ffffffec,in_stack_fffffff0,unaff_EBX);\n  }" { (expression_statement "iVar3 = growOp3((Vdbe *)iDest,0,in_stack_ffffffec,in_stack_fffffff0,unaff_EBX);" (assignment_expression "iVar3 = growOp3((Vdbe *)iDest,0,in_stack_ffffffec,in_stack_fffffff0,unaff_EBX)" identifier = (call_expression "growOp3((Vdbe *)iDest,0,in_stack_ffffffec,in_stack_fffffff0,unaff_EBX)" identifier (argument_list "((Vdbe *)iDest,0,in_stack_ffffffec,in_stack_fffffff0,unaff_EBX)" ( (cast_expression "(Vdbe *)iDest" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , identifier , identifier , identifier )))) ;) }))) (if_statement "if (p->db->mallocFailed == '\0') {\n    iVar2 = iVar3;\n    if (iVar3 < 0) {\n      iVar2 = p->nOp + -1;\n    }\n    vdbeChangeP4Full(p,p->aOp + iVar2,zStr,0);\n  }" if (parenthesized_expression "(p->db->mallocFailed == '\0')" ( (binary_expression "p->db->mallocFailed == '\0'" (field_expression "p->db->mallocFailed" (field_expression "p->db" identifier -> field_identifier) -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar2 = iVar3;\n    if (iVar3 < 0) {\n      iVar2 = p->nOp + -1;\n    }\n    vdbeChangeP4Full(p,p->aOp + iVar2,zStr,0);\n  }" { (expression_statement "iVar2 = iVar3;" (assignment_expression "iVar2 = iVar3" identifier = identifier) ;) (if_statement "if (iVar3 < 0) {\n      iVar2 = p->nOp + -1;\n    }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n      iVar2 = p->nOp + -1;\n    }" { (expression_statement "iVar2 = p->nOp + -1;" (assignment_expression "iVar2 = p->nOp + -1" identifier = (binary_expression "p->nOp + -1" (field_expression "p->nOp" identifier -> field_identifier) + number_literal)) ;) })) (expression_statement "vdbeChangeP4Full(p,p->aOp + iVar2,zStr,0);" (call_expression "vdbeChangeP4Full(p,p->aOp + iVar2,zStr,0)" identifier (argument_list "(p,p->aOp + iVar2,zStr,0)" ( identifier , (binary_expression "p->aOp + iVar2" (field_expression "p->aOp" identifier -> field_identifier) + identifier) , identifier , number_literal ))) ;) })) (return_statement "return iVar3;" return identifier ;) })))
(translation_unit "int __regparm3 FUN_00073f70(int *param_1,undefined4 param_2)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  \n  iVar2 = param_1[0x1a];\n  if (iVar2 < param_1[0x1b]) {\n    param_1[0x1a] = iVar2 + 1;\n    puVar1 = (undefined4 *)(param_1[0x19] + iVar2 * 0x18);\n    puVar1[2] = param_2;\n    puVar1[3] = 0;\n    puVar1[4] = 0;\n    *puVar1 = 0x6a;\n    puVar1[1] = 0;\n    puVar1[5] = 0;\n  }\n  else {\n    iVar2 = FUN_00072e30(param_2,0);\n  }\n  if (*(char *)(*param_1 + 0x4d) == '\0') {\n    FUN_000627d0(0);\n  }\n  return iVar2;\n}\n\n" (function_definition "int __regparm3 FUN_00073f70(int *param_1,undefined4 param_2)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  \n  iVar2 = param_1[0x1a];\n  if (iVar2 < param_1[0x1b]) {\n    param_1[0x1a] = iVar2 + 1;\n    puVar1 = (undefined4 *)(param_1[0x19] + iVar2 * 0x18);\n    puVar1[2] = param_2;\n    puVar1[3] = 0;\n    puVar1[4] = 0;\n    *puVar1 = 0x6a;\n    puVar1[1] = 0;\n    puVar1[5] = 0;\n  }\n  else {\n    iVar2 = FUN_00072e30(param_2,0);\n  }\n  if (*(char *)(*param_1 + 0x4d) == '\0') {\n    FUN_000627d0(0);\n  }\n  return iVar2;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00073f70(int *param_1,undefined4 param_2)" identifier (parameter_list "(int *param_1,undefined4 param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  int iVar2;\n  \n  iVar2 = param_1[0x1a];\n  if (iVar2 < param_1[0x1b]) {\n    param_1[0x1a] = iVar2 + 1;\n    puVar1 = (undefined4 *)(param_1[0x19] + iVar2 * 0x18);\n    puVar1[2] = param_2;\n    puVar1[3] = 0;\n    puVar1[4] = 0;\n    *puVar1 = 0x6a;\n    puVar1[1] = 0;\n    puVar1[5] = 0;\n  }\n  else {\n    iVar2 = FUN_00072e30(param_2,0);\n  }\n  if (*(char *)(*param_1 + 0x4d) == '\0') {\n    FUN_000627d0(0);\n  }\n  return iVar2;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (expression_statement "iVar2 = param_1[0x1a];" (assignment_expression "iVar2 = param_1[0x1a]" identifier = (subscript_expression "param_1[0x1a]" identifier [ number_literal ])) ;) (if_statement "if (iVar2 < param_1[0x1b]) {\n    param_1[0x1a] = iVar2 + 1;\n    puVar1 = (undefined4 *)(param_1[0x19] + iVar2 * 0x18);\n    puVar1[2] = param_2;\n    puVar1[3] = 0;\n    puVar1[4] = 0;\n    *puVar1 = 0x6a;\n    puVar1[1] = 0;\n    puVar1[5] = 0;\n  }\n  else {\n    iVar2 = FUN_00072e30(param_2,0);\n  }" if (parenthesized_expression "(iVar2 < param_1[0x1b])" ( (binary_expression "iVar2 < param_1[0x1b]" identifier < (subscript_expression "param_1[0x1b]" identifier [ number_literal ])) )) (compound_statement "{\n    param_1[0x1a] = iVar2 + 1;\n    puVar1 = (undefined4 *)(param_1[0x19] + iVar2 * 0x18);\n    puVar1[2] = param_2;\n    puVar1[3] = 0;\n    puVar1[4] = 0;\n    *puVar1 = 0x6a;\n    puVar1[1] = 0;\n    puVar1[5] = 0;\n  }" { (expression_statement "param_1[0x1a] = iVar2 + 1;" (assignment_expression "param_1[0x1a] = iVar2 + 1" (subscript_expression "param_1[0x1a]" identifier [ number_literal ]) = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "puVar1 = (undefined4 *)(param_1[0x19] + iVar2 * 0x18);" (assignment_expression "puVar1 = (undefined4 *)(param_1[0x19] + iVar2 * 0x18)" identifier = (cast_expression "(undefined4 *)(param_1[0x19] + iVar2 * 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x19] + iVar2 * 0x18)" ( (binary_expression "param_1[0x19] + iVar2 * 0x18" (subscript_expression "param_1[0x19]" identifier [ number_literal ]) + (binary_expression "iVar2 * 0x18" identifier * number_literal)) )))) ;) (expression_statement "puVar1[2] = param_2;" (assignment_expression "puVar1[2] = param_2" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[3] = 0;" (assignment_expression "puVar1[3] = 0" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[4] = 0;" (assignment_expression "puVar1[4] = 0" (subscript_expression "puVar1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar1 = 0x6a;" (assignment_expression "*puVar1 = 0x6a" (pointer_expression "*puVar1" * identifier) = number_literal) ;) (expression_statement "puVar1[1] = 0;" (assignment_expression "puVar1[1] = 0" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[5] = 0;" (assignment_expression "puVar1[5] = 0" (subscript_expression "puVar1[5]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n    iVar2 = FUN_00072e30(param_2,0);\n  }" else (compound_statement "{\n    iVar2 = FUN_00072e30(param_2,0);\n  }" { (expression_statement "iVar2 = FUN_00072e30(param_2,0);" (assignment_expression "iVar2 = FUN_00072e30(param_2,0)" identifier = (call_expression "FUN_00072e30(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal )))) ;) }))) (if_statement "if (*(char *)(*param_1 + 0x4d) == '\0') {\n    FUN_000627d0(0);\n  }" if (parenthesized_expression "(*(char *)(*param_1 + 0x4d) == '\0')" ( (binary_expression "*(char *)(*param_1 + 0x4d) == '\0'" (pointer_expression "*(char *)(*param_1 + 0x4d)" * (cast_expression "(char *)(*param_1 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x4d)" ( (binary_expression "*param_1 + 0x4d" (pointer_expression "*param_1" * identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    FUN_000627d0(0);\n  }" { (expression_statement "FUN_000627d0(0);" (call_expression "FUN_000627d0(0)" identifier (argument_list "(0)" ( number_literal ))) ;) })) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "int __regparm3 FUN_00073f70(int *param_1,undefined4 param_2)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  \n  iVar2 = param_1[0x1a];\n  if (iVar2 < param_1[0x1b]) {\n    param_1[0x1a] = iVar2 + 1;\n    puVar1 = (undefined4 *)(param_1[0x19] + iVar2 * 0x18);\n    puVar1[2] = param_2;\n    puVar1[3] = 0;\n    puVar1[4] = 0;\n    *puVar1 = 0x6a;\n    puVar1[1] = 0;\n    puVar1[5] = 0;\n  }\n  else {\n    iVar2 = FUN_00072e30(param_2,0);\n  }\n  if (*(char *)(*param_1 + 0x4d) == '\0') {\n    FUN_000627d0(0);\n  }\n  return iVar2;\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00073f70(int *param_1,undefined4 param_2)" (identifier "FUN_00073f70") (parameter_list "(int *param_1,undefined4 param_2)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  int iVar2;\n  \n  iVar2 = param_1[0x1a];\n  if (iVar2 < param_1[0x1b]) {\n    param_1[0x1a] = iVar2 + 1;\n    puVar1 = (undefined4 *)(param_1[0x19] + iVar2 * 0x18);\n    puVar1[2] = param_2;\n    puVar1[3] = 0;\n    puVar1[4] = 0;\n    *puVar1 = 0x6a;\n    puVar1[1] = 0;\n    puVar1[5] = 0;\n  }\n  else {\n    iVar2 = FUN_00072e30(param_2,0);\n  }\n  if (*(char *)(*param_1 + 0x4d) == '\0') {\n    FUN_000627d0(0);\n  }\n  return iVar2;\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (expression_statement "iVar2 = param_1[0x1a];" (assignment_expression "iVar2 = param_1[0x1a]" (identifier "iVar2") (= "=") (subscript_expression "param_1[0x1a]" (identifier "param_1") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (if_statement "if (iVar2 < param_1[0x1b]) {\n    param_1[0x1a] = iVar2 + 1;\n    puVar1 = (undefined4 *)(param_1[0x19] + iVar2 * 0x18);\n    puVar1[2] = param_2;\n    puVar1[3] = 0;\n    puVar1[4] = 0;\n    *puVar1 = 0x6a;\n    puVar1[1] = 0;\n    puVar1[5] = 0;\n  }\n  else {\n    iVar2 = FUN_00072e30(param_2,0);\n  }" (if "if") (parenthesized_expression "(iVar2 < param_1[0x1b])" (( "(") (binary_expression "iVar2 < param_1[0x1b]" (identifier "iVar2") (< "<") (subscript_expression "param_1[0x1b]" (identifier "param_1") ([ "[") (number_literal "0x1b") (] "]"))) () ")")) (compound_statement "{\n    param_1[0x1a] = iVar2 + 1;\n    puVar1 = (undefined4 *)(param_1[0x19] + iVar2 * 0x18);\n    puVar1[2] = param_2;\n    puVar1[3] = 0;\n    puVar1[4] = 0;\n    *puVar1 = 0x6a;\n    puVar1[1] = 0;\n    puVar1[5] = 0;\n  }" ({ "{") (expression_statement "param_1[0x1a] = iVar2 + 1;" (assignment_expression "param_1[0x1a] = iVar2 + 1" (subscript_expression "param_1[0x1a]" (identifier "param_1") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar1 = (undefined4 *)(param_1[0x19] + iVar2 * 0x18);" (assignment_expression "puVar1 = (undefined4 *)(param_1[0x19] + iVar2 * 0x18)" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)(param_1[0x19] + iVar2 * 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0x19] + iVar2 * 0x18)" (( "(") (binary_expression "param_1[0x19] + iVar2 * 0x18" (subscript_expression "param_1[0x19]" (identifier "param_1") ([ "[") (number_literal "0x19") (] "]")) (+ "+") (binary_expression "iVar2 * 0x18" (identifier "iVar2") (* "*") (number_literal "0x18"))) () ")")))) (; ";")) (expression_statement "puVar1[2] = param_2;" (assignment_expression "puVar1[2] = param_2" (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "param_2")) (; ";")) (expression_statement "puVar1[3] = 0;" (assignment_expression "puVar1[3] = 0" (subscript_expression "puVar1[3]" (identifier "puVar1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[4] = 0;" (assignment_expression "puVar1[4] = 0" (subscript_expression "puVar1[4]" (identifier "puVar1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar1 = 0x6a;" (assignment_expression "*puVar1 = 0x6a" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (number_literal "0x6a")) (; ";")) (expression_statement "puVar1[1] = 0;" (assignment_expression "puVar1[1] = 0" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[5] = 0;" (assignment_expression "puVar1[5] = 0" (subscript_expression "puVar1[5]" (identifier "puVar1") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    iVar2 = FUN_00072e30(param_2,0);\n  }" (else "else") (compound_statement "{\n    iVar2 = FUN_00072e30(param_2,0);\n  }" ({ "{") (expression_statement "iVar2 = FUN_00072e30(param_2,0);" (assignment_expression "iVar2 = FUN_00072e30(param_2,0)" (identifier "iVar2") (= "=") (call_expression "FUN_00072e30(param_2,0)" (identifier "FUN_00072e30") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")))) (if_statement "if (*(char *)(*param_1 + 0x4d) == '\0') {\n    FUN_000627d0(0);\n  }" (if "if") (parenthesized_expression "(*(char *)(*param_1 + 0x4d) == '\0')" (( "(") (binary_expression "*(char *)(*param_1 + 0x4d) == '\0'" (pointer_expression "*(char *)(*param_1 + 0x4d)" (* "*") (cast_expression "(char *)(*param_1 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x4d)" (( "(") (binary_expression "*param_1 + 0x4d" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x4d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    FUN_000627d0(0);\n  }" ({ "{") (expression_statement "FUN_000627d0(0);" (call_expression "FUN_000627d0(0)" (identifier "FUN_000627d0") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}"))) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}")))

int __regparm3 function_1(type_1 *p,int iDest,char *zStr)

{
  type_2 *pOVar1;
  int var_4;
  int var_1;
  int unaff_EBX;
  int in_stack_ffffffec;
  int in_stack_fffffff0;
  
  var_1 = p->nOp;
  if (var_1 < p->nOpAlloc) {
    p->nOp = var_1 + 1;
    pOVar1 = p->aOp + var_1;
    pOVar1->p2 = iDest;
    pOVar1->p3 = 0;
    (pOVar1->p4).i = 0;
    pOVar1->opcode = 'j';
    pOVar1->p4type = '\0';
    pOVar1->p5 = 0;
    pOVar1->p1 = 0;
    pOVar1->zComment = (char *)0x0;
  }
  else {
    var_1 = var_2((type_1 *)iDest,0,in_stack_ffffffec,in_stack_fffffff0,unaff_EBX);
  }
  if (p->db->mallocFailed == '\0') {
    var_4 = var_1;
    if (var_1 < 0) {
      var_4 = p->nOp + -1;
    }
    var_3(p,p->aOp + var_4,zStr,0);
  }
  return var_1;
}


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

int __regparm3 MASKED(int *param_1,undefined4 param_2)

{
  undefined4 *puVar1;
  int iVar2;
  
  iVar2 = param_1[0x1a];
  if (iVar2 < param_1[0x1b]) {
    param_1[0x1a] = iVar2 + 1;
    puVar1 = (undefined4 *)(param_1[0x19] + iVar2 * 0x18);
    puVar1[2] = param_2;
    puVar1[3] = 0;
    puVar1[4] = 0;
    *puVar1 = 0x6a;
    puVar1[1] = 0;
    puVar1[5] = 0;
  }
  else {
    iVar2 = FUN_00072e30(param_2,0);
  }
  if (*(char *)(*param_1 + 0x4d) == '\0') {
    FUN_000627d0(0);
  }
  return iVar2;
}

