digraph {
rankdir=LR;
node [shape=plaintext];
subgraph cluster__saints_row_2_vpp_pc {
label="SaintsRow2VppPc";
graph[style=dotted];
saints_row_2_vpp_pc__seq [label=<
pos | size | type | id |
0 | 5 | | magic |
5 | 335 | | pad1 |
340 | 4 | s4le | num_files |
344 | 4 | s4le | container_size |
348 | 4 | s4le | len_offsets |
352 | 4 | s4le | len_filenames |
356 | 4 | s4le | len_extensions |
360 | 4 | s4le | smth5 |
364 | 4 | s4le | smth6 |
368 | 4 | s4le | smth7 |
372 | 4 | s4le | smth8 |
376 | 4 | s4le | smth9 |
>];
saints_row_2_vpp_pc__inst__filenames [label=<
pos | size | type | id |
ofs_filenames | len_filenames | Strings | filenames |
>];
saints_row_2_vpp_pc__inst__ofs_extensions [label=<
id | value |
ofs_extensions | (((ofs_filenames + len_filenames) & 4294965248) + 2048) |
>];
saints_row_2_vpp_pc__inst__files [label=<
pos | size | type | id |
2048 | len_offsets | Offsets | files |
>];
saints_row_2_vpp_pc__inst__data_start [label=<
id | value |
data_start | (((ofs_extensions + len_extensions) & 4294965248) + 2048) |
>];
saints_row_2_vpp_pc__inst__extensions [label=<
pos | size | type | id |
ofs_extensions | len_extensions | Strings | extensions |
>];
saints_row_2_vpp_pc__inst__ofs_filenames [label=<
id | value |
ofs_filenames | (((2048 + len_offsets) & 4294965248) + 2048) |
>];
subgraph cluster__offsets {
label="SaintsRow2VppPc::Offsets";
graph[style=dotted];
offsets__seq [label=<
pos | size | type | id |
0 | 28 | Offset | entries |
repeat to end of stream |
>];
subgraph cluster__offset {
label="SaintsRow2VppPc::Offsets::Offset";
graph[style=dotted];
offset__seq [label=<
pos | size | type | id |
0 | 4 | u4le | name_ofs |
4 | 4 | u4le | ext_ofs |
8 | 4 | s4le | smth2 |
12 | 4 | s4le | ofs_body |
16 | 4 | s4le | len_body |
20 | 4 | s4le | always_minus_1 |
24 | 4 | s4le | always_zero |
>];
offset__inst__filename [label=<
pos | size | type | id |
name_ofs | ... | str(UTF-8) | filename |
>];
offset__inst__ext [label=<
pos | size | type | id |
ext_ofs | ... | str(UTF-8) | ext |
>];
offset__inst__body [label=<
pos | size | type | id |
(_root.data_start + ofs_body) | len_body | | body |
>];
}
}
subgraph cluster__strings {
label="SaintsRow2VppPc::Strings";
graph[style=dotted];
strings__seq [label=<
pos | size | type | id |
0 | ... | str(UTF-8) | entries |
repeat to end of stream |
>];
}
}
saints_row_2_vpp_pc__inst__ofs_filenames:ofs_filenames_type -> saints_row_2_vpp_pc__inst__filenames:filenames_pos [color="#404040"];
saints_row_2_vpp_pc__seq:len_filenames_type -> saints_row_2_vpp_pc__inst__filenames:filenames_size [color="#404040"];
saints_row_2_vpp_pc__inst__filenames:filenames_type -> strings__seq [style=bold];
saints_row_2_vpp_pc__inst__ofs_filenames:ofs_filenames_type -> saints_row_2_vpp_pc__inst__ofs_extensions [color="#404040"];
saints_row_2_vpp_pc__seq:len_filenames_type -> saints_row_2_vpp_pc__inst__ofs_extensions [color="#404040"];
saints_row_2_vpp_pc__seq:len_offsets_type -> saints_row_2_vpp_pc__inst__files:files_size [color="#404040"];
saints_row_2_vpp_pc__inst__files:files_type -> offsets__seq [style=bold];
saints_row_2_vpp_pc__inst__ofs_extensions:ofs_extensions_type -> saints_row_2_vpp_pc__inst__data_start [color="#404040"];
saints_row_2_vpp_pc__seq:len_extensions_type -> saints_row_2_vpp_pc__inst__data_start [color="#404040"];
saints_row_2_vpp_pc__inst__ofs_extensions:ofs_extensions_type -> saints_row_2_vpp_pc__inst__extensions:extensions_pos [color="#404040"];
saints_row_2_vpp_pc__seq:len_extensions_type -> saints_row_2_vpp_pc__inst__extensions:extensions_size [color="#404040"];
saints_row_2_vpp_pc__inst__extensions:extensions_type -> strings__seq [style=bold];
saints_row_2_vpp_pc__seq:len_offsets_type -> saints_row_2_vpp_pc__inst__ofs_filenames [color="#404040"];
offsets__seq:entries_type -> offset__seq [style=bold];
offset__seq:name_ofs_type -> offset__inst__filename:filename_pos [color="#404040"];
offset__seq:ext_ofs_type -> offset__inst__ext:ext_pos [color="#404040"];
saints_row_2_vpp_pc__inst__data_start:data_start_type -> offset__inst__body:body_pos [color="#404040"];
offset__seq:ofs_body_type -> offset__inst__body:body_pos [color="#404040"];
offset__seq:len_body_type -> offset__inst__body:body_size [color="#404040"];
}