Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   51 ?? push ecx
   83 65 fc 00 ?? and dword ss:[ebp + 0xfc<252,-4>], 0
   83 7d 10 00 ?? cmp dword ss:[ebp + 0x10<16>], 0
   57 ?? push edi
   8b f9 ?? mov edi, ecx
   7e 62 ?? jle basic block L16
  
  L2: 53 ?? push ebx
   8b 5d 08 ?? mov ebx, dword ss:[ebp + 8]
   56 ?? push esi
  
  L3: 8b 47 20 ?? mov eax, dword ds:[edi + 0x20<32>]
   83 38 00 ?? cmp dword ds:[eax], 0
   74 07 ?? je basic block L5
  
  L4: 8b 4f 30 ?? mov ecx, dword ds:[edi + 0x30<48>]
   8b 31 ?? mov esi, dword ds:[ecx]
   eb 02 ?? jmp basic block L6
  
  L5: 33 f6 ?? xor esi, esi
  
  L6: 85 f6 ?? test esi, esi
   7e 2b ?? jle basic block L11
  
  L7: 39 75 10 ?? cmp dword ss:[ebp + 0x10<16>], esi
   7d 03 ?? jge basic block L9
  
  L8: 8b 75 10 ?? mov esi, dword ss:[ebp + 0x10<16>]
  
  L9: 56 ?? push esi
   ff 30 ?? push dword ds:[eax]
   ff 75 0c ?? push dword ss:[ebp + 12]
   53 ?? push ebx
   e8 e4 9c ff ff ?? call function 0x00401334
  
  L10: 8b 47 30 ?? mov eax, dword ds:[edi + 0x30<48>]
   29 30 ?? sub dword ds:[eax], esi
   8b 47 20 ?? mov eax, dword ds:[edi + 0x20<32>]
   01 75 fc ?? add dword ss:[ebp + 0xfc<252,-4>], esi
   29 75 10 ?? sub dword ss:[ebp + 0x10<16>], esi
   83 c4 10 ?? add esp, 0x10<16>
   03 de ?? add ebx, esi
   01 30 ?? add dword ds:[eax], esi
   eb 15 ?? jmp basic block L14
  
  L11: 8b 07 ?? mov eax, dword ds:[edi]
   8b cf ?? mov ecx, edi
   ff 50 14 ?? call dword ds:[eax + 0x14<20>]
  
  L12: 83 f8 ff ?? cmp eax, 0xff<255,-1>
   74 0f ?? je basic block L15
  
  L13: 88 03 ?? mov byte ds:[ebx], al
   43 ?? inc ebx
   ff 45 fc ?? inc dword ss:[ebp + 0xfc<252,-4>]
   ff 4d 10 ?? dec dword ss:[ebp + 0x10<16>]
  
  L14: 83 7d 10 00 ?? cmp dword ss:[ebp + 0x10<16>], 0
   7f a5 ?? jg basic block L3
  
  L15: 5e ?? pop esi
   5b ?? pop ebx
  
  L16: 8b 45 fc ?? mov eax, dword ss:[ebp + 0xfc<252,-4>]
   5f ?? pop edi
   c9 ?? leave
   c2 0c 00 ?? ret 12
  
  