Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.lang.asm.x86    |    Ahh, the lost art of x86 assembly    |    4,675 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 2,807 of 4,675    |
|    wolfgang kern to All    |
|    Re: BASE64 again    |
|    13 Jul 17 13:04:38    |
      From: nowhere@never.at              Hi Kerr, here is my current direct 4:3 SMC skelleton:              it can use dh,dl,dx,ah (78,62,7862,A1) for either sub or xor       three-byte modifiers.              100 pop cx       101 push cx       102 push cx ;ax=0       103 push byte 3e ;cx=003e 62 byte for now :(       105 push 7862 ;dx=7862       108 pop ax       109 push ax       10a xor ax,7962       10d push ax ;bx=0100       10e push cx dup2 ;sp,bp=0       110 xor al,7e ;       112 push ax ;si=017e       113 push byte 042 ;di=0042       115 popa ;       116 push BX ;for ret       117 push DI ;for ret       118 sub ax,5e73 ;->a18d xor 6666 = EB C7 (AH wont be altered)       11b xor [bx+58],ax ;back-branch to 0121       11e push bx ;later popped as di       11f jnc 0142 ;=jmp always after xor (73 21)              121 lodsb ;AC=24-78       122 cmp al,21 ;       124 jc 121 ;skip 72 FB ACFB=255d-7862       126 lodsb ;AC       127 cmp al,41 ;twice to avoid dec SI inbetween       129 jnz 126 ;skip 75 FB AAFB=235d-7862       12b stosb ;AA       12c loop 126 ;E2 F8 F8E2=7144-7862       12e sub [bp+..],dx ;1.       131 sub [bb+..],dx ;2.       134 sub [bp+..],dx ;3.       137 sub [bp+..],dx ;4.       13a sub [bp+..],dx ;5.       13b pop di ;=0100       13e jnz 015a ;=jmp always 75 1a 1A=62 xor 78       140 0d 0a              142 36 36       144 xor al,2b ;8d xor 2b =A6 ,xor 65 =C3       146 sub [bx+21],dh ;       149 sub [bx+25],dx ;       14c sub [bx+2a],dx ;       14f sub [bx+2c],dx ;       152 xor [bx+3f],dh ;       155 xor [bx+7e],al ;create RET       158 6666 jmp 121 ;becomes EB C7              15a 6666 ;slide nops       15c sub [bp+..],dl ;6.       15f sub [bp+..],dl ;7.       162 sub [bp+..],dl ;8.       165 sub [bp+..],dx ;9.       168 sub [bp+..],dx ;10.       16b sub [bp+..],dx ;11.       17e sub [bb+..],dh ;12.       171 sub [bp+..],dx ;13.       174 sub [bp+..],dx ;14.       177 sub [bp+..],dx ;15.       17a xor [bp+..],ah ;16. ie: if required, 80 = 21 xor A1       17d 656565 ;the return goes here       180 4141 ;41 is my first but I it twice       182 0d0a ;       184 4141415555 .. ;the raw string continues here followed by crlf       1c3 74... ;B64-string 29 byte       1e0 *** ;Total= 224              If I use your 44 byte decoder here it may show a total of 206 or even       less. Let's see if this is possible ...       __       wolfgang              --- SoupGate-Win32 v1.05        * Origin: you cannot sedate... all the things you hate (1:229/2)    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca