Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   6a ff ?? push 0xff<255,-1>
   68 90 48 40 00 ?? push 0x00404890
   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 80 40 00 ?? mov eax, dword ds:[0x00408004]
   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 df f9 ff ff ?? call function 0x004010be
  
  L2: 8b f0 ?? mov esi, eax
   83 c4 04 ?? add esp, 4
   85 f6 ?? test esi, esi
   74 17 ?? je basic block L4
  
  L3: c7 46 08 00 00 00 00 ?? mov dword ds:[esi + 8], 0
   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
   eb 02 ?? jmp basic block L5
  
  L4: 33 f6 ?? xor esi, esi
  
  L5: 68 44 05 00 00 ?? push 0x00000544<1348>
   e8 fe f9 ff ff ?? call function 0x00401109
  
  L6: 83 c4 04 ?? add esp, 4
   85 c0 ?? test eax, eax
   74 1f ?? je basic block L9
  
  L7: 68 1d 11 40 00 ?? push function 0x0040111d
   68 3f 12 40 00 ?? push 0x0040123f
   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 d0 f9 ff ff ?? call function 0x004010ff
  
  L8: eb 02 ?? jmp basic block L10
  
  L9: 33 db ?? xor ebx, ebx
  
  L10: 6a 18 ?? push 0x18<24>
   e8 84 f9 ff ff ?? call function 0x004010be
  
  L11: 68 f0 00 00 00 ?? push 0x000000f0<240>
   89 45 e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], eax
   e8 c2 f9 ff ff ?? call function 0x00401109
  
  L12: 68 31 6b 40 00 ?? push 0x00406b31
   6a 20 ?? push 0x20<32>
   89 45 e0 ?? mov dword ss:[ebp + 0xe0<224,-32>], eax
   e8 04 f9 ff ff ?? call function 0x0040105a
  
  L13: 8b f8 ?? mov edi, eax
   83 c4 10 ?? add esp, 0x10<16>
   85 ff ?? test edi, edi
   74 17 ?? je basic block L15
  
  L14: c7 47 08 00 00 00 00 ?? mov dword ds:[edi + 8], 0
   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
   eb 02 ?? jmp basic block L16
  
  L15: 33 ff ?? xor edi, edi
  
  L16: 68 31 6b 40 00 ?? push 0x00406b31
   68 44 05 00 00 ?? push 0x00000544<1348>
   e8 04 fa ff ff ?? call function 0x0040118b
  
  L17: 83 c4 08 ?? add esp, 8
   85 c0 ?? test eax, eax
   74 22 ?? je basic block L20
  
  L18: 68 1d 11 40 00 ?? push function 0x0040111d
   68 3f 12 40 00 ?? push 0x0040123f
   6a 2a ?? push 0x2a<42>
   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 51 f9 ff ff ?? call function 0x004010ff
  
  L19: eb 05 ?? jmp basic block L21
  
  L20: 33 c0 ?? xor eax, eax
   89 45 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], eax
  
  L21: 68 31 6b 40 00 ?? push 0x00406b31
   6a 18 ?? push 0x18<24>
   e8 99 f8 ff ff ?? call function 0x0040105a
  
  L22: 68 31 6b 40 00 ?? push 0x00406b31
   68 f0 00 00 00 ?? push 0x000000f0<240>
   89 45 ec ?? mov dword ss:[ebp + 0xec<236,-20>], eax
   e8 b8 f9 ff ff ?? call function 0x0040118b
  
  L23: 83 c4 10 ?? add esp, 0x10<16>
   89 45 e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], eax
   c7 46 08 00 00 00 00 ?? mov dword ds:[esi + 8], 0
   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 1d 11 40 00 ?? push function 0x0040111d
   68 3f 12 40 00 ?? push 0x0040123f
   6a 2a ?? push 0x2a<42>
   6a 20 ?? push 0x20<32>
   53 ?? push ebx
   e8 fd f8 ff ff ?? call function 0x004010ff
  
  L24: 85 f6 ?? test esi, esi
   74 51 ?? je basic block L33
  
  L25: 8b 4e 1c ?? mov ecx, dword ds:[esi + 0x1c<28>]
   83 f9 10 ?? cmp ecx, 0x10<16>
   72 2c ?? jb basic block L31
  
  L26: 8b 46 08 ?? mov eax, dword ds:[esi + 8]
   41 ?? inc ecx
   81 f9 00 10 00 00 ?? cmp ecx, 0x00001000<4096>
   72 16 ?? jb basic block L29
  
  L27: 8b 50 fc ?? mov edx, dword ds:[eax + 0xfc<252,-4>]
   83 c1 23 ?? add ecx, 0x23<35>
   2b c2 ?? sub eax, edx
   83 c0 fc ?? add eax, 0xfc<252,-4>
   83 f8 1f ?? cmp eax, 0x1f<31>
   0f 87 31 01 00 00 ?? ja basic block L59
  
  L28: 8b c2 ?? mov eax, edx
  
  L29: 51 ?? push ecx
   50 ?? push eax
   e8 19 f8 ff ff ?? call function 0x00401050
  
  L30: 83 c4 08 ?? add esp, 8
  
  L31: 6a 20 ?? push 0x20<32>
   56 ?? push esi
   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 fc f7 ff ff ?? call function 0x00401050
  
  L32: 83 c4 08 ?? add esp, 8
  
  L33: 85 db ?? test ebx, ebx
   74 33 ?? je basic block L37
  
  L34: 68 1d 11 40 00 ?? push function 0x0040111d
   ff 73 fc ?? push dword ds:[ebx + 0xfc<252,-4>]
   8d 73 fc ?? lea esi, ds:[ebx + 0xfc<252,-4>]
   c7 45 fc 00 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 0
   6a 20 ?? push 0x20<32>
   53 ?? push ebx
   e8 70 f9 ff ff ?? call function 0x004011e5
  
  L35: 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 fc f9 ff ff ?? call function 0x00401280
  
  L36: 83 c4 08 ?? add esp, 8
   c7 45 fc ff ff ff ff ?? mov dword ss:[ebp + 0xfc<252,-4>], 0xffffffff<4294967295,-1>
  
  L37: 85 ff ?? test edi, edi
   74 51 ?? je basic block L46
  
  L38: 8b 4f 1c ?? mov ecx, dword ds:[edi + 0x1c<28>]
   83 f9 10 ?? cmp ecx, 0x10<16>
   72 2c ?? jb basic block L44
  
  L39: 8b 47 08 ?? mov eax, dword ds:[edi + 8]
   41 ?? inc ecx
   81 f9 00 10 00 00 ?? cmp ecx, 0x00001000<4096>
   72 16 ?? jb basic block L42
  
  L40: 8b 50 fc ?? mov edx, dword ds:[eax + 0xfc<252,-4>]
   83 c1 23 ?? add ecx, 0x23<35>
   2b c2 ?? sub eax, edx
   83 c0 fc ?? add eax, 0xfc<252,-4>
   83 f8 1f ?? cmp eax, 0x1f<31>
   0f 87 a5 00 00 00 ?? ja basic block L59
  
  L41: 8b c2 ?? mov eax, edx
  
  L42: 51 ?? push ecx
   50 ?? push eax
   e8 8d f7 ff ff ?? call function 0x00401050
  
  L43: 83 c4 08 ?? add esp, 8
  
  L44: 6a 20 ?? push 0x20<32>
   57 ?? push edi
   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
   e8 70 f7 ff ff ?? call function 0x00401050
  
  L45: 83 c4 08 ?? add esp, 8
  
  L46: 8b 45 f0 ?? mov eax, dword ss:[ebp + 0xf0<240,-16>]
   85 c0 ?? test eax, eax
   74 2c ?? je basic block L50
  
  L47: 68 1d 11 40 00 ?? push function 0x0040111d
   ff 70 fc ?? push dword ds:[eax + 0xfc<252,-4>]
   8d 70 fc ?? lea esi, ds:[eax + 0xfc<252,-4>]
   c7 45 fc 01 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 1
   6a 20 ?? push 0x20<32>
   50 ?? push eax
   e8 e1 f8 ff ff ?? call function 0x004011e5
  
  L48: 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 6d f9 ff ff ?? call function 0x00401280
  
  L49: 83 c4 08 ?? add esp, 8
  
  L50: 8b 45 ec ?? mov eax, dword ss:[ebp + 0xec<236,-20>]
   85 c0 ?? test eax, eax
   74 0b ?? je basic block L53
  
  L51: 6a 18 ?? push 0x18<24>
   50 ?? push eax
   e8 2b f7 ff ff ?? call function 0x00401050
  
  L52: 83 c4 08 ?? add esp, 8
  
  L53: 8b 45 e8 ?? mov eax, dword ss:[ebp + 0xe8<232,-24>]
   85 c0 ?? test eax, eax
   74 09 ?? je basic block L56
  
  L54: 50 ?? push eax
   e8 74 f8 ff ff ?? call function 0x004011a9
  
  L55: 83 c4 04 ?? add esp, 4
  
  L56: 6a 18 ?? push 0x18<24>
   ff 75 e4 ?? push dword ss:[ebp + 0xe4<228,-28>]
   e8 0e f7 ff ff ?? call function 0x00401050
  
  L57: ff 75 e0 ?? push dword ss:[ebp + 0xe0<224,-32>]
   e8 5f f8 ff ff ?? call function 0x004011a9
  
  L58: 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
  
  L59: ff 15 88 91 40 00 ?? call dword ds:[0x00409188]
  
  L60: cc ?? int3
  
  L61: cc ?? int3
  
  L62: cc ?? int3
  
  L63: cc ?? int3
  
  L64: cc ?? int3
  
  L65: cc ?? int3
  
  L66: cc ?? int3
  
  L67: cc ?? int3
  
  L68: cc ?? int3
  
  L69: cc ?? int3
  
  L70: cc ?? int3
  
  L71: cc ?? int3
  
  L72: cc ?? int3
  
  L73: cc ?? int3
  
  L74: cc ?? int3
  
  L75: cc ?? int3
  
  L76: cc ?? int3
  
  L77: cc ?? int3
  
  L78: cc ?? int3
  
  L79: cc ?? int3
  
  L80: cc ?? int3
  
  L81: cc ?? int3
  
  L82: cc ?? int3
  
  L83: cc ?? int3
  
  L84: cc ?? int3
  
  L85: cc ?? int3
  
  L86: cc ?? int3
  
  L87: cc ?? int3
  
  L88: cc ?? int3
  
  L89: cc ?? int3
  
  L90: cc ?? int3
  
  L91: cc ?? int3
  
  L92: cc ?? int3
  
  L93: cc ?? int3
  
  L94: cc ?? int3
  
  L95: cc ?? int3
  
  L96: cc ?? int3
  
  L97: cc ?? int3
  
  L98: cc ?? int3
  
  L99: cc ?? int3
  
  L100: cc ?? int3
  
  L101: cc ?? int3
  
  L102: cc ?? int3
  
  L103: cc ?? int3
  
  L104: cc ?? int3
  
  L105: cc ?? int3
  
  L106: cc ?? int3
  
  L107: cc ?? int3
  
  L108: cc ?? int3
  
  L109: cc ?? int3
  
  L110: cc ?? int3
  
  L111: cc ?? int3
  
  L112: cc ?? int3
  
  L113: cc ?? int3
  
  L114: cc ?? int3
  
  L115: cc ?? int3
  
  L116: cc ?? int3
  
  L117: cc ?? int3
  
  L118: cc ?? int3
  
  L119: cc ?? int3
  
  L120: cc ?? int3
  
  L121: cc ?? int3
  
  L122: cc ?? int3
  
  L123: cc ?? int3
  
  L124: cc ?? int3
  
  L125: cc ?? int3
  
  L126: cc ?? int3
  
  L127: cc ?? int3
  
  L128: cc ?? int3
  
  L129: cc ?? int3
  
  L130: cc ?? int3
  
  L131: cc ?? int3
  
  L132: cc ?? int3
  
  L133: cc ?? int3
  
  L134: cc ?? int3
  
  L135: cc ?? int3
  
  L136: cc ?? int3
  
  L137: cc ?? int3
  
  L138: cc ?? int3
  
  L139: cc ?? int3
  
  L140: cc ?? int3
  
  L141: cc ?? int3
  
  L142: cc ?? int3
  
  L143: cc ?? int3
  
  L144: cc ?? int3
  
  L145: cc ?? int3
  
  L146: cc ?? int3
  
  L147: cc ?? int3
  
  L148: cc ?? int3
  
  L149: cc ?? int3
  
  L150: cc ?? int3
  
  L151: cc ?? int3
  
  L152: cc ?? int3
  
  L153: cc ?? int3
  
  L154: cc ?? int3
  
  L155: cc ?? int3
  
  L156: cc ?? int3
  
  L157: cc ?? int3
  
  L158: cc ?? int3
  
  L159: cc ?? int3
  
  L160: cc ?? int3
  
  L161: cc ?? int3
  
  L162: cc ?? int3
  
  L163: cc ?? int3
  
  L164: cc ?? int3
  
  L165: cc ?? int3
  
  L166: cc ?? int3
  
  L167: cc ?? int3
  
  L168: cc ?? int3
  
  L169: cc ?? int3
  
  L170: cc ?? int3
  
  L171: cc ?? int3
  
  L172: cc ?? int3
  
  L173: cc ?? int3
  
  L174: cc ?? int3
  
  L175: cc ?? int3
  
  L176: cc ?? int3
  
  L177: cc ?? int3
  
  L178: cc ?? int3
  
  L179: cc ?? int3
  
  L180: cc ?? int3
  
  L181: cc ?? int3
  
  L182: cc ?? int3
  
  L183: cc ?? int3
  
  L184: cc ?? int3
  
  L185: cc ?? int3
  
  L186: cc ?? int3
  
  L187: cc ?? int3
  
  L188: cc ?? int3
  
  L189: cc ?? int3
  
  L190: cc ?? int3
  
  L191: cc ?? int3
  
  L192: cc ?? int3
  
  L193: cc ?? int3
  
  L194: cc ?? int3
  
  L195: cc ?? int3
  
  L196: cc ?? int3
  
  L197: cc ?? int3
  
  L198: cc ?? int3
  
  L199: cc ?? int3
  
  L200: cc ?? int3
  
  L201: cc ?? int3
  
  L202: cc ?? int3
  
  L203: cc ?? int3
  
  L204: cc ?? int3
  
  L205: cc ?? int3
  
  L206: cc ?? int3
  
  L207: cc ?? int3
  
  L208: cc ?? int3
  
  L209: cc ?? int3
  
  L210: cc ?? int3
  
  L211: cc ?? int3
  
  L212: cc ?? int3
  
  L213: cc ?? int3
  
  L214: cc ?? int3
  
  L215: cc ?? int3
  
  L216: cc ?? int3
  
  L217: cc ?? int3
  
  L218: cc ?? int3
  
  L219: cc ?? int3
  
  L220: cc ?? int3
  
  L221: cc ?? int3
  
  L222: cc ?? int3
  
  L223: cc ?? int3
  
  L224: cc ?? int3
  
  L225: cc ?? int3
  
  L226: cc ?? int3
  
  L227: cc ?? int3
  
  L228: cc ?? int3
  
  L229: cc ?? int3
  
  L230: cc ?? int3
  
  L231: cc ?? int3
  
  L232: cc ?? int3
  
  L233: cc ?? int3
  
  L234: cc ?? int3
  
  L235: cc ?? int3
  
  L236: cc ?? int3
  
  L237: cc ?? int3
  
  L238: cc ?? int3
  
  L239: cc ?? int3
  
  L240: cc ?? int3
  
  L241: cc ?? int3
  
  L242: cc ?? int3
  
  L243: cc ?? int3
  
  L244: cc ?? int3
  
  L245: cc ?? int3
  
  L246: cc ?? int3
  
  