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