Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   6a ff ?? push 0xff<255,-1>
   68 60 2b 40 00 ?? push 0x00402b60
   64 a1 00 00 00 00 ?? mov eax, dword fs:[0]
   50 ?? push eax
   83 ec 14 ?? sub esp, 0x14<20>
   53 ?? push ebx
   56 ?? push esi
   57 ?? push edi
   a1 04 40 40 00 ?? mov eax, dword ds:[0x00404004]
   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
   6a 20 ?? push 0x20<32>
   e8 d8 05 00 00 ?? call function 0x00401667
  
  L2: 8b f0 ?? mov esi, eax
   68 44 05 00 00 ?? push 0x00000544<1348>
   c7 46 18 00 00 00 00 ?? mov dword ds:[esi + 0x18<24>], 0
   c7 46 1c 0f 00 00 00 ?? mov dword ds:[esi + 0x1c<28>], 15
   c6 46 08 00 ?? mov byte ds:[esi + 8], 0
   e8 64 07 00 00 ?? call function 0x00401811
  
  L3: 83 c4 08 ?? add esp, 8
   85 c0 ?? test eax, eax
   74 22 ?? je basic block L6
  
  L4: 68 00 13 40 00 ?? push function 0x00401300
   68 80 12 40 00 ?? push function 0x00401280
   6a 2a ?? push 0x2a<42>
   8d 58 04 ?? lea ebx, ds:[eax + 4]
   c7 00 2a 00 00 00 ?? mov dword ds:[eax], 0x0000002a<42>
   6a 20 ?? push 0x20<32>
   53 ?? push ebx
   89 5d f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], ebx
   e8 54 07 00 00 ?? call function 0x00401828
  
  L5: eb 07 ?? jmp basic block L7
  
  L6: c7 45 f0 00 00 00 00 ?? mov dword ss:[ebp + 0xf0<240,-16>], 0
  
  L7: 6a 18 ?? push 0x18<24>
   e8 83 05 00 00 ?? call function 0x00401667
  
  L8: 68 f0 00 00 00 ?? push 0x000000f0<240>
   89 45 e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], eax
   e8 20 07 00 00 ?? call function 0x00401811
  
  L9: 68 98 40 40 00 ?? push 0x00404098
   6a 20 ?? push 0x20<32>
   89 45 e0 ?? mov dword ss:[ebp + 0xe0<224,-32>], eax
   e8 97 05 00 00 ?? call function 0x00401697
  
  L10: 8b f8 ?? mov edi, eax
   83 c4 10 ?? add esp, 0x10<16>
   85 ff ?? test edi, edi
   74 14 ?? je basic block L12
  
  L11: c7 47 18 00 00 00 00 ?? mov dword ds:[edi + 0x18<24>], 0
   c7 47 1c 0f 00 00 00 ?? mov dword ds:[edi + 0x1c<28>], 15
   c6 47 08 00 ?? mov byte ds:[edi + 8], 0
   eb 02 ?? jmp basic block L13
  
  L12: 33 ff ?? xor edi, edi
  
  L13: 68 98 40 40 00 ?? push 0x00404098
   68 44 05 00 00 ?? push 0x00000544<1348>
   e8 ec 06 00 00 ?? call function 0x0040181a
  
  L14: 83 c4 08 ?? add esp, 8
   85 c0 ?? test eax, eax
   74 1f ?? je basic block L17
  
  L15: 68 00 13 40 00 ?? push function 0x00401300
   68 80 12 40 00 ?? push function 0x00401280
   6a 2a ?? push 0x2a<42>
   8d 58 04 ?? lea ebx, ds:[eax + 4]
   c7 00 2a 00 00 00 ?? mov dword ds:[eax], 0x0000002a<42>
   6a 20 ?? push 0x20<32>
   53 ?? push ebx
   e8 d6 06 00 00 ?? call function 0x00401828
  
  L16: eb 02 ?? jmp basic block L18
  
  L17: 33 db ?? xor ebx, ebx
  
  L18: 68 98 40 40 00 ?? push 0x00404098
   6a 18 ?? push 0x18<24>
   e8 35 05 00 00 ?? call function 0x00401697
  
  L19: 68 98 40 40 00 ?? push 0x00404098
   68 f0 00 00 00 ?? push 0x000000f0<240>
   89 45 ec ?? mov dword ss:[ebp + 0xec<236,-20>], eax
   e8 a6 06 00 00 ?? call function 0x0040181a
  
  L20: 83 c4 10 ?? add esp, 0x10<16>
   89 45 e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], eax
   8b 45 f0 ?? mov eax, dword ss:[ebp + 0xf0<240,-16>]
   c7 46 18 00 00 00 00 ?? mov dword ds:[esi + 0x18<24>], 0
   c7 46 1c 0f 00 00 00 ?? mov dword ds:[esi + 0x1c<28>], 15
   68 00 13 40 00 ?? push function 0x00401300
   68 80 12 40 00 ?? push function 0x00401280
   6a 2a ?? push 0x2a<42>
   c6 46 08 00 ?? mov byte ds:[esi + 8], 0
   c7 00 2a 00 00 00 ?? mov dword ds:[eax], 0x0000002a<42>
   83 c0 04 ?? add eax, 4
   6a 20 ?? push 0x20<32>
   50 ?? push eax
   89 45 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], eax
   e8 79 06 00 00 ?? call function 0x00401828
  
  L21: 51 ?? push ecx
   8b ce ?? mov ecx, esi
   e8 99 01 00 00 ?? call function 0x00401350
  
  L22: 8b 45 f0 ?? mov eax, dword ss:[ebp + 0xf0<240,-16>]
   85 c0 ?? test eax, eax
   74 32 ?? je basic block L26
  
  L23: 68 00 13 40 00 ?? push function 0x00401300
   8d 70 fc ?? lea esi, ds:[eax + 0xfc<252,-4>]
   c7 45 fc 00 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 0
   ff 36 ?? push dword ds:[esi]
   6a 20 ?? push 0x20<32>
   50 ?? push eax
   e8 15 05 00 00 ?? call function 0x004016ec
  
  L24: 8b 06 ?? mov eax, dword ds:[esi]
   c1 e0 05 ?? shl eax, 5
   83 c0 04 ?? add eax, 4
   50 ?? push eax
   56 ?? push esi
   e8 73 04 00 00 ?? call function 0x00401659
  
  L25: 83 c4 08 ?? add esp, 8
   c7 45 fc ff ff ff ff ?? mov dword ss:[ebp + 0xfc<252,-4>], 0xffffffff<4294967295,-1>
  
  L26: 85 ff ?? test edi, edi
   74 08 ?? je basic block L28
  
  L27: 51 ?? push ecx
   8b cf ?? mov ecx, edi
   e8 54 01 00 00 ?? call function 0x00401350
  
  L28: 85 db ?? test ebx, ebx
   74 2b ?? je basic block L32
  
  L29: 68 00 13 40 00 ?? push function 0x00401300
   c7 45 fc 01 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 1
   8d 73 fc ?? lea esi, ds:[ebx + 0xfc<252,-4>]
   ff 36 ?? push dword ds:[esi]
   6a 20 ?? push 0x20<32>
   53 ?? push ebx
   e8 d3 04 00 00 ?? call function 0x004016ec
  
  L30: 8b 06 ?? mov eax, dword ds:[esi]
   c1 e0 05 ?? shl eax, 5
   83 c0 04 ?? add eax, 4
   50 ?? push eax
   56 ?? push esi
   e8 31 04 00 00 ?? call function 0x00401659
  
  L31: 83 c4 08 ?? add esp, 8
  
  L32: 8b 45 ec ?? mov eax, dword ss:[ebp + 0xec<236,-20>]
   85 c0 ?? test eax, eax
   74 0b ?? je basic block L35
  
  L33: 6a 18 ?? push 0x18<24>
   50 ?? push eax
   e8 c9 05 00 00 ?? call function 0x00401803
  
  L34: 83 c4 08 ?? add esp, 8
  
  L35: 8b 45 e8 ?? mov eax, dword ss:[ebp + 0xe8<232,-24>]
   85 c0 ?? test eax, eax
   74 09 ?? je basic block L38
  
  L36: 50 ?? push eax
   e8 0a 04 00 00 ?? call function 0x00401654
  
  L37: 83 c4 04 ?? add esp, 4
  
  L38: 6a 18 ?? push 0x18<24>
   ff 75 e4 ?? push dword ss:[ebp + 0xe4<228,-28>]
   e8 ac 05 00 00 ?? call function 0x00401803
  
  L39: ff 75 e0 ?? push dword ss:[ebp + 0xe0<224,-32>]
   e8 f5 03 00 00 ?? call function 0x00401654
  
  L40: 83 c4 0c ?? add esp, 12
   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
   c3 ?? ret
  
  