Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   53 ?? push ebx
   8b 5d 08 ?? mov ebx, dword ss:[ebp + 8]
   56 ?? push esi
   8b f1 ?? mov esi, ecx
   83 fb fe ?? cmp ebx, 0xfe<254,-2>
   76 0b ?? jbe basic block L3
  
  L2: 68 5c 68 40 00 ?? push 0x0040685c<"string too long">
   ff 15 98 92 40 00 ?? call dword ds:[0x00409298]
  
  L3: 8b 46 14 ?? mov eax, dword ds:[esi + 0x14<20>]
   3b c3 ?? cmp eax, ebx
   73 18 ?? jae basic block L6
  
  L4: 8b 46 10 ?? mov eax, dword ds:[esi + 0x10<16>]
   50 ?? push eax
   53 ?? push ebx
   e8 de f2 ff ff ?? call function 0x00401019
  
  L5: 33 c9 ?? xor ecx, ecx
   3b cb ?? cmp ecx, ebx
   1b c0 ?? sbb eax, eax
   5e ?? pop esi
   f7 d8 ?? neg eax
   5b ?? pop ebx
   5d ?? pop ebp
   c2 08 00 ?? ret 8
  
  L6: 80 7d 0c 00 ?? cmp byte ss:[ebp + 12], 0
   74 4e ?? je basic block L17
  
  L7: 83 fb 10 ?? cmp ebx, 0x10<16>
   73 49 ?? jae basic block L17
  
  L8: 57 ?? push edi
   8b 7e 10 ?? mov edi, dword ds:[esi + 0x10<16>]
   3b df ?? cmp ebx, edi
   73 02 ?? jae basic block L10
  
  L9: 8b fb ?? mov edi, ebx
  
  L10: 83 f8 10 ?? cmp eax, 0x10<16>
   72 1d ?? jb basic block L16
  
  L11: 8b 1e ?? mov ebx, dword ds:[esi]
   85 ff ?? test edi, edi
   74 0b ?? je basic block L14
  
  L12: 57 ?? push edi
   53 ?? push ebx
   56 ?? push esi
   e8 b7 05 00 00 ?? call function 0x00402328
  
  L13: 83 c4 0c ?? add esp, 12
  
  L14: 53 ?? push ebx
   e8 a8 05 00 00 ?? call function 0x00402322
  
  L15: 8b 5d 08 ?? mov ebx, dword ss:[ebp + 8]
   83 c4 04 ?? add esp, 4
  
  L16: 89 7e 10 ?? mov dword ds:[esi + 0x10<16>], edi
   c7 46 14 0f 00 00 00 ?? mov dword ds:[esi + 0x14<20>], 15
   33 c9 ?? xor ecx, ecx
   c6 04 37 00 ?? mov byte ds:[edi + esi], 0
   3b cb ?? cmp ecx, ebx
   5f ?? pop edi
   1b c0 ?? sbb eax, eax
   5e ?? pop esi
   f7 d8 ?? neg eax
   5b ?? pop ebx
   5d ?? pop ebp
   c2 08 00 ?? ret 8
  
  L17: 85 db ?? test ebx, ebx
   75 0d ?? jne basic block L21
  
  L18: 89 5e 10 ?? mov dword ds:[esi + 0x10<16>], ebx
   83 f8 10 ?? cmp eax, 0x10<16>
   72 02 ?? jb basic block L20
  
  L19: 8b 36 ?? mov esi, dword ds:[esi]
  
  L20: c6 06 00 ?? mov byte ds:[esi], 0
  
  L21: 33 c9 ?? xor ecx, ecx
   3b cb ?? cmp ecx, ebx
   1b c0 ?? sbb eax, eax
   5e ?? pop esi
   f7 d8 ?? neg eax
   5b ?? pop ebx
   5d ?? pop ebp
   c2 08 00 ?? ret 8
  
  