Sample

Dorn/cuda/69

Human rating uses the original dataset scale.

DatasetDorn
Human1.7
Lines50

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
10.0Δ 9.5
Scalabrino0.1430–1; higher is more readable
7.8Δ 7.2
Dorn0.0260–1; higher is more readable
3.9Δ 3.3
Mi0.0590–1; higher is more readable
8.4Δ 7.8
LLOC32Logical lines; fewer is more readable
8.2Δ 7.7
DeepSeek V4 Pro40–20; mean of three runs
7.4Δ 6.8
GPT-6.1 Sol90–20; mean of three runs
6.4Δ 5.8
BTTF0.3030–1; higher is more readable
16.7Δ 16.2
Human1.71–5; original rating
0.6

Views

Download official ZIP ↗

Select the downloaded ZIP or its extracted folder. Files stay in your browser.

Loading feature diagnosis…

Source regions

Feature contributions

Feature contributions

FeatureValueContribution
(log-odds)
Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones.2317.981−76.493
Source linesThe number of non-empty source lines.50+20
Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value.4.994−7.491

Intercept 8.87 + feature contributions = -55.114 (log-odds).
Score = sigmoid(-55.114) = 0.

Score0.143

Feature contributions

FeatureValueContribution
(log-odds)
Identifier layout (horizontal)How rapidly the visual pattern of identifier characters changes from left to right. It measures spatial frequency, not the meaning of the names.146.961−2.56
Indentation frequencyHow rapidly indentation changes from line to line.50+0.992
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.0−0.804
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.51−0.769
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.50−0.727
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.49.946+0.288
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.11−0.128

Intercept 0.07 + feature contributions = -3.637 (log-odds).
Score = sigmoid(-3.637) = 0.026.

Score0.059
Score32
Run 1

This code is extremely difficult to read. It consists of macro expansions with deeply embedded conditional logic, repetitive cryptographic step calls, and a massive function call spanning multiple lines. The structure is tangled, with nested if-blocks inside macros and minimal whitespace or visual separation. Nesting depth is moderate but combined with macro syntax makes it feel deeply nested. Intent is opaque without domain knowledge of MD4 hashing and NTLM cracking—variable names like 'b12', 'MD4S34', and 'pass_len' lack explanatory context. Code length is excessive for the apparent action, with repetitive macro invocations. Action granularity is mixed: some lines do one thing, but the checkHash function call crams many parameters into a single logical operation. Reading flow is disorganized, jumping between macro definitions, conditional expansions, and kernel instantiations. Overall, this is highly specialized, low-level code with almost no abstraction or documentation, making it unreadable for most developers.

Run 2

This code is extremely difficult to read due to several major issues. The macro-based structure (MD4HH and MAKE_MFN_NTLM_KERNEL1_8LENGTH) obscures the actual logic, making it nearly impossible to understand the algorithm's purpose. The nesting is problematic - while only two levels deep, the conditional compilation combined with macro expansion creates conceptual nesting that's hard to follow. Variable names like 'b12', 'b2', 'b10' provide zero semantic meaning, making intent completely ambiguous. The code is unnecessarily repetitive with 16 nearly identical macro invocations that could be handled more elegantly. Multiple actions are packed into single macro calls, violating action granularity principles. The reading flow is severely disrupted by backslash line continuations, inconsistent spacing, and abrupt jumps between macro definitions and invocations. The checkHash128LENTLM function call has 16 parameters spanning multiple lines, further reducing readability. This appears to be performance-optimized GPU kernel code (likely OpenCL/CUDA), where such patterns sometimes prioritize speed over readability, but the current form is practically unmaintainable without extensive documentation.

Run 3

This code is extremely difficult to read due to several critical issues. The macro-based structure obscures the actual logic, making it hard to understand what the code does without tracing through multiple macro expansions. The backslash continuations and nested macro calls create a tangled mess rather than clear program flow. Nesting is moderate (2 levels) but the conditional logic within macros adds confusion. The intent is unclear - variables like 'a', 'b', 'c', 'd', 'b12', 'MD4S34' are cryptic and don't convey purpose. The code length is unnecessarily long due to repetitive macro invocations with 16 separate function calls. While action granularity appears to be one operation per line, the multi-line macro calls break this convention. Reading flow is completely disrupted by the macro indentation and backslash continuations. The only positive aspect is the consistent pattern in the MAKE_MFN_NTLM_KERNEL1_8LENGTH calls, but this doesn't compensate for the overall unreadability. This code would benefit greatly from meaningful variable names, removal of excessive macro usage, and better documentation of the MD4 hash computation logic.

Run 1

Code Structure: Sequential hash operations, checking, incrementing, and storage form recognizable stages, but macro expansion and incomplete surrounding context obscure organization. Nesting: Two conditional levels are manageable, although the enclosing macro adds complexity. Clarity of intent: NTLM-related names suggest the purpose, but terse variables, unexplained thresholds, and token-pasted identifiers make details difficult to interpret. Code length: Repeated hash calls and sixteen kernel instantiations are verbose, though potentially justified by specialization. Action granularity: Most lines contain one operation; the long hash-check argument list increases cognitive load. Reading flow: Consistent operation ordering helps, but continuation backslashes, uneven indentation, long lines, and dense identifiers interrupt scanning.

Run 2

Code Structure: MD4 operations, hash checking, password incrementing, and kernel generation form recognizable stages, but macro expansion and incomplete surrounding context obscure boundaries. Nesting: Two conditional levels are manageable, with mostly consistent indentation. Clarity of intent: NTLM-related names indicate the overall purpose, but terse state variables, unexplained length thresholds, and token-pasted macro calls require specialized knowledge. Code length: Repeated MD4 calls and sixteen kernel declarations are verbose, although likely intentional for unrolling and specialization. Action granularity: Each statement generally performs one action, but the hash-check call has a large, difficult-to-track argument list. Reading flow: Execution proceeds sequentially, but continuation backslashes, long identifiers, inconsistent indentation, and absent explanatory comments interrupt scanning.

Run 3

Code Structure: Hash operations, result checking, password incrementing, and kernel generation form recognizable stages, but macro expansion and missing surrounding context obscure their organization. Nesting: Two levels of conditional nesting are manageable, although macro continuation characters add visual noise. Clarity of intent: NTLM-related names suggest the purpose, but terse state variables, unexplained length thresholds, and token-pasted macro names require substantial domain knowledge. Code length: Repeated MD4 calls and sixteen kernel declarations are verbose, though potentially justified by algorithm unrolling and specialization. Action granularity: Each statement generally performs one action, which helps readability; the hash-check call is harder to scan because of its many arguments. Reading flow: Execution is mostly sequential, but long identifiers, uneven indentation, repetitive calls, and the partial macro boundary interrupt natural reading.