40e08e:	b8 00 10 00 00       	mov    $0x1000,%eax
40e093:	ba ff 00 00 00       	mov    $0xff,%edx
40e098:	66 03 c1             	add    %cx,%ax
40e09b:	66 3b c2             	cmp    %dx,%ax
40e09e:	77 14                	ja     0x40e0b4
40e0a0:	0f b7 0d c4 1f 43 00 	movzwl 0x431fc4,%ecx
40e0a7:	a1 48 26 43 00       	mov    0x432648,%eax
40e0ac:	0f b6 0c 48          	movzbl (%eax,%ecx,2),%ecx
40e0b0:	66 89 4d fc          	mov    %cx,-0x4(%ebp)
40e0b4:	33 c0                	xor    %eax,%eax
40e0b6:	66 89 4d f8          	mov    %cx,-0x8(%ebp)
40e0ba:	6a 10                	push   $0x10
40e0bc:	66 89 45 fa          	mov    %ax,-0x6(%ebp)
40e0c0:	e8 0a 20 00 00       	call   0x4100cf
40e0c5:	59                   	pop    %ecx
40e0c6:	85 c0                	test   %eax,%eax
40e0c8:	74 0c                	je     0x40e0d6
40e0ca:	56                   	push   %esi
40e0cb:	8b c8                	mov    %eax,%ecx
40e0cd:	e8 11 50 ff ff       	call   0x4030e3
40e0d2:	8b f0                	mov    %eax,%esi
40e0d4:	eb 02                	jmp    0x40e0d8
40e0d6:	33 f6                	xor    %esi,%esi
40e0d8:	85 f6                	test   %esi,%esi
40e0da:	75 05                	jne    0x40e0e1
40e0dc:	83 c8 ff             	or     $0xffffffff,%eax
40e0df:	eb 2f                	jmp    0x40e110
40e0e1:	8d 45 f8             	lea    -0x8(%ebp),%eax
40e0e4:	50                   	push   %eax
40e0e5:	6a 02                	push   $0x2
40e0e7:	8d 4e 0c             	lea    0xc(%esi),%ecx
40e0ea:	5a                   	pop    %edx
40e0eb:	e8 6f 59 ff ff       	call   0x403a5f
40e0f0:	8d 45 f4             	lea    -0xc(%ebp),%eax
40e0f3:	50                   	push   %eax
40e0f4:	6a 01                	push   $0x1
40e0f6:	57                   	push   %edi
40e0f7:	56                   	push   %esi
40e0f8:	ff 15 08 34 43 00    	call   *0x433408
40e0fe:	8b 06                	mov    (%esi),%eax
40e100:	56                   	push   %esi
40e101:	8b 70 08             	mov    0x8(%eax),%esi
40e104:	8b ce                	mov    %esi,%ecx
40e106:	ff 15 18 34 43 00    	call   *0x433418
40e10c:	ff d6                	call   *%esi
40e10e:	33 c0                	xor    %eax,%eax
40e110:	5f                   	pop    %edi
40e111:	5e                   	pop    %esi
40e112:	c9                   	leave
40e113:	c3                   	ret
40e114:	8b ff                	mov    %edi,%edi
40e116:	55                   	push   %ebp
40e117:	8b ec                	mov    %esp,%ebp
40e119:	51                   	push   %ecx
40e11a:	51                   	push   %ecx
40e11b:	56                   	push   %esi
40e11c:	57                   	push   %edi
40e11d:	6a 68                	push   $0x68
40e11f:	33 ff                	xor    %edi,%edi
40e121:	51                   	push   %ecx
40e122:	89 7d f8             	mov    %edi,-0x8(%ebp)
40e125:	89 7d fc             	mov    %edi,-0x4(%ebp)
40e128:	ff 15 14 33 43 00    	call   *0x433314
40e12e:	8b f0                	mov    %eax,%esi
40e130:	8d 45 fc             	lea    -0x4(%ebp),%eax
40e133:	50                   	push   %eax
40e134:	8d 45 f8             	lea    -0x8(%ebp),%eax
40e137:	50                   	push   %eax
40e138:	68 b0 00 00 00       	push   $0xb0
40e13d:	56                   	push   %esi
40e13e:	ff 15 10 33 43 00    	call   *0x433310
40e144:	83 f8 ff             	cmp    $0xffffffff,%eax
40e147:	74 64                	je     0x40e1ad
40e149:	8b 45 f8             	mov    -0x8(%ebp),%eax
40e14c:	3b 45 fc             	cmp    -0x4(%ebp),%eax
40e14f:	75 4e                	jne    0x40e19f
40e151:	53                   	push   %ebx
40e152:	57                   	push   %edi
40e153:	6a 01                	push   $0x1
40e155:	bb 3f 04 00 00       	mov    $0x43f,%ebx
40e15a:	53                   	push   %ebx
40e15b:	56                   	push   %esi
40e15c:	ff 15 10 33 43 00    	call   *0x433310
40e162:	6a ff                	push   $0xffffffff
40e164:	57                   	push   %edi
40e165:	bf b1 00 00 00       	mov    $0xb1,%edi
40e16a:	57                   	push   %edi
40e16b:	56                   	push   %esi
40e16c:	ff 15 10 33 43 00    	call   *0x433310
40e172:	6a 00                	push   $0x0
40e174:	6a 00                	push   $0x0
40e176:	68 01 03 00 00       	push   $0x301
40e17b:	56                   	push   %esi
40e17c:	ff 15 10 33 43 00    	call   *0x433310
40e182:	ff 75 fc             	push   -0x4(%ebp)
40e185:	ff 75 f8             	push   -0x8(%ebp)
40e188:	57                   	push   %edi
40e189:	56                   	push   %esi
40e18a:	ff 15 10 33 43 00    	call   *0x433310
40e190:	6a 00                	push   $0x0
40e192:	6a 00                	push   $0x0
40e194:	53                   	push   %ebx
40e195:	56                   	push   %esi
40e196:	ff 15 10 33 43 00    	call   *0x433310
40e19c:	5b                   	pop    %ebx
40e19d:	eb 0e                	jmp    0x40e1ad
40e19f:	57                   	push   %edi
40e1a0:	57                   	push   %edi
40e1a1:	68 01 03 00 00       	push   $0x301
40e1a6:	56                   	push   %esi
40e1a7:	ff 15 10 33 43 00    	call   *0x433310
40e1ad:	5f                   	pop    %edi
40e1ae:	5e                   	pop    %esi
40e1af:	c9                   	leave
40e1b0:	c3                   	ret
40e1b1:	8b ff                	mov    %edi,%edi
40e1b3:	55                   	push   %ebp
40e1b4:	8b ec                	mov    %esp,%ebp
40e1b6:	81 ec 20 01 00 00    	sub    $0x120,%esp
40e1bc:	a1 64 10 41 00       	mov    0x411064,%eax
40e1c1:	33 c5                	xor    %ebp,%eax
40e1c3:	89 45 fc             	mov    %eax,-0x4(%ebp)
40e1c6:	53                   	push   %ebx
40e1c7:	56                   	push   %esi
40e1c8:	57                   	push   %edi
40e1c9:	8b d9                	mov    %ecx,%ebx
40e1cb:	8b fa                	mov    %edx,%edi
40e1cd:	6a 68                	push   $0x68
40e1cf:	53                   	push   %ebx
40e1d0:	ff 15 14 33 43 00    	call   *0x433314
40e1d6:	8b f0                	mov    %eax,%esi
40e1d8:	8d 85 e4 fe ff ff    	lea    -0x11c(%ebp),%eax
40e1de:	50                   	push   %eax
40e1df:	8d 85 e0 fe ff ff    	lea    -0x120(%ebp),%eax
40e1e5:	50                   	push   %eax
40e1e6:	68 b0 00 00 00       	push   $0xb0
40e1eb:	56                   	push   %esi
40e1ec:	ff 15 10 33 43 00    	call   *0x433310
40e1f2:	83 f8 ff             	cmp    $0xffffffff,%eax
40e1f5:	0f 84 d8 00 00 00    	je     0x40e2d3
40e1fb:	8d 85 e8 fe ff ff    	lea    -0x118(%ebp),%eax
40e201:	c7 85 e8 fe ff ff 5c 	movl   $0x5c,-0x118(%ebp)
40e208:	00 00 00
40e20b:	50                   	push   %eax
40e20c:	6a 01                	push   $0x1
40e20e:	68 3a 04 00 00       	push   $0x43a
40e213:	56                   	push   %esi
40e214:	ff 15 10 33 43 00    	call   *0x433310
40e21a:	8d 85 44 ff ff ff    	lea    -0xbc(%ebp),%eax
40e220:	50                   	push   %eax
40e221:	6a 5c                	push   $0x5c
40e223:	57                   	push   %edi
40e224:	ff 15 64 30 43 00    	call   *0x433064
40e22a:	85 c0                	test   %eax,%eax
40e22c:	0f 84 a1 00 00 00    	je     0x40e2d3
40e232:	8b ce                	mov    %esi,%ecx
40e234:	e8 25 e0 ff ff       	call   0x40c25e
40e239:	88 45 b8             	mov    %al,-0x48(%ebp)
40e23c:	33 c0                	xor    %eax,%eax
40e23e:	81 bd 54 ff ff ff bc 	cmpl   $0x2bc,-0xac(%ebp)
40e245:	02 00 00
40e248:	c7 45 a0 5c 00 00 00 	movl   $0x5c,-0x60(%ebp)
40e24f:	c7 45 a4 07 00 00 b8 	movl   $0xb8000007,-0x5c(%ebp)
40e256:	89 45 a8             	mov    %eax,-0x58(%ebp)
40e259:	7c 04                	jl     0x40e25f
40e25b:	40                   	inc    %eax
40e25c:	89 45 a8             	mov    %eax,-0x58(%ebp)
40e25f:	80 bd 58 ff ff ff 00 	cmpb   $0x0,-0xa8(%ebp)
40e266:	74 06                	je     0x40e26e
40e268:	83 c8 02             	or     $0x2,%eax
40e26b:	89 45 a8             	mov    %eax,-0x58(%ebp)
40e26e:	80 bd 59 ff ff ff 00 	cmpb   $0x0,-0xa7(%ebp)
40e275:	74 06                	je     0x40e27d
40e277:	83 c8 04             	or     $0x4,%eax
40e27a:	89 45 a8             	mov    %eax,-0x58(%ebp)
40e27d:	8a 85 5f ff ff ff    	mov    -0xa1(%ebp),%al
40e283:	8b d7                	mov    %edi,%edx
40e285:	8b cb                	mov    %ebx,%ecx
40e287:	88 45 b9             	mov    %al,-0x47(%ebp)
40e28a:	e8 c2 b9 ff ff       	call   0x409c51
40e28f:	83 65 b0 00          	andl   $0x0,-0x50(%ebp)
40e293:	8d 4d ba             	lea    -0x46(%ebp),%ecx
40e296:	89 45 ac             	mov    %eax,-0x54(%ebp)
40e299:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
40e29f:	50                   	push   %eax
40e2a0:	6a 20                	push   $0x20
40e2a2:	5a                   	pop    %edx
40e2a3:	e8 b7 57 ff ff       	call   0x403a5f
40e2a8:	85 c0                	test   %eax,%eax
40e2aa:	78 27                	js     0x40e2d3
40e2ac:	8d 85 02 ff ff ff    	lea    -0xfe(%ebp),%eax
40e2b2:	50                   	push   %eax
40e2b3:	8d 45 ba             	lea    -0x46(%ebp),%eax
40e2b6:	50                   	push   %eax
40e2b7:	ff 15 54 31 43 00    	call   *0x433154
40e2bd:	85 c0                	test   %eax,%eax
40e2bf:	74 12                	je     0x40e2d3
40e2c1:	8d 45 a0             	lea    -0x60(%ebp),%eax
40e2c4:	50                   	push   %eax
40e2c5:	6a 01                	push   $0x1
40e2c7:	68 44 04 00 00       	push   $0x444
40e2cc:	56                   	push   %esi
40e2cd:	ff 15 10 33 43 00    	call   *0x433310
40e2d3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e2d6:	5f                   	pop    %edi
40e2d7:	5e                   	pop    %esi
40e2d8:	33 cd                	xor    %ebp,%ecx
40e2da:	5b                   	pop    %ebx
40e2db:	e8 50 21 00 00       	call   0x410430
40e2e0:	c9                   	leave
40e2e1:	c3                   	ret
40e2e2:	8b ff                	mov    %edi,%edi
40e2e4:	55                   	push   %ebp
40e2e5:	8b ec                	mov    %esp,%ebp
40e2e7:	83 ec 14             	sub    $0x14,%esp
40e2ea:	a1 64 10 41 00       	mov    0x411064,%eax
40e2ef:	33 c5                	xor    %ebp,%eax
40e2f1:	89 45 fc             	mov    %eax,-0x4(%ebp)
40e2f4:	8b 45 08             	mov    0x8(%ebp),%eax
40e2f7:	53                   	push   %ebx
40e2f8:	a3 54 1f 43 00       	mov    %eax,0x431f54
40e2fd:	8b d9                	mov    %ecx,%ebx
40e2ff:	56                   	push   %esi
40e300:	c1 e8 10             	shr    $0x10,%eax
40e303:	0f bf f0             	movswl %ax,%esi
40e306:	8d 45 ec             	lea    -0x14(%ebp),%eax
40e309:	50                   	push   %eax
40e30a:	53                   	push   %ebx
40e30b:	89 15 58 1f 43 00    	mov    %edx,0x431f58
40e311:	ff 15 f0 31 43 00    	call   *0x4331f0
40e317:	3b 75 f0             	cmp    -0x10(%ebp),%esi
40e31a:	7c 10                	jl     0x40e32c
40e31c:	3b 75 f8             	cmp    -0x8(%ebp),%esi
40e31f:	7f 0b                	jg     0x40e32c
40e321:	6a 08                	push   $0x8
40e323:	53                   	push   %ebx
40e324:	ff 15 44 32 43 00    	call   *0x433244
40e32a:	eb 45                	jmp    0x40e371
40e32c:	8b c6                	mov    %esi,%eax
40e32e:	c1 f8 1f             	sar    $0x1f,%eax
40e331:	83 e0 fe             	and    $0xfffffffe,%eax
40e334:	83 c0 28             	add    $0x28,%eax
40e337:	85 f6                	test   %esi,%esi
40e339:	79 04                	jns    0x40e33f
40e33b:	f7 de                	neg    %esi
40e33d:	eb 03                	jmp    0x40e342
40e33f:	2b 75 f8             	sub    -0x8(%ebp),%esi
40e342:	57                   	push   %edi
40e343:	c1 e6 04             	shl    $0x4,%esi
40e346:	bf ee 02 00 00       	mov    $0x2ee,%edi
40e34b:	2b fe                	sub    %esi,%edi
40e34d:	83 ff 01             	cmp    $0x1,%edi
40e350:	7d 03                	jge    0x40e355
40e352:	33 ff                	xor    %edi,%edi
40e354:	47                   	inc    %edi
40e355:	6a 00                	push   $0x0
40e357:	50                   	push   %eax
40e358:	68 00 01 00 00       	push   $0x100
40e35d:	53                   	push   %ebx
40e35e:	ff 15 10 33 43 00    	call   *0x433310
40e364:	6a 00                	push   $0x0
40e366:	57                   	push   %edi
40e367:	6a 08                	push   $0x8
40e369:	53                   	push   %ebx
40e36a:	ff 15 40 32 43 00    	call   *0x433240
40e370:	5f                   	pop    %edi
40e371:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e374:	33 c0                	xor    %eax,%eax
40e376:	5e                   	pop    %esi
40e377:	33 cd                	xor    %ebp,%ecx
40e379:	5b                   	pop    %ebx
40e37a:	e8 b1 20 00 00       	call   0x410430
40e37f:	c9                   	leave
40e380:	c2 04 00             	ret    $0x4
40e383:	8b ff                	mov    %edi,%edi
40e385:	55                   	push   %ebp
40e386:	8b ec                	mov    %esp,%ebp
40e388:	83 ec 10             	sub    $0x10,%esp
40e38b:	53                   	push   %ebx
40e38c:	56                   	push   %esi
40e38d:	8b f1                	mov    %ecx,%esi
40e38f:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40e392:	57                   	push   %edi
40e393:	8b fa                	mov    %edx,%edi
40e395:	33 db                	xor    %ebx,%ebx
40e397:	89 7d f8             	mov    %edi,-0x8(%ebp)
40e39a:	8d 56 02             	lea    0x2(%esi),%edx
40e39d:	66 8b 06             	mov    (%esi),%ax
40e3a0:	83 c6 02             	add    $0x2,%esi
40e3a3:	66 3b c3             	cmp    %bx,%ax
40e3a6:	75 f5                	jne    0x40e39d
40e3a8:	2b f2                	sub    %edx,%esi
40e3aa:	6a 04                	push   $0x4
40e3ac:	d1 fe                	sar    $1,%esi
40e3ae:	58                   	pop    %eax
40e3af:	3b f0                	cmp    %eax,%esi
40e3b1:	76 07                	jbe    0x40e3ba
40e3b3:	33 c0                	xor    %eax,%eax
40e3b5:	66 89 07             	mov    %ax,(%edi)
40e3b8:	eb 58                	jmp    0x40e412
40e3ba:	8b d3                	mov    %ebx,%edx
40e3bc:	89 55 f4             	mov    %edx,-0xc(%ebp)
40e3bf:	2b c6                	sub    %esi,%eax
40e3c1:	74 1b                	je     0x40e3de
40e3c3:	8b d0                	mov    %eax,%edx
40e3c5:	b8 30 00 30 00       	mov    $0x300030,%eax
40e3ca:	8b ca                	mov    %edx,%ecx
40e3cc:	89 55 f4             	mov    %edx,-0xc(%ebp)
40e3cf:	d1 e9                	shr    $1,%ecx
40e3d1:	f3 ab                	rep stos %eax,%es:(%edi)
40e3d3:	13 c9                	adc    %ecx,%ecx
40e3d5:	66 f3 ab             	rep stos %ax,%es:(%edi)
40e3d8:	8b 7d f8             	mov    -0x8(%ebp),%edi
40e3db:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e3de:	85 f6                	test   %esi,%esi
40e3e0:	74 25                	je     0x40e407
40e3e2:	8d 04 57             	lea    (%edi,%edx,2),%eax
40e3e5:	89 45 f0             	mov    %eax,-0x10(%ebp)
40e3e8:	8b f8                	mov    %eax,%edi
40e3ea:	0f b7 04 59          	movzwl (%ecx,%ebx,2),%eax
40e3ee:	50                   	push   %eax
40e3ef:	ff 15 d8 33 43 00    	call   *0x4333d8
40e3f5:	43                   	inc    %ebx
40e3f6:	66 89 07             	mov    %ax,(%edi)
40e3f9:	8d 7f 02             	lea    0x2(%edi),%edi
40e3fc:	59                   	pop    %ecx
40e3fd:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e400:	3b de                	cmp    %esi,%ebx
40e402:	72 e6                	jb     0x40e3ea
40e404:	8b 7d f8             	mov    -0x8(%ebp),%edi
40e407:	8b 45 f4             	mov    -0xc(%ebp),%eax
40e40a:	03 c3                	add    %ebx,%eax
40e40c:	33 c9                	xor    %ecx,%ecx
40e40e:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
40e412:	5f                   	pop    %edi
40e413:	5e                   	pop    %esi
40e414:	5b                   	pop    %ebx
40e415:	c9                   	leave
40e416:	c2 04 00             	ret    $0x4
40e419:	8b ff                	mov    %edi,%edi
40e41b:	55                   	push   %ebp
40e41c:	8b ec                	mov    %esp,%ebp
40e41e:	81 ec 04 02 00 00    	sub    $0x204,%esp
40e424:	a1 64 10 41 00       	mov    0x411064,%eax
40e429:	33 c5                	xor    %ebp,%eax
40e42b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40e42e:	53                   	push   %ebx
40e42f:	56                   	push   %esi
40e430:	57                   	push   %edi
40e431:	8b f9                	mov    %ecx,%edi