Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   51 ?? push ecx
   53 ?? push ebx
   56 ?? push esi
   57 ?? push edi
   ff 35 f4 4c 42 00 ?? push dword ds:[0x00424cf4]
   e8 8d 99 ff ff ?? call function 0x004028e4
  
  L2: ff 35 f0 4c 42 00 ?? push dword ds:[0x00424cf0]
   8b f8 ?? mov edi, eax
   89 7d fc ?? mov dword ss:[ebp + 0xfc<252,-4>], edi
   e8 7d 99 ff ff ?? call function 0x004028e4
  
  L3: 8b f0 ?? mov esi, eax
   59 ?? pop ecx
   59 ?? pop ecx
   3b f7 ?? cmp esi, edi
   0f 82 83 00 00 00 ?? jb basic block L20
  
  L4: 8b de ?? mov ebx, esi
   2b df ?? sub ebx, edi
   8d 43 04 ?? lea eax, ds:[ebx + 4]
   83 f8 04 ?? cmp eax, 4
   72 77 ?? jb basic block L20
  
  L5: 57 ?? push edi
   e8 d2 44 00 00 ?? call function 0x0040d457
  
  L6: 8b f8 ?? mov edi, eax
   8d 43 04 ?? lea eax, ds:[ebx + 4]
   59 ?? pop ecx
   3b f8 ?? cmp edi, eax
   73 48 ?? jae basic block L17
  
  L7: b8 00 08 00 00 ?? mov eax, 0x00000800<2048>
   3b f8 ?? cmp edi, eax
   73 02 ?? jae basic block L9
  
  L8: 8b c7 ?? mov eax, edi
  
  L9: 03 c7 ?? add eax, edi
   3b c7 ?? cmp eax, edi
   72 0f ?? jb basic block L12
  
  L10: 50 ?? push eax
   ff 75 fc ?? push dword ss:[ebp + 0xfc<252,-4>]
   e8 a5 0e 00 00 ?? call function 0x00409e4e
  
  L11: 59 ?? pop ecx
   59 ?? pop ecx
   85 c0 ?? test eax, eax
   75 16 ?? jne basic block L15
  
  L12: 8d 47 10 ?? lea eax, ds:[edi + 0x10<16>]
   3b c7 ?? cmp eax, edi
   72 40 ?? jb basic block L20
  
  L13: 50 ?? push eax
   ff 75 fc ?? push dword ss:[ebp + 0xfc<252,-4>]
   e8 8f 0e 00 00 ?? call function 0x00409e4e
  
  L14: 59 ?? pop ecx
   59 ?? pop ecx
   85 c0 ?? test eax, eax
   74 31 ?? je basic block L20
  
  L15: c1 fb 02 ?? sar ebx, 2
   50 ?? push eax
   8d 34 98 ?? lea esi, ds:[eax + ebx * 4]
   e8 98 98 ff ff ?? call function 0x00402869
  
  L16: 59 ?? pop ecx
   a3 f4 4c 42 00 ?? mov dword ds:[0x00424cf4], eax
  
  L17: ff 75 08 ?? push dword ss:[ebp + 8]
   e8 8a 98 ff ff ?? call function 0x00402869
  
  L18: 89 06 ?? mov dword ds:[esi], eax
   83 c6 04 ?? add esi, 4
   56 ?? push esi
   e8 7f 98 ff ff ?? call function 0x00402869
  
  L19: 59 ?? pop ecx
   a3 f0 4c 42 00 ?? mov dword ds:[0x00424cf0], eax
   8b 45 08 ?? mov eax, dword ss:[ebp + 8]
   59 ?? pop ecx
   eb 02 ?? jmp basic block L21
  
  L20: 33 c0 ?? xor eax, eax
  
  L21: 5f ?? pop edi
   5e ?? pop esi
   5b ?? pop ebx
   c9 ?? leave
   c3 ?? ret
  
  