Disassembly: 
  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 b0 40 00 ?? mov eax, dword ds:[0x0040b048]
   33 c5 ?? xor eax, ebp
   89 45 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], eax
   80 3d 0d b5 40 00 00 ?? cmp byte ds:[0x0040b50d], 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 96 e5 ff ff ?? call function 0x00402730
  
  L3: 8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c3 ?? ret
  
  L4: 56 ?? push esi
   8b 35 58 c2 40 00 ?? mov esi, dword ds:[0x0040c258]
   68 58 92 40 00 ?? push 0x00409258<"MSPDB100.DLL">
   c6 05 0d b5 40 00 01 ?? mov byte ds:[0x0040b50d], 1
   ff d6 ?? call esi
  
  L5: 85 c0 ?? test eax, eax
   0f 85 91 01 00 00 ?? jne basic block L37
  
  L6: 68 44 93 40 00 ?? push 0x00409344<"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 5d e5 ff ff ?? call function 0x00402730
  
  L9: 8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c3 ?? ret
  
  L10: 57 ?? push edi
   8b 3d 5c c2 40 00 ?? mov edi, dword ds:[0x0040c25c]
   68 34 93 40 00 ?? push 0x00409334<"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 34 e5 ff ff ?? call function 0x00402730
  
  L13: 8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c3 ?? ret
  
  L14: 53 ?? push ebx
   68 20 93 40 00 ?? push 0x00409320<"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 14 93 40 00 ?? push 0x00409314<"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 b8 92 40 00 ?? push 0x004092b8<"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 28 c2 40 00 ?? call dword ds:[0x0040c228]
  
  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 de e4 ff ff ?? call function 0x00402730
  
  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 8c 92 40 00 ?? push 0x0040928c<"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 28 c2 40 00 ?? call dword ds:[0x0040c228]
  
  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 58 92 40 00 ?? mov edx, dword ds:[0x00409258<"MSPDB100.DLL">]
   8b 0d 5c 92 40 00 ?? mov ecx, dword ds:[0x0040925c<"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 60 92 40 00 ?? mov edx, dword ds:[0x00409260<"B100.DLL">]
   89 48 04 ?? mov dword ds:[eax + 4], ecx
   8b 0d 64 92 40 00 ?? mov ecx, dword ds:[0x00409264<"00.DLL">]
   89 50 08 ?? mov dword ds:[eax + 8], edx
   8b 15 68 92 40 00 ?? mov edx, dword ds:[0x00409268<".DLL">]
   89 48 0c ?? mov dword ds:[eax + 12], ecx
   8b 0d 6c 92 40 00 ?? mov ecx, dword ds:[0x0040926c<"LL">]
   89 50 10 ?? mov dword ds:[eax + 0x10<16>], edx
   66 8b 15 70 92 40 00 ?? mov dx, word ds:[0x00409270]
   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 58 c2 40 00 ?? call dword ds:[0x0040c258]
  
  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 d9 e3 ff ff ?? call function 0x00402730
  
  L38: 8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c3 ?? ret
  
  