
L1: 8b ff ?? mov edi, edi
 55 ?? push ebp
 8b ec ?? mov ebp, esp
 81 ec 1c 02 00 00 ?? sub esp, 0x0000021c<540>
 a1 48 a0 40 00 ?? mov eax, dword ds:[0x0040a048]
 33 c5 ?? xor eax, ebp
 89 45 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], eax
 80 3d 0d a5 40 00 00 ?? cmp byte ds:[0x0040a50d], 0
 74 10 ?? je basic block L4

L2: 33 c0 ?? xor eax, eax
 8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
 33 cd ?? xor ecx, ebp
 e8 c6 e5 ff ff ?? call function 0x00401f80

L3: 8b e5 ?? mov esp, ebp
 5d ?? pop ebp
 c3 ?? ret

L4: 56 ?? push esi
 8b 35 70 b2 40 00 ?? mov esi, dword ds:[0x0040b270]
 68 30 81 40 00 ?? push 0x00408130<"MSPDB100.DLL">
 c6 05 0d a5 40 00 01 ?? mov byte ds:[0x0040a50d], 1
 ff d6 ?? call esi

L5: 85 c0 ?? test eax, eax
 0f 85 91 01 00 00 ?? jne basic block L37

L6: 68 1c 82 40 00 ?? push 0x0040821c<"ADVAPI32.DLL">
 ff d6 ?? call esi

L7: 8b f0 ?? mov esi, eax
 85 f6 ?? test esi, esi
 75 0f ?? jne basic block L10

L8: 5e ?? pop esi
 8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
 33 cd ?? xor ecx, ebp
 e8 8d e5 ff ff ?? call function 0x00401f80

L9: 8b e5 ?? mov esp, ebp
 5d ?? pop ebp
 c3 ?? ret

L10: 57 ?? push edi
 8b 3d 6c b2 40 00 ?? mov edi, dword ds:[0x0040b26c]
 68 0c 82 40 00 ?? push 0x0040820c<"RegOpenKeyExW">
 56 ?? push esi
 ff d7 ?? call edi

L11: 89 85 e8 fd ff ff ?? mov dword ss:[ebp + 0xfffffde8<4294966760,-536>], eax
 85 c0 ?? test eax, eax
 75 10 ?? jne basic block L14

L12: 5f ?? pop edi
 5e ?? pop esi
 8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
 33 cd ?? xor ecx, ebp
 e8 64 e5 ff ff ?? call function 0x00401f80

L13: 8b e5 ?? mov esp, ebp
 5d ?? pop ebp
 c3 ?? ret

L14: 53 ?? push ebx
 68 f8 81 40 00 ?? push 0x004081f8<"RegQueryValueExW">
 56 ?? push esi
 ff d7 ?? call edi

L15: 8b d8 ?? mov ebx, eax
 85 db ?? test ebx, ebx
 74 34 ?? je basic block L21

L16: 68 ec 81 40 00 ?? push 0x004081ec<"RegCloseKey">
 56 ?? push esi
 ff d7 ?? call edi

L17: 8b f8 ?? mov edi, eax
 85 ff ?? test edi, edi
 74 26 ?? je basic block L21

L18: 8d 85 ec fd ff ff ?? lea eax, ss:[ebp + 0xfffffdec<4294966764,-532>]
 50 ?? push eax
 6a 01 ?? push 1
 6a 00 ?? push 0
 68 90 81 40 00 ?? push 0x00408190<"SOFTWARE\\Microsoft\\Visual"+20 more>
 68 02 00 00 80 ?? push 0x80000002
 ff 95 e8 fd ff ff ?? call dword ss:[ebp + 0xfffffde8<4294966760,-536>]

L19: 85 c0 ?? test eax, eax
 74 1a ?? je basic block L23

L20: 56 ?? push esi
 ff 15 78 b2 40 00 ?? call dword ds:[0x0040b278]

L21: 5b ?? pop ebx
 5f ?? pop edi
 33 c0 ?? xor eax, eax
 5e ?? pop esi
 8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
 33 cd ?? xor ecx, ebp
 e8 0e e5 ff ff ?? call function 0x00401f80

L22: 8b e5 ?? mov esp, ebp
 5d ?? pop ebp
 c3 ?? ret

L23: 8d 8d f0 fd ff ff ?? lea ecx, ss:[ebp + 0xfffffdf0<4294966768,-528>]
 51 ?? push ecx
 8b 8d ec fd ff ff ?? mov ecx, dword ss:[ebp + 0xfffffdec<4294966764,-532>]
 8d 95 f4 fd ff ff ?? lea edx, ss:[ebp + 0xfffffdf4<4294966772,-524>]
 52 ?? push edx
 8d 85 e4 fd ff ff ?? lea eax, ss:[ebp + 0xfffffde4<4294966756,-540>]
 50 ?? push eax
 6a 00 ?? push 0
 68 64 81 40 00 ?? push 0x00408164<"EnvironmentDirectory">
 51 ?? push ecx
 c7 85 f0 fd ff ff 08 02 ?? mov dword ss:[ebp + 0xfffffdf0<4294966768,-528>], 0x00000208<520>
 00 00
 ff d3 ?? call ebx

L24: 8b 95 ec fd ff ff ?? mov edx, dword ss:[ebp + 0xfffffdec<4294966764,-532>]
 52 ?? push edx
 8b d8 ?? mov ebx, eax
 ff d7 ?? call edi

L25: 56 ?? push esi
 ff 15 78 b2 40 00 ?? call dword ds:[0x0040b278]

L26: 85 db ?? test ebx, ebx
 75 a8 ?? jne basic block L21

L27: 83 bd e4 fd ff ff 01 ?? cmp dword ss:[ebp + 0xfffffde4<4294966756,-540>], 1
 75 9f ?? jne basic block L21

L28: 8b 85 f0 fd ff ff ?? mov eax, dword ss:[ebp + 0xfffffdf0<4294966768,-528>]
 a8 01 ?? test al, 1
 75 95 ?? jne basic block L21

L29: d1 e8 ?? shr eax, 1
 83 f8 02 ?? cmp eax, 2
 72 8e ?? jb basic block L21

L30: 48 ?? dec eax
 66 39 9c 45 f4 fd ff ff ?? cmp word ss:[ebp + 0xfffffdf4<4294966772,-524> + eax * 2], bx
 75 83 ?? jne basic block L21

L31: 66 83 bc 45 f2 fd ff ff ?? cmp word ss:[ebp + 0xfffffdf2<4294966770,-526> + eax * 2], 0x5c<92>
 5c
 74 0e ?? je basic block L33

L32: b9 5c 00 00 00 ?? mov ecx, 0x0000005c<92>
 66 89 8c 45 f4 fd ff ff ?? mov word ss:[ebp + 0xfffffdf4<4294966772,-524> + eax * 2], cx
 40 ?? inc eax

L33: 83 ca ff ?? or edx, 0xff<255,-1>
 2b d0 ?? sub edx, eax
 83 fa 0e ?? cmp edx, 14
 0f 82 5c ff ff ff ?? jb basic block L21

L34: 8d 48 0d ?? lea ecx, ds:[eax + 13]
 81 f9 04 01 00 00 ?? cmp ecx, 0x00000104<260>
 0f 87 4d ff ff ff ?? ja basic block L21

L35: 8b 15 30 81 40 00 ?? mov edx, dword ds:[0x00408130<"MSPDB100.DLL">]
 8b 0d 34 81 40 00 ?? mov ecx, dword ds:[0x00408134<"PDB100.DLL">]
 8d 84 45 f4 fd ff ff ?? lea eax, ss:[ebp + 0xfffffdf4<4294966772,-524> + eax * 2]
 89 10 ?? mov dword ds:[eax], edx
 8b 15 38 81 40 00 ?? mov edx, dword ds:[0x00408138<"B100.DLL">]
 89 48 04 ?? mov dword ds:[eax + 4], ecx
 8b 0d 3c 81 40 00 ?? mov ecx, dword ds:[0x0040813c<"00.DLL">]
 89 50 08 ?? mov dword ds:[eax + 8], edx
 8b 15 40 81 40 00 ?? mov edx, dword ds:[0x00408140<".DLL">]
 89 48 0c ?? mov dword ds:[eax + 12], ecx
 8b 0d 44 81 40 00 ?? mov ecx, dword ds:[0x00408144<"LL">]
 89 50 10 ?? mov dword ds:[eax + 0x10<16>], edx
 66 8b 15 48 81 40 00 ?? mov dx, word ds:[0x00408148]
 89 48 14 ?? mov dword ds:[eax + 0x14<20>], ecx
 66 89 50 18 ?? mov word ds:[eax + 0x18<24>], dx
 8d 85 f4 fd ff ff ?? lea eax, ss:[ebp + 0xfffffdf4<4294966772,-524>]
 50 ?? push eax
 ff 15 70 b2 40 00 ?? call dword ds:[0x0040b270]

L36: 5b ?? pop ebx
 5f ?? pop edi

L37: 8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
 33 cd ?? xor ecx, ebp
 5e ?? pop esi
 e8 09 e4 ff ff ?? call function 0x00401f80

L38: 8b e5 ?? mov esp, ebp
 5d ?? pop ebp
 c3 ?? ret

