Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 25 d4 43 40 00 00 ?? and dword ds:[0x004043d4], 0
   83 ec 28 ?? sub esp, 0x28<40>
   53 ?? push ebx
   33 db ?? xor ebx, ebx
   43 ?? inc ebx
   09 1d 10 40 40 00 ?? or dword ds:[0x00404010], ebx
   6a 0a ?? push 10
   e8 75 02 00 00 ?? call function 0x004020d6
  
  L2: 85 c0 ?? test eax, eax
   0f 84 6d 01 00 00 ?? je basic block L22
  
  L3: 83 65 f0 00 ?? and dword ss:[ebp + 0xf0<240,-16>], 0
   33 c0 ?? xor eax, eax
   83 0d 10 40 40 00 02 ?? or dword ds:[0x00404010], 2
   33 c9 ?? xor ecx, ecx
   56 ?? push esi
   57 ?? push edi
   89 1d d4 43 40 00 ?? mov dword ds:[0x004043d4], ebx
   8d 7d d8 ?? lea edi, ss:[ebp + 0xd8<216,-40>]
   53 ?? push ebx
   0f a2 ?? cpuid
   8b f3 ?? mov esi, ebx
   5b ?? pop ebx
   89 07 ?? mov dword ds:[edi], eax
   89 77 04 ?? mov dword ds:[edi + 4], esi
   89 4f 08 ?? mov dword ds:[edi + 8], ecx
   89 57 0c ?? mov dword ds:[edi + 12], edx
   8b 45 d8 ?? mov eax, dword ss:[ebp + 0xd8<216,-40>]
   8b 4d e4 ?? mov ecx, dword ss:[ebp + 0xe4<228,-28>]
   89 45 f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], eax
   81 f1 69 6e 65 49 ?? xor ecx, 0x49656e69
   8b 45 e0 ?? mov eax, dword ss:[ebp + 0xe0<224,-32>]
   35 6e 74 65 6c ?? xor eax, 0x6c65746e
   0b c8 ?? or ecx, eax
   8b 45 dc ?? mov eax, dword ss:[ebp + 0xdc<220,-36>]
   6a 01 ?? push 1
   35 47 65 6e 75 ?? xor eax, 0x756e6547
   0b c8 ?? or ecx, eax
   58 ?? pop eax
   6a 00 ?? push 0
   59 ?? pop ecx
   53 ?? push ebx
   0f a2 ?? cpuid
   8b f3 ?? mov esi, ebx
   5b ?? pop ebx
   89 07 ?? mov dword ds:[edi], eax
   89 77 04 ?? mov dword ds:[edi + 4], esi
   89 4f 08 ?? mov dword ds:[edi + 8], ecx
   89 57 0c ?? mov dword ds:[edi + 12], edx
   75 43 ?? jne basic block L11
  
  L4: 8b 45 d8 ?? mov eax, dword ss:[ebp + 0xd8<216,-40>]
   25 f0 3f ff 0f ?? and eax, 0x0fff3ff0
   3d c0 06 01 00 ?? cmp eax, 0x000106c0
   74 23 ?? je basic block L10
  
  L5: 3d 60 06 02 00 ?? cmp eax, 0x00020660
   74 1c ?? je basic block L10
  
  L6: 3d 70 06 02 00 ?? cmp eax, 0x00020670
   74 15 ?? je basic block L10
  
  L7: 3d 50 06 03 00 ?? cmp eax, 0x00030650
   74 0e ?? je basic block L10
  
  L8: 3d 60 06 03 00 ?? cmp eax, 0x00030660
   74 07 ?? je basic block L10
  
  L9: 3d 70 06 03 00 ?? cmp eax, 0x00030670
   75 11 ?? jne basic block L11
  
  L10: 8b 3d d8 43 40 00 ?? mov edi, dword ds:[0x004043d8]
   83 cf 01 ?? or edi, 1
   89 3d d8 43 40 00 ?? mov dword ds:[0x004043d8], edi
   eb 06 ?? jmp basic block L12
  
  L11: 8b 3d d8 43 40 00 ?? mov edi, dword ds:[0x004043d8]
  
  L12: 83 7d f8 07 ?? cmp dword ss:[ebp + 0xf8<248,-8>], 7
   8b 45 e4 ?? mov eax, dword ss:[ebp + 0xe4<228,-28>]
   89 45 e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], eax
   8b 45 e0 ?? mov eax, dword ss:[ebp + 0xe0<224,-32>]
   89 45 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], eax
   89 45 ec ?? mov dword ss:[ebp + 0xec<236,-20>], eax
   7c 32 ?? jl basic block L15
  
  L13: 6a 07 ?? push 7
   58 ?? pop eax
   33 c9 ?? xor ecx, ecx
   53 ?? push ebx
   0f a2 ?? cpuid
   8b f3 ?? mov esi, ebx
   5b ?? pop ebx
   8d 5d d8 ?? lea ebx, ss:[ebp + 0xd8<216,-40>]
   89 03 ?? mov dword ds:[ebx], eax
   89 73 04 ?? mov dword ds:[ebx + 4], esi
   89 4b 08 ?? mov dword ds:[ebx + 8], ecx
   89 53 0c ?? mov dword ds:[ebx + 12], edx
   8b 45 dc ?? mov eax, dword ss:[ebp + 0xdc<220,-36>]
   a9 00 02 00 00 ?? test eax, 0x00000200<512>
   89 45 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], eax
   8b 45 fc ?? mov eax, dword ss:[ebp + 0xfc<252,-4>]
   74 09 ?? je basic block L15
  
  L14: 83 cf 02 ?? or edi, 2
   89 3d d8 43 40 00 ?? mov dword ds:[0x004043d8], edi
  
  L15: 5f ?? pop edi
   5e ?? pop esi
   a9 00 00 10 00 ?? test eax, 0x00100000
   74 6d ?? je basic block L22
  
  L16: 83 0d 10 40 40 00 04 ?? or dword ds:[0x00404010], 4
   c7 05 d4 43 40 00 02 00 ?? mov dword ds:[0x004043d4], 2
   00 00
   a9 00 00 00 08 ?? test eax, 0x08000000
   74 55 ?? je basic block L22
  
  L17: a9 00 00 00 10 ?? test eax, 0x10000000
   74 4e ?? je basic block L22
  
  L18: 33 c9 ?? xor ecx, ecx
   0f 01 d0 ?? xgetbv
   89 45 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], eax
   89 55 f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], edx
   8b 45 f4 ?? mov eax, dword ss:[ebp + 0xf4<244,-12>]
   8b 4d f8 ?? mov ecx, dword ss:[ebp + 0xf8<248,-8>]
   83 e0 06 ?? and eax, 6
   33 c9 ?? xor ecx, ecx
   83 f8 06 ?? cmp eax, 6
   75 33 ?? jne basic block L22
  
  L19: 85 c9 ?? test ecx, ecx
   75 2f ?? jne basic block L22
  
  L20: a1 10 40 40 00 ?? mov eax, dword ds:[0x00404010]
   83 c8 08 ?? or eax, 8
   c7 05 d4 43 40 00 03 00 ?? mov dword ds:[0x004043d4], 3
   00 00
   f6 45 f0 20 ?? test byte ss:[ebp + 0xf0<240,-16>], 0x20<32>
   a3 10 40 40 00 ?? mov dword ds:[0x00404010], eax
   74 12 ?? je basic block L22
  
  L21: 83 c8 20 ?? or eax, 0x20<32>
   c7 05 d4 43 40 00 05 00 ?? mov dword ds:[0x004043d4], 5
   00 00
   a3 10 40 40 00 ?? mov dword ds:[0x00404010], eax
  
  L22: 33 c0 ?? xor eax, eax
   5b ?? pop ebx
   8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c3 ?? ret
  
  