Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   6a ff ?? push 0xff<255,-1>
   68 60 9c 42 00 ?? push 0x00429c60
   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
   a1 30 54 43 00 ?? mov eax, dword ds:[0x00435430]
   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 e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], 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 e4 ?? mov ecx, dword ss:[ebp + 0xe4<228,-28>]
   e8 1a e2 ff ff ?? call function 0x0040119a
  
  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 43 ?? jmp basic block L8
  
  L4: 8b 55 e4 ?? mov edx, dword ss:[ebp + 0xe4<228,-28>]
   8b 4a 18 ?? mov ecx, dword ds:[edx + 0x18<24>]
   d1 e9 ?? shr ecx, 1
   8b 45 e8 ?? mov eax, dword ss:[ebp + 0xe8<232,-24>]
   33 d2 ?? xor edx, edx
   be 03 00 00 00 ?? mov esi, 3
   f7 f6 ?? div esi
   3b c1 ?? cmp eax, ecx
   73 2b ?? jae basic block L8
  
  L5: 8b 55 e4 ?? mov edx, dword ss:[ebp + 0xe4<228,-28>]
   8b 72 18 ?? mov esi, dword ds:[edx + 0x18<24>]
   d1 ee ?? shr esi, 1
   8b 4d e4 ?? mov ecx, dword ss:[ebp + 0xe4<228,-28>]
   e8 e5 e1 ff ff ?? call function 0x0040119a
  
  L6: 2b c6 ?? sub eax, esi
   8b 4d e4 ?? mov ecx, dword ss:[ebp + 0xe4<228,-28>]
   39 41 18 ?? cmp dword ds:[ecx + 0x18<24>], eax
   77 11 ?? ja basic block L8
  
  L7: 8b 55 e4 ?? mov edx, dword ss:[ebp + 0xe4<228,-28>]
   8b 42 18 ?? mov eax, dword ds:[edx + 0x18<24>]
   d1 e8 ?? shr eax, 1
   8b 4d e4 ?? mov ecx, dword ss:[ebp + 0xe4<228,-28>]
   03 41 18 ?? add eax, dword ds:[ecx + 0x18<24>]
   89 45 e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], eax
  
  L8: c7 45 ec 00 00 00 00 ?? mov dword ss:[ebp + 0xec<236,-20>], 0
   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 e4 ?? mov ecx, dword ss:[ebp + 0xe4<228,-28>]
   e8 63 e0 ff ff ?? call function 0x00401050
  
  L9: 89 45 e0 ?? mov dword ss:[ebp + 0xe0<224,-32>], eax
   8b 45 e0 ?? mov eax, dword ss:[ebp + 0xe0<224,-32>]
   89 45 ec ?? mov dword ss:[ebp + 0xec<236,-20>], eax
   eb 5d ?? jmp 0x00403055
   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 20 ?? jbe basic block L18
  
  L10: 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 e4 ?? mov ecx, dword ss:[ebp + 0xe4<228,-28>]
   e8 3c e0 ff ff ?? call function 0x00401050
  
  L11: 89 45 dc ?? mov dword ss:[ebp + 0xdc<220,-36>], eax
   8b 45 dc ?? mov eax, dword ss:[ebp + 0xdc<220,-36>]
   89 45 ec ?? mov dword ss:[ebp + 0xec<236,-20>], eax
   eb 22 ?? jmp 0x00403041
   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 5c 30 40 00 ?? mov eax, 0x0040305c
   c3 ?? ret
  
  L12: 6a 00 ?? push 0
   6a 01 ?? push 1
   8b 4d e4 ?? mov ecx, dword ss:[ebp + 0xe4<228,-28>]
   e8 0b e1 ff ff ?? call function 0x00401136
  
  L13: 6a 00 ?? push 0
   6a 00 ?? push 0
   e8 45 35 00 00 ?? call function 0x00406579
  
  L14: c7 45 fc 01 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 1
   b8 48 30 40 00 ?? mov eax, 0x00403048
   c3 ?? ret
  
  L15: 8b 4d 0c ?? mov ecx, dword ss:[ebp + 12]
   51 ?? push ecx
   8b 4d e4 ?? mov ecx, dword ss:[ebp + 0xe4<228,-28>]
   e8 d3 df ff ff ?? call function 0x00401041
  
  L16: 50 ?? push eax
   8b 55 e8 ?? mov edx, dword ss:[ebp + 0xe8<232,-24>]
   83 c2 01 ?? add edx, 1
   52 ?? push edx
   8b 45 ec ?? mov eax, dword ss:[ebp + 0xec<236,-20>]
   50 ?? push eax
   e8 7a e1 ff ff ?? call function 0x004011f9
  
  L17: 83 c4 10 ?? add esp, 0x10<16>
  
  L18: 6a 00 ?? push 0
   6a 01 ?? push 1
   8b 4d e4 ?? mov ecx, dword ss:[ebp + 0xe4<228,-28>]
   e8 a8 e0 ff ff ?? call function 0x00401136
  
  L19: 8b 4d e4 ?? mov ecx, dword ss:[ebp + 0xe4<228,-28>]
   8b 55 ec ?? mov edx, dword ss:[ebp + 0xec<236,-20>]
   89 51 04 ?? mov dword ds:[ecx + 4], edx
   8b 45 e4 ?? mov eax, dword ss:[ebp + 0xe4<228,-28>]
   8b 4d e8 ?? mov ecx, dword ss:[ebp + 0xe8<232,-24>]
   89 48 18 ?? mov dword ds:[eax + 0x18<24>], ecx
   8b 55 0c ?? mov edx, dword ss:[ebp + 12]
   52 ?? push edx
   8b 4d e4 ?? mov ecx, dword ss:[ebp + 0xe4<228,-28>]
   e8 d5 e0 ff ff ?? call function 0x00401181
  
  L20: 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
   8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c2 08 00 ?? ret 8
  
  