Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   8b 45 14 ?? mov eax, dword ss:[ebp + 0x14<20>]
   8b 55 0c ?? mov edx, dword ss:[ebp + 12]
   83 ec 44 ?? sub esp, 0x44<68>
   56 ?? push esi
   8b 75 08 ?? mov esi, dword ss:[ebp + 8]
   c7 00 00 00 00 00 ?? mov dword ds:[eax], 0
   6a 1c ?? push 0x1c<28>
   8d 45 bc ?? lea eax, ss:[ebp + 0xbc<188,-68>]
   50 ?? push eax
   33 c9 ?? xor ecx, ecx
   4e ?? dec esi
   56 ?? push esi
   66 89 0a ?? mov word ds:[edx], cx
   ff 15 b0 a1 40 00 ?? call dword ds:[0x0040a1b0]
  
  L2: 85 c0 ?? test eax, eax
   75 07 ?? jne basic block L4
  
  L3: 33 c0 ?? xor eax, eax
   5e ?? pop esi
   8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c3 ?? ret
  
  L4: 8b 4d 1c ?? mov ecx, dword ss:[ebp + 0x1c<28>]
   8b 55 18 ?? mov edx, dword ss:[ebp + 0x18<24>]
   8b 45 c0 ?? mov eax, dword ss:[ebp + 0xc0<192,-64>]
   51 ?? push ecx
   52 ?? push edx
   50 ?? push eax
   ff 15 b4 a1 40 00 ?? call dword ds:[0x0040a1b4]
  
  L5: 85 c0 ?? test eax, eax
   74 e3 ?? je basic block L3
  
  L6: 8b 55 c0 ?? mov edx, dword ss:[ebp + 0xc0<192,-64>]
   b9 4d 5a 00 00 ?? mov ecx, 0x00005a4d<23117>
   66 39 0a ?? cmp word ds:[edx], cx
   75 d6 ?? jne basic block L3
  
  L7: 8b 42 3c ?? mov eax, dword ds:[edx + 0x3c<60>]
   85 c0 ?? test eax, eax
   7e cf ?? jle basic block L3
  
  L8: 03 c2 ?? add eax, edx
   81 38 50 45 00 00 ?? cmp dword ds:[eax], 0x00004550<17744>
   75 c5 ?? jne basic block L3
  
  L9: 0f b7 48 06 ?? movzx ecx, word ds:[eax + 6]
   53 ?? push ebx
   57 ?? push edi
   0f b7 78 14 ?? movzx edi, word ds:[eax + 0x14<20>]
   8d 44 07 24 ?? lea eax, ds:[edi + eax + 0x24<36>]
   2b f2 ?? sub esi, edx
   33 ff ?? xor edi, edi
   33 db ?? xor ebx, ebx
   85 c9 ?? test ecx, ecx
   74 17 ?? je basic block L13
  
  L10: 8b 10 ?? mov edx, dword ds:[eax]
   3b f2 ?? cmp esi, edx
   72 09 ?? jb basic block L12
  
  L11: 8b fe ?? mov edi, esi
   2b fa ?? sub edi, edx
   3b 70 fc ?? cmp esi, dword ds:[eax + 0xfc<252,-4>]
   72 08 ?? jb basic block L13
  
  L12: 43 ?? inc ebx
   83 c0 28 ?? add eax, 0x28<40>
   3b d9 ?? cmp ebx, ecx
   72 e9 ?? jb basic block L10
  
  L13: 3b d9 ?? cmp ebx, ecx
   74 5b ?? je basic block L24
  
  L14: 43 ?? inc ebx
   80 3d f4 94 40 00 00 ?? cmp byte ds:[0x004094f4], 0
   75 20 ?? jne basic block L19
  
  L15: 83 3d f0 94 40 00 00 ?? cmp dword ds:[0x004094f0], 0
   75 48 ?? jne basic block L24
  
  L16: e8 0b 02 00 00 ?? call function 0x00402da0
  
  L17: a3 f0 94 40 00 ?? mov dword ds:[0x004094f0], eax
   85 c0 ?? test eax, eax
   74 3a ?? je basic block L24
  
  L18: c6 05 f4 94 40 00 01 ?? mov byte ds:[0x004094f4], 1
   eb 05 ?? jmp basic block L20
  
  L19: a1 f0 94 40 00 ?? mov eax, dword ds:[0x004094f0]
  
  L20: 68 f0 6f 40 00 ?? push 0x00406ff0<"PDBOpenValidate5">
   50 ?? push eax
   ff 15 e0 a1 40 00 ?? call dword ds:[0x0040a1e0]
  
  L21: 33 f6 ?? xor esi, esi
   3b c6 ?? cmp eax, esi
   74 1a ?? je basic block L24
  
  L22: 8d 55 f0 ?? lea edx, ss:[ebp + 0xf0<240,-16>]
   52 ?? push edx
   8b 55 18 ?? mov edx, dword ss:[ebp + 0x18<24>]
   56 ?? push esi
   56 ?? push esi
   8d 4d d8 ?? lea ecx, ss:[ebp + 0xd8<216,-40>]
   51 ?? push ecx
   56 ?? push esi
   56 ?? push esi
   56 ?? push esi
   52 ?? push edx
   ff d0 ?? call eax
  
  L23: 83 c4 20 ?? add esp, 0x20<32>
   85 c0 ?? test eax, eax
   75 09 ?? jne basic block L25
  
  L24: 5f ?? pop edi
   5b ?? pop ebx
   33 c0 ?? xor eax, eax
   5e ?? pop esi
   8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c3 ?? ret
  
  L25: 8b 4d f0 ?? mov ecx, dword ss:[ebp + 0xf0<240,-16>]
   8b 01 ?? mov eax, dword ds:[ecx]
   8b 10 ?? mov edx, dword ds:[eax]
   89 75 e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], esi
   ff d2 ?? call edx
  
  L26: 3d b5 a5 31 01 ?? cmp eax, 0x0131a5b5
   0f 85 8c 01 00 00 ?? jne basic block L63
  
  L27: 8b 4d f0 ?? mov ecx, dword ss:[ebp + 0xf0<240,-16>]
   8b 01 ?? mov eax, dword ds:[ecx]
   8b 40 1c ?? mov eax, dword ds:[eax + 0x1c<28>]
   8d 55 e8 ?? lea edx, ss:[ebp + 0xe8<232,-24>]
   52 ?? push edx
   68 ec 6f 40 00 ?? push 0x00406fec<"r">
   56 ?? push esi
   ff d0 ?? call eax
  
  L28: 85 c0 ?? test eax, eax
   0f 84 70 01 00 00 ?? je basic block L63
  
  L29: 8b 4d e8 ?? mov ecx, dword ss:[ebp + 0xe8<232,-24>]
   8b 11 ?? mov edx, dword ds:[ecx]
   8b 52 20 ?? mov edx, dword ds:[edx + 0x20<32>]
   56 ?? push esi
   56 ?? push esi
   56 ?? push esi
   8d 45 f4 ?? lea eax, ss:[ebp + 0xf4<244,-12>]
   50 ?? push eax
   57 ?? push edi
   53 ?? push ebx
   ff d2 ?? call edx
  
  L30: 85 c0 ?? test eax, eax
   0f 84 4b 01 00 00 ?? je basic block L62
  
  L31: 8b 4d f4 ?? mov ecx, dword ss:[ebp + 0xf4<244,-12>]
   89 75 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], esi
   8b 01 ?? mov eax, dword ds:[ecx]
   8b 40 68 ?? mov eax, dword ds:[eax + 0x68<104>]
   8d 55 fc ?? lea edx, ss:[ebp + 0xfc<252,-4>]
   52 ?? push edx
   ff d0 ?? call eax
  
  L32: 84 c0 ?? test al, al
   0f 84 28 01 00 00 ?? je basic block L61
  
  L33: 8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
   3b ce ?? cmp ecx, esi
   0f 84 1d 01 00 00 ?? je basic block L61
  
  L34: 8b 11 ?? mov edx, dword ds:[ecx]
   8b 42 08 ?? mov eax, dword ds:[edx + 8]
   ff d0 ?? call eax
  
  L35: 85 c0 ?? test eax, eax
   0f 84 f5 00 00 00 ?? je basic block L58
  
  L36: 8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
   8b 11 ?? mov edx, dword ds:[ecx]
   8b 52 0c ?? mov edx, dword ds:[edx + 12]
   6a 00 ?? push 0
   8d 45 f8 ?? lea eax, ss:[ebp + 0xf8<248,-8>]
   50 ?? push eax
   8d 45 e0 ?? lea eax, ss:[ebp + 0xe0<224,-32>]
   50 ?? push eax
   8d 45 08 ?? lea eax, ss:[ebp + 8]
   50 ?? push eax
   8d 45 ec ?? lea eax, ss:[ebp + 0xec<236,-20>]
   50 ?? push eax
   6a 00 ?? push 0
   ff d2 ?? call edx
  
  L37: 84 c0 ?? test al, al
   0f 84 df 00 00 00 ?? je basic block L60
  
  L38: 0f b7 45 08 ?? movzx eax, word ss:[ebp + 8]
   3b c3 ?? cmp eax, ebx
   75 0e ?? jne basic block L41
  
  L39: 8b 45 ec ?? mov eax, dword ss:[ebp + 0xec<236,-20>]
   3b c7 ?? cmp eax, edi
   77 07 ?? ja basic block L41
  
  L40: 03 45 e0 ?? add eax, dword ss:[ebp + 0xe0<224,-32>]
   3b f8 ?? cmp edi, eax
   72 13 ?? jb basic block L44
  
  L41: 8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
   8b 11 ?? mov edx, dword ds:[ecx]
   8b 42 08 ?? mov eax, dword ds:[edx + 8]
   ff d0 ?? call eax
  
  L42: 85 c0 ?? test eax, eax
   75 b6 ?? jne basic block L36
  
  L43: e9 a6 00 00 00 ?? jmp basic block L58
  
  L44: 8b 45 f8 ?? mov eax, dword ss:[ebp + 0xf8<248,-8>]
   85 c0 ?? test eax, eax
   0f 84 ab 00 00 00 ?? je basic block L60
  
  L45: 3d ff ff ff 1f ?? cmp eax, 0x1fffffff
   0f 83 a0 00 00 00 ?? jae basic block L60
  
  L46: 8d 0c c5 00 00 00 00 ?? lea ecx, ds:[0 + eax * 8]
   51 ?? push ecx
   6a 00 ?? push 0
   ff 15 b8 a1 40 00 ?? call dword ds:[0x0040a1b8]
  
  L47: 50 ?? push eax
   ff 15 bc a1 40 00 ?? call dword ds:[0x0040a1bc]
  
  L48: 8b f0 ?? mov esi, eax
   85 f6 ?? test esi, esi
   0f 84 7f 00 00 00 ?? je basic block L60
  
  L49: 8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
   8b 11 ?? mov edx, dword ds:[ecx]
   8b 52 0c ?? mov edx, dword ds:[edx + 12]
   56 ?? push esi
   8d 45 f8 ?? lea eax, ss:[ebp + 0xf8<248,-8>]
   50 ?? push eax
   6a 00 ?? push 0
   6a 00 ?? push 0
   6a 00 ?? push 0
   8d 45 dc ?? lea eax, ss:[ebp + 0xdc<220,-36>]
   50 ?? push eax
   ff d2 ?? call edx
  
  L50: 84 c0 ?? test al, al
   74 52 ?? je basic block L58
  
  L51: 2b 7d ec ?? sub edi, dword ss:[ebp + 0xec<236,-20>]
   3b 3e ?? cmp edi, dword ds:[esi]
   72 4b ?? jb basic block L58
  
  L52: 8b 4d f8 ?? mov ecx, dword ss:[ebp + 0xf8<248,-8>]
   b8 01 00 00 00 ?? mov eax, 1
   3b c8 ?? cmp ecx, eax
   76 0a ?? jbe basic block L55
  
  L53: 3b 3c c6 ?? cmp edi, dword ds:[esi + eax * 8]
   72 05 ?? jb basic block L55
  
  L54: 40 ?? inc eax
   3b c1 ?? cmp eax, ecx
   72 f6 ?? jb basic block L53
  
  L55: 8b 44 c6 fc ?? mov eax, dword ds:[esi + eax * 8 + 0xfc<252,-4>]
   8b 4d 14 ?? mov ecx, dword ss:[ebp + 0x14<20>]
   6a 00 ?? push 0
   25 ff ff ff 00 ?? and eax, 0x00ffffff
   89 01 ?? mov dword ds:[ecx], eax
   8b 4d f4 ?? mov ecx, dword ss:[ebp + 0xf4<244,-12>]
   8b 11 ?? mov edx, dword ds:[ecx]
   8b 52 70 ?? mov edx, dword ds:[edx + 0x70<112>]
   6a 00 ?? push 0
   6a 00 ?? push 0
   8d 45 10 ?? lea eax, ss:[ebp + 0x10<16>]
   50 ?? push eax
   8b 45 0c ?? mov eax, dword ss:[ebp + 12]
   50 ?? push eax
   8b 45 dc ?? mov eax, dword ss:[ebp + 0xdc<220,-36>]
   50 ?? push eax
   ff d2 ?? call edx
  
  L56: 84 c0 ?? test al, al
   74 07 ?? je basic block L58
  
  L57: c7 45 e4 01 00 00 00 ?? mov dword ss:[ebp + 0xe4<228,-28>], 1
  
  L58: 56 ?? push esi
   6a 00 ?? push 0
   ff 15 b8 a1 40 00 ?? call dword ds:[0x0040a1b8]
  
  L59: 50 ?? push eax
   ff 15 c0 a1 40 00 ?? call dword ds:[0x0040a1c0]
  
  L60: 8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
   8b 01 ?? mov eax, dword ds:[ecx]
   8b 10 ?? mov edx, dword ds:[eax]
   ff d2 ?? call edx
  
  L61: 8b 4d f4 ?? mov ecx, dword ss:[ebp + 0xf4<244,-12>]
   8b 01 ?? mov eax, dword ds:[ecx]
   8b 50 40 ?? mov edx, dword ds:[eax + 0x40<64>]
   ff d2 ?? call edx
  
  L62: 8b 4d e8 ?? mov ecx, dword ss:[ebp + 0xe8<232,-24>]
   8b 01 ?? mov eax, dword ds:[ecx]
   8b 50 38 ?? mov edx, dword ds:[eax + 0x38<56>]
   ff d2 ?? call edx
  
  L63: 8b 4d f0 ?? mov ecx, dword ss:[ebp + 0xf0<240,-16>]
   8b 01 ?? mov eax, dword ds:[ecx]
   8b 50 28 ?? mov edx, dword ds:[eax + 0x28<40>]
   ff d2 ?? call edx
  
  L64: 8b 45 e4 ?? mov eax, dword ss:[ebp + 0xe4<228,-28>]
   5f ?? pop edi
   5b ?? pop ebx
   5e ?? pop esi
   8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c3 ?? ret
  
  