Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 ec 08 ?? sub esp, 8
   c7 45 f8 cc cc cc cc ?? mov dword ss:[ebp + 0xf8<248,-8>], 0xcccccccc
   c7 45 fc cc cc cc cc ?? mov dword ss:[ebp + 0xfc<252,-4>], 0xcccccccc
   89 4d fc ?? mov dword ss:[ebp + 0xfc<252,-4>], ecx
   8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
   e8 d1 01 00 00 ?? call function 0x00401f80
  
  L2: 3b 45 08 ?? cmp eax, dword ss:[ebp + 8]
   73 08 ?? jae basic block L4
  
  L3: 8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
   e8 d4 00 00 00 ?? call function 0x00401e90
  
  L4: 8b 45 fc ?? mov eax, dword ss:[ebp + 0xfc<252,-4>]
   8b 48 18 ?? mov ecx, dword ds:[eax + 0x18<24>]
   3b 4d 08 ?? cmp ecx, dword ss:[ebp + 8]
   73 15 ?? jae basic block L7
  
  L5: 8b 55 fc ?? mov edx, dword ss:[ebp + 0xfc<252,-4>]
   8b 42 14 ?? mov eax, dword ds:[edx + 0x14<20>]
   50 ?? push eax
   8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
   51 ?? push ecx
   8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
   e8 06 02 00 00 ?? call function 0x00401fe0
  
  L6: eb 4a ?? jmp basic block L16
  
  L7: 0f b6 55 0c ?? movzx edx, byte ss:[ebp + 12]
   85 d2 ?? test edx, edx
   74 32 ?? je basic block L14
  
  L8: 83 7d 08 10 ?? cmp dword ss:[ebp + 8], 0x10<16>
   73 2c ?? jae basic block L14
  
  L9: 8b 45 fc ?? mov eax, dword ss:[ebp + 0xfc<252,-4>]
   8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
   3b 48 14 ?? cmp ecx, dword ds:[eax + 0x14<20>]
   73 08 ?? jae basic block L11
  
  L10: 8b 55 08 ?? mov edx, dword ss:[ebp + 8]
   89 55 f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], edx
   eb 09 ?? jmp basic block L12
  
  L11: 8b 45 fc ?? mov eax, dword ss:[ebp + 0xfc<252,-4>]
   8b 48 14 ?? mov ecx, dword ds:[eax + 0x14<20>]
   89 4d f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], ecx
  
  L12: 8b 55 f8 ?? mov edx, dword ss:[ebp + 0xf8<248,-8>]
   52 ?? push edx
   6a 01 ?? push 1
   8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
   e8 8c f6 ff ff ?? call function 0x004014a0
  
  L13: eb 10 ?? jmp basic block L16
  
  L14: 83 7d 08 00 ?? cmp dword ss:[ebp + 8], 0
   75 0a ?? jne basic block L16
  
  L15: 6a 00 ?? push 0
   8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
   e8 0a fc ff ff ?? call function 0x00401a30
  
  L16: 33 c0 ?? xor eax, eax
   3b 45 08 ?? cmp eax, dword ss:[ebp + 8]
   1b c0 ?? sbb eax, eax
   f7 d8 ?? neg eax
   83 c4 08 ?? add esp, 8
   3b ec ?? cmp ebp, esp
   e8 57 1a 00 00 ?? call function 0x00403890
  
  L17: 8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c2 08 00 ?? ret 8
  
  