Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 ec 08 ?? sub esp, 8
   89 4d f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], ecx
   8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
   e8 36 af ff ff ?? call function 0x004012b7
  
  L2: 3b 45 0c ?? cmp eax, dword ss:[ebp + 12]
   73 05 ?? jae basic block L4
  
  L3: e8 80 25 00 00 ?? call function 0x0040890b
  
  L4: 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
   e8 24 af ff ff ?? call function 0x004012b7
  
  L5: 2b 45 0c ?? sub eax, dword ss:[ebp + 12]
   89 45 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], eax
   8b 45 fc ?? mov eax, dword ss:[ebp + 0xfc<252,-4>]
   3b 45 10 ?? cmp eax, dword ss:[ebp + 0x10<16>]
   73 06 ?? jae basic block L7
  
  L6: 8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
   89 4d 10 ?? mov dword ss:[ebp + 0x10<16>], ecx
  
  L7: 8b 55 f8 ?? mov edx, dword ss:[ebp + 0xf8<248,-8>]
   a1 e0 d0 43 00 ?? mov eax, dword ds:[0x0043d0e0]
   2b 42 14 ?? sub eax, dword ds:[edx + 0x14<20>]
   3b 45 10 ?? cmp eax, dword ss:[ebp + 0x10<16>]
   76 11 ?? jbe basic block L9
  
  L8: 8b 4d f8 ?? mov ecx, dword ss:[ebp + 0xf8<248,-8>]
   8b 51 14 ?? mov edx, dword ds:[ecx + 0x14<20>]
   03 55 10 ?? add edx, dword ss:[ebp + 0x10<16>]
   8b 45 f8 ?? mov eax, dword ss:[ebp + 0xf8<248,-8>]
   3b 50 14 ?? cmp edx, dword ds:[eax + 0x14<20>]
   73 05 ?? jae basic block L10
  
  L9: e8 06 25 00 00 ?? call function 0x004088d3
  
  L10: 83 7d 10 00 ?? cmp dword ss:[ebp + 0x10<16>], 0
   76 61 ?? jbe basic block L17
  
  L11: 8b 4d f8 ?? mov ecx, dword ss:[ebp + 0xf8<248,-8>]
   8b 51 14 ?? mov edx, dword ds:[ecx + 0x14<20>]
   03 55 10 ?? add edx, dword ss:[ebp + 0x10<16>]
   89 55 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], edx
   6a 00 ?? push 0
   8b 45 fc ?? mov eax, dword ss:[ebp + 0xfc<252,-4>]
   50 ?? push eax
   8b 4d f8 ?? mov ecx, dword ss:[ebp + 0xf8<248,-8>]
   e8 cb ad ff ff ?? call function 0x004011b8
  
  L12: 0f b6 c8 ?? movzx ecx, al
   85 c9 ?? test ecx, ecx
   74 40 ?? je basic block L17
  
  L13: 8b 55 10 ?? mov edx, dword ss:[ebp + 0x10<16>]
   52 ?? push edx
   8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
   e8 cb ae ff ff ?? call function 0x004012cb
  
  L14: 03 45 0c ?? add eax, dword ss:[ebp + 12]
   50 ?? push eax
   8b 45 f8 ?? mov eax, dword ss:[ebp + 0xf8<248,-8>]
   8b 4d f8 ?? mov ecx, dword ss:[ebp + 0xf8<248,-8>]
   8b 50 18 ?? mov edx, dword ds:[eax + 0x18<24>]
   2b 51 14 ?? sub edx, dword ds:[ecx + 0x14<20>]
   52 ?? push edx
   8b 4d f8 ?? mov ecx, dword ss:[ebp + 0xf8<248,-8>]
   e8 82 ac ff ff ?? call function 0x0040109b
  
  L15: 8b 4d f8 ?? mov ecx, dword ss:[ebp + 0xf8<248,-8>]
   03 41 14 ?? add eax, dword ds:[ecx + 0x14<20>]
   50 ?? push eax
   e8 0f af ff ff ?? call function 0x00401334
  
  L16: 83 c4 10 ?? add esp, 0x10<16>
   8b 55 fc ?? mov edx, dword ss:[ebp + 0xfc<252,-4>]
   52 ?? push edx
   8b 4d f8 ?? mov ecx, dword ss:[ebp + 0xf8<248,-8>]
   e8 51 ae ff ff ?? call function 0x00401285
  
  L17: 8b 45 f8 ?? mov eax, dword ss:[ebp + 0xf8<248,-8>]
   8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c2 0c 00 ?? ret 12
  
  