Malicious Office (OLE) / .RL — malware analysis report

Static analysis result for SHA-256 ab4be65c65a1cd8b…

MALICIOUS

Office (OLE) / .RL

282.6 KB Created: 1999-12-24 16:36:33 Authoring application: Microsoft Excel First seen: 2026-06-21
MD5: e424c0354b09de4740f12cadea901e4e SHA-1: 53a03c08a33f9908b5abc7cd32963e2fb0c35b92 SHA-256: ab4be65c65a1cd8b19b4c86b84d8ee9fc629a8520f8e737c81a3207d7beb2237
168 Risk Score

Heuristics 5

  • ClamAV: Xls.Dropper.Agent-1828480 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Xls.Dropper.Agent-1828480
  • XOR-encoded strings (key 0xFC) critical SC_XOR_ENCODED
    Found 4 Windows library/API name(s) XOR-encoded with single-byte key 0xFC: 'LoadLibraryA', 'GetProcAddress', 'RegOpenKeyExA', 'ShellExecuteA'
  • Excel 4.0 (XLM) macro sheet present medium OLE_XLM_AUTOOPEN
    Workbook contains an Excel 4.0 macro sheet sub-stream — XLM is rarely seen in modern legitimate workbooks and was a major Office malware vector during 2020-2022.
  • VBA macros detected medium 1 related finding OLE_VBA_MACROS
    Document contains VBA macro code
  • Workbook_Open macro low OLE_VBA_WBOPEN
    Workbook_Open macro
    Matched line in script
    Private Sub Workbook_Open()

Extracted artifacts 2

Files carved from inside the sample during analysis.

FilenameKindSourceSize
xlm_macros.txt xlm-macro oletools.olevba.extract_all_macros (XLM macro listing) 17509 bytes
SHA-256: c2d076a6e609a8b33579240c4c97ddb741702fb224c691665176231441d0ac2f
Preview script
First 1,000 lines of the extracted script
' 0085     11 BOUNDSHEET : Sheet Information - worksheet or dialog sheet, visible -  LV
' 0085     11 BOUNDSHEET : Sheet Information - worksheet or dialog sheet, visible -  LV
' 0085     11 BOUNDSHEET : Sheet Information - worksheet or dialog sheet, visible -  LV
' 0085     11 BOUNDSHEET : Sheet Information - worksheet or dialog sheet, visible -  LV
' 0085     11 BOUNDSHEET : Sheet Information - worksheet or dialog sheet, visible -  LV
' 0085     11 BOUNDSHEET : Sheet Information - worksheet or dialog sheet, visible -  LV
' 0085     11 BOUNDSHEET : Sheet Information - worksheet or dialog sheet, visible -  LV
' 0085     11 BOUNDSHEET : Sheet Information - worksheet or dialog sheet, visible -  LV
' 0085     11 BOUNDSHEET : Sheet Information - Excel 4.0 macro sheet, hidden -  ms
' 0085     11 BOUNDSHEET : Sheet Information - Excel 4.0 macro sheet, hidden -  ms
' 0085     11 BOUNDSHEET : Sheet Information - Excel 4.0 macro sheet, hidden -  ms
' 0085     11 BOUNDSHEET : Sheet Information - Excel 4.0 macro sheet, hidden -  ms
' 0085     11 BOUNDSHEET : Sheet Information - Excel 4.0 macro sheet, hidden -  ms
' 0085     11 BOUNDSHEET : Sheet Information - Excel 4.0 macro sheet, hidden -  ms
' 0085     11 BOUNDSHEET : Sheet Information - Excel 4.0 macro sheet, hidden -  ms
' 0085     11 BOUNDSHEET : Sheet Information - Excel 4.0 macro sheet, hidden -  ms
' 002a      2 PRINTHEADERS : Print Row/Column Labels
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 002a      2 PRINTHEADERS : Print Row/Column Labels
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 002a      2 PRINTHEADERS : Print Row/Column Labels
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 002a      2 PRINTHEADERS : Print Row/Column Labels
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 002a      2 PRINTHEADERS : Print Row/Column Labels
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 002a      2 PRINTHEADERS : Print Row/Column Labels
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 002a      2 PRINTHEADERS : Print Row/Column Labels
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 002a      2 PRINTHEADERS : Print Row/Column Labels
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 00fd     10 LABELSST : Cell Value, String Constant/ SST
' 002a      2 PRINTHEADERS : Print Row/Column Labels
' 002a      2 PRINTHEADERS : Print Row/Column Labels
' 002a      2 PRINTHEADERS : Print Row/Column Labels
' 002a      2 PRINTHEADERS : Print Row/Column Labels
' 002a      2 PRINTHEADERS : Print Row/Column Labels
' 002a      2 PRINTHEADERS : Print Row/Column Labels
' 002a      2 PRINTHEADERS : Print Row/Column Labels
' 002a      2 PRINTHEADERS : Print Row/Column Labels
' Sheet,Reference,Formula,Value
'  LV,O1,"",0.00000000000000000000
'  LV,O2,"",1.00000000000000000000
'  LV,M3,"",1.00000000000000000000
'  LV,O3,"",2.00000000000000000000
'  LV,O4,"",3.00000000000000000000
'  LV,O5,"",4.00000000000000000000
'  LV,A6,"",2.00000000000000000000
'  LV,O6,"",5.00000000000000000000
'  LV,B7,"",4.00000000000000000000
'  LV,H2,"",4.00000000000000000000
'  LV,A4,"",1.00000000000000000000
'  LV,H7,"",3.00000000000000000000
'  LV,H3,"",3.00000000000000000000
'  LV,H6,"",3.00000000000000000000
'  LV,H7,"",3.00000000000000000000
'  LV,A2,"",1.00000000000000000000
'  LV,G2,"",7.00000000000000000000
'  LV,A8,"",1.00000000000000000000
'  LV,H1,"",4.00000000000000000000
'  LV,H3,"",4.00000000000000000000
'  LV,H4,"",3.00000000000000000000
'  LV,H1,"",4.00000000000000000000
'  LV,A2,"",1.00000000000000000000
'  LV,H2,"",5.00000000000000000000
'  LV,A4,"",1.00000000000000000000
'  LV,E5,"",6.00000000000000000000
'  LV,F4,"",5.00000000000000000000
'  LV,H4,"",3.00000000000000000000
'  LV,H7,"",1.00000000000000000000
'  LV,B4,"",3.00000000000000000000
'  LV,A5,"",2.00000000000000000000
'  ms,A1,[],""
'  ms,B1,[],""
'  ms,C1,[],""
'  ms,D1,[],""
'  ms,E1,[],""
'  ms,F1,[],""
'  ms,G1,[],""
'  ms,H1,[],""
'  ms,A2,[],""
'  ms,B2,[],""
'  ms,C2,[],""
'  ms,D2,[],""
'  ms,E2,[],""
'  ms,F2,[],""
'  ms,G2,[],""
'  ms,H2,[],""
'  ms,A3,[],""
'  ms,B3,[],""
'  ms,C3,[],""
'  ms,D3,[],""
'  ms,E3,[],""
'  ms,F3,[],""
'  ms,G3,[],""
'  ms,H3,[],""
'  ms,A4,[],""
'  ms,B4,[],""
'  ms,C4,[],""
'  ms,D4,[],""
'  ms,E4,[],""
'  ms,F4,[],""
'  ms,G4,[],""
'  ms,H4,[],""
'  ms,A5,[],""
'  ms,B5,[],""
'  ms,C5,[],""
'  ms,D5,[],""
'  ms,E5,[],""
'  ms,F5,[],""
'  ms,G5,[],""
'  ms,H5,[],""
'  ms,A6,[],""
'  ms,B6,[],""
'  ms,C6,[],""
'  ms,D6,[],""
'  ms,E6,[],""
'  ms,F6,[],""
'  ms,G6,[],""
'  ms,H6,[],""
'  ms,A7,[],""
'  ms,B7,[],""
'  ms,C7,[],""
'  ms,D7,[],""
'  ms,E7,[],""
'  ms,F7,[],""
'  ms,G7,[],""
'  ms,H7,[],""
'  ms,A8,[],""
'  ms,B8,[],""
'  ms,C8,[],""
'  ms,D8,[],""
'  ms,E8,[],""
'  ms,F8,[],""
'  ms,G8,[],""
'  ms,H8,[],""
'  ms,A1,[],""
'  ms,B1,[],""
'  ms,C1,[],""
'  ms,D1,[],""
'  ms,E1,[],""
'  ms,F1,[],""
'  ms,G1,[],""
'  ms,H1,[],""
'  ms,A2,[],""
'  ms,B2,[],""
'  ms,C2,[],""
'  ms,D2,[],""
'  ms,E2,[],""
'  ms,F2,[],""
'  ms,G2,[],""
'  ms,H2,[],""
'  ms,A3,[],""
'  ms,B3,[],""
'  ms,C3,[],""
'  ms,D3,[],""
'  ms,E3,[],""
'  ms,F3,[],""
'  ms,G3,[],""
'  ms,H3,[],""
'  ms,A4,[],""
'  ms,B4,[],""
'  ms,C4,[],""
'  ms,D4,[],""
'  ms,E4,[],""
'  ms,F4,[],""
'  ms,G4,[],""
'  ms,H4,[],""
'  ms,A5,[],""
'  ms,B5,[],""
'  ms,C5,[],""
'  ms,D5,[],""
'  ms,E5,[],""
'  ms,F5,[],""
'  ms,G5,[],""
'  ms,H5,[],""
'  ms,A6,[],""
'  ms,B6,[],""
'  ms,C6,[],""
'  ms,D6,[],""
'  ms,E6,[],""
'  ms,F6,[],""
'  ms,G6,[],""
'  ms,H6,[],""
'  ms,A7,[],""
'  ms,B7,[],""
'  ms,C7,[],""
'  ms,D7,[],""
'  ms,E7,[],""
'  ms,F7,[],""
'  ms,G7,[],""
'  ms,H7,[],""
'  ms,A8,[],""
'  ms,B8,[],""
'  ms,C8,[],""
'  ms,D8,[],""
'  ms,E8,[],""
'  ms,F8,[],""
'  ms,G8,[],""
'  ms,H8,[],""
'  ms,A1,[],""
'  ms,B1,[],""
'  ms,C1,[],""
'  ms,D1,[],""
'  ms,E1,[],""
'  ms,F1,[],""
'  ms,G1,[],""
'  ms,H1,[],""
'  ms,A2,[],""
'  ms,B2,[],""
'  ms,C2,[],""
'  ms,D2,[],""
'  ms,E2,[],""
'  ms,F2,[],""
'  ms,G2,[],""
'  ms,H2,[],""
'  ms,A3,[],""
'  ms,B3,[],""
'  ms,C3,[],""
'  ms,D3,[],""
'  ms,E3,[],""
'  ms,F3,[],""
'  ms,G3,[],""
'  ms,H3,[],""
'  ms,A4,[],""
'  ms,B4,[],""
'  ms,C4,[],""
'  ms,D4,[],""
'  ms,E4,[],""
'  ms,F4,[],""
'  ms,G4,[],""
'  ms,H4,[],""
'  ms,A5,[],""
'  ms,B5,[],""
'  ms,C5,[],""
'  ms,D5,[],""
'  ms,E5,[],""
'  ms,F5,[],""
'  ms,G5,[],""
'  ms,H5,[],""
'  ms,A6,[],""
'  ms,B6,[],""
'  ms,C6,[],""
'  ms,D6,[],""
'  ms,E6,[],""
'  ms,F6,[],""
'  ms,G6,[],""
'  ms,H6,[],""
'  ms,A7,[],""
'  ms,B7,[],""
'  ms,C7,[],""
'  ms,D7,[],""
'  ms,E7,[],""
'  ms,F7,[],""
'  ms,G7,[],""
'  ms,H7,[],""
'  ms,A8,[],""
'  ms,B8,[],""
'  ms,C8,[],""
'  ms,D8,[],""
'  ms,E8,[],""
'  ms,F8,[],""
'  ms,G8,[],""
'  ms,H8,[],""
'  ms,A1,[],""
'  ms,B1,[],""
'  ms,C1,[],""
'  ms,D1,[],""
'  ms,E1,[],""
'  ms,F1,[],""
'  ms,G1,[],""
'  ms,H1,[],""
'  ms,A2,[],""
'  ms,B2,[],""
'  ms,C2,[],""
'  ms,D2,[],""
'  ms,E2,[],""
'  ms,F2,[],""
'  ms,G2,[],""
'  ms,H2,[],""
'  ms,A3,[],""
'  ms,B3,[],""
'  ms,C3,[],""
'  ms,D3,[],""
'  ms,E3,[],""
'  ms,F3,[],""
'  ms,G3,[],""
'  ms,H3,[],""
'  ms,A4,[],""
'  ms,B4,[],""
'  ms,C4,[],""
'  ms,D4,[],""
'  ms,E4,[],""
'  ms,F4,[],""
'  ms,G4,[],""
'  ms,H4,[],""
'  ms,A5,[],""
'  ms,B5,[],""
'  ms,C5,[],""
'  ms,D5,[],""
'  ms,E5,[],""
'  ms,F5,[],""
'  ms,G5,[],""
'  ms,H5,[],""
'  ms,A6,[],""
'  ms,B6,[],""
'  ms,C6,[],""
'  ms,D6,[],""
'  ms,E6,[],""
'  ms,F6,[],""
'  ms,G6,[],""
'  ms,H6,[],""
'  ms,A7,[],""
'  ms,B7,[],""
'  ms,C7,[],""
'  ms,D7,[],""
'  ms,E7,[],""
'  ms,F7,[],""
'  ms,G7,[],""
'  ms,H7,[],""
'  ms,A8,[],""
'  ms,B8,[],""
'  ms,C8,[],""
'  ms,D8,[],""
'  ms,E8,[],""
'  ms,F8,[],""
'  ms,G8,[],""
'  ms,H8,[],""
'  ms,A1,[],""
'  ms,B1,[],""
'  ms,C1,[],""
'  ms,D1,[],""
'  ms,E1,[],""
'  ms,F1,[],""
'  ms,G1,[],""
'  ms,H1,[],""
'  ms,A2,[],""
'  ms,B2,[],""
'  ms,C2,[],""
'  ms,D2,[],""
'  ms,E2,[],""
'  ms,F2,[],""
'  ms,G2,[],""
'  ms,H2,[],""
'  ms,A3,[],""
'  ms,B3,[],""
'  ms,C3,[],""
'  ms,D3,[],""
'  ms,E3,[],""
'  ms,F3,[],""
'  ms,G3,[],""
'  ms,H3,[],""
'  ms,A4,[],""
'  ms,B4,[],""
'  ms,C4,[],""
'  ms,D4,[],""
'  ms,E4,[],""
'  ms,F4,[],""
'  ms,G4,[],""
'  ms,H4,[],""
'  ms,A5,[],""
'  ms,B5,[],""
'  ms,C5,[],""
'  ms,D5,[],""
'  ms,E5,[],""
'  ms,F5,[],""
'  ms,G5,[],""
'  ms,H5,[],""
'  ms,A6,[],""
'  ms,B6,[],""
'  ms,C6,[],""
'  ms,D6,[],""
'  ms,E6,[],""
'  ms,F6,[],""
'  ms,G6,[],""
'  ms,H6,[],""
'  ms,A7,[],""
'  ms,B7,[],""
'  ms,C7,[],""
'  ms,D7,[],""
'  ms,E7,[],""
'  ms,F7,[],""
'  ms,G7,[],""
'  ms,H7,[],""
'  ms,A8,[],""
'  ms,B8,[],""
'  ms,C8,[],""
'  ms,D8,[],""
'  ms,E8,[],""
'  ms,F8,[],""
'  ms,G8,[],""
'  ms,H8,[],""
'  ms,A1,[],""
'  ms,B1,[],""
'  ms,C1,[],""
'  ms,D1,[],""
'  ms,E1,[],""
'  ms,F1,[],""
'  ms,G1,[],""
'  ms,H1,[],""
'  ms,A2,[],""
'  ms,B2,[],""
'  ms,C2,[],""
'  ms,D2,[],""
'  ms,E2,[],""
'  ms,F2,[],""
'  ms,G2,[],""
'  ms,H2,[],""
'  ms,A3,[],""
'  ms,B3,[],""
'  ms,C3,[],""
'  ms,D3,[],""
'  ms,E3,[],""
'  ms,F3,[],""
'  ms,G3,[],""
'  ms,H3,[],""
'  ms,A4,[],""
'  ms,B4,[],""
'  ms,C4,[],""
'  ms,D4,[],""
'  ms,E4,[],""
'  ms,F4,[],""
'  ms,G4,[],""
'  ms,H4,[],""
'  ms,A5,[],""
'  ms,B5,[],""
'  ms,C5,[],""
'  ms,D5,[],""
'  ms,E5,[],""
'  ms,F5,[],""
'  ms,G5,[],""
'  ms,H5,[],""
'  ms,A6,[],""
'  ms,B6,[],""
'  ms,C6,[],""
'  ms,D6,[],""
'  ms,E6,[],""
'  ms,F6,[],""
'  ms,G6,[],""
'  ms,H6,[],""
'  ms,A7,[],""
'  ms,B7,[],""
'  ms,C7,[],""
'  ms,D7,[],""
'  ms,E7,[],""
'  ms,F7,[],""
'  ms,G7,[],""
'  ms,H7,[],""
'  ms,A8,[],""
'  ms,B8,[],""
'  ms,C8,[],""
'  ms,D8,[],""
'  ms,E8,[],""
'  ms,F8,[],""
'  ms,G8,[],""
'  ms,H8,[],""
'  ms,A1,[],""
'  ms,B1,[],""
'  ms,C1,[],""
'  ms,D1,[],""
'  ms,E1,[],""
'  ms,F1,[],""
'  ms,G1,[],""
'  ms,H1,[],""
'  ms,A2,[],""
'  ms,B2,[],""
'  ms,C2,[],""
'  ms,D2,[],""
'  ms,E2,[],""
'  ms,F2,[],""
'  ms,G2,[],""
'  ms,H2,[],""
'  ms,A3,[],""
'  ms,B3,[],""
'  ms,C3,[],""
'  ms,D3,[],""
'  ms,E3,[],""
'  ms,F3,[],""
'  ms,G3,[],""
'  ms,H3,[],""
'  ms,A4,[],""
'  ms,B4,[],""
'  ms,C4,[],""
'  ms,D4,[],""
'  ms,E4,[],""
'  ms,F4,[],""
'  ms,G4,[],""
'  ms,H4,[],""
'  ms,A5,[],""
'  ms,B5,[],""
'  ms,C5,[],""
'  ms,D5,[],""
'  ms,E5,[],""
'  ms,F5,[],""
'  ms,G5,[],""
'  ms,H5,[],""
'  ms,A6,[],""
'  ms,B6,[],""
'  ms,C6,[],""
'  ms,D6,[],""
'  ms,E6,[],""
'  ms,F6,[],""
'  ms,G6,[],""
'  ms,H6,[],""
'  ms,A7,[],""
'  ms,B7,[],""
'  ms,C7,[],""
'  ms,D7,[],""
'  ms,E7,[],""
'  ms,F7,[],""
'  ms,G7,[],""
'  ms,H7,[],""
'  ms,A8,[],""
'  ms,B8,[],""
'  ms,C8,[],""
'  ms,D8,[],""
'  ms,E8,[],""
'  ms,F8,[],""
'  ms,G8,[],""
'  ms,H8,[],""
'  ms,A1,[],""
'  ms,B1,[],""
'  ms,C1,[],""
'  ms,D1,[],""
'  ms,E1,[],""
'  ms,F1,[],""
'  ms,G1,[],""
'  ms,H1,[],""
'  ms,A2,[],""
'  ms,B2,[],""
'  ms,C2,[],""
'  ms,D2,[],""
'  ms,E2,[],""
'  ms,F2,[],""
'  ms,G2,[],""
'  ms,H2,[],""
'  ms,A3,[],""
'  ms,B3,[],""
'  ms,C3,[],""
'  ms,D3,[],""
'  ms,E3,[],""
'  ms,F3,[],""
'  ms,G3,[],""
'  ms,H3,[],""
'  ms,A4,[],""
'  ms,B4,[],""
'  ms,C4,[],""
'  ms,D4,[],""
'  ms,E4,[],""
'  ms,F4,[],""
'  ms,G4,[],""
'  ms,H4,[],""
'  ms,A5,[],""
'  ms,B5,[],""
'  ms,C5,[],""
'  ms,D5,[],""
'  ms,E5,[],""
'  ms,F5,[],""
'  ms,G5,[],""
'  ms,H5,[],""
'  ms,A6,[],""
'  ms,B6,[],""
'  ms,C6,[],""
'  ms,D6,[],""
'  ms,E6,[],""
'  ms,F6,[],""
'  ms,G6,[],""
'  ms,H6,[],""
'  ms,A7,[],""
'  ms,B7,[],""
'  ms,C7,[],""
'  ms,D7,[],""
'  ms,E7,[],""
'  ms,F7,[],""
'  ms,G7,[],""
'  ms,H7,[],""
'  ms,A8,[],""
'  ms,B8,[],""
'  ms,C8,[],""
'  ms,D8,[],""
'  ms,E8,[],""
'  ms,F8,[],""
'  ms,G8,[],""
'  ms,H8,[],""
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source) 27379 bytes
SHA-256: f82f64fb8eed203f5df702df259a33072613119b7d8b2c138bc8d6b38d8659ee
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "ThisWorkbook"
Attribute VB_Base = "0{00020819-0000-0000-C000-000000000046}"
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True


Dim bCount As Integer

Private Sub Workbook_Open()
    ShotCount
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)

    On Error GoTo TheReset
    
    If ShotCount Then
        TheLevel = Worksheets("lv1").Range("m3").Value + 1
        TheScore = 1000 - (TheLevel * 3 * bCount)
        MsgBox "The game is over! Your score is " & TheScore & " out of 1000.", , "Congratulations!"
        Exit Sub
    End If
    
     With Target
     
        If .Address = Range("m1").Address Then
        
        Application.ScreenUpdating = False
      
        Application.EnableEvents = False
        
        If .Value = "Mark Bomb Position" Then
        
        For y = 1 To 8
        Set lvSheet = Worksheets("lv" & y)
        With lvSheet
        .Unprotect
        .Range("m1").Value = "Bomb Marking OFF"
        .Protect
        End With
        Next
        
        Else
        
        For z = 1 To 8
        Set lvSheet = Worksheets("lv" & z)
        With lvSheet
        .Unprotect
        .Range("m1").Value = "Mark Bomb Position"
        .Protect
        End With
        Next
        
        End If
        
        Application.EnableEvents = True
        
        Application.ScreenUpdating = True
        
      Exit Sub
      
      End If
      
      If ShotCount Then Exit Sub

      If ActiveCell.Address <> .Address Then Exit Sub 'if it is not a single cell selection
      
      
      If Intersect(Range(strRange), Target) Is Nothing Then Exit Sub 'if the selection is not on the board
      
      If .Interior.PatternColorIndex = xlNone Then Exit Sub  'if the cell is already unhidden
      
      ActiveSheet.Unprotect
      
      If Range("m1").Value = "Mark Bomb Position" Then
      
      
        If .NumberFormat = """?"" ;""?"";""?"" ;""?""" Then
        
            .NumberFormat = """"" ;"""";"""" ;"""""
            .Font.ColorIndex = 15
            .Font.FontStyle = "Normal"
            If .Value = "M" Then
            .Font.Name = "Wingdings"
            End If
        ActiveSheet.Protect
        Exit Sub
        
        Else
        
        .NumberFormat = "General"
        .Interior.PatternColorIndex = xlNone
        .Font.ColorIndex = xlAutomatic
        
        End If
        
        If .Value = "M" Then
            ShotCount
            If bCount > 1 Then
            bString = " bombs"
            Else
            bString = " bomb"
            End If
            MsgBox "KABOOM!", , "You have hit " & bCount & bString & " so far!"
        End If
        
    Else
    
    
    If .NumberFormat = """?"" ;""?"";""?"" ;""?""" Then Exit Sub
    If .Interior.PatternColorIndex = xlNone Then Exit Sub
    .NumberFormat = """?"" ;""?"";""?"" ;""?"""
    With .Font
    .Name = "Arial"
     .FontStyle = "Bold"
    .ColorIndex = 3
    End With
    
    End If
    
    End With
    
    ActiveSheet.Protect
    
TheReset:
      ActiveSheet.Protect
      Application.EnableEvents = True
End Sub

Function ShotCount() As Boolean
    ShotCount = False
    sCount = 0
    bCount = 0
    For s = 1 To 8
        For Each sCell In Worksheets("lv" & s).Range(strRange)
            If sCell.Font.ColorIndex = xlAutomatic Then
                sCount = sCount + 1
            End If
            If sCell.Font.Name = "Wingdings" And sCell.Font.ColorIndex = xlAutomatic Then
                bCount = bCount + 1
            End If
        Next
    Next
    fCount = sCount - bCount
    If fCount = 448 Then
        ShotCount = True
    End If
End Function

Attribute VB_Name = "Sheet1"
Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True
Attribute VB_Control = "cbut1, 7, 0, MSForms, CommandButton"
Attribute VB_Control = "cbut2, 76, 1, MSForms, CommandButton"
Attribute VB_Control = "cbut3, 78, 2, MSForms, CommandButton"

Private Sub cbut1_Click()

    ResetGameBoard
    
End Sub


Private Sub cbut2_Click()

    TheInstructions

End Sub




Private Sub cbut3_Click()
    
    AboutThisGame
    
End Sub

Attribute VB_Name = "Sheet2"
Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True


Attribute VB_Name = "Sheet211"
Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True

Attribute VB_Name = "Sheet11"
Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True

Attribute VB_Name = "Sheet21"
Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True


Attribute VB_Name = "Sheet12"
Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True

Attribute VB_Name = "Sheet22"
Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True

Attribute VB_Name = "Sheet111"
Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True

Attribute VB_Name = "modMain"
Public Const strRange = "a1:h8"


Sub ResetGameBoard()

    Application.ScreenUpdating = False
    
    With Application
        calcVar = .Calculation
        bIter = .Iteration
        vMaxIter = .MaxIterations
        .Calculation = xlManual
        .Iteration = True
        .MaxIterations = 1000
    End With
    
    For c = 1 To 8
    
        Set mSht = Sheets("ms" & c)
        Set bSht = Sheets("lv" & c)
        
        With bSht
            .Unprotect
            .Range("m1").Value = "Mark Bomb Position"
            mSht.Range(strRange).Copy Destination:=.Range(strRange)
            
            Randomize
            
            n = 0
            
            Do Until n > 7
                x = Int((8 * Rnd))
                y = Int((8 * Rnd))
                With .Range(strRange).Offset(x, y).Resize(1, 1)
                    If .Formula <> "M" Then
                        .Formula = "M"
                        .Font.Name = "Wingdings"
                        n = n + 1
                    End If
                End With
            Loop
            
        End With
        
    Next
    
    Calculate
    
    For f = 1 To 8
    
    Set fSht = Sheets("lv" & f)
    
    With fSht
        .Activate
        .Range(strRange).Copy
        .Range(strRange).PasteSpecial xlValues
        .Range("j2").Select
        For Each uCell In .Range(strRange)
            With uCell
            If .Value < Worksheets("lv1").Range("m3").Value Then
                .Interior.PatternColorIndex = xlNone
                .NumberFormat = "General"
                .Font.ColorIndex = xlAutomatic
            End If
            End With
        Next
        .Protect
    End With
    
    Next
    
    Application.CutCopyMode = False
    Worksheets("lv1").Activate
    
    With Application
        .Calculation = calcVar
        .Iteration = bIter
        .MaxIterations = vMaxIter
    End With
    
    Application.ScreenUpdating = True
    
End Sub


Sub TheInstructions()
    msgStr = "Click New Game to start. Setup is determined by the selected game option." & Chr(10)
    msgStr = msgStr & "The Unhide Cells <1 option produces a board with cells displayed that have " & Chr(10)
    msgStr = msgStr & "no adjacent bombs. As an example, if cell E2 on sheet lv2 contains a zero," & Chr(10)
    msgStr = msgStr & "then the range D1:F3 on sheets lv1, lv2 and lv3 contains no bombs. The" & Chr(10)
    msgStr = msgStr & "Unhide Cells <4 option displays cells with 0-3 adjacent bombs and this is the" & Chr(10)
    msgStr = msgStr & "easiest game option. Click on a cell to unhide it." & Chr(10) & Chr(13) & Chr(13)
    msgStrA = "To mark a cell as a suspected bomb, select the cell with the label Mark Bomb" & Chr(10)
    msgStrA = msgStrA & "Position on any sheet. The text in this cell will change to Bomb Marking OFF." & Chr(10)
    msgStrA = msgStrA & "A question mark will be added to any hidden cell when clicked. Select the " & Chr(10)
    msgStrA = msgStrA & "cell with the label Bomb Marking OFF to turn off this feature." & Chr(10) & Chr(13) & Chr(13)
    msgStrB = "The game is complete when all of the cells not containing bombs have been " & Chr(10)
    msgStrB = msgStrB & "uncovered. Your score is determined by the # of bombs you hit and the option" & Chr(10)
    msgStrB = msgStrB & "that you selected. The highest possible score is 1000. Since this is a long " & Chr(10)
    msgStrB = msgStrB & "game (minimum of 448 moves), it was made to be saved at any stage." & Chr(10)
    MsgBox msgStr & msgStrA & msgStrB, , "Mine3D Game Instructions"
End Sub

Sub AboutThisGame()
    msgStr = "The inspiration for this game came from someone who thought that a " & Chr(10)
    msgStr = msgStr & "previous game that I had made was similar to a minesweeper-style" & Chr(10)
    msgStr = msgStr & "game. I overcame several technical challenges in the making of this" & Chr(10)
    msgStr = msgStr & "game, not the least of which was dealing with how Excel handles " & Chr(10)
    msgStr = msgStr & "circular references. Feel free to dig into the guts of the game to find" & Chr(10)
    msgStr = msgStr & "out how I did this. All of the code is unprotected. You can use any parts" & Chr(10)
    msgStr = msgStr & "of it in your own projects, but do not modify the code in this workbook" & Chr(10)
    msgStr = msgStr & "in any way. I hope that you enjoy this game!" & Chr(10) & Chr(13) & Chr(13)
    msgStrA = "Contact David Hager at dchager@compuserve.com for Excel " & Chr(10)
    msgStrA = msgStrA & "consulting work." & Chr(10)
    MsgBox msgStr & msgStrA, , "About Mine3D..."
End Sub



' Processing file: /tmp/analyzer_zip_wrw4rjjo/0_53a03c08a33f9908b5abc7cd32963e2fb0c35b92.rl
' ===============================================================================
' Module streams:
' _VBA_PROJECT_CUR/VBA/ThisWorkbook - 24437 bytes
' Line #0:
' Line #1:
' Line #2:
' 	Dim 
' 	VarDefn bCount (As Integer)
' Line #3:
' Line #4:
' 	FuncDefn (Private Sub Workbook_Open())
' Line #5:
' 	ArgsCall ShotCount 0x0000 
' Line #6:
' 	EndSub 
' Line #7:
' Line #8:
' 	FuncDefn (Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As ))
' Line #9:
' Line #10:
' 	OnError TheReset 
' Line #11:
' Line #12:
' 	Ld ShotCount 
' 	IfBlock 
' Line #13:
' 	LitStr 0x0002 "m3"
' 	LitStr 0x0003 "lv1"
' 	ArgsLd Worksheets 0x0001 
' 	ArgsMemLd Range 0x0001 
' 	MemLd Value 
' 	LitDI2 0x0001 
' 	Add 
' 	St TheLevel 
' Line #14:
' 	LitDI2 0x03E8 
' 	Ld TheLevel 
' 	LitDI2 0x0003 
' 	Mul 
' 	Ld bCount 
' 	Mul 
' 	Paren 
' 	Sub 
' 	St TheScore 
' Line #15:
' 	LitStr 0x0020 "The game is over! Your score is "
' 	Ld TheScore 
' 	Concat 
' 	LitStr 0x000D " out of 1000."
' 	Concat 
' 	ParamOmitted 
' 	LitStr 0x0010 "Congratulations!"
' 	ArgsCall MsgBox 0x0003 
' Line #16:
' 	ExitSub 
' Line #17:
' 	EndIfBlock 
' Line #18:
' Line #19:
' 	StartWithExpr 
' 	Ld Target 
' 	With 
' Line #20:
' Line #21:
' 	MemLdWith Address 
' 	LitStr 0x0002 "m1"
' 	ArgsLd Range 0x0001 
' 	MemLd Address 
' 	Eq 
' 	IfBlock 
' Line #22:
' Line #23:
' 	LitVarSpecial (False)
' 	Ld Application 
' 	MemSt ScreenUpdating 
' Line #24:
' Line #25:
' 	LitVarSpecial (False)
' 	Ld Application 
' 	MemSt EnableEvents 
' Line #26:
' Line #27:
' 	MemLdWith Value 
' 	LitStr 0x0012 "Mark Bomb Position"
' 	Eq 
' 	IfBlock 
' Line #28:
' Line #29:
' 	StartForVariable 
' 	Ld y 
' 	EndForVariable 
' 	LitDI2 0x0001 
' 	LitDI2 0x0008 
' 	For 
' Line #30:
' 	SetStmt 
' 	LitStr 0x0002 "lv"
' 	Ld y 
' 	Concat 
' 	ArgsLd Worksheets 0x0001 
' 	Set lvSheet 
' Line #31:
' 	StartWithExpr 
' 	Ld lvSheet 
' 	With 
' Line #32:
' 	ArgsMemCallWith Unprotect 0x0000 
' Line #33:
' 	LitStr 0x0010 "Bomb Marking OFF"
' 	LitStr 0x0002 "m1"
' 	ArgsMemLdWith Range 0x0001 
' 	MemSt Value 
' Line #34:
' 	ArgsMemCallWith Protect 0x0000 
' Line #35:
' 	EndWith 
' Line #36:
' 	StartForVariable 
' 	Next 
' Line #37:
' Line #38:
' 	ElseBlock 
' Line #39:
' Line #40:
' 	StartForVariable 
' 	Ld z 
' 	EndForVariable 
' 	LitDI2 0x0001 
' 	LitDI2 0x0008 
' 	For 
' Line #41:
' 	SetStmt 
' 	LitStr 0x0002 "lv"
' 	Ld z 
' 	Concat 
' 	ArgsLd Worksheets 0x0001 
' 	Set lvSheet 
' Line #42:
' 	StartWithExpr 
' 	Ld lvSheet 
' 	With 
' Line #43:
' 	ArgsMemCallWith Unprotect 0x0000 
' Line #44:
' 	LitStr 0x0012 "Mark Bomb Position"
' 	LitStr 0x0002 "m1"
' 	ArgsMemLdWith Range 0x0001 
' 	MemSt Value 
' Line #45:
' 	ArgsMemCallWith Protect 0x0000 
' Line #46:
' 	EndWith 
' Line #47:
' 	StartForVariable 
' 	Next 
' Line #48:
' Line #49:
' 	EndIfBlock 
' Line #50:
' Line #51:
' 	LitVarSpecial (True)
' 	Ld Application 
' 	MemSt EnableEvents 
' Line #52:
' Line #53:
' 	LitVarSpecial (True)
' 	Ld Application 
' 	MemSt ScreenUpdating 
' Line #54:
' Line #55:
' 	ExitSub 
' Line #56:
' Line #57:
' 	EndIfBlock 
' Line #58:
' Line #59:
' 	Ld ShotCount 
' 	If 
' 	BoSImplicit 
' 	ExitSub 
' 	EndIf 
' Line #60:
' Line #61:
' 	Ld ActiveCell 
' 	MemLd Address 
' 	MemLdWith Address 
' 	Ne 
' 	If 
' 	BoSImplicit 
' 	ExitSub 
' 	EndIf 
' 	QuoteRem 0x0036 0x0024 "if it is not a single cell selection"
' Line #62:
' Line #63:
' Line #64:
' 	Ld strRange 
' 	ArgsLd Range 0x0001 
' 	Ld Target 
' 	ArgsLd Intersect 0x0002 
' 	LitNothing 
' 	Is 
' 	If 
' 	BoSImplicit 
' 	ExitSub 
' 	EndIf 
' 	QuoteRem 0x0045 0x0024 "if the selection is not on the board"
' Line #65:
' Line #66:
' 	MemLdWith Interior 
' 	MemLd PatternColorIndex 
' 	Ld xlNone 
' 	Eq 
' 	If 
' 	BoSImplicit 
' 	ExitSub 
' 	EndIf 
' 	QuoteRem 0x003D 0x001F "if the cell is already unhidden"
' Line #67:
' Line #68:
' 	Ld ActiveSheet 
' 	ArgsMemCall Unprotect 0x0000 
' Line #69:
' Line #70:
' 	LitStr 0x0002 "m1"
' 	ArgsLd Range 0x0001 
' 	MemLd Value 
' 	LitStr 0x0012 "Mark Bomb Position"
' 	Eq 
' 	IfBlock 
' Line #71:
' Line #72:
' Line #73:
' 	MemLdWith NumberFormat 
' 	LitStr 0x0011 ""?" ;"?";"?" ;"?""
' 	Eq 
' 	IfBlock 
' Line #74:
' Line #75:
' 	LitStr 0x000D """ ;"";"" ;"""
' 	MemStWith NumberFormat 
' Line #76:
' 	LitDI2 0x000F 
' 	MemLdWith Font 
' 	MemSt ColorIndex 
' Line #77:
' 	LitStr 0x0006 "Normal"
' 	MemLdWith Font 
' 	MemSt FontStyle 
' Line #78:
' 	MemLdWith Value 
' 	LitStr 0x0001 "M"
' 	Eq 
' 	IfBlock 
' Line #79:
' 	LitStr 0x0009 "Wingdings"
' 	MemLdWith Font 
' 	MemSt New 
' Line #80:
' 	EndIfBlock 
' Line #81:
' 	Ld ActiveSheet 
' 	ArgsMemCall Protect 0x0000 
' Line #82:
' 	ExitSub 
' Line #83:
' Line #84:
' 	ElseBlock 
' Line #85:
' Line #86:
' 	LitStr 0x0007 "General"
' 	MemStWith NumberFormat 
' Line #87:
' 	Ld xlNone 
' 	MemLdWith Interior 
' 	MemSt PatternColorIndex 
' Line #88:
' 	Ld xlAutomatic 
' 	MemLdWith Font 
' 	MemSt ColorIndex 
' Line #89:
' Line #90:
' 	EndIfBlock 
' Line #91:
' Line #92:
' 	MemLdWith Value 
' 	LitStr 0x0001 "M"
' 	Eq 
' 	IfBlock 
' Line #93:
' 	ArgsCall ShotCount 0x0000 
' Line #94:
' 	Ld bCount 
' 	LitDI2 0x0001 
' 	Gt 
' 	IfBlock 
' Line #95:
' 	LitStr 0x0006 " bombs"
' 	St bString 
' Line #96:
' 	ElseBlock 
' Line #97:
' 	LitStr 0x0005 " bomb"
' 	St bString 
' Line #98:
' 	EndIfBlock 
' Line #99:
' 	LitStr 0x0007 "KABOOM!"
' 	ParamOmitted 
' 	LitStr 0x000D "You have hit "
' 	Ld bCount 
' 	Concat 
' 	Ld bString 
' 	Concat 
' 	LitStr 0x0008 " so far!"
' 	Concat 
' 	ArgsCall MsgBox 0x0003 
' Line #100:
' 	EndIfBlock 
' Line #101:
' Line #102:
' 	ElseBlock 
' Line #103:
' Line #104:
' Line #105:
' 	MemLdWith NumberFormat 
' 	LitStr 0x0011 ""?" ;"?";"?" ;"?""
' 	Eq 
' 	If 
' 	BoSImplicit 
' 	ExitSub 
' 	EndIf 
' Line #106:
' 	MemLdWith Interior 
' 	MemLd PatternColorIndex 
' 	Ld xlNone 
' 	Eq 
' 	If 
' 	BoSImplicit 
' 	ExitSub 
' 	EndIf 
' Line #107:
' 	LitStr 0x0011 ""?" ;"?";"?" ;"?""
' 	MemStWith NumberFormat 
' Line #108:
' 	StartWithExpr 
' 	MemLdWith Font 
' 	With 
' Line #109:
' 	LitStr 0x0005 "Arial"
' 	MemStWith New 
' Line #110:
' 	LitStr 0x0004 "Bold"
' 	MemStWith FontStyle 
' Line #111:
' 	LitDI2 0x0003 
' 	MemStWith ColorIndex 
' Line #112:
' 	EndWith 
' Line #113:
' Line #114:
' 	EndIfBlock 
' Line #115:
' Line #116:
' 	EndWith 
' Line #117:
' Line #118:
' 	Ld ActiveSheet 
' 	ArgsMemCall Protect 0x0000 
' Line #119:
' Line #120:
' 	Label TheReset 
' Line #121:
' 	Ld ActiveSheet 
' 	ArgsMemCall Protect 0x0000 
' Line #122:
' 	LitVarSpecial (True)
' 	Ld Application 
' 	MemSt EnableEvents 
' Line #123:
' 	EndSub 
' Line #124:
' Line #125:
' 	FuncDefn (Function ShotCount(id_FFFE As Boolean) As Boolean)
' Line #126:
' 	LitVarSpecial (False)
' 	St ShotCount 
' Line #127:
' 	LitDI2 0x0000 
' 	St sCount 
' Line #128:
' 	LitDI2 0x0000 
' 	St bCount 
' Line #129:
' 	StartForVariable 
' 	Ld s 
' 	EndForVariable 
' 	LitDI2 0x0001 
' 	LitDI2 0x0008 
' 	For 
' Line #130:
' 	StartForVariable 
' 	Ld sCell 
' 	EndForVariable 
' 	Ld strRange 
' 	LitStr 0x0002 "lv"
' 	Ld s 
' 	Concat 
' 	ArgsLd Worksheets 0x0001 
' 	ArgsMemLd Range 0x0001 
' 	ForEach 
' Line #131:
' 	Ld sCell 
' 	MemLd Font 
' 	MemLd ColorIndex 
' 	Ld xlAutomatic 
' 	Eq 
' 	IfBlock 
' Line #132:
' 	Ld sCount 
' 	LitDI2 0x0001 
' 	Add 
' 	St sCount 
' Line #133:
' 	EndIfBlock 
' Line #134:
' 	Ld sCell 
' 	MemLd Font 
' 	MemLd New 
' 	LitStr 0x0009 "Wingdings"
' 	Eq 
' 	Ld sCell 
' 	MemLd Font 
' 	MemLd ColorIndex 
' 	Ld xlAutomatic 
' 	Eq 
' 	And 
' 	IfBlock 
' Line #135:
' 	Ld bCount 
' 	LitDI2 0x0001 
' 	Add 
' 	St bCount 
' Line #136:
' 	EndIfBlock 
' Line #137:
' 	StartForVariable 
' 	Next 
' Line #138:
' 	StartForVariable 
' 	Next 
' Line #139:
' 	Ld sCount 
' 	Ld bCount 
' 	Sub 
' 	St fCount 
' Line #140:
' 	Ld fCount 
' 	LitDI2 0x01C0 
' 	Eq 
' 	IfBlock 
' Line #141:
' 	LitVarSpecial (True)
' 	St ShotCount 
' Line #142:
' 	EndIfBlock 
' Line #143:
' 	EndFunc 
' _VBA_PROJECT_CUR/VBA/Sheet1 - 4848 bytes
' Error: unpack_from requires a buffer of at least 2387629 bytes for unpacking 2 bytes at offset 2387627 (actual buffer size is 4848).
' _VBA_PROJECT_CUR/VBA/Sheet2 - 1934 bytes
' Line #0:
' _VBA_PROJECT_CUR/VBA/Sheet211 - 1682 bytes
' _VBA_PROJECT_CUR/VBA/Sheet11 - 1681 bytes
' _VBA_PROJECT_CUR/VBA/Sheet21 - 2199 bytes
' Line #0:
' _VBA_PROJECT_CUR/VBA/Sheet12 - 1681 bytes
' _VBA_PROJECT_CUR/VBA/Sheet22 - 1681 bytes
' _VBA_PROJECT_CUR/VBA/Sheet111 - 1682 bytes
' _VBA_PROJECT_CUR/VBA/modMain - 24306 bytes
' Line #0:
' 	Dim (Public Const) 
' 	LitStr 0x0005 "a1:h8"
' 	VarDefn strRange
' Line #1:
' Line #2:
' Line #3:
' 	FuncDefn (Sub ResetGameBoard())
' Line #4:
' Line #5:
' 	LitVarSpecial (False)
' 	Ld Application 
' 	MemSt ScreenUpdating 
' Line #6:
' Line #7:
' 	StartWithExpr 
' 	Ld Application 
' 	With 
' Line #8:
' 	MemLdWith Calculation 
' 	St calcVar 
' Line #9:
' 	MemLdWith Iteration 
' 	St bIter 
' Line #10:
' 	MemLdWith MaxIterations 
' 	St vMaxIter 
' Line #11:
' 	Ld xlManual 
' 	MemStWith Calculation 
' Line #12:
' 	LitVarSpecial (True)
' 	MemStWith Iteration 
' Line #13:
' 	LitDI2 0x03E8 
' 	MemStWith MaxIterations 
' Line #14:
' 	EndWith 
' Line #15:
' Line #16:
' 	StartForVariable 
' 	Ld c 
' 	EndForVariable 
' 	LitDI2 0x0001 
' 	LitDI2 0x0008 
' 	For 
' Line #17:
' Line #18:
' 	SetStmt 
' 	LitStr 0x0002 "ms"
' 	Ld c 
' 	Concat 
' 	ArgsLd Sheets 0x0001 
' 	Set mSht 
' Line #19:
' 	SetStmt 
' 	LitStr 0x0002 "lv"
' 	Ld c 
' 	Concat 
' 	ArgsLd Sheets 0x0001 
' 	Set bSht 
' Line #20:
' Line #21:
' 	StartWithExpr 
' 	Ld bSht 
' 	With 
' Line #22:
' 	ArgsMemCallWith Unprotect 0x0000 
' Line #23:
' 	LitStr 0x0012 "Mark Bomb Position"
' 	LitStr 0x0002 "m1"
' 	ArgsMemLdWith Range 0x0001 
' 	MemSt Value 
' Line #24:
' 	Ld strRange 
' 	ArgsMemLdWith Range 0x0001 
' 	ParamNamed Destination 
' 	Ld strRange 
' 	Ld mSht 
' 	ArgsMemLd Range 0x0001 
' 	ArgsMemCall Copy 0x0001 
' Line #25:
' Line #26:
' 	ArgsCall Read 0x0000 
' Line #27:
' Line #28:
' 	LitDI2 0x0000 
' 	St n 
' Line #29:
' Line #30:
' 	Ld n 
' 	LitDI2 0x0007 
' 	Gt 
' 	DoUnitil 
' Line #31:
' 	LitDI2 0x0008 
' 	Ld Rnd 
' 	Mul 
' 	Paren 
' 	FnInt 
' 	St x 
' Line #32:
' 	LitDI2 0x0008 
' 	Ld Rnd 
' 	Mul 
' 	Paren 
' 	FnInt 
' 	St y 
' Line #33:
' 	StartWithExpr 
' 	LitDI2 0x0001 
' 	LitDI2 0x0001 
' 	Ld x 
' 	Ld y 
' 	Ld strRange 
' 	ArgsMemLdWith Range 0x0001 
' 	ArgsMemLd Offset 0x0002 
' 	ArgsMemLd Resize 0x0002 
' 	With 
' Line #34:
' 	MemLdWith Formula 
' 	LitStr 0x0001 "M"
' 	Ne 
' 	IfBlock 
' Line #35:
' 	LitStr 0x0001 "M"
' 	MemStWith Formula 
' Line #36:
' 	LitStr 0x0009 "Wingdings"
' 	MemLdWith Font 
' 	MemSt New 
' Line #37:
' 	Ld n 
' 	LitDI2 0x0001 
' 	Add 
' 	St n 
' Line #38:
' 	EndIfBlock 
' Line #39:
' 	EndWith 
' Line #40:
' 	Loop 
' Line #41:
' Line #42:
' 	EndWith 
' Line #43:
' Line #44:
' 	StartForVariable 
' 	Next 
' Line #45:
' Line #46:
' 	ArgsCall Calculate 0x0000 
' Line #47:
' Line #48:
' 	StartForVariable 
' 	Ld False 
' 	EndForVariable 
…