Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 ec 10 ?? sub esp, 0x10<16>
   56 ?? push esi
   b8 cc cc cc cc ?? mov eax, 0xcccccccc
   89 45 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], eax
   89 45 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], eax
   89 45 f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], eax
   89 45 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], eax
   c7 45 fc 00 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 0
   83 7d 08 00 ?? cmp dword ss:[ebp + 8], 0
   75 08 ?? jne basic block L3
  
  L2: 8b 45 fc ?? mov eax, dword ss:[ebp + 0xfc<252,-4>]
   e9 7b 01 00 00 ?? jmp basic block L33
  
  L3: 83 c8 ff ?? or eax, 0xff<255,-1>
   33 d2 ?? xor edx, edx
   f7 75 0c ?? div dword ss:[ebp + 12]
   3b 45 08 ?? cmp eax, dword ss:[ebp + 8]
   73 0f ?? jae basic block L6
  
  L4: 8b f4 ?? mov esi, esp
   ff 15 e4 f0 40 00 ?? call dword ds:[0x0040f0e4]
  
  L5: 3b f4 ?? cmp esi, esp
   e8 7f e2 ff ff ?? call function 0x004011b8
  
  L6: 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
   0f af 45 0c ?? imul eax, dword ss:[ebp + 12]
   89 45 f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], eax
   0f b6 4d 10 ?? movzx ecx, byte ss:[ebp + 0x10<16>]
   85 c9 ?? test ecx, ecx
   0f 84 d2 00 00 00 ?? je basic block L22
  
  L7: 81 7d f8 00 10 00 00 ?? cmp dword ss:[ebp + 0xf8<248,-8>], 0x00001000<4096>
   0f 82 c5 00 00 00 ?? jb basic block L22
  
  L8: 8b 55 f8 ?? mov edx, dword ss:[ebp + 0xf8<248,-8>]
   83 c2 27 ?? add edx, 0x27<39>
   89 55 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], edx
   8b 45 f4 ?? mov eax, dword ss:[ebp + 0xf4<244,-12>]
   3b 45 f8 ?? cmp eax, dword ss:[ebp + 0xf8<248,-8>]
   77 0f ?? ja basic block L11
  
  L9: 8b f4 ?? mov esi, esp
   ff 15 e4 f0 40 00 ?? call dword ds:[0x0040f0e4]
  
  L10: 3b f4 ?? cmp esi, esp
   e8 3c e2 ff ff ?? call function 0x004011b8
  
  L11: 8b 4d f4 ?? mov ecx, dword ss:[ebp + 0xf4<244,-12>]
   51 ?? push ecx
   e8 eb e3 ff ff ?? call function 0x00401370
  
  L12: 83 c4 04 ?? add esp, 4
   89 45 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], eax
   83 7d f0 00 ?? cmp dword ss:[ebp + 0xf0<240,-16>], 0
   75 5f ?? jne basic block L21
  
  L13: ba 34 bb 40 00 ?? mov edx, 0x0040bb34<"_Ptr_container != 0">
   85 d2 ?? test edx, edx
   74 04 ?? je basic block L15
  
  L14: 33 c0 ?? xor eax, eax
   75 2d ?? jne basic block L19
  
  L15: 8b f4 ?? mov esi, esp
   68 4c bb 40 00 ?? push 0x0040bb4c<"\"_Ptr_container != 0\" && 0">
   68 8c bb 40 00 ?? push 0x0040bb8c<"%ls">
   6a 00 ?? push 0
   6a 46 ?? push 0x46<70>
   68 98 bb 40 00 ?? push 0x0040bb98<"C:\\Program Files (x86)\\Mi"+46 more>
   6a 02 ?? push 2
   ff 15 ec f1 40 00 ?? call dword ds:[0x0040f1ec]
  
  L16: 83 c4 18 ?? add esp, 0x18<24>
   3b f4 ?? cmp esi, esp
   e8 f3 e1 ff ff ?? call function 0x004011b8
  
  L17: 83 f8 01 ?? cmp eax, 1
   75 01 ?? jne basic block L19
  
  L18: cc ?? int3
  
  L19: 8b f4 ?? mov esi, esp
   6a 00 ?? push 0
   6a 46 ?? push 0x46<70>
   68 98 bb 40 00 ?? push 0x0040bb98<"C:\\Program Files (x86)\\Mi"+46 more>
   68 44 bc 40 00 ?? push 0x0040bc44<"std::_Allocate">
   68 68 bc 40 00 ?? push 0x0040bc68<"\"invalid argument\"">
   ff 15 f4 f1 40 00 ?? call dword ds:[0x0040f1f4]
  
  L20: 83 c4 14 ?? add esp, 0x14<20>
   3b f4 ?? cmp esi, esp
   e8 c8 e1 ff ff ?? call function 0x004011b8
  
  L21: 8b 55 f0 ?? mov edx, dword ss:[ebp + 0xf0<240,-16>]
   83 c2 27 ?? add edx, 0x27<39>
   83 e2 e0 ?? and edx, 0xe0<224,-32>
   89 55 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], edx
   b8 04 00 00 00 ?? mov eax, 4
   6b c8 ff ?? imul ecx, eax, 0xff<255,-1>
   8b 55 fc ?? mov edx, dword ss:[ebp + 0xfc<252,-4>]
   8b 45 f0 ?? mov eax, dword ss:[ebp + 0xf0<240,-16>]
   89 04 0a ?? mov dword ds:[edx + ecx], eax
   b9 04 00 00 00 ?? mov ecx, 4
   6b d1 fe ?? imul edx, ecx, 0xfe<254,-2>
   8b 45 fc ?? mov eax, dword ss:[ebp + 0xfc<252,-4>]
   c7 04 10 fa fa fa fa ?? mov dword ds:[eax + edx], 0xfafafafa
   eb 74 ?? jmp basic block L32
  
  L22: 8b 4d f8 ?? mov ecx, dword ss:[ebp + 0xf8<248,-8>]
   51 ?? push ecx
   e8 46 e3 ff ff ?? call function 0x00401370
  
  L23: 83 c4 04 ?? add esp, 4
   89 45 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], eax
   83 7d fc 00 ?? cmp dword ss:[ebp + 0xfc<252,-4>], 0
   75 5f ?? jne basic block L32
  
  L24: ba 98 bc 40 00 ?? mov edx, 0x0040bc98<"_Ptr != 0">
   85 d2 ?? test edx, edx
   74 04 ?? je basic block L26
  
  L25: 33 c0 ?? xor eax, eax
   75 2d ?? jne basic block L30
  
  L26: 8b f4 ?? mov esi, esp
   68 a4 bc 40 00 ?? push 0x0040bca4<"\"_Ptr != 0\" && 0">
   68 8c bb 40 00 ?? push 0x0040bb8c<"%ls">
   6a 00 ?? push 0
   6a 54 ?? push 0x54<84>
   68 98 bb 40 00 ?? push 0x0040bb98<"C:\\Program Files (x86)\\Mi"+46 more>
   6a 02 ?? push 2
   ff 15 ec f1 40 00 ?? call dword ds:[0x0040f1ec]
  
  L27: 83 c4 18 ?? add esp, 0x18<24>
   3b f4 ?? cmp esi, esp
   e8 4e e1 ff ff ?? call function 0x004011b8
  
  L28: 83 f8 01 ?? cmp eax, 1
   75 01 ?? jne basic block L30
  
  L29: cc ?? int3
  
  L30: 8b f4 ?? mov esi, esp
   6a 00 ?? push 0
   6a 54 ?? push 0x54<84>
   68 98 bb 40 00 ?? push 0x0040bb98<"C:\\Program Files (x86)\\Mi"+46 more>
   68 44 bc 40 00 ?? push 0x0040bc44<"std::_Allocate">
   68 68 bc 40 00 ?? push 0x0040bc68<"\"invalid argument\"">
   ff 15 f4 f1 40 00 ?? call dword ds:[0x0040f1f4]
  
  L31: 83 c4 14 ?? add esp, 0x14<20>
   3b f4 ?? cmp esi, esp
   e8 23 e1 ff ff ?? call function 0x004011b8
  
  L32: 8b 45 fc ?? mov eax, dword ss:[ebp + 0xfc<252,-4>]
  
  L33: 5e ?? pop esi
   83 c4 10 ?? add esp, 0x10<16>
   3b ec ?? cmp ebp, esp
   e8 15 e1 ff ff ?? call function 0x004011b8
  
  L34: 8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c3 ?? ret
  
  