Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   56 ?? push esi
   8b 75 08 ?? mov esi, dword ss:[ebp + 8]
   83 fe fe ?? cmp esi, 0xfe<254,-2>
   76 0b ?? jbe basic block L3
  
  L2: 68 30 32 40 00 ?? push 0x00403230<"string too long">
   ff 15 60 30 40 00 ?? call dword ds:[0x00403060<"><@">]
  
  L3: 8b 41 14 ?? mov eax, dword ds:[ecx + 0x14<20>]
   3b c6 ?? cmp eax, esi
   73 16 ?? jae basic block L6
  
  L4: ff 71 10 ?? push dword ds:[ecx + 0x10<16>]
   56 ?? push esi
   e8 89 01 00 00 ?? call function 0x00401cd0
  
  L5: 33 c0 ?? xor eax, eax
   3b c6 ?? cmp eax, esi
   1b c0 ?? sbb eax, eax
   f7 d8 ?? neg eax
   5e ?? pop esi
   5d ?? pop ebp
   c2 08 00 ?? ret 8
  
  L6: 85 f6 ?? test esi, esi
   75 0d ?? jne basic block L10
  
  L7: 89 71 10 ?? mov dword ds:[ecx + 0x10<16>], esi
   83 f8 10 ?? cmp eax, 0x10<16>
   72 02 ?? jb basic block L9
  
  L8: 8b 09 ?? mov ecx, dword ds:[ecx]
  
  L9: c6 01 00 ?? mov byte ds:[ecx], 0
  
  L10: 33 c0 ?? xor eax, eax
   3b c6 ?? cmp eax, esi
   1b c0 ?? sbb eax, eax
   f7 d8 ?? neg eax
   5e ?? pop esi
   5d ?? pop ebp
   c2 08 00 ?? ret 8
  
  