Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   56 ?? push esi
   8b f1 ?? mov esi, ecx
   8b 4e 14 ?? mov ecx, dword ds:[esi + 0x14<20>]
   83 f9 10 ?? cmp ecx, 0x10<16>
   72 04 ?? jb basic block L3
  
  L2: 8b 06 ?? mov eax, dword ds:[esi]
   eb 02 ?? jmp basic block L4
  
  L3: 8b c6 ?? mov eax, esi
  
  L4: 3d f0 41 40 00 ?? cmp eax, 0x004041f0<"bar">
   77 3a ?? ja basic block L14
  
  L5: 83 f9 10 ?? cmp ecx, 0x10<16>
   72 04 ?? jb basic block L7
  
  L6: 8b 16 ?? mov edx, dword ds:[esi]
   eb 02 ?? jmp basic block L8
  
  L7: 8b d6 ?? mov edx, esi
  
  L8: 8b 46 10 ?? mov eax, dword ds:[esi + 0x10<16>]
   03 c2 ?? add eax, edx
   3d f0 41 40 00 ?? cmp eax, 0x004041f0<"bar">
   76 23 ?? jbe basic block L14
  
  L9: 83 f9 10 ?? cmp ecx, 0x10<16>
   72 04 ?? jb basic block L11
  
  L10: 8b 0e ?? mov ecx, dword ds:[esi]
   eb 02 ?? jmp basic block L12
  
  L11: 8b ce ?? mov ecx, esi
  
  L12: ff 75 0c ?? push dword ss:[ebp + 12]
   b8 f0 41 40 00 ?? mov eax, 0x004041f0<"bar">
   2b c1 ?? sub eax, ecx
   8b ce ?? mov ecx, esi
   50 ?? push eax
   56 ?? push esi
   e8 a0 00 00 00 ?? call function 0x004016c0
  
  L13: 5e ?? pop esi
   5d ?? pop ebp
   c2 08 00 ?? ret 8
  
  L14: 57 ?? push edi
   8b 7d 0c ?? mov edi, dword ss:[ebp + 12]
   83 ff fe ?? cmp edi, 0xfe<254,-2>
   76 0b ?? jbe basic block L16
  
  L15: 68 f4 41 40 00 ?? push 0x004041f4<"string too long">
   ff 15 7c 40 40 00 ?? call dword ds:[0x0040407c<"hL@">]
  
  L16: 3b cf ?? cmp ecx, edi
   73 19 ?? jae basic block L21
  
  L17: ff 76 10 ?? push dword ds:[esi + 0x10<16>]
   8b ce ?? mov ecx, esi
   57 ?? push edi
   e8 f8 04 00 00 ?? call function 0x00401b40
  
  L18: 85 ff ?? test edi, edi
   74 60 ?? je basic block L32
  
  L19: 83 7e 14 10 ?? cmp dword ds:[esi + 0x14<20>], 0x10<16>
   72 28 ?? jb basic block L25
  
  L20: 8b 06 ?? mov eax, dword ds:[esi]
   eb 26 ?? jmp basic block L26
  
  L21: 85 ff ?? test edi, edi
   75 f2 ?? jne basic block L19
  
  L22: 89 7e 10 ?? mov dword ds:[esi + 0x10<16>], edi
   83 f9 10 ?? cmp ecx, 0x10<16>
   72 0d ?? jb basic block L24
  
  L23: 8b 06 ?? mov eax, dword ds:[esi]
   5f ?? pop edi
   c6 00 00 ?? mov byte ds:[eax], 0
   8b c6 ?? mov eax, esi
   5e ?? pop esi
   5d ?? pop ebp
   c2 08 00 ?? ret 8
  
  L24: 8b c6 ?? mov eax, esi
   5f ?? pop edi
   5e ?? pop esi
   c6 00 00 ?? mov byte ds:[eax], 0
   5d ?? pop ebp
   c2 08 00 ?? ret 8
  
  L25: 8b c6 ?? mov eax, esi
  
  L26: 85 ff ?? test edi, edi
   74 0f ?? je basic block L29
  
  L27: 57 ?? push edi
   68 f0 41 40 00 ?? push 0x004041f0<"bar">
   50 ?? push eax
   e8 14 1e 00 00 ?? call function 0x004034a0
  
  L28: 83 c4 0c ?? add esp, 12
  
  L29: 83 7e 14 10 ?? cmp dword ds:[esi + 0x14<20>], 0x10<16>
   89 7e 10 ?? mov dword ds:[esi + 0x10<16>], edi
   72 0e ?? jb basic block L31
  
  L30: 8b 06 ?? mov eax, dword ds:[esi]
   c6 04 38 00 ?? mov byte ds:[eax + edi], 0
   8b c6 ?? mov eax, esi
   5f ?? pop edi
   5e ?? pop esi
   5d ?? pop ebp
   c2 08 00 ?? ret 8
  
  L31: 8b c6 ?? mov eax, esi
   c6 04 38 00 ?? mov byte ds:[eax + edi], 0
  
  L32: 5f ?? pop edi
   8b c6 ?? mov eax, esi
   5e ?? pop esi
   5d ?? pop ebp
   c2 08 00 ?? ret 8
  
  