Author Topic: How complicated is the code for Microsoft Windows?  (Read 2207 times)

jj2007

  • Member
  • *****
  • Posts: 10337
  • Assembler is fun ;-)
    • MasmBasic
How complicated is the code for Microsoft Windows?
« on: October 18, 2019, 12:47:53 PM »
https://www.quora.com/How-complicated-is-the-code-for-Microsoft-Windows

Quote
How complicated is the code for Microsoft Windows?

So complicated that Microsoft can’t fix it.

This is old (2006), so it only counts as the type of thing Microsoft seems to put out.

This is a linux call trace for apache on Linux.



This is a call trace for Microsoft IIS…


Raistlin

  • Member
  • ****
  • Posts: 510
Re: How complicated is the code for Microsoft Windows?
« Reply #1 on: October 18, 2019, 04:10:52 PM »
<expletive> Fark <expletive> WOW <expletive>  Jesu... <expletive> 
Thanks JJ - it all makes sense now......
Are you pondering what I'm pondering? It's time to take over the world ! - let's use ASSEMBLY...

hutch--

  • Administrator
  • Member
  • ******
  • Posts: 7321
  • Mnemonic Driven API Grinder
    • The MASM32 SDK
Re: How complicated is the code for Microsoft Windows?
« Reply #2 on: October 18, 2019, 05:07:58 PM »
 :biggrin:

While I do appreciate the humour, the odd Microsoft code I have seen from long ago was clean, tidy, properly formatted and fully commented. For an OS that has been running for so long while maintaining a reasonable level of backwards compatibility, it has the obvious problems of some old architecture that has had to be kept alive so that people could still run their old software. 16 bit MS_DOS executables would still run on XP and early 32 bit NT4 apps will generally still run on Win10.

Now contrast this with an Apple MAC or any flavour of Linux and you will have the semantic problem of "what is backward" and "what is compatible" as each new OS version requires the software to be re-compiled or in Apple's case, dumped and you buy a new MAC.

While I have not been without complaint about Microsoft changing the rules in each OS version, better the devil you know than the alternative.
hutch at movsd dot com
http://www.masm32.com    :biggrin:  :skrewy:

jj2007

  • Member
  • *****
  • Posts: 10337
  • Assembler is fun ;-)
    • MasmBasic
Re: How complicated is the code for Microsoft Windows?
« Reply #3 on: October 18, 2019, 11:54:16 PM »
Hutch,

You are right. I've wasted an incredible amount of time chasing Micros**t "features", but Linux seems even more confused than Windows. Somewhere I read that there isn't one Linux, there are rather 300+ different Linuxes. And it's true that even very, very old Windows programmes run smoothly on Win10, especially if they are built with Masm32 :badgrin:

AW

  • Member
  • *****
  • Posts: 2583
  • Let's Make ASM Great Again!
Re: How complicated is the code for Microsoft Windows?
« Reply #4 on: October 19, 2019, 01:57:24 AM »
Most of this propaganda is very dated and Linux people will never update their beliefs.
Linux is very likely full of traps and backdoors deeply entrenched into the kernel:
https://thehackernews.com/2019/10/linux-sudo-run-as-root-flaw.html

daydreamer

  • Member
  • *****
  • Posts: 1269
  • building nextdoor
Re: How complicated is the code for Microsoft Windows?
« Reply #5 on: October 19, 2019, 11:48:38 PM »
https://www.quora.com/How-complicated-is-the-code-for-Microsoft-Windows

Quote
How complicated is the code for Microsoft Windows?

So complicated that Microsoft can’t fix it.

This is old (2006), so it only counts as the type of thing Microsoft seems to put out.

This is a linux call trace for apache on Linux.



This is a call trace for Microsoft IIS…


OMG,thats what happening inside IIS I am currently running
and I had no idea there was loads of patches in A lot of Patches(Apache)  :greenclp:
Quote from Flashdance
Nick  :  When you give up your dream, you die
*wears a flameproof asbestos suit*
Gone serverside programming p:  :D
I love assembly,because its legal to write
princess:lea eax,luke
:)

TimoVJL

  • Member
  • ****
  • Posts: 526
Re: How complicated is the code for Microsoft Windows?
« Reply #6 on: October 20, 2019, 01:40:25 AM »
diagram of C versus C++ ?
May the source be with you

morgot

  • Member
  • **
  • Posts: 61
Re: How complicated is the code for Microsoft Windows?
« Reply #7 on: January 26, 2020, 02:46:25 AM »
WinApi is very difficult (versus linux api)
in linux we have very simple , such as open,mmap - functions with 2-3 parametres. In windows we have terrible winapi functions with 1000 parametres, most of them are usually NULL (security attributes and other). Copmare exec and CreateProcess, open and CreateFile.. i don't tell about security api (InitializeAndAllocateSomeSid (p1,...p21)) or COM! :eusa_boohoo:

Winapi written by drug-users..
Sorry for the bad English

hutch--

  • Administrator
  • Member
  • ******
  • Posts: 7321
  • Mnemonic Driven API Grinder
    • The MASM32 SDK
Re: How complicated is the code for Microsoft Windows?
« Reply #8 on: January 26, 2020, 03:06:58 AM »
He he, while I run this forum on a Linux server and recently built a 64 bit Linux file server for local networking, I still find Linux a crude imitation of a desktop. As a Web server its fine but its only recently that you can get a distro that has a presentable desktop where you can actually find anything. The Mint Linux team have almost civilised Linux.

As usual if you need to do anything useful its,

sudo su enter
password enter

Then you have to go looking for what you are after. Then you get directories that start with a period that don't show so you have to go exploring to find it. This is 1986 all over again, ancient junk that has not changed in 30 years, OCTAL file permissions and the like. Microsoft Windows for all of its many warts is navigatable and the information to write software is findable from help files and MSDN. Getting anything useful in Linux is an internet search and then you run into DISTRO-LAND with all of its variations.

With Windows the tech reference is many levels deep, with Linux it is splashed all over the internet like a mad woman's sewerage with very little depth. As a server Linux is fine but as a desktop its far behind Windows and while a few distros like Ubuntu and Mint Linux are catching up, there is still a long way to go.
hutch at movsd dot com
http://www.masm32.com    :biggrin:  :skrewy:

morgot

  • Member
  • **
  • Posts: 61
Re: How complicated is the code for Microsoft Windows?
« Reply #9 on: January 26, 2020, 03:22:46 AM »
As a server Linux is fine but as a desktop its far behind Windows and while a few distros like Ubuntu and Mint Linux are catching up, there is still a long way to go.
Yes, I agree this.  Windows is more comfy for people. But in coding...COM is terrible, no api in linux are so complicated
Sorry for the bad English

AW

  • Member
  • *****
  • Posts: 2583
  • Let's Make ASM Great Again!
Re: How complicated is the code for Microsoft Windows?
« Reply #10 on: January 26, 2020, 03:34:44 AM »
As a server Linux is fine but as a desktop its far behind Windows and while a few distros like Ubuntu and Mint Linux are catching up, there is still a long way to go.
Yes, I agree this.  Windows is more comfy for people. But in coding...COM is terrible, no api in linux are so complicated
COM is terrible from ASM and from C/C++.
It is easy from Delphi and also from the .Net languages. It was possible to produce fast an ActiveX control in Visual Basic 6, but VB is dead long ago.
We should not try to understand in detail how it works, we will never get it because COM was imagined from the ground up to be a barrier. There are others like RPC.

Rule: Don't try to understand in detail, you will never get it, just learn how to obtain results.

jj2007

  • Member
  • *****
  • Posts: 10337
  • Assembler is fun ;-)
    • MasmBasic
Re: How complicated is the code for Microsoft Windows?
« Reply #11 on: January 26, 2020, 04:42:11 AM »
COM looks a bit complicated at first, but the most difficult part is finding and creating the GUIDs and STRUCTs. Once you have that, it's no more difficult than ordinary WinAPI invokes. See e.g. Erol's SetWallpaper example. And COM is really well documented.

AW

  • Member
  • *****
  • Posts: 2583
  • Let's Make ASM Great Again!
Re: How complicated is the code for Microsoft Windows?
« Reply #12 on: January 26, 2020, 04:59:38 AM »
People that brag about easiness try to be smart but have not the slightest idea of the whole mess that COM is, recognized by almost everybody, and are still in the



era.

jj2007

  • Member
  • *****
  • Posts: 10337
  • Assembler is fun ;-)
    • MasmBasic
Re: How complicated is the code for Microsoft Windows?
« Reply #13 on: January 26, 2020, 05:23:55 AM »
What's wrong with you, José Pascoa? Why do your posts inevitably contain insults? Why is it not possible to have a normal conversation with you?

AW

  • Member
  • *****
  • Posts: 2583
  • Let's Make ASM Great Again!
Re: How complicated is the code for Microsoft Windows?
« Reply #14 on: January 26, 2020, 05:31:37 AM »
I am not insulting JJ2007, show me a COM Server or an ActiveX control you have done with your "pure" Masm (which is a closed source library called from macros.)

MasmBasic pure MASM:
Code: [Select]
LibTmp\LibTmpBG.obj    _MbFindPro@0
LibTmp\LibTmpBG.obj    _MbPDat@0
LibTmp\LibTmpBF.obj    _MbTestRet@0
LibTmp\LibTmpBF.obj    _MbVI@12
LibTmp\LibTmpBF.obj    _txViStrings
LibTmp\LibTmpBE.obj    _MbPS
LibTmp\LibTmpBE.obj    _MbPrintRtf@4
LibTmp\LibTmpBE.obj    _ReRgP@16
LibTmp\LibTmpBD.obj    _MbSpriteP
LibTmp\LibTmpBD.obj    _MbSpriteTable
LibTmp\LibTmpBD.obj    _MbWarp@20
LibTmp\LibTmpBD.obj    _SprBuffer
LibTmp\LibTmpBC.obj    _MbPoly3
LibTmp\LibTmpBC.obj    _MbSinP@0
LibTmp\LibTmpBB.obj    _GuiSMP@4
LibTmp\LibTmpBB.obj    _MbGetLG@0
LibTmp\LibTmpBB.obj    _MbTBar@16
LibTmp\LibTmpBB.obj    _cbRN@16
LibTmp\LibTmpBB.obj    _tbs0
LibTmp\LibTmpBA.obj    _InsJb@12
LibTmp\LibTmpBA.obj    _LineCountP@0
LibTmp\LibTmpAZ.obj    _MbUZ@8
LibTmp\LibTmpAZ.obj    _xzmb
LibTmp\LibTmpAY.obj    _CanvasInfo
LibTmp\LibTmpAY.obj    _MbArrayPlot@28
LibTmp\LibTmpAY.obj    _MbDBM@8
LibTmp\LibTmpAY.obj    _MbDbGetRgn@8
LibTmp\LibTmpAY.obj    _MbGetMapIndex@0
LibTmp\LibTmpAY.obj    _apStruct
LibTmp\LibTmpAX.obj    _MbXls@8
LibTmp\LibTmpAX.obj    _xlsServer$
LibTmp\LibTmpAW.obj    _MbDlgP@16
LibTmp\LibTmpAV.obj    _MbArrSort@16
LibTmp\LibTmpAU.obj    _MbwInputStrP@8
LibTmp\LibTmpAT.obj    _MbQSortP@8
LibTmp\LibTmpAT.obj    _MbStrCmp@12
LibTmp\LibTmpAT.obj    _QsMode
LibTmp\LibTmpAS.obj    _GdiSI
LibTmp\LibTmpAS.obj    _GdiStatus$
LibTmp\LibTmpAS.obj    _GetEncoderCLSID@4
LibTmp\LibTmpAS.obj    _GuiNeedsPaint
LibTmp\LibTmpAS.obj    _ImgPaintP@12
LibTmp\LibTmpAS.obj    _MbGdiInit@0
LibTmp\LibTmpAS.obj    _gdiSmoothing
LibTmp\LibTmpAS.obj    _hCanvas4Image
LibTmp\LibTmpAR.obj    _MbFlipP@0
LibTmp\LibTmpAQ.obj    _MbMD5@12
LibTmp\LibTmpAQ.obj    _MbRk64
LibTmp\LibTmpAQ.obj    _RegKeyP@16
LibTmp\LibTmpAP.obj    _MbWinGh@0
LibTmp\LibTmpAO.obj    _MbLMR@12
LibTmp\LibTmpAO.obj    _MbTrim@8
LibTmp\LibTmpAO.obj    _MbUpperLowerP@8
LibTmp\LibTmpAO.obj    _Mb_SCB@0
LibTmp\LibTmpAN.obj    _MbSound@0
LibTmp\LibTmpAN.obj    _MouseKeys@0
LibTmp\LibTmpAN.obj    _NoTagP@0
LibTmp\LibTmpAN.obj    _PromptWM@0
LibTmp\LibTmpAN.obj    _wcxP$
LibTmp\LibTmpAM.obj    _StringFill@0
LibTmp\LibTmpAL.obj    _MbUtf8@0
LibTmp\LibTmpAL.obj    _MsgTableP@12
LibTmp\LibTmpAL.obj    _wDataP@0
LibTmp\LibTmpAK.obj    _Float2Asc@12
LibTmp\LibTmpAK.obj    _MbBufferFix@0
LibTmp\LibTmpAK.obj    _MbBufferGet@0
LibTmp\LibTmpAK.obj    _MbBufferInit@0
LibTmp\LibTmpAK.obj    _MbExp@0
LibTmp\LibTmpAK.obj    _MbFloatCmp@0
LibTmp\LibTmpAK.obj    _MbFpuStatusP@0
LibTmp\LibTmpAK.obj    _MbGetSlotPointer@0
LibTmp\LibTmpAK.obj    _MbLoadRich@0
LibTmp\LibTmpAK.obj    _MbVal@12
LibTmp\LibTmpAK.obj    _RichEditUsed
LibTmp\LibTmpAK.obj    _pcTable
LibTmp\LibTmpAJ.obj    _MbLaMs
LibTmp\LibTmpAJ.obj    _ShellWait@16
LibTmp\LibTmpAJ.obj    _WriteData@8
LibTmp\LibTmpAJ.obj    _lsp
LibTmp\LibTmpAI.obj    _ClearLocalsP@0
LibTmp\LibTmpAI.obj    _MbStackB@0
LibTmp\LibTmpAH.obj    _MbBinP@0
LibTmp\LibTmpAH.obj    _MbHexP@8
LibTmp\LibTmpAH.obj    _MbMulQQ@8
LibTmp\LibTmpAH.obj    _R10ToX@0
LibTmp\LibTmpAH.obj    _R16ToST@0
LibTmp\LibTmpAH.obj    _qmFuncs
LibTmp\LibTmpAH.obj    _qmP@0
LibTmp\LibTmpAG.obj    _ExtractP@24
LibTmp\LibTmpAG.obj    _InstrCi@16
LibTmp\LibTmpAG.obj    _MbFileCmp@12
LibTmp\LibTmpAG.obj    _isCurPos
LibTmp\LibTmpAF.obj    _DtFormat
LibTmp\LibTmpAF.obj    _FindInFile@20
LibTmp\LibTmpAF.obj    _GfDateTimeP@8
LibTmp\LibTmpAF.obj    _MbDTF@8
LibTmp\LibTmpAF.obj    _MbGetFileCount
LibTmp\LibTmpAE.obj    _MbCopy@12
LibTmp\LibTmpAE.obj    _MbCopyz@8
LibTmp\LibTmpAD.obj    _MbCol@0
LibTmp\LibTmpAD.obj    _MbColCust
LibTmp\LibTmpAD.obj    _MbFnt@8
LibTmp\LibTmpAD.obj    _MbWinStrP@8
LibTmp\LibTmpAC.obj    _ArrSearchP@0
LibTmp\LibTmpAC.obj    _Browse4Folder@16
LibTmp\LibTmpAC.obj    _FileReadP@4
LibTmp\LibTmpAC.obj    _MbClose@0
LibTmp\LibTmpAC.obj    _MbD2m
LibTmp\LibTmpAC.obj    _MbExistP@0
LibTmp\LibTmpAC.obj    _MbGetCL@0
LibTmp\LibTmpAC.obj    _MbGetFileLen@4
LibTmp\LibTmpAC.obj    _MbInputP@0
LibTmp\LibTmpAC.obj    _MbOpenFile@20
LibTmp\LibTmpAC.obj    _MbResString@0
LibTmp\LibTmpAC.obj    _MbStrLen@0
LibTmp\LibTmpAC.obj    _MbStrLenW@0
LibTmp\LibTmpAC.obj    _Open_for_input@12
LibTmp\LibTmpAC.obj    _Open_for_output@12
LibTmp\LibTmpAC.obj    _RecallP@16
LibTmp\LibTmpAC.obj    _StoreHead$
LibTmp\LibTmpAC.obj    _StoreP@12
LibTmp\LibTmpAC.obj    _TclCatch1
LibTmp\LibTmpAC.obj    _TclTry1
LibTmp\LibTmpAC.obj    _TouchP@8
LibTmp\LibTmpAC.obj    _isUtf8P@0
LibTmp\LibTmpAC.obj    _ofSQ@0
LibTmp\LibTmpAC.obj    _txFrl
LibTmp\LibTmpAC.obj    _txRNF
LibTmp\LibTmpAB.obj    _GetNumID@0
LibTmp\LibTmpAB.obj    _GetStringID@0
LibTmp\LibTmpAB.obj    _IsRichP@0
LibTmp\LibTmpAB.obj    _JJ
LibTmp\LibTmpAB.obj    _LetEndPos
LibTmp\LibTmpAB.obj    _LocateP@0
LibTmp\LibTmpAB.obj    _MbAR@0
LibTmp\LibTmpAB.obj    _MbAddToHeapTable@0
LibTmp\LibTmpAB.obj    _MbAllocP@0
LibTmp\LibTmpAB.obj    _MbArGetCTH
LibTmp\LibTmpAB.obj    _MbArGetErased
LibTmp\LibTmpAB.obj    _MbArrayDim@8
LibTmp\LibTmpAB.obj    _MbArrayErase@0
LibTmp\LibTmpAB.obj    _MbArrayGet@8
LibTmp\LibTmpAB.obj    _MbArraySwap@0
LibTmp\LibTmpAB.obj    _MbClipP@0
LibTmp\LibTmpAB.obj    _MbDimStruct@12
LibTmp\LibTmpAB.obj    _MbErrAddLine
LibTmp\LibTmpAB.obj    _MbErrTMS
LibTmp\LibTmpAB.obj    _MbError0
LibTmp\LibTmpAB.obj    _MbError1
LibTmp\LibTmpAB.obj    _MbError10
LibTmp\LibTmpAB.obj    _MbError2
LibTmp\LibTmpAB.obj    _MbError3
LibTmp\LibTmpAB.obj    _MbError5
LibTmp\LibTmpAB.obj    _MbError6
LibTmp\LibTmpAB.obj    _MbErrorBuffer
LibTmp\LibTmpAB.obj    _MbFreeP@0
LibTmp\LibTmpAB.obj    _MbGetKeyP@0
LibTmp\LibTmpAB.obj    _MbHeap16@0
LibTmp\LibTmpAB.obj    _MbInputStrP@8
LibTmp\LibTmpAB.obj    _MbInsNum@8
LibTmp\LibTmpAB.obj    _MbInsert@0
LibTmp\LibTmpAB.obj    _MbLenTable
LibTmp\LibTmpAB.obj    _MbNewP
LibTmp\LibTmpAB.obj    _MbPrint@0
LibTmp\LibTmpAB.obj    _MbRegs32
LibTmp\LibTmpAB.obj    _MbReplPrep@16
LibTmp\LibTmpAB.obj    _MbRs@0
LibTmp\LibTmpAB.obj    _MbSAP@0
LibTmp\LibTmpAB.obj    _MbSCP@0
LibTmp\LibTmpAB.obj    _MbSleep@0
LibTmp\LibTmpAB.obj    _MbStdIn@0
LibTmp\LibTmpAB.obj    _MbStdOut@0
LibTmp\LibTmpAB.obj    _MbStringErase@0
LibTmp\LibTmpAB.obj    _MbStructCopy@0
LibTmp\LibTmpAB.obj    _MbStructErase@4
LibTmp\LibTmpAB.obj    _MbTxt2Dw@16
LibTmp\LibTmpAB.obj    _MbwRec@0
LibTmp\LibTmpAB.obj    _NewStrP@0
LibTmp\LibTmpAB.obj    _StreamFromPtr@16
LibTmp\LibTmpAB.obj    _StreamFromPtrP@16
LibTmp\LibTmpAB.obj    _TestRetVal@0
LibTmp\LibTmpAB.obj    _txFatal
LibTmp\LibTmpAA.obj    _Cr$
LibTmp\LibTmpAA.obj    _CrLf$
LibTmp\LibTmpAA.obj    _CrLf_txt
LibTmp\LibTmpAA.obj    _DebFile$
LibTmp\LibTmpAA.obj    _DllTable
LibTmp\LibTmpAA.obj    _Dw2BinBuffer
LibTmp\LibTmpAA.obj    _Dw2BinTable
LibTmp\LibTmpAA.obj    _EspGlob
LibTmp\LibTmpAA.obj    _FifHandle
LibTmp\LibTmpAA.obj    _FifRetBuf
LibTmp\LibTmpAA.obj    _Lf$
LibTmp\LibTmpAA.obj    _MbArrEmpty
LibTmp\LibTmpAA.obj    _MbArrTable
LibTmp\LibTmpAA.obj    _MbBufferStart
LibTmp\LibTmpAA.obj    _MbBytes2Write
LibTmp\LibTmpAA.obj    _MbCF
LibTmp\LibTmpAA.obj    _MbCat$
LibTmp\LibTmpAA.obj    _MbClips
LibTmp\LibTmpAA.obj    _MbCurSlot
LibTmp\LibTmpAA.obj    _MbDebugBuffer
LibTmp\LibTmpAA.obj    _MbDebugLine
LibTmp\LibTmpAA.obj    _MbDebugNotPointer
LibTmp\LibTmpAA.obj    _MbDebugNull
LibTmp\LibTmpAA.obj    _MbDebugPtr
LibTmp\LibTmpAA.obj    _MbDebugR10
LibTmp\LibTmpAA.obj    _MbDebugR8
LibTmp\LibTmpAA.obj    _MbDebugStop
LibTmp\LibTmpAA.obj    _MbDebugTitle
LibTmp\LibTmpAA.obj    _MbDefNum
LibTmp\LibTmpAA.obj    _MbErrLine
LibTmp\LibTmpAA.obj    _MbError$
LibTmp\LibTmpAA.obj    _MbExeFolder$
LibTmp\LibTmpAA.obj    _MbFH
LibTmp\LibTmpAA.obj    _MbFlags
LibTmp\LibTmpAA.obj    _MbHeapTable
LibTmp\LibTmpAA.obj    _MbOfn
LibTmp\LibTmpAA.obj    _MbOfnX
LibTmp\LibTmpAA.obj    _MbPiBy180
LibTmp\LibTmpAA.obj    _MbProHeap
LibTmp\LibTmpAA.obj    _MbSlots
LibTmp\LibTmpAA.obj    _MbTIS
LibTmp\LibTmpAA.obj    _MbTmpQw
LibTmp\LibTmpAA.obj    _MbXs
LibTmp\LibTmpAA.obj    _MiscStrings
LibTmp\LibTmpAA.obj    _MousePos
LibTmp\LibTmpAA.obj    _PI
LibTmp\LibTmpAA.obj    _Spc1_txt
LibTmp\LibTmpAA.obj    _Spc2_txt
LibTmp\LibTmpAA.obj    _Spc3_txt
LibTmp\LibTmpAA.obj    _Spc4_txt
LibTmp\LibTmpAA.obj    _StringFillBuffer
LibTmp\LibTmpAA.obj    _Tab_txt
LibTmp\LibTmpAA.obj    _Tb$
LibTmp\LibTmpAA.obj    _ccnOld
LibTmp\LibTmpAA.obj    _f2sOlly
LibTmp\LibTmpAA.obj    _gcHeapA
LibTmp\LibTmpAA.obj    _gcHeapF
LibTmp\LibTmpAA.obj    _gvStart
LibTmp\LibTmpAA.obj    _hSetWin
LibTmp\LibTmpAA.obj    _txBOM
LibTmp\LibTmpAA.obj    _txEmpty
LibTmp\LibTmpAA.obj    _txQuest
LibTmp\LibTmpAA.obj    _txSpTbSpSp
LibTmp\LibTmpAA.obj    _wCrLf_txt
LibTmp\LibTmpAA.obj    _wLf_txt
LibTmp\LibTmpAA.obj    _wTab_txt
LibTmp\LibTmpAA.obj    _wfd
LibTmp\LibTmpAC.obj    _ArrSearchP@0
LibTmp\LibTmpAC.obj    _Browse4Folder@16
LibTmp\LibTmpAY.obj    _CanvasInfo
LibTmp\LibTmpAI.obj    _ClearLocalsP@0
LibTmp\LibTmpAA.obj    _Cr$
LibTmp\LibTmpAA.obj    _CrLf$
LibTmp\LibTmpAA.obj    _CrLf_txt
LibTmp\LibTmpAA.obj    _DebFile$
LibTmp\LibTmpAA.obj    _DllTable
LibTmp\LibTmpAF.obj    _DtFormat
LibTmp\LibTmpAA.obj    _Dw2BinBuffer
LibTmp\LibTmpAA.obj    _Dw2BinTable
LibTmp\LibTmpAA.obj    _EspGlob
LibTmp\LibTmpAG.obj    _ExtractP@24
LibTmp\LibTmpAA.obj    _FifHandle
LibTmp\LibTmpAA.obj    _FifRetBuf
LibTmp\LibTmpAC.obj    _FileReadP@4
LibTmp\LibTmpAF.obj    _FindInFile@20
LibTmp\LibTmpAK.obj    _Float2Asc@12
LibTmp\LibTmpAS.obj    _GdiSI
LibTmp\LibTmpAS.obj    _GdiStatus$
LibTmp\LibTmpAS.obj    _GetEncoderCLSID@4
LibTmp\LibTmpAB.obj    _GetNumID@0
LibTmp\LibTmpAB.obj    _GetStringID@0
LibTmp\LibTmpAF.obj    _GfDateTimeP@8
LibTmp\LibTmpAS.obj    _GuiNeedsPaint
LibTmp\LibTmpBB.obj    _GuiSMP@4
LibTmp\LibTmpAS.obj    _ImgPaintP@12
LibTmp\LibTmpBA.obj    _InsJb@12
LibTmp\LibTmpAG.obj    _InstrCi@16
LibTmp\LibTmpAB.obj    _IsRichP@0
LibTmp\LibTmpAB.obj    _JJ
LibTmp\LibTmpAB.obj    _LetEndPos
LibTmp\LibTmpAA.obj    _Lf$
LibTmp\LibTmpBA.obj    _LineCountP@0
LibTmp\LibTmpAB.obj    _LocateP@0
LibTmp\LibTmpAB.obj    _MbAR@0
LibTmp\LibTmpAB.obj    _MbAddToHeapTable@0
LibTmp\LibTmpAB.obj    _MbAllocP@0
LibTmp\LibTmpAB.obj    _MbArGetCTH
LibTmp\LibTmpAB.obj    _MbArGetErased
LibTmp\LibTmpAA.obj    _MbArrEmpty
LibTmp\LibTmpAV.obj    _MbArrSort@16
LibTmp\LibTmpAA.obj    _MbArrTable
LibTmp\LibTmpAB.obj    _MbArrayDim@8
LibTmp\LibTmpAB.obj    _MbArrayErase@0
LibTmp\LibTmpAB.obj    _MbArrayGet@8
LibTmp\LibTmpAY.obj    _MbArrayPlot@28
LibTmp\LibTmpAB.obj    _MbArraySwap@0
LibTmp\LibTmpAH.obj    _MbBinP@0
LibTmp\LibTmpAK.obj    _MbBufferFix@0
LibTmp\LibTmpAK.obj    _MbBufferGet@0
LibTmp\LibTmpAK.obj    _MbBufferInit@0
LibTmp\LibTmpAA.obj    _MbBufferStart
LibTmp\LibTmpAA.obj    _MbBytes2Write
LibTmp\LibTmpAA.obj    _MbCF
LibTmp\LibTmpAA.obj    _MbCat$
LibTmp\LibTmpAB.obj    _MbClipP@0
LibTmp\LibTmpAA.obj    _MbClips
LibTmp\LibTmpAC.obj    _MbClose@0
LibTmp\LibTmpAD.obj    _MbCol@0
LibTmp\LibTmpAD.obj    _MbColCust
LibTmp\LibTmpAE.obj    _MbCopy@12
LibTmp\LibTmpAE.obj    _MbCopyz@8
LibTmp\LibTmpAA.obj    _MbCurSlot
LibTmp\LibTmpAC.obj    _MbD2m
LibTmp\LibTmpAY.obj    _MbDBM@8
LibTmp\LibTmpAF.obj    _MbDTF@8
LibTmp\LibTmpAY.obj    _MbDbGetRgn@8
LibTmp\LibTmpAA.obj    _MbDebugBuffer
LibTmp\LibTmpAA.obj    _MbDebugLine
LibTmp\LibTmpAA.obj    _MbDebugNotPointer
LibTmp\LibTmpAA.obj    _MbDebugNull
LibTmp\LibTmpAA.obj    _MbDebugPtr
LibTmp\LibTmpAA.obj    _MbDebugR10
LibTmp\LibTmpAA.obj    _MbDebugR8
LibTmp\LibTmpAA.obj    _MbDebugStop
LibTmp\LibTmpAA.obj    _MbDebugTitle
LibTmp\LibTmpAA.obj    _MbDefNum
LibTmp\LibTmpAB.obj    _MbDimStruct@12
LibTmp\LibTmpAW.obj    _MbDlgP@16
LibTmp\LibTmpAB.obj    _MbErrAddLine
LibTmp\LibTmpAA.obj    _MbErrLine
LibTmp\LibTmpAB.obj    _MbErrTMS
LibTmp\LibTmpAA.obj    _MbError$
LibTmp\LibTmpAB.obj    _MbError0
LibTmp\LibTmpAB.obj    _MbError1
LibTmp\LibTmpAB.obj    _MbError10
LibTmp\LibTmpAB.obj    _MbError2
LibTmp\LibTmpAB.obj    _MbError3
LibTmp\LibTmpAB.obj    _MbError5
LibTmp\LibTmpAB.obj    _MbError6
LibTmp\LibTmpAB.obj    _MbErrorBuffer
LibTmp\LibTmpAA.obj    _MbExeFolder$
LibTmp\LibTmpAC.obj    _MbExistP@0
LibTmp\LibTmpAK.obj    _MbExp@0
LibTmp\LibTmpAA.obj    _MbFH
LibTmp\LibTmpAG.obj    _MbFileCmp@12
LibTmp\LibTmpBG.obj    _MbFindPro@0
LibTmp\LibTmpAA.obj    _MbFlags
LibTmp\LibTmpAR.obj    _MbFlipP@0
LibTmp\LibTmpAK.obj    _MbFloatCmp@0
LibTmp\LibTmpAD.obj    _MbFnt@8
LibTmp\LibTmpAK.obj    _MbFpuStatusP@0
LibTmp\LibTmpAB.obj    _MbFreeP@0
LibTmp\LibTmpAS.obj    _MbGdiInit@0
LibTmp\LibTmpAC.obj    _MbGetCL@0
LibTmp\LibTmpAF.obj    _MbGetFileCount
LibTmp\LibTmpAC.obj    _MbGetFileLen@4
LibTmp\LibTmpAB.obj    _MbGetKeyP@0
LibTmp\LibTmpBB.obj    _MbGetLG@0
LibTmp\LibTmpAY.obj    _MbGetMapIndex@0
LibTmp\LibTmpAK.obj    _MbGetSlotPointer@0
LibTmp\LibTmpAB.obj    _MbHeap16@0
LibTmp\LibTmpAA.obj    _MbHeapTable
LibTmp\LibTmpAH.obj    _MbHexP@8
LibTmp\LibTmpAC.obj    _MbInputP@0
LibTmp\LibTmpAB.obj    _MbInputStrP@8
LibTmp\LibTmpAB.obj    _MbInsNum@8
LibTmp\LibTmpAB.obj    _MbInsert@0
LibTmp\LibTmpAO.obj    _MbLMR@12
LibTmp\LibTmpAJ.obj    _MbLaMs
LibTmp\LibTmpAB.obj    _MbLenTable
LibTmp\LibTmpAK.obj    _MbLoadRich@0
LibTmp\LibTmpAQ.obj    _MbMD5@12
LibTmp\LibTmpAH.obj    _MbMulQQ@8
LibTmp\LibTmpAB.obj    _MbNewP
LibTmp\LibTmpAA.obj    _MbOfn
LibTmp\LibTmpAA.obj    _MbOfnX
LibTmp\LibTmpAC.obj    _MbOpenFile@20
LibTmp\LibTmpBG.obj    _MbPDat@0
LibTmp\LibTmpBE.obj    _MbPS
LibTmp\LibTmpAA.obj    _MbPiBy180
LibTmp\LibTmpBC.obj    _MbPoly3
LibTmp\LibTmpAB.obj    _MbPrint@0
LibTmp\LibTmpBE.obj    _MbPrintRtf@4
LibTmp\LibTmpAA.obj    _MbProHeap
LibTmp\LibTmpAT.obj    _MbQSortP@8
LibTmp\LibTmpAB.obj    _MbRegs32
LibTmp\LibTmpAB.obj    _MbReplPrep@16
LibTmp\LibTmpAC.obj    _MbResString@0
LibTmp\LibTmpAQ.obj    _MbRk64
LibTmp\LibTmpAB.obj    _MbRs@0
LibTmp\LibTmpAB.obj    _MbSAP@0
LibTmp\LibTmpAB.obj    _MbSCP@0
LibTmp\LibTmpBC.obj    _MbSinP@0
LibTmp\LibTmpAB.obj    _MbSleep@0
LibTmp\LibTmpAA.obj    _MbSlots
LibTmp\LibTmpAN.obj    _MbSound@0
LibTmp\LibTmpBD.obj    _MbSpriteP
LibTmp\LibTmpBD.obj    _MbSpriteTable
LibTmp\LibTmpAI.obj    _MbStackB@0
LibTmp\LibTmpAB.obj    _MbStdIn@0
LibTmp\LibTmpAB.obj    _MbStdOut@0
LibTmp\LibTmpAT.obj    _MbStrCmp@12
LibTmp\LibTmpAC.obj    _MbStrLen@0
LibTmp\LibTmpAC.obj    _MbStrLenW@0
LibTmp\LibTmpAB.obj    _MbStringErase@0
LibTmp\LibTmpAB.obj    _MbStructCopy@0
LibTmp\LibTmpAB.obj    _MbStructErase@4
LibTmp\LibTmpBB.obj    _MbTBar@16
LibTmp\LibTmpAA.obj    _MbTIS
LibTmp\LibTmpBF.obj    _MbTestRet@0
LibTmp\LibTmpAA.obj    _MbTmpQw
LibTmp\LibTmpAO.obj    _MbTrim@8
LibTmp\LibTmpAB.obj    _MbTxt2Dw@16
LibTmp\LibTmpAZ.obj    _MbUZ@8
LibTmp\LibTmpAO.obj    _MbUpperLowerP@8
LibTmp\LibTmpAL.obj    _MbUtf8@0
LibTmp\LibTmpBF.obj    _MbVI@12
LibTmp\LibTmpAK.obj    _MbVal@12
LibTmp\LibTmpBD.obj    _MbWarp@20
LibTmp\LibTmpAP.obj    _MbWinGh@0
LibTmp\LibTmpAD.obj    _MbWinStrP@8
LibTmp\LibTmpAX.obj    _MbXls@8
LibTmp\LibTmpAA.obj    _MbXs
LibTmp\LibTmpAO.obj    _Mb_SCB@0
LibTmp\LibTmpAU.obj    _MbwInputStrP@8
LibTmp\LibTmpAB.obj    _MbwRec@0
LibTmp\LibTmpAA.obj    _MiscStrings
LibTmp\LibTmpAN.obj    _MouseKeys@0
LibTmp\LibTmpAA.obj    _MousePos
LibTmp\LibTmpAL.obj    _MsgTableP@12
LibTmp\LibTmpAB.obj    _NewStrP@0
LibTmp\LibTmpAN.obj    _NoTagP@0
LibTmp\LibTmpAC.obj    _Open_for_input@12
LibTmp\LibTmpAC.obj    _Open_for_output@12
LibTmp\LibTmpAA.obj    _PI
LibTmp\LibTmpAN.obj    _PromptWM@0
LibTmp\LibTmpAT.obj    _QsMode
LibTmp\LibTmpAH.obj    _R10ToX@0
LibTmp\LibTmpAH.obj    _R16ToST@0
LibTmp\LibTmpBE.obj    _ReRgP@16
LibTmp\LibTmpAC.obj    _RecallP@16
LibTmp\LibTmpAQ.obj    _RegKeyP@16
LibTmp\LibTmpAK.obj    _RichEditUsed
LibTmp\LibTmpAJ.obj    _ShellWait@16
LibTmp\LibTmpAA.obj    _Spc1_txt
LibTmp\LibTmpAA.obj    _Spc2_txt
LibTmp\LibTmpAA.obj    _Spc3_txt
LibTmp\LibTmpAA.obj    _Spc4_txt
LibTmp\LibTmpBD.obj    _SprBuffer
LibTmp\LibTmpAC.obj    _StoreHead$
LibTmp\LibTmpAC.obj    _StoreP@12
LibTmp\LibTmpAB.obj    _StreamFromPtr@16
LibTmp\LibTmpAB.obj    _StreamFromPtrP@16
LibTmp\LibTmpAM.obj    _StringFill@0
LibTmp\LibTmpAA.obj    _StringFillBuffer
LibTmp\LibTmpAA.obj    _Tab_txt
LibTmp\LibTmpAA.obj    _Tb$
LibTmp\LibTmpAC.obj    _TclCatch1
LibTmp\LibTmpAC.obj    _TclTry1
LibTmp\LibTmpAB.obj    _TestRetVal@0
LibTmp\LibTmpAC.obj    _TouchP@8
LibTmp\LibTmpAJ.obj    _WriteData@8
LibTmp\LibTmpAY.obj    _apStruct
LibTmp\LibTmpBB.obj    _cbRN@16
LibTmp\LibTmpAA.obj    _ccnOld
LibTmp\LibTmpAA.obj    _f2sOlly
LibTmp\LibTmpAA.obj    _gcHeapA
LibTmp\LibTmpAA.obj    _gcHeapF
LibTmp\LibTmpAS.obj    _gdiSmoothing
LibTmp\LibTmpAA.obj    _gvStart
LibTmp\LibTmpAS.obj    _hCanvas4Image
LibTmp\LibTmpAA.obj    _hSetWin
LibTmp\LibTmpAG.obj    _isCurPos
LibTmp\LibTmpAC.obj    _isUtf8P@0
LibTmp\LibTmpAJ.obj    _lsp
LibTmp\LibTmpAC.obj    _ofSQ@0
LibTmp\LibTmpAK.obj    _pcTable
LibTmp\LibTmpAH.obj    _qmFuncs
LibTmp\LibTmpAH.obj    _qmP@0
LibTmp\LibTmpBB.obj    _tbs0
LibTmp\LibTmpAA.obj    _txBOM
LibTmp\LibTmpAA.obj    _txEmpty
LibTmp\LibTmpAB.obj    _txFatal
LibTmp\LibTmpAC.obj    _txFrl
LibTmp\LibTmpAA.obj    _txQuest
LibTmp\LibTmpAC.obj    _txRNF
LibTmp\LibTmpAA.obj    _txSpTbSpSp
LibTmp\LibTmpBF.obj    _txViStrings
LibTmp\LibTmpAA.obj    _wCrLf_txt
LibTmp\LibTmpAL.obj    _wDataP@0
LibTmp\LibTmpAA.obj    _wLf_txt
LibTmp\LibTmpAA.obj    _wTab_txt
LibTmp\LibTmpAN.obj    _wcxP$
LibTmp\LibTmpAA.obj    _wfd
LibTmp\LibTmpAX.obj    _xlsServer$
LibTmp\LibTmpAZ.obj    _xzmb