void main() { 00401000 push ebx 00401001 push esi 00401002 push edi CThing a(10); 00401003 mov esi,0Ah a.Process((rand() % 2) == 1); // Using rand() to force compiler to support both true and false 00401008 call dword ptr [__imp__rand (40209Ch)] 0040100E and eax,80000001h 00401013 jns main+1Ah (40101Ah) 00401015 dec eax 00401016 or eax,0FFFFFFFEh 00401019 inc eax 0040101A mov edi,dword ptr [__imp__printf (4020A4h)] 00401020 cmp eax,1 00401023 push 0Ah 00401025 push offset string "%d\n" (4020F4h) 0040102A sete bl 0040102D call edi 0040102F add esp,8 00401032 test bl,bl 00401034 je main+3Bh (40103Bh) 00401036 mov esi,0Bh a.Process(); 0040103B push esi 0040103C push offset string "%d\n" (4020F4h) 00401041 call edi 00401043 add esi,1 printf("%d\n", a.GetVar()); 00401046 push esi 00401047 push offset string "%d\n" (4020F4h) 0040104C call edi 0040104E add esp,10h 00401051 pop edi 00401052 pop esi } 00401053 xor eax,eax 00401055 pop ebx 00401056 ret