View difference between Paste ID: 4M8uiUm2 and 7VZStZYT
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)