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<true>();
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