
L1: 55 ?? push ebp
 8b ec ?? mov ebp, esp
 83 25 2c 44 40 00 00 ?? and dword ds:[0x0040442c], 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 8c 02 00 00 ?? call function 0x004023d8

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 2c 44 40 00 ?? mov dword ds:[0x0040442c], 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 30 44 40 00 ?? mov edi, dword ds:[0x00404430]
 83 cf 01 ?? or edi, 1
 89 3d 30 44 40 00 ?? mov dword ds:[0x00404430], edi
 eb 06 ?? jmp basic block L12

L11: 8b 3d 30 44 40 00 ?? mov edi, dword ds:[0x00404430]

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 30 44 40 00 ?? mov dword ds:[0x00404430], 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 2c 44 40 00 02 00 ?? mov dword ds:[0x0040442c], 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 2c 44 40 00 03 00 ?? mov dword ds:[0x0040442c], 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 2c 44 40 00 05 00 ?? mov dword ds:[0x0040442c], 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

