Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   6a ff ?? push 0xff<255,-1>
   68 30 8e 40 00 ?? push 0x00408e30
   64 a1 00 00 00 00 ?? mov eax, dword fs:[0]
   50 ?? push eax
   51 ?? push ecx
   83 ec 28 ?? sub esp, 0x28<40>
   53 ?? push ebx
   56 ?? push esi
   57 ?? push edi
   51 ?? push ecx
   8d 7d c8 ?? lea edi, ss:[ebp + 0xc8<200,-56>]
   b9 0a 00 00 00 ?? mov ecx, 10
   b8 cc cc cc cc ?? mov eax, 0xcccccccc
   f3 ab ?? rep_stosd
   59 ?? pop ecx
   a1 00 e0 40 00 ?? mov eax, dword ds:[0x0040e000]
   33 c5 ?? xor eax, ebp
   50 ?? push eax
   8d 45 f4 ?? lea eax, ss:[ebp + 0xf4<244,-12>]
   64 a3 00 00 00 00 ?? mov dword fs:[0], eax
   89 65 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], esp
   89 4d ec ?? mov dword ss:[ebp + 0xec<236,-20>], ecx
   8b 45 08 ?? mov eax, dword ss:[ebp + 8]
   83 c8 0f ?? or eax, 15
   89 45 e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], eax
   8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
   e8 2d d6 ff ff ?? call function 0x004011ae
  
  L2: 3b 45 e8 ?? cmp eax, dword ss:[ebp + 0xe8<232,-24>]
   73 08 ?? jae basic block L4
  
  L3: 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
   89 4d e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], ecx
   eb 52 ?? jmp basic block L11
  
  L4: 8b 45 e8 ?? mov eax, dword ss:[ebp + 0xe8<232,-24>]
   33 d2 ?? xor edx, edx
   b9 03 00 00 00 ?? mov ecx, 3
   f7 f1 ?? div ecx
   8b 55 ec ?? mov edx, dword ss:[ebp + 0xec<236,-20>]
   8b 4a 18 ?? mov ecx, dword ds:[edx + 0x18<24>]
   d1 e9 ?? shr ecx, 1
   3b c8 ?? cmp ecx, eax
   77 02 ?? ja basic block L6
  
  L5: eb 38 ?? jmp basic block L11
  
  L6: 8b 55 ec ?? mov edx, dword ss:[ebp + 0xec<236,-20>]
   8b 72 18 ?? mov esi, dword ds:[edx + 0x18<24>]
   d1 ee ?? shr esi, 1
   8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
   e8 f6 d5 ff ff ?? call function 0x004011ae
  
  L7: 2b c6 ?? sub eax, esi
   8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
   39 41 18 ?? cmp dword ds:[ecx + 0x18<24>], eax
   77 13 ?? ja basic block L9
  
  L8: 8b 55 ec ?? mov edx, dword ss:[ebp + 0xec<236,-20>]
   8b 42 18 ?? mov eax, dword ds:[edx + 0x18<24>]
   d1 e8 ?? shr eax, 1
   8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
   03 41 18 ?? add eax, dword ds:[ecx + 0x18<24>]
   89 45 e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], eax
   eb 0b ?? jmp basic block L11
  
  L9: 8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
   e8 d1 d5 ff ff ?? call function 0x004011ae
  
  L10: 89 45 e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], eax
  
  L11: c7 45 fc 00 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 0
   8d 55 db ?? lea edx, ss:[ebp + 0xdb<219,-37>]
   52 ?? push edx
   8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
   e8 d9 d5 ff ff ?? call function 0x004011cc
  
  L12: 89 45 d4 ?? mov dword ss:[ebp + 0xd4<212,-44>], eax
   8b 45 e8 ?? mov eax, dword ss:[ebp + 0xe8<232,-24>]
   83 c0 01 ?? add eax, 1
   50 ?? push eax
   8b 4d d4 ?? mov ecx, dword ss:[ebp + 0xd4<212,-44>]
   e8 eb d4 ff ff ?? call function 0x004010f0
  
  L13: 89 45 d0 ?? mov dword ss:[ebp + 0xd0<208,-48>], eax
   8b 4d d0 ?? mov ecx, dword ss:[ebp + 0xd0<208,-48>]
   89 4d e0 ?? mov dword ss:[ebp + 0xe0<224,-32>], ecx
   eb 67 ?? jmp 0x00403c77
   c7 45 fc ff ff ff ff ?? mov dword ss:[ebp + 0xfc<252,-4>], 0xffffffff<4294967295,-1>
   eb 07 ?? jmp basic block L23
  
  L14: 89 65 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], esp
   8b 55 08 ?? mov edx, dword ss:[ebp + 8]
   89 55 e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], edx
   c6 45 fc 02 ?? mov byte ss:[ebp + 0xfc<252,-4>], 2
   8d 45 da ?? lea eax, ss:[ebp + 0xda<218,-38>]
   50 ?? push eax
   8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
   e8 a3 d5 ff ff ?? call function 0x004011cc
  
  L15: 89 45 cc ?? mov dword ss:[ebp + 0xcc<204,-52>], eax
   8b 4d e8 ?? mov ecx, dword ss:[ebp + 0xe8<232,-24>]
   83 c1 01 ?? add ecx, 1
   51 ?? push ecx
   8b 4d cc ?? mov ecx, dword ss:[ebp + 0xcc<204,-52>]
   e8 b5 d4 ff ff ?? call function 0x004010f0
  
  L16: 89 45 c8 ?? mov dword ss:[ebp + 0xc8<200,-56>], eax
   8b 55 c8 ?? mov edx, dword ss:[ebp + 0xc8<200,-56>]
   89 55 e0 ?? mov dword ss:[ebp + 0xe0<224,-32>], edx
   eb 1b ?? jmp 0x00403c61
   c7 45 fc 01 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 1
   eb 07 ?? jmp basic block L21
  
  L17: 6a 00 ?? push 0
   6a 01 ?? push 1
   8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
   e8 52 d5 ff ff ?? call function 0x004011a4
  
  L18: 6a 00 ?? push 0
   6a 00 ?? push 0
   e8 45 18 00 00 ?? call function 0x004054a0
  
  L19: b8 6a 3c 40 00 ?? mov eax, basic block L20
   c3 ?? ret
  
  L20: c7 45 fc 01 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 1
  
  L21: b8 80 3c 40 00 ?? mov eax, basic block L22
   c3 ?? ret
  
  L22: c7 45 fc ff ff ff ff ?? mov dword ss:[ebp + 0xfc<252,-4>], 0xffffffff<4294967295,-1>
  
  L23: 83 7d 0c 00 ?? cmp dword ss:[ebp + 12], 0
   76 19 ?? jbe basic block L27
  
  L24: 8b 45 0c ?? mov eax, dword ss:[ebp + 12]
   50 ?? push eax
   8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
   e8 bc d3 ff ff ?? call function 0x00401055
  
  L25: 50 ?? push eax
   8b 4d e0 ?? mov ecx, dword ss:[ebp + 0xe0<224,-32>]
   51 ?? push ecx
   e8 66 d4 ff ff ?? call function 0x00401109
  
  L26: 83 c4 0c ?? add esp, 12
  
  L27: 6a 00 ?? push 0
   6a 01 ?? push 1
   8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
   e8 f2 d4 ff ff ?? call function 0x004011a4
  
  L28: 8d 55 e0 ?? lea edx, ss:[ebp + 0xe0<224,-32>]
   52 ?? push edx
   8b 45 ec ?? mov eax, dword ss:[ebp + 0xec<236,-20>]
   83 c0 04 ?? add eax, 4
   50 ?? push eax
   8d 4d d9 ?? lea ecx, ss:[ebp + 0xd9<217,-39>]
   51 ?? push ecx
   8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
   e8 03 d5 ff ff ?? call function 0x004011cc
  
  L29: 8b c8 ?? mov ecx, eax
   e8 16 d4 ff ff ?? call function 0x004010e6
  
  L30: 8b 55 ec ?? mov edx, dword ss:[ebp + 0xec<236,-20>]
   8b 45 e8 ?? mov eax, dword ss:[ebp + 0xe8<232,-24>]
   89 42 18 ?? mov dword ds:[edx + 0x18<24>], eax
   8b 4d 0c ?? mov ecx, dword ss:[ebp + 12]
   51 ?? push ecx
   8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
   e8 79 d4 ff ff ?? call function 0x0040115e
  
  L31: 52 ?? push edx
   8b cd ?? mov ecx, ebp
   50 ?? push eax
   8d 15 14 3d 40 00 ?? lea edx, ds:[0x00403d14]
   e8 0c 17 00 00 ?? call function 0x00405400
  
  L32: 58 ?? pop eax
   5a ?? pop edx
   8b 4d f4 ?? mov ecx, dword ss:[ebp + 0xf4<244,-12>]
   64 89 0d 00 00 00 00 ?? mov dword fs:[0], ecx
   59 ?? pop ecx
   5f ?? pop edi
   5e ?? pop esi
   5b ?? pop ebx
   83 c4 38 ?? add esp, 0x38<56>
   3b ec ?? cmp ebp, esp
   e8 52 17 00 00 ?? call function 0x00405460
  
  L33: 8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c2 08 00 ?? ret 8
  
  