{
  "ml": {
    "v": "4",
    "fs": [
      {
        "id": 0,
        "prob": 0.919705867767334,
        "class": 0
      }
    ],
    "prob": 0.91970587,
    "class": 0,
    "version": "v16.16",
    "thresholds": [
      0.9815004,
      0.99404883
    ],
    "analyzed_at": "2026-04-30T04:35:55Z"
  },
  "path": "driver.c",
  "raw": {
    "v": "4",
    "fs": [
      {
        "f": "O₂(DyEr₂)",
        "x": 1,
        "id": 0,
        "is": [
          "sscanf",
          "kzalloc_obj",
          "INIT_LIST_HEAD",
          "mutex_lock",
          "list_add_tail",
          "mutex_unlock",
          "driver_attach",
          "kfree",
          "EXPORT_SYMBOL_GPL",
          "guard",
          "guard",
          "list_for_each_entry",
          "sysfs_emit_at",
          "sysfs_emit_at",
          "EXPORT_SYMBOL_GPL",
          "to_usb_driver",
          "usb_show_dynids",
          "to_usb_driver",
          "usb_store_new_id",
          "to_usb_driver",
          "sscanf",
          "guard",
          "guard",
          "list_for_each_entry_safe",
          "list_del",
          "kfree",
          "new_id_show",
          "driver_create_file",
          "driver_create_file",
          "driver_remove_file",
          "driver_remove_file",
          "driver_remove_file",
          "guard",
          "guard",
          "list_for_each_entry_safe",
          "list_del",
          "kfree",
          "guard",
          "guard",
          "list_for_each_entry",
          "usb_match_one_id",
          "to_usb_device_driver",
          "to_usb_device",
          "dev_dbg",
          "usb_autoresume_device",
          "usb_generic_driver_probe",
          "udriver.probe",
          "to_usb_device",
          "to_usb_device_driver",
          "udriver.disconnect",
          "usb_generic_driver_disconnect",
          "usb_autosuspend_device",
          "to_usb_driver",
          "to_usb_interface",
          "interface_to_usbdev",
          "dev_dbg",
          "usb_device_is_owned",
          "dev_info",
          "dev_info",
          "usb_match_dynamic_id",
          "usb_match_id",
          "dev_dbg",
          "usb_autoresume_device",
          "pm_runtime_set_active",
          "pm_suspend_ignore_children",
          "pm_runtime_enable",
          "usb_unlocked_disable_lpm",
          "dev_err",
          "usb_set_interface",
          "driver.probe",
          "usb_unlocked_enable_lpm",
          "usb_autosuspend_device",
          "usb_set_intfdata",
          "usb_unlocked_enable_lpm",
          "pm_runtime_disable",
          "pm_runtime_set_suspended",
          "usb_autosuspend_device",
          "to_usb_driver",
          "to_usb_interface",
          "interface_to_usbdev",
          "usb_autoresume_device",
          "usb_unlocked_disable_lpm",
          "usb_disable_interface",
          "driver.disconnect",
          "kmalloc_array",
          "usb_free_streams",
          "kfree",
          "usb_enable_interface",
          "usb_set_interface",
          "usb_set_intfdata",
          "usb_unlocked_enable_lpm",
          "pm_runtime_disable",
          "pm_runtime_set_suspended",
          "usb_autosuspend_device",
          "to_usb_interface",
          "to_usb_driver",
          "driver.shutdown",
          "usb_set_intfdata",
          "pm_suspend_ignore_children",
          "pm_runtime_enable",
          "pm_runtime_set_active",
          "device_is_registered",
          "device_bind_driver",
          "usb_set_intfdata",
          "pm_runtime_disable",
          "pm_runtime_set_suspended",
          "EXPORT_SYMBOL_GPL",
          "device_is_registered",
          "device_release_driver",
          "device_lock",
          "usb_unbind_interface",
          "device_unlock",
          "EXPORT_SYMBOL_GPL",
          "le16_to_cpu",
          "le16_to_cpu",
          "le16_to_cpu",
          "le16_to_cpu",
          "interface_to_usbdev",
          "usb_match_device",
          "usb_match_one_id_intf",
          "EXPORT_SYMBOL_GPL",
          "usb_match_one_id",
          "EXPORT_SYMBOL_GPL",
          "usb_match_device",
          "EXPORT_SYMBOL_GPL",
          "usb_device_match_id",
          "udrv.match",
          "usb_device_match_id",
          "udrv.match",
          "is_usb_device",
          "is_usb_device_driver",
          "to_usb_device",
          "to_usb_device_driver",
          "usb_driver_applicable",
          "is_usb_interface",
          "is_usb_device_driver",
          "to_usb_interface",
          "to_usb_driver",
          "usb_match_id",
          "usb_match_dynamic_id",
          "is_usb_device",
          "to_usb_device",
          "is_usb_interface",
          "to_usb_interface",
          "interface_to_usbdev",
          "pr_debug",
          "dev_name",
          "pr_debug",
          "dev_name",
          "add_uevent_var",
          "le16_to_cpu",
          "le16_to_cpu",
          "le16_to_cpu",
          "add_uevent_var",
          "to_usb_device",
          "usb_driver_applicable",
          "device_reprobe",
          "dev_err",
          "usb_disabled",
          "driver_register",
          "pr_info",
          "bus_for_each_dev",
          "pr_err",
          "EXPORT_SYMBOL_GPL",
          "pr_info",
          "driver_unregister",
          "EXPORT_SYMBOL_GPL",
          "usb_disabled",
          "INIT_LIST_HEAD",
          "driver_register",
          "usb_create_newid_files",
          "pr_info",
          "driver_unregister",
          "pr_err",
          "EXPORT_SYMBOL_GPL",
          "pr_info",
          "usb_remove_newid_files",
          "driver_unregister",
          "usb_free_dynids",
          "EXPORT_SYMBOL_GPL",
          "to_usb_driver",
          "dev_dbg",
          "usb_driver_release_interface",
          "usb_forced_unbind_intf",
          "usb_forced_unbind_intf",
          "device_attach",
          "dev_warn",
          "usb_rebind_intf",
          "unbind_marked_interfaces",
          "rebind_marked_interfaces",
          "to_usb_driver",
          "usb_forced_unbind_intf",
          "to_usb_device_driver",
          "udriver.suspend",
          "usb_generic_driver_suspend",
          "dev_vdbg",
          "PMSG_IS_AUTO",
          "device_pm_wait_for_dev",
          "to_usb_device_driver",
          "usb_generic_driver_resume",
          "udriver.resume",
          "dev_vdbg",
          "to_usb_driver",
          "driver.suspend",
          "PMSG_IS_AUTO",
          "dev_err",
          "dev_vdbg",
          "usb_set_interface",
          "to_usb_driver",
          "driver.reset_resume",
          "dev_err",
          "dev_dbg",
          "driver.resume",
          "dev_err",
          "dev_vdbg",
          "usb_offload_check",
          "dev_dbg",
          "dev_dbg",
          "usb_suspend_interface",
          "PMSG_IS_AUTO",
          "usb_suspend_device",
          "PMSG_IS_AUTO",
          "usb_get_std_status",
          "dev_err",
          "usb_resume_interface",
          "usb_hcd_flush_endpoint",
          "usb_hcd_flush_endpoint",
          "dev_vdbg",
          "usb_resume_device",
          "dev_dbg",
          "dev_dbg",
          "usb_resume_interface",
          "usb_mark_last_busy",
          "dev_vdbg",
          "device_may_wakeup",
          "pm_runtime_resume",
          "to_usb_device",
          "unbind_no_pm_drivers_interfaces",
          "choose_wakeup",
          "usb_suspend_both",
          "usb_port_disable",
          "to_usb_device",
          "rebind_marked_interfaces",
          "to_usb_device",
          "usb_resume_both",
          "pm_runtime_disable",
          "pm_runtime_set_active",
          "pm_runtime_enable",
          "unbind_marked_interfaces",
          "pm_runtime_allow",
          "EXPORT_SYMBOL_GPL",
          "pm_runtime_forbid",
          "EXPORT_SYMBOL_GPL",
          "usb_mark_last_busy",
          "pm_runtime_put_sync_autosuspend",
          "dev_vdbg",
          "atomic_read",
          "pm_runtime_resume_and_get",
          "dev_vdbg",
          "atomic_read",
          "interface_to_usbdev",
          "usb_mark_last_busy",
          "pm_runtime_put_sync",
          "dev_vdbg",
          "atomic_read",
          "EXPORT_SYMBOL_GPL",
          "interface_to_usbdev",
          "usb_mark_last_busy",
          "pm_runtime_put",
          "dev_vdbg",
          "atomic_read",
          "EXPORT_SYMBOL_GPL",
          "interface_to_usbdev",
          "usb_mark_last_busy",
          "pm_runtime_put_noidle",
          "EXPORT_SYMBOL_GPL",
          "pm_runtime_resume_and_get",
          "dev_vdbg",
          "atomic_read",
          "EXPORT_SYMBOL_GPL",
          "pm_runtime_get",
          "pm_runtime_put_noidle",
          "dev_vdbg",
          "atomic_read",
          "EXPORT_SYMBOL_GPL",
          "interface_to_usbdev",
          "usb_mark_last_busy",
          "pm_runtime_get_noresume",
          "EXPORT_SYMBOL_GPL",
          "atomic_read",
          "to_usb_driver",
          "device_can_wakeup",
          "dev_dbg",
          "bus_to_hcd",
          "dev_dbg",
          "to_usb_device",
          "autosuspend_check",
          "usb_suspend_both",
          "usb_mark_last_busy",
          "to_usb_device",
          "usb_resume_both",
          "to_usb_device",
          "autosuspend_check",
          "pm_runtime_autosuspend",
          "bus_to_hcd",
          "hcd.driver.set_usb2_hw_lpm",
          "usb_set_usb2_hardware_lpm",
          "usb_set_usb2_hardware_lpm"
        ],
        "ms": {
          "text": {
            "tab_count": 2009.0,
            "digit_ratio": 0.01,
            "space_count": 6552.0,
            "total_lines": 2076.0,
            "char_entropy": 5.06,
            "mixed_indent": true,
            "unique_chars": 93.0,
            "import_density": 14.84,
            "string_density": 0.05,
            "avg_line_length": 28.05,
            "max_line_length": 85.0,
            "empty_line_ratio": 0.13,
            "last_line_length": 2.0,
            "most_common_char": "e",
            "whitespace_ratio": 0.18,
            "most_common_ratio": 0.09,
            "identifier_density": 0.8,
            "line_length_stddev": 24.39,
            "normalized_import_count": 6.76,
            "normalized_string_count": 2.28,
            "suspicious_comment_ratio": 0.06,
            "max_inline_whitespace_run": 4.0,
            "normalized_function_count": 1.4,
            "imports_to_functions_ratio": 4.81,
            "strings_to_functions_ratio": 1.63,
            "suspicious_identifier_ratio": 0.02,
            "normalized_unique_identifiers": 22.87,
            "identifiers_to_functions_ratio": 3.94
          },
          "imports": {
            "total": 308.0,
            "unique_modules": 129.0,
            "third_party_count": 308.0,
            "third_party_ratio": 1.0
          },
          "strings": {
            "total": 104.0,
            "avg_length": 21.38,
            "max_length": 46.0,
            "avg_entropy": 3.22,
            "total_bytes": 2224.0,
            "entropy_stddev": 0.71
          },
          "comments": {
            "chars": 25973.0,
            "lines": 640.0,
            "total": 118.0,
            "todo_count": 2.0,
            "to_code_ratio": 0.45,
            "code_in_comments": 1.0,
            "high_entropy_comments": 7.0
          },
          "functions": {
            "total": 64.0,
            "length_stddev": 22.61,
            "over_100_lines": 1.0,
            "avg_name_length": 61.91,
            "no_params_count": 64.0,
            "avg_length_lines": 24.22,
            "max_length_lines": 108.0,
            "min_length_lines": 4.0,
            "high_entropy_names": 64.0,
            "density_per_100_lines": 3.08,
            "code_in_functions_ratio": 0.75
          },
          "identifiers": {
            "total": 1653.0,
            "avg_length": 15.26,
            "max_length": 39.0,
            "min_length": 1.0,
            "avg_entropy": 3.04,
            "reuse_ratio": 0.15,
            "unique_count": 252.0,
            "length_stddev": 8.02,
            "has_digit_ratio": 0.02,
            "sequential_names": 5.0,
            "single_char_count": 5.0,
            "single_char_ratio": 0.02,
            "high_entropy_count": 78.0,
            "high_entropy_ratio": 0.31,
            "all_lowercase_ratio": 0.79,
            "all_uppercase_ratio": 0.18,
            "double_underscore_count": 1.0,
            "underscore_prefix_count": 2.0
          }
        },
        "ss": [
          [
            933,
            "\u003clinux/device.h\u003e"
          ],
          [
            959,
            "\u003clinux/slab.h\u003e"
          ],
          [
            983,
            "\u003clinux/export.h\u003e"
          ],
          [
            1009,
            "\u003clinux/usb.h\u003e"
          ],
          [
            1032,
            "\u003clinux/usb/quirks.h\u003e"
          ],
          [
            1062,
            "\u003clinux/usb/hcd.h\u003e"
          ],
          [
            1090,
            "usb.h"
          ],
          [
            1091,
            "usb.h"
          ],
          [
            1564,
            "%x %x %x %x %x"
          ],
          [
            1565,
            "%x %x %x %x %x"
          ],
          [
            3007,
            "%04x %04x %02x\\n"
          ],
          [
            3008,
            "%04x %04x %02x"
          ],
          [
            3157,
            "%04x %04x\\n"
          ],
          [
            3158,
            "%04x %04x"
          ],
          [
            4027,
            "%x %x"
          ],
          [
            4028,
            "%x %x"
          ],
          [
            6072,
            "%s\\n"
          ],
          [
            6073,
            "%s"
          ],
          [
            8411,
            "%s\\n"
          ],
          [
            8412,
            "%s"
          ],
          [
            8560,
            "Device is not authorized for usage\\n"
          ],
          [
            8561,
            "Device is not authorized for usage"
          ],
          [
            8677,
            "Interface %d is not authorized for usage\\n"
          ],
          [
            8678,
            "Interface %d is not authorized for usage"
          ],
          [
            8927,
            "%s - got id\\n"
          ],
          [
            8928,
            "%s - got id"
          ],
          [
            10033,
            "%s Failed to disable LPM for driver %s\\n"
          ],
          [
            10034,
            "%s Failed to disable LPM for driver %s"
          ],
          [
            26894,
            "usb %s: already deleted?\\n"
          ],
          [
            26895,
            "usb %s: already deleted?"
          ],
          [
            26994,
            "usb %s: bus removed?\\n"
          ],
          [
            26995,
            "usb %s: bus removed?"
          ],
          [
            27127,
            "PRODUCT=%x/%x/%x"
          ],
          [
            27128,
            "PRODUCT=%x/%x/%x"
          ],
          [
            27382,
            "TYPE=%d/%d/%d"
          ],
          [
            27383,
            "TYPE=%d/%d/%d"
          ],
          [
            28005,
            "Failed to reprobe device (error %d)\\n"
          ],
          [
            28006,
            "Failed to reprobe device (error %d)"
          ],
          [
            29130,
            "%s: registered new device driver %s\\n"
          ],
          [
            29131,
            "%s: registered new device driver %s"
          ],
          [
            29403,
            "%s: error %d registering device driver %s\\n"
          ],
          [
            29404,
            "%s: error %d registering device driver %s"
          ],
          [
            29901,
            "%s: deregistering device driver %s\\n"
          ],
          [
            29902,
            "%s: deregistering device driver %s"
          ],
          [
            31457,
            "%s: registered new interface driver %s\\n"
          ],
          [
            31458,
            "%s: registered new interface driver %s"
          ],
          [
            31615,
            "%s: error %d registering interface driver %s\\n"
          ],
          [
            31616,
            "%s: error %d registering interface driver %s"
          ],
          [
            32245,
            "%s: deregistering interface driver %s\\n"
          ],
          [
            32246,
            "%s: deregistering interface driver %s"
          ],
          [
            32840,
            "forced unbind\\n"
          ],
          [
            32841,
            "forced unbind"
          ],
          [
            34189,
            "rebind failed: %d\\n"
          ],
          [
            34190,
            "rebind failed: %d"
          ],
          [
            36452,
            "%s: status %d\\n"
          ],
          [
            36453,
            "%s: status %d"
          ],
          [
            37416,
            "%s: status %d\\n"
          ],
          [
            37417,
            "%s: status %d"
          ],
          [
            37927,
            "suspend error %d\\n"
          ],
          [
            37928,
            "suspend error %d"
          ],
          [
            37988,
            "%s: status %d\\n"
          ],
          [
            37989,
            "%s: status %d"
          ],
          [
            39017,
            "%s error %d\\n"
          ],
          [
            39018,
            "%s error %d"
          ],
          [
            39040,
            "reset_resume"
          ],
          [
            39041,
            "reset_resume"
          ],
          [
            39127,
            "no reset_resume for driver %s?\\n"
          ],
          [
            39128,
            "no reset_resume for driver %s?"
          ],
          [
            39267,
            "resume error %d\\n"
          ],
          [
            39268,
            "resume error %d"
          ],
          [
            39329,
            "%s: status %d\\n"
          ],
          [
            39330,
            "%s: status %d"
          ],
          [
            41096,
            "device offloaded, skip suspend.\\n"
          ],
          [
            41097,
            "device offloaded, skip suspend."
          ],
          [
            41682,
            "device offloaded, skip suspend.\\n"
          ],
          [
            41683,
            "device offloaded, skip suspend."
          ],
          [
            42586,
            "Failed to suspend device, error %d\\n"
          ],
          [
            42587,
            "Failed to suspend device, error %d"
          ],
          [
            43307,
            "%s: status %d\\n"
          ],
          [
            43308,
            "%s: status %d"
          ],
          [
            44613,
            "device offloaded, skip resume.\\n"
          ],
          [
            44614,
            "device offloaded, skip resume."
          ],
          [
            45144,
            "device offloaded, skip resume.\\n"
          ],
          [
            45145,
            "device offloaded, skip resume."
          ],
          [
            45362,
            "%s: status %d\\n"
          ],
          [
            45363,
            "%s: status %d"
          ],
          [
            49646,
            "%s: cnt %d -\u003e %d\\n"
          ],
          [
            49647,
            "%s: cnt %d -\u003e %d"
          ],
          [
            50719,
            "%s: cnt %d -\u003e %d\\n"
          ],
          [
            50720,
            "%s: cnt %d -\u003e %d"
          ],
          [
            51672,
            "%s: cnt %d -\u003e %d\\n"
          ],
          [
            51673,
            "%s: cnt %d -\u003e %d"
          ],
          [
            52667,
            "%s: cnt %d\\n"
          ],
          [
            52668,
            "%s: cnt %d"
          ],
          [
            54351,
            "%s: cnt %d -\u003e %d\\n"
          ],
          [
            54352,
            "%s: cnt %d -\u003e %d"
          ],
          [
            55466,
            "%s: cnt %d -\u003e %d\\n"
          ],
          [
            55467,
            "%s: cnt %d -\u003e %d"
          ],
          [
            57574,
            "remote wakeup needed for autosuspend\\n"
          ],
          [
            57575,
            "remote wakeup needed for autosuspend"
          ],
          [
            57921,
            "HCD doesn't handle wakeup requests\\n"
          ],
          [
            57922,
            "HCD doesn't handle wakeup requests"
          ],
          [
            60223,
            "usb"
          ],
          [
            60224,
            "usb"
          ]
        ],
        "sz": 60311,
        "ts": [
          {
            "a": "T1106",
            "c": 0.9900000095367432,
            "d": "Linux kernel SPDX header",
            "e": [
              "SPDX-License-Identifier: GPL-2.0"
            ],
            "i": "micro-behaviors/os/syscall/invoke::kernel-spdx-gpl2",
            "l": 2
          },
          {
            "c": 0.699999988079071,
            "d": "macOS who tool reference",
            "e": [
              "who"
            ],
            "i": "objectives/evasion/kernel-hide/rootkit::macos-who-ref",
            "l": 1
          },
          {
            "a": "T1046",
            "c": 0.800000011920929,
            "d": "EINPROGRESS async connect state",
            "e": [
              "EINPROGRESS"
            ],
            "i": "objectives/discovery/network/scan/port::errno-einprogress",
            "l": 1,
            "m": "E1046"
          },
          {
            "c": 0.6000000238418579,
            "d": "Kernel error code return",
            "e": [
              "return -EINVAL;",
              "return -ENOMEM;",
              "return -EINVAL;",
              "return -EPROBE_DEFER;",
              "return -ENODEV;",
              "return -EBUSY;",
              "return -ENODEV;",
              "return -ENODEV;",
              "return -ENODEV;",
              "return -ENOMEM;",
              "return -ENOMEM;",
              "return -ENODEV;",
              "return -ENODEV;",
              "return -ENODEV;",
              "return -EBUSY;",
              "return -EOPNOTSUPP;"
            ],
            "i": "objectives/evasion/kernel-hide/lkm/internals::error-code-return",
            "l": 1
          }
        ],
        "sha": "00e3beb5e490d5aeeca42af6f4a22c043a6ab28c6dba551bcf624a2de051262e",
        "path": "/data/samples/good/repos/linux/drivers/usb/core/driver.c",
        "type": "c"
      }
    ],
    "tv": "f6eaa"
  }
}