SHOW:
|
|
- or go back to the newest paste.
| 1 | long x = 0; | |
| 2 | const long long iterCount = pow(2, 29); | |
| 3 | for(long long i = 0; i<iterCount; ++i) | |
| 4 | {
| |
| 5 | if(i < 0) | |
| 6 | - | ++x; // x is 32 or 64 bits (different disassembly below) |
| 6 | + | |
| 7 | ++x; | |
| 8 | } | |
| 9 | } | |
| 10 | - | // Incrementing x as a 32-bit value |
| 10 | + | |
| 11 | // ALWAYS TRUE | |
| 12 | ||
| 13 | // Loop part 1 | |
| 14 | 00E31340 C5 F9 13 44 24 18 vmovlpd qword ptr [esp+18h],xmm0 | |
| 15 | 00E31346 85 FF test edi,edi | |
| 16 | 00E31348 7C 29 jl main+0D3h (0E31373h) | |
| 17 | 00E3134A 7F 04 jg main+0B0h (0E31350h) | |
| 18 | 00E3134C 85 F6 test esi,esi | |
| 19 | 00E3134E 74 23 je main+0D3h (0E31373h) | |
| 20 | 00E31350 8B 4C 24 1C mov ecx,dword ptr [esp+1Ch] | |
| 21 | 00E31354 8B 44 24 18 mov eax,dword ptr [esp+18h] | |
| 22 | // If statement | |
| 23 | 00E31358 85 C9 test ecx,ecx | |
| 24 | 00E3135A 7C 07 jl main+0C3h (0E31363h) | |
| 25 | 00E3135C 7F 04 jg main+0C2h (0E31362h) | |
| 26 | 00E3135E 85 C0 test eax,eax | |
| 27 | 00E31360 74 01 je main+0C3h (0E31363h) | |
| 28 | // Increment | |
| 29 | 00E31362 43 inc ebx | |
| 30 | // Loop part 2 | |
| 31 | 00E31363 83 C0 01 add eax,1 | |
| 32 | - | 00E3143E 72 E5 jb main+185h (0E31425h) |
| 32 | + | 00E31366 83 D1 00 adc ecx,0 |
| 33 | 00E31369 3B CF cmp ecx,edi | |
| 34 | - | // Incrementing x as a 64-bit value |
| 34 | + | 00E3136B 7C EB jl main+0B8h (0E31358h) |
| 35 | 00E3136D 7F 04 jg main+0D3h (0E31373h) | |
| 36 | - | 00EB144B C5 F9 13 44 24 18 vmovlpd qword ptr [esp+18h],xmm0 |
| 36 | + | 00E3136F 3B C6 cmp eax,esi |
| 37 | - | 00EB1451 85 FF test edi,edi |
| 37 | + | 00E31371 72 E5 jb main+0B8h (0E31358h) |
| 38 | - | 00EB1453 7C 41 jl main+1F6h (0EB1496h) |
| 38 | + | |
| 39 | - | 00EB1455 7F 04 jg main+1BBh (0EB145Bh) |
| 39 | + | // ALWAYS FALSE |
| 40 | - | 00EB1457 85 F6 test esi,esi |
| 40 | + | |
| 41 | - | 00EB1459 74 3B je main+1F6h (0EB1496h) |
| 41 | + | // Loop part 1 |
| 42 | - | 00EB145B 8B 54 24 10 mov edx,dword ptr [esp+10h] |
| 42 | + | |
| 43 | - | 00EB145F 8B 5C 24 14 mov ebx,dword ptr [esp+14h] |
| 43 | + | |
| 44 | - | 00EB1463 8B 4C 24 1C mov ecx,dword ptr [esp+1Ch] |
| 44 | + | |
| 45 | - | 00EB1467 8B 44 24 18 mov eax,dword ptr [esp+18h] |
| 45 | + | |
| 46 | - | 00EB146B 89 54 24 0C mov dword ptr [esp+0Ch],edx |
| 46 | + | |
| 47 | - | 00EB146F 90 nop |
| 47 | + | |
| 48 | - | 00EB1470 85 C9 test ecx,ecx |
| 48 | + | |
| 49 | - | 00EB1472 7F 10 jg main+1E4h (0EB1484h) |
| 49 | + | |
| 50 | - | 00EB1474 7C 04 jl main+1DAh (0EB147Ah) |
| 50 | + | // If statement |
| 51 | - | 00EB1476 85 C0 test eax,eax |
| 51 | + | |
| 52 | - | 00EB1478 73 0A jae main+1E4h (0EB1484h) |
| 52 | + | |
| 53 | - | 00EB147A 83 C2 01 add edx,1 |
| 53 | + | |
| 54 | - | 00EB147D 89 54 24 0C mov dword ptr [esp+0Ch],edx |
| 54 | + | |
| 55 | - | 00EB1481 83 D3 00 adc ebx,0 |
| 55 | + | |
| 56 | - | 00EB1484 83 C0 01 add eax,1 |
| 56 | + | // Increment |
| 57 | - | 00EB1487 83 D1 00 adc ecx,0 |
| 57 | + | |
| 58 | - | 00EB148A 3B CF cmp ecx,edi |
| 58 | + | // Loop part 2 |
| 59 | - | 00EB148C 7C E2 jl main+1D0h (0EB1470h) |
| 59 | + | |
| 60 | - | 00EB148E 7F 12 jg main+202h (0EB14A2h) |
| 60 | + | |
| 61 | - | 00EB1490 3B C6 cmp eax,esi |
| 61 | + | |
| 62 | - | 00EB1492 72 DC jb main+1D0h (0EB1470h) |
| 62 | + | |
| 63 | - | 00EB1494 EB 0C jmp main+202h (0EB14A2h) |
| 63 | + | |
| 64 | - | 00EB1496 8B 44 24 10 mov eax,dword ptr [esp+10h] |
| 64 | + | |
| 65 | - | 00EB149A 8B 5C 24 14 mov ebx,dword ptr [esp+14h] |
| 65 | + | 00E3143E 72 E5 jb main+185h (0E31425h) |