### H1 object_audit vs split_H1
== sections (January-owned)
  ok   .rdata   sym:??_C@_09PNPFALML@triangles?$AA@                  size    10/10    flags eq align 3/3
  ok   .rdata   sym:??_C@_0BA@LCGOFHFK@triangle_buffer?$AA@          size    16/16    flags eq align 3/3
  ok   .rdata   sym:??_C@_0CM@JPLBMMAK@vertex_size?$CKcount?$DN?$DNb size    44/44    flags eq align 3/3
  ok   .rdata   sym:??_C@_0DJ@PABNNDOA@?$CD?$CD?$CD?5ERROR?5failed?5 size    57/57    flags eq align 3/3
  ok   .rdata   sym:??_C@_0DL@GGBLFLCG@?$CD?$CD?$CD?5ERROR?5failed?5 size    59/59    flags eq align 3/3
  ok   .rdata   sym:??_C@_0ED@PHIGAHC@c?3?2halo?2SOURCE?2rasterizer? size    67/67    flags eq align 4/4
  ok   .rdata   sym:??_C@_0JK@INEJEDKE@IDirect3DDevice8_CreateVertex size   154/154   flags eq align 4/4
  ok   .rdata   sym:??_C@_0KF@HKLHKIPE@IDirect3DDevice8_CreateIndexB size   165/165   flags eq align 4/4
  ok   .text    sym:_D3DIndexBuffer_Lock@20                          size    16/16    flags eq align 5/5
  ok   .text    sym:_D3DIndexBuffer_Unlock@4                         size    16/16    flags eq align 5/5
  ok   .text    sym:_D3DVertexBuffer_Unlock@4                        size    16/16    flags eq align 5/5
  ok   .text    sym:_IDirect3DDevice8_CreateIndexBuffer@24           size    32/32    flags eq align 5/5
  ok   .text    sym:_IDirect3DDevice8_CreateVertexBuffer@24          size    32/32    flags eq align 5/5
  ok   .text    sym:_IDirect3DIndexBuffer8_Lock@20                   size    32/32    flags eq align 5/5
  ok   .text    sym:_IDirect3DIndexBuffer8_Release@4                 size    16/16    flags eq align 5/5
  ok   .text    sym:_IDirect3DIndexBuffer8_Unlock@4                  size    16/16    flags eq align 5/5
  ok   .text    sym:_IDirect3DVertexBuffer8_Lock@20                  size    32/32    flags eq align 5/5
  ok   .text    sym:_IDirect3DVertexBuffer8_Release@4                size    16/16    flags eq align 5/5
  ok   .text    sym:_IDirect3DVertexBuffer8_Unlock@4                 size    16/16    flags eq align 5/5
  ok   .text    sym:_code_00158450@8                                 size    16/16    flags eq align 5/5
  ok   .text    sym:_code_00158460@8                                 size    16/16    flags eq align 5/5
  ok   .text    sym:_rasterizer_triangle_buffer_delete               size    48/48    flags eq align 5/5
  ok   .text    sym:_rasterizer_triangle_buffer_new                  size   352/352   flags eq align 5/5
  ok   .text    sym:_rasterizer_vertex_buffer_delete                 size    48/48    flags eq align 5/5
  ok   .text    sym:_rasterizer_vertex_buffer_new                    size   368/368   flags eq align 5/5
== symbols (January)
  25 January symbols, 0 differ
== candidate-only surplus (no credit; needs provider link)
  +.drectve sec:.drectve#0                                       size 42
  +.rdata   sym:??_C@_07NBEECHDO@count?$DO0?$AA@                 size 8
  +.rdata   sym:??_C@_0CL@FELLKCJH@?$CD?$CD?$CD?5ERROR?5unsuppor size 43
  +.rdata   sym:??_C@_0O@EFOAJPDM@vertex_buffer?$AA@             size 14
  +.rdata   sym:_D3DPRIMITIVETOVERTEXCOUNT                       size 88
  +.rdata   sym:_D3DSIMPLERENDERSTATEENCODE                      size 328
  +.rdata   sym:_D3DTEXTUREDIRECTENCODE                          size 16
OBJECT AUDIT: PASS
exit=0
### H1 pdb_storage vs split_H1
source/rasterizer/xbox/rasterizer_xbox_hardware_geometry: 25 split symbols, 2 disagreements with PDB publics
   _code_00158450@8                                   split 2 ours 2 PDB-public False
   _code_00158460@8                                   split 2 ours 2 PDB-public False
### H1 surplus_identity
source/rasterizer/xbox/rasterizer_xbox_hardware_geometry: 0 candidate-only code COMDATs, 0 not identical
### control: object_audit HEAD obj vs build/split (via wrapper, must equal direct run)
  +.text    sym:_IDirect3DVertexBuffer8_Unlock@4                 size 16
OBJECT AUDIT: FAIL (7)
### H1 provider_link (split_H1)
??_C@_07NBEECHDO@count?$DO0?$AA@             provider source/ai/ai                                     PASS
??_C@_0CL@FELLKCJH@?$CD?$CD?$CD?5ERROR?5unsupported?5triangle?5b@ provider source/rasterizer/xbox/rasterizer_xbox_draw_primitives PASS
??_C@_0O@EFOAJPDM@vertex_buffer?$AA@         provider source/rasterizer/xbox/rasterizer_xbox_environment PASS
_D3DPRIMITIVETOVERTEXCOUNT                   provider source/rasterizer/xbox/rasterizer_xbox_decals    PASS
_D3DSIMPLERENDERSTATEENCODE                  provider source/interface/progress_bar                    PASS
_D3DTEXTUREDIRECTENCODE                      provider source/cseries/headers                           PASS
SELECTED-PROVIDER LINK: PASS
exit=0
### H1 /W3 census (copy)
rc 0 {'warning C4146': 1, 'warning C4244': 13}
### HEAD /W3 census
rc 0 {'warning C4146': 1, 'warning C4244': 13}
### fake_match_scan H1 copy
Review leads only: a finding does not prove fake source, a semantic bug, or an invalid byte match.
Scanned 1 file(s); 0 review lead(s); skipped 0 vendored path(s).
### protoscan
== research/compiler_application_20260925/workers/E1/copies/rasterizer_xbox_hardware_geometry_H1.c
### rename identity: HEAD hand stub vs H1 genuine XDK wrapper (section_infos_equal)
  _code_00158470@4     == _D3DVertexBuffer_Unlock@4          True  (16 B, 0 relocs)
  _code_001584b0@4     == _IDirect3DVertexBuffer8_Unlock@4   True  (16 B, 0 relocs)
  _code_001584d0@4     == _D3DIndexBuffer_Unlock@4           True  (16 B, 0 relocs)
  _code_00158510@4     == _IDirect3DIndexBuffer8_Unlock@4    True  (16 B, 0 relocs)
