Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 ec 1c ?? sub esp, 0x1c<28>
   eb 12 ?? jmp basic block L2
  
  L2: 8b 55 1c ?? mov edx, dword ss:[ebp + 0x1c<28>]
   52 ?? push edx
   6a 00 ?? push 0
   8b 45 18 ?? mov eax, dword ss:[ebp + 0x18<24>]
   50 ?? push eax
   e8 67 43 00 00 ?? call function 0x0040a4c0
  
  L3: 83 c4 0c ?? add esp, 12
   89 45 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], eax
   83 7d fc 00 ?? cmp dword ss:[ebp + 0xfc<252,-4>], 0
   74 0b ?? je basic block L5
  
  L4: 8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
   2b 4d 18 ?? sub ecx, dword ss:[ebp + 0x18<24>]
   89 4d e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], ecx
   eb 06 ?? jmp basic block L6
  
  L5: 8b 55 1c ?? mov edx, dword ss:[ebp + 0x1c<28>]
   89 55 e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], edx
  
  L6: 8b 45 e4 ?? mov eax, dword ss:[ebp + 0xe4<228,-28>]
   89 45 f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], eax
   8b 4d f8 ?? mov ecx, dword ss:[ebp + 0xf8<248,-8>]
   51 ?? push ecx
   8b 55 18 ?? mov edx, dword ss:[ebp + 0x18<24>]
   52 ?? push edx
   8b 45 14 ?? mov eax, dword ss:[ebp + 0x14<20>]
   50 ?? push eax
   8b 4d 10 ?? mov ecx, dword ss:[ebp + 0x10<16>]
   51 ?? push ecx
   8d 55 f0 ?? lea edx, ss:[ebp + 0xf0<240,-16>]
   52 ?? push edx
   8b 45 08 ?? mov eax, dword ss:[ebp + 8]
   50 ?? push eax
   e8 74 b0 ff ff ?? call function 0x0040120d
  
  L7: 83 c4 18 ?? add esp, 0x18<24>
   8b 08 ?? mov ecx, dword ds:[eax]
   8b 50 04 ?? mov edx, dword ds:[eax + 4]
   89 4d 10 ?? mov dword ss:[ebp + 0x10<16>], ecx
   89 55 14 ?? mov dword ss:[ebp + 0x14<20>], edx
   8b 45 18 ?? mov eax, dword ss:[ebp + 0x18<24>]
   03 45 f8 ?? add eax, dword ss:[ebp + 0xf8<248,-8>]
   89 45 18 ?? mov dword ss:[ebp + 0x18<24>], eax
   8b 4d 1c ?? mov ecx, dword ss:[ebp + 0x1c<28>]
   2b 4d f8 ?? sub ecx, dword ss:[ebp + 0xf8<248,-8>]
   89 4d 1c ?? mov dword ss:[ebp + 0x1c<28>], ecx
   75 02 ?? jne basic block L9
  
  L8: eb 37 ?? jmp 0x004061f4
   8b 4d 0c ?? mov ecx, dword ss:[ebp + 12]
   8b 55 10 ?? mov edx, dword ss:[ebp + 0x10<16>]
   89 11 ?? mov dword ds:[ecx], edx
   8b 45 14 ?? mov eax, dword ss:[ebp + 0x14<20>]
   89 41 04 ?? mov dword ds:[ecx + 4], eax
   8b 45 0c ?? mov eax, dword ss:[ebp + 12]
   8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c3 ?? ret
  
  L9: 0f be 55 20 ?? movsx edx, byte ss:[ebp + 0x20<32>]
   85 d2 ?? test edx, edx
   74 2a ?? je basic block L12
  
  L10: 6a 01 ?? push 1
   0f b6 45 20 ?? movzx eax, byte ss:[ebp + 0x20<32>]
   50 ?? push eax
   8b 4d 14 ?? mov ecx, dword ss:[ebp + 0x14<20>]
   51 ?? push ecx
   8b 55 10 ?? mov edx, dword ss:[ebp + 0x10<16>]
   52 ?? push edx
   8d 45 e8 ?? lea eax, ss:[ebp + 0xe8<232,-24>]
   50 ?? push eax
   8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
   51 ?? push ecx
   e8 cd af ff ff ?? call function 0x004011ae
  
  L11: 83 c4 18 ?? add esp, 0x18<24>
   8b 10 ?? mov edx, dword ds:[eax]
   8b 40 04 ?? mov eax, dword ds:[eax + 4]
   89 55 10 ?? mov dword ss:[ebp + 0x10<16>], edx
   89 45 14 ?? mov dword ss:[ebp + 0x14<20>], eax
  
  L12: e9 44 ff ff ff ?? jmp 0x00406138
   8b 45 18 ?? mov eax, dword ss:[ebp + 0x18<24>]
   83 c0 01 ?? add eax, 1
   89 45 18 ?? mov dword ss:[ebp + 0x18<24>], eax
   8b 4d 1c ?? mov ecx, dword ss:[ebp + 0x1c<28>]
   83 e9 01 ?? sub ecx, 1
   89 4d 1c ?? mov dword ss:[ebp + 0x1c<28>], ecx
  
  