Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 ec 40 ?? sub esp, 0x40<64>
   a1 04 70 40 00 ?? mov eax, dword ds:[0x00407004]
   33 c5 ?? xor eax, ebp
   89 45 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], eax
   53 ?? push ebx
   56 ?? push esi
   c7 05 2c 74 40 00 00 00 ?? mov dword ds:[0x0040742c], 0
   00 00
   a1 10 70 40 00 ?? mov eax, dword ds:[0x00407010]
   83 c8 01 ?? or eax, 1
   a3 10 70 40 00 ?? mov dword ds:[0x00407010], eax
   6a 0a ?? push 10
   e8 14 04 00 00 ?? call function 0x00402ce4
  
  L2: 85 c0 ?? test eax, eax
   75 07 ?? jne basic block L4
  
  L3: 33 c0 ?? xor eax, eax
   e9 88 02 00 00 ?? jmp basic block L26
  
  L4: c7 45 f0 00 00 00 00 ?? mov dword ss:[ebp + 0xf0<240,-16>], 0
   c7 45 f4 00 00 00 00 ?? mov dword ss:[ebp + 0xf4<244,-12>], 0
   c7 45 f8 00 00 00 00 ?? mov dword ss:[ebp + 0xf8<248,-8>], 0
   c7 05 2c 74 40 00 01 00 ?? mov dword ds:[0x0040742c], 1
   00 00
   8b 0d 10 70 40 00 ?? mov ecx, dword ds:[0x00407010]
   83 c9 02 ?? or ecx, 2
   89 0d 10 70 40 00 ?? mov dword ds:[0x00407010], ecx
   8d 75 e0 ?? lea esi, ss:[ebp + 0xe0<224,-32>]
   33 c0 ?? xor eax, eax
   33 c9 ?? xor ecx, ecx
   0f a2 ?? cpuid
   89 06 ?? mov dword ds:[esi], eax
   89 5e 04 ?? mov dword ds:[esi + 4], ebx
   89 4e 08 ?? mov dword ds:[esi + 8], ecx
   89 56 0c ?? mov dword ds:[esi + 12], edx
   ba 04 00 00 00 ?? mov edx, 4
   6b c2 00 ?? imul eax, edx, 0
   8b 4c 05 e0 ?? mov ecx, dword ss:[ebp + eax + 0xe0<224,-32>]
   89 4d d0 ?? mov dword ss:[ebp + 0xd0<208,-48>], ecx
   ba 04 00 00 00 ?? mov edx, 4
   c1 e2 00 ?? shl edx, 0
   8b 44 15 e0 ?? mov eax, dword ss:[ebp + edx + 0xe0<224,-32>]
   35 47 65 6e 75 ?? xor eax, 0x756e6547
   b9 04 00 00 00 ?? mov ecx, 4
   6b d1 03 ?? imul edx, ecx, 3
   8b 4c 15 e0 ?? mov ecx, dword ss:[ebp + edx + 0xe0<224,-32>]
   81 f1 69 6e 65 49 ?? xor ecx, 0x49656e69
   0b c1 ?? or eax, ecx
   ba 04 00 00 00 ?? mov edx, 4
   d1 e2 ?? shl edx, 1
   8b 4c 15 e0 ?? mov ecx, dword ss:[ebp + edx + 0xe0<224,-32>]
   81 f1 6e 74 65 6c ?? xor ecx, 0x6c65746e
   0b c1 ?? or eax, ecx
   75 09 ?? jne basic block L6
  
  L5: c7 45 d4 01 00 00 00 ?? mov dword ss:[ebp + 0xd4<212,-44>], 1
   eb 07 ?? jmp basic block L7
  
  L6: c7 45 d4 00 00 00 00 ?? mov dword ss:[ebp + 0xd4<212,-44>], 0
  
  L7: 8a 55 d4 ?? mov dl, byte ss:[ebp + 0xd4<212,-44>]
   88 55 df ?? mov byte ss:[ebp + 0xdf<223,-33>], dl
   8d 75 e0 ?? lea esi, ss:[ebp + 0xe0<224,-32>]
   b8 01 00 00 00 ?? mov eax, 1
   33 c9 ?? xor ecx, ecx
   0f a2 ?? cpuid
   89 06 ?? mov dword ds:[esi], eax
   89 5e 04 ?? mov dword ds:[esi + 4], ebx
   89 4e 08 ?? mov dword ds:[esi + 8], ecx
   89 56 0c ?? mov dword ds:[esi + 12], edx
   b8 04 00 00 00 ?? mov eax, 4
   6b c8 00 ?? imul ecx, eax, 0
   8b 54 0d e0 ?? mov edx, dword ss:[ebp + ecx + 0xe0<224,-32>]
   89 55 d8 ?? mov dword ss:[ebp + 0xd8<216,-40>], edx
   0f b6 45 df ?? movzx eax, byte ss:[ebp + 0xdf<223,-33>]
   85 c0 ?? test eax, eax
   74 71 ?? je basic block L15
  
  L8: 8b 4d d8 ?? mov ecx, dword ss:[ebp + 0xd8<216,-40>]
   81 e1 f0 3f ff 0f ?? and ecx, 0x0fff3ff0
   81 f9 c0 06 01 00 ?? cmp ecx, 0x000106c0
   74 51 ?? je basic block L14
  
  L9: 8b 55 d8 ?? mov edx, dword ss:[ebp + 0xd8<216,-40>]
   81 e2 f0 3f ff 0f ?? and edx, 0x0fff3ff0
   81 fa 60 06 02 00 ?? cmp edx, 0x00020660
   74 40 ?? je basic block L14
  
  L10: 8b 45 d8 ?? mov eax, dword ss:[ebp + 0xd8<216,-40>]
   25 f0 3f ff 0f ?? and eax, 0x0fff3ff0
   3d 70 06 02 00 ?? cmp eax, 0x00020670
   74 31 ?? je basic block L14
  
  L11: 8b 4d d8 ?? mov ecx, dword ss:[ebp + 0xd8<216,-40>]
   81 e1 f0 3f ff 0f ?? and ecx, 0x0fff3ff0
   81 f9 50 06 03 00 ?? cmp ecx, 0x00030650
   74 20 ?? je basic block L14
  
  L12: 8b 55 d8 ?? mov edx, dword ss:[ebp + 0xd8<216,-40>]
   81 e2 f0 3f ff 0f ?? and edx, 0x0fff3ff0
   81 fa 60 06 03 00 ?? cmp edx, 0x00030660
   74 0f ?? je basic block L14
  
  L13: 8b 45 d8 ?? mov eax, dword ss:[ebp + 0xd8<216,-40>]
   25 f0 3f ff 0f ?? and eax, 0x0fff3ff0
   3d 70 06 03 00 ?? cmp eax, 0x00030670
   75 0f ?? jne basic block L15
  
  L14: 8b 0d 30 74 40 00 ?? mov ecx, dword ds:[0x00407430]
   83 c9 01 ?? or ecx, 1
   89 0d 30 74 40 00 ?? mov dword ds:[0x00407430], ecx
  
  L15: ba 04 00 00 00 ?? mov edx, 4
   6b c2 03 ?? imul eax, edx, 3
   b9 04 00 00 00 ?? mov ecx, 4
   6b d1 00 ?? imul edx, ecx, 0
   8b 44 05 e0 ?? mov eax, dword ss:[ebp + eax + 0xe0<224,-32>]
   89 44 15 f0 ?? mov dword ss:[ebp + edx + 0xf0<240,-16>], eax
   b9 04 00 00 00 ?? mov ecx, 4
   d1 e1 ?? shl ecx, 1
   ba 04 00 00 00 ?? mov edx, 4
   c1 e2 00 ?? shl edx, 0
   8b 44 0d e0 ?? mov eax, dword ss:[ebp + ecx + 0xe0<224,-32>]
   89 44 15 f0 ?? mov dword ss:[ebp + edx + 0xf0<240,-16>], eax
   83 7d d0 07 ?? cmp dword ss:[ebp + 0xd0<208,-48>], 7
   7c 4f ?? jl basic block L18
  
  L16: 8d 75 e0 ?? lea esi, ss:[ebp + 0xe0<224,-32>]
   b8 07 00 00 00 ?? mov eax, 7
   33 c9 ?? xor ecx, ecx
   0f a2 ?? cpuid
   89 06 ?? mov dword ds:[esi], eax
   89 5e 04 ?? mov dword ds:[esi + 4], ebx
   89 4e 08 ?? mov dword ds:[esi + 8], ecx
   89 56 0c ?? mov dword ds:[esi + 12], edx
   b9 04 00 00 00 ?? mov ecx, 4
   c1 e1 00 ?? shl ecx, 0
   ba 04 00 00 00 ?? mov edx, 4
   d1 e2 ?? shl edx, 1
   8b 44 0d e0 ?? mov eax, dword ss:[ebp + ecx + 0xe0<224,-32>]
   89 44 15 f0 ?? mov dword ss:[ebp + edx + 0xf0<240,-16>], eax
   b9 04 00 00 00 ?? mov ecx, 4
   c1 e1 00 ?? shl ecx, 0
   8b 54 0d e0 ?? mov edx, dword ss:[ebp + ecx + 0xe0<224,-32>]
   81 e2 00 02 00 00 ?? and edx, 0x00000200<512>
   74 0d ?? je basic block L18
  
  L17: a1 30 74 40 00 ?? mov eax, dword ds:[0x00407430]
   83 c8 02 ?? or eax, 2
   a3 30 74 40 00 ?? mov dword ds:[0x00407430], eax
  
  L18: b9 04 00 00 00 ?? mov ecx, 4
   c1 e1 00 ?? shl ecx, 0
   8b 54 0d f0 ?? mov edx, dword ss:[ebp + ecx + 0xf0<240,-16>]
   81 e2 00 00 10 00 ?? and edx, 0x00100000
   0f 84 aa 00 00 00 ?? je basic block L25
  
  L19: c7 05 2c 74 40 00 02 00 ?? mov dword ds:[0x0040742c], 2
   00 00
   a1 10 70 40 00 ?? mov eax, dword ds:[0x00407010]
   83 c8 04 ?? or eax, 4
   a3 10 70 40 00 ?? mov dword ds:[0x00407010], eax
   b9 04 00 00 00 ?? mov ecx, 4
   c1 e1 00 ?? shl ecx, 0
   8b 54 0d f0 ?? mov edx, dword ss:[ebp + ecx + 0xf0<240,-16>]
   81 e2 00 00 00 08 ?? and edx, 0x08000000
   74 7f ?? je basic block L25
  
  L20: b8 04 00 00 00 ?? mov eax, 4
   c1 e0 00 ?? shl eax, 0
   8b 4c 05 f0 ?? mov ecx, dword ss:[ebp + eax + 0xf0<240,-16>]
   81 e1 00 00 00 10 ?? and ecx, 0x10000000
   74 6b ?? je basic block L25
  
  L21: 33 c9 ?? xor ecx, ecx
   0f 01 d0 ?? xgetbv
   89 45 c8 ?? mov dword ss:[ebp + 0xc8<200,-56>], eax
   89 55 cc ?? mov dword ss:[ebp + 0xcc<204,-52>], edx
   8b 55 c8 ?? mov edx, dword ss:[ebp + 0xc8<200,-56>]
   8b 45 cc ?? mov eax, dword ss:[ebp + 0xcc<204,-52>]
   83 e2 06 ?? and edx, 6
   83 e0 00 ?? and eax, 0
   89 55 c0 ?? mov dword ss:[ebp + 0xc0<192,-64>], edx
   89 45 c4 ?? mov dword ss:[ebp + 0xc4<196,-60>], eax
   83 7d c0 06 ?? cmp dword ss:[ebp + 0xc0<192,-64>], 6
   75 48 ?? jne basic block L25
  
  L22: 83 7d c4 00 ?? cmp dword ss:[ebp + 0xc4<196,-60>], 0
   75 42 ?? jne basic block L25
  
  L23: c7 05 2c 74 40 00 03 00 ?? mov dword ds:[0x0040742c], 3
   00 00
   8b 0d 10 70 40 00 ?? mov ecx, dword ds:[0x00407010]
   83 c9 08 ?? or ecx, 8
   89 0d 10 70 40 00 ?? mov dword ds:[0x00407010], ecx
   ba 04 00 00 00 ?? mov edx, 4
   d1 e2 ?? shl edx, 1
   8b 44 15 f0 ?? mov eax, dword ss:[ebp + edx + 0xf0<240,-16>]
   83 e0 20 ?? and eax, 0x20<32>
   74 19 ?? je basic block L25
  
  L24: c7 05 2c 74 40 00 05 00 ?? mov dword ds:[0x0040742c], 5
   00 00
   8b 0d 10 70 40 00 ?? mov ecx, dword ds:[0x00407010]
   83 c9 20 ?? or ecx, 0x20<32>
   89 0d 10 70 40 00 ?? mov dword ds:[0x00407010], ecx
  
  L25: 33 c0 ?? xor eax, eax
  
  L26: 5e ?? pop esi
   5b ?? pop ebx
   8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
   33 cd ?? xor ecx, ebp
   e8 e1 e5 ff ff ?? call function 0x00401150
  
  L27: 8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c3 ?? ret
  
  