
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Variable defined which should be unmapped: value */

void __regparm3 codeReal(Vdbe *v,char *z,int negateFlag,int iMem)

{
  Op *pOVar1;
  size_t sVar2;
  char *zP4;
  int addr;
  int in_GS_OFFSET;
  int in_stack_ffffffcc;
  int p3;
  double value;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x4a0eb;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (z != (char *)0x0) {
    sVar2 = strlen(z);
    value = 0.0;
    if ((sVar2 & 0x3fffffff) != 0) {
      sqlite3AtoF(z,&value,sVar2 & 0x3fffffff,'\x01');
    }
    if (negateFlag != 0) {
      value = -value;
    }
    p3 = 0x4a142;
    zP4 = (char *)sqlite3DbMallocRawNN(v->db,(u64)value);
    if (zP4 != (char *)0x0) {
      *(undefined4 *)zP4 = value._0_4_;
      *(undefined4 *)(zP4 + 4) = value._4_4_;
    }
    addr = v->nOp;
    if (addr < v->nOpAlloc) {
      v->nOp = addr + 1;
      pOVar1 = v->aOp + addr;
      pOVar1->p2 = iMem;
      pOVar1->p3 = 0;
      (pOVar1->p4).i = 0;
      pOVar1->opcode = 0x96;
      pOVar1->p4type = '\0';
      pOVar1->p5 = 0;
      pOVar1->p1 = 0;
    }
    else {
      addr = growOp3(v,iMem,0,in_stack_ffffffcc,p3);
    }
    sqlite3VdbeChangeP4(v,addr,zP4,-0xd);
  }
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return;
}



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

void __regparm3 FUN_0004a0e0(int param_1,char *param_2,int param_3,undefined4 param_4)

{
  int iVar1;
  int iVar2;
  size_t sVar3;
  undefined4 *puVar4;
  int in_GS_OFFSET;
  undefined4 uStack_28;
  
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  if (param_2 != (char *)0x0) {
    sVar3 = strlen(param_2);
    uStack_28 = 0;
    if ((sVar3 & 0x3fffffff) != 0) {
      FUN_00023dc0(1);
    }
    if (param_3 != 0) {
      uStack_28 = 0x80000000;
    }
    puVar4 = (undefined4 *)FUN_0002ef70();
    if (puVar4 != (undefined4 *)0x0) {
      *puVar4 = 0;
      puVar4[1] = uStack_28;
    }
    iVar2 = *(int *)(param_1 + 0x68);
    if (iVar2 < *(int *)(param_1 + 0x6c)) {
      *(int *)(param_1 + 0x68) = iVar2 + 1;
      puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14);
      puVar4[2] = param_4;
      puVar4[3] = 0;
      puVar4[4] = 0;
      *puVar4 = 0x96;
      puVar4[1] = 0;
    }
    else {
      FUN_00049170(param_4,0);
    }
    FUN_000436c0(0xfffffff3);
  }
  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_000d1450();
  }
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
MOV ESI,EAX
CALL 0x0001ddf0
ADD EBX,0xbbf15
SUB ESP,0x1c
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0xc],EAX
XOR EAX,EAX
TEST EDX,EDX
JZ 0x0004a1a2
SUB ESP,0xc
MOV EDI,EDX
MOV EBP,ECX
PUSH EDX
CALL 0x000167d0
FLDZ
ADD ESP,0x10
AND EAX,0x3fffffff
FSTP qword ptr [ESP]
JNZ 0x0004a1c0
TEST EBP,EBP
JZ 0x0004a134
FLD qword ptr [ESP]
FCHS
FSTP qword ptr [ESP]
MOV EAX,dword ptr [ESI]
XOR ECX,ECX
MOV EDX,0x8
CALL 0x0002ef70
TEST EAX,EAX
MOV EBX,EAX
JZ 0x0004a154
MOV EAX,dword ptr [ESP]
MOV EDX,dword ptr [ESP + 0x4]
MOV dword ptr [EBX],EAX
MOV dword ptr [EBX + 0x4],EDX
MOV EDX,dword ptr [ESI + 0x68]
CMP EDX,dword ptr [ESI + 0x6c]
JGE 0x0004a1e0
LEA EAX,[EDX + 0x1]
MOV ECX,dword ptr [ESI + 0x64]
MOV EDI,dword ptr [ESP + 0x30]
MOV dword ptr [ESI + 0x68],EAX
LEA EAX,[EDX + EDX*0x4]
LEA EAX,[ECX + EAX*0x4]
MOV dword ptr [EAX + 0x8],EDI
MOV dword ptr [EAX + 0xc],0x0
MOV dword ptr [EAX + 0x10],0x0
MOV dword ptr [EAX],0x96
MOV dword ptr [EAX + 0x4],0x0
SUB ESP,0xc
MOV ECX,EBX
MOV EAX,ESI
PUSH -0xd
CALL 0x000436c0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0xc]
XOR EAX,dword ptr GS:[0x14]
JNZ 0x0004a1fe
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDX,ESP
SUB ESP,0xc
MOV ECX,EAX
PUSH 0x1
MOV EAX,EDI
CALL 0x00023dc0
ADD ESP,0x10
TEST EBP,EBP
JZ 0x0004a134
JMP 0x0004a12c
SUB ESP,0x8
MOV EDX,0x96
XOR ECX,ECX
PUSH 0x0
PUSH dword ptr [ESP + 0x3c]
MOV EAX,ESI
CALL 0x00049170
ADD ESP,0x10
MOV EDX,EAX
JMP 0x0004a191
CALL 0x000d1450
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 FUN_0004a0e0(int param_1,char *param_2,int param_3,undefined4 param_4)\n\n{\n  int iVar1;\n  int iVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  int in_GS_OFFSET;\n  undefined4 uStack_28;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    uStack_28 = 0;\n    if ((sVar3 & 0x3fffffff) != 0) {\n      FUN_00023dc0(1);\n    }\n    if (param_3 != 0) {\n      uStack_28 = 0x80000000;\n    }\n    puVar4 = (undefined4 *)FUN_0002ef70();\n    if (puVar4 != (undefined4 *)0x0) {\n      *puVar4 = 0;\n      puVar4[1] = uStack_28;\n    }\n    iVar2 = *(int *)(param_1 + 0x68);\n    if (iVar2 < *(int *)(param_1 + 0x6c)) {\n      *(int *)(param_1 + 0x68) = iVar2 + 1;\n      puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14);\n      puVar4[2] = param_4;\n      puVar4[3] = 0;\n      puVar4[4] = 0;\n      *puVar4 = 0x96;\n      puVar4[1] = 0;\n    }\n    else {\n      FUN_00049170(param_4,0);\n    }\n    FUN_000436c0(0xfffffff3);\n  }\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000d1450();\n  }\n  return;\n}\n\n" comment (function_definition "void __regparm3 FUN_0004a0e0(int param_1,char *param_2,int param_3,undefined4 param_4)\n\n{\n  int iVar1;\n  int iVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  int in_GS_OFFSET;\n  undefined4 uStack_28;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    uStack_28 = 0;\n    if ((sVar3 & 0x3fffffff) != 0) {\n      FUN_00023dc0(1);\n    }\n    if (param_3 != 0) {\n      uStack_28 = 0x80000000;\n    }\n    puVar4 = (undefined4 *)FUN_0002ef70();\n    if (puVar4 != (undefined4 *)0x0) {\n      *puVar4 = 0;\n      puVar4[1] = uStack_28;\n    }\n    iVar2 = *(int *)(param_1 + 0x68);\n    if (iVar2 < *(int *)(param_1 + 0x6c)) {\n      *(int *)(param_1 + 0x68) = iVar2 + 1;\n      puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14);\n      puVar4[2] = param_4;\n      puVar4[3] = 0;\n      puVar4[4] = 0;\n      *puVar4 = 0x96;\n      puVar4[1] = 0;\n    }\n    else {\n      FUN_00049170(param_4,0);\n    }\n    FUN_000436c0(0xfffffff3);\n  }\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000d1450();\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0004a0e0(int param_1,char *param_2,int param_3,undefined4 param_4)" identifier (parameter_list "(int param_1,char *param_2,int param_3,undefined4 param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  int in_GS_OFFSET;\n  undefined4 uStack_28;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    uStack_28 = 0;\n    if ((sVar3 & 0x3fffffff) != 0) {\n      FUN_00023dc0(1);\n    }\n    if (param_3 != 0) {\n      uStack_28 = 0x80000000;\n    }\n    puVar4 = (undefined4 *)FUN_0002ef70();\n    if (puVar4 != (undefined4 *)0x0) {\n      *puVar4 = 0;\n      puVar4[1] = uStack_28;\n    }\n    iVar2 = *(int *)(param_1 + 0x68);\n    if (iVar2 < *(int *)(param_1 + 0x6c)) {\n      *(int *)(param_1 + 0x68) = iVar2 + 1;\n      puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14);\n      puVar4[2] = param_4;\n      puVar4[3] = 0;\n      puVar4[4] = 0;\n      *puVar4 = 0x96;\n      puVar4[1] = 0;\n    }\n    else {\n      FUN_00049170(param_4,0);\n    }\n    FUN_000436c0(0xfffffff3);\n  }\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000d1450();\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined4 uStack_28;" type_identifier identifier ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (param_2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    uStack_28 = 0;\n    if ((sVar3 & 0x3fffffff) != 0) {\n      FUN_00023dc0(1);\n    }\n    if (param_3 != 0) {\n      uStack_28 = 0x80000000;\n    }\n    puVar4 = (undefined4 *)FUN_0002ef70();\n    if (puVar4 != (undefined4 *)0x0) {\n      *puVar4 = 0;\n      puVar4[1] = uStack_28;\n    }\n    iVar2 = *(int *)(param_1 + 0x68);\n    if (iVar2 < *(int *)(param_1 + 0x6c)) {\n      *(int *)(param_1 + 0x68) = iVar2 + 1;\n      puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14);\n      puVar4[2] = param_4;\n      puVar4[3] = 0;\n      puVar4[4] = 0;\n      *puVar4 = 0x96;\n      puVar4[1] = 0;\n    }\n    else {\n      FUN_00049170(param_4,0);\n    }\n    FUN_000436c0(0xfffffff3);\n  }" if (parenthesized_expression "(param_2 != (char *)0x0)" ( (binary_expression "param_2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar3 = strlen(param_2);\n    uStack_28 = 0;\n    if ((sVar3 & 0x3fffffff) != 0) {\n      FUN_00023dc0(1);\n    }\n    if (param_3 != 0) {\n      uStack_28 = 0x80000000;\n    }\n    puVar4 = (undefined4 *)FUN_0002ef70();\n    if (puVar4 != (undefined4 *)0x0) {\n      *puVar4 = 0;\n      puVar4[1] = uStack_28;\n    }\n    iVar2 = *(int *)(param_1 + 0x68);\n    if (iVar2 < *(int *)(param_1 + 0x6c)) {\n      *(int *)(param_1 + 0x68) = iVar2 + 1;\n      puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14);\n      puVar4[2] = param_4;\n      puVar4[3] = 0;\n      puVar4[4] = 0;\n      *puVar4 = 0x96;\n      puVar4[1] = 0;\n    }\n    else {\n      FUN_00049170(param_4,0);\n    }\n    FUN_000436c0(0xfffffff3);\n  }" { (expression_statement "sVar3 = strlen(param_2);" (assignment_expression "sVar3 = strlen(param_2)" identifier = (call_expression "strlen(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "uStack_28 = 0;" (assignment_expression "uStack_28 = 0" identifier = number_literal) ;) (if_statement "if ((sVar3 & 0x3fffffff) != 0) {\n      FUN_00023dc0(1);\n    }" if (parenthesized_expression "((sVar3 & 0x3fffffff) != 0)" ( (binary_expression "(sVar3 & 0x3fffffff) != 0" (parenthesized_expression "(sVar3 & 0x3fffffff)" ( (binary_expression "sVar3 & 0x3fffffff" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      FUN_00023dc0(1);\n    }" { (expression_statement "FUN_00023dc0(1);" (call_expression "FUN_00023dc0(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (if_statement "if (param_3 != 0) {\n      uStack_28 = 0x80000000;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      uStack_28 = 0x80000000;\n    }" { (expression_statement "uStack_28 = 0x80000000;" (assignment_expression "uStack_28 = 0x80000000" identifier = number_literal) ;) })) (expression_statement "puVar4 = (undefined4 *)FUN_0002ef70();" (assignment_expression "puVar4 = (undefined4 *)FUN_0002ef70()" identifier = (cast_expression "(undefined4 *)FUN_0002ef70()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002ef70()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (puVar4 != (undefined4 *)0x0) {\n      *puVar4 = 0;\n      puVar4[1] = uStack_28;\n    }" if (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *puVar4 = 0;\n      puVar4[1] = uStack_28;\n    }" { (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "puVar4[1] = uStack_28;" (assignment_expression "puVar4[1] = uStack_28" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "iVar2 = *(int *)(param_1 + 0x68);" (assignment_expression "iVar2 = *(int *)(param_1 + 0x68)" identifier = (pointer_expression "*(int *)(param_1 + 0x68)" * (cast_expression "(int *)(param_1 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 < *(int *)(param_1 + 0x6c)) {\n      *(int *)(param_1 + 0x68) = iVar2 + 1;\n      puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14);\n      puVar4[2] = param_4;\n      puVar4[3] = 0;\n      puVar4[4] = 0;\n      *puVar4 = 0x96;\n      puVar4[1] = 0;\n    }\n    else {\n      FUN_00049170(param_4,0);\n    }" if (parenthesized_expression "(iVar2 < *(int *)(param_1 + 0x6c))" ( (binary_expression "iVar2 < *(int *)(param_1 + 0x6c)" identifier < (pointer_expression "*(int *)(param_1 + 0x6c)" * (cast_expression "(int *)(param_1 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x6c)" ( (binary_expression "param_1 + 0x6c" identifier + number_literal) ))))) )) (compound_statement "{\n      *(int *)(param_1 + 0x68) = iVar2 + 1;\n      puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14);\n      puVar4[2] = param_4;\n      puVar4[3] = 0;\n      puVar4[4] = 0;\n      *puVar4 = 0x96;\n      puVar4[1] = 0;\n    }" { (expression_statement "*(int *)(param_1 + 0x68) = iVar2 + 1;" (assignment_expression "*(int *)(param_1 + 0x68) = iVar2 + 1" (pointer_expression "*(int *)(param_1 + 0x68)" * (cast_expression "(int *)(param_1 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14);" (assignment_expression "puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14)" identifier = (cast_expression "(undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 100) + iVar2 * 0x14)" ( (binary_expression "*(int *)(param_1 + 100) + iVar2 * 0x14" (pointer_expression "*(int *)(param_1 + 100)" * (cast_expression "(int *)(param_1 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) + (binary_expression "iVar2 * 0x14" identifier * number_literal)) )))) ;) (expression_statement "puVar4[2] = param_4;" (assignment_expression "puVar4[2] = param_4" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = 0;" (assignment_expression "puVar4[3] = 0" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[4] = 0;" (assignment_expression "puVar4[4] = 0" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar4 = 0x96;" (assignment_expression "*puVar4 = 0x96" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n      FUN_00049170(param_4,0);\n    }" else (compound_statement "{\n      FUN_00049170(param_4,0);\n    }" { (expression_statement "FUN_00049170(param_4,0);" (call_expression "FUN_00049170(param_4,0)" identifier (argument_list "(param_4,0)" ( identifier , number_literal ))) ;) }))) (expression_statement "FUN_000436c0(0xfffffff3);" (call_expression "FUN_000436c0(0xfffffff3)" identifier (argument_list "(0xfffffff3)" ( number_literal ))) ;) })) (if_statement "if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000d1450();\n  }" if (parenthesized_expression "(iVar1 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_000d1450();\n  }" { comment (expression_statement "FUN_000d1450();" (call_expression "FUN_000d1450()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Variable defined which should be unmapped: value */\n\nvoid __regparm3 codeReal(Vdbe *v,char *z,int negateFlag,int iMem)\n\n{\n  Op *pOVar1;\n  size_t sVar2;\n  char *zP4;\n  int addr;\n  int in_GS_OFFSET;\n  int in_stack_ffffffcc;\n  int p3;\n  double value;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4a0eb;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (z != (char *)0x0) {\n    sVar2 = strlen(z);\n    value = 0.0;\n    if ((sVar2 & 0x3fffffff) != 0) {\n      sqlite3AtoF(z,&value,sVar2 & 0x3fffffff,'\x01');\n    }\n    if (negateFlag != 0) {\n      value = -value;\n    }\n    p3 = 0x4a142;\n    zP4 = (char *)sqlite3DbMallocRawNN(v->db,(u64)value);\n    if (zP4 != (char *)0x0) {\n      *(undefined4 *)zP4 = value._0_4_;\n      *(undefined4 *)(zP4 + 4) = value._4_4_;\n    }\n    addr = v->nOp;\n    if (addr < v->nOpAlloc) {\n      v->nOp = addr + 1;\n      pOVar1 = v->aOp + addr;\n      pOVar1->p2 = iMem;\n      pOVar1->p3 = 0;\n      (pOVar1->p4).i = 0;\n      pOVar1->opcode = 0x96;\n      pOVar1->p4type = '\0';\n      pOVar1->p5 = 0;\n      pOVar1->p1 = 0;\n    }\n    else {\n      addr = growOp3(v,iMem,0,in_stack_ffffffcc,p3);\n    }\n    sqlite3VdbeChangeP4(v,addr,zP4,-0xd);\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return;\n}\n\n" comment comment (function_definition "void __regparm3 codeReal(Vdbe *v,char *z,int negateFlag,int iMem)\n\n{\n  Op *pOVar1;\n  size_t sVar2;\n  char *zP4;\n  int addr;\n  int in_GS_OFFSET;\n  int in_stack_ffffffcc;\n  int p3;\n  double value;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4a0eb;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (z != (char *)0x0) {\n    sVar2 = strlen(z);\n    value = 0.0;\n    if ((sVar2 & 0x3fffffff) != 0) {\n      sqlite3AtoF(z,&value,sVar2 & 0x3fffffff,'\x01');\n    }\n    if (negateFlag != 0) {\n      value = -value;\n    }\n    p3 = 0x4a142;\n    zP4 = (char *)sqlite3DbMallocRawNN(v->db,(u64)value);\n    if (zP4 != (char *)0x0) {\n      *(undefined4 *)zP4 = value._0_4_;\n      *(undefined4 *)(zP4 + 4) = value._4_4_;\n    }\n    addr = v->nOp;\n    if (addr < v->nOpAlloc) {\n      v->nOp = addr + 1;\n      pOVar1 = v->aOp + addr;\n      pOVar1->p2 = iMem;\n      pOVar1->p3 = 0;\n      (pOVar1->p4).i = 0;\n      pOVar1->opcode = 0x96;\n      pOVar1->p4type = '\0';\n      pOVar1->p5 = 0;\n      pOVar1->p1 = 0;\n    }\n    else {\n      addr = growOp3(v,iMem,0,in_stack_ffffffcc,p3);\n    }\n    sqlite3VdbeChangeP4(v,addr,zP4,-0xd);\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "codeReal(Vdbe *v,char *z,int negateFlag,int iMem)" identifier (parameter_list "(Vdbe *v,char *z,int negateFlag,int iMem)" ( (parameter_declaration "Vdbe *v" type_identifier (pointer_declarator "*v" * identifier)) , (parameter_declaration "char *z" primitive_type (pointer_declarator "*z" * identifier)) , (parameter_declaration "int negateFlag" primitive_type identifier) , (parameter_declaration "int iMem" primitive_type identifier) ))) (compound_statement "{\n  Op *pOVar1;\n  size_t sVar2;\n  char *zP4;\n  int addr;\n  int in_GS_OFFSET;\n  int in_stack_ffffffcc;\n  int p3;\n  double value;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4a0eb;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (z != (char *)0x0) {\n    sVar2 = strlen(z);\n    value = 0.0;\n    if ((sVar2 & 0x3fffffff) != 0) {\n      sqlite3AtoF(z,&value,sVar2 & 0x3fffffff,'\x01');\n    }\n    if (negateFlag != 0) {\n      value = -value;\n    }\n    p3 = 0x4a142;\n    zP4 = (char *)sqlite3DbMallocRawNN(v->db,(u64)value);\n    if (zP4 != (char *)0x0) {\n      *(undefined4 *)zP4 = value._0_4_;\n      *(undefined4 *)(zP4 + 4) = value._4_4_;\n    }\n    addr = v->nOp;\n    if (addr < v->nOpAlloc) {\n      v->nOp = addr + 1;\n      pOVar1 = v->aOp + addr;\n      pOVar1->p2 = iMem;\n      pOVar1->p3 = 0;\n      (pOVar1->p4).i = 0;\n      pOVar1->opcode = 0x96;\n      pOVar1->p4type = '\0';\n      pOVar1->p5 = 0;\n      pOVar1->p1 = 0;\n    }\n    else {\n      addr = growOp3(v,iMem,0,in_stack_ffffffcc,p3);\n    }\n    sqlite3VdbeChangeP4(v,addr,zP4,-0xd);\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return;\n}" { (declaration "Op *pOVar1;" type_identifier (pointer_declarator "*pOVar1" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "char *zP4;" primitive_type (pointer_declarator "*zP4" * identifier) ;) (declaration "int addr;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int in_stack_ffffffcc;" primitive_type identifier ;) (declaration "int p3;" primitive_type identifier ;) (declaration "double value;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x4a0eb;" (assignment_expression "uStack_14 = 0x4a0eb" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (z != (char *)0x0) {\n    sVar2 = strlen(z);\n    value = 0.0;\n    if ((sVar2 & 0x3fffffff) != 0) {\n      sqlite3AtoF(z,&value,sVar2 & 0x3fffffff,'\x01');\n    }\n    if (negateFlag != 0) {\n      value = -value;\n    }\n    p3 = 0x4a142;\n    zP4 = (char *)sqlite3DbMallocRawNN(v->db,(u64)value);\n    if (zP4 != (char *)0x0) {\n      *(undefined4 *)zP4 = value._0_4_;\n      *(undefined4 *)(zP4 + 4) = value._4_4_;\n    }\n    addr = v->nOp;\n    if (addr < v->nOpAlloc) {\n      v->nOp = addr + 1;\n      pOVar1 = v->aOp + addr;\n      pOVar1->p2 = iMem;\n      pOVar1->p3 = 0;\n      (pOVar1->p4).i = 0;\n      pOVar1->opcode = 0x96;\n      pOVar1->p4type = '\0';\n      pOVar1->p5 = 0;\n      pOVar1->p1 = 0;\n    }\n    else {\n      addr = growOp3(v,iMem,0,in_stack_ffffffcc,p3);\n    }\n    sqlite3VdbeChangeP4(v,addr,zP4,-0xd);\n  }" if (parenthesized_expression "(z != (char *)0x0)" ( (binary_expression "z != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar2 = strlen(z);\n    value = 0.0;\n    if ((sVar2 & 0x3fffffff) != 0) {\n      sqlite3AtoF(z,&value,sVar2 & 0x3fffffff,'\x01');\n    }\n    if (negateFlag != 0) {\n      value = -value;\n    }\n    p3 = 0x4a142;\n    zP4 = (char *)sqlite3DbMallocRawNN(v->db,(u64)value);\n    if (zP4 != (char *)0x0) {\n      *(undefined4 *)zP4 = value._0_4_;\n      *(undefined4 *)(zP4 + 4) = value._4_4_;\n    }\n    addr = v->nOp;\n    if (addr < v->nOpAlloc) {\n      v->nOp = addr + 1;\n      pOVar1 = v->aOp + addr;\n      pOVar1->p2 = iMem;\n      pOVar1->p3 = 0;\n      (pOVar1->p4).i = 0;\n      pOVar1->opcode = 0x96;\n      pOVar1->p4type = '\0';\n      pOVar1->p5 = 0;\n      pOVar1->p1 = 0;\n    }\n    else {\n      addr = growOp3(v,iMem,0,in_stack_ffffffcc,p3);\n    }\n    sqlite3VdbeChangeP4(v,addr,zP4,-0xd);\n  }" { (expression_statement "sVar2 = strlen(z);" (assignment_expression "sVar2 = strlen(z)" identifier = (call_expression "strlen(z)" identifier (argument_list "(z)" ( identifier )))) ;) (expression_statement "value = 0.0;" (assignment_expression "value = 0.0" identifier = number_literal) ;) (if_statement "if ((sVar2 & 0x3fffffff) != 0) {\n      sqlite3AtoF(z,&value,sVar2 & 0x3fffffff,'\x01');\n    }" if (parenthesized_expression "((sVar2 & 0x3fffffff) != 0)" ( (binary_expression "(sVar2 & 0x3fffffff) != 0" (parenthesized_expression "(sVar2 & 0x3fffffff)" ( (binary_expression "sVar2 & 0x3fffffff" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      sqlite3AtoF(z,&value,sVar2 & 0x3fffffff,'\x01');\n    }" { (expression_statement "sqlite3AtoF(z,&value,sVar2 & 0x3fffffff,'\x01');" (call_expression "sqlite3AtoF(z,&value,sVar2 & 0x3fffffff,'\x01')" identifier (argument_list "(z,&value,sVar2 & 0x3fffffff,'\x01')" ( identifier , (pointer_expression "&value" & identifier) , (binary_expression "sVar2 & 0x3fffffff" identifier & number_literal) , (char_literal "'\x01'" ' escape_sequence ') ))) ;) })) (if_statement "if (negateFlag != 0) {\n      value = -value;\n    }" if (parenthesized_expression "(negateFlag != 0)" ( (binary_expression "negateFlag != 0" identifier != number_literal) )) (compound_statement "{\n      value = -value;\n    }" { (expression_statement "value = -value;" (assignment_expression "value = -value" identifier = (unary_expression "-value" - identifier)) ;) })) (expression_statement "p3 = 0x4a142;" (assignment_expression "p3 = 0x4a142" identifier = number_literal) ;) (expression_statement "zP4 = (char *)sqlite3DbMallocRawNN(v->db,(u64)value);" (assignment_expression "zP4 = (char *)sqlite3DbMallocRawNN(v->db,(u64)value)" identifier = (cast_expression "(char *)sqlite3DbMallocRawNN(v->db,(u64)value)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3DbMallocRawNN(v->db,(u64)value)" identifier (argument_list "(v->db,(u64)value)" ( (field_expression "v->db" identifier -> field_identifier) , (cast_expression "(u64)value" ( (type_descriptor "u64" type_identifier) ) identifier) ))))) ;) (if_statement "if (zP4 != (char *)0x0) {\n      *(undefined4 *)zP4 = value._0_4_;\n      *(undefined4 *)(zP4 + 4) = value._4_4_;\n    }" if (parenthesized_expression "(zP4 != (char *)0x0)" ( (binary_expression "zP4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *(undefined4 *)zP4 = value._0_4_;\n      *(undefined4 *)(zP4 + 4) = value._4_4_;\n    }" { (expression_statement "*(undefined4 *)zP4 = value._0_4_;" (assignment_expression "*(undefined4 *)zP4 = value._0_4_" (pointer_expression "*(undefined4 *)zP4" * (cast_expression "(undefined4 *)zP4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (field_expression "value._0_4_" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)(zP4 + 4) = value._4_4_;" (assignment_expression "*(undefined4 *)(zP4 + 4) = value._4_4_" (pointer_expression "*(undefined4 *)(zP4 + 4)" * (cast_expression "(undefined4 *)(zP4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(zP4 + 4)" ( (binary_expression "zP4 + 4" identifier + number_literal) )))) = (field_expression "value._4_4_" identifier . field_identifier)) ;) })) (expression_statement "addr = v->nOp;" (assignment_expression "addr = v->nOp" identifier = (field_expression "v->nOp" identifier -> field_identifier)) ;) (if_statement "if (addr < v->nOpAlloc) {\n      v->nOp = addr + 1;\n      pOVar1 = v->aOp + addr;\n      pOVar1->p2 = iMem;\n      pOVar1->p3 = 0;\n      (pOVar1->p4).i = 0;\n      pOVar1->opcode = 0x96;\n      pOVar1->p4type = '\0';\n      pOVar1->p5 = 0;\n      pOVar1->p1 = 0;\n    }\n    else {\n      addr = growOp3(v,iMem,0,in_stack_ffffffcc,p3);\n    }" if (parenthesized_expression "(addr < v->nOpAlloc)" ( (binary_expression "addr < v->nOpAlloc" identifier < (field_expression "v->nOpAlloc" identifier -> field_identifier)) )) (compound_statement "{\n      v->nOp = addr + 1;\n      pOVar1 = v->aOp + addr;\n      pOVar1->p2 = iMem;\n      pOVar1->p3 = 0;\n      (pOVar1->p4).i = 0;\n      pOVar1->opcode = 0x96;\n      pOVar1->p4type = '\0';\n      pOVar1->p5 = 0;\n      pOVar1->p1 = 0;\n    }" { (expression_statement "v->nOp = addr + 1;" (assignment_expression "v->nOp = addr + 1" (field_expression "v->nOp" identifier -> field_identifier) = (binary_expression "addr + 1" identifier + number_literal)) ;) (expression_statement "pOVar1 = v->aOp + addr;" (assignment_expression "pOVar1 = v->aOp + addr" identifier = (binary_expression "v->aOp + addr" (field_expression "v->aOp" identifier -> field_identifier) + identifier)) ;) (expression_statement "pOVar1->p2 = iMem;" (assignment_expression "pOVar1->p2 = iMem" (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 = 0x96;" (assignment_expression "pOVar1->opcode = 0x96" (field_expression "pOVar1->opcode" identifier -> field_identifier) = number_literal) ;) (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) ;) }) (else_clause "else {\n      addr = growOp3(v,iMem,0,in_stack_ffffffcc,p3);\n    }" else (compound_statement "{\n      addr = growOp3(v,iMem,0,in_stack_ffffffcc,p3);\n    }" { (expression_statement "addr = growOp3(v,iMem,0,in_stack_ffffffcc,p3);" (assignment_expression "addr = growOp3(v,iMem,0,in_stack_ffffffcc,p3)" identifier = (call_expression "growOp3(v,iMem,0,in_stack_ffffffcc,p3)" identifier (argument_list "(v,iMem,0,in_stack_ffffffcc,p3)" ( identifier , identifier , number_literal , identifier , identifier )))) ;) }))) (expression_statement "sqlite3VdbeChangeP4(v,addr,zP4,-0xd);" (call_expression "sqlite3VdbeChangeP4(v,addr,zP4,-0xd)" identifier (argument_list "(v,addr,zP4,-0xd)" ( identifier , identifier , identifier , number_literal ))) ;) })) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void __regparm3 FUN_0004a0e0(int param_1,char *param_2,int param_3,undefined4 param_4)\n\n{\n  int iVar1;\n  int iVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  int in_GS_OFFSET;\n  undefined4 uStack_28;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    uStack_28 = 0;\n    if ((sVar3 & 0x3fffffff) != 0) {\n      FUN_00023dc0(1);\n    }\n    if (param_3 != 0) {\n      uStack_28 = 0x80000000;\n    }\n    puVar4 = (undefined4 *)FUN_0002ef70();\n    if (puVar4 != (undefined4 *)0x0) {\n      *puVar4 = 0;\n      puVar4[1] = uStack_28;\n    }\n    iVar2 = *(int *)(param_1 + 0x68);\n    if (iVar2 < *(int *)(param_1 + 0x6c)) {\n      *(int *)(param_1 + 0x68) = iVar2 + 1;\n      puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14);\n      puVar4[2] = param_4;\n      puVar4[3] = 0;\n      puVar4[4] = 0;\n      *puVar4 = 0x96;\n      puVar4[1] = 0;\n    }\n    else {\n      FUN_00049170(param_4,0);\n    }\n    FUN_000436c0(0xfffffff3);\n  }\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000d1450();\n  }\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_0004a0e0(int param_1,char *param_2,int param_3,undefined4 param_4)\n\n{\n  int iVar1;\n  int iVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  int in_GS_OFFSET;\n  undefined4 uStack_28;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    uStack_28 = 0;\n    if ((sVar3 & 0x3fffffff) != 0) {\n      FUN_00023dc0(1);\n    }\n    if (param_3 != 0) {\n      uStack_28 = 0x80000000;\n    }\n    puVar4 = (undefined4 *)FUN_0002ef70();\n    if (puVar4 != (undefined4 *)0x0) {\n      *puVar4 = 0;\n      puVar4[1] = uStack_28;\n    }\n    iVar2 = *(int *)(param_1 + 0x68);\n    if (iVar2 < *(int *)(param_1 + 0x6c)) {\n      *(int *)(param_1 + 0x68) = iVar2 + 1;\n      puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14);\n      puVar4[2] = param_4;\n      puVar4[3] = 0;\n      puVar4[4] = 0;\n      *puVar4 = 0x96;\n      puVar4[1] = 0;\n    }\n    else {\n      FUN_00049170(param_4,0);\n    }\n    FUN_000436c0(0xfffffff3);\n  }\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000d1450();\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0004a0e0(int param_1,char *param_2,int param_3,undefined4 param_4)" identifier (parameter_list "(int param_1,char *param_2,int param_3,undefined4 param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  int in_GS_OFFSET;\n  undefined4 uStack_28;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    uStack_28 = 0;\n    if ((sVar3 & 0x3fffffff) != 0) {\n      FUN_00023dc0(1);\n    }\n    if (param_3 != 0) {\n      uStack_28 = 0x80000000;\n    }\n    puVar4 = (undefined4 *)FUN_0002ef70();\n    if (puVar4 != (undefined4 *)0x0) {\n      *puVar4 = 0;\n      puVar4[1] = uStack_28;\n    }\n    iVar2 = *(int *)(param_1 + 0x68);\n    if (iVar2 < *(int *)(param_1 + 0x6c)) {\n      *(int *)(param_1 + 0x68) = iVar2 + 1;\n      puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14);\n      puVar4[2] = param_4;\n      puVar4[3] = 0;\n      puVar4[4] = 0;\n      *puVar4 = 0x96;\n      puVar4[1] = 0;\n    }\n    else {\n      FUN_00049170(param_4,0);\n    }\n    FUN_000436c0(0xfffffff3);\n  }\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000d1450();\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined4 uStack_28;" type_identifier identifier ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (param_2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    uStack_28 = 0;\n    if ((sVar3 & 0x3fffffff) != 0) {\n      FUN_00023dc0(1);\n    }\n    if (param_3 != 0) {\n      uStack_28 = 0x80000000;\n    }\n    puVar4 = (undefined4 *)FUN_0002ef70();\n    if (puVar4 != (undefined4 *)0x0) {\n      *puVar4 = 0;\n      puVar4[1] = uStack_28;\n    }\n    iVar2 = *(int *)(param_1 + 0x68);\n    if (iVar2 < *(int *)(param_1 + 0x6c)) {\n      *(int *)(param_1 + 0x68) = iVar2 + 1;\n      puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14);\n      puVar4[2] = param_4;\n      puVar4[3] = 0;\n      puVar4[4] = 0;\n      *puVar4 = 0x96;\n      puVar4[1] = 0;\n    }\n    else {\n      FUN_00049170(param_4,0);\n    }\n    FUN_000436c0(0xfffffff3);\n  }" if (parenthesized_expression "(param_2 != (char *)0x0)" ( (binary_expression "param_2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar3 = strlen(param_2);\n    uStack_28 = 0;\n    if ((sVar3 & 0x3fffffff) != 0) {\n      FUN_00023dc0(1);\n    }\n    if (param_3 != 0) {\n      uStack_28 = 0x80000000;\n    }\n    puVar4 = (undefined4 *)FUN_0002ef70();\n    if (puVar4 != (undefined4 *)0x0) {\n      *puVar4 = 0;\n      puVar4[1] = uStack_28;\n    }\n    iVar2 = *(int *)(param_1 + 0x68);\n    if (iVar2 < *(int *)(param_1 + 0x6c)) {\n      *(int *)(param_1 + 0x68) = iVar2 + 1;\n      puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14);\n      puVar4[2] = param_4;\n      puVar4[3] = 0;\n      puVar4[4] = 0;\n      *puVar4 = 0x96;\n      puVar4[1] = 0;\n    }\n    else {\n      FUN_00049170(param_4,0);\n    }\n    FUN_000436c0(0xfffffff3);\n  }" { (expression_statement "sVar3 = strlen(param_2);" (assignment_expression "sVar3 = strlen(param_2)" identifier = (call_expression "strlen(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "uStack_28 = 0;" (assignment_expression "uStack_28 = 0" identifier = number_literal) ;) (if_statement "if ((sVar3 & 0x3fffffff) != 0) {\n      FUN_00023dc0(1);\n    }" if (parenthesized_expression "((sVar3 & 0x3fffffff) != 0)" ( (binary_expression "(sVar3 & 0x3fffffff) != 0" (parenthesized_expression "(sVar3 & 0x3fffffff)" ( (binary_expression "sVar3 & 0x3fffffff" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      FUN_00023dc0(1);\n    }" { (expression_statement "FUN_00023dc0(1);" (call_expression "FUN_00023dc0(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (if_statement "if (param_3 != 0) {\n      uStack_28 = 0x80000000;\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      uStack_28 = 0x80000000;\n    }" { (expression_statement "uStack_28 = 0x80000000;" (assignment_expression "uStack_28 = 0x80000000" identifier = number_literal) ;) })) (expression_statement "puVar4 = (undefined4 *)FUN_0002ef70();" (assignment_expression "puVar4 = (undefined4 *)FUN_0002ef70()" identifier = (cast_expression "(undefined4 *)FUN_0002ef70()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002ef70()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (puVar4 != (undefined4 *)0x0) {\n      *puVar4 = 0;\n      puVar4[1] = uStack_28;\n    }" if (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *puVar4 = 0;\n      puVar4[1] = uStack_28;\n    }" { (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "puVar4[1] = uStack_28;" (assignment_expression "puVar4[1] = uStack_28" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "iVar2 = *(int *)(param_1 + 0x68);" (assignment_expression "iVar2 = *(int *)(param_1 + 0x68)" identifier = (pointer_expression "*(int *)(param_1 + 0x68)" * (cast_expression "(int *)(param_1 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 < *(int *)(param_1 + 0x6c)) {\n      *(int *)(param_1 + 0x68) = iVar2 + 1;\n      puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14);\n      puVar4[2] = param_4;\n      puVar4[3] = 0;\n      puVar4[4] = 0;\n      *puVar4 = 0x96;\n      puVar4[1] = 0;\n    }\n    else {\n      FUN_00049170(param_4,0);\n    }" if (parenthesized_expression "(iVar2 < *(int *)(param_1 + 0x6c))" ( (binary_expression "iVar2 < *(int *)(param_1 + 0x6c)" identifier < (pointer_expression "*(int *)(param_1 + 0x6c)" * (cast_expression "(int *)(param_1 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x6c)" ( (binary_expression "param_1 + 0x6c" identifier + number_literal) ))))) )) (compound_statement "{\n      *(int *)(param_1 + 0x68) = iVar2 + 1;\n      puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14);\n      puVar4[2] = param_4;\n      puVar4[3] = 0;\n      puVar4[4] = 0;\n      *puVar4 = 0x96;\n      puVar4[1] = 0;\n    }" { (expression_statement "*(int *)(param_1 + 0x68) = iVar2 + 1;" (assignment_expression "*(int *)(param_1 + 0x68) = iVar2 + 1" (pointer_expression "*(int *)(param_1 + 0x68)" * (cast_expression "(int *)(param_1 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14);" (assignment_expression "puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14)" identifier = (cast_expression "(undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 100) + iVar2 * 0x14)" ( (binary_expression "*(int *)(param_1 + 100) + iVar2 * 0x14" (pointer_expression "*(int *)(param_1 + 100)" * (cast_expression "(int *)(param_1 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) + (binary_expression "iVar2 * 0x14" identifier * number_literal)) )))) ;) (expression_statement "puVar4[2] = param_4;" (assignment_expression "puVar4[2] = param_4" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = 0;" (assignment_expression "puVar4[3] = 0" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[4] = 0;" (assignment_expression "puVar4[4] = 0" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar4 = 0x96;" (assignment_expression "*puVar4 = 0x96" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n      FUN_00049170(param_4,0);\n    }" else (compound_statement "{\n      FUN_00049170(param_4,0);\n    }" { (expression_statement "FUN_00049170(param_4,0);" (call_expression "FUN_00049170(param_4,0)" identifier (argument_list "(param_4,0)" ( identifier , number_literal ))) ;) }))) (expression_statement "FUN_000436c0(0xfffffff3);" (call_expression "FUN_000436c0(0xfffffff3)" identifier (argument_list "(0xfffffff3)" ( number_literal ))) ;) })) (if_statement "if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000d1450();\n  }" if (parenthesized_expression "(iVar1 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_000d1450();\n  }" { (expression_statement "FUN_000d1450();" (call_expression "FUN_000d1450()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return ;) })))
(function_definition "void __regparm3 FUN_0004a0e0(int param_1,char *param_2,int param_3,undefined4 param_4)\n\n{\n  int iVar1;\n  int iVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  int in_GS_OFFSET;\n  undefined4 uStack_28;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    uStack_28 = 0;\n    if ((sVar3 & 0x3fffffff) != 0) {\n      FUN_00023dc0(1);\n    }\n    if (param_3 != 0) {\n      uStack_28 = 0x80000000;\n    }\n    puVar4 = (undefined4 *)FUN_0002ef70();\n    if (puVar4 != (undefined4 *)0x0) {\n      *puVar4 = 0;\n      puVar4[1] = uStack_28;\n    }\n    iVar2 = *(int *)(param_1 + 0x68);\n    if (iVar2 < *(int *)(param_1 + 0x6c)) {\n      *(int *)(param_1 + 0x68) = iVar2 + 1;\n      puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14);\n      puVar4[2] = param_4;\n      puVar4[3] = 0;\n      puVar4[4] = 0;\n      *puVar4 = 0x96;\n      puVar4[1] = 0;\n    }\n    else {\n      FUN_00049170(param_4,0);\n    }\n    FUN_000436c0(0xfffffff3);\n  }\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000d1450();\n  }\n  return;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0004a0e0(int param_1,char *param_2,int param_3,undefined4 param_4)" (identifier "FUN_0004a0e0") (parameter_list "(int param_1,char *param_2,int param_3,undefined4 param_4)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  int in_GS_OFFSET;\n  undefined4 uStack_28;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    uStack_28 = 0;\n    if ((sVar3 & 0x3fffffff) != 0) {\n      FUN_00023dc0(1);\n    }\n    if (param_3 != 0) {\n      uStack_28 = 0x80000000;\n    }\n    puVar4 = (undefined4 *)FUN_0002ef70();\n    if (puVar4 != (undefined4 *)0x0) {\n      *puVar4 = 0;\n      puVar4[1] = uStack_28;\n    }\n    iVar2 = *(int *)(param_1 + 0x68);\n    if (iVar2 < *(int *)(param_1 + 0x6c)) {\n      *(int *)(param_1 + 0x68) = iVar2 + 1;\n      puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14);\n      puVar4[2] = param_4;\n      puVar4[3] = 0;\n      puVar4[4] = 0;\n      *puVar4 = 0x96;\n      puVar4[1] = 0;\n    }\n    else {\n      FUN_00049170(param_4,0);\n    }\n    FUN_000436c0(0xfffffff3);\n  }\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000d1450();\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "size_t sVar3;" (primitive_type "size_t") (identifier "sVar3") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "undefined4 uStack_28;" (type_identifier "undefined4") (identifier "uStack_28") (; ";")) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (param_2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    uStack_28 = 0;\n    if ((sVar3 & 0x3fffffff) != 0) {\n      FUN_00023dc0(1);\n    }\n    if (param_3 != 0) {\n      uStack_28 = 0x80000000;\n    }\n    puVar4 = (undefined4 *)FUN_0002ef70();\n    if (puVar4 != (undefined4 *)0x0) {\n      *puVar4 = 0;\n      puVar4[1] = uStack_28;\n    }\n    iVar2 = *(int *)(param_1 + 0x68);\n    if (iVar2 < *(int *)(param_1 + 0x6c)) {\n      *(int *)(param_1 + 0x68) = iVar2 + 1;\n      puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14);\n      puVar4[2] = param_4;\n      puVar4[3] = 0;\n      puVar4[4] = 0;\n      *puVar4 = 0x96;\n      puVar4[1] = 0;\n    }\n    else {\n      FUN_00049170(param_4,0);\n    }\n    FUN_000436c0(0xfffffff3);\n  }" (if "if") (parenthesized_expression "(param_2 != (char *)0x0)" (( "(") (binary_expression "param_2 != (char *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    sVar3 = strlen(param_2);\n    uStack_28 = 0;\n    if ((sVar3 & 0x3fffffff) != 0) {\n      FUN_00023dc0(1);\n    }\n    if (param_3 != 0) {\n      uStack_28 = 0x80000000;\n    }\n    puVar4 = (undefined4 *)FUN_0002ef70();\n    if (puVar4 != (undefined4 *)0x0) {\n      *puVar4 = 0;\n      puVar4[1] = uStack_28;\n    }\n    iVar2 = *(int *)(param_1 + 0x68);\n    if (iVar2 < *(int *)(param_1 + 0x6c)) {\n      *(int *)(param_1 + 0x68) = iVar2 + 1;\n      puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14);\n      puVar4[2] = param_4;\n      puVar4[3] = 0;\n      puVar4[4] = 0;\n      *puVar4 = 0x96;\n      puVar4[1] = 0;\n    }\n    else {\n      FUN_00049170(param_4,0);\n    }\n    FUN_000436c0(0xfffffff3);\n  }" ({ "{") (expression_statement "sVar3 = strlen(param_2);" (assignment_expression "sVar3 = strlen(param_2)" (identifier "sVar3") (= "=") (call_expression "strlen(param_2)" (identifier "strlen") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "uStack_28 = 0;" (assignment_expression "uStack_28 = 0" (identifier "uStack_28") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((sVar3 & 0x3fffffff) != 0) {\n      FUN_00023dc0(1);\n    }" (if "if") (parenthesized_expression "((sVar3 & 0x3fffffff) != 0)" (( "(") (binary_expression "(sVar3 & 0x3fffffff) != 0" (parenthesized_expression "(sVar3 & 0x3fffffff)" (( "(") (binary_expression "sVar3 & 0x3fffffff" (identifier "sVar3") (& "&") (number_literal "0x3fffffff")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00023dc0(1);\n    }" ({ "{") (expression_statement "FUN_00023dc0(1);" (call_expression "FUN_00023dc0(1)" (identifier "FUN_00023dc0") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_3 != 0) {\n      uStack_28 = 0x80000000;\n    }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uStack_28 = 0x80000000;\n    }" ({ "{") (expression_statement "uStack_28 = 0x80000000;" (assignment_expression "uStack_28 = 0x80000000" (identifier "uStack_28") (= "=") (number_literal "0x80000000")) (; ";")) (} "}"))) (expression_statement "puVar4 = (undefined4 *)FUN_0002ef70();" (assignment_expression "puVar4 = (undefined4 *)FUN_0002ef70()" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)FUN_0002ef70()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0002ef70()" (identifier "FUN_0002ef70") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (puVar4 != (undefined4 *)0x0) {\n      *puVar4 = 0;\n      puVar4[1] = uStack_28;\n    }" (if "if") (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar4 != (undefined4 *)0x0" (identifier "puVar4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      *puVar4 = 0;\n      puVar4[1] = uStack_28;\n    }" ({ "{") (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[1] = uStack_28;" (assignment_expression "puVar4[1] = uStack_28" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uStack_28")) (; ";")) (} "}"))) (expression_statement "iVar2 = *(int *)(param_1 + 0x68);" (assignment_expression "iVar2 = *(int *)(param_1 + 0x68)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(param_1 + 0x68)" (* "*") (cast_expression "(int *)(param_1 + 0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")"))))) (; ";")) (if_statement "if (iVar2 < *(int *)(param_1 + 0x6c)) {\n      *(int *)(param_1 + 0x68) = iVar2 + 1;\n      puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14);\n      puVar4[2] = param_4;\n      puVar4[3] = 0;\n      puVar4[4] = 0;\n      *puVar4 = 0x96;\n      puVar4[1] = 0;\n    }\n    else {\n      FUN_00049170(param_4,0);\n    }" (if "if") (parenthesized_expression "(iVar2 < *(int *)(param_1 + 0x6c))" (( "(") (binary_expression "iVar2 < *(int *)(param_1 + 0x6c)" (identifier "iVar2") (< "<") (pointer_expression "*(int *)(param_1 + 0x6c)" (* "*") (cast_expression "(int *)(param_1 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x6c)" (( "(") (binary_expression "param_1 + 0x6c" (identifier "param_1") (+ "+") (number_literal "0x6c")) () ")"))))) () ")")) (compound_statement "{\n      *(int *)(param_1 + 0x68) = iVar2 + 1;\n      puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14);\n      puVar4[2] = param_4;\n      puVar4[3] = 0;\n      puVar4[4] = 0;\n      *puVar4 = 0x96;\n      puVar4[1] = 0;\n    }" ({ "{") (expression_statement "*(int *)(param_1 + 0x68) = iVar2 + 1;" (assignment_expression "*(int *)(param_1 + 0x68) = iVar2 + 1" (pointer_expression "*(int *)(param_1 + 0x68)" (* "*") (cast_expression "(int *)(param_1 + 0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")")))) (= "=") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14);" (assignment_expression "puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14)" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 100) + iVar2 * 0x14)" (( "(") (binary_expression "*(int *)(param_1 + 100) + iVar2 * 0x14" (pointer_expression "*(int *)(param_1 + 100)" (* "*") (cast_expression "(int *)(param_1 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 100)" (( "(") (binary_expression "param_1 + 100" (identifier "param_1") (+ "+") (number_literal "100")) () ")")))) (+ "+") (binary_expression "iVar2 * 0x14" (identifier "iVar2") (* "*") (number_literal "0x14"))) () ")")))) (; ";")) (expression_statement "puVar4[2] = param_4;" (assignment_expression "puVar4[2] = param_4" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "param_4")) (; ";")) (expression_statement "puVar4[3] = 0;" (assignment_expression "puVar4[3] = 0" (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[4] = 0;" (assignment_expression "puVar4[4] = 0" (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar4 = 0x96;" (assignment_expression "*puVar4 = 0x96" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (number_literal "0x96")) (; ";")) (expression_statement "puVar4[1] = 0;" (assignment_expression "puVar4[1] = 0" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      FUN_00049170(param_4,0);\n    }" (else "else") (compound_statement "{\n      FUN_00049170(param_4,0);\n    }" ({ "{") (expression_statement "FUN_00049170(param_4,0);" (call_expression "FUN_00049170(param_4,0)" (identifier "FUN_00049170") (argument_list "(param_4,0)" (( "(") (identifier "param_4") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")))) (expression_statement "FUN_000436c0(0xfffffff3);" (call_expression "FUN_000436c0(0xfffffff3)" (identifier "FUN_000436c0") (argument_list "(0xfffffff3)" (( "(") (number_literal "0xfffffff3") () ")"))) (; ";")) (} "}"))) (if_statement "if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000d1450();\n  }" (if "if") (parenthesized_expression "(iVar1 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "iVar1 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "iVar1") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_000d1450();\n  }" ({ "{") (expression_statement "FUN_000d1450();" (call_expression "FUN_000d1450()" (identifier "FUN_000d1450") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Variable defined which should be unmapped: value */

void __regparm3 function_1(type_1 *v,char *var_2,int var_6,int iMem)

{
  type_2 *pOVar1;
  size_t var_4;
  char *var_8;
  int var_9;
  int var_1;
  int in_stack_ffffffcc;
  int p3;
  double value;
  int var_12;
  type_3 uStack_14;
  
  uStack_14 = 0x4a0eb;
  var_12 = *(int *)(var_1 + 0x14);
  if (var_2 != (char *)0x0) {
    var_4 = var_3(var_2);
    value = 0.0;
    if ((var_4 & 0x3fffffff) != 0) {
      var_5(var_2,&value,var_4 & 0x3fffffff,'\x01');
    }
    if (var_6 != 0) {
      value = -value;
    }
    p3 = 0x4a142;
    var_8 = (char *)var_7(v->db,(type_4)value);
    if (var_8 != (char *)0x0) {
      *(type_3 *)var_8 = value._0_4_;
      *(type_3 *)(var_8 + 4) = value._4_4_;
    }
    var_9 = v->nOp;
    if (var_9 < v->nOpAlloc) {
      v->nOp = var_9 + 1;
      pOVar1 = v->aOp + var_9;
      pOVar1->p2 = iMem;
      pOVar1->p3 = 0;
      (pOVar1->p4).i = 0;
      pOVar1->opcode = 0x96;
      pOVar1->p4type = '\0';
      pOVar1->p5 = 0;
      pOVar1->p1 = 0;
    }
    else {
      var_9 = var_10(v,iMem,0,in_stack_ffffffcc,p3);
    }
    var_11(v,var_9,var_8,-0xd);
  }
  if (var_12 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_13();
  }
  return;
}


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

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

void __regparm3 MASKED(int param_1,char *param_2,int param_3,undefined4 param_4)

{
  int iVar1;
  int iVar2;
  size_t sVar3;
  undefined4 *puVar4;
  int in_GS_OFFSET;
  undefined4 uStack_28;
  
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  if (param_2 != (char *)0x0) {
    sVar3 = strlen(param_2);
    uStack_28 = 0;
    if ((sVar3 & 0x3fffffff) != 0) {
      FUN_00023dc0(1);
    }
    if (param_3 != 0) {
      uStack_28 = 0x80000000;
    }
    puVar4 = (undefined4 *)FUN_0002ef70();
    if (puVar4 != (undefined4 *)0x0) {
      *puVar4 = 0;
      puVar4[1] = uStack_28;
    }
    iVar2 = *(int *)(param_1 + 0x68);
    if (iVar2 < *(int *)(param_1 + 0x6c)) {
      *(int *)(param_1 + 0x68) = iVar2 + 1;
      puVar4 = (undefined4 *)(*(int *)(param_1 + 100) + iVar2 * 0x14);
      puVar4[2] = param_4;
      puVar4[3] = 0;
      puVar4[4] = 0;
      *puVar4 = 0x96;
      puVar4[1] = 0;
    }
    else {
      FUN_00049170(param_4,0);
    }
    FUN_000436c0(0xfffffff3);
  }
  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_000d1450();
  }
  return;
}

