home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / strings / faststr / str40.dis < prev    next >
Encoding:
Text File  |  1994-06-19  |  71.4 KB  |  1,316 lines

  1.  
  2. Module: STRINGS.PAS
  3. Group: 'DGROUP' _DATA,_BSS
  4.  
  5. Segment: STRINGS_TEXT  PARA   0000099c bytes  
  6.  0000                    STRINGS_000:
  7.  0000  89 e5             STRINGS_INIT    mov     bp,sp
  8.  0002  81 ec 00 03                       sub     sp,0300H
  9.  0006  8d be 00 fd                       lea     di,-300H[bp]
  10.  000a  16                                push    ss
  11.  000b  57                                push    di
  12.  000c  bf 00 00                          mov     di,offset STRINGS_DATA
  13.  000f  1e                                push    ds
  14.  0010  57                                push    di
  15.  0011  8d be 00 ff                       lea     di,-100H[bp]
  16.  0015  16                                push    ss
  17.  0016  57                                push    di
  18.  0017  b0 84                             mov     al,84H
  19.  0019  50                                push    ax
  20.  001a  b0 be                             mov     al,0beH
  21.  001c  50                                push    ax
  22.  001d  0e                                push    cs
  23.  001e  e8 00 00                          call    STRINGS_01E
  24.  0021  8d be 00 fe                       lea     di,-200H[bp]
  25.  0025  16                                push    ss
  26.  0026  57                                push    di
  27.  0027  b0 20                             mov     al,20H
  28.  0029  50                                push    ax
  29.  002a  b0 5a                             mov     al,5aH
  30.  002c  50                                push    ax
  31.  002d  0e                                push    cs
  32.  002e  e8 00 00                          call    STRINGS_01E
  33.  0031  0e                                push    cs
  34.  0032  e8 00 00                          call    STRINGS_017
  35.  0035  bf 00 00                          mov     di,offset STRINGS_DATA
  36.  0038  1e                                push    ds
  37.  0039  57                                push    di
  38.  003a  b8 3c 00                          mov     ax,003cH
  39.  003d  50                                push    ax
  40.  003e  9a 00 00 00 00                    call    far SYSTEM_00C
  41.  0043  89 ec                             mov     sp,bp
  42.  0045  cb                                retf    
  43.  0046                    ABBREV:
  44.  0046  55                STRINGS_001     push    bp
  45.  0047  8b ec                             mov     bp,sp
  46.  0049  8c da                             mov     dx,ds
  47.  004b  c5 76 08                          lds     si,dword ptr +8H[bp]
  48.  004e  b4 01                             mov     ah,01H
  49.  0050  fc                                cld     
  50.  0051  ac                                lodsb   
  51.  0052  8a 4e 06                          mov     cl,+6H[bp]
  52.  0055  3a c1                             cmp     al,cl
  53.  0057  72 15                             jb      L1
  54.  0059  c4 7e 0c                          les     di,dword ptr +0cH[bp]
  55.  005c  8a c8                             mov     cl,al
  56.  005e  26 8a 05                          mov     al,es:[di]
  57.  0061  47                                inc     di
  58.  0062  3a c1                             cmp     al,cl
  59.  0064  72 08                             jb      L1
  60.  0066  32 ed                             xor     ch,ch
  61.  0068  e3 06                             jcxz    L2
  62.  006a  f3 a6                             repe    cmpsb    
  63.  006c  74 02                             je      L2
  64.  006e  32 e4             L1              xor     ah,ah
  65.  0070  8a c4             L2              mov     al,ah
  66.  0072  8e da                             mov     ds,dx
  67.  0074  5d                                pop     bp
  68.  0075  ca 0a 00                          retf    000aH
  69.  0078                    CENTER:
  70.  0078  55                STRINGS_002     push    bp
  71.  0079  8b ec                             mov     bp,sp
  72.  007b  1e                                push    ds
  73.  007c  fc                                cld     
  74.  007d  8a 4e 08                          mov     cl,+8H[bp]
  75.  0080  32 ed                             xor     ch,ch
  76.  0082  8a 46 06                          mov     al,+6H[bp]
  77.  0085  c4 7e 0e                          les     di,dword ptr +0eH[bp]
  78.  0088  26 88 0d                          mov     es:[di],cl
  79.  008b  47                                inc     di
  80.  008c  c5 76 0a                          lds     si,dword ptr +0aH[bp]
  81.  008f  8a 14                             mov     dl,[si]
  82.  0091  46                                inc     si
  83.  0092  8a f1                             mov     dh,cl
  84.  0094  2a f2                             sub     dh,dl
  85.  0096  76 17                             jbe     L3
  86.  0098  8a de                             mov     bl,dh
  87.  009a  80 e3 01                          and     bl,01H
  88.  009d  d0 ee                             shr     dh,1
  89.  009f  8a ce                             mov     cl,dh
  90.  00a1  f3 aa                             repe    stosb    
  91.  00a3  8a ca                             mov     cl,dl
  92.  00a5  f3 a4                             repe    movsb    
  93.  00a7  8a ce                             mov     cl,dh
  94.  00a9  02 cb                             add     cl,bl
  95.  00ab  f3 aa                             repe    stosb    
  96.  00ad  eb 02                             jmp     L4
  97.  00af  f3 a4             L3              repe    movsb    
  98.  00b1  1f                L4              pop     ds
  99.  00b2  5d                                pop     bp
  100.  00b3  ca 08 00                          retf    0008H
  101.  00b6                    COMPARE:
  102.  00b6  55                STRINGS_003     push    bp
  103.  00b7  8b ec                             mov     bp,sp
  104.  00b9  8c da                             mov     dx,ds
  105.  00bb  c5 76 0a                          lds     si,dword ptr +0aH[bp]
  106.  00be  c4 7e 06                          les     di,dword ptr +6H[bp]
  107.  00c1  8a 1c                             mov     bl,[si]
  108.  00c3  26 8a 3d                          mov     bh,es:[di]
  109.  00c6  46                                inc     si
  110.  00c7  47                                inc     di
  111.  00c8  8a cb                             mov     cl,bl
  112.  00ca  3a df                             cmp     bl,bh
  113.  00cc  72 02                             jb      L5
  114.  00ce  8a cf                             mov     cl,bh
  115.  00d0  8a c1             L5              mov     al,cl
  116.  00d2  32 ed                             xor     ch,ch
  117.  00d4  fc                                cld     
  118.  00d5  f3 a6                             repe    cmpsb    
  119.  00d7  75 08                             jne     L6
  120.  00d9  fe c0                             inc     al
  121.  00db  3a df                             cmp     bl,bh
  122.  00dd  75 02                             jne     L6
  123.  00df  8a c1                             mov     al,cl
  124.  00e1  2a c1             L6              sub     al,cl
  125.  00e3  8e da                             mov     ds,dx
  126.  00e5  5d                                pop     bp
  127.  00e6  ca 08 00                          retf    0008H
  128.  00e9                    COPIES:
  129.  00e9  55                STRINGS_004     push    bp
  130.  00ea  8b ec                             mov     bp,sp
  131.  00ec  1e                                push    ds
  132.  00ed  c4 7e 0c                          les     di,dword ptr +0cH[bp]
  133.  00f0  47                                inc     di
  134.  00f1  8a da                             mov     bl,dl
  135.  00f3  8a 76 06                          mov     dh,+6H[bp]
  136.  00f6  0a f6                             or      dh,dh
  137.  00f8  74 21                             je      L8
  138.  00fa  c5 76 08                          lds     si,dword ptr +8H[bp]
  139.  00fd  8a 0c                             mov     cl,[si]
  140.  00ff  32 ed                             xor     ch,ch
  141.  0101  e3 18                             jcxz    L8
  142.  0103  46                                inc     si
  143.  0104  8b c6                             mov     ax,si
  144.  0106  8a d1                             mov     dl,cl
  145.  0108  32 db                             xor     bl,bl
  146.  010a  fc                                cld     
  147.  010b  02 da             L7              add     bl,dl
  148.  010d  72 0c                             jb      L8
  149.  010f  f3 a4                             repe    movsb    
  150.  0111  fe ce                             dec     dh
  151.  0113  74 08                             je      L9
  152.  0115  8a ca                             mov     cl,dl
  153.  0117  8b f0                             mov     si,ax
  154.  0119  eb f0                             jmp     L7
  155.  011b  2a da             L8              sub     bl,dl
  156.  011d  32 ff             L9              xor     bh,bh
  157.  011f  2b fb                             sub     di,bx
  158.  0121  4f                                dec     di
  159.  0122  26 88 1d                          mov     es:[di],bl
  160.  0125  1f                                pop     ds
  161.  0126  5d                                pop     bp
  162.  0127  ca 06 00                          retf    0006H
  163.  012a                    D2X:
  164.  012a  55                STRINGS_005     push    bp
  165.  012b  8b ec                             mov     bp,sp
  166.  012d  fc                                cld     
  167.  012e  c4 7e 08                          les     di,dword ptr +8H[bp]
  168.  0131  26 c6 05 04                       mov     byte ptr es:[di],04H
  169.  0135  47                                inc     di
  170.  0136  8b 56 06                          mov     dx,+6H[bp]
  171.  0139  bb 46 00                          mov     bx,offset L13
  172.  013c  8a c6                             mov     al,dh
  173.  013e  b1 0f                             mov     cl,0fH
  174.  0140  d0 e8                             shr     al,1
  175.  0142  d0 e8                             shr     al,1
  176.  0144  d0 e8                             shr     al,1
  177.  0146  d0 e8                             shr     al,1
  178.  0148  2e d7                             xlat    
  179.  014a  8a e0                             mov     ah,al
  180.  014c  8a c6                             mov     al,dh
  181.  014e  22 c1                             and     al,cl
  182.  0150  2e d7                             xlat    
  183.  0152  86 c4                             xchg    al,ah
  184.  0154  ab                                stosw   
  185.  0155  8a c2                             mov     al,dl
  186.  0157  d0 e8                             shr     al,1
  187.  0159  d0 e8                             shr     al,1
  188.  015b  d0 e8                             shr     al,1
  189.  015d  d0 e8                             shr     al,1
  190.  015f  2e d7                             xlat    
  191.  0161  8a e0                             mov     ah,al
  192.  0163  8a c2                             mov     al,dl
  193.  0165  22 c1                             and     al,cl
  194.  0167  2e d7                             xlat    
  195.  0169  86 c4                             xchg    al,ah
  196.  016b  ab                                stosw   
  197.  016c  5d                                pop     bp
  198.  016d  ca 02 00                          retf    0002H
  199.  0170  30 31                             xor     [bx+di],dh
  200.  0172  32 33                             xor     dh,[bp+di]
  201.  0174  34 35                             xor     al,35H
  202.  0176  36 37                             aaa     
  203.  0178  38 39                             cmp     [bx+di],bh
  204.  017a  41                                inc     cx
  205.  017b  42                                inc     dx
  206.  017c  43                                inc     bx
  207.  017d  44                                inc     sp
  208.  017e  45                                inc     bp
  209.  017f  46                                inc     si
  210.  0180                    DELSTR:
  211.  0180  55                STRINGS_006     push    bp
  212.  0181  8b ec                             mov     bp,sp
  213.  0183  8c da                             mov     dx,ds
  214.  0185  c4 7e 0e                          les     di,dword ptr +0eH[bp]
  215.  0188  c5 76 0a                          lds     si,dword ptr +0aH[bp]
  216.  018b  8b df                             mov     bx,di
  217.  018d  47                                inc     di
  218.  018e  fc                                cld     
  219.  018f  ac                                lodsb   
  220.  0190  33 c9                             xor     cx,cx
  221.  0192  8a 4e 08                          mov     cl,+8H[bp]
  222.  0195  e3 02                             jcxz    L10
  223.  0197  fe c9                             dec     cl
  224.  0199  8a e0             L10             mov     ah,al
  225.  019b  2a c1                             sub     al,cl
  226.  019d  77 04                             ja      L11
  227.  019f  8a cc                             mov     cl,ah
  228.  01a1  32 c0                             xor     al,al
  229.  01a3  f3 a4             L11             repe    movsb    
  230.  01a5  8a 4e 06                          mov     cl,+6H[bp]
  231.  01a8  2a c1                             sub     al,cl
  232.  01aa  72 06                             jb      L12
  233.  01ac  03 f1                             add     si,cx
  234.  01ae  8a c8                             mov     cl,al
  235.  01b0  f3 a4                             repe    movsb    
  236.  01b2  2b fb             L12             sub     di,bx
  237.  01b4  8b c7                             mov     ax,di
  238.  01b6  fe c8             L13             dec     al
  239.  01b8  26 88 07                          mov     es:[bx],al
  240.  01bb  8e da                             mov     ds,dx
  241.  01bd  5d                                pop     bp
  242.  01be  ca 08 00                          retf    0008H
  243.  01c1                    DELWORD:
  244.  01c1  55                STRINGS_007     push    bp
  245.  01c2  8b ec                             mov     bp,sp
  246.  01c4  1e                                push    ds
  247.  01c5  c4 7e 0a                          les     di,dword ptr +0aH[bp]
  248.  01c8  26 8a 0d                          mov     cl,es:[di]
  249.  01cb  47                                inc     di
  250.  01cc  8b d7                             mov     dx,di
  251.  01ce  fc                                cld     
  252.  01cf  32 ed                             xor     ch,ch
  253.  01d1  e3 6c                             jcxz    L21
  254.  01d3  8a 66 08                          mov     ah,+8H[bp]
  255.  01d6  0a e4                             or      ah,ah
  256.  01d8  74 02                             je      L14
  257.  01da  fe cc                             dec     ah
  258.  01dc  fe c4             L14             inc     ah
  259.  01de  b0 20                             mov     al,20H
  260.  01e0  f3 ae             L15             repe    scasb    
  261.  01e2  74 5b                             je      L21
  262.  01e4  fe cc                             dec     ah
  263.  01e6  74 07                             je      L16
  264.  01e8  f2 ae                             repne   scasb    
  265.  01ea  74 f4                             je      L15
  266.  01ec  eb 51                             jmp     L21
  267.  01ee  90                                nop     
  268.  01ef  8a e1             L16             mov     ah,cl
  269.  01f1  fe c4                             inc     ah
  270.  01f3  8b cf                             mov     cx,di
  271.  01f5  2b ca                             sub     cx,dx
  272.  01f7  49                                dec     cx
  273.  01f8  8b f2                             mov     si,dx
  274.  01fa  8c c2                             mov     dx,es
  275.  01fc  8e da                             mov     ds,dx
  276.  01fe  c4 7e 0e                          les     di,dword ptr +0eH[bp]
  277.  0201  8c c3                             mov     bx,es
  278.  0203  47                                inc     di
  279.  0204  f3 a4                             repe    movsb    
  280.  0206  8a cc                             mov     cl,ah
  281.  0208  87 fe                             xchg    di,si
  282.  020a  8e c2                             mov     es,dx
  283.  020c  8a 66 06                          mov     ah,+6H[bp]
  284.  020f  0a e4                             or      ah,ah
  285.  0211  74 0e                             je      L18
  286.  0213  f2 ae             L17             repne   scasb    
  287.  0215  75 22                             jne     L20
  288.  0217  f3 ae                             repe    scasb    
  289.  0219  74 1e                             je      L20
  290.  021b  fe cc                             dec     ah
  291.  021d  75 f4                             jne     L17
  292.  021f  4f                                dec     di
  293.  0220  41                                inc     cx
  294.  0221  87 fe             L18             xchg    di,si
  295.  0223  8e c3                             mov     es,bx
  296.  0225  8e da                             mov     ds,dx
  297.  0227  f3 a4                             repe    movsb    
  298.  0229  8b 5e 0e          L19             mov     bx,+0eH[bp]
  299.  022c  8b c7                             mov     ax,di
  300.  022e  2b c3                             sub     ax,bx
  301.  0230  48                                dec     ax
  302.  0231  26 88 07                          mov     es:[bx],al
  303.  0234  1f                                pop     ds
  304.  0235  5d                                pop     bp
  305.  0236  ca 08 00                          retf    0008H
  306.  0239  8b fe             L20             mov     di,si
  307.  023b  8e c3                             mov     es,bx
  308.  023d  eb ea                             jmp     L19
  309.  023f  8b f2             L21             mov     si,dx
  310.  0241  4e                                dec     si
  311.  0242  8c c2                             mov     dx,es
  312.  0244  8e da                             mov     ds,dx
  313.  0246  c4 7e 0e                          les     di,dword ptr +0eH[bp]
  314.  0249  ac                                lodsb   
  315.  024a  aa                                stosb   
  316.  024b  8a c8                             mov     cl,al
  317.  024d  f3 a4                             repe    movsb    
  318.  024f  1f                                pop     ds
  319.  0250  5d                                pop     bp
  320.  0251  ca 08 00                          retf    0008H
  321.  0254                    FIRSTPOS:
  322.  0254  55                STRINGS_008     push    bp
  323.  0255  8b ec                             mov     bp,sp
  324.  0257  1e                                push    ds
  325.  0258  c4 7e 08                          les     di,dword ptr +8H[bp]
  326.  025b  26 8a 25                          mov     ah,es:[di]
  327.  025e  47                                inc     di
  328.  025f  0a e4                             or      ah,ah
  329.  0261  74 54                             je      L25
  330.  0263  8a 5e 06                          mov     bl,+6H[bp]
  331.  0266  fc                                cld     
  332.  0267  0a db                             or      bl,bl
  333.  0269  74 02                             je      L22
  334.  026b  fe cb                             dec     bl
  335.  026d  2a e3             L22             sub     ah,bl
  336.  026f  76 46                             jbe     L25
  337.  0271  32 ff                             xor     bh,bh
  338.  0273  03 fb                             add     di,bx
  339.  0275  c5 76 0c                          lds     si,dword ptr +0cH[bp]
  340.  0278  8a 0c                             mov     cl,[si]
  341.  027a  32 ed                             xor     ch,ch
  342.  027c  e3 39                             jcxz    L25
  343.  027e  46                                inc     si
  344.  027f  ac                                lodsb   
  345.  0280  fe c9                             dec     cl
  346.  0282  8b de                             mov     bx,si
  347.  0284  86 e1                             xchg    ah,cl
  348.  0286  f2 ae                             repne   scasb    
  349.  0288  75 2d                             jne     L25
  350.  028a  3a cc                             cmp     cl,ah
  351.  028c  72 29                             jb      L25
  352.  028e  8b d7                             mov     dx,di
  353.  0290  0a e4                             or      ah,ah
  354.  0292  74 18                             je      L24
  355.  0294  51                L23             push    cx
  356.  0295  8b d7                             mov     dx,di
  357.  0297  8a cc                             mov     cl,ah
  358.  0299  f3 a6                             repe    cmpsb    
  359.  029b  59                                pop     cx
  360.  029c  74 0e                             je      L24
  361.  029e  8b fa                             mov     di,dx
  362.  02a0  8b f3                             mov     si,bx
  363.  02a2  f2 ae                             repne   scasb    
  364.  02a4  75 11                             jne     L25
  365.  02a6  3a cc                             cmp     cl,ah
  366.  02a8  73 ea                             jae     L23
  367.  02aa  eb 0b                             jmp     L25
  368.  02ac  8b 7e 08          L24             mov     di,+8H[bp]
  369.  02af  2b d7                             sub     dx,di
  370.  02b1  8a c2                             mov     al,dl
  371.  02b3  fe c8                             dec     al
  372.  02b5  eb 02                             jmp     L26
  373.  02b7  32 c0             L25             xor     al,al
  374.  02b9  1f                L26             pop     ds
  375.  02ba  5d                                pop     bp
  376.  02bb  ca 0a 00                          retf    000aH
  377.  02be                    INSTR:
  378.  02be  55                STRINGS_009     push    bp
  379.  02bf  8b ec                             mov     bp,sp
  380.  02c1  1e                                push    ds
  381.  02c2  fc                                cld     
  382.  02c3  c5 76 0a                          lds     si,dword ptr +0aH[bp]
  383.  02c6  c4 7e 12                          les     di,dword ptr +12H[bp]
  384.  02c9  8b df                             mov     bx,di
  385.  02cb  47                                inc     di
  386.  02cc  ac                                lodsb   
  387.  02cd  8a d0                             mov     dl,al
  388.  02cf  8a 76 08                          mov     dh,+8H[bp]
  389.  02d2  0a f6                             or      dh,dh
  390.  02d4  74 02                             je      L27
  391.  02d6  fe ce                             dec     dh
  392.  02d8  32 ed             L27             xor     ch,ch
  393.  02da  3a f2                             cmp     dh,dl
  394.  02dc  73 24                             jae     L28
  395.  02de  8a ce                             mov     cl,dh
  396.  02e0  8a e1                             mov     ah,cl
  397.  02e2  f3 a4                             repe    movsb    
  398.  02e4  c5 76 0e                          lds     si,dword ptr +0eH[bp]
  399.  02e7  ac                                lodsb   
  400.  02e8  8a c8                             mov     cl,al
  401.  02ea  02 e1                             add     ah,cl
  402.  02ec  72 2f                             jb      L29
  403.  02ee  f3 a4                             repe    movsb    
  404.  02f0  c5 76 0a                          lds     si,dword ptr +0aH[bp]
  405.  02f3  8a ce                             mov     cl,dh
  406.  02f5  03 f1                             add     si,cx
  407.  02f7  46                                inc     si
  408.  02f8  2a d6                             sub     dl,dh
  409.  02fa  8a ca                             mov     cl,dl
  410.  02fc  02 e1                             add     ah,cl
  411.  02fe  73 23                             jae     L30
  412.  0300  eb 1b                             jmp     L29
  413.  0302  8a ca             L28             mov     cl,dl
  414.  0304  8a e1                             mov     ah,cl
  415.  0306  f3 a4                             repe    movsb    
  416.  0308  8a ce                             mov     cl,dh
  417.  030a  2a ca                             sub     cl,dl
  418.  030c  02 e1                             add     ah,cl
  419.  030e  8a 46 06                          mov     al,+6H[bp]
  420.  0311  f3 aa                             repe    stosb    
  421.  0313  c5 76 0e                          lds     si,dword ptr +0eH[bp]
  422.  0316  ac                                lodsb   
  423.  0317  8a c8                             mov     cl,al
  424.  0319  02 e1                             add     ah,cl
  425.  031b  73 06                             jae     L30
  426.  031d  2a cc             L29             sub     cl,ah
  427.  031f  fe c9                             dec     cl
  428.  0321  b4 ff                             mov     ah,0ffH
  429.  0323  f3 a4             L30             repe    movsb    
  430.  0325  26 88 27                          mov     es:[bx],ah
  431.  0328  1f                                pop     ds
  432.  0329  5d                                pop     bp
  433.  032a  ca 0c 00                          retf    000cH
  434.  032d                    JUSTIFY:
  435.  032d  55                STRINGS_00A     push    bp
  436.  032e  8b ec                             mov     bp,sp
  437.  0330  1e                                push    ds
  438.  0331  c5 76 08                          lds     si,dword ptr +8H[bp]
  439.  0334  1e                                push    ds
  440.  0335  56                                push    si
  441.  0336  9a 00 00 00 00                    call    far STRINGS_01C
  442.  033b  8a d0                             mov     dl,al
  443.  033d  8b fe                             mov     di,si
  444.  033f  8c db                             mov     bx,ds
  445.  0341  8e c3                             mov     es,bx
  446.  0343  26 8a 0d                          mov     cl,es:[di]
  447.  0346  47                                inc     di
  448.  0347  32 ed                             xor     ch,ch
  449.  0349  e3 6d                             jcxz    L33
  450.  034b  b0 20                             mov     al,20H
  451.  034d  f3 ae                             repe    scasb    
  452.  034f  4f                                dec     di
  453.  0350  8b f7                             mov     si,di
  454.  0352  03 f9                             add     di,cx
  455.  0354  fe c1                             inc     cl
  456.  0356  fd                                std     
  457.  0357  f3 ae                             repe    scasb    
  458.  0359  fe c1                             inc     cl
  459.  035b  fc                                cld     
  460.  035c  c4 7e 0c                          les     di,dword ptr +0cH[bp]
  461.  035f  80 ea 01                          sub     dl,01H
  462.  0362  76 57                             jbe     L34
  463.  0364  8a f2                             mov     dh,dl
  464.  0366  d0 ee                             shr     dh,1
  465.  0368  8a 46 06                          mov     al,+6H[bp]
  466.  036b  aa                                stosb   
  467.  036c  2a c1                             sub     al,cl
  468.  036e  76 65                             jbe     L36
  469.  0370  32 e4                             xor     ah,ah
  470.  0372  f6 f2                             div     dl
  471.  0374  8b d8                             mov     bx,ax
  472.  0376  32 e4                             xor     ah,ah
  473.  0378  b0 20                             mov     al,20H
  474.  037a  2e 88 0e c0 00                    mov     cs:L49,cl
  475.  037f  87 f7             L31             xchg    si,di
  476.  0381  1e                                push    ds
  477.  0382  06                                push    es
  478.  0383  1f                                pop     ds
  479.  0384  07                                pop     es
  480.  0385  f2 ae                             repne   scasb    
  481.  0387  75 50                             jne     L37
  482.  0389  f3 ae                             repe    scasb    
  483.  038b  4f                                dec     di
  484.  038c  fe c1                             inc     cl
  485.  038e  8a c1                             mov     al,cl
  486.  0390  2e 86 0e c0 00                    xchg    cl,cs:L49
  487.  0395  2a c8                             sub     cl,al
  488.  0397  2b f9                             sub     di,cx
  489.  0399  87 f7                             xchg    si,di
  490.  039b  1e                                push    ds
  491.  039c  06                                push    es
  492.  039d  1f                                pop     ds
  493.  039e  07                                pop     es
  494.  039f  f3 a4                             repe    movsb    
  495.  03a1  8a cb                             mov     cl,bl
  496.  03a3  02 e7                             add     ah,bh
  497.  03a5  3a e6                             cmp     ah,dh
  498.  03a7  7e 04                             jle     L32
  499.  03a9  fe c1                             inc     cl
  500.  03ab  2a e2                             sub     ah,dl
  501.  03ad  b0 20             L32             mov     al,20H
  502.  03af  f3 aa                             repe    stosb    
  503.  03b1  2e 8a 0e c0 00                    mov     cl,cs:L49
  504.  03b6  eb c7                             jmp     L31
  505.  03b8  c4 7e 0c          L33             les     di,dword ptr +0cH[bp]
  506.  03bb  8a e1             L34             mov     ah,cl
  507.  03bd  8a 46 06                          mov     al,+6H[bp]
  508.  03c0  aa                                stosb   
  509.  03c1  3a c4                             cmp     al,ah
  510.  03c3  77 02                             ja      L35
  511.  03c5  8a c8                             mov     cl,al
  512.  03c7  f3 a4             L35             repe    movsb    
  513.  03c9  2a c4                             sub     al,ah
  514.  03cb  72 1b                             jb      L39
  515.  03cd  8a c8                             mov     cl,al
  516.  03cf  b0 20                             mov     al,20H
  517.  03d1  f3 aa                             repe    stosb    
  518.  03d3  eb 13                             jmp     L39
  519.  03d5  02 cc             L36             add     cl,ah
  520.  03d7  eb 0d                             jmp     L38
  521.  03d9  2e 8a 0e c0 00    L37             mov     cl,cs:L49
  522.  03de  87 f7                             xchg    si,di
  523.  03e0  1e                                push    ds
  524.  03e1  06                                push    es
  525.  03e2  1f                                pop     ds
  526.  03e3  07                                pop     es
  527.  03e4  2b f1                             sub     si,cx
  528.  03e6  f3 a4             L38             repe    movsb    
  529.  03e8  1f                L39             pop     ds
  530.  03e9  5d                                pop     bp
  531.  03ea  ca 06 00                          retf    0006H
  532.  03ed  00 55 8b                          add     -75H[di],dl
  533.  03f0  ec                                in      al,dx
  534.  03f1  1e                                push    ds
  535.  03f2  c4 7e 08                          les     di,dword ptr +8H[bp]
  536.  03f5  26 8a 25                          mov     ah,es:[di]
  537.  03f8  0a e4                             or      ah,ah
  538.  03fa  74 50                             je      L43
  539.  03fc  c5 76 0c                          lds     si,dword ptr +0cH[bp]
  540.  03ff  8a 46 06                          mov     al,+6H[bp]
  541.  0402  3a e0                             cmp     ah,al
  542.  0404  72 06                             jb      L40
  543.  0406  0a c0                             or      al,al
  544.  0408  74 02                             je      L40
  545.  040a  8a e0                             mov     ah,al
  546.  040c  8a 0c             L40             mov     cl,[si]
  547.  040e  32 ed                             xor     ch,ch
  548.  0410  e3 3a                             jcxz    L43
  549.  0412  03 f1                             add     si,cx
  550.  0414  8a 04                             mov     al,[si]
  551.  0416  4e                                dec     si
  552.  0417  fe c9                             dec     cl
  553.  0419  8b de                             mov     bx,si
  554.  041b  86 e1                             xchg    ah,cl
  555.  041d  03 f9                             add     di,cx
  556.  041f  fd                                std     
  557.  0420  f2 ae                             repne   scasb    
  558.  0422  75 28                             jne     L43
  559.  0424  3a cc                             cmp     cl,ah
  560.  0426  72 24                             jb      L43
  561.  0428  0a e4                             or      ah,ah
  562.  042a  74 18                             je      L42
  563.  042c  51                L41             push    cx
  564.  042d  8b d7                             mov     dx,di
  565.  042f  8a cc                             mov     cl,ah
  566.  0431  f3 a6                             repe    cmpsb    
  567.  0433  59                                pop     cx
  568.  0434  74 0e                             je      L42
  569.  0436  8b fa                             mov     di,dx
  570.  0438  8b f3                             mov     si,bx
  571.  043a  f2 ae                             repne   scasb    
  572.  043c  75 0e                             jne     L43
  573.  043e  3a cc                             cmp     cl,ah
  574.  0440  73 ea                             jae     L41
  575.  0442  eb 08                             jmp     L43
  576.  0444  2a cc             L42             sub     cl,ah
  577.  0446  8a c1                             mov     al,cl
  578.  0448  fe c0                             inc     al
  579.  044a  eb 02                             jmp     L44
  580.  044c  32 c0             L43             xor     al,al
  581.  044e  1f                L44             pop     ds
  582.  044f  5d                                pop     bp
  583.  0450  ca 0a 00                          retf    000aH
  584.  0453                    LEFT:
  585.  0453  55                STRINGS_00C     push    bp
  586.  0454  8b ec                             mov     bp,sp
  587.  0456  8c db                             mov     bx,ds
  588.  0458  c4 7e 0e                          les     di,dword ptr +0eH[bp]
  589.  045b  c5 76 0a                          lds     si,dword ptr +0aH[bp]
  590.  045e  8a 56 08                          mov     dl,+8H[bp]
  591.  0461  8a 0c                             mov     cl,[si]
  592.  0463  8a f1                             mov     dh,cl
  593.  0465  3a f2                             cmp     dh,dl
  594.  0467  72 02                             jb      L45
  595.  0469  8a ca                             mov     cl,dl
  596.  046b  26 88 15          L45             mov     es:[di],dl
  597.  046e  46                                inc     si
  598.  046f  47                                inc     di
  599.  0470  32 ed                             xor     ch,ch
  600.  0472  fc                                cld     
  601.  0473  f3 a4                             repe    movsb    
  602.  0475  2a d6                             sub     dl,dh
  603.  0477  72 07                             jb      L46
  604.  0479  8a ca                             mov     cl,dl
  605.  047b  8a 46 06                          mov     al,+6H[bp]
  606.  047e  f3 aa                             repe    stosb    
  607.  0480  8e db             L46             mov     ds,bx
  608.  0482  5d                                pop     bp
  609.  0483  ca 08 00                          retf    0008H
  610.  0486                    LOWERCASE:
  611.  0486  55                STRINGS_00D     push    bp
  612.  0487  8b ec                             mov     bp,sp
  613.  0489  8c da                             mov     dx,ds
  614.  048b  c5 76 06                          lds     si,dword ptr +6H[bp]
  615.  048e  c4 7e 0a                          les     di,dword ptr +0aH[bp]
  616.  0491  fc                                cld     
  617.  0492  ac                                lodsb   
  618.  0493  aa                                stosb   
  619.  0494  8a c8                             mov     cl,al
  620.  0496  32 ed                             xor     ch,ch
  621.  0498  e3 13                             jcxz    L49
  622.  049a  bb 41 5a                          mov     bx,5a41H
  623.  049d  b4 20                             mov     ah,20H
  624.  049f  ac                L47             lodsb   
  625.  04a0  3a c3                             cmp     al,bl
  626.  04a2  72 06                             jb      L48
  627.  04a4  3a c7                             cmp     al,bh
  628.  04a6  77 02                             ja      L48
  629.  04a8  02 c4                             add     al,ah
  630.  04aa  aa                L48             stosb   
  631.  04ab  e2 f2                             loop    L47
  632.  04ad  8e da             L49             mov     ds,dx
  633.  04af  5d                                pop     bp
  634.  04b0  ca 04 00                          retf    0004H
  635.  04b3                    OVRSTR:
  636.  04b3  55                STRINGS_00E     push    bp
  637.  04b4  8b ec                             mov     bp,sp
  638.  04b6  1e                                push    ds
  639.  04b7  fc                                cld     
  640.  04b8  c4 7e 12                          les     di,dword ptr +12H[bp]
  641.  04bb  8b df                             mov     bx,di
  642.  04bd  47                                inc     di
  643.  04be  c5 76 0a                          lds     si,dword ptr +0aH[bp]
  644.  04c1  8a 56 08                          mov     dl,+8H[bp]
  645.  04c4  0a d2                             or      dl,dl
  646.  04c6  74 02                             je      L50
  647.  04c8  fe ca                             dec     dl
  648.  04ca  ac                L50             lodsb   
  649.  04cb  8a f0                             mov     dh,al
  650.  04cd  8a ca                             mov     cl,dl
  651.  04cf  3a d6                             cmp     dl,dh
  652.  04d1  72 02                             jb      L51
  653.  04d3  8a ce                             mov     cl,dh
  654.  04d5  32 ed             L51             xor     ch,ch
  655.  04d7  f3 a4                             repe    movsb    
  656.  04d9  3a f2                             cmp     dh,dl
  657.  04db  73 09                             jae     L52
  658.  04dd  8a ca                             mov     cl,dl
  659.  04df  2a ce                             sub     cl,dh
  660.  04e1  8a 46 06                          mov     al,+6H[bp]
  661.  04e4  f3 aa                             repe    stosb    
  662.  04e6  c5 76 0e          L52             lds     si,dword ptr +0eH[bp]
  663.  04e9  ac                                lodsb   
  664.  04ea  8a c8                             mov     cl,al
  665.  04ec  02 c2                             add     al,dl
  666.  04ee  73 04                             jae     L53
  667.  04f0  2a c8                             sub     cl,al
  668.  04f2  fe c9                             dec     cl
  669.  04f4  8a c1             L53             mov     al,cl
  670.  04f6  f3 a4                             repe    movsb    
  671.  04f8  02 d0                             add     dl,al
  672.  04fa  2a f2                             sub     dh,dl
  673.  04fc  76 0c                             jbe     L54
  674.  04fe  c5 76 0a                          lds     si,dword ptr +0aH[bp]
  675.  0501  8a ca                             mov     cl,dl
  676.  0503  03 f1                             add     si,cx
  677.  0505  46                                inc     si
  678.  0506  8a ce                             mov     cl,dh
  679.  0508  f3 a4                             repe    movsb    
  680.  050a  8b c7             L54             mov     ax,di
  681.  050c  2b c3                             sub     ax,bx
  682.  050e  48                                dec     ax
  683.  050f  8b fb                             mov     di,bx
  684.  0511  aa                                stosb   
  685.  0512  1f                                pop     ds
  686.  0513  5d                                pop     bp
  687.  0514  ca 0c 00                          retf    000cH
  688.  0517                    POS2WORD:
  689.  0517  55                STRINGS_00F     push    bp
  690.  0518  8b ec                             mov     bp,sp
  691.  051a  8a 56 06                          mov     dl,+6H[bp]
  692.  051d  0a d2                             or      dl,dl
  693.  051f  74 2a                             je      L57
  694.  0521  c4 7e 08                          les     di,dword ptr +8H[bp]
  695.  0524  26 8a 0d                          mov     cl,es:[di]
  696.  0527  32 ed                             xor     ch,ch
  697.  0529  e3 20                             jcxz    L57
  698.  052b  47                                inc     di
  699.  052c  32 f6                             xor     dh,dh
  700.  052e  03 d7                             add     dx,di
  701.  0530  32 db                             xor     bl,bl
  702.  0532  b0 20                             mov     al,20H
  703.  0534  fc                                cld     
  704.  0535  e3 14             L55             jcxz    L57
  705.  0537  f3 ae                             repe    scasb    
  706.  0539  74 10                             je      L57
  707.  053b  fe c3                             inc     bl
  708.  053d  f2 ae                             repne   scasb    
  709.  053f  75 06                             jne     L56
  710.  0541  3b d7                             cmp     dx,di
  711.  0543  73 f0                             jae     L55
  712.  0545  eb 06                             jmp     L58
  713.  0547  3b d7             L56             cmp     dx,di
  714.  0549  76 02                             jbe     L58
  715.  054b  32 db             L57             xor     bl,bl
  716.  054d  8a c3             L58             mov     al,bl
  717.  054f  5d                                pop     bp
  718.  0550  ca 06 00                          retf    0006H
  719.  0553                    REVERSE:
  720.  0553  55                STRINGS_010     push    bp
  721.  0554  8b ec                             mov     bp,sp
  722.  0556  8c da                             mov     dx,ds
  723.  0558  c5 76 06                          lds     si,dword ptr +6H[bp]
  724.  055b  c4 7e 0a                          les     di,dword ptr +0aH[bp]
  725.  055e  fc                                cld     
  726.  055f  ac                                lodsb   
  727.  0560  26 88 05                          mov     es:[di],al
  728.  0563  8a c8                             mov     cl,al
  729.  0565  32 ed                             xor     ch,ch
  730.  0567  e3 08                             jcxz    L60
  731.  0569  03 f9                             add     di,cx
  732.  056b  ac                L59             lodsb   
  733.  056c  fd                                std     
  734.  056d  aa                                stosb   
  735.  056e  fc                                cld     
  736.  056f  e2 fa                             loop    L59
  737.  0571  8e da             L60             mov     ds,dx
  738.  0573  5d                                pop     bp
  739.  0574  ca 04 00                          retf    0004H
  740.  0577                    RIGHT:
  741.  0577  55                STRINGS_011     push    bp
  742.  0578  8b ec                             mov     bp,sp
  743.  057a  1e                                push    ds
  744.  057b  c4 7e 0e                          les     di,dword ptr +0eH[bp]
  745.  057e  c5 76 0a                          lds     si,dword ptr +0aH[bp]
  746.  0581  fc                                cld     
  747.  0582  32 e4                             xor     ah,ah
  748.  0584  8a 46 08                          mov     al,+8H[bp]
  749.  0587  aa                                stosb   
  750.  0588  8b c8                             mov     cx,ax
  751.  058a  ac                                lodsb   
  752.  058b  8b d0                             mov     dx,ax
  753.  058d  3a ca                             cmp     cl,dl
  754.  058f  72 09                             jb      L61
  755.  0591  2a ca                             sub     cl,dl
  756.  0593  8a 46 06                          mov     al,+6H[bp]
  757.  0596  f3 aa                             repe    stosb    
  758.  0598  eb 08                             jmp     L62
  759.  059a  8b da             L61             mov     bx,dx
  760.  059c  2a d9                             sub     bl,cl
  761.  059e  03 f3                             add     si,bx
  762.  05a0  2a d3                             sub     dl,bl
  763.  05a2  8a ca             L62             mov     cl,dl
  764.  05a4  f3 a4                             repe    movsb    
  765.  05a6  1f                                pop     ds
  766.  05a7  5d                                pop     bp
  767.  05a8  ca 08 00                          retf    0008H
  768.  05ab                    SCANMEM:
  769.  05ab  55                STRINGS_012     push    bp
  770.  05ac  8b ec                             mov     bp,sp
  771.  05ae  1e                                push    ds
  772.  05af  fc                                cld     
  773.  05b0  c5 76 0c                          lds     si,dword ptr +0cH[bp]
  774.  05b3  ac                                lodsb   
  775.  05b4  0a c0                             or      al,al
  776.  05b6  74 4b                             je      L67
  777.  05b8  8a d0                             mov     dl,al
  778.  05ba  32 f6                             xor     dh,dh
  779.  05bc  4a                                dec     dx
  780.  05bd  8b 4e 06                          mov     cx,+6H[bp]
  781.  05c0  8b c1                             mov     ax,cx
  782.  05c2  2b ca                             sub     cx,dx
  783.  05c4  76 3d                             jbe     L67
  784.  05c6  c4 7e 08                          les     di,dword ptr +8H[bp]
  785.  05c9  8b df                             mov     bx,di
  786.  05cb  03 d8                             add     bx,ax
  787.  05cd  73 04                             jae     L63
  788.  05cf  2b cb                             sub     cx,bx
  789.  05d1  74 2d                             je      L66
  790.  05d3  51                L63             push    cx
  791.  05d4  ac                                lodsb   
  792.  05d5  f2 ae                             repne   scasb    
  793.  05d7  75 27                             jne     L66
  794.  05d9  8b d9                             mov     bx,cx
  795.  05db  8b ca                             mov     cx,dx
  796.  05dd  e3 18                             jcxz    L65
  797.  05df  56                L64             push    si
  798.  05e0  f3 a6                             repe    cmpsb    
  799.  05e2  59                                pop     cx
  800.  05e3  74 12                             je      L65
  801.  05e5  2b f1                             sub     si,cx
  802.  05e7  2b fe                             sub     di,si
  803.  05e9  8b f1                             mov     si,cx
  804.  05eb  8b cb                             mov     cx,bx
  805.  05ed  f2 ae                             repne   scasb    
  806.  05ef  75 0f                             jne     L66
  807.  05f1  8b d9                             mov     bx,cx
  808.  05f3  8b ca                             mov     cx,dx
  809.  05f5  eb e8                             jmp     L64
  810.  05f7  58                L65             pop     ax
  811.  05f8  2b c3                             sub     ax,bx
  812.  05fa  48                                dec     ax
  813.  05fb  1f                                pop     ds
  814.  05fc  5d                                pop     bp
  815.  05fd  ca 0a 00                          retf    000aH
  816.  0600  83 c4 02          L66             add     sp,0002H
  817.  0603  b8 ff ff          L67             mov     ax,0ffffH
  818.  0606  1f                                pop     ds
  819.  0607  5d                                pop     bp
  820.  0608  ca 0a 00                          retf    000aH
  821.  060b                    SPACE:
  822.  060b  55                STRINGS_013     push    bp
  823.  060c  8b ec                             mov     bp,sp
  824.  060e  1e                                push    ds
  825.  060f  c4 7e 08                          les     di,dword ptr +8H[bp]
  826.  0612  c5 76 0c                          lds     si,dword ptr +0cH[bp]
  827.  0615  fc                                cld     
  828.  0616  b8 20 00                          mov     ax,0020H
  829.  0619  26 8a 0d                          mov     cl,es:[di]
  830.  061c  32 ed                             xor     ch,ch
  831.  061e  e3 48                             jcxz    L74
  832.  0620  46                                inc     si
  833.  0621  47                                inc     di
  834.  0622  f3 ae                             repe    scasb    
  835.  0624  74 3f                             je      L73
  836.  0626  8b d7             L68             mov     dx,di
  837.  0628  f2 ae                             repne   scasb    
  838.  062a  75 01                             jne     L69
  839.  062c  4f                                dec     di
  840.  062d  47                L69             inc     di
  841.  062e  51                                push    cx
  842.  062f  8b cf                             mov     cx,di
  843.  0631  2b ca                             sub     cx,dx
  844.  0633  02 e1                             add     ah,cl
  845.  0635  72 28                             jb      L70
  846.  0637  8b fa                             mov     di,dx
  847.  0639  4f                                dec     di
  848.  063a  8c da                             mov     dx,ds
  849.  063c  8c c3                             mov     bx,es
  850.  063e  8e db                             mov     ds,bx
  851.  0640  8e c2                             mov     es,dx
  852.  0642  87 f7                             xchg    si,di
  853.  0644  f3 a4                             repe    movsb    
  854.  0646  8a 4e 06                          mov     cl,+6H[bp]
  855.  0649  02 e1                             add     ah,cl
  856.  064b  72 14                             jb      L71
  857.  064d  f3 aa                             repe    stosb    
  858.  064f  8e da                             mov     ds,dx
  859.  0651  8e c3                             mov     es,bx
  860.  0653  87 f7                             xchg    si,di
  861.  0655  47                                inc     di
  862.  0656  59                                pop     cx
  863.  0657  e3 09                             jcxz    L72
  864.  0659  f3 ae                             repe    scasb    
  865.  065b  75 c9                             jne     L68
  866.  065d  eb 03                             jmp     L72
  867.  065f  2a e1             L70             sub     ah,cl
  868.  0661  59                L71             pop     cx
  869.  0662  2a 66 06          L72             sub     ah,+6H[bp]
  870.  0665  c5 76 0c          L73             lds     si,dword ptr +0cH[bp]
  871.  0668  88 24             L74             mov     [si],ah
  872.  066a  1f                                pop     ds
  873.  066b  5d                                pop     bp
  874.  066c  ca 06 00                          retf    0006H
  875.  066f                    STRIP:
  876.  066f  55                STRINGS_014     push    bp
  877.  0670  8b ec                             mov     bp,sp
  878.  0672  8c da                             mov     dx,ds
  879.  0674  c4 7e 0a                          les     di,dword ptr +0aH[bp]
  880.  0677  8b df                             mov     bx,di
  881.  0679  8b f7                             mov     si,di
  882.  067b  43                                inc     bx
  883.  067c  26 8a 0d                          mov     cl,es:[di]
  884.  067f  32 ed                             xor     ch,ch
  885.  0681  e3 29                             jcxz    L76
  886.  0683  03 f1                             add     si,cx
  887.  0685  8a 46 06                          mov     al,+6H[bp]
  888.  0688  8a 66 08                          mov     ah,+8H[bp]
  889.  068b  80 cc 20                          or      ah,20H
  890.  068e  80 fc 74                          cmp     ah,74H
  891.  0691  74 10                             je      L75
  892.  0693  47                                inc     di
  893.  0694  fc                                cld     
  894.  0695  f3 ae                             repe    scasb    
  895.  0697  74 13                             je      L76
  896.  0699  4f                                dec     di
  897.  069a  8b df                             mov     bx,di
  898.  069c  fe c1                             inc     cl
  899.  069e  80 fc 6c                          cmp     ah,6cH
  900.  06a1  74 09                             je      L76
  901.  06a3  fd                L75             std     
  902.  06a4  8b fe                             mov     di,si
  903.  06a6  f3 ae                             repe    scasb    
  904.  06a8  74 02                             je      L76
  905.  06aa  fe c1                             inc     cl
  906.  06ac  8a c1             L76             mov     al,cl
  907.  06ae  8e 5e 0c                          mov     ds,+0cH[bp]
  908.  06b1  8b f3                             mov     si,bx
  909.  06b3  c4 7e 0e                          les     di,dword ptr +0eH[bp]
  910.  06b6  fc                                cld     
  911.  06b7  aa                                stosb   
  912.  06b8  f3 a4                             repe    movsb    
  913.  06ba  8e da                             mov     ds,dx
  914.  06bc  5d                                pop     bp
  915.  06bd  ca 08 00                          retf    0008H
  916.  06c0                    SUBSTR:
  917.  06c0  55                STRINGS_015     push    bp
  918.  06c1  8b ec                             mov     bp,sp
  919.  06c3  8c db                             mov     bx,ds
  920.  06c5  c4 7e 0e                          les     di,dword ptr +0eH[bp]
  921.  06c8  c5 76 0a                          lds     si,dword ptr +0aH[bp]
  922.  06cb  fc                                cld     
  923.  06cc  ac                                lodsb   
  924.  06cd  8a 56 08                          mov     dl,+8H[bp]
  925.  06d0  33 c9                             xor     cx,cx
  926.  06d2  3a c2                             cmp     al,dl
  927.  06d4  72 1d                             jb      L79
  928.  06d6  0a d2                             or      dl,dl
  929.  06d8  74 02                             je      L77
  930.  06da  fe ca                             dec     dl
  931.  06dc  32 f6             L77             xor     dh,dh
  932.  06de  03 f2                             add     si,dx
  933.  06e0  8a 4e 06                          mov     cl,+6H[bp]
  934.  06e3  02 d1                             add     dl,cl
  935.  06e5  73 06                             jae     L78
  936.  06e7  2a ca                             sub     cl,dl
  937.  06e9  fe c9                             dec     cl
  938.  06eb  b2 ff                             mov     dl,0ffH
  939.  06ed  2a d0             L78             sub     dl,al
  940.  06ef  72 02                             jb      L79
  941.  06f1  2a ca                             sub     cl,dl
  942.  06f3  8a c1             L79             mov     al,cl
  943.  06f5  aa                                stosb   
  944.  06f6  f3 a4                             repe    movsb    
  945.  06f8  8e db                             mov     ds,bx
  946.  06fa  5d                                pop     bp
  947.  06fb  ca 08 00                          retf    0008H
  948.  06fe                    SUBWORD:
  949.  06fe  55                STRINGS_016     push    bp
  950.  06ff  8b ec                             mov     bp,sp
  951.  0701  1e                                push    ds
  952.  0702  c4 7e 0a                          les     di,dword ptr +0aH[bp]
  953.  0705  8a 56 08                          mov     dl,+8H[bp]
  954.  0708  0a d2                             or      dl,dl
  955.  070a  74 02                             je      L80
  956.  070c  fe ca                             dec     dl
  957.  070e  fe c2             L80             inc     dl
  958.  0710  26 8a 0d                          mov     cl,es:[di]
  959.  0713  32 ed                             xor     ch,ch
  960.  0715  47                                inc     di
  961.  0716  b0 20                             mov     al,20H
  962.  0718  fc                                cld     
  963.  0719  e3 3f             L81             jcxz    L86
  964.  071b  f3 ae                             repe    scasb    
  965.  071d  74 3b                             je      L86
  966.  071f  fe ca                             dec     dl
  967.  0721  74 08                             je      L82
  968.  0723  e3 35                             jcxz    L86
  969.  0725  f2 ae                             repne   scasb    
  970.  0727  74 f0                             je      L81
  971.  0729  eb 2f                             jmp     L86
  972.  072b  4f                L82             dec     di
  973.  072c  fe c1                             inc     cl
  974.  072e  8b f7                             mov     si,di
  975.  0730  8a 56 06                          mov     dl,+6H[bp]
  976.  0733  0a d2                             or      dl,dl
  977.  0735  74 23                             je      L86
  978.  0737  f2 ae             L83             repne   scasb    
  979.  0739  8b df                             mov     bx,di
  980.  073b  75 0b                             jne     L85
  981.  073d  fe ca                             dec     dl
  982.  073f  74 06                             je      L84
  983.  0741  e3 04                             jcxz    L84
  984.  0743  f3 ae                             repe    scasb    
  985.  0745  75 f0                             jne     L83
  986.  0747  4b                L84             dec     bx
  987.  0748  2b de             L85             sub     bx,si
  988.  074a  8a cb                             mov     cl,bl
  989.  074c  8c c0                             mov     ax,es
  990.  074e  8e d8                             mov     ds,ax
  991.  0750  c4 7e 0e                          les     di,dword ptr +0eH[bp]
  992.  0753  8a c1                             mov     al,cl
  993.  0755  aa                                stosb   
  994.  0756  f3 a4                             repe    movsb    
  995.  0758  eb 06                             jmp     L87
  996.  075a  c5 7e 0e          L86             lds     di,dword ptr +0eH[bp]
  997.  075d  c6 05 00                          mov     byte ptr [di],00H
  998.  0760  1f                L87             pop     ds
  999.  0761  5d                                pop     bp
  1000.  0762  ca 08 00                          retf    0008H
  1001.  0765                    TRANSLATE:
  1002.  0765  55                STRINGS_017     push    bp
  1003.  0766  8b ec                             mov     bp,sp
  1004.  0768  1e                                push    ds
  1005.  0769  c5 76 0e                          lds     si,dword ptr +0eH[bp]
  1006.  076c  c4 7e 12                          les     di,dword ptr +12H[bp]
  1007.  076f  fc                                cld     
  1008.  0770  ac                                lodsb   
  1009.  0771  aa                                stosb   
  1010.  0772  8a c8                             mov     cl,al
  1011.  0774  32 ed                             xor     ch,ch
  1012.  0776  e3 36                             jcxz    L90
  1013.  0778  f3 a4                             repe    movsb    
  1014.  077a  c5 76 0a                          lds     si,dword ptr +0aH[bp]
  1015.  077d  32 ff                             xor     bh,bh
  1016.  077f  8a 1c                             mov     bl,[si]
  1017.  0781  43                                inc     bx
  1018.  0782  4b                L88             dec     bx
  1019.  0783  74 29                             je      L90
  1020.  0785  c5 76 0a                          lds     si,dword ptr +0aH[bp]
  1021.  0788  8a 00                             mov     al,[bx+si]
  1022.  078a  c5 76 06                          lds     si,dword ptr +6H[bp]
  1023.  078d  8a 20                             mov     ah,[bx+si]
  1024.  078f  c4 7e 0e                          les     di,dword ptr +0eH[bp]
  1025.  0792  c5 76 12                          lds     si,dword ptr +12H[bp]
  1026.  0795  47                                inc     di
  1027.  0796  8a 0c                             mov     cl,[si]
  1028.  0798  8a d1                             mov     dl,cl
  1029.  079a  f2 ae             L89             repne   scasb    
  1030.  079c  75 e4                             jne     L88
  1031.  079e  8a f1                             mov     dh,cl
  1032.  07a0  86 ca                             xchg    cl,dl
  1033.  07a2  2a ca                             sub     cl,dl
  1034.  07a4  03 f1                             add     si,cx
  1035.  07a6  88 24                             mov     [si],ah
  1036.  07a8  8a d6                             mov     dl,dh
  1037.  07aa  8a ce                             mov     cl,dh
  1038.  07ac  eb ec                             jmp     L89
  1039.  07ae  1f                L90             pop     ds
  1040.  07af  5d                                pop     bp
  1041.  07b0  ca 0c 00                          retf    000cH
  1042.  07b3                    UPPERCASE:
  1043.  07b3  55                STRINGS_018     push    bp
  1044.  07b4  8b ec                             mov     bp,sp
  1045.  07b6  8c db                             mov     bx,ds
  1046.  07b8  c5 76 06                          lds     si,dword ptr +6H[bp]
  1047.  07bb  c4 7e 0a                          les     di,dword ptr +0aH[bp]
  1048.  07be  fc                                cld     
  1049.  07bf  ac                                lodsb   
  1050.  07c0  aa                                stosb   
  1051.  07c1  8a c8                             mov     cl,al
  1052.  07c3  32 ed                             xor     ch,ch
  1053.  07c5  e3 13                             jcxz    L93
  1054.  07c7  ba 61 7a                          mov     dx,7a61H
  1055.  07ca  b4 20                             mov     ah,20H
  1056.  07cc  ac                L91             lodsb   
  1057.  07cd  3a c2                             cmp     al,dl
  1058.  07cf  72 06                             jb      L92
  1059.  07d1  3a c6                             cmp     al,dh
  1060.  07d3  77 02                             ja      L92
  1061.  07d5  2a c4                             sub     al,ah
  1062.  07d7  aa                L92             stosb   
  1063.  07d8  e2 f2                             loop    L91
  1064.  07da  8e db             L93             mov     ds,bx
  1065.  07dc  5d                                pop     bp
  1066.  07dd  ca 04 00                          retf    0004H
  1067.  07e0                    VERIFY:
  1068.  07e0  55                STRINGS_019     push    bp
  1069.  07e1  8b ec                             mov     bp,sp
  1070.  07e3  1e                                push    ds
  1071.  07e4  c4 7e 0a                          les     di,dword ptr +0aH[bp]
  1072.  07e7  c5 76 0e                          lds     si,dword ptr +0eH[bp]
  1073.  07ea  8a 46 08                          mov     al,+8H[bp]
  1074.  07ed  26 8a 1d                          mov     bl,es:[di]
  1075.  07f0  8a 3c                             mov     bh,[si]
  1076.  07f2  47                                inc     di
  1077.  07f3  46                                inc     si
  1078.  07f4  8a 4e 06                          mov     cl,+6H[bp]
  1079.  07f7  32 ed                             xor     ch,ch
  1080.  07f9  e3 02                             jcxz    L94
  1081.  07fb  fe c9                             dec     cl
  1082.  07fd  2a f9             L94             sub     bh,cl
  1083.  07ff  72 46                             jb      L99
  1084.  0801  0a db                             or      bl,bl
  1085.  0803  74 42                             je      L99
  1086.  0805  0a ff                             or      bh,bh
  1087.  0807  74 3e                             je      L99
  1088.  0809  03 f1                             add     si,cx
  1089.  080b  8a e7                             mov     ah,bh
  1090.  080d  8b d7                             mov     dx,di
  1091.  080f  fc                                cld     
  1092.  0810  0c 20                             or      al,20H
  1093.  0812  3c 6d                             cmp     al,6dH
  1094.  0814  74 10                             je      L96
  1095.  0816  ac                L95             lodsb   
  1096.  0817  8a cb                             mov     cl,bl
  1097.  0819  8b fa                             mov     di,dx
  1098.  081b  f2 ae                             repne   scasb    
  1099.  081d  75 17                             jne     L97
  1100.  081f  fe cf                             dec     bh
  1101.  0821  75 f3                             jne     L95
  1102.  0823  eb 22                             jmp     L99
  1103.  0825  90                                nop     
  1104.  0826  ac                L96             lodsb   
  1105.  0827  8a cb                             mov     cl,bl
  1106.  0829  8b fa                             mov     di,dx
  1107.  082b  f2 ae                             repne   scasb    
  1108.  082d  74 07                             je      L97
  1109.  082f  fe cf                             dec     bh
  1110.  0831  75 f3                             jne     L96
  1111.  0833  eb 12                             jmp     L99
  1112.  0835  90                                nop     
  1113.  0836  8a c4             L97             mov     al,ah
  1114.  0838  2a c7                             sub     al,bh
  1115.  083a  8a 66 06                          mov     ah,+6H[bp]
  1116.  083d  0a e4                             or      ah,ah
  1117.  083f  75 02                             jne     L98
  1118.  0841  fe c4                             inc     ah
  1119.  0843  02 c4             L98             add     al,ah
  1120.  0845  eb 02                             jmp     L100
  1121.  0847  32 c0             L99             xor     al,al
  1122.  0849  1f                L100            pop     ds
  1123.  084a  5d                                pop     bp
  1124.  084b  ca 0c 00                          retf    000cH
  1125.  084e                    WERD:
  1126.  084e  55                STRINGS_01A     push    bp
  1127.  084f  8b ec                             mov     bp,sp
  1128.  0851  8c db                             mov     bx,ds
  1129.  0853  8a 56 06                          mov     dl,+6H[bp]
  1130.  0856  0a d2                             or      dl,dl
  1131.  0858  74 38                             je      L104
  1132.  085a  c4 7e 08                          les     di,dword ptr +8H[bp]
  1133.  085d  26 8a 0d                          mov     cl,es:[di]
  1134.  0860  32 ed                             xor     ch,ch
  1135.  0862  47                                inc     di
  1136.  0863  b0 20                             mov     al,20H
  1137.  0865  fc                                cld     
  1138.  0866  e3 2a             L101            jcxz    L104
  1139.  0868  f3 ae                             repe    scasb    
  1140.  086a  74 26                             je      L104
  1141.  086c  fe ca                             dec     dl
  1142.  086e  74 06                             je      L102
  1143.  0870  f2 ae                             repne   scasb    
  1144.  0872  74 f2                             je      L101
  1145.  0874  eb 1c                             jmp     L104
  1146.  0876  4f                L102            dec     di
  1147.  0877  fe c1                             inc     cl
  1148.  0879  8b f7                             mov     si,di
  1149.  087b  f2 ae                             repne   scasb    
  1150.  087d  75 01                             jne     L103
  1151.  087f  4f                                dec     di
  1152.  0880  8b cf             L103            mov     cx,di
  1153.  0882  2b ce                             sub     cx,si
  1154.  0884  8c c0                             mov     ax,es
  1155.  0886  8e d8                             mov     ds,ax
  1156.  0888  c4 7e 0c                          les     di,dword ptr +0cH[bp]
  1157.  088b  8a c1                             mov     al,cl
  1158.  088d  aa                                stosb   
  1159.  088e  f3 a4                             repe    movsb    
  1160.  0890  eb 06                             jmp     L105
  1161.  0892  c5 7e 0c          L104            lds     di,dword ptr +0cH[bp]
  1162.  0895  c6 05 00                          mov     byte ptr [di],00H
  1163.  0898  8e db             L105            mov     ds,bx
  1164.  089a  5d                                pop     bp
  1165.  089b  ca 06 00                          retf    0006H
  1166.  089e                    WORD2POS:
  1167.  089e  55                STRINGS_01B     push    bp
  1168.  089f  8b ec                             mov     bp,sp
  1169.  08a1  8a 56 06                          mov     dl,+6H[bp]
  1170.  08a4  0a d2                             or      dl,dl
  1171.  08a6  74 24                             je      L108
  1172.  08a8  c4 7e 08                          les     di,dword ptr +8H[bp]
  1173.  08ab  26 8a 0d                          mov     cl,es:[di]
  1174.  08ae  32 ed                             xor     ch,ch
  1175.  08b0  47                                inc     di
  1176.  08b1  8b df                             mov     bx,di
  1177.  08b3  b0 20                             mov     al,20H
  1178.  08b5  fc                                cld     
  1179.  08b6  e3 14             L106            jcxz    L108
  1180.  08b8  f3 ae                             repe    scasb    
  1181.  08ba  74 10                             je      L108
  1182.  08bc  fe ca                             dec     dl
  1183.  08be  74 06                             je      L107
  1184.  08c0  e3 0a                             jcxz    L108
  1185.  08c2  f2 ae                             repne   scasb    
  1186.  08c4  eb f0                             jmp     L106
  1187.  08c6  2b fb             L107            sub     di,bx
  1188.  08c8  8b c7                             mov     ax,di
  1189.  08ca  eb 02                             jmp     L109
  1190.  08cc  32 c0             L108            xor     al,al
  1191.  08ce  5d                L109            pop     bp
  1192.  08cf  ca 06 00                          retf    0006H
  1193.  08d2                    WORDS:
  1194.  08d2  55                STRINGS_01C     push    bp
  1195.  08d3  8b ec                             mov     bp,sp
  1196.  08d5  c4 7e 06                          les     di,dword ptr +6H[bp]
  1197.  08d8  26 8a 0d                          mov     cl,es:[di]
  1198.  08db  32 ed                             xor     ch,ch
  1199.  08dd  32 d2                             xor     dl,dl
  1200.  08df  47                                inc     di
  1201.  08e0  b0 20                             mov     al,20H
  1202.  08e2  fc                                cld     
  1203.  08e3  e3 0c             L110            jcxz    L111
  1204.  08e5  f3 ae                             repe    scasb    
  1205.  08e7  74 08                             je      L111
  1206.  08e9  fe c2                             inc     dl
  1207.  08eb  e3 04                             jcxz    L111
  1208.  08ed  f2 ae                             repne   scasb    
  1209.  08ef  74 f2                             je      L110
  1210.  08f1  8a c2             L111            mov     al,dl
  1211.  08f3  5d                                pop     bp
  1212.  08f4  ca 04 00                          retf    0004H
  1213.  08f7                    X2D:
  1214.  08f7  55                STRINGS_01D     push    bp
  1215.  08f8  8b ec                             mov     bp,sp
  1216.  08fa  8c df                             mov     di,ds
  1217.  08fc  fc                                cld     
  1218.  08fd  c5 76 06                          lds     si,dword ptr +6H[bp]
  1219.  0900  ac                                lodsb   
  1220.  0901  3c 04                             cmp     al,04H
  1221.  0903  72 02                             jb      L112
  1222.  0905  b0 04                             mov     al,04H
  1223.  0907  8a c8             L112            mov     cl,al
  1224.  0909  32 ed                             xor     ch,ch
  1225.  090b  33 d2                             xor     dx,dx
  1226.  090d  e3 14                             jcxz    L114
  1227.  090f  bb 34 00                          mov     bx,offset L115
  1228.  0912  ac                L113            lodsb   
  1229.  0913  2c 30                             sub     al,30H
  1230.  0915  2e d7                             xlat    
  1231.  0917  d1 e2                             shl     dx,1
  1232.  0919  d1 e2                             shl     dx,1
  1233.  091b  d1 e2                             shl     dx,1
  1234.  091d  d1 e2                             shl     dx,1
  1235.  091f  02 d0                             add     dl,al
  1236.  0921  e2 ef                             loop    L113
  1237.  0923  8b c2             L114            mov     ax,dx
  1238.  0925  8e df                             mov     ds,di
  1239.  0927  5d                                pop     bp
  1240.  0928  ca 04 00                          retf    0004H
  1241.  092b  00 01                             add     [bx+di],al
  1242.  092d  02 03                             add     al,[bp+di]
  1243.  092f  04 05                             add     al,05H
  1244.  0931  06                                push    es
  1245.  0932  07                                pop     es
  1246.  0933  08 09                             or      [bx+di],cl
  1247.  0935  00 00                             add     [bx+si],al
  1248.  0937  00 00                             add     [bx+si],al
  1249.  0939  00 00                             add     [bx+si],al
  1250.  093b  00 0a                             add     [bp+si],cl
  1251.  093d  0b 0c                             or      cx,[si]
  1252.  093f  0d 0e 0f                          or      ax,0f0eH
  1253.  0942  00 00                             add     [bx+si],al
  1254.  0944  00 00                             add     [bx+si],al
  1255.  0946  00 00                             add     [bx+si],al
  1256.  0948  00 00                             add     [bx+si],al
  1257.  094a  00 00                             add     [bx+si],al
  1258.  094c  00 00                             add     [bx+si],al
  1259.  094e  00 00                             add     [bx+si],al
  1260.  0950  00 00                             add     [bx+si],al
  1261.  0952  00 00                             add     [bx+si],al
  1262.  0954  00 00                             add     [bx+si],al
  1263.  0956  00 00                             add     [bx+si],al
  1264.  0958  00 00                             add     [bx+si],al
  1265.  095a  00 00                             add     [bx+si],al
  1266.  095c  0a 0b                             or      cl,[bp+di]
  1267.  095e  0c 0d                             or      al,0dH
  1268.  0960  0e                                push    cs
  1269.  0961  0f 55                             ?????
  1270.  0963  8b ec                             mov     bp,sp
  1271.  0965  fc                                cld     
  1272.  0966  c4 7e 0a                          les     di,dword ptr +0aH[bp]
  1273.  0969  8a 46 08                          mov     al,+8H[bp]
  1274.  096c  8a 66 06                          mov     ah,+6H[bp]
  1275.  096f  8a cc                             mov     cl,ah
  1276.  0971  32 ed                             xor     ch,ch
  1277.  0973  2a c8                             sub     cl,al
  1278.  0975  73 12                             jae     L117
  1279.  0977  fd                                std     
  1280.  0978  8a c4                             mov     al,ah
  1281.  097a  f6 d9                             neg     cl
  1282.  097c  fe c1                             inc     cl
  1283.  097e  75 02                             jne     L116
  1284.  0980  b1 ff                             mov     cl,0ffH
  1285.  0982  26 88 0d          L116            mov     es:[di],cl
  1286.  0985  03 f9                             add     di,cx
  1287.  0987  eb 0a                             jmp     L119
  1288.  0989  fe c1             L117            inc     cl
  1289.  098b  75 02                             jne     L118
  1290.  098d  b1 ff                             mov     cl,0ffH
  1291.  098f  26 88 0d          L118            mov     es:[di],cl
  1292.  0992  47                                inc     di
  1293.  0993  aa                L119            stosb   
  1294.  0994  fe c0                             inc     al
  1295.  0996  e2 fb                             loop    L119
  1296.  0998  5d                                pop     bp
  1297.  0999  ca 04 00                          retf    0004H
  1298.  
  1299. No disassembly errors
  1300.  
  1301. ------------------------------------------------------------
  1302.  
  1303. Segment: _DATA  WORD   0000003d bytes  
  1304.  0000  3a b7 b8 b6 ad b2 ab b7 STRINGS_DATA    - :.......
  1305.  0008  92 b8 b4 b9 84 a7 b3 b4                 - ........
  1306.  0010  bd b6 84 95 9d 9c 9d 84                 - ........
  1307.  0018  a6 bd 84 b6 ad a7 ac 84                 - ........
  1308.  0020  bb ad b2 af a9 b0 92 84                 - ........
  1309.  0028  a5 b0 b0 84 b6 ad ab ac                 - ........
  1310.  0030  b8 b7 84 b6 a9 b7 a9 b6                 - ........
  1311.  0038  ba a9 a8 00 00                          - .....
  1312.  
  1313. No disassembly errors
  1314.  
  1315. ------------------------------------------------------------
  1316.