stdarg.sbk (4766B)
1 .486 2 .model flat 3 extrn __fltused:near 4 extrn __ftol:near 5 _DATA segment 6 public _x 7 align 4 8 _x label byte 9 dd 1 10 dd 2 11 dd 3 12 dd 4 13 public _main 14 _DATA ends 15 _TEXT segment 16 _main: 17 push ebx 18 push esi 19 push edi 20 push ebp 21 mov ebp,esp 22 sub esp,8 23 lea edi,(L2) 24 push edi 25 call _print 26 add esp,4 27 lea edi,(L4) 28 push edi 29 lea edi,(L3) 30 push edi 31 call _print 32 add esp,8 33 push 10 34 push 3 35 lea edi,(L5) 36 push edi 37 call _print 38 add esp,12 39 push 10 40 push 4 41 lea edi,(L8) 42 push edi 43 lea edi,(L7) 44 push edi 45 lea edi,(L6) 46 push edi 47 call _print 48 add esp,20 49 push 10 50 fld qword ptr (L10) 51 sub esp,8 52 fstp qword ptr [esp] 53 lea edi,(L8) 54 push edi 55 lea edi,(L7) 56 push edi 57 lea edi,(L9) 58 push edi 59 call _print 60 add esp,24 61 lea edi,(_x) 62 mov dword ptr (-8)[ebp],edi 63 mov esi,edi 64 mov dword ptr (-4)[ebp],esi 65 sub esp,16 66 mov edi,esp 67 mov ecx,16 68 rep movsb 69 mov edi,dword ptr (-8)[ebp] 70 mov esi,edi 71 sub esp,16 72 mov edi,esp 73 mov ecx,16 74 rep movsb 75 mov edi,dword ptr (-8)[ebp] 76 mov esi,edi 77 sub esp,16 78 mov edi,esp 79 mov ecx,16 80 rep movsb 81 mov edi,dword ptr (-8)[ebp] 82 mov esi,edi 83 sub esp,16 84 mov edi,esp 85 mov ecx,16 86 rep movsb 87 mov edi,dword ptr (-8)[ebp] 88 mov esi,edi 89 sub esp,16 90 mov edi,esp 91 mov ecx,16 92 rep movsb 93 mov edi,dword ptr (-8)[ebp] 94 mov esi,edi 95 sub esp,16 96 mov edi,esp 97 mov ecx,16 98 rep movsb 99 lea edi,(L11) 100 push edi 101 call _print 102 add esp,100 103 mov eax,0 104 L1: 105 mov esp,ebp 106 pop ebp 107 pop edi 108 pop esi 109 pop ebx 110 ret 111 public _print 112 _print: 113 push ebx 114 push esi 115 push edi 116 push ebp 117 mov ebp,esp 118 sub esp,28 119 lea edi,(24)[ebp] 120 mov dword ptr (-4)[ebp],edi 121 jmp L17 122 L14: 123 mov edi,dword ptr (20)[ebp] 124 movsx edi,byte ptr [edi] 125 cmp edi,37 126 jne L18 127 mov edi,dword ptr (20)[ebp] 128 lea edi,(1)[edi] 129 mov dword ptr (20)[ebp],edi 130 movsx edi,byte ptr [edi] 131 mov dword ptr (-8)[ebp],edi 132 mov edi,dword ptr (-8)[ebp] 133 cmp edi,115 134 je L34 135 cmp edi,115 136 jg L39 137 L38: 138 mov edi,dword ptr (-8)[ebp] 139 cmp edi,98 140 jl L20 141 cmp edi,102 142 jg L20 143 jmp dword ptr (L40-392)[edi*4] 144 _TEXT ends 145 _TEXT segment 146 align 4 147 L40 label byte 148 dd L23 149 dd L28 150 dd L30 151 dd L20 152 dd L36 153 _TEXT ends 154 _TEXT segment 155 L39: 156 cmp dword ptr (-8)[ebp],119 157 je L32 158 jmp L20 159 L23: 160 mov edi,dword ptr (-4)[ebp] 161 lea edi,(16)[edi] 162 mov dword ptr (-28)[ebp],edi 163 mov dword ptr (-4)[ebp],edi 164 lea edi,(-24)[ebp] 165 mov esi,dword ptr (-28)[ebp] 166 lea esi,(-16)[esi] 167 mov ecx,16 168 rep movsb 169 mov edi,dword ptr (-12)[ebp] 170 push edi 171 mov edi,dword ptr (-16)[ebp] 172 push edi 173 mov edi,dword ptr (-20)[ebp] 174 push edi 175 mov edi,dword ptr (-24)[ebp] 176 push edi 177 lea edi,(L24) 178 push edi 179 call _printf 180 add esp,20 181 jmp L19 182 L28: 183 mov edi,dword ptr (-4)[ebp] 184 lea edi,(4)[edi] 185 mov dword ptr (-4)[ebp],edi 186 movsx edi,byte ptr (-4)[edi] 187 push edi 188 lea edi,(L29) 189 push edi 190 call _printf 191 add esp,8 192 jmp L19 193 L30: 194 mov edi,dword ptr (-4)[ebp] 195 lea edi,(4)[edi] 196 mov dword ptr (-4)[ebp],edi 197 mov edi,dword ptr (-4)[edi] 198 push edi 199 lea edi,(L31) 200 push edi 201 call _printf 202 add esp,8 203 jmp L19 204 L32: 205 mov edi,dword ptr (-4)[ebp] 206 lea edi,(4)[edi] 207 mov dword ptr (-4)[ebp],edi 208 movsx edi,word ptr (-4)[edi] 209 push edi 210 lea edi,(L33) 211 push edi 212 call _printf 213 add esp,8 214 jmp L19 215 L34: 216 mov edi,dword ptr (-4)[ebp] 217 lea edi,(4)[edi] 218 mov dword ptr (-4)[ebp],edi 219 mov edi,dword ptr (-4)[edi] 220 push edi 221 lea edi,(L35) 222 push edi 223 call _printf 224 add esp,8 225 jmp L19 226 L36: 227 mov edi,dword ptr (-4)[ebp] 228 lea edi,(8)[edi] 229 mov dword ptr (-4)[ebp],edi 230 fld qword ptr (-8)[edi] 231 sub esp,8 232 fstp qword ptr [esp] 233 lea edi,(L37) 234 push edi 235 call _printf 236 add esp,12 237 jmp L19 238 L20: 239 mov edi,dword ptr (20)[ebp] 240 movsx edi,byte ptr [edi] 241 push edi 242 lea edi,(L29) 243 push edi 244 call _printf 245 add esp,8 246 jmp L19 247 L18: 248 mov edi,dword ptr (20)[ebp] 249 movsx edi,byte ptr [edi] 250 push edi 251 lea edi,(L29) 252 push edi 253 call _printf 254 add esp,8 255 L19: 256 L15: 257 inc dword ptr (20)[ebp] 258 L17: 259 mov edi,dword ptr (20)[ebp] 260 movsx edi,byte ptr [edi] 261 cmp edi,0 262 jne L14 263 mov dword ptr (-4)[ebp],0 264 mov eax,0 265 L12: 266 mov esp,ebp 267 pop ebp 268 pop edi 269 pop esi 270 pop ebx 271 ret 272 _TEXT ends 273 extrn _printf:near 274 _TEXT segment 275 _TEXT ends 276 _TEXT segment 277 align 1 278 L37 label byte 279 db 37 280 db 102 281 db 0 282 align 1 283 L35 label byte 284 db 37 285 db 115 286 db 0 287 align 1 288 L33 label byte 289 db 37 290 db 120 291 db 0 292 align 1 293 L31 label byte 294 db 37 295 db 100 296 db 0 297 align 1 298 L29 label byte 299 db 37 300 db 99 301 db 0 302 align 1 303 L24 label byte 304 db 123 305 db 37 306 db 100 307 db 32 308 db 37 309 db 100 310 db 32 311 db 37 312 db 100 313 db 32 314 db 37 315 db 100 316 db 125 317 db 0 318 align 1 319 L11 label byte 320 db 37 321 db 98 322 db 32 323 db 37 324 db 98 325 db 32 326 db 37 327 db 98 328 db 32 329 db 37 330 db 98 331 db 32 332 db 37 333 db 98 334 db 32 335 db 37 336 db 98 337 db 10 338 db 0 339 align 4 340 L10 label byte 341 dd 00H 342 dd 040140000H 343 align 1 344 L9 label byte 345 db 37 346 db 115 347 db 37 348 db 115 349 db 32 350 db 37 351 db 102 352 db 37 353 db 99 354 db 0 355 align 1 356 L8 label byte 357 db 115 358 db 116 359 db 0 360 align 1 361 L7 label byte 362 db 116 363 db 101 364 db 0 365 align 1 366 L6 label byte 367 db 37 368 db 115 369 db 37 370 db 115 371 db 32 372 db 37 373 db 119 374 db 37 375 db 99 376 db 0 377 align 1 378 L5 label byte 379 db 116 380 db 101 381 db 115 382 db 116 383 db 32 384 db 37 385 db 100 386 db 37 387 db 99 388 db 0 389 align 1 390 L4 label byte 391 db 50 392 db 0 393 align 1 394 L3 label byte 395 db 116 396 db 101 397 db 115 398 db 116 399 db 32 400 db 37 401 db 115 402 db 10 403 db 0 404 align 1 405 L2 label byte 406 db 116 407 db 101 408 db 115 409 db 116 410 db 32 411 db 49 412 db 10 413 db 0 414 _TEXT ends 415 end