Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   57 ?? push edi
   56 ?? push esi
   53 ?? push ebx
   8b 4d 10 ?? mov ecx, dword ss:[ebp + 0x10<16>]
   0b c9 ?? or ecx, ecx
   74 4d ?? je basic block L16
  
  L2: 8b 75 08 ?? mov esi, dword ss:[ebp + 8]
   8b 7d 0c ?? mov edi, dword ss:[ebp + 12]
   b7 41 ?? mov bh, 0x41<65>
   b3 5a ?? mov bl, 0x5a<90>
   b6 20 ?? mov dh, 0x20<32>
   8d 49 00 ?? lea ecx, ds:[ecx + 0]
  
  L3: 8a 26 ?? mov ah, byte ds:[esi]
   0a e4 ?? or ah, ah
   8a 07 ?? mov al, byte ds:[edi]
   74 27 ?? je basic block L13
  
  L4: 0a c0 ?? or al, al
   74 23 ?? je basic block L13
  
  L5: 83 c6 01 ?? add esi, 1
   83 c7 01 ?? add edi, 1
   3a e7 ?? cmp ah, bh
   72 06 ?? jb basic block L8
  
  L6: 3a e3 ?? cmp ah, bl
   77 02 ?? ja basic block L8
  
  L7: 02 e6 ?? add ah, dh
  
  L8: 3a c7 ?? cmp al, bh
   72 06 ?? jb basic block L11
  
  L9: 3a c3 ?? cmp al, bl
   77 02 ?? ja basic block L11
  
  L10: 02 c6 ?? add al, dh
  
  L11: 3a e0 ?? cmp ah, al
   75 0b ?? jne basic block L14
  
  L12: 83 e9 01 ?? sub ecx, 1
   75 d1 ?? jne basic block L3
  
  L13: 33 c9 ?? xor ecx, ecx
   3a e0 ?? cmp ah, al
   74 09 ?? je basic block L16
  
  L14: b9 ff ff ff ff ?? mov ecx, 0xffffffff<4294967295,-1>
   72 02 ?? jb basic block L16
  
  L15: f7 d9 ?? neg ecx
  
  L16: 8b c1 ?? mov eax, ecx
   5b ?? pop ebx
   5e ?? pop esi
   5f ?? pop edi
   c9 ?? leave
   c3 ?? ret
  
  