|i RddlmZddlmZddlmZddlZddlZddlZddlZ ddlZdZ n #e $rdZ YnwxYwddl m Z ddl mZmZdd lmZejdd kZd aerd ZneZd ZdZdZdZdZdZdZdZdAdZdZ dZ!dZ"dZ#dZ$ej%fdZ&ej%fdZ'dZ(iddgdd d!d"gdd d#d$gdd d d%gdd d&d'gdd d(d)gdd d*d+gdd d,d-gdd d.d/gdd d0d1gdd d2d3gdd d4d5gdd d6d7gdd d8d9gdd d:d;gdd dgdd id?d@gdd dAdBgdd dCdDgdd dEdFgdd dGdHgdd dIdJgdd dKdLgdd dMdNgdd dOdPgdd dQdRgdd dSdTgdd dUdVgdd dWdXgdd dYdZgdd d[d\d]gdd d^d_d]gdd d`dad]gdd idbdcd]gdd dddedfgdd dgdhd]dfgdd didjd]dfgdd dkdld]dfgdd dmdnd]gdd dodpd]gdd dqdrd]gdd dsdtdfgdd dudvd]dfgdd dwdxd]dfgdd dydzd]dfgdd d{d|d]gdd d}d~d]gdd ddd]gdd dddfgdd ddd]dfgdd iddd]dfgdd ddd]dfgdd ddd]gdd ddd]gdd ddd]dfgdd ddd]dfgdd ddd]gdd ddd]gdd ddd]dfgdd ddd]dfgdd ddd]gdd ddd]gdd ddd]dfgdd ddd]dfgdd ddd]dfgdd ddd]dfgdd ddd]dfgdd iddd]dfgdd ddgdd dddfgdd ddgdd ddgdd ddd]gdd ddd]gdd ddgdd ddgdd ddgdd ddgdd ddgdd ddgdd ddgdd ddgdd ddgdd ddgdd idddfgdd dddfgdd ddgdd ddgdd ddgdd dddgdd ddgdd dddfdfgdd ddgdd ddgdd ddgdd ddgdd ddgdd ddgdd ddgdd ddgdd ddgdd idddgdd ddgdd ddgdd ddgdd ddgdd ddgdd ddgdd ddgdd ddgdd ddgdd ddgdd ddgdd dddfgdd ddgdd d d d gdd d d d]dfgdd ddd]dfgdd iddd]dfgdd ddgdd ddgdd ddgdd ddgdd ddgdd ddgdd ddgdd d d!gdd d"d#gdd d$d%gdd d&d'gdd d(d)gdd d*d+gdd d,d-gdd d.d/gdd d0d1gdd id2d3gdd d4d5gdd d6d7dfgdd d8d9gdd d:d;gdd d<d=gdd d>d?gdd d@dAgdd dBdCgdd dDdEdfgdd dFdGgdd dHdIgdd dJdKdgdd dLdMgdd dNdOd gdd dPdQd gdd dRdSgdd idTdUd]gdd dVdWd]gdd dXdYgdd dZd[gdd d\d]dgdd d^d_dgdd d`dagdbdd dcddgdd dedfgdd dgdhgdd didjd]gdd dkdlgdd dmdndfgdd dodpgdd dqdrgdd dsdtd]gdd dudvgdbdd idwdxgdbdd dydzgdd d{d|dfgdd d}d~dfdfgdd ddgdbdd dddfgdd dddfdfgdd ddgdbdd ddgdd dddfgdd dddfdfgdd ddgdbdd dddfdfgdd ddgdbdd ddgdd ddgdd ddgdd iddgdd ddgdd ddgdd ddgdd ddgdd ddgdd ddgdd ddgddd ddgddd ddgddd ddgddd ddgdd ddgdd ddgdd dddgdd ddgdd ddgdd iddd]gdd ddgdd ddgdd dddfgdd dĐdgdd dƐdgdd dȐdgdd dʐdgdd d̐dd]gdd dΐdgdd dАdgdd dҐdgdd dԐdgdd d֐dgdd dؐdgdd dڐdgdd dܐdgdd idސdgdd ddgdd ddgdd ddgdd dddfgdd ddgdd dddfgdd ddgddd ddgddd ddgdd ddgdd ddd]gdd ddgdd ddgdd dddfgdd ddgdd ddgdd idddgdd ddgdd ddgdd dddfdfgdd dd gdd d d d gdd d dgdd dddgdd ddgdd ddgdd ddgdd ddgdd ddgdd ddd]gdd ddgdd d d!gdd d"d#gdd d$gdd d%gdd d&gdd d'gdd d(gdd d)gdd d*d]gdd d+gdd d,gdd d- Z)d.Z*d/Z+d0Z,d1Z-d2Z.d3Z/d4Z0d5Z1d6Z2d7Z3d8Z4d9Z5d:Z6ej%fd;Z7ej%fd<Z8ej%fd=Z9ej%fd>Z:d?Z;e<d@kr e;dSdS(B)print_function)absolute_import)divisionNTF unpack_from) VBA_Parserdecompress_stream) codepageslatin1c`|tddS)Nreplaceerrorszutf-8)decodecodecencodexs ?C:\PYTHON\_runtimes\venv\Lib\site-packages\pcodedmp/pcodedmp.pyrrs&xxix0077@@@c|SNrs rordrsrc:|tdS)Nrr)rrrs rrrsxxix000rzA VBA p-code disassemblerGPLz$https://github.com/bontchev/pcodedmpz1.2.6zVesselin Bontchevzvbontchev@yahoo.comc d}d}d}tdt||D]B}||||z}|d||||dzdz ||z }C|S)Nc@dd|DS)N c3ZK|]&}dt|V'dSz{:02X}Nformatr.0is r z,hexdump....(s4"I"Iq8??3q66#:#:"I"I"I"I"I"Irjoindatas rzhexdump..(s!#(("I"ID"I"I"IIIrc@dd|DS)Nc3K|]?}dt|cxkrdkrnntt|ndV@dS).N)rchrr&s rr)z,hexdump....)sZ!\!\RS"s1vv2C2C2C2C2C2C2C2C2C#c!ff+++#!\!\!\!\!\!\rr*r,s rr.zhexdump..)s""''!\!\W[!\!\!\\\rr0rz{:08X} {:{}} {} r )xrangelenr%)bufferlengththeHextheStrresultoffsetr-s rhexdumpr?'s I IF \ \F FCKK00fffVf_,-*11&&&,,QR UVX^X^_cXdXdeee Mrc6t|dz||dS)NHrrr9r>endians rgetWordrD0 v|VV 4 4Q 77rc6t|dz||dS)NLrrrBs rgetDWordrH3rErc|rt|||}|dz }|o|dk}nt|||}|dz }|o|dk}|s|||zz }|S)NrHrD)r9r>rC isLengthDW elementSizecheckForMinusOner:skips r skipStructurerS6sz7&&&11! :Vz%900! 6Vv%5 '&;&& Mrch|rt|||}|dz }nt|||}|dz }||fS)NrJrLrN)r9r>rCisDWordvalues rgetVarrWCsJ00! //!  5=rc|dkr-t||t||dzfSt||dzt||fS)N>r6)rrBs rgetTypeAndLengthrZLs[ }}6&>""Cvz(:$;$;;;6&1*%&&F6N(;(;;;rc8iddddddddd d d d d ddddddddddddddddddd d!d"id#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDidEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidj}|js"tdk|ltdm|ldn}|j|}t |}t |}g} |jsZtdo||l|jrtt||ltdp|ldq} | |kr t|| dr} t|| dzdr} | dkrd } n| dkrd} | |vrds} n|| } |js&tdt| | du|v| d z } | r|js:tdw|ltt|| | | z|l| dkr&t|| dr}tj |a n|| d\krY|| | | zdxdyz}tr|d{dyz}n|}| |n| dkrt%|| dr}|dk}| | z } n|jstdu|ln#Yn xYw| |k|| |fS)|Nr6 PROJ_SYSKINDrL PROJ_LCIDr PROJ_CODEPAGErJ PROJ_NAMEPROJ_DOCSTRING PROJ_HELPFILEPROJ_HELPCONTEXT PROJ_LIBFLAGS PROJ_VERSION PROJ_GUID PROJ_PROPERTIES PROJ_CONSTANTS PROJ_LIBID_REGISTEREDPROJ_LIBID_PROJPROJ_MODULECOUNTrPROJ_EOFPROJ_TYPELIB_VERSIONPROJ_COMPAT_EXE PROJ_COOKIEPROJ_LCIDINVOKEPROJ_COMMAND_LINEPROJ_REFNAME_PROJMOD_NAME MOD_STREAM MOD_DOCSTRING MOD_HELPFILEMOD_HELPCONTEXT MOD_PROPERTIES!MOD_FBASMOD_StdMods"MOD_FBASMOD_Classes#MOD_FBASMOD_Creatable$MOD_FBASMOD_NoDisplay%MOD_FBASMOD_NoEdit&MOD_FBASMOD_RefLibs'MOD_FBASMOD_NonBasic(MOD_FBASMOD_Private)MOD_FBASMOD_Internal*MOD_FBASMOD_AllModTypes+MOD_END,MOD_COOKIETYPE-MOD_BASECLASSNULL. MOD_BASECLASS/PROJ_LIBID_TWIDDLED0PROJ_LIBID_EXTENDED1MOD_TEXTOFFSET2MOD_UNICODESTREAM<PROJ_UNICODE_CONSTANTS=PROJ_UNICODE_HELPFILE>PROJ_UNICODE_REFNAME_PROJ?PROJ_UNICODE_COMMAND_LINE@PROJ_UNICODE_DOCSTRINGMOD_UNICODE_NAMEMOD_UNICODE_DOCSTRINGMOD_UNICODE_HELPFILE)GHIO-------------------------------------------------------------------------------filezdir stream after decompression:F {:d} byteszdir stream parsed:r<UNKNOWNz {:08X}: {}r0endr: utf_16_lerrutf8) disasmOnlyprintole_file openstreamreadr r8r%verboser?rDr codepage2codecrrPYTHON2rappendrH) vbaParserdirPathargs output_filetagsis64bitdirDataCompresseddirData streamSize codeModulesr>tagwLengthtagNamecodepagestream_name_unicode stream_namesysKinds r processDirrRs< n< k< o< k <   <  o < < o< n< k< < < < < <  j!< "#< < $%< &m'< ()< *+< ,-< 0j1< 2l3< 6o7< 8n9< :;< >?< @A< BC< DE< FG< HI< JK< < < LM< NO< PQ< RS< TiU< VW< XY< Zo[< \]< ^_< `a< bc< fg< hi< j!k< l!m< no< < rw< < < D| ?C h[)))) /kBBBBG!*55g>>CCEE 122GWJK ?6 l!!*--K@@@@ < 6 ''"" 5 5 5 5 "5555 F :  ) '63//Cgvz377Gaxx$;;#s)? Wm**67;;+VVVV aKF ,W#K0000''&'1A*A"BCC+VVVVo--&w<>EE 333*1&'9I2I*J*Q*QR]fo*Q*p*p':&9&@&@PY&@&Z&Z ': &&{3333..&w<BBGGIIN  (%%%% {3333 ,  c.11 2 2EEEE |9 gn%%K8888 rc F g} t|dd}|dkr|St|dd}|dkr|dvp|dk}|dkr|dvp|dk}|dkr|dkpd |cxkod knc}t|d d}|d krd }nd}d} t|| |d\} } | dz } tjd| D]} t|| |d\} } | dkr| dz } nf|r| d ks|s | dkr| | z } nP|r || dz} n || dz} | | z } t t | dvrt || |ddd} | dz } t|| |d\} }|r8t || |ddd} t|| |d\} }|r| dz } | |dzz } t || |ddd} t || |ddd} | dz } t || |ddd} t || |ddd} t || |ddd} | dz } t|| |d\} }tjd|D]} t|| |d\} }|r| |z } |r|rt|| |d\} }| |z } t || |ddd} t || |ddd} t|| |d\} } |d krt || |ddd} t || |ddd} | dz } |dkr| dz } t || |ddd} | dz } | dz } t || |ddd} | dz } t|| |d\} }t|| |d\} }t|| |d\} }| dz } ||z|z }||z }tjd|D]0} | dz } t|| |\}}| dz } |dkr| dz } | |z } 1tjd|D]} d}d}t|| |\}}| dz } |dkr&|dkr | dz } t|| |\}}| dz } d}|dzr| dz } |r4t|| | |z}| || |z } |s| dz } nE#t$r8}td |tjYd}~nd}~wwxYw|S) NrriarL[)`bcNY_kr`rrrYrFrbr rJ)CDr6rjTdQrfrlr3r0 Error: {}.r)rDrW itertoolsrepeatr5rrSrZrr Exceptionrr%sysstderr)r identifiersmagicversion unicodeRef unicodeNamenonUnicodeNamewordrCr>numRefs_ refLengthcr numProjectsw0numIDsw1 numJunkIDsidTypeidLengthisKwdidentes rgetTheIdentifiersrsNKo73// F?? .!S11$O>FFF GG! !$00 ' 'A &~vvu M M FIA~~!  `Y]]j]y[\}}i'FF!7*6A:6*6A:6i'F3q66{{j00!.~vvuVWY^!_!_ bLF!.&&%HHLFD '&~vvuaQVWW"("O"O aKF'B,&~vvuaOO~vvuaOO! ~vvuaNN~vvuaNN~vvuaNN$$^VVUKK !$ 44  A$^VVUKKOFG "'! "T&,^VVU&S&SOFG'!">665!USSF">665!TRRF~vvuEEIFA$&~vvuaQUVV">665!TRRF aKF$! ">665!USSF bLFF! ~vvtQNN! NFFEBB FFNFFEBB ! b[2% b!$ 33  A aKF/OO FH aKF}}!  h FF!$//  AEE/OO FH aKFA FaKK! #3NFF#S#S ! } !  #~fVh5F.FGHH""5)))(" ! # $ 777 l!!!$$3:6666666667 sQP>Q R&.RRImp)mnemrvargr6EqvrLXorOrrJAndr`EqrbNerdLerfGerhLtrjGtrlAddrnSubrpModrrIDivrtMulDivrwConcatryLiker{Pwrr}IsrNotrUMiFnAbsFnFixrFnIntrFnSgnFnLenrFnLenBrParenrSharpr2LdLHSnamerLdrMemLdrDictLdrIndexLd0xrArgsLdr ArgsMemLdr ArgsDictLdrStrMemStrDictStrIndexStrArgsStr ArgsMemStr ArgsDictStrSetrMemsetrDictsetrIndexsetrArgsSet3 ArgsMemSet4 ArgsDictSet5 MemLdWith6 DictLdWith7 ArgsMemLdWith8ArgsDictLdWith9 MemStWith: DictStWith; ArgsMemStWithrArgsDictStWithr MemSetWithr DictSetWithrArgsMemSetWithrArgsDictSetWithAArgsCallB ArgsMemCallCArgsMemCallWithD ArgsArrayEAssertFBoSr BoSImplicitrBoLr LdAddressOfJ MemAddressOfKCaseLCaseToMCaseGtrCaseLtOCaseGePCaseLerCaseNeRCaseEqSCaseElseTCaseDoneUCircleVCloseWCloseAllXCoercer CoerceVarZContextcontext_rDebug\DefType]Dim^ DimImplicitrDorDoEventsaDoUnitilrDoWhilerElser ElseBlocke ElseIfBlockfElseIfTypeBlockimp_gEndh EndContextiEndFuncjEndIfr EndIfBlockl EndImmediatemEndPropn EndSelectoEndSubpEndTypeqEndWithrErasesErrort EventDeclfunc_u RaiseEventvArgsMemRaiseEventwArgsMemRaiseEventWithxExitDoyExitForzExitFunc{ExitProp|ExitSub}FnCurDir~FnDirr3Empty0rEmpty1FnErrorFnFormat FnFreeFileFnInStrFnInStr3FnInStr4FnInStrB FnInStrB3 FnInStrB4FnLBoundFnMidFnMidB FnStrComp FnStrComp3 FnStringVar FnStringStrFnUBoundForForEach ForEachAsForStepFuncDefn FuncDefnSaveGetRecGoSubGoToIfIfBlockTypeOf IfTypeBlock Implements)rArArArAInput InputDone InputItemLabelLetLineLineCont LineInputLineNumLitCyLitDate LitDefaultLitDI2LitDI4LitDI8LitHI2LitHI4LitHI8 LitNothingLitOI2LitOI4LitOI8LitR4LitR8 LitSmallI2LitStr LitVarSpecialLockLoop LoopUntil LoopWhileLSetMe MeImplicitMemRedim)r<rAtype_ MemRedimWith MemRedimAsMemRedimAsWithMidMidBNameNewNextNextVarOnErrorOnGosubOnGotoOpenOption OptionBase ParamByVal ParamOmitted ParamNamed PrintChan PrintCommaPrintEoSPrintItemComma PrintItemNL PrintItemSemiPrintNLPrintObj PrintSemiPrintSpcPrintTab PrintTabCommaPSetPutRecQuoteRemRedimRedimAsReparseRemResumeReturnRSetScaleSeek SelectCaseSelectIs SelectTypeSetStmtStackStopTyperec_UnlockVarDefnvar_WendWhileWith WriteChan ConstFuncExprLbConstLbIfLbElseLbElseIfLbEndIfLbMarkEndForVariableStartForVariableNewRedim StartWithExprSetOrStEndEnumIllegal) iiiiiiic"|dkrd|cxkrdkrnn|Sd|cxkrdkrnn|dzSd|cxkrdkrnn|d zSd |cxkrd krnn|d zSd |cxkrdkrnn|dzSd|cxkrdkrnn|dzSd|cxkrdkrnn|dzSd|cxkrdkrnn|dzS|dzS|dkrd|cxkrdkrnn|Sd|cxkrdkrnn|dzSd|cxkrd krnn|dzSd|cxkrd krnn|dzSd |cxkrdkrnn|d zSd|cxkrdkrnn|dzSd!|cxkrdkrnn|dzS|dzS|sAd|cxkrd"krnn|Sd#|cxkrd$krnn|dzSd%|cxkrd&krnn|dzS|dzS|S)'Nr rrlrnrrrLrrrJrrrfrr"rhr$r&rjr(r,rlr.rrnr2r`rpr6rrrdr r*r4r6r8r:r>r)opcodevbaVerrs rtranslateOpcoder[sJ 1F!!!!r!!!!!MF!!!!r!!!!!Q; F!!!!c!!!!!Q;  F ! ! ! !c ! ! ! ! !Q;  F ! ! ! !c ! ! ! ! !Q;  F ! ! ! !c ! ! ! ! !B;  F ! ! ! !c ! ! ! ! !B;  F ! ! ! !c ! ! ! ! !B; B;  1F!!!!r!!!!!MF!!!!r!!!!!Q; F!!!!c!!!!!Q;  F ! ! ! !c ! ! ! ! !Q;  F ! ! ! !c ! ! ! ! !Q;  F ! ! ! !c ! ! ! ! !Q;  F ! ! ! !c ! ! ! ! !B; B;  F!!!!c!!!!!M F ! ! ! !c ! ! ! ! !Q;  F ! ! ! !c ! ! ! ! !Q; Q;  rcgd}|}|dz} |dkr*|dz}|dkr|dz}|r|dz}|dkr|dz}||S|dkr |dkr|dz}||S#d |cYSxYw) N)z0AbsAccess AddressOfAliasrAnyAppendArrayAsrqBBaseBFBinaryBooleanByRefByteByValCallrzCBoolCByteCCurCDateCDecCDblCDeclChDirCIntrCLngrCompareConstCSngCStrCurDirzCurDir$CVarCVDateCVErrCurrencyDatabaseDatezDate$rDecimalDeclareDefBoolDefByteDefCurDefDateDefDecDefDblDefIntDefLngDefObjDefSngDefStrDefVarrDirzDir$rrDoubleEachrElseIfEmptyrrEnumrrrzError$Event WithEventsExplicitFFalseFixrFormatzFormat$FreeFileFriendFunctionGetGlobalGor GotorrrInrzInput$InputBr5InStrzInputB$IntInStrBr-IntegerLeftLBoundLenBLenLibr#r%r+LoadLocalrQLongrSrYr[rhzMid$rjzMidB$r&Modulerlrnrpr.NothingNullObjectOnrzr|OptionalrOutput ParamArrayPreservePrintPrivatePropertyrPublicPutrRandom RandomizeReadReDimrrrRGBrrrSelectrLSgnSharedSingleSpcStaticSteprStrCompStringzString$r%TabTextThenToTruerrUBoundUnloadrUnknownUntilVariantWEndrWidthrWriterz#Constz#Elsez#ElseIfz#Endz#If AttributeVB_Base VB_Control VB_CreatableVB_CustomizableVB_Description VB_Exposed VB_Ext_Key VB_HelpIDVB_Invoke_FuncVB_Invoke_PropertyVB_Invoke_PropertyPutVB_Invoke_PropertyPutRefVB_MemberFlagsVB_NameVB_PredecraredID VB_ProcDataVB_TemplateDerivedVB_VarDescription VB_VarHelpIDVB_VarMemberFlagsVB_VarProcData VB_UserMemIDVB_VarUserMemIDVB_GlobalNameSpace,r4"r !#&'()*+-z /r;rz<=z<>=z=rYz>=?\^z:=r6rrdrJr rVraz id_{:04X})r%)idCoderrr internalNamesorigCodes rgetIDrs!!!MFH qLF, U?? eOF{{!  aKFD==aKFv& &{{T>>aKF ( (,!!(+++++s/AAA/cLt|||}t||||}|Sr)rDr)r9rr>rCrrobjectID objectNames rgetNamers,vvv..Hxfg>>J rcgd}t||||}|t|kr ||}nd}|dkrd|zdz}|dkrd}|dkrd}n"|d krd }n|d krd}|dkrd }n|d krd}||zdzS)N)r0r%rrr@r$rrrrrr0r[]rtr6z (Resume Next)rLz(GoTo 0)rz(Next)rr!)rr8) rrmnemonicopTyperrvarTypesvarNamestrTypes r disasmNamersTTTHD+vw77G H 6" R<<Gmc)G Y   q[[%GG q[[ G X   q[[GG q[[G W s ""rc |dkrK|dkr.t||dzkrt|||dz|||}nd||}ngd} gd} |dz} |d zdz } |d zd z } d }| d zr|dz }n,| dzr|dz }n!| dzr|dz }n| dzr|dz }n | dkr|dz }| r$| t| kr|d| | d z zz }| r/| dzr|dz }n$| t| kr|d| | d z zz }|dz }|S)Nrzrrfrbz {}{:04X} )rRrj Read Write)rrjrRriirnz(For r6rrLrHrJrPrrrz Access z Sharedz Lock r)r8rr%) objectTablerargrrrCrrimpName accessModelockModemodeaccesslocks r disasmImprs6 &==c+..$(::k;q&&RYZZGG!((d33GG444 444f}-Q&-B& D[ w GG D[ x GG D[ x GG D[ x GG T\\ x G  ;vZ00 zJvz$:: :G  9d{ 99$Z((8htax&8883 Nrcxt|||dz|||}t||dz|}|dzdkrd|z}|S)NrLryr6rz (Private) )rrD) indirectTablerdwordrCrrroptionss r disasmRecrsR UQYPWXXJmURZ88G! !J. rcrgd}|dz}|dz}|t|kr ||}nd}|dzr|dz }|S)Nr0rDr9rArXr!rrr]rErrrgr0rr0r0rrir0rPtr)r8)typeIDdimTypes typeFlagstypeNames r getTypeNamer sfiiiH I eOF H F#4E Orcgd}t||dz}|t|kr ||}nd|}|S)Nrrbz type_{:08X})rr8r%)rrrrrs r disasmTypersaiiiH uqy) * *F H F# ''.. Orcf|rdSt|||}t|||}|dzrt||} ntt||dz|} | dkrd} nW| dz dz} | dzt|krdSt|| |}t|| dz|} t | |||} | S)Nr0rLrrjrJrb)rHrDrr8r) rrrr>rCrrtypeDescflagsrroffshlNames r disasmObjectrsr vv66H M8V 4 4E t|CmX66}hlF;; 199HHAI#Dax#k****r[$77E[$(F;;FV[&'BBH Orc t||}t||dz}|dzdk} |dzdk} t|||dz|||} | s| rd} | r | dz } | r| dz } | r|rd} nd } t||| zdz|}|d kr(t||| z}t|}nt ||||| z|||}t |dkr| d |zz } t | dkr | d | zd zz } | S)Nr6rrrLr0rnr!rrnrMzAs z (r)rrrDrrr8)rrrrrCrrbFlag1bFlag2hasAshasNewrvarTyperrrrs r disasmVarr@sh u% & &F uqy) * *Ftm !Etm !Fm[%!)VVWUUG ,,   u G 3  , =%$,*:FCCDv~~]54<899&v..' {KQVY]Q]_egmovww8}}q  58++ w<a>aM; 66SZ[[w]INFCC   " "ai"nsS`OaOa>a>a dii(((3..H F j Z / /z)F"6**HH}k7Q;PVX_``HH OH Orc ||||z}d|} |dvr| dt|zdzz } n|dvr|} g} tjdt |dz D]<} t || |d\} } | t| |||=| dd| Dd zz } n$d d |D}| |z } | S) Nz 0x{:04X} )rMrrrr)rvrxrLFrc3K|]}|VdSrr)r'vs rr)zdisasmVarArg..s"00a000000rr!c3ZK|]&}dt|V'dSr#r$)r'r s rr)zdisasmVarArg..s4FFq8??3q6622FFFFFFr) r%rrrintrWrrr+) moduleDatarr>rrrCrr substring varArgNameoffset1varsr rr?s r disasmVarArgrs)6&7"223I##G,,J;;;cF9---33 * * *!$GaK(8(899 C CA":wFFMGT KKdKAA B B B Bdii00400000366 ((FFIFFFFFg rc  gd} gd}gd}| r+|dkr%td|d| td| | |dkrdS| r)tt||||z| |}||z}||kr@t|||d \}}|d zd z }|d z}t |||}|t vr'td||| dSt |}|d}tdd| | r%td|d| td|d| |dvr|t | kr-td| |d| n|dkrtdd| ntd|d| n{|dvrg}|dzr|dnP|dzr|dn5|dzr|dn|dzr|d |d!zr|d"kr|d#t |r8tdd$|d| n|d%kr,td&||d| np|d'vr|dkrtd(d| nS|dz}nM|d)kr,td*||d| n|d+vr|dzrtd,d| |d-D]}|d.krOt|||d \}}t||||||}td/|d| X|d0vrQt|||d \}}t||||||||}td/|d| |d1vr-t|||d2\}}|d3krQt ||d4zkr;t||||||}td/|d| n|d5krMt ||d6zkr7t||}td7|d| n,|d8krt ||dzkr|dzrtd9d| t|||||||}td/|d| |dzr;t|||}|d:z }td;|d| n~|d||d| |r@|d?kr:t|||d2\}}td@|d| |dAr_t|||d \}}!t!||||!||||}"td/|"d| ||!z }|!d!zr|d!z }td| ||k>dSdS)BN) Varrr7LngSngDblCurrStrObjErrBoolr)r*rbrDr$)zBase 0zBase 1z Compare TextzCompare Binaryr(zPrivate Modulerz{:04X}: r0rz Line #{:d}:rFirjiz0Unrecognized opcode 0x{:04X} at offset 0x{:08X}.r z{:04X} z{} )rrrz({}) rwz(Byte) z({:d}) )rrrrJr1rfrNrrLrrZr6rrr!rOz({}))rirkrmz(Call) r|z ({}))rrz (Preserve) rr<z{})rAr)rrrr`rTrr}r`rdz(As {})rz (WithEvents) rLz 0x{:04X}rrz {}{:08X} rz{:08X} r)rr%r?rWropcodesr8rr+rrrrrrDrr)#r lineStart lineLengthrCrrrrrrrliner varTypesLongspecialsrr> endOfLinerrtranslatedOpcode instructionrdimTyperrtheNametheImprtheRectheTypetheVartheFuncr theVarArgs# rdumpLiners nnnL111HbbbGFJNN j **EEEE -  t $ $;7777QW gj9z+A!ABCC+VVVV FJ&I 9   FFEBB7"r)&*667CC7** DKKFTZ[[bm n n n n F./ v& d----  F )""6** E E E E ell8$$";???? 9 9 9L))))gnn\&%9::UUUUU2iRk:::::i&&v..B[IIIII 7 7 7G$ )x(((($ )x(((($ )y))))$ )x(((  (H$6$6w'''7|| SgnnSXXg%6%677RkRRRR  ( ( &-- 011r L L L L L G G G{{iRk:::::"   ! ! '..11r L L L L L - - -{ ?m+>>>>v&! M! MCf}}%j&&%HH $T;&&RYZZdkk'**EEEEE&&%j&&%HH "; S$RXZ`bijjdkk&))r DDDDDFFF &z664 H H Vmm#m*<*< *J*J&}k5&RXZabbF$++f--2KHHHHHWnn3}+=+=+J+J(>>G)**733+NNNNNVmm#m*<*< *J*J}Io2KHHHH&}k;PUW]_egnooF$++f--2KHHHH}R&z66BB! k0066B[QQQQWnn3}+=+=+K+K(8H+W\^dflntv}~~G$++g..B[IIIII+,,S%88b{SSSSMz 1 1$*:vvt$L$LMFE)**511r LLLL v  $ZGGOFG$ZfgxY_agipqqI $++i((b{ C C C C g F{ !  b{####q 9      rcR|jr%|jstt||t |dddkrd}nd}d} t |d|} |jr$td| || dkr| d krd }nd }|r5t |d |} |d d | z} t |d|} | dz} n4t |d|} |d d | z} t |d|} | dz} t || |} | dz } || | | z} t |d|} | dz}t |||} |dz }|||| z}d}nd}d}t |||} |dz}|||| z} t|||ddd}|dz }t|||ddd}t|||ddd}|d z }t|||ddd}|dz}t |||} | dz} | dz}t |||} || | | z} t |||} | dz}t |||} |dz }|||| z}|dz }|jrt| r/td|tt| |t| r/td |tt| |t|r/td!|tt||t |||} | d"z}t|||d\}}|d#krdS|dz }t|||d\}}||dzzdz}t|D]Z}|dz }t|||d\}}|dz }t|||d\}}t|||z||||||| | |j||$ [nE#t$r8}td%|tjYd}~nd}~wwxYwdS)&NrrLrrrYr z"Internal Office version: 0x{:04X}.rrrdrbrlrrwrnrrjrJr`rrrlTr6Frrrfrrr}zDeclaration table:zIndirect table:z Object table:rirr)rrrr?rDr%rHrSr8rWrangerrrr)rrrrrrrrCrrdwLengthr tableStartr dwLength2rr>rrnumLines pcodeStartrr lineOffsetrs r pcodeDumpr;sJ |5DO5 gj!! 4444z1c""T)) FQ7.!V44 < Z 6==gFF[ Y Y Y Y d??$ +#J??#-fVh5F.F#G #J??%] #J??#-fVh5F.F#G #J??%]  J??H !OJ&z*x2G'GHM FF;;H 4I Iv>>H NI$Yy8/C%CDKFFFF FF;;HA:D)$th*>? ":vvq%PPF bLF":vvub%PPF":vvq%PPF aKF":vvq%PPFA:D D&99H!BJb=D D&99H&z*x2G'GHM FF;;Hf$D D&99H AID$T$/%9:K bLF < >#$$ C*====g.//kBBBB=!! @'k::::gm,,;????; >oK8888gk**====J77F"z665AA  F?? F! !*ffeDDhm+b0 (OO p pD aKF!' FFE!J!J FJ aKF!' FFD!I!I FJ Zj!8*ffV]_j -1A4rrrrrrrrrrrrrrrrrrrr&r,rM__name__rrrr[s&%%%%%&&&&&&      99999999%%%%%% 1  ! 1AAAAF111. 0 ! 888888   <<< 69Zy)y)y)y)vFIZ    rrrpI 2V[]]I 2V[]]I 2V[]]I 2V[]] I  2V[]] I  2V[]] I 2V[]]I 2V[]]I 2V[]]I 2V[]]I 2V[]]I 2V[]]I 2V[]]I 2V[]]I 2V[]]I  2V[]]!I "2V[]]#I I $2V[]]%I &2V[]]'I (2V[]])I *2V[]]+I ,2V[]]-I .2V[]]/I 02V[]]1I 22V[]]3I 42V[]]5I 62V[]]7I 82V[]]9I :2V[]];I <2V[]]=I >2V[]]?I @F8V[]]AI BF8V[]]CI DF8V[]]EI I I FF8V[]]GI HD6V[]]II JFd3CV[]]KI LFd3CV[]]MI NFd3CV[]]OI PF8V[]]QI RF8V[]]SI TF8V[]]UI VD6V[]]WI XFd3CV[]]YI ZFd3CV[]][I \Fd3CV[]]]I ^F8V[]]_I `F8V[]]aI bF8V[]]cI dD6V[]]eI fFd3CV[]]gI I I hFd3CV[]]iI jFd3CV[]]kI lF8V[]]mI nF8V[]]oI pFd3CV[]]qI r!Fd3CV[]]sI tF8V[]]uI vF8V[]]wI xFd3CV[]]yI z!Fd3CV[]]{I |F8V[]]}I ~F8V[]]I @!Fd3CV[]]AI B"Fd3CV[]]CI DFd3CV[]]EI FFd3CV[]]GI H"Fd3CV[]]II I I JFd3CV[]]KI L2V[]]MI ND6V[]]OI P2V[]]QI R2V[]]SI TF8V[]]UI VF8V[]]WI X2V[]]YI Z2V[]][I \2V[]]]I ^2V[]]_I `2V[]]aI b2V[]]cI d2V[]]eI f2V[]]gI h2V[]]iI j2V[]]kI I I lD6V[]]mI nD6V[]]oI p2V[]]qI r2V[]]sI t2V[]]uI vJV[]]mI n$FD>V[]]oI I I p(FD>V[]]qI r2V[]]sI t2V[]]uI v2V[]]wI x2V[]]yI z2V[]]{I |2V[]]}I ~2V[]]I @2V[]]AI B2V[]]CI D2V[]]EI F2V[]]GI H2V[]]II J2V[]]KI L2V[]]MI N2V[]]OI P2V[]]QI I I R2V[]]SI T2V[]]UI VD6V[]]WI X2V[]]YI Z2V[]][I \2V[]]]I ^2V[]]_I `2V[]]aI b2V[]]cI dD6V[]]eI f2V[]]gI h2V[]]iI jF8V[]]kI l2V[]]mI nG9V[]]oI pG9V[]]qI r2V[]]sI I I tF8V[]]uI vF8V[]]wI x2V[]]yI z2V[]]{I |F8V[]]}I ~F8V[]]I @3K3K3KV[]]AI B2V[]]CI D2V[]]EI F2V[]]GI HF8V[]]II J2V[]]KI LD6V[]]MI N2W[]]OI P2V[]]QI RF8V[]]SI T3K3K3KV[]]UI I I V3K3K3KV[]]WI X2V[]]YI ZD6V[]][I \D$