
int __regparm3 sqlite3PutVarint(uchar *p,u64 v)

{
  int iVar1;
  int in_ECX;
  uint in_EDX;
  
  if ((in_ECX == 0) && (in_EDX < 0x4000)) {
    p[1] = (byte)in_EDX & 0x7f;
    *p = (byte)(in_EDX >> 7) | 0x80;
    return 2;
  }
  iVar1 = putVarint64(p,v);
  return iVar1;
}



undefined4 __regparm3 FUN_00026a00(byte *param_1,uint param_2,int param_3)

{
  undefined4 uVar1;
  
  if ((param_3 == 0) && (param_2 < 0x4000)) {
    param_1[1] = (byte)param_2 & 0x7f;
    *param_1 = (byte)(param_2 >> 7) | 0x80;
    return 2;
  }
  uVar1 = FUN_0001e1a0();
  return uVar1;
}


CMP ECX,0x0
PUSH EDI
MOV EDI,ECX
PUSH ESI
MOV ESI,EDX
PUSH EBX
JA 0x00026a14
CMP EDX,0x3fff
JBE 0x00026a20
POP EBX
MOV EDX,ESI
MOV ECX,EDI
POP ESI
POP EDI
JMP 0x0001e1a0
MOV ECX,EDX
AND EDX,0x7f
SHRD ECX,EDI,0x7
MOV byte ptr [EAX + 0x1],DL
OR ECX,0xffffff80
MOV byte ptr [EAX],CL
MOV EAX,0x2
POP EBX
POP ESI
POP EDI
RET
(translation_unit "undefined4 __regparm3 FUN_00026a00(byte *param_1,uint param_2,int param_3)\n\n{\n  undefined4 uVar1;\n  \n  if ((param_3 == 0) && (param_2 < 0x4000)) {\n    param_1[1] = (byte)param_2 & 0x7f;\n    *param_1 = (byte)(param_2 >> 7) | 0x80;\n    return 2;\n  }\n  uVar1 = FUN_0001e1a0();\n  return uVar1;\n}\n\n" (function_definition "undefined4 __regparm3 FUN_00026a00(byte *param_1,uint param_2,int param_3)\n\n{\n  undefined4 uVar1;\n  \n  if ((param_3 == 0) && (param_2 < 0x4000)) {\n    param_1[1] = (byte)param_2 & 0x7f;\n    *param_1 = (byte)(param_2 >> 7) | 0x80;\n    return 2;\n  }\n  uVar1 = FUN_0001e1a0();\n  return uVar1;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00026a00(byte *param_1,uint param_2,int param_3)" identifier (parameter_list "(byte *param_1,uint param_2,int param_3)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  \n  if ((param_3 == 0) && (param_2 < 0x4000)) {\n    param_1[1] = (byte)param_2 & 0x7f;\n    *param_1 = (byte)(param_2 >> 7) | 0x80;\n    return 2;\n  }\n  uVar1 = FUN_0001e1a0();\n  return uVar1;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (if_statement "if ((param_3 == 0) && (param_2 < 0x4000)) {\n    param_1[1] = (byte)param_2 & 0x7f;\n    *param_1 = (byte)(param_2 >> 7) | 0x80;\n    return 2;\n  }" if (parenthesized_expression "((param_3 == 0) && (param_2 < 0x4000))" ( (binary_expression "(param_3 == 0) && (param_2 < 0x4000)" (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) && (parenthesized_expression "(param_2 < 0x4000)" ( (binary_expression "param_2 < 0x4000" identifier < number_literal) ))) )) (compound_statement "{\n    param_1[1] = (byte)param_2 & 0x7f;\n    *param_1 = (byte)(param_2 >> 7) | 0x80;\n    return 2;\n  }" { (expression_statement "param_1[1] = (byte)param_2 & 0x7f;" (assignment_expression "param_1[1] = (byte)param_2 & 0x7f" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (binary_expression "(byte)param_2 & 0x7f" (cast_expression "(byte)param_2" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*param_1 = (byte)(param_2 >> 7) | 0x80;" (assignment_expression "*param_1 = (byte)(param_2 >> 7) | 0x80" (pointer_expression "*param_1" * identifier) = (binary_expression "(byte)(param_2 >> 7) | 0x80" (call_expression "(byte)(param_2 >> 7)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(param_2 >> 7)" ( (binary_expression "param_2 >> 7" identifier >> number_literal) ))) | number_literal)) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "uVar1 = FUN_0001e1a0();" (assignment_expression "uVar1 = FUN_0001e1a0()" identifier = (call_expression "FUN_0001e1a0()" identifier (argument_list "()" ( )))) ;) (return_statement "return uVar1;" return identifier ;) })))
(translation_unit "int __regparm3 sqlite3PutVarint(uchar *p,u64 v)\n\n{\n  int iVar1;\n  int in_ECX;\n  uint in_EDX;\n  \n  if ((in_ECX == 0) && (in_EDX < 0x4000)) {\n    p[1] = (byte)in_EDX & 0x7f;\n    *p = (byte)(in_EDX >> 7) | 0x80;\n    return 2;\n  }\n  iVar1 = putVarint64(p,v);\n  return iVar1;\n}\n\n" (function_definition "int __regparm3 sqlite3PutVarint(uchar *p,u64 v)\n\n{\n  int iVar1;\n  int in_ECX;\n  uint in_EDX;\n  \n  if ((in_ECX == 0) && (in_EDX < 0x4000)) {\n    p[1] = (byte)in_EDX & 0x7f;\n    *p = (byte)(in_EDX >> 7) | 0x80;\n    return 2;\n  }\n  iVar1 = putVarint64(p,v);\n  return iVar1;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "sqlite3PutVarint(uchar *p,u64 v)" identifier (parameter_list "(uchar *p,u64 v)" ( (parameter_declaration "uchar *p" type_identifier (pointer_declarator "*p" * identifier)) , (parameter_declaration "u64 v" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  int in_ECX;\n  uint in_EDX;\n  \n  if ((in_ECX == 0) && (in_EDX < 0x4000)) {\n    p[1] = (byte)in_EDX & 0x7f;\n    *p = (byte)(in_EDX >> 7) | 0x80;\n    return 2;\n  }\n  iVar1 = putVarint64(p,v);\n  return iVar1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int in_ECX;" primitive_type identifier ;) (declaration "uint in_EDX;" type_identifier identifier ;) (if_statement "if ((in_ECX == 0) && (in_EDX < 0x4000)) {\n    p[1] = (byte)in_EDX & 0x7f;\n    *p = (byte)(in_EDX >> 7) | 0x80;\n    return 2;\n  }" if (parenthesized_expression "((in_ECX == 0) && (in_EDX < 0x4000))" ( (binary_expression "(in_ECX == 0) && (in_EDX < 0x4000)" (parenthesized_expression "(in_ECX == 0)" ( (binary_expression "in_ECX == 0" identifier == number_literal) )) && (parenthesized_expression "(in_EDX < 0x4000)" ( (binary_expression "in_EDX < 0x4000" identifier < number_literal) ))) )) (compound_statement "{\n    p[1] = (byte)in_EDX & 0x7f;\n    *p = (byte)(in_EDX >> 7) | 0x80;\n    return 2;\n  }" { (expression_statement "p[1] = (byte)in_EDX & 0x7f;" (assignment_expression "p[1] = (byte)in_EDX & 0x7f" (subscript_expression "p[1]" identifier [ number_literal ]) = (binary_expression "(byte)in_EDX & 0x7f" (cast_expression "(byte)in_EDX" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*p = (byte)(in_EDX >> 7) | 0x80;" (assignment_expression "*p = (byte)(in_EDX >> 7) | 0x80" (pointer_expression "*p" * identifier) = (binary_expression "(byte)(in_EDX >> 7) | 0x80" (call_expression "(byte)(in_EDX >> 7)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(in_EDX >> 7)" ( (binary_expression "in_EDX >> 7" identifier >> number_literal) ))) | number_literal)) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "iVar1 = putVarint64(p,v);" (assignment_expression "iVar1 = putVarint64(p,v)" identifier = (call_expression "putVarint64(p,v)" identifier (argument_list "(p,v)" ( identifier , identifier )))) ;) (return_statement "return iVar1;" return identifier ;) })))
(translation_unit "undefined4 __regparm3 FUN_00026a00(byte *param_1,uint param_2,int param_3)\n\n{\n  undefined4 uVar1;\n  \n  if ((param_3 == 0) && (param_2 < 0x4000)) {\n    param_1[1] = (byte)param_2 & 0x7f;\n    *param_1 = (byte)(param_2 >> 7) | 0x80;\n    return 2;\n  }\n  uVar1 = FUN_0001e1a0();\n  return uVar1;\n}\n\n" (function_definition "undefined4 __regparm3 FUN_00026a00(byte *param_1,uint param_2,int param_3)\n\n{\n  undefined4 uVar1;\n  \n  if ((param_3 == 0) && (param_2 < 0x4000)) {\n    param_1[1] = (byte)param_2 & 0x7f;\n    *param_1 = (byte)(param_2 >> 7) | 0x80;\n    return 2;\n  }\n  uVar1 = FUN_0001e1a0();\n  return uVar1;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00026a00(byte *param_1,uint param_2,int param_3)" identifier (parameter_list "(byte *param_1,uint param_2,int param_3)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  \n  if ((param_3 == 0) && (param_2 < 0x4000)) {\n    param_1[1] = (byte)param_2 & 0x7f;\n    *param_1 = (byte)(param_2 >> 7) | 0x80;\n    return 2;\n  }\n  uVar1 = FUN_0001e1a0();\n  return uVar1;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (if_statement "if ((param_3 == 0) && (param_2 < 0x4000)) {\n    param_1[1] = (byte)param_2 & 0x7f;\n    *param_1 = (byte)(param_2 >> 7) | 0x80;\n    return 2;\n  }" if (parenthesized_expression "((param_3 == 0) && (param_2 < 0x4000))" ( (binary_expression "(param_3 == 0) && (param_2 < 0x4000)" (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) && (parenthesized_expression "(param_2 < 0x4000)" ( (binary_expression "param_2 < 0x4000" identifier < number_literal) ))) )) (compound_statement "{\n    param_1[1] = (byte)param_2 & 0x7f;\n    *param_1 = (byte)(param_2 >> 7) | 0x80;\n    return 2;\n  }" { (expression_statement "param_1[1] = (byte)param_2 & 0x7f;" (assignment_expression "param_1[1] = (byte)param_2 & 0x7f" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (binary_expression "(byte)param_2 & 0x7f" (cast_expression "(byte)param_2" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*param_1 = (byte)(param_2 >> 7) | 0x80;" (assignment_expression "*param_1 = (byte)(param_2 >> 7) | 0x80" (pointer_expression "*param_1" * identifier) = (binary_expression "(byte)(param_2 >> 7) | 0x80" (call_expression "(byte)(param_2 >> 7)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(param_2 >> 7)" ( (binary_expression "param_2 >> 7" identifier >> number_literal) ))) | number_literal)) ;) (return_statement "return 2;" return number_literal ;) })) (expression_statement "uVar1 = FUN_0001e1a0();" (assignment_expression "uVar1 = FUN_0001e1a0()" identifier = (call_expression "FUN_0001e1a0()" identifier (argument_list "()" ( )))) ;) (return_statement "return uVar1;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) | LIT)) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (return_statement return IDENT ;) })))
(function_definition "undefined4 __regparm3 FUN_00026a00(byte *param_1,uint param_2,int param_3)\n\n{\n  undefined4 uVar1;\n  \n  if ((param_3 == 0) && (param_2 < 0x4000)) {\n    param_1[1] = (byte)param_2 & 0x7f;\n    *param_1 = (byte)(param_2 >> 7) | 0x80;\n    return 2;\n  }\n  uVar1 = FUN_0001e1a0();\n  return uVar1;\n}" (type_identifier "undefined4") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00026a00(byte *param_1,uint param_2,int param_3)" (identifier "FUN_00026a00") (parameter_list "(byte *param_1,uint param_2,int param_3)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  \n  if ((param_3 == 0) && (param_2 < 0x4000)) {\n    param_1[1] = (byte)param_2 & 0x7f;\n    *param_1 = (byte)(param_2 >> 7) | 0x80;\n    return 2;\n  }\n  uVar1 = FUN_0001e1a0();\n  return uVar1;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (if_statement "if ((param_3 == 0) && (param_2 < 0x4000)) {\n    param_1[1] = (byte)param_2 & 0x7f;\n    *param_1 = (byte)(param_2 >> 7) | 0x80;\n    return 2;\n  }" (if "if") (parenthesized_expression "((param_3 == 0) && (param_2 < 0x4000))" (( "(") (binary_expression "(param_3 == 0) && (param_2 < 0x4000)" (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(param_2 < 0x4000)" (( "(") (binary_expression "param_2 < 0x4000" (identifier "param_2") (< "<") (number_literal "0x4000")) () ")"))) () ")")) (compound_statement "{\n    param_1[1] = (byte)param_2 & 0x7f;\n    *param_1 = (byte)(param_2 >> 7) | 0x80;\n    return 2;\n  }" ({ "{") (expression_statement "param_1[1] = (byte)param_2 & 0x7f;" (assignment_expression "param_1[1] = (byte)param_2 & 0x7f" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "(byte)param_2 & 0x7f" (cast_expression "(byte)param_2" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "param_2")) (& "&") (number_literal "0x7f"))) (; ";")) (expression_statement "*param_1 = (byte)(param_2 >> 7) | 0x80;" (assignment_expression "*param_1 = (byte)(param_2 >> 7) | 0x80" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (binary_expression "(byte)(param_2 >> 7) | 0x80" (call_expression "(byte)(param_2 >> 7)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(param_2 >> 7)" (( "(") (binary_expression "param_2 >> 7" (identifier "param_2") (>> ">>") (number_literal "7")) () ")"))) (| "|") (number_literal "0x80"))) (; ";")) (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "uVar1 = FUN_0001e1a0();" (assignment_expression "uVar1 = FUN_0001e1a0()" (identifier "uVar1") (= "=") (call_expression "FUN_0001e1a0()" (identifier "FUN_0001e1a0") (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar1;" (return "return") (identifier "uVar1") (; ";")) (} "}")))

int __regparm3 function_1(type_1 *p,type_2 v)

{
  int iVar1;
  int var_1;
  type_3 var_2;
  
  if ((var_1 == 0) && (var_2 < 0x4000)) {
    p[1] = (type_4)var_2 & 0x7f;
    *p = (type_4)(var_2 >> 7) | 0x80;
    return 2;
  }
  iVar1 = var_3(p,v);
  return iVar1;
}


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

undefined4 __regparm3 MASKED(byte *param_1,uint param_2,int param_3)

{
  undefined4 uVar1;
  
  if ((param_3 == 0) && (param_2 < 0x4000)) {
    param_1[1] = (byte)param_2 & 0x7f;
    *param_1 = (byte)(param_2 >> 7) | 0x80;
    return 2;
  }
  uVar1 = FUN_0001e1a0();
  return uVar1;
}

