Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 3d 20 4d 42 00 00 ?? cmp dword ds:[0x00424d20], 0
   56 ?? push esi
   8b 35 c4 40 42 00 ?? mov esi, dword ds:[0x004240c4]
   75 04 ?? jne basic block L3
  
  L2: 33 c0 ?? xor eax, eax
   eb 63 ?? jmp basic block L20
  
  L3: 57 ?? push edi
   85 f6 ?? test esi, esi
   75 1b ?? jne basic block L8
  
  L4: 39 35 cc 40 42 00 ?? cmp dword ds:[0x004240cc], esi
   74 53 ?? je basic block L18
  
  L5: e8 a3 07 00 00 ?? call function 0x00416819
  
  L6: 85 c0 ?? test eax, eax
   75 4a ?? jne basic block L18
  
  L7: 8b 35 c4 40 42 00 ?? mov esi, dword ds:[0x004240c4]
   85 f6 ?? test esi, esi
   74 40 ?? je basic block L18
  
  L8: 83 7d 08 00 ?? cmp dword ss:[ebp + 8], 0
   74 3a ?? je basic block L18
  
  L9: ff 75 08 ?? push dword ss:[ebp + 8]
   e8 9e d6 fe ff ?? call function 0x00403730
  
  L10: 59 ?? pop ecx
   8b f8 ?? mov edi, eax
   eb 27 ?? jmp basic block L17
  
  L11: 50 ?? push eax
   e8 93 d6 fe ff ?? call function 0x00403730
  
  L12: 59 ?? pop ecx
   3b c7 ?? cmp eax, edi
   76 19 ?? jbe basic block L16
  
  L13: 8b 06 ?? mov eax, dword ds:[esi]
   80 3c 38 3d ?? cmp byte ds:[eax + edi], 0x3d<61>
   75 11 ?? jne basic block L16
  
  L14: 57 ?? push edi
   ff 75 08 ?? push dword ss:[ebp + 8]
   50 ?? push eax
   e8 4b 07 00 00 ?? call function 0x004167ff
  
  L15: 83 c4 0c ?? add esp, 12
   85 c0 ?? test eax, eax
   74 0f ?? je basic block L21
  
  L16: 83 c6 04 ?? add esi, 4
  
  L17: 8b 06 ?? mov eax, dword ds:[esi]
   85 c0 ?? test eax, eax
   75 d3 ?? jne basic block L11
  
  L18: 33 c0 ?? xor eax, eax
  
  L19: 5f ?? pop edi
  
  L20: 5e ?? pop esi
   5d ?? pop ebp
   c3 ?? ret
  
  L21: 8b 06 ?? mov eax, dword ds:[esi]
   8d 44 38 01 ?? lea eax, ds:[eax + edi + 1]
   eb f4 ?? jmp basic block L19
  
  