Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   51 ?? push ecx
   51 ?? push ecx
   56 ?? push esi
   8b 75 08 ?? mov esi, dword ss:[ebp + 8]
   81 3e 03 00 00 80 ?? cmp dword ds:[esi], 0x80000003
   0f 84 da 00 00 00 ?? je basic block L25
  
  L2: 57 ?? push edi
   e8 3f 08 00 00 ?? call function 0x004037db
  
  L3: 83 b8 80 00 00 00 00 ?? cmp dword ds:[eax + 0x00000080<128>], 0
   74 3f ?? je basic block L10
  
  L4: e8 31 08 00 00 ?? call function 0x004037db
  
  L5: 8d b8 80 00 00 00 ?? lea edi, ds:[eax + 0x00000080<128>]
   e8 94 05 00 00 ?? call function 0x00403549
  
  L6: 39 07 ?? cmp dword ds:[edi], eax
   74 2b ?? je basic block L10
  
  L7: 81 3e 4d 4f 43 e0 ?? cmp dword ds:[esi], 0xe0434f4d
   74 23 ?? je basic block L10
  
  L8: ff 75 24 ?? push dword ss:[ebp + 0x24<36>]
   ff 75 20 ?? push dword ss:[ebp + 0x20<32>]
   ff 75 18 ?? push dword ss:[ebp + 0x18<24>]
   ff 75 14 ?? push dword ss:[ebp + 0x14<20>]
   ff 75 10 ?? push dword ss:[ebp + 0x10<16>]
   ff 75 0c ?? push dword ss:[ebp + 12]
   56 ?? push esi
   e8 65 e6 ff ff ?? call function 0x0040163e
  
  L9: 83 c4 1c ?? add esp, 0x1c<28>
   85 c0 ?? test eax, eax
   0f 85 8b 00 00 00 ?? jne basic block L24
  
  L10: 8b 7d 18 ?? mov edi, dword ss:[ebp + 0x18<24>]
   83 7f 0c 00 ?? cmp dword ds:[edi + 12], 0
   75 05 ?? jne basic block L12
  
  L11: e8 85 0b 00 00 ?? call function 0x00403b77
  
  L12: 8b 75 1c ?? mov esi, dword ss:[ebp + 0x1c<28>]
   8d 45 f8 ?? lea eax, ss:[ebp + 0xf8<248,-8>]
   50 ?? push eax
   8d 45 fc ?? lea eax, ss:[ebp + 0xfc<252,-4>]
   50 ?? push eax
   56 ?? push esi
   ff 75 20 ?? push dword ss:[ebp + 0x20<32>]
   57 ?? push edi
   e8 ad e7 ff ff ?? call function 0x004017b4
  
  L13: 8b f8 ?? mov edi, eax
   8b 45 fc ?? mov eax, dword ss:[ebp + 0xfc<252,-4>]
   83 c4 14 ?? add esp, 0x14<20>
   3b 45 f8 ?? cmp eax, dword ss:[ebp + 0xf8<248,-8>]
   73 5b ?? jae basic block L24
  
  L14: 53 ?? push ebx
  
  L15: 3b 37 ?? cmp esi, dword ds:[edi]
   7c 47 ?? jl basic block L22
  
  L16: 3b 77 04 ?? cmp esi, dword ds:[edi + 4]
   7f 42 ?? jg basic block L22
  
  L17: 8b 47 0c ?? mov eax, dword ds:[edi + 12]
   8b 4f 10 ?? mov ecx, dword ds:[edi + 0x10<16>]
   c1 e0 04 ?? shl eax, 4
   03 c1 ?? add eax, ecx
   8b 48 f4 ?? mov ecx, dword ds:[eax + 0xf4<244,-12>]
   85 c9 ?? test ecx, ecx
   74 06 ?? je basic block L19
  
  L18: 80 79 08 00 ?? cmp byte ds:[ecx + 8], 0
   75 2a ?? jne basic block L22
  
  L19: 8d 58 f0 ?? lea ebx, ds:[eax + 0xf0<240,-16>]
   f6 03 40 ?? test byte ds:[ebx], 0x40<64>
   75 22 ?? jne basic block L22
  
  L20: ff 75 24 ?? push dword ss:[ebp + 0x24<36>]
   8b 75 0c ?? mov esi, dword ss:[ebp + 12]
   ff 75 20 ?? push dword ss:[ebp + 0x20<32>]
   6a 00 ?? push 0
   ff 75 18 ?? push dword ss:[ebp + 0x18<24>]
   ff 75 14 ?? push dword ss:[ebp + 0x14<20>]
   ff 75 10 ?? push dword ss:[ebp + 0x10<16>]
   ff 75 08 ?? push dword ss:[ebp + 8]
   e8 b7 fe ff ff ?? call function 0x00402f11
  
  L21: 8b 75 1c ?? mov esi, dword ss:[ebp + 0x1c<28>]
   83 c4 1c ?? add esp, 0x1c<28>
  
  L22: ff 45 fc ?? inc dword ss:[ebp + 0xfc<252,-4>]
   8b 45 fc ?? mov eax, dword ss:[ebp + 0xfc<252,-4>]
   83 c7 14 ?? add edi, 0x14<20>
   3b 45 f8 ?? cmp eax, dword ss:[ebp + 0xf8<248,-8>]
   72 a7 ?? jb basic block L15
  
  L23: 5b ?? pop ebx
  
  L24: 5f ?? pop edi
  
  L25: 5e ?? pop esi
   c9 ?? leave
   c3 ?? ret
  
  