Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   80 7d 08 00 ?? cmp byte ss:[ebp + 8], 0
   56 ?? push esi
   57 ?? push edi
   8b 7d 0c ?? mov edi, dword ss:[ebp + 12]
   8b f1 ?? mov esi, ecx
   74 5f ?? je basic block L18
  
  L2: 83 7e 14 10 ?? cmp dword ds:[esi + 0x14<20>], 0x10<16>
   72 59 ?? jb basic block L18
  
  L3: 53 ?? push ebx
   8b 1e ?? mov ebx, dword ds:[esi]
   85 ff ?? test edi, edi
   74 0b ?? je basic block L6
  
  L4: 57 ?? push edi
   53 ?? push ebx
   56 ?? push esi
   e8 5b 1f 00 00 ?? call function 0x004034a0
  
  L5: 83 c4 0c ?? add esp, 12
  
  L6: 8b 46 14 ?? mov eax, dword ds:[esi + 0x14<20>]
   40 ?? inc eax
   3d 00 10 00 00 ?? cmp eax, 0x00001000<4096>
   72 32 ?? jb basic block L16
  
  L7: f6 c3 1f ?? test bl, 0x1f<31>
   74 06 ?? je basic block L9
  
  L8: ff 15 08 41 40 00 ?? call dword ds:[0x00404108<"DQ@">]
  
  L9: 8b 43 fc ?? mov eax, dword ds:[ebx + 0xfc<252,-4>]
   3b c3 ?? cmp eax, ebx
   72 06 ?? jb basic block L11
  
  L10: ff 15 08 41 40 00 ?? call dword ds:[0x00404108<"DQ@">]
  
  L11: 2b d8 ?? sub ebx, eax
   83 fb 04 ?? cmp ebx, 4
   73 06 ?? jae basic block L13
  
  L12: ff 15 08 41 40 00 ?? call dword ds:[0x00404108<"DQ@">]
  
  L13: 83 fb 23 ?? cmp ebx, 0x23<35>
   76 06 ?? jbe basic block L15
  
  L14: ff 15 08 41 40 00 ?? call dword ds:[0x00404108<"DQ@">]
  
  L15: 8b d8 ?? mov ebx, eax
  
  L16: 53 ?? push ebx
   e8 9d 0c 00 00 ?? call function 0x00402228
  
  L17: 83 c4 04 ?? add esp, 4
   5b ?? pop ebx
  
  L18: c7 46 14 0f 00 00 00 ?? mov dword ds:[esi + 0x14<20>], 15
   83 7e 14 10 ?? cmp dword ds:[esi + 0x14<20>], 0x10<16>
   89 7e 10 ?? mov dword ds:[esi + 0x10<16>], edi
   72 02 ?? jb basic block L20
  
  L19: 8b 36 ?? mov esi, dword ds:[esi]
  
  L20: c6 04 3e 00 ?? mov byte ds:[esi + edi], 0
   5f ?? pop edi
   5e ?? pop esi
   5d ?? pop ebp
   c2 08 00 ?? ret 8
  
  