Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 ec 3c ?? sub esp, 0x3c<60>
   56 ?? push esi
   57 ?? push edi
   8d 7d c4 ?? lea edi, ss:[ebp + 0xc4<196,-60>]
   b9 0f 00 00 00 ?? mov ecx, 15
   b8 cc cc cc cc ?? mov eax, 0xcccccccc
   f3 ab ?? rep_stosd
   a1 04 c0 40 00 ?? mov eax, dword ds:[0x0040c004]
   33 c5 ?? xor eax, ebp
   89 45 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], eax
   6a 04 ?? push 4
   e8 3a fa ff ff ?? call function 0x004010d2
  
  L2: 83 c4 04 ?? add esp, 4
   89 45 dc ?? mov dword ss:[ebp + 0xdc<220,-36>], eax
   83 7d dc 00 ?? cmp dword ss:[ebp + 0xdc<220,-36>], 0
   74 14 ?? je basic block L5
  
  L3: 33 c0 ?? xor eax, eax
   8b 4d dc ?? mov ecx, dword ss:[ebp + 0xdc<220,-36>]
   89 01 ?? mov dword ds:[ecx], eax
   8b 4d dc ?? mov ecx, dword ss:[ebp + 0xdc<220,-36>]
   e8 2e fa ff ff ?? call function 0x004010e1
  
  L4: 89 45 cc ?? mov dword ss:[ebp + 0xcc<204,-52>], eax
   eb 07 ?? jmp basic block L6
  
  L5: c7 45 cc 00 00 00 00 ?? mov dword ss:[ebp + 0xcc<204,-52>], 0
  
  L6: ba 04 00 00 00 ?? mov edx, 4
   6b c2 00 ?? imul eax, edx, 0
   8b 4d cc ?? mov ecx, dword ss:[ebp + 0xcc<204,-52>]
   89 4c 05 ec ?? mov dword ss:[ebp + eax + 0xec<236,-20>], ecx
   6a 04 ?? push 4
   e8 fd f9 ff ff ?? call function 0x004010d2
  
  L7: 83 c4 04 ?? add esp, 4
   89 45 d8 ?? mov dword ss:[ebp + 0xd8<216,-40>], eax
   83 7d d8 00 ?? cmp dword ss:[ebp + 0xd8<216,-40>], 0
   74 14 ?? je basic block L10
  
  L8: 33 d2 ?? xor edx, edx
   8b 45 d8 ?? mov eax, dword ss:[ebp + 0xd8<216,-40>]
   89 10 ?? mov dword ds:[eax], edx
   8b 4d d8 ?? mov ecx, dword ss:[ebp + 0xd8<216,-40>]
   e8 21 fc ff ff ?? call function 0x00401311
  
  L9: 89 45 c8 ?? mov dword ss:[ebp + 0xc8<200,-56>], eax
   eb 07 ?? jmp basic block L11
  
  L10: c7 45 c8 00 00 00 00 ?? mov dword ss:[ebp + 0xc8<200,-56>], 0
  
  L11: b9 04 00 00 00 ?? mov ecx, 4
   c1 e1 00 ?? shl ecx, 0
   8b 55 c8 ?? mov edx, dword ss:[ebp + 0xc8<200,-56>]
   89 54 0d ec ?? mov dword ss:[ebp + ecx + 0xec<236,-20>], edx
   6a 04 ?? push 4
   e8 c0 f9 ff ff ?? call function 0x004010d2
  
  L12: 83 c4 04 ?? add esp, 4
   89 45 d4 ?? mov dword ss:[ebp + 0xd4<212,-44>], eax
   83 7d d4 00 ?? cmp dword ss:[ebp + 0xd4<212,-44>], 0
   74 14 ?? je basic block L15
  
  L13: 33 c0 ?? xor eax, eax
   8b 4d d4 ?? mov ecx, dword ss:[ebp + 0xd4<212,-44>]
   89 01 ?? mov dword ds:[ecx], eax
   8b 4d d4 ?? mov ecx, dword ss:[ebp + 0xd4<212,-44>]
   e8 d7 f9 ff ff ?? call function 0x00401104
  
  L14: 89 45 c4 ?? mov dword ss:[ebp + 0xc4<196,-60>], eax
   eb 07 ?? jmp basic block L16
  
  L15: c7 45 c4 00 00 00 00 ?? mov dword ss:[ebp + 0xc4<196,-60>], 0
  
  L16: ba 04 00 00 00 ?? mov edx, 4
   d1 e2 ?? shl edx, 1
   8b 45 c4 ?? mov eax, dword ss:[ebp + 0xc4<196,-60>]
   89 44 15 ec ?? mov dword ss:[ebp + edx + 0xec<236,-20>], eax
   c7 45 e4 00 00 00 00 ?? mov dword ss:[ebp + 0xe4<228,-28>], 0
   eb 09 ?? jmp basic block L17
  
  L17: 83 7d e4 03 ?? cmp dword ss:[ebp + 0xe4<228,-28>], 3
   7d 1f ?? jge basic block L21
  
  L18: 8b 55 e4 ?? mov edx, dword ss:[ebp + 0xe4<228,-28>]
   8b 44 95 ec ?? mov eax, dword ss:[ebp + 0xec<236,-20> + edx * 4]
   8b 4d e4 ?? mov ecx, dword ss:[ebp + 0xe4<228,-28>]
   8b 10 ?? mov edx, dword ds:[eax]
   8b f4 ?? mov esi, esp
   8b 4c 8d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20> + ecx * 4]
   8b 02 ?? mov eax, dword ds:[edx]
   ff d0 ?? call eax
  
  L19: 3b f4 ?? cmp esi, esp
   e8 78 fa ff ff ?? call function 0x004011f4
  
  L20: eb d2 ?? jmp 0x00401750
   8b 4d e4 ?? mov ecx, dword ss:[ebp + 0xe4<228,-28>]
   83 c1 01 ?? add ecx, 1
   89 4d e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], ecx
  
  L21: c7 45 e0 00 00 00 00 ?? mov dword ss:[ebp + 0xe0<224,-32>], 0
   eb 09 ?? jmp basic block L22
  
  L22: 83 7d e0 03 ?? cmp dword ss:[ebp + 0xe0<224,-32>], 3
   7d 1a ?? jge basic block L25
  
  L23: 8b 55 e0 ?? mov edx, dword ss:[ebp + 0xe0<224,-32>]
   8b 44 95 ec ?? mov eax, dword ss:[ebp + 0xec<236,-20> + edx * 4]
   89 45 d0 ?? mov dword ss:[ebp + 0xd0<208,-48>], eax
   6a 04 ?? push 4
   8b 4d d0 ?? mov ecx, dword ss:[ebp + 0xd0<208,-48>]
   51 ?? push ecx
   e8 be f8 ff ff ?? call function 0x00401069
  
  L24: 83 c4 08 ?? add esp, 8
   eb d7 ?? jmp 0x00401787
   8b 4d e0 ?? mov ecx, dword ss:[ebp + 0xe0<224,-32>]
   83 c1 01 ?? add ecx, 1
   89 4d e0 ?? mov dword ss:[ebp + 0xe0<224,-32>], ecx
  
  L25: 33 c0 ?? xor eax, eax
   52 ?? push edx
   8b cd ?? mov ecx, ebp
   50 ?? push eax
   8d 15 e0 17 40 00 ?? lea edx, ds:[0x004017e0]
   e8 e3 f9 ff ff ?? call function 0x004011a4
  
  L26: 58 ?? pop eax
   5a ?? pop edx
   5f ?? pop edi
   5e ?? pop esi
   8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
   33 cd ?? xor ecx, ebp
   e8 71 f9 ff ff ?? call function 0x00401140
  
  L27: 83 c4 3c ?? add esp, 0x3c<60>
   3b ec ?? cmp ebp, esp
   e8 1b fa ff ff ?? call function 0x004011f4
  
  L28: 8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c3 ?? ret
  
  