Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   8b 45 14 ?? mov eax, dword ss:[ebp + 0x14<20>]
   83 ec 4c ?? sub esp, 0x4c<76>
   33 c9 ?? xor ecx, ecx
   53 ?? push ebx
   56 ?? push esi
   8b 75 08 ?? mov esi, dword ss:[ebp + 8]
   c7 00 00 00 00 00 ?? mov dword ds:[eax], 0
   4e ?? dec esi
   8b 45 0c ?? mov eax, dword ss:[ebp + 12]
   57 ?? push edi
   6a 1c ?? push 0x1c<28>
   66 89 08 ?? mov word ds:[eax], cx
   8d 45 b4 ?? lea eax, ss:[ebp + 0xb4<180,-76>]
   50 ?? push eax
   56 ?? push esi
   ff 15 10 e0 40 00 ?? call dword ds:[0x0040e010]
  
  L2: 85 c0 ?? test eax, eax
   0f 84 44 03 00 00 ?? je basic block L78
  
  L3: ff 75 1c ?? push dword ss:[ebp + 0x1c<28>]
   ff 75 18 ?? push dword ss:[ebp + 0x18<24>]
   ff 75 b8 ?? push dword ss:[ebp + 0xb8<184,-72>]
   e8 02 09 00 00 ?? call function 0x00406f63
  
  L4: 83 c4 0c ?? add esp, 12
   85 c0 ?? test eax, eax
   0f 84 2b 03 00 00 ?? je basic block L78
  
  L5: 8b 45 b8 ?? mov eax, dword ss:[ebp + 0xb8<184,-72>]
   b9 4d 5a 00 00 ?? mov ecx, 0x00005a4d<23117>
   66 39 08 ?? cmp word ds:[eax], cx
   0f 85 1a 03 00 00 ?? jne basic block L78
  
  L6: 8b 48 3c ?? mov ecx, dword ds:[eax + 0x3c<60>]
   85 c9 ?? test ecx, ecx
   0f 8e 0f 03 00 00 ?? jle basic block L78
  
  L7: 03 c8 ?? add ecx, eax
   81 39 50 45 00 00 ?? cmp dword ds:[ecx], 0x00004550<17744>
   0f 85 01 03 00 00 ?? jne basic block L78
  
  L8: 0f b7 51 14 ?? movzx edx, word ds:[ecx + 0x14<20>]
   2b f0 ?? sub esi, eax
   0f b7 79 06 ?? movzx edi, word ds:[ecx + 6]
   83 c2 20 ?? add edx, 0x20<32>
   33 db ?? xor ebx, ebx
   33 c0 ?? xor eax, eax
   85 ff ?? test edi, edi
   74 1c ?? je basic block L13
  
  L9: 03 ca ?? add ecx, edx
   8d 49 00 ?? lea ecx, ds:[ecx + 0]
  
  L10: 8b 51 04 ?? mov edx, dword ds:[ecx + 4]
   3b f2 ?? cmp esi, edx
   72 08 ?? jb basic block L12
  
  L11: 8b de ?? mov ebx, esi
   2b da ?? sub ebx, edx
   3b 31 ?? cmp esi, dword ds:[ecx]
   72 08 ?? jb basic block L13
  
  L12: 40 ?? inc eax
   83 c1 28 ?? add ecx, 0x28<40>
   3b c7 ?? cmp eax, edi
   72 e9 ?? jb basic block L10
  
  L13: 3b c7 ?? cmp eax, edi
   0f 84 c8 02 00 00 ?? je basic block L78
  
  L14: 40 ?? inc eax
   80 3d 05 d8 40 00 00 ?? cmp byte ds:[0x0040d805], 0
   89 45 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], eax
   75 28 ?? jne basic block L19
  
  L15: 83 3d 00 d8 40 00 00 ?? cmp dword ds:[0x0040d800], 0
   0f 85 ae 02 00 00 ?? jne basic block L78
  
  L16: e8 92 f9 ff ff ?? call function 0x00406080
  
  L17: a3 00 d8 40 00 ?? mov dword ds:[0x0040d800], eax
   85 c0 ?? test eax, eax
   0f 84 9c 02 00 00 ?? je basic block L78
  
  L18: c6 05 05 d8 40 00 01 ?? mov byte ds:[0x0040d805], 1
   eb 05 ?? jmp basic block L20
  
  L19: a1 00 d8 40 00 ?? mov eax, dword ds:[0x0040d800]
  
  L20: 68 e4 b9 40 00 ?? push 0x0040b9e4<"PDBOpenValidate5">
   50 ?? push eax
   ff 15 08 e0 40 00 ?? call dword ds:[0x0040e008]
  
  L21: 8b f0 ?? mov esi, eax
   85 f6 ?? test esi, esi
   0f 84 78 02 00 00 ?? je basic block L78
  
  L22: 8d 45 e8 ?? lea eax, ss:[ebp + 0xe8<232,-24>]
   8b ce ?? mov ecx, esi
   50 ?? push eax
   6a 00 ?? push 0
   6a 00 ?? push 0
   8d 45 d0 ?? lea eax, ss:[ebp + 0xd0<208,-48>]
   50 ?? push eax
   6a 00 ?? push 0
   6a 00 ?? push 0
   6a 00 ?? push 0
   ff 75 18 ?? push dword ss:[ebp + 0x18<24>]
   ff 15 00 f0 40 00 ?? call dword ds:[0x0040f000]
  
  L23: ff d6 ?? call esi
  
  L24: 83 c4 20 ?? add esp, 0x20<32>
   85 c0 ?? test eax, eax
   0f 84 4e 02 00 00 ?? je basic block L78
  
  L25: 8b 7d e8 ?? mov edi, dword ss:[ebp + 0xe8<232,-24>]
   c7 45 f8 00 00 00 00 ?? mov dword ss:[ebp + 0xf8<248,-8>], 0
   c7 45 dc 00 00 00 00 ?? mov dword ss:[ebp + 0xdc<220,-36>], 0
   8b 07 ?? mov eax, dword ds:[edi]
   8b 30 ?? mov esi, dword ds:[eax]
   8b ce ?? mov ecx, esi
   ff 15 00 f0 40 00 ?? call dword ds:[0x0040f000]
  
  L26: 8b cf ?? mov ecx, edi
   ff d6 ?? call esi
  
  L27: 3d 41 91 32 01 ?? cmp eax, 0x01329141
   0f 85 3f 01 00 00 ?? jne basic block L59
  
  L28: 8b 7d e8 ?? mov edi, dword ss:[ebp + 0xe8<232,-24>]
   8b 07 ?? mov eax, dword ds:[edi]
   8b 70 1c ?? mov esi, dword ds:[eax + 0x1c<28>]
   8d 45 e0 ?? lea eax, ss:[ebp + 0xe0<224,-32>]
   50 ?? push eax
   68 f8 b9 40 00 ?? push 0x0040b9f8<"r">
   6a 00 ?? push 0
   8b ce ?? mov ecx, esi
   ff 15 00 f0 40 00 ?? call dword ds:[0x0040f000]
  
  L29: 8b cf ?? mov ecx, edi
   ff d6 ?? call esi
  
  L30: 85 c0 ?? test eax, eax
   0f 84 18 01 00 00 ?? je basic block L59
  
  L31: 8b 7d e0 ?? mov edi, dword ss:[ebp + 0xe0<224,-32>]
   6a 00 ?? push 0
   6a 00 ?? push 0
   6a 00 ?? push 0
   8b 07 ?? mov eax, dword ds:[edi]
   8b 70 20 ?? mov esi, dword ds:[eax + 0x20<32>]
   8d 45 ec ?? lea eax, ss:[ebp + 0xec<236,-20>]
   50 ?? push eax
   53 ?? push ebx
   ff 75 f4 ?? push dword ss:[ebp + 0xf4<244,-12>]
   8b ce ?? mov ecx, esi
   ff 15 00 f0 40 00 ?? call dword ds:[0x0040f000]
  
  L32: 8b cf ?? mov ecx, edi
   ff d6 ?? call esi
  
  L33: 85 c0 ?? test eax, eax
   0f 84 da 00 00 00 ?? je basic block L57
  
  L34: 8b 7d ec ?? mov edi, dword ss:[ebp + 0xec<236,-20>]
   8b 07 ?? mov eax, dword ds:[edi]
   8b 70 68 ?? mov esi, dword ds:[eax + 0x68<104>]
   8d 45 f8 ?? lea eax, ss:[ebp + 0xf8<248,-8>]
   50 ?? push eax
   8b ce ?? mov ecx, esi
   ff 15 00 f0 40 00 ?? call dword ds:[0x0040f000]
  
  L35: 8b cf ?? mov ecx, edi
   ff d6 ?? call esi
  
  L36: 84 c0 ?? test al, al
   0f 84 a6 00 00 00 ?? je basic block L55
  
  L37: 8b 7d f8 ?? mov edi, dword ss:[ebp + 0xf8<248,-8>]
   85 ff ?? test edi, edi
   0f 84 9b 00 00 00 ?? je basic block L55
  
  L38: 8b 07 ?? mov eax, dword ds:[edi]
   8b 70 08 ?? mov esi, dword ds:[eax + 8]
   8b ce ?? mov ecx, esi
   ff 15 00 f0 40 00 ?? call dword ds:[0x0040f000]
  
  L39: 8b cf ?? mov ecx, edi
   ff d6 ?? call esi
  
  L40: 85 c0 ?? test eax, eax
   74 61 ?? je basic block L50
  
  L41: 8b 7d f8 ?? mov edi, dword ss:[ebp + 0xf8<248,-8>]
   6a 00 ?? push 0
   8b 07 ?? mov eax, dword ds:[edi]
   8b 70 0c ?? mov esi, dword ds:[eax + 12]
   8d 45 f0 ?? lea eax, ss:[ebp + 0xf0<240,-16>]
   50 ?? push eax
   8d 45 d8 ?? lea eax, ss:[ebp + 0xd8<216,-40>]
   8b ce ?? mov ecx, esi
   50 ?? push eax
   8d 45 fc ?? lea eax, ss:[ebp + 0xfc<252,-4>]
   50 ?? push eax
   8d 45 e4 ?? lea eax, ss:[ebp + 0xe4<228,-28>]
   50 ?? push eax
   6a 00 ?? push 0
   ff 15 00 f0 40 00 ?? call dword ds:[0x0040f000]
  
  L42: 8b cf ?? mov ecx, edi
   ff d6 ?? call esi
  
  L43: 84 c0 ?? test al, al
   74 47 ?? je basic block L53
  
  L44: 0f b7 45 fc ?? movzx eax, word ss:[ebp + 0xfc<252,-4>]
   3b 45 f4 ?? cmp eax, dword ss:[ebp + 0xf4<244,-12>]
   75 14 ?? jne basic block L47
  
  L45: 8b 4d e4 ?? mov ecx, dword ss:[ebp + 0xe4<228,-28>]
   3b cb ?? cmp ecx, ebx
   77 0d ?? ja basic block L47
  
  L46: 8b 45 d8 ?? mov eax, dword ss:[ebp + 0xd8<216,-40>]
   03 c1 ?? add eax, ecx
   3b d8 ?? cmp ebx, eax
   0f 82 83 00 00 00 ?? jb basic block L62
  
  L47: 8b 7d f8 ?? mov edi, dword ss:[ebp + 0xf8<248,-8>]
   8b 07 ?? mov eax, dword ds:[edi]
   8b 70 08 ?? mov esi, dword ds:[eax + 8]
   8b ce ?? mov ecx, esi
   ff 15 00 f0 40 00 ?? call dword ds:[0x0040f000]
  
  L48: 8b cf ?? mov ecx, edi
   ff d6 ?? call esi
  
  L49: 85 c0 ?? test eax, eax
   75 9f ?? jne basic block L41
  
  L50: 33 c9 ?? xor ecx, ecx
  
  L51: 51 ?? push ecx
   6a 00 ?? push 0
   ff 15 14 e0 40 00 ?? call dword ds:[0x0040e014]
  
  L52: 50 ?? push eax
   ff 15 18 e0 40 00 ?? call dword ds:[0x0040e018]
  
  L53: 8b 7d f8 ?? mov edi, dword ss:[ebp + 0xf8<248,-8>]
   8b 07 ?? mov eax, dword ds:[edi]
   8b 30 ?? mov esi, dword ds:[eax]
   8b ce ?? mov ecx, esi
   ff 15 00 f0 40 00 ?? call dword ds:[0x0040f000]
  
  L54: 8b cf ?? mov ecx, edi
   ff d6 ?? call esi
  
  L55: 8b 7d ec ?? mov edi, dword ss:[ebp + 0xec<236,-20>]
   8b 07 ?? mov eax, dword ds:[edi]
   8b 70 40 ?? mov esi, dword ds:[eax + 0x40<64>]
   8b ce ?? mov ecx, esi
   ff 15 00 f0 40 00 ?? call dword ds:[0x0040f000]
  
  L56: 8b cf ?? mov ecx, edi
   ff d6 ?? call esi
  
  L57: 8b 7d e0 ?? mov edi, dword ss:[ebp + 0xe0<224,-32>]
   8b 07 ?? mov eax, dword ds:[edi]
   8b 70 38 ?? mov esi, dword ds:[eax + 0x38<56>]
   8b ce ?? mov ecx, esi
   ff 15 00 f0 40 00 ?? call dword ds:[0x0040f000]
  
  L58: 8b cf ?? mov ecx, edi
   ff d6 ?? call esi
  
  L59: 8b 7d e8 ?? mov edi, dword ss:[ebp + 0xe8<232,-24>]
   8b 17 ?? mov edx, dword ds:[edi]
   8b 72 2c ?? mov esi, dword ds:[edx + 0x2c<44>]
   8b ce ?? mov ecx, esi
   ff 15 00 f0 40 00 ?? call dword ds:[0x0040f000]
  
  L60: 8b cf ?? mov ecx, edi
   ff d6 ?? call esi
  
  L61: 8b 45 dc ?? mov eax, dword ss:[ebp + 0xdc<220,-36>]
   5f ?? pop edi
   5e ?? pop esi
   5b ?? pop ebx
   8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c3 ?? ret
  
  L62: 8b 75 f0 ?? mov esi, dword ss:[ebp + 0xf0<240,-16>]
   85 f6 ?? test esi, esi
   74 a0 ?? je basic block L53
  
  L63: 81 fe ff ff ff 1f ?? cmp esi, 0x1fffffff
   73 98 ?? jae basic block L53
  
  L64: c1 e6 03 ?? shl esi, 3
   ff 15 14 e0 40 00 ?? call dword ds:[0x0040e014]
  
  L65: 56 ?? push esi
   6a 00 ?? push 0
   50 ?? push eax
   ff 15 1c e0 40 00 ?? call dword ds:[0x0040e01c]
  
  L66: 89 45 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], eax
   85 c0 ?? test eax, eax
   0f 84 7a ff ff ff ?? je basic block L53
  
  L67: 8b 7d f8 ?? mov edi, dword ss:[ebp + 0xf8<248,-8>]
   50 ?? push eax
   8d 45 f0 ?? lea eax, ss:[ebp + 0xf0<240,-16>]
   50 ?? push eax
   8b 0f ?? mov ecx, dword ds:[edi]
   8d 45 d4 ?? lea eax, ss:[ebp + 0xd4<212,-44>]
   6a 00 ?? push 0
   6a 00 ?? push 0
   6a 00 ?? push 0
   8b 71 0c ?? mov esi, dword ds:[ecx + 12]
   8b ce ?? mov ecx, esi
   50 ?? push eax
   ff 15 00 f0 40 00 ?? call dword ds:[0x0040f000]
  
  L68: 8b cf ?? mov ecx, edi
   ff d6 ?? call esi
  
  L69: 8b 4d f4 ?? mov ecx, dword ss:[ebp + 0xf4<244,-12>]
   84 c0 ?? test al, al
   0f 84 3c ff ff ff ?? je basic block L51
  
  L70: 2b 5d e4 ?? sub ebx, dword ss:[ebp + 0xe4<228,-28>]
   3b 19 ?? cmp ebx, dword ds:[ecx]
   0f 82 31 ff ff ff ?? jb basic block L51
  
  L71: 8b 55 f0 ?? mov edx, dword ss:[ebp + 0xf0<240,-16>]
   b8 01 00 00 00 ?? mov eax, 1
   3b d0 ?? cmp edx, eax
   76 0a ?? jbe basic block L74
  
  L72: 3b 1c c1 ?? cmp ebx, dword ds:[ecx + eax * 8]
   72 05 ?? jb basic block L74
  
  L73: 40 ?? inc eax
   3b c2 ?? cmp eax, edx
   72 f6 ?? jb basic block L72
  
  L74: 8b 44 c1 fc ?? mov eax, dword ds:[ecx + eax * 8 + 0xfc<252,-4>]
   8b 4d 14 ?? mov ecx, dword ss:[ebp + 0x14<20>]
   25 ff ff ff 00 ?? and eax, 0x00ffffff
   8b 7d ec ?? mov edi, dword ss:[ebp + 0xec<236,-20>]
   6a 00 ?? push 0
   6a 00 ?? push 0
   89 01 ?? mov dword ds:[ecx], eax
   8b 07 ?? mov eax, dword ds:[edi]
   6a 00 ?? push 0
   8b 70 70 ?? mov esi, dword ds:[eax + 0x70<112>]
   8d 45 10 ?? lea eax, ss:[ebp + 0x10<16>]
   50 ?? push eax
   ff 75 0c ?? push dword ss:[ebp + 12]
   8b ce ?? mov ecx, esi
   ff 75 d4 ?? push dword ss:[ebp + 0xd4<212,-44>]
   ff 15 00 f0 40 00 ?? call dword ds:[0x0040f000]
  
  L75: 8b cf ?? mov ecx, edi
   ff d6 ?? call esi
  
  L76: 8b 4d f4 ?? mov ecx, dword ss:[ebp + 0xf4<244,-12>]
   84 c0 ?? test al, al
   0f 84 de fe ff ff ?? je basic block L51
  
  L77: c7 45 dc 01 00 00 00 ?? mov dword ss:[ebp + 0xdc<220,-36>], 1
   e9 d2 fe ff ff ?? jmp basic block L51
  
  L78: 5f ?? pop edi
   5e ?? pop esi
   33 c0 ?? xor eax, eax
   5b ?? pop ebx
   8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c3 ?? ret
  
  