{
  "dex_files": {
    "classes.dex": {
      "classes": {
        "Lcom/example/testclassloader/TestA;": {
          "descriptor": "Lcom/example/testclassloader/TestA;",
          "is_public": true,
          "is_final": false,
          "is_interface": false,
          "is_abstract": false,
          "is_synthetic": false,
          "is_annotation": false,
          "is_enum": false,
          "superclass": "Ljava/lang/Object;",
          "interfaces": [],
          "source_file": {
            "String": "TestA.java"
          },
          "static_fields": {
            "Lcom/example/testclassloader/TestA;->value:Ljava/lang/String;": {
              "descriptor": "Lcom/example/testclassloader/TestA;->value:Ljava/lang/String;",
              "visibility": "Public",
              "is_static": true,
              "is_final": false,
              "is_volatile": false,
              "is_transient": false,
              "is_synthetic": false,
              "is_enum": false,
              "value": null,
              "annotations": []
            }
          },
          "instance_fields": {},
          "direct_methods": {
            "Lcom/example/testclassloader/TestA;-><init>()V": {
              "descriptor": "Lcom/example/testclassloader/TestA;-><init>()V",
              "visibility": "Public",
              "is_static": false,
              "is_final": false,
              "is_synchronized": false,
              "is_bridge": false,
              "is_varargs": false,
              "is_native": false,
              "is_abstract": false,
              "is_strictfp": false,
              "is_synthetic": false,
              "is_constructor": true,
              "is_declared_syncrhonized": false,
              "annotations": [],
              "parameters_annotations": [],
              "code": {
                "registers_size": 1,
                "ins_size": 1,
                "outs_size": 1,
                "debug_info": [
                  3,
                  [
                    14,
                    0
                  ]
                ],
                "parameter_names": [],
                "insns": [
                  {
                    "Label": {
                      "name": "label_00000000"
                    }
                  },
                  {
                    "InvokeDirect": {
                      "method": "Ljava/lang/Object;-><init>()V",
                      "args": [
                        0
                      ]
                    }
                  },
                  {
                    "Label": {
                      "name": "label_00000003"
                    }
                  },
                  {
                    "ReturnVoid": {}
                  }
                ]
              }
            },
            "Lcom/example/testclassloader/TestA;-><clinit>()V": {
              "descriptor": "Lcom/example/testclassloader/TestA;-><clinit>()V",
              "visibility": "None_",
              "is_static": true,
              "is_final": false,
              "is_synchronized": false,
              "is_bridge": false,
              "is_varargs": false,
              "is_native": false,
              "is_abstract": false,
              "is_strictfp": false,
              "is_synthetic": false,
              "is_constructor": true,
              "is_declared_syncrhonized": false,
              "annotations": [],
              "parameters_annotations": [],
              "code": {
                "registers_size": 1,
                "ins_size": 0,
                "outs_size": 0,
                "debug_info": [
                  5,
                  [
                    14,
                    0
                  ]
                ],
                "parameter_names": [],
                "insns": [
                  {
                    "Label": {
                      "name": "label_00000000"
                    }
                  },
                  {
                    "ConstString": {
                      "reg": 0,
                      "lit": {
                        "String": "Pirat\\')"
                      }
                    }
                  },
                  {
                    "Label": {
                      "name": "label_00000002"
                    }
                  },
                  {
                    "SPutObject": {
                      "from": 0,
                      "field": "Lcom/example/testclassloader/TestA;->value:Ljava/lang/String;"
                    }
                  },
                  {
                    "Label": {
                      "name": "label_00000004"
                    }
                  },
                  {
                    "ReturnVoid": {}
                  },
                  {
                    "Label": {
                      "name": "label_00000005"
                    }
                  },
                  {
                    "Nop": {}
                  }
                ]
              }
            }
          },
          "virtual_methods": {
            "Lcom/example/testclassloader/TestA;->get_value()Ljava/lang/String;": {
              "descriptor": "Lcom/example/testclassloader/TestA;->get_value()Ljava/lang/String;",
              "visibility": "Public",
              "is_static": false,
              "is_final": false,
              "is_synchronized": false,
              "is_bridge": false,
              "is_varargs": false,
              "is_native": false,
              "is_abstract": false,
              "is_strictfp": false,
              "is_synthetic": false,
              "is_constructor": false,
              "is_declared_syncrhonized": false,
              "annotations": [],
              "parameters_annotations": [],
              "code": {
                "registers_size": 2,
                "ins_size": 1,
                "outs_size": 0,
                "debug_info": [
                  11,
                  [
                    14,
                    0
                  ]
                ],
                "parameter_names": [],
                "insns": [
                  {
                    "Label": {
                      "name": "label_00000000"
                    }
                  },
                  {
                    "SGetObject": {
                      "to": 0,
                      "field": "Lcom/example/testclassloader/TestA;->value:Ljava/lang/String;"
                    }
                  },
                  {
                    "Label": {
                      "name": "label_00000002"
                    }
                  },
                  {
                    "ReturnObject": {
                      "reg": 0
                    }
                  },
                  {
                    "Label": {
                      "name": "label_00000003"
                    }
                  },
                  {
                    "Nop": {}
                  }
                ]
              }
            },
            "Lcom/example/testclassloader/TestA;->get_cl()Ljava/lang/String;": {
              "descriptor": "Lcom/example/testclassloader/TestA;->get_cl()Ljava/lang/String;",
              "visibility": "Public",
              "is_static": false,
              "is_final": false,
              "is_synchronized": false,
              "is_bridge": false,
              "is_varargs": false,
              "is_native": false,
              "is_abstract": false,
              "is_strictfp": false,
              "is_synthetic": false,
              "is_constructor": false,
              "is_declared_syncrhonized": false,
              "annotations": [],
              "parameters_annotations": [],
              "code": {
                "registers_size": 2,
                "ins_size": 1,
                "outs_size": 1,
                "debug_info": [
                  7,
                  [
                    14,
                    0
                  ]
                ],
                "parameter_names": [],
                "insns": [
                  {
                    "Label": {
                      "name": "label_00000000"
                    }
                  },
                  {
                    "InvokeVirtual": {
                      "method": "Ljava/lang/Object;->getClass()Ljava/lang/Class;",
                      "args": [
                        1
                      ]
                    }
                  },
                  {
                    "Label": {
                      "name": "label_00000003"
                    }
                  },
                  {
                    "MoveResultObject": {
                      "to": 0
                    }
                  },
                  {
                    "Label": {
                      "name": "label_00000004"
                    }
                  },
                  {
                    "InvokeVirtual": {
                      "method": "Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader;",
                      "args": [
                        0
                      ]
                    }
                  },
                  {
                    "Label": {
                      "name": "label_00000007"
                    }
                  },
                  {
                    "MoveResultObject": {
                      "to": 0
                    }
                  },
                  {
                    "Label": {
                      "name": "label_00000008"
                    }
                  },
                  {
                    "InvokeVirtual": {
                      "method": "Ljava/lang/Object;->toString()Ljava/lang/String;",
                      "args": [
                        0
                      ]
                    }
                  },
                  {
                    "Label": {
                      "name": "label_0000000B"
                    }
                  },
                  {
                    "MoveResultObject": {
                      "to": 0
                    }
                  },
                  {
                    "Label": {
                      "name": "label_0000000C"
                    }
                  },
                  {
                    "ReturnObject": {
                      "reg": 0
                    }
                  },
                  {
                    "Label": {
                      "name": "label_0000000D"
                    }
                  },
                  {
                    "Nop": {}
                  }
                ]
              }
            }
          },
          "annotations": []
        },
        "Lcom/example/testclassloader/TestB;": {
          "descriptor": "Lcom/example/testclassloader/TestB;",
          "is_public": true,
          "is_final": false,
          "is_interface": false,
          "is_abstract": false,
          "is_synthetic": false,
          "is_annotation": false,
          "is_enum": false,
          "superclass": "Ljava/lang/Object;",
          "interfaces": [],
          "source_file": {
            "String": "TestB.java"
          },
          "static_fields": {},
          "instance_fields": {},
          "direct_methods": {
            "Lcom/example/testclassloader/TestB;-><init>()V": {
              "descriptor": "Lcom/example/testclassloader/TestB;-><init>()V",
              "visibility": "Public",
              "is_static": false,
              "is_final": false,
              "is_synchronized": false,
              "is_bridge": false,
              "is_varargs": false,
              "is_native": false,
              "is_abstract": false,
              "is_strictfp": false,
              "is_synthetic": false,
              "is_constructor": true,
              "is_declared_syncrhonized": false,
              "annotations": [],
              "parameters_annotations": [],
              "code": {
                "registers_size": 1,
                "ins_size": 1,
                "outs_size": 1,
                "debug_info": [
                  3,
                  [
                    14,
                    0
                  ]
                ],
                "parameter_names": [],
                "insns": [
                  {
                    "Label": {
                      "name": "label_00000000"
                    }
                  },
                  {
                    "InvokeDirect": {
                      "method": "Ljava/lang/Object;-><init>()V",
                      "args": [
                        0
                      ]
                    }
                  },
                  {
                    "Label": {
                      "name": "label_00000003"
                    }
                  },
                  {
                    "ReturnVoid": {}
                  }
                ]
              }
            },
            "Lcom/example/testclassloader/TestB;-><clinit>()V": {
              "descriptor": "Lcom/example/testclassloader/TestB;-><clinit>()V",
              "visibility": "None_",
              "is_static": true,
              "is_final": false,
              "is_synchronized": false,
              "is_bridge": false,
              "is_varargs": false,
              "is_native": false,
              "is_abstract": false,
              "is_strictfp": false,
              "is_synthetic": false,
              "is_constructor": true,
              "is_declared_syncrhonized": false,
              "annotations": [],
              "parameters_annotations": [],
              "code": {
                "registers_size": 1,
                "ins_size": 0,
                "outs_size": 0,
                "debug_info": [
                  5,
                  [
                    14,
                    0
                  ]
                ],
                "parameter_names": [],
                "insns": [
                  {
                    "Label": {
                      "name": "label_00000000"
                    }
                  },
                  {
                    "ConstString": {
                      "reg": 0,
                      "lit": {
                        "String": "Plopliplop"
                      }
                    }
                  },
                  {
                    "Label": {
                      "name": "label_00000002"
                    }
                  },
                  {
                    "SPutObject": {
                      "from": 0,
                      "field": "Lcom/example/testclassloader/TestB;->value:Ljava/lang/String;"
                    }
                  },
                  {
                    "Label": {
                      "name": "label_00000004"
                    }
                  },
                  {
                    "ReturnVoid": {}
                  },
                  {
                    "Label": {
                      "name": "label_00000005"
                    }
                  },
                  {
                    "Nop": {}
                  }
                ]
              }
            }
          },
          "virtual_methods": {
            "Lcom/example/testclassloader/TestB;->get_cl()Ljava/lang/String;": {
              "descriptor": "Lcom/example/testclassloader/TestB;->get_cl()Ljava/lang/String;",
              "visibility": "Public",
              "is_static": false,
              "is_final": false,
              "is_synchronized": false,
              "is_bridge": false,
              "is_varargs": false,
              "is_native": false,
              "is_abstract": false,
              "is_strictfp": false,
              "is_synthetic": false,
              "is_constructor": false,
              "is_declared_syncrhonized": false,
              "annotations": [],
              "parameters_annotations": [],
              "code": {
                "registers_size": 2,
                "ins_size": 1,
                "outs_size": 1,
                "debug_info": [
                  7,
                  [
                    14,
                    0
                  ]
                ],
                "parameter_names": [],
                "insns": [
                  {
                    "Label": {
                      "name": "label_00000000"
                    }
                  },
                  {
                    "InvokeVirtual": {
                      "method": "Ljava/lang/Object;->getClass()Ljava/lang/Class;",
                      "args": [
                        1
                      ]
                    }
                  },
                  {
                    "Label": {
                      "name": "label_00000003"
                    }
                  },
                  {
                    "MoveResultObject": {
                      "to": 0
                    }
                  },
                  {
                    "Label": {
                      "name": "label_00000004"
                    }
                  },
                  {
                    "InvokeVirtual": {
                      "method": "Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader;",
                      "args": [
                        0
                      ]
                    }
                  },
                  {
                    "Label": {
                      "name": "label_00000007"
                    }
                  },
                  {
                    "MoveResultObject": {
                      "to": 0
                    }
                  },
                  {
                    "Label": {
                      "name": "label_00000008"
                    }
                  },
                  {
                    "InvokeVirtual": {
                      "method": "Ljava/lang/Object;->toString()Ljava/lang/String;",
                      "args": [
                        0
                      ]
                    }
                  },
                  {
                    "Label": {
                      "name": "label_0000000B"
                    }
                  },
                  {
                    "MoveResultObject": {
                      "to": 0
                    }
                  },
                  {
                    "Label": {
                      "name": "label_0000000C"
                    }
                  },
                  {
                    "ReturnObject": {
                      "reg": 0
                    }
                  },
                  {
                    "Label": {
                      "name": "label_0000000D"
                    }
                  },
                  {
                    "Nop": {}
                  }
                ]
              }
            },
            "Lcom/example/testclassloader/TestB;->get_value()Ljava/lang/String;": {
              "descriptor": "Lcom/example/testclassloader/TestB;->get_value()Ljava/lang/String;",
              "visibility": "Public",
              "is_static": false,
              "is_final": false,
              "is_synchronized": false,
              "is_bridge": false,
              "is_varargs": false,
              "is_native": false,
              "is_abstract": false,
              "is_strictfp": false,
              "is_synthetic": false,
              "is_constructor": false,
              "is_declared_syncrhonized": false,
              "annotations": [],
              "parameters_annotations": [],
              "code": {
                "registers_size": 2,
                "ins_size": 1,
                "outs_size": 0,
                "debug_info": [
                  11,
                  [
                    14,
                    0
                  ]
                ],
                "parameter_names": [],
                "insns": [
                  {
                    "Label": {
                      "name": "label_00000000"
                    }
                  },
                  {
                    "SGetObject": {
                      "to": 0,
                      "field": "Lcom/example/testclassloader/TestA;->value:Ljava/lang/String;"
                    }
                  },
                  {
                    "Label": {
                      "name": "label_00000002"
                    }
                  },
                  {
                    "ReturnObject": {
                      "reg": 0
                    }
                  },
                  {
                    "Label": {
                      "name": "label_00000003"
                    }
                  },
                  {
                    "Nop": {}
                  }
                ]
              }
            }
          },
          "annotations": []
        }
      },
      "not_referenced_strings": []
    }
  }
}
