Advertisement
Guest User

quickbms-64.bms

a guest
Jul 21st, 2019
1,616
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.46 KB | None | 0 0
  1. # The Witcher 3 (script 0.1.3)
  2. # script for QuickBMS http://quickbms.aluigi.org
  3.  
  4. get EXT extension
  5. if EXT == "bundle"
  6.  
  7. idstring "POTATO70"
  8. get BUNDLE_SIZE long
  9. get DUMMY_SIZE long
  10. get DATA_OFF long
  11. math INFO_OFF = 0x20
  12. math DATA_OFF + INFO_OFF
  13. goto INFO_OFF
  14. for INFO_OFF = INFO_OFF < DATA_OFF
  15. getdstring NAME 0x100
  16. getdstring HASH 16
  17. get ZERO long
  18. get SIZE long
  19. get ZSIZE long
  20. get OFFSET long
  21. get TSTAMP longlong
  22. getdstring ZERO 16
  23. get DUMMY long
  24. get ZIP long
  25. savepos INFO_OFF
  26.  
  27. if ZIP == 0
  28. log NAME OFFSET SIZE
  29. elif ZIP == 1
  30. comtype zlib
  31. clog NAME OFFSET ZSIZE SIZE
  32. elif ZIP == 2
  33. comtype snappy
  34. clog NAME OFFSET ZSIZE SIZE
  35. elif ZIP == 3
  36. comtype doboz
  37. clog NAME OFFSET ZSIZE SIZE
  38. else # 4 and 5
  39. comtype lz4
  40. clog NAME OFFSET ZSIZE SIZE
  41. endif
  42. next
  43.  
  44. elif EXT == "cache"
  45.  
  46. getdstring SIGN 4
  47. goto 0
  48. if SIGN == "CS3W"
  49.  
  50. idstring "CS3W"
  51. get BLENGTH long
  52. get DUMMY long
  53. get DUMMY long
  54.  
  55. if BLENGTH == 1
  56. get INFO_OFF long
  57. get FILES long
  58. get NAMES_OFF long
  59. elif BLENGTH == 2
  60. get INFO_OFF longlong
  61. get FILES longlong
  62. get NAMES_OFF longlong
  63. endif
  64.  
  65. get NAMES_SIZE long
  66.  
  67. log MEMORY_FILE NAMES_OFF NAMES_SIZE
  68.  
  69. goto INFO_OFF
  70. for i = 0 < FILES
  71. if BLENGTH == 1
  72. get NAME_OFF long
  73. get OFFSET long
  74. get SIZE long
  75. elif BLENGTH == 2
  76. get NAME_OFF longlong
  77. get OFFSET longlong
  78. get SIZE longlong
  79. endif
  80.  
  81. goto NAME_OFF MEMORY_FILE
  82. get NAME string MEMORY_FILE
  83. log NAME OFFSET SIZE
  84. next i
  85.  
  86. else
  87.  
  88. for
  89. get ZSIZE long
  90. if ZSIZE == 0
  91. padding 0x1000
  92. get ZSIZE long
  93. endif
  94. get SIZE long
  95. get TYPE byte
  96. savepos OFFSET
  97. clog "" OFFSET ZSIZE SIZE
  98. math OFFSET + ZSIZE
  99. goto OFFSET
  100. next
  101.  
  102. endif
  103.  
  104. else
  105.  
  106. print "Error: unsupported extension %EXT%"
  107. cleanexit
  108.  
  109. endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement