Disassembly: 
  L1: 83 fe fe ?? cmp esi, 0xfe<254,-2>
   76 0b ?? jbe basic block L3
  
  L2: 68 90 32 40 00 ?? push 0x00403290<"string too long">
   ff 15 84 30 40 00 ?? call dword ds:[0x00403084]
  
  L3: 8b 48 14 ?? mov ecx, dword ds:[eax + 0x14<20>]
   3b ce ?? cmp ecx, esi
   73 14 ?? jae basic block L6
  
  L4: 8b 48 10 ?? mov ecx, dword ds:[eax + 0x10<16>]
   51 ?? push ecx
   56 ?? push esi
   50 ?? push eax
   e8 0e 01 00 00 ?? call function 0x004017b0
  
  L5: 33 d2 ?? xor edx, edx
   3b d6 ?? cmp edx, esi
   1b c0 ?? sbb eax, eax
   f7 d8 ?? neg eax
   c3 ?? ret
  
  L6: 85 f6 ?? test esi, esi
   75 0d ?? jne basic block L10
  
  L7: 89 70 10 ?? mov dword ds:[eax + 0x10<16>], esi
   83 f9 10 ?? cmp ecx, 0x10<16>
   72 02 ?? jb basic block L9
  
  L8: 8b 00 ?? mov eax, dword ds:[eax]
  
  L9: c6 00 00 ?? mov byte ds:[eax], 0
  
  L10: 33 d2 ?? xor edx, edx
   3b d6 ?? cmp edx, esi
   1b c0 ?? sbb eax, eax
   f7 d8 ?? neg eax
   c3 ?? ret
  
  