40af83:	e8 96 6a ff ff       	call   0x401a1e
40af88:	a1 94 66 41 00       	mov    0x416694,%eax
40af8d:	8b 00                	mov    (%eax),%eax
40af8f:	8b 48 10             	mov    0x10(%eax),%ecx
40af92:	85 c9                	test   %ecx,%ecx
40af94:	74 05                	je     0x40af9b
40af96:	e8 92 aa ff ff       	call   0x405a2d
40af9b:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40af9f:	e8 89 aa ff ff       	call   0x405a2d
40afa4:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40afa8:	e8 80 aa ff ff       	call   0x405a2d
40afad:	8b 0d 94 66 41 00    	mov    0x416694,%ecx
40afb3:	8b 31                	mov    (%ecx),%esi
40afb5:	e8 bc aa ff ff       	call   0x405a76
40afba:	8d 4e 24             	lea    0x24(%esi),%ecx
40afbd:	e8 d8 6e ff ff       	call   0x401e9a
40afc2:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
40afc6:	e8 9b 7e ff ff       	call   0x402e66
40afcb:	33 c0                	xor    %eax,%eax
40afcd:	5e                   	pop    %esi
40afce:	8b e5                	mov    %ebp,%esp
40afd0:	5d                   	pop    %ebp
40afd1:	c2 04 00             	ret    $0x4
40afd4:	51                   	push   %ecx
40afd5:	e8 cf ee ff ff       	call   0x409ea9
40afda:	33 c0                	xor    %eax,%eax
40afdc:	40                   	inc    %eax
40afdd:	59                   	pop    %ecx
40afde:	c3                   	ret
40afdf:	55                   	push   %ebp
40afe0:	8b ec                	mov    %esp,%ebp
40afe2:	83 ec 64             	sub    $0x64,%esp
40afe5:	53                   	push   %ebx
40afe6:	56                   	push   %esi
40afe7:	57                   	push   %edi
40afe8:	8b f9                	mov    %ecx,%edi
40afea:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40afed:	68 28 2b 41 00       	push   $0x412b28
40aff2:	e8 f5 81 ff ff       	call   0x4031ec
40aff7:	6a 1a                	push   $0x1a
40aff9:	5a                   	pop    %edx
40affa:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40affd:	e8 59 27 00 00       	call   0x40d75b
40b002:	68 44 26 41 00       	push   $0x412644
40b007:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40b00a:	e8 88 82 ff ff       	call   0x403297
40b00f:	6a 08                	push   $0x8
40b011:	5a                   	pop    %edx
40b012:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40b015:	e8 ba 82 ff ff       	call   0x4032d4
40b01a:	50                   	push   %eax
40b01b:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40b01e:	e8 3f 81 ff ff       	call   0x403162
40b023:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40b026:	e8 02 aa ff ff       	call   0x405a2d
40b02b:	68 40 2b 41 00       	push   $0x412b40
40b030:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40b033:	e8 5f 82 ff ff       	call   0x403297
40b038:	6a 1c                	push   $0x1c
40b03a:	5a                   	pop    %edx
40b03b:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40b03e:	e8 18 27 00 00       	call   0x40d75b
40b043:	68 50 2b 41 00       	push   $0x412b50
40b048:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40b04b:	e8 47 82 ff ff       	call   0x403297
40b050:	ff 75 f0             	push   -0x10(%ebp)
40b053:	ff 15 78 22 41 00    	call   *0x412278
40b059:	85 c0                	test   %eax,%eax
40b05b:	74 5a                	je     0x40b0b7
40b05d:	6a 00                	push   $0x0
40b05f:	ff 75 f8             	push   -0x8(%ebp)
40b062:	ff 75 f0             	push   -0x10(%ebp)
40b065:	ff 15 34 21 41 00    	call   *0x412134
40b06b:	85 c0                	test   %eax,%eax
40b06d:	74 48                	je     0x40b0b7
40b06f:	8d 45 f8             	lea    -0x8(%ebp),%eax
40b072:	50                   	push   %eax
40b073:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40b076:	e8 e9 81 ff ff       	call   0x403264
40b07b:	8d 45 e0             	lea    -0x20(%ebp),%eax
40b07e:	50                   	push   %eax
40b07f:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40b082:	e8 fa 82 ff ff       	call   0x403381
40b087:	6a 00                	push   $0x0
40b089:	6a 02                	push   $0x2
40b08b:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40b08e:	51                   	push   %ecx
40b08f:	ff 30                	push   (%eax)
40b091:	ff 57 2c             	call   *0x2c(%edi)
40b094:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40b097:	83 c4 10             	add    $0x10,%esp
40b09a:	8b f0                	mov    %eax,%esi
40b09c:	e8 8c a9 ff ff       	call   0x405a2d
40b0a1:	85 f6                	test   %esi,%esi
40b0a3:	74 33                	je     0x40b0d8
40b0a5:	51                   	push   %ecx
40b0a6:	8d 45 f8             	lea    -0x8(%ebp),%eax
40b0a9:	8b cc                	mov    %esp,%ecx
40b0ab:	50                   	push   %eax
40b0ac:	e8 a9 83 ff ff       	call   0x40345a
40b0b1:	e8 f3 2d 00 00       	call   0x40dea9
40b0b6:	59                   	pop    %ecx
40b0b7:	33 f6                	xor    %esi,%esi
40b0b9:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40b0bc:	e8 6c a9 ff ff       	call   0x405a2d
40b0c1:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40b0c4:	e8 64 a9 ff ff       	call   0x405a2d
40b0c9:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40b0cc:	e8 5c a9 ff ff       	call   0x405a2d
40b0d1:	5f                   	pop    %edi
40b0d2:	8b c6                	mov    %esi,%eax
40b0d4:	5e                   	pop    %esi
40b0d5:	5b                   	pop    %ebx
40b0d6:	c9                   	leave
40b0d7:	c3                   	ret
40b0d8:	6a 00                	push   $0x0
40b0da:	8d 45 fc             	lea    -0x4(%ebp),%eax
40b0dd:	50                   	push   %eax
40b0de:	6a ff                	push   $0xffffffff
40b0e0:	ff 75 d8             	push   -0x28(%ebp)
40b0e3:	ff 75 dc             	push   -0x24(%ebp)
40b0e6:	ff 57 38             	call   *0x38(%edi)
40b0e9:	83 c4 14             	add    $0x14,%esp
40b0ec:	85 c0                	test   %eax,%eax
40b0ee:	75 b5                	jne    0x40b0a5
40b0f0:	ff 75 fc             	push   -0x4(%ebp)
40b0f3:	ff 57 44             	call   *0x44(%edi)
40b0f6:	33 f6                	xor    %esi,%esi
40b0f8:	46                   	inc    %esi
40b0f9:	e9 ec 01 00 00       	jmp    0x40b2ea
40b0fe:	83 65 c0 00          	andl   $0x0,-0x40(%ebp)
40b102:	33 db                	xor    %ebx,%ebx
40b104:	8b ce                	mov    %esi,%ecx
40b106:	89 5d c4             	mov    %ebx,-0x3c(%ebp)
40b109:	e8 9c a8 ff ff       	call   0x4059aa
40b10e:	53                   	push   %ebx
40b10f:	ff 75 fc             	push   -0x4(%ebp)
40b112:	89 45 f4             	mov    %eax,-0xc(%ebp)
40b115:	ff 57 40             	call   *0x40(%edi)
40b118:	59                   	pop    %ecx
40b119:	59                   	pop    %ecx
40b11a:	50                   	push   %eax
40b11b:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40b11e:	e8 c9 80 ff ff       	call   0x4031ec
40b123:	56                   	push   %esi
40b124:	ff 75 fc             	push   -0x4(%ebp)
40b127:	ff 57 40             	call   *0x40(%edi)
40b12a:	59                   	pop    %ecx
40b12b:	59                   	pop    %ecx
40b12c:	50                   	push   %eax
40b12d:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40b130:	e8 b7 80 ff ff       	call   0x4031ec
40b135:	6a 03                	push   $0x3
40b137:	ff 75 fc             	push   -0x4(%ebp)
40b13a:	ff 57 5c             	call   *0x5c(%edi)
40b13d:	59                   	pop    %ecx
40b13e:	59                   	pop    %ecx
40b13f:	85 c0                	test   %eax,%eax
40b141:	7e 24                	jle    0x40b167
40b143:	6a 03                	push   $0x3
40b145:	ff 75 fc             	push   -0x4(%ebp)
40b148:	ff 57 40             	call   *0x40(%edi)
40b14b:	59                   	pop    %ecx
40b14c:	59                   	pop    %ecx
40b14d:	50                   	push   %eax
40b14e:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
40b151:	e8 96 80 ff ff       	call   0x4031ec
40b156:	50                   	push   %eax
40b157:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40b15a:	e8 f3 7d ff ff       	call   0x402f52
40b15f:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
40b162:	e8 c6 a8 ff ff       	call   0x405a2d
40b167:	6a 03                	push   $0x3
40b169:	ff 75 fc             	push   -0x4(%ebp)
40b16c:	ff 57 5c             	call   *0x5c(%edi)
40b16f:	59                   	pop    %ecx
40b170:	59                   	pop    %ecx
40b171:	85 c0                	test   %eax,%eax
40b173:	7e 24                	jle    0x40b199
40b175:	6a 03                	push   $0x3
40b177:	ff 75 fc             	push   -0x4(%ebp)
40b17a:	ff 57 40             	call   *0x40(%edi)
40b17d:	59                   	pop    %ecx
40b17e:	59                   	pop    %ecx
40b17f:	50                   	push   %eax
40b180:	8d 4d d0             	lea    -0x30(%ebp),%ecx
40b183:	e8 64 80 ff ff       	call   0x4031ec
40b188:	50                   	push   %eax
40b189:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40b18c:	e8 c1 7d ff ff       	call   0x402f52
40b191:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40b194:	e8 94 a8 ff ff       	call   0x405a2d
40b199:	6a 05                	push   $0x5
40b19b:	ff 75 fc             	push   -0x4(%ebp)
40b19e:	ff 57 5c             	call   *0x5c(%edi)
40b1a1:	59                   	pop    %ecx
40b1a2:	59                   	pop    %ecx
40b1a3:	85 c0                	test   %eax,%eax
40b1a5:	7e 4c                	jle    0x40b1f3
40b1a7:	6a 05                	push   $0x5
40b1a9:	ff 75 fc             	push   -0x4(%ebp)
40b1ac:	ff 57 5c             	call   *0x5c(%edi)
40b1af:	6a 05                	push   $0x5
40b1b1:	ff 75 fc             	push   -0x4(%ebp)
40b1b4:	89 45 b0             	mov    %eax,-0x50(%ebp)
40b1b7:	ff 57 54             	call   *0x54(%edi)
40b1ba:	83 c4 10             	add    $0x10,%esp
40b1bd:	89 45 b4             	mov    %eax,-0x4c(%ebp)
40b1c0:	8d 45 b8             	lea    -0x48(%ebp),%eax
40b1c3:	50                   	push   %eax
40b1c4:	56                   	push   %esi
40b1c5:	33 c0                	xor    %eax,%eax
40b1c7:	50                   	push   %eax
40b1c8:	50                   	push   %eax
40b1c9:	50                   	push   %eax
40b1ca:	50                   	push   %eax
40b1cb:	8d 45 b0             	lea    -0x50(%ebp),%eax
40b1ce:	50                   	push   %eax
40b1cf:	ff 15 80 20 41 00    	call   *0x412080
40b1d5:	85 c0                	test   %eax,%eax
40b1d7:	74 1a                	je     0x40b1f3
40b1d9:	ff 75 b8             	push   -0x48(%ebp)
40b1dc:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40b1df:	ff 75 bc             	push   -0x44(%ebp)
40b1e2:	e8 da 7b ff ff       	call   0x402dc1
40b1e7:	ff 75 bc             	push   -0x44(%ebp)
40b1ea:	ff 15 d4 20 41 00    	call   *0x4120d4
40b1f0:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
40b1f3:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40b1f6:	e8 be 7c ff ff       	call   0x402eb9
40b1fb:	85 c0                	test   %eax,%eax
40b1fd:	7f 08                	jg     0x40b207
40b1ff:	85 db                	test   %ebx,%ebx
40b201:	0f 84 bd 00 00 00    	je     0x40b2c4
40b207:	33 c0                	xor    %eax,%eax
40b209:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40b20c:	89 45 a0             	mov    %eax,-0x60(%ebp)
40b20f:	89 45 a4             	mov    %eax,-0x5c(%ebp)
40b212:	89 45 a8             	mov    %eax,-0x58(%ebp)
40b215:	e8 9f 7c ff ff       	call   0x402eb9
40b21a:	85 c0                	test   %eax,%eax
40b21c:	7e 21                	jle    0x40b23f
40b21e:	8d 45 e8             	lea    -0x18(%ebp),%eax
40b221:	50                   	push   %eax
40b222:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40b225:	e8 a0 7c ff ff       	call   0x402eca
40b22a:	50                   	push   %eax
40b22b:	8d 4d a0             	lea    -0x60(%ebp),%ecx
40b22e:	e8 31 80 ff ff       	call   0x403264
40b233:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40b236:	e8 f2 a7 ff ff       	call   0x405a2d
40b23b:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
40b23f:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40b242:	e8 72 7c ff ff       	call   0x402eb9
40b247:	85 c0                	test   %eax,%eax
40b249:	7e 21                	jle    0x40b26c
40b24b:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40b24e:	50                   	push   %eax
40b24f:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40b252:	e8 73 7c ff ff       	call   0x402eca
40b257:	50                   	push   %eax
40b258:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
40b25b:	e8 04 80 ff ff       	call   0x403264
40b260:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40b263:	e8 c5 a7 ff ff       	call   0x405a2d
40b268:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
40b26c:	85 db                	test   %ebx,%ebx
40b26e:	74 34                	je     0x40b2a4
40b270:	8d 45 e0             	lea    -0x20(%ebp),%eax
40b273:	50                   	push   %eax
40b274:	8d 45 cc             	lea    -0x34(%ebp),%eax
40b277:	50                   	push   %eax
40b278:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40b27b:	e8 d9 7a ff ff       	call   0x402d59
40b280:	8b c8                	mov    %eax,%ecx
40b282:	e8 43 7c ff ff       	call   0x402eca
40b287:	50                   	push   %eax
40b288:	8d 4d a8             	lea    -0x58(%ebp),%ecx
40b28b:	e8 d4 7f ff ff       	call   0x403264
40b290:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40b293:	e8 95 a7 ff ff       	call   0x405a2d
40b298:	8b 4d cc             	mov    -0x34(%ebp),%ecx
40b29b:	83 65 e0 00          	andl   $0x0,-0x20(%ebp)
40b29f:	e8 89 a7 ff ff       	call   0x405a2d
40b2a4:	83 ec 10             	sub    $0x10,%esp
40b2a7:	89 75 ac             	mov    %esi,-0x54(%ebp)
40b2aa:	8d 45 a0             	lea    -0x60(%ebp),%eax
40b2ad:	8b cc                	mov    %esp,%ecx
40b2af:	50                   	push   %eax
40b2b0:	e8 04 6c ff ff       	call   0x401eb9
40b2b5:	8b cf                	mov    %edi,%ecx
40b2b7:	e8 33 6c ff ff       	call   0x401eef
40b2bc:	8d 4d a0             	lea    -0x60(%ebp),%ecx
40b2bf:	e8 cb 60 ff ff       	call   0x40138f
40b2c4:	8b 4d c8             	mov    -0x38(%ebp),%ecx
40b2c7:	e8 61 a7 ff ff       	call   0x405a2d
40b2cc:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40b2cf:	e8 59 a7 ff ff       	call   0x405a2d
40b2d4:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40b2d7:	e8 51 a7 ff ff       	call   0x405a2d
40b2dc:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40b2df:	e8 82 7b ff ff       	call   0x402e66
40b2e4:	ff 75 fc             	push   -0x4(%ebp)
40b2e7:	ff 57 44             	call   *0x44(%edi)
40b2ea:	59                   	pop    %ecx
40b2eb:	83 f8 64             	cmp    $0x64,%eax
40b2ee:	0f 84 0a fe ff ff    	je     0x40b0fe
40b2f4:	ff 75 fc             	push   -0x4(%ebp)
40b2f7:	ff 57 60             	call   *0x60(%edi)
40b2fa:	ff 75 dc             	push   -0x24(%ebp)
40b2fd:	ff 57 34             	call   *0x34(%edi)
40b300:	59                   	pop    %ecx
40b301:	8d 45 f8             	lea    -0x8(%ebp),%eax
40b304:	8b cc                	mov    %esp,%ecx
40b306:	50                   	push   %eax
40b307:	e8 4e 81 ff ff       	call   0x40345a
40b30c:	e8 98 2b 00 00       	call   0x40dea9
40b311:	59                   	pop    %ecx
40b312:	e9 a2 fd ff ff       	jmp    0x40b0b9
40b317:	33 c0                	xor    %eax,%eax
40b319:	89 01                	mov    %eax,(%ecx)
40b31b:	89 41 04             	mov    %eax,0x4(%ecx)
40b31e:	89 41 08             	mov    %eax,0x8(%ecx)
40b321:	8b c1                	mov    %ecx,%eax
40b323:	c3                   	ret
40b324:	a1 34 7c 41 00       	mov    0x417c34,%eax
40b329:	85 c0                	test   %eax,%eax
40b32b:	74 07                	je     0x40b334
40b32d:	50                   	push   %eax
40b32e:	ff 15 00 22 41 00    	call   *0x412200
40b334:	b9 2c 7c 41 00       	mov    $0x417c2c,%ecx
40b339:	e8 28 7b ff ff       	call   0x402e66
40b33e:	b9 24 7c 41 00       	mov    $0x417c24,%ecx
40b343:	e8 1e 7b ff ff       	call   0x402e66
40b348:	8b 0d 10 7c 41 00    	mov    0x417c10,%ecx
40b34e:	85 c9                	test   %ecx,%ecx
40b350:	74 06                	je     0x40b358
40b352:	51                   	push   %ecx
40b353:	e8 c6 66 ff ff       	call   0x401a1e
40b358:	33 c0                	xor    %eax,%eax
40b35a:	a3 10 7c 41 00       	mov    %eax,0x417c10
40b35f:	a3 18 7c 41 00       	mov    %eax,0x417c18
40b364:	a3 14 7c 41 00       	mov    %eax,0x417c14
40b369:	c3                   	ret
40b36a:	55                   	push   %ebp
40b36b:	8b ec                	mov    %esp,%ebp
40b36d:	8b 0d 10 7c 41 00    	mov    0x417c10,%ecx
40b373:	85 c9                	test   %ecx,%ecx
40b375:	74 06                	je     0x40b37d
40b377:	51                   	push   %ecx