40e1e1:	e8 cc fe ff ff       	call   0x40e0b2
40e1e6:	8b f0                	mov    %eax,%esi
40e1e8:	85 f6                	test   %esi,%esi
40e1ea:	0f 84 74 03 00 00    	je     0x40e564
40e1f0:	89 7d a8             	mov    %edi,-0x58(%ebp)
40e1f3:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
40e1f6:	ff 15 44 31 42 00    	call   *0x423144
40e1fc:	89 7d fc             	mov    %edi,-0x4(%ebp)
40e1ff:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40e203:	8b 15 2c 15 42 00    	mov    0x42152c,%edx
40e209:	6a 66                	push   $0x66
40e20b:	59                   	pop    %ecx
40e20c:	e8 30 06 00 00       	call   0x40e841
40e211:	8b f0                	mov    %eax,%esi
40e213:	89 75 a8             	mov    %esi,-0x58(%ebp)
40e216:	85 f6                	test   %esi,%esi
40e218:	75 08                	jne    0x40e222
40e21a:	6a 67                	push   $0x67
40e21c:	e8 32 04 00 00       	call   0x40e653
40e221:	59                   	pop    %ecx
40e222:	89 7d fc             	mov    %edi,-0x4(%ebp)
40e225:	eb 1c                	jmp    0x40e243
40e227:	8b 45 a4             	mov    -0x5c(%ebp),%eax
40e22a:	89 45 a0             	mov    %eax,-0x60(%ebp)
40e22d:	6a 68                	push   $0x68
40e22f:	e8 1f 04 00 00       	call   0x40e653
40e234:	59                   	pop    %ecx
40e235:	b8 3b e2 40 00       	mov    $0x40e23b,%eax
40e23a:	c3                   	ret
40e23b:	33 ff                	xor    %edi,%edi
40e23d:	89 7d fc             	mov    %edi,-0x4(%ebp)
40e240:	8b 75 a8             	mov    -0x58(%ebp),%esi
40e243:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40e247:	ff 15 48 31 42 00    	call   *0x423148
40e24d:	85 f6                	test   %esi,%esi
40e24f:	0f 84 0f 03 00 00    	je     0x40e564
40e255:	bb 05 01 00 00       	mov    $0x105,%ebx
40e25a:	53                   	push   %ebx
40e25b:	68 50 19 42 00       	push   $0x421950
40e260:	ff 15 5c 30 42 00    	call   *0x42305c
40e266:	85 c0                	test   %eax,%eax
40e268:	0f 84 ec 02 00 00    	je     0x40e55a
40e26e:	3b c3                	cmp    %ebx,%eax
40e270:	0f 87 e4 02 00 00    	ja     0x40e55a
40e276:	51                   	push   %ecx
40e277:	68 50 19 42 00       	push   $0x421950
40e27c:	51                   	push   %ecx
40e27d:	8b d3                	mov    %ebx,%edx
40e27f:	b9 40 17 42 00       	mov    $0x421740,%ecx
40e284:	e8 43 03 00 00       	call   0x40e5cc
40e289:	85 c0                	test   %eax,%eax
40e28b:	0f 88 c9 02 00 00    	js     0x40e55a
40e291:	68 30 47 40 00       	push   $0x404730
40e296:	b9 40 17 42 00       	mov    $0x421740,%ecx
40e29b:	e8 cc 02 00 00       	call   0x40e56c
40e2a0:	85 c0                	test   %eax,%eax
40e2a2:	0f 88 b2 02 00 00    	js     0x40e55a
40e2a8:	51                   	push   %ecx
40e2a9:	68 40 17 42 00       	push   $0x421740
40e2ae:	51                   	push   %ecx
40e2af:	8b d3                	mov    %ebx,%edx
40e2b1:	bb 30 15 42 00       	mov    $0x421530,%ebx
40e2b6:	8b cb                	mov    %ebx,%ecx
40e2b8:	e8 0f 03 00 00       	call   0x40e5cc
40e2bd:	85 c0                	test   %eax,%eax
40e2bf:	0f 88 8e 02 00 00    	js     0x40e553
40e2c5:	68 50 47 40 00       	push   $0x404750
40e2ca:	8b cb                	mov    %ebx,%ecx
40e2cc:	e8 9b 02 00 00       	call   0x40e56c
40e2d1:	85 c0                	test   %eax,%eax
40e2d3:	0f 88 7a 02 00 00    	js     0x40e553
40e2d9:	bb 04 01 00 00       	mov    $0x104,%ebx
40e2de:	53                   	push   %ebx
40e2df:	8b 0d 24 15 42 00    	mov    0x421524,%ecx
40e2e5:	ff 15 78 33 42 00    	call   *0x423378
40e2eb:	85 c0                	test   %eax,%eax
40e2ed:	75 0c                	jne    0x40e2fb
40e2ef:	6a 68                	push   $0x68
40e2f1:	e8 5d 03 00 00       	call   0x40e653
40e2f6:	e9 68 02 00 00       	jmp    0x40e563
40e2fb:	50                   	push   %eax
40e2fc:	53                   	push   %ebx
40e2fd:	ff 15 58 30 42 00    	call   *0x423058
40e303:	8b f0                	mov    %eax,%esi
40e305:	6a ff                	push   $0xffffffff
40e307:	8b 0d 24 15 42 00    	mov    0x421524,%ecx
40e30d:	ff 15 7c 33 42 00    	call   *0x42337c
40e313:	85 f6                	test   %esi,%esi
40e315:	0f 84 34 02 00 00    	je     0x40e54f
40e31b:	3b f3                	cmp    %ebx,%esi
40e31d:	0f 83 2c 02 00 00    	jae    0x40e54f
40e323:	6a 40                	push   $0x40
40e325:	5b                   	pop    %ebx
40e326:	53                   	push   %ebx
40e327:	57                   	push   %edi
40e328:	8d 45 ac             	lea    -0x54(%ebp),%eax
40e32b:	50                   	push   %eax
40e32c:	e8 f0 e2 00 00       	call   0x41c621
40e331:	83 c4 0c             	add    $0xc,%esp
40e334:	89 5d ac             	mov    %ebx,-0x54(%ebp)
40e337:	8d 45 ac             	lea    -0x54(%ebp),%eax
40e33a:	50                   	push   %eax
40e33b:	ff 15 54 30 42 00    	call   *0x423054
40e341:	8b f0                	mov    %eax,%esi
40e343:	85 f6                	test   %esi,%esi
40e345:	0f 84 19 02 00 00    	je     0x40e564
40e34b:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40e34e:	a3 20 15 42 00       	mov    %eax,0x421520
40e353:	53                   	push   %ebx
40e354:	68 a0 14 42 00       	push   $0x4214a0
40e359:	68 a0 00 00 00       	push   $0xa0
40e35e:	ff 35 28 15 42 00    	push   0x421528
40e364:	ff 15 60 34 42 00    	call   *0x423460
40e36a:	53                   	push   %ebx
40e36b:	68 20 14 42 00       	push   $0x421420
40e370:	68 a1 00 00 00       	push   $0xa1
40e375:	ff 35 28 15 42 00    	push   0x421528
40e37b:	ff 15 60 34 42 00    	call   *0x423460
40e381:	53                   	push   %ebx
40e382:	68 a0 13 42 00       	push   $0x4213a0
40e387:	68 a2 00 00 00       	push   $0xa2
40e38c:	ff 35 28 15 42 00    	push   0x421528
40e392:	ff 15 60 34 42 00    	call   *0x423460
40e398:	53                   	push   %ebx
40e399:	68 a0 12 42 00       	push   $0x4212a0
40e39e:	68 a3 00 00 00       	push   $0xa3
40e3a3:	ff 35 28 15 42 00    	push   0x421528
40e3a9:	ff 15 60 34 42 00    	call   *0x423460
40e3af:	53                   	push   %ebx
40e3b0:	68 20 12 42 00       	push   $0x421220
40e3b5:	68 a4 00 00 00       	push   $0xa4
40e3ba:	ff 35 28 15 42 00    	push   0x421528
40e3c0:	ff 15 60 34 42 00    	call   *0x423460
40e3c6:	53                   	push   %ebx
40e3c7:	68 90 11 42 00       	push   $0x421190
40e3cc:	68 a5 00 00 00       	push   $0xa5
40e3d1:	ff 35 28 15 42 00    	push   0x421528
40e3d7:	ff 15 60 34 42 00    	call   *0x423460
40e3dd:	53                   	push   %ebx
40e3de:	68 10 11 42 00       	push   $0x421110
40e3e3:	68 a6 00 00 00       	push   $0xa6
40e3e8:	ff 35 28 15 42 00    	push   0x421528
40e3ee:	ff 15 60 34 42 00    	call   *0x423460
40e3f4:	53                   	push   %ebx
40e3f5:	68 20 13 42 00       	push   $0x421320
40e3fa:	68 a7 00 00 00       	push   $0xa7
40e3ff:	ff 35 28 15 42 00    	push   0x421528
40e405:	ff 15 60 34 42 00    	call   *0x423460
40e40b:	53                   	push   %ebx
40e40c:	68 90 10 42 00       	push   $0x421090
40e411:	68 a8 00 00 00       	push   $0xa8
40e416:	ff 35 28 15 42 00    	push   0x421528
40e41c:	ff 15 60 34 42 00    	call   *0x423460
40e422:	53                   	push   %ebx
40e423:	68 10 0d 42 00       	push   $0x420d10
40e428:	68 a9 00 00 00       	push   $0xa9
40e42d:	ff 35 28 15 42 00    	push   0x421528
40e433:	ff 15 60 34 42 00    	call   *0x423460
40e439:	53                   	push   %ebx
40e43a:	68 90 0d 42 00       	push   $0x420d90
40e43f:	68 aa 00 00 00       	push   $0xaa
40e444:	ff 35 28 15 42 00    	push   0x421528
40e44a:	ff 15 60 34 42 00    	call   *0x423460
40e450:	53                   	push   %ebx
40e451:	68 90 0c 42 00       	push   $0x420c90
40e456:	68 ab 00 00 00       	push   $0xab
40e45b:	ff 35 28 15 42 00    	push   0x421528
40e461:	ff 15 60 34 42 00    	call   *0x423460
40e467:	53                   	push   %ebx
40e468:	68 10 0c 42 00       	push   $0x420c10
40e46d:	68 ac 00 00 00       	push   $0xac
40e472:	ff 35 28 15 42 00    	push   0x421528
40e478:	ff 15 60 34 42 00    	call   *0x423460
40e47e:	53                   	push   %ebx
40e47f:	68 90 0b 42 00       	push   $0x420b90
40e484:	68 ad 00 00 00       	push   $0xad
40e489:	ff 35 28 15 42 00    	push   0x421528
40e48f:	ff 15 60 34 42 00    	call   *0x423460
40e495:	53                   	push   %ebx
40e496:	68 10 10 42 00       	push   $0x421010
40e49b:	68 ae 00 00 00       	push   $0xae
40e4a0:	ff 35 28 15 42 00    	push   0x421528
40e4a6:	ff 15 60 34 42 00    	call   *0x423460
40e4ac:	53                   	push   %ebx
40e4ad:	68 10 0b 42 00       	push   $0x420b10
40e4b2:	68 af 00 00 00       	push   $0xaf
40e4b7:	ff 35 28 15 42 00    	push   0x421528
40e4bd:	ff 15 60 34 42 00    	call   *0x423460
40e4c3:	53                   	push   %ebx
40e4c4:	68 90 0a 42 00       	push   $0x420a90
40e4c9:	68 b0 00 00 00       	push   $0xb0
40e4ce:	ff 35 28 15 42 00    	push   0x421528
40e4d4:	ff 15 60 34 42 00    	call   *0x423460
40e4da:	53                   	push   %ebx
40e4db:	68 90 0f 42 00       	push   $0x420f90
40e4e0:	68 b1 00 00 00       	push   $0xb1
40e4e5:	ff 35 28 15 42 00    	push   0x421528
40e4eb:	ff 15 60 34 42 00    	call   *0x423460
40e4f1:	53                   	push   %ebx
40e4f2:	68 10 0f 42 00       	push   $0x420f10
40e4f7:	68 b2 00 00 00       	push   $0xb2
40e4fc:	ff 35 28 15 42 00    	push   0x421528
40e502:	ff 15 60 34 42 00    	call   *0x423460
40e508:	53                   	push   %ebx
40e509:	68 90 0e 42 00       	push   $0x420e90
40e50e:	68 b3 00 00 00       	push   $0xb3
40e513:	ff 35 28 15 42 00    	push   0x421528
40e519:	ff 15 60 34 42 00    	call   *0x423460
40e51f:	53                   	push   %ebx
40e520:	68 10 0e 42 00       	push   $0x420e10
40e525:	68 b4 00 00 00       	push   $0xb4
40e52a:	ff 35 28 15 42 00    	push   0x421528
40e530:	ff 15 60 34 42 00    	call   *0x423460
40e536:	53                   	push   %ebx
40e537:	68 10 0a 42 00       	push   $0x420a10
40e53c:	68 b6 00 00 00       	push   $0xb6
40e541:	ff 35 28 15 42 00    	push   0x421528
40e547:	ff 15 60 34 42 00    	call   *0x423460
40e54d:	eb 15                	jmp    0x40e564
40e54f:	6a 6c                	push   $0x6c
40e551:	eb 09                	jmp    0x40e55c
40e553:	68 60 01 00 00       	push   $0x160
40e558:	eb 02                	jmp    0x40e55c
40e55a:	6a 6a                	push   $0x6a
40e55c:	e8 f2 00 00 00       	call   0x40e653
40e561:	8b f7                	mov    %edi,%esi
40e563:	59                   	pop    %ecx
40e564:	8b c6                	mov    %esi,%eax
40e566:	e8 be de 00 00       	call   0x41c429
40e56b:	c3                   	ret
40e56c:	8b ff                	mov    %edi,%edi
40e56e:	55                   	push   %ebp
40e56f:	8b ec                	mov    %esp,%ebp
40e571:	56                   	push   %esi
40e572:	57                   	push   %edi
40e573:	8b f9                	mov    %ecx,%edi
40e575:	be 05 01 00 00       	mov    $0x105,%esi
40e57a:	8b ce                	mov    %esi,%ecx
40e57c:	8b c7                	mov    %edi,%eax
40e57e:	66 83 38 00          	cmpw   $0x0,(%eax)
40e582:	74 08                	je     0x40e58c
40e584:	83 c0 02             	add    $0x2,%eax
40e587:	83 e9 01             	sub    $0x1,%ecx
40e58a:	75 f2                	jne    0x40e57e
40e58c:	8b c1                	mov    %ecx,%eax
40e58e:	f7 d8                	neg    %eax
40e590:	1b c0                	sbb    %eax,%eax
40e592:	25 a9 ff f8 7f       	and    $0x7ff8ffa9,%eax
40e597:	05 57 00 07 80       	add    $0x80070057,%eax
40e59c:	85 c9                	test   %ecx,%ecx
40e59e:	74 26                	je     0x40e5c6
40e5a0:	8b d1                	mov    %ecx,%edx
40e5a2:	8d 81 fb fe ff ff    	lea    -0x105(%ecx),%eax
40e5a8:	f7 da                	neg    %edx
40e5aa:	51                   	push   %ecx
40e5ab:	ff 75 08             	push   0x8(%ebp)
40e5ae:	1b d2                	sbb    %edx,%edx
40e5b0:	23 d0                	and    %eax,%edx
40e5b2:	03 d6                	add    %esi,%edx
40e5b4:	2b f1                	sub    %ecx,%esi
40e5b6:	51                   	push   %ecx
40e5b7:	03 f6                	add    %esi,%esi
40e5b9:	f7 d9                	neg    %ecx
40e5bb:	1b c9                	sbb    %ecx,%ecx
40e5bd:	23 ce                	and    %esi,%ecx
40e5bf:	03 cf                	add    %edi,%ecx
40e5c1:	e8 06 00 00 00       	call   0x40e5cc
40e5c6:	5f                   	pop    %edi
40e5c7:	5e                   	pop    %esi
40e5c8:	5d                   	pop    %ebp
40e5c9:	c2 04 00             	ret    $0x4
40e5cc:	8b ff                	mov    %edi,%edi
40e5ce:	55                   	push   %ebp
40e5cf:	8b ec                	mov    %esp,%ebp
40e5d1:	85 d2                	test   %edx,%edx
40e5d3:	74 2b                	je     0x40e600
40e5d5:	8b 45 0c             	mov    0xc(%ebp),%eax
40e5d8:	56                   	push   %esi
40e5d9:	57                   	push   %edi
40e5da:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi
40e5df:	2b c1                	sub    %ecx,%eax
40e5e1:	85 f6                	test   %esi,%esi
40e5e3:	74 15                	je     0x40e5fa
40e5e5:	0f b7 3c 08          	movzwl (%eax,%ecx,1),%edi
40e5e9:	66 85 ff             	test   %di,%di
40e5ec:	74 0c                	je     0x40e5fa
40e5ee:	66 89 39             	mov    %di,(%ecx)
40e5f1:	83 c1 02             	add    $0x2,%ecx
40e5f4:	4e                   	dec    %esi
40e5f5:	83 ea 01             	sub    $0x1,%edx
40e5f8:	75 e7                	jne    0x40e5e1
40e5fa:	5f                   	pop    %edi
40e5fb:	5e                   	pop    %esi
40e5fc:	85 d2                	test   %edx,%edx
40e5fe:	75 03                	jne    0x40e603
40e600:	83 e9 02             	sub    $0x2,%ecx
40e603:	f7 da                	neg    %edx
40e605:	1b d2                	sbb    %edx,%edx
40e607:	81 e2 86 ff f8 7f    	and    $0x7ff8ff86,%edx
40e60d:	33 c0                	xor    %eax,%eax
40e60f:	66 89 01             	mov    %ax,(%ecx)
40e612:	8d 82 7a 00 07 80    	lea    -0x7ff8ff86(%edx),%eax
40e618:	5d                   	pop    %ebp
40e619:	c2 0c 00             	ret    $0xc
40e61c:	8b ff                	mov    %edi,%edi
40e61e:	55                   	push   %ebp
40e61f:	8b ec                	mov    %esp,%ebp
40e621:	6a ff                	push   $0xffffffff
40e623:	68 4d d2 41 00       	push   $0x41d24d
40e628:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40e62e:	50                   	push   %eax
40e62f:	a1 e4 05 42 00       	mov    0x4205e4,%eax
40e634:	33 c5                	xor    %ebp,%eax
40e636:	50                   	push   %eax
40e637:	8d 45 f4             	lea    -0xc(%ebp),%eax
40e63a:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40e640:	ff 15 48 31 42 00    	call   *0x423148
40e646:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40e649:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40e650:	59                   	pop    %ecx
40e651:	c9                   	leave
40e652:	c3                   	ret
40e653:	8b ff                	mov    %edi,%edi
40e655:	55                   	push   %ebp
40e656:	8b ec                	mov    %esp,%ebp
40e658:	81 ec 04 04 00 00    	sub    $0x404,%esp
40e65e:	a1 e4 05 42 00       	mov    0x4205e4,%eax
40e663:	33 c5                	xor    %ebp,%eax
40e665:	89 45 fc             	mov    %eax,-0x4(%ebp)
40e668:	68 00 01 00 00       	push   $0x100
40e66d:	8d 85 fc fb ff ff    	lea    -0x404(%ebp),%eax
40e673:	50                   	push   %eax
40e674:	ff 75 08             	push   0x8(%ebp)
40e677:	ff 35 28 15 42 00    	push   0x421528
40e67d:	ff 15 60 34 42 00    	call   *0x423460
40e683:	85 c0                	test   %eax,%eax
40e685:	74 57                	je     0x40e6de
40e687:	8d 45 0c             	lea    0xc(%ebp),%eax
40e68a:	50                   	push   %eax
40e68b:	8d 85 fc fb ff ff    	lea    -0x404(%ebp),%eax
40e691:	50                   	push   %eax
40e692:	8d 8d fc fd ff ff    	lea    -0x204(%ebp),%ecx
40e698:	e8 78 4b 00 00       	call   0x413215
40e69d:	85 c0                	test   %eax,%eax
40e69f:	79 09                	jns    0x40e6aa
40e6a1:	33 c0                	xor    %eax,%eax
40e6a3:	66 89 85 fc fd ff ff 	mov    %ax,-0x204(%ebp)
40e6aa:	83 3d 30 1f 42 00 00 	cmpl   $0x0,0x421f30
40e6b1:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
40e6b7:	74 0a                	je     0x40e6c3