| [672] | 1 | title   631asmc.c | 
|---|
|  | 2 | .386 | 
|---|
|  | 3 | .387 | 
|---|
|  | 4 | CODE32  segment para use32 public 'CODE' | 
|---|
|  | 5 | CODE32  ends | 
|---|
|  | 6 | DATA32  segment para use32 public 'DATA' | 
|---|
|  | 7 | DATA32  ends | 
|---|
|  | 8 | CONST32_RO      segment para use32 public 'CONST' | 
|---|
|  | 9 | CONST32_RO      ends | 
|---|
|  | 10 | BSS32   segment para use32 public 'BSS' | 
|---|
|  | 11 | BSS32   ends | 
|---|
|  | 12 | DGROUP  group BSS32, DATA32 | 
|---|
|  | 13 | assume  cs:FLAT, ds:FLAT, ss:FLAT, es:FLAT | 
|---|
|  | 14 | CODE32  segment | 
|---|
|  | 15 |  | 
|---|
| [675] | 16 | ; 107 struct ret16bytes __stdcall asmfoostd16(void) | 
|---|
| [672] | 17 | align 010h | 
|---|
|  | 18 |  | 
|---|
| [675] | 19 | public _asmfoostd16@0 | 
|---|
|  | 20 | _asmfoostd16@0  proc | 
|---|
| [672] | 21 | push    ebp | 
|---|
|  | 22 | mov     ebp,esp | 
|---|
|  | 23 |  | 
|---|
| [675] | 24 | ; 110     return ret; | 
|---|
|  | 25 | mov     eax,[ebp+08h];  @CBE10 | 
|---|
|  | 26 |  | 
|---|
|  | 27 | ; 109     struct ret16bytes ret = {1,2,3,4}; | 
|---|
|  | 28 | mov     dword ptr [ebp-010h],01h;       ret | 
|---|
|  | 29 | mov     dword ptr [ebp-0ch],02h;        ret | 
|---|
|  | 30 |  | 
|---|
|  | 31 | ; 110     return ret; | 
|---|
|  | 32 | mov     ecx,[ebp-010h]; ret | 
|---|
|  | 33 | mov     edx,[ebp-0ch];  ret | 
|---|
|  | 34 | mov     [eax],ecx | 
|---|
|  | 35 |  | 
|---|
|  | 36 | ; 109     struct ret16bytes ret = {1,2,3,4}; | 
|---|
|  | 37 | mov     dword ptr [ebp-08h],03h;        ret | 
|---|
|  | 38 |  | 
|---|
|  | 39 | ; 110     return ret; | 
|---|
|  | 40 | mov     [eax+04h],edx | 
|---|
|  | 41 | mov     edx,[ebp-08h];  ret | 
|---|
|  | 42 |  | 
|---|
|  | 43 | ; 109     struct ret16bytes ret = {1,2,3,4}; | 
|---|
|  | 44 | mov     dword ptr [ebp-04h],04h;        ret | 
|---|
|  | 45 |  | 
|---|
|  | 46 | ; 110     return ret; | 
|---|
|  | 47 | mov     ecx,[ebp-04h];  ret | 
|---|
|  | 48 | mov     [eax+08h],edx | 
|---|
|  | 49 | mov     [eax+0ch],ecx | 
|---|
|  | 50 | pop     ebp | 
|---|
|  | 51 | ret     04h | 
|---|
|  | 52 | _asmfoostd16@0  endp | 
|---|
|  | 53 |  | 
|---|
|  | 54 | ; 101 struct ret12bytes __stdcall asmfoostd12(void) | 
|---|
|  | 55 | align 010h | 
|---|
|  | 56 |  | 
|---|
|  | 57 | public _asmfoostd12@0 | 
|---|
|  | 58 | _asmfoostd12@0  proc | 
|---|
|  | 59 |  | 
|---|
|  | 60 | ; 104     return ret; | 
|---|
|  | 61 | mov     eax,[esp+04h];  @CBE9 | 
|---|
|  | 62 |  | 
|---|
|  | 63 | ; 103     struct ret12bytes ret = {1,2,3}; | 
|---|
|  | 64 | mov     dword ptr [esp-0ch],01h;        ret | 
|---|
|  | 65 | mov     dword ptr [esp-08h],02h;        ret | 
|---|
|  | 66 |  | 
|---|
|  | 67 | ; 104     return ret; | 
|---|
|  | 68 | mov     edx,[esp-0ch];  ret | 
|---|
|  | 69 | mov     ecx,[esp-08h];  ret | 
|---|
|  | 70 | mov     [eax],edx | 
|---|
|  | 71 |  | 
|---|
|  | 72 | ; 103     struct ret12bytes ret = {1,2,3}; | 
|---|
|  | 73 | mov     dword ptr [esp-04h],03h;        ret | 
|---|
|  | 74 |  | 
|---|
|  | 75 | ; 104     return ret; | 
|---|
|  | 76 | mov     [eax+04h],ecx | 
|---|
|  | 77 | mov     ecx,[esp-04h];  ret | 
|---|
|  | 78 | mov     [eax+08h],ecx | 
|---|
|  | 79 | ret     04h | 
|---|
|  | 80 | _asmfoostd12@0  endp | 
|---|
|  | 81 |  | 
|---|
|  | 82 | ; 95 struct ret8bytes __stdcall  asmfoostd8(void) | 
|---|
|  | 83 | align 010h | 
|---|
|  | 84 |  | 
|---|
|  | 85 | public _asmfoostd8@0 | 
|---|
|  | 86 | _asmfoostd8@0   proc | 
|---|
|  | 87 |  | 
|---|
|  | 88 | ; 97     struct ret8bytes ret = {1,2}; | 
|---|
|  | 89 | mov     dword ptr [esp-08h],01h;        ret | 
|---|
|  | 90 | mov     dword ptr [esp-04h],02h;        ret | 
|---|
|  | 91 |  | 
|---|
|  | 92 | ; 98     return ret; | 
|---|
|  | 93 | mov     eax,[esp-08h];  ret | 
|---|
|  | 94 | mov     edx,[esp-04h];  ret | 
|---|
|  | 95 | ret | 
|---|
|  | 96 | _asmfoostd8@0   endp | 
|---|
|  | 97 |  | 
|---|
|  | 98 | ; 89 struct ret4bytes __stdcall  asmfoostd4(void) | 
|---|
|  | 99 | align 010h | 
|---|
|  | 100 |  | 
|---|
|  | 101 | public _asmfoostd4@0 | 
|---|
|  | 102 | _asmfoostd4@0   proc | 
|---|
|  | 103 |  | 
|---|
|  | 104 | ; 91     struct ret4bytes ret = {1}; | 
|---|
|  | 105 | mov     dword ptr [esp-04h],01h;        ret | 
|---|
|  | 106 |  | 
|---|
|  | 107 | ; 92     return ret; | 
|---|
|  | 108 | mov     eax,[esp-04h];  ret | 
|---|
|  | 109 | ret | 
|---|
|  | 110 | _asmfoostd4@0   endp | 
|---|
|  | 111 |  | 
|---|
|  | 112 | ; 81 struct ret16bytes _Optlink  asmfooopt16(void) | 
|---|
|  | 113 | align 010h | 
|---|
|  | 114 |  | 
|---|
|  | 115 | public asmfooopt16 | 
|---|
|  | 116 | asmfooopt16     proc | 
|---|
|  | 117 | push    ebp | 
|---|
|  | 118 | mov     ebp,esp | 
|---|
|  | 119 |  | 
|---|
|  | 120 | ; 84     return ret; | 
|---|
|  | 121 | mov     eax,[ebp+08h];  @CBE8 | 
|---|
|  | 122 |  | 
|---|
|  | 123 | ; 83     struct ret16bytes ret = {1,2,3,4}; | 
|---|
|  | 124 | mov     dword ptr [ebp-010h],01h;       ret | 
|---|
|  | 125 | mov     dword ptr [ebp-0ch],02h;        ret | 
|---|
|  | 126 |  | 
|---|
|  | 127 | ; 84     return ret; | 
|---|
|  | 128 | mov     ecx,[ebp-010h]; ret | 
|---|
|  | 129 | mov     edx,[ebp-0ch];  ret | 
|---|
|  | 130 | mov     [eax],ecx | 
|---|
|  | 131 |  | 
|---|
|  | 132 | ; 83     struct ret16bytes ret = {1,2,3,4}; | 
|---|
|  | 133 | mov     dword ptr [ebp-08h],03h;        ret | 
|---|
|  | 134 |  | 
|---|
|  | 135 | ; 84     return ret; | 
|---|
|  | 136 | mov     [eax+04h],edx | 
|---|
|  | 137 | mov     edx,[ebp-08h];  ret | 
|---|
|  | 138 |  | 
|---|
|  | 139 | ; 83     struct ret16bytes ret = {1,2,3,4}; | 
|---|
|  | 140 | mov     dword ptr [ebp-04h],04h;        ret | 
|---|
|  | 141 |  | 
|---|
|  | 142 | ; 84     return ret; | 
|---|
|  | 143 | mov     ecx,[ebp-04h];  ret | 
|---|
|  | 144 | mov     [eax+08h],edx | 
|---|
|  | 145 | mov     [eax+0ch],ecx | 
|---|
|  | 146 | pop     ebp | 
|---|
|  | 147 | ret | 
|---|
|  | 148 | asmfooopt16     endp | 
|---|
|  | 149 |  | 
|---|
|  | 150 | ; 75 struct ret12bytes _Optlink  asmfooopt12(void) | 
|---|
|  | 151 | align 010h | 
|---|
|  | 152 |  | 
|---|
|  | 153 | public asmfooopt12 | 
|---|
|  | 154 | asmfooopt12     proc | 
|---|
|  | 155 |  | 
|---|
|  | 156 | ; 78     return ret; | 
|---|
|  | 157 | mov     eax,[esp+04h];  @CBE7 | 
|---|
|  | 158 |  | 
|---|
|  | 159 | ; 77     struct ret12bytes ret = {1,2,3}; | 
|---|
|  | 160 | mov     dword ptr [esp-0ch],01h;        ret | 
|---|
|  | 161 | mov     dword ptr [esp-08h],02h;        ret | 
|---|
|  | 162 |  | 
|---|
|  | 163 | ; 78     return ret; | 
|---|
|  | 164 | mov     edx,[esp-0ch];  ret | 
|---|
|  | 165 | mov     ecx,[esp-08h];  ret | 
|---|
|  | 166 | mov     [eax],edx | 
|---|
|  | 167 |  | 
|---|
|  | 168 | ; 77     struct ret12bytes ret = {1,2,3}; | 
|---|
|  | 169 | mov     dword ptr [esp-04h],03h;        ret | 
|---|
|  | 170 |  | 
|---|
|  | 171 | ; 78     return ret; | 
|---|
|  | 172 | mov     [eax+04h],ecx | 
|---|
|  | 173 | mov     ecx,[esp-04h];  ret | 
|---|
|  | 174 | mov     [eax+08h],ecx | 
|---|
|  | 175 | ret | 
|---|
|  | 176 | asmfooopt12     endp | 
|---|
|  | 177 |  | 
|---|
|  | 178 | ; 69 struct ret8bytes _Optlink   asmfooopt8(void) | 
|---|
|  | 179 | align 010h | 
|---|
|  | 180 |  | 
|---|
|  | 181 | public asmfooopt8 | 
|---|
|  | 182 | asmfooopt8      proc | 
|---|
|  | 183 |  | 
|---|
|  | 184 | ; 72     return ret; | 
|---|
|  | 185 | mov     eax,[esp+04h];  @CBE6 | 
|---|
|  | 186 |  | 
|---|
|  | 187 | ; 71     struct ret8bytes ret = {1,2}; | 
|---|
|  | 188 | mov     dword ptr [esp-08h],01h;        ret | 
|---|
|  | 189 | mov     dword ptr [esp-04h],02h;        ret | 
|---|
|  | 190 |  | 
|---|
|  | 191 | ; 72     return ret; | 
|---|
|  | 192 | mov     edx,[esp-08h];  ret | 
|---|
|  | 193 | mov     ecx,[esp-04h];  ret | 
|---|
|  | 194 | mov     [eax],edx | 
|---|
|  | 195 | mov     [eax+04h],ecx | 
|---|
|  | 196 | ret | 
|---|
|  | 197 | asmfooopt8      endp | 
|---|
|  | 198 |  | 
|---|
|  | 199 | ; 63 struct ret4bytes _Optlink   asmfooopt4(void) | 
|---|
|  | 200 | align 010h | 
|---|
|  | 201 |  | 
|---|
|  | 202 | public asmfooopt4 | 
|---|
|  | 203 | asmfooopt4      proc | 
|---|
|  | 204 |  | 
|---|
|  | 205 | ; 66     return ret; | 
|---|
|  | 206 | mov     eax,[esp+04h];  @CBE5 | 
|---|
|  | 207 |  | 
|---|
|  | 208 | ; 65     struct ret4bytes ret = {1}; | 
|---|
|  | 209 | mov     dword ptr [esp-04h],01h;        ret | 
|---|
|  | 210 |  | 
|---|
|  | 211 | ; 66     return ret; | 
|---|
|  | 212 | mov     ecx,[esp-04h];  ret | 
|---|
|  | 213 | mov     [eax],ecx | 
|---|
|  | 214 | ret | 
|---|
|  | 215 | asmfooopt4      endp | 
|---|
|  | 216 |  | 
|---|
|  | 217 | ; 56 struct ret16bytes _System   asmfoosys16(void) | 
|---|
|  | 218 | align 010h | 
|---|
|  | 219 |  | 
|---|
|  | 220 | public asmfoosys16 | 
|---|
|  | 221 | asmfoosys16     proc | 
|---|
|  | 222 | push    ebp | 
|---|
|  | 223 | mov     ebp,esp | 
|---|
|  | 224 |  | 
|---|
|  | 225 | ; 59     return ret; | 
|---|
| [672] | 226 | mov     eax,[ebp+08h];  @CBE4 | 
|---|
|  | 227 |  | 
|---|
| [675] | 228 | ; 58     struct ret16bytes ret = {1,2,3,4}; | 
|---|
| [672] | 229 | mov     dword ptr [ebp-010h],01h;       ret | 
|---|
|  | 230 | mov     dword ptr [ebp-0ch],02h;        ret | 
|---|
|  | 231 |  | 
|---|
| [675] | 232 | ; 59     return ret; | 
|---|
| [672] | 233 | mov     ecx,[ebp-010h]; ret | 
|---|
|  | 234 | mov     edx,[ebp-0ch];  ret | 
|---|
|  | 235 | mov     [eax],ecx | 
|---|
|  | 236 |  | 
|---|
| [675] | 237 | ; 58     struct ret16bytes ret = {1,2,3,4}; | 
|---|
| [672] | 238 | mov     dword ptr [ebp-08h],03h;        ret | 
|---|
|  | 239 |  | 
|---|
| [675] | 240 | ; 59     return ret; | 
|---|
| [672] | 241 | mov     [eax+04h],edx | 
|---|
|  | 242 | mov     edx,[ebp-08h];  ret | 
|---|
|  | 243 |  | 
|---|
| [675] | 244 | ; 58     struct ret16bytes ret = {1,2,3,4}; | 
|---|
| [672] | 245 | mov     dword ptr [ebp-04h],04h;        ret | 
|---|
|  | 246 |  | 
|---|
| [675] | 247 | ; 59     return ret; | 
|---|
| [672] | 248 | mov     ecx,[ebp-04h];  ret | 
|---|
|  | 249 | mov     [eax+08h],edx | 
|---|
|  | 250 | mov     [eax+0ch],ecx | 
|---|
|  | 251 | pop     ebp | 
|---|
|  | 252 | ret | 
|---|
| [675] | 253 | asmfoosys16     endp | 
|---|
| [672] | 254 |  | 
|---|
| [675] | 255 | ; 50 struct ret12bytes _System   asmfoosys12(void) | 
|---|
| [672] | 256 | align 010h | 
|---|
|  | 257 |  | 
|---|
| [675] | 258 | public asmfoosys12 | 
|---|
|  | 259 | asmfoosys12     proc | 
|---|
| [672] | 260 |  | 
|---|
| [675] | 261 | ; 53     return ret; | 
|---|
| [672] | 262 | mov     eax,[esp+04h];  @CBE3 | 
|---|
|  | 263 |  | 
|---|
| [675] | 264 | ; 52     struct ret12bytes ret = {1,2,3}; | 
|---|
| [672] | 265 | mov     dword ptr [esp-0ch],01h;        ret | 
|---|
|  | 266 | mov     dword ptr [esp-08h],02h;        ret | 
|---|
|  | 267 |  | 
|---|
| [675] | 268 | ; 53     return ret; | 
|---|
| [672] | 269 | mov     edx,[esp-0ch];  ret | 
|---|
|  | 270 | mov     ecx,[esp-08h];  ret | 
|---|
|  | 271 | mov     [eax],edx | 
|---|
|  | 272 |  | 
|---|
| [675] | 273 | ; 52     struct ret12bytes ret = {1,2,3}; | 
|---|
| [672] | 274 | mov     dword ptr [esp-04h],03h;        ret | 
|---|
|  | 275 |  | 
|---|
| [675] | 276 | ; 53     return ret; | 
|---|
| [672] | 277 | mov     [eax+04h],ecx | 
|---|
|  | 278 | mov     ecx,[esp-04h];  ret | 
|---|
|  | 279 | mov     [eax+08h],ecx | 
|---|
|  | 280 | ret | 
|---|
| [675] | 281 | asmfoosys12     endp | 
|---|
| [672] | 282 |  | 
|---|
| [675] | 283 | ; 44 struct ret8bytes _System    asmfoosys8(void) | 
|---|
| [672] | 284 | align 010h | 
|---|
|  | 285 |  | 
|---|
| [675] | 286 | public asmfoosys8 | 
|---|
|  | 287 | asmfoosys8      proc | 
|---|
| [672] | 288 |  | 
|---|
| [675] | 289 | ; 47     return ret; | 
|---|
| [672] | 290 | mov     eax,[esp+04h];  @CBE2 | 
|---|
|  | 291 |  | 
|---|
| [675] | 292 | ; 46     struct ret8bytes ret = {1,2}; | 
|---|
| [672] | 293 | mov     dword ptr [esp-08h],01h;        ret | 
|---|
|  | 294 | mov     dword ptr [esp-04h],02h;        ret | 
|---|
|  | 295 |  | 
|---|
| [675] | 296 | ; 47     return ret; | 
|---|
| [672] | 297 | mov     edx,[esp-08h];  ret | 
|---|
|  | 298 | mov     ecx,[esp-04h];  ret | 
|---|
|  | 299 | mov     [eax],edx | 
|---|
|  | 300 | mov     [eax+04h],ecx | 
|---|
|  | 301 | ret | 
|---|
| [675] | 302 | asmfoosys8      endp | 
|---|
| [672] | 303 |  | 
|---|
| [675] | 304 | ; 38 struct ret4bytes _System    asmfoosys4(void) | 
|---|
| [672] | 305 | align 010h | 
|---|
|  | 306 |  | 
|---|
| [675] | 307 | public asmfoosys4 | 
|---|
|  | 308 | asmfoosys4      proc | 
|---|
| [672] | 309 |  | 
|---|
| [675] | 310 | ; 41     return ret; | 
|---|
| [672] | 311 | mov     eax,[esp+04h];  @CBE1 | 
|---|
|  | 312 |  | 
|---|
| [675] | 313 | ; 40     struct ret4bytes ret = {1}; | 
|---|
| [672] | 314 | mov     dword ptr [esp-04h],01h;        ret | 
|---|
|  | 315 |  | 
|---|
| [675] | 316 | ; 41     return ret; | 
|---|
| [672] | 317 | mov     ecx,[esp-04h];  ret | 
|---|
|  | 318 | mov     [eax],ecx | 
|---|
|  | 319 | ret | 
|---|
| [675] | 320 | asmfoosys4      endp | 
|---|
|  | 321 |  | 
|---|
|  | 322 |  | 
|---|
|  | 323 |  | 
|---|
|  | 324 |  | 
|---|
|  | 325 | public _asmfoodef4_gcc | 
|---|
|  | 326 | _asmfoodef4_gcc: | 
|---|
|  | 327 | mov         eax, 1 | 
|---|
|  | 328 | ret | 
|---|
|  | 329 |  | 
|---|
|  | 330 | public _asmfoodef8_gcc | 
|---|
|  | 331 | _asmfoodef8_gcc: | 
|---|
|  | 332 | mov         eax, 1 | 
|---|
|  | 333 | mov         edx, 2 | 
|---|
|  | 334 | ret | 
|---|
|  | 335 |  | 
|---|
|  | 336 | public _asmfoodef12_gcc | 
|---|
|  | 337 | _asmfoodef12_gcc: | 
|---|
|  | 338 | push    ebp | 
|---|
|  | 339 | mov     ebp, esp | 
|---|
|  | 340 | sub     esp, 24 | 
|---|
|  | 341 | mov     eax, [ebp + 8] | 
|---|
|  | 342 | mov     dword ptr [eax + 0], 1 | 
|---|
|  | 343 | mov     dword ptr [eax + 4], 2 | 
|---|
|  | 344 | mov     dword ptr [eax + 8], 3 | 
|---|
|  | 345 | leave | 
|---|
|  | 346 | ret     4 | 
|---|
|  | 347 |  | 
|---|
|  | 348 | public _asmfoodef16_gcc | 
|---|
|  | 349 | _asmfoodef16_gcc: | 
|---|
|  | 350 | push    ebp | 
|---|
|  | 351 | mov     ebp, esp | 
|---|
|  | 352 | sub     esp, 24 | 
|---|
|  | 353 | mov     eax, [ebp + 8] | 
|---|
|  | 354 | mov     dword ptr [eax + 0], 1 | 
|---|
|  | 355 | mov     dword ptr [eax + 4], 2 | 
|---|
|  | 356 | mov     dword ptr [eax + 8], 3 | 
|---|
|  | 357 | mov     dword ptr [eax +12], 4 | 
|---|
|  | 358 | leave | 
|---|
|  | 359 | ret     4 | 
|---|
|  | 360 |  | 
|---|
| [672] | 361 | CODE32  ends | 
|---|
|  | 362 | end | 
|---|