Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   6a ff ?? push 0xff<255,-1>
   68 a0 68 40 00 ?? push 0x004068a0
   64 a1 00 00 00 00 ?? mov eax, dword fs:[0]
   50 ?? push eax
   51 ?? push ecx
   83 ec 14 ?? sub esp, 0x14<20>
   53 ?? push ebx
   56 ?? push esi
   57 ?? push edi
   b8 cc cc cc cc ?? mov eax, 0xcccccccc
   89 45 dc ?? mov dword ss:[ebp + 0xdc<220,-36>], eax
   89 45 e0 ?? mov dword ss:[ebp + 0xe0<224,-32>], eax
   89 45 e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], eax
   89 45 e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], eax
   89 45 ec ?? mov dword ss:[ebp + 0xec<236,-20>], eax
   a1 48 b0 40 00 ?? mov eax, dword ds:[0x0040b048]
   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 e0 ed ff ff ?? call function 0x00401104
  
  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 a9 ed ff ff ?? call function 0x00401104
  
  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 84 ed ff ff ?? call function 0x00401104
  
  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
   8b 55 e8 ?? mov edx, dword ss:[ebp + 0xe8<232,-24>]
   83 c2 01 ?? add edx, 1
   52 ?? push edx
   8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
   83 c1 1c ?? add ecx, 0x1c<28>
   e8 8c ec ff ff ?? call function 0x00401028
  
  L12: 89 45 e0 ?? mov dword ss:[ebp + 0xe0<224,-32>], eax
   8b 45 e0 ?? mov eax, dword ss:[ebp + 0xe0<224,-32>]
   89 45 e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], eax
   eb 60 ?? jmp 0x00402407
   c7 45 fc ff ff ff ff ?? mov dword ss:[ebp + 0xfc<252,-4>], 0xffffffff<4294967295,-1>
   83 7d 0c 00 ?? cmp dword ss:[ebp + 12], 0
   76 19 ?? jbe basic block L21
  
  L13: 89 65 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], esp
   8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
   89 4d e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], ecx
   c6 45 fc 02 ?? mov byte ss:[ebp + 0xfc<252,-4>], 2
   8b 55 e8 ?? mov edx, dword ss:[ebp + 0xe8<232,-24>]
   83 c2 01 ?? add edx, 1
   52 ?? push edx
   8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
   83 c1 1c ?? add ecx, 0x1c<28>
   e8 62 ec ff ff ?? call function 0x00401028
  
  L14: 89 45 dc ?? mov dword ss:[ebp + 0xdc<220,-36>], eax
   8b 45 dc ?? mov eax, dword ss:[ebp + 0xdc<220,-36>]
   89 45 e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], eax
   eb 22 ?? jmp 0x004023f3
   c7 45 fc 01 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 1
   c7 45 fc 01 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 1
   b8 0e 24 40 00 ?? mov eax, 0x0040240e
   c3 ?? ret
  
  L15: 6a 00 ?? push 0
   6a 01 ?? push 1
   8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
   e8 22 ed ff ff ?? call function 0x004010ff
  
  L16: 6a 00 ?? push 0
   6a 00 ?? push 0
   e8 c2 11 00 00 ?? call function 0x004035a8
  
  L17: c7 45 fc 01 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 1
   b8 fa 23 40 00 ?? mov eax, 0x004023fa
   c3 ?? ret
  
  L18: 8b 4d 0c ?? mov ecx, dword ss:[ebp + 12]
   51 ?? push ecx
   8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
   e8 49 ec ff ff ?? call function 0x00401069
  
  L19: 50 ?? push eax
   8b 55 e4 ?? mov edx, dword ss:[ebp + 0xe4<228,-28>]
   52 ?? push edx
   e8 62 ec ff ff ?? call function 0x0040108c
  
  L20: 83 c4 0c ?? add esp, 12
  
  L21: 6a 00 ?? push 0
   6a 01 ?? push 1
   8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
   e8 c6 ec ff ff ?? call function 0x004010ff
  
  L22: 8b 45 ec ?? mov eax, dword ss:[ebp + 0xec<236,-20>]
   8b 4d e4 ?? mov ecx, dword ss:[ebp + 0xe4<228,-28>]
   89 48 04 ?? mov dword ds:[eax + 4], ecx
   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 6c ec ff ff ?? call function 0x004010c3
  
  L23: 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 24 ?? add esp, 0x24<36>
   3b ec ?? cmp ebp, esp
   e8 01 0f 00 00 ?? call function 0x00403370
  
  L24: 8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c2 08 00 ?? ret 8
  
  