Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   57 ?? push edi
   8b f9 ?? mov edi, ecx
   80 7f 04 01 ?? cmp byte ds:[edi + 4], 1
   7f 4f ?? jg basic block L16
  
  L2: 53 ?? push ebx
   56 ?? push esi
   8b 75 08 ?? mov esi, dword ss:[ebp + 8]
   33 db ?? xor ebx, ebx
   3b f3 ?? cmp esi, ebx
   74 42 ?? je basic block L15
  
  L3: 38 1e ?? cmp byte ds:[esi], bl
   74 3e ?? je basic block L15
  
  L4: 39 1f ?? cmp dword ds:[edi], ebx
   75 08 ?? jne basic block L7
  
  L5: 56 ?? push esi
   e8 27 fe ff ff ?? call function 0x0040b246
  
  L6: eb 32 ?? jmp basic block L15
  
  L7: 53 ?? push ebx
   6a 0c ?? push 12
   b9 9c 8a 42 00 ?? mov ecx, 0x00428a9c
   e8 ab f1 ff ff ?? call function 0x0040a5d9
  
  L8: 3b c3 ?? cmp eax, ebx
   74 17 ?? je basic block L13
  
  L9: 33 d2 ?? xor edx, edx
   38 1e ?? cmp byte ds:[esi], bl
   74 06 ?? je basic block L11
  
  L10: 42 ?? inc edx
   38 1c 32 ?? cmp byte ds:[edx + esi], bl
   75 fa ?? jne basic block L10
  
  L11: 52 ?? push edx
   56 ?? push esi
   8b c8 ?? mov ecx, eax
   e8 21 f9 ff ff ?? call function 0x0040ad68
  
  L12: eb 02 ?? jmp basic block L14
  
  L13: 33 c0 ?? xor eax, eax
  
  L14: 50 ?? push eax
   8b cf ?? mov ecx, edi
   e8 c8 f7 ff ff ?? call function 0x0040ac1b
  
  L15: 5e ?? pop esi
   5b ?? pop ebx
  
  L16: 8b c7 ?? mov eax, edi
   5f ?? pop edi
   5d ?? pop ebp
   c2 04 00 ?? ret 4
  
  