=== Panic-string -> enclosing-function mapping (win32kbase_rs.sys) === Method: locate the source-path string in .rdata; find 8-byte pointers to it (Rust core::panic::Location structs {file_ptr, file_len, line, col}); find every `lea` in the disassembly that loads a Location struct address; map that code address to the enclosing public function via PDB S_PUB32 addresses + .pdata. --- gdi_rust source strings present --- RVA 0x1A590 VA 0x14001A590 gdi_rust\src\xform\mod.rs RVA 0x1A5AA VA 0x14001A5AA gdi_rust\src\xform\xformobj_h.rs RVA 0x1A5ED VA 0x14001A5ED gdi_rust\src\xform\xformobj_cxx.rs RVA 0x1A610 VA 0x14001A610 gdi_rust\src\umptr.rs RVA 0x1A640 VA 0x14001A640 gdi_rust\src\region.rs RVA 0x1A68A VA 0x14001A68A gdi_rust\src\xform\xformer.rs RVA 0x1ADAC VA 0x14001ADAC gdi_rust\src\pathobj.rs RVA 0x1AEA0 VA 0x14001AEA0 gdi_rust\src\region\from_path.rs ==================== TARGET (Check Point OOB site): 'gdi_rust\\src\\region\\from_path.rs' ==================== string @ file0x1AEA0 RVA0x1AEA0 VA0x14001AEA0 (len=32) -> Location struct @ RVA0x19BE8 VA0x140019BE8 : filePtr=0x14001AEA0 strlen=32 line=0 col=188 lea @ 0x140010C5B in gdi_rust::region::from_path::region_from_path_mut : 140010c5b: lea rcx, [rip + 0x8f86] # 0x140019be8 -> Location struct @ RVA0x19C00 VA0x140019C00 : filePtr=0x14001AEA0 strlen=32 line=0 col=196 lea @ 0x140010B9C in gdi_rust::region::from_path::region_from_path_mut : 140010b9c: lea r8, [rip + 0x905d] # 0x140019c00 -> Location struct @ RVA0x19C18 VA0x140019C18 : filePtr=0x14001AEA0 strlen=32 line=0 col=207 lea @ 0x140010BB0 in gdi_rust::region::from_path::region_from_path_mut : 140010bb0: lea r8, [rip + 0x9061] # 0x140019c18 -> Location struct @ RVA0x19C30 VA0x140019C30 : filePtr=0x14001AEA0 strlen=32 line=0 col=327 lea @ 0x140010FDA in gdi_rust::region::from_path::region_from_path_mut : 140010fda: lea rcx, [rip + 0x8c4f] # 0x140019c30 -> Location struct @ RVA0x19C48 VA0x140019C48 : filePtr=0x14001AEA0 strlen=32 line=0 col=348 lea @ 0x140010FCE in gdi_rust::region::from_path::region_from_path_mut : 140010fce: lea rcx, [rip + 0x8c73] # 0x140019c48 -> Location struct @ RVA0x19C60 VA0x140019C60 : filePtr=0x14001AEA0 strlen=32 line=0 col=437 lea @ 0x140010C92 in gdi_rust::region::from_path::region_from_path_mut : 140010c92: lea r8, [rip + 0x8fc7] # 0x140019c60 -> Location struct @ RVA0x19C78 VA0x140019C78 : filePtr=0x14001AEA0 strlen=32 line=0 col=451 lea @ 0x140010C43 in gdi_rust::region::from_path::region_from_path_mut : 140010c43: lea rcx, [rip + 0x902e] # 0x140019c78 -> Location struct @ RVA0x19C90 VA0x140019C90 : filePtr=0x14001AEA0 strlen=32 line=0 col=451 lea @ 0x140010C4F in gdi_rust::region::from_path::region_from_path_mut : 140010c4f: lea rcx, [rip + 0x903a] # 0x140019c90 -> Location struct @ RVA0x19CA8 VA0x140019CA8 : filePtr=0x14001AEA0 strlen=32 line=0 col=444 lea @ 0x140010B62 in gdi_rust::region::from_path::region_from_path_mut : 140010b62: lea rcx, [rip + 0x913f] # 0x140019ca8 -> Location struct @ RVA0x19CC0 VA0x140019CC0 : filePtr=0x14001AEA0 strlen=32 line=0 col=520 lea @ 0x140010C83 in gdi_rust::region::from_path::region_from_path_mut : 140010c83: lea r8, [rip + 0x9036] # 0x140019cc0 -> Location struct @ RVA0x19CD8 VA0x140019CD8 : filePtr=0x14001AEA0 strlen=32 line=0 col=558 lea @ 0x140010C33 in gdi_rust::region::from_path::region_from_path_mut : 140010c33: lea r8, [rip + 0x909e] # 0x140019cd8 -> Location struct @ RVA0x19CF0 VA0x140019CF0 : filePtr=0x14001AEA0 strlen=32 line=0 col=611 lea @ 0x140010C71 in gdi_rust::region::from_path::region_from_path_mut : 140010c71: lea r8, [rip + 0x9078] # 0x140019cf0 -> Location struct @ RVA0x19D08 VA0x140019D08 : filePtr=0x14001AEA0 strlen=32 line=0 col=662 lea @ 0x140011F32 in gdi_rust::region::from_path::region_from_path_mut : 140011f32: lea rax, [rip + 0x7dcf] # 0x140019d08 -> Location struct @ RVA0x19D20 VA0x140019D20 : filePtr=0x14001AEA0 strlen=32 line=0 col=730 lea @ 0x140011EE4 in gdi_rust::region::from_path::region_from_path_mut : 140011ee4: lea rax, [rip + 0x7e35] # 0x140019d20 -> Location struct @ RVA0x19D38 VA0x140019D38 : filePtr=0x14001AEA0 strlen=32 line=0 col=730 lea @ 0x140011F20 in gdi_rust::region::from_path::region_from_path_mut : 140011f20: lea rax, [rip + 0x7e11] # 0x140019d38 -> Location struct @ RVA0x19D50 VA0x140019D50 : filePtr=0x14001AEA0 strlen=32 line=0 col=682 lea @ 0x140011EC1 in gdi_rust::region::from_path::region_from_path_mut : 140011ec1: lea rax, [rip + 0x7e88] # 0x140019d50 -> Location struct @ RVA0x19D68 VA0x140019D68 : filePtr=0x14001AEA0 strlen=32 line=0 col=682 lea @ 0x140011F02 in gdi_rust::region::from_path::region_from_path_mut : 140011f02: lea rax, [rip + 0x7e5f] # 0x140019d68 -> Location struct @ RVA0x19D80 VA0x140019D80 : filePtr=0x14001AEA0 strlen=32 line=0 col=763 lea @ 0x140011F49 in gdi_rust::region::from_path::region_from_path_mut : 140011f49: lea rax, [rip + 0x7e30] # 0x140019d80 -> Location struct @ RVA0x19D98 VA0x140019D98 : filePtr=0x14001AEA0 strlen=32 line=0 col=877 lea @ 0x140011F61 in gdi_rust::region::from_path::region_from_path_mut : 140011f61: lea r8, [rip + 0x7e30] # 0x140019d98 -> Location struct @ RVA0x19DB0 VA0x140019DB0 : filePtr=0x14001AEA0 strlen=32 line=0 col=883 lea @ 0x140011F87 in gdi_rust::region::from_path::region_from_path_mut : 140011f87: lea r8, [rip + 0x7e22] # 0x140019db0 -> Location struct @ RVA0x19DC8 VA0x140019DC8 : filePtr=0x14001AEA0 strlen=32 line=0 col=916 lea @ 0x140011FA7 in gdi_rust::region::from_path::region_from_path_mut : 140011fa7: lea rcx, [rip + 0x7e1a] # 0x140019dc8 -> Location struct @ RVA0x19DE0 VA0x140019DE0 : filePtr=0x14001AEA0 strlen=32 line=0 col=902 lea @ 0x140011FC2 in gdi_rust::region::from_path::region_from_path_mut : 140011fc2: lea rcx, [rip + 0x7e17] # 0x140019de0 lea @ 0x140011FCE in gdi_rust::region::from_path::region_from_path_mut : 140011fce: lea rcx, [rip + 0x7e0b] # 0x140019de0 ==================== CONTROL 1: 'gdi_rust\\src\\xform\\xformer.rs' ==================== string @ file0x1A68A RVA0x1A68A VA0x14001A68A (len=29) -> Location struct @ RVA0x19158 VA0x140019158 : filePtr=0x14001A68A strlen=29 line=0 col=29 lea @ 0x14000580B in gdi_rust::xform::xformer::bCvtPts : 14000580b: lea rax, [rip + 0x13946] # 0x140019158 -> Location struct @ RVA0x19170 VA0x140019170 : filePtr=0x14001A68A strlen=29 line=0 col=206 lea @ 0x140005E4C in gdi_rust::xform::xformer::bCvtVts : 140005e4c: lea rax, [rip + 0x1331d] # 0x140019170 ==================== CONTROL 2: 'gdi_rust\\src\\region.rs' ==================== string @ file0x1A640 RVA0x1A640 VA0x14001A640 (len=22) -> Location struct @ RVA0x19118 VA0x140019118 : filePtr=0x14001A640 strlen=22 line=0 col=286 lea @ 0x140004EF0 in gdi_rust::region::try_repair_zero_sized_scan : 140004ef0: lea r8, [rip + 0x14221] # 0x140019118 -> Location struct @ RVA0x19130 VA0x140019130 : filePtr=0x14001A640 strlen=22 line=0 col=448 lea @ 0x14000524A in RegionCore_download : 14000524a: lea r8, [rip + 0x13edf] # 0x140019130 === SUMMARY === from_path.rs: 22 Location structs; enclosing function(s) of all lea refs: ['gdi_rust::region::from_path::region_from_path_mut'] region_from_path_mut is among them: YES