40d23b:	0f b7 db             	movzwl %bx,%ebx
40d23e:	81 cb 00 00 07 80    	or     $0x80070000,%ebx
40d244:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40d248:	8b 3d 40 1a 40 00    	mov    0x401a40,%edi
40d24e:	8b cf                	mov    %edi,%ecx
40d250:	6a 00                	push   $0x0
40d252:	ff 15 20 a5 43 00    	call   *0x43a520
40d258:	ff d7                	call   *%edi
40d25a:	c7 45 fc 03 00 00 00 	movl   $0x3,-0x4(%ebp)
40d261:	e9 f3 03 00 00       	jmp    0x40d659
40d266:	a1 44 8a 43 00       	mov    0x438a44,%eax
40d26b:	8b 0d 10 91 43 00    	mov    0x439110,%ecx
40d271:	3b 8d a8 fb ff ff    	cmp    -0x458(%ebp),%ecx
40d277:	76 38                	jbe    0x40d2b1
40d279:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
40d27d:	8b 3d 40 1a 40 00    	mov    0x401a40,%edi
40d283:	8b cf                	mov    %edi,%ecx
40d285:	6a 00                	push   $0x0
40d287:	ff 15 20 a5 43 00    	call   *0x43a520
40d28d:	ff d7                	call   *%edi
40d28f:	c7 45 fc 05 00 00 00 	movl   $0x5,-0x4(%ebp)
40d296:	56                   	push   %esi
40d297:	8b 35 40 1a 40 00    	mov    0x401a40,%esi
40d29d:	8b ce                	mov    %esi,%ecx
40d29f:	ff 15 20 a5 43 00    	call   *0x43a520
40d2a5:	ff d6                	call   *%esi
40d2a7:	b8 7a 00 07 80       	mov    $0x8007007a,%eax
40d2ac:	e9 bb 03 00 00       	jmp    0x40d66c
40d2b1:	8b 9d a4 fb ff ff    	mov    -0x45c(%ebp),%ebx
40d2b7:	51                   	push   %ecx
40d2b8:	50                   	push   %eax
40d2b9:	53                   	push   %ebx
40d2ba:	e8 27 dc 00 00       	call   0x41aee6
40d2bf:	a1 10 91 43 00       	mov    0x439110,%eax
40d2c4:	83 c4 0c             	add    $0xc,%esp
40d2c7:	eb 0d                	jmp    0x40d2d6
40d2c9:	8b 9d a4 fb ff ff    	mov    -0x45c(%ebp),%ebx
40d2cf:	53                   	push   %ebx
40d2d0:	ff 15 c0 a3 43 00    	call   *0x43a3c0
40d2d6:	89 85 9c fb ff ff    	mov    %eax,-0x464(%ebp)
40d2dc:	85 c0                	test   %eax,%eax
40d2de:	0f 84 15 03 00 00    	je     0x40d5f9
40d2e4:	8d 8d 4c fb ff ff    	lea    -0x4b4(%ebp),%ecx
40d2ea:	c6 45 fc 0f          	movb   $0xf,-0x4(%ebp)
40d2ee:	e8 9f f9 ff ff       	call   0x40cc92
40d2f3:	53                   	push   %ebx
40d2f4:	8d 8d 4c fb ff ff    	lea    -0x4b4(%ebp),%ecx
40d2fa:	c6 45 fc 10          	movb   $0x10,-0x4(%ebp)
40d2fe:	e8 0d fa ff ff       	call   0x40cd10
40d303:	83 bd 68 fb ff ff 00 	cmpl   $0x0,-0x498(%ebp)
40d30a:	0f 84 92 01 00 00    	je     0x40d4a2
40d310:	8b 8d 88 fb ff ff    	mov    -0x478(%ebp),%ecx
40d316:	83 b9 f4 05 00 00 00 	cmpl   $0x0,0x5f4(%ecx)
40d31d:	74 79                	je     0x40d398
40d31f:	68 fc 85 43 00       	push   $0x4385fc
40d324:	6a 02                	push   $0x2
40d326:	68 f4 85 43 00       	push   $0x4385f4
40d32b:	8d 8d 80 fb ff ff    	lea    -0x480(%ebp),%ecx
40d331:	e8 e9 a2 00 00       	call   0x41761f
40d336:	c6 45 fc 11          	movb   $0x11,-0x4(%ebp)
40d33a:	8d 8d 68 fb ff ff    	lea    -0x498(%ebp),%ecx
40d340:	ff b5 80 fb ff ff    	push   -0x480(%ebp)
40d346:	e8 6b d7 ff ff       	call   0x40aab6
40d34b:	8d 8d 68 fb ff ff    	lea    -0x498(%ebp),%ecx
40d351:	e8 aa d7 ff ff       	call   0x40ab00
40d356:	85 c0                	test   %eax,%eax
40d358:	0f 84 2a 03 00 00    	je     0x40d688
40d35e:	51                   	push   %ecx
40d35f:	ff b5 68 fb ff ff    	push   -0x498(%ebp)
40d365:	51                   	push   %ecx
40d366:	8d 8d 4c fb ff ff    	lea    -0x4b4(%ebp),%ecx
40d36c:	e8 80 f9 ff ff       	call   0x40ccf1
40d371:	c6 45 fc 10          	movb   $0x10,-0x4(%ebp)
40d375:	8b 85 80 fb ff ff    	mov    -0x480(%ebp),%eax
40d37b:	85 c0                	test   %eax,%eax
40d37d:	74 19                	je     0x40d398
40d37f:	c6 45 fc 12          	movb   $0x12,-0x4(%ebp)
40d383:	8b 1d 40 1a 40 00    	mov    0x401a40,%ebx
40d389:	8b cb                	mov    %ebx,%ecx
40d38b:	50                   	push   %eax
40d38c:	ff 15 20 a5 43 00    	call   *0x43a520
40d392:	ff d3                	call   *%ebx
40d394:	c6 45 fc 10          	movb   $0x10,-0x4(%ebp)
40d398:	c7 85 e0 fb ff ff 28 	movl   $0x405328,-0x420(%ebp)
40d39f:	53 40 00
40d3a2:	33 db                	xor    %ebx,%ebx
40d3a4:	c7 85 e4 fb ff ff f0 	movl   $0x4053f0,-0x41c(%ebp)
40d3ab:	53 40 00
40d3ae:	c7 85 e8 fb ff ff a0 	movl   $0x4054a0,-0x418(%ebp)
40d3b5:	54 40 00
40d3b8:	eb 06                	jmp    0x40d3c0
40d3ba:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
40d3c0:	83 fb 03             	cmp    $0x3,%ebx
40d3c3:	0f 83 d3 00 00 00    	jae    0x40d49c
40d3c9:	c7 85 98 fb ff ff 00 	movl   $0x0,-0x468(%ebp)
40d3d0:	00 00 00
40d3d3:	8d 8d 98 fb ff ff    	lea    -0x468(%ebp),%ecx
40d3d9:	c6 45 fc 13          	movb   $0x13,-0x4(%ebp)
40d3dd:	e8 ab eb 00 00       	call   0x41bf8d
40d3e2:	50                   	push   %eax
40d3e3:	ff b4 9d e0 fb ff ff 	push   -0x420(%ebp,%ebx,4)
40d3ea:	ff 15 fc a3 43 00    	call   *0x43a3fc
40d3f0:	8b 4d 04             	mov    0x4(%ebp),%ecx
40d3f3:	85 c0                	test   %eax,%eax
40d3f5:	0f 84 a4 02 00 00    	je     0x40d69f
40d3fb:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
40d401:	8d 8d 68 fb ff ff    	lea    -0x498(%ebp),%ecx
40d407:	89 85 78 fb ff ff    	mov    %eax,-0x488(%ebp)
40d40d:	8d 85 a0 fb ff ff    	lea    -0x460(%ebp),%eax
40d413:	50                   	push   %eax
40d414:	8d 85 7c fb ff ff    	lea    -0x484(%ebp),%eax
40d41a:	c6 85 a0 fb ff ff 00 	movb   $0x0,-0x460(%ebp)
40d421:	50                   	push   %eax
40d422:	8d 85 78 fb ff ff    	lea    -0x488(%ebp),%eax
40d428:	c7 85 7c fb ff ff 81 	movl   $0x1f0081,-0x484(%ebp)
40d42f:	00 1f 00
40d432:	50                   	push   %eax
40d433:	83 ec 08             	sub    $0x8,%esp
40d436:	e8 e5 be 00 00       	call   0x419320
40d43b:	6a 00                	push   $0x0
40d43d:	ff b5 68 fb ff ff    	push   -0x498(%ebp)
40d443:	8d 85 4c fb ff ff    	lea    -0x4b4(%ebp),%eax
40d449:	6a 01                	push   $0x1
40d44b:	50                   	push   %eax
40d44c:	ff 15 d4 a3 43 00    	call   *0x43a3d4
40d452:	85 c0                	test   %eax,%eax
40d454:	0f 84 50 02 00 00    	je     0x40d6aa
40d45a:	c6 45 fc 10          	movb   $0x10,-0x4(%ebp)
40d45e:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
40d464:	85 c0                	test   %eax,%eax
40d466:	74 22                	je     0x40d48a
40d468:	89 85 74 fb ff ff    	mov    %eax,-0x48c(%ebp)
40d46e:	8d 95 74 fb ff ff    	lea    -0x48c(%ebp),%edx
40d474:	a1 30 a1 43 00       	mov    0x43a130,%eax
40d479:	8d 8d 84 fb ff ff    	lea    -0x47c(%ebp),%ecx
40d47f:	89 85 84 fb ff ff    	mov    %eax,-0x47c(%ebp)
40d485:	e8 da e1 00 00       	call   0x41b664
40d48a:	8b b5 8c fb ff ff    	mov    -0x474(%ebp),%esi
40d490:	43                   	inc    %ebx
40d491:	8b bd 90 fb ff ff    	mov    -0x470(%ebp),%edi
40d497:	e9 24 ff ff ff       	jmp    0x40d3c0
40d49c:	8b 9d a4 fb ff ff    	mov    -0x45c(%ebp),%ebx
40d4a2:	6a 00                	push   $0x0
40d4a4:	6a 00                	push   $0x0
40d4a6:	6a 00                	push   $0x0
40d4a8:	8d 85 4c fb ff ff    	lea    -0x4b4(%ebp),%eax
40d4ae:	50                   	push   %eax
40d4af:	ff 15 80 a3 43 00    	call   *0x43a380
40d4b5:	85 c0                	test   %eax,%eax
40d4b7:	0f 84 06 02 00 00    	je     0x40d6c3
40d4bd:	8d 85 9c fb ff ff    	lea    -0x464(%ebp),%eax
40d4c3:	50                   	push   %eax
40d4c4:	ff b5 a8 fb ff ff    	push   -0x458(%ebp)
40d4ca:	8d 8d 4c fb ff ff    	lea    -0x4b4(%ebp),%ecx
40d4d0:	53                   	push   %ebx
40d4d1:	e8 72 f9 ff ff       	call   0x40ce48
40d4d6:	89 85 a8 fb ff ff    	mov    %eax,-0x458(%ebp)
40d4dc:	3d 7a 00 07 80       	cmp    $0x8007007a,%eax
40d4e1:	75 5a                	jne    0x40d53d
40d4e3:	ff b5 9c fb ff ff    	push   -0x464(%ebp)
40d4e9:	8b 1d 3c 1a 40 00    	mov    0x401a3c,%ebx
40d4ef:	8b cb                	mov    %ebx,%ecx
40d4f1:	ff 15 20 a5 43 00    	call   *0x43a520
40d4f7:	ff d3                	call   *%ebx
40d4f9:	8b d8                	mov    %eax,%ebx
40d4fb:	3b df                	cmp    %edi,%ebx
40d4fd:	74 1d                	je     0x40d51c
40d4ff:	c6 45 fc 14          	movb   $0x14,-0x4(%ebp)
40d503:	57                   	push   %edi
40d504:	8b 3d 40 1a 40 00    	mov    0x401a40,%edi
40d50a:	8b cf                	mov    %edi,%ecx
40d50c:	ff 15 20 a5 43 00    	call   *0x43a520
40d512:	ff d7                	call   *%edi
40d514:	8b fb                	mov    %ebx,%edi
40d516:	89 bd 90 fb ff ff    	mov    %edi,-0x470(%ebp)
40d51c:	8d 85 9c fb ff ff    	lea    -0x464(%ebp),%eax
40d522:	8b df                	mov    %edi,%ebx
40d524:	50                   	push   %eax
40d525:	ff b5 9c fb ff ff    	push   -0x464(%ebp)
40d52b:	8d 8d 4c fb ff ff    	lea    -0x4b4(%ebp),%ecx
40d531:	57                   	push   %edi
40d532:	e8 11 f9 ff ff       	call   0x40ce48
40d537:	89 85 a8 fb ff ff    	mov    %eax,-0x458(%ebp)
40d53d:	8d 8d 4c fb ff ff    	lea    -0x4b4(%ebp),%ecx
40d543:	e8 44 f9 ff ff       	call   0x40ce8c
40d548:	8b 85 a8 fb ff ff    	mov    -0x458(%ebp),%eax
40d54e:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40d555:	eb 46                	jmp    0x40d59d
40d557:	8b 85 48 fb ff ff    	mov    -0x4b8(%ebp),%eax
40d55d:	8b 40 10             	mov    0x10(%eax),%eax
40d560:	89 85 84 fb ff ff    	mov    %eax,-0x47c(%ebp)
40d566:	b8 6c d5 40 00       	mov    $0x40d56c,%eax
40d56b:	c3                   	ret
40d56c:	8b 8d 70 fb ff ff    	mov    -0x490(%ebp),%ecx
40d572:	8b 9d a4 fb ff ff    	mov    -0x45c(%ebp),%ebx
40d578:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40d57f:	8b 85 84 fb ff ff    	mov    -0x47c(%ebp),%eax
40d585:	8b b5 8c fb ff ff    	mov    -0x474(%ebp),%esi
40d58b:	8b bd 90 fb ff ff    	mov    -0x470(%ebp),%edi
40d591:	89 85 a8 fb ff ff    	mov    %eax,-0x458(%ebp)
40d597:	89 8d 88 fb ff ff    	mov    %ecx,-0x478(%ebp)
40d59d:	85 c0                	test   %eax,%eax
40d59f:	79 52                	jns    0x40d5f3
40d5a1:	8b 4d 04             	mov    0x4(%ebp),%ecx
40d5a4:	ba f5 07 00 00       	mov    $0x7f5,%edx
40d5a9:	50                   	push   %eax
40d5aa:	68 58 52 40 00       	push   $0x405258
40d5af:	e8 56 eb 01 00       	call   0x42c10a
40d5b4:	c6 45 fc 16          	movb   $0x16,-0x4(%ebp)
40d5b8:	ff b5 90 fb ff ff    	push   -0x470(%ebp)
40d5be:	8b 35 40 1a 40 00    	mov    0x401a40,%esi
40d5c4:	8b ce                	mov    %esi,%ecx
40d5c6:	ff 15 20 a5 43 00    	call   *0x43a520
40d5cc:	ff d6                	call   *%esi
40d5ce:	c7 45 fc 17 00 00 00 	movl   $0x17,-0x4(%ebp)
40d5d5:	ff b5 8c fb ff ff    	push   -0x474(%ebp)
40d5db:	8b 35 40 1a 40 00    	mov    0x401a40,%esi
40d5e1:	8b ce                	mov    %esi,%ecx
40d5e3:	ff 15 20 a5 43 00    	call   *0x43a520
40d5e9:	ff d6                	call   *%esi
40d5eb:	8b 85 a8 fb ff ff    	mov    -0x458(%ebp),%eax
40d5f1:	eb 79                	jmp    0x40d66c
40d5f3:	8b 85 9c fb ff ff    	mov    -0x464(%ebp),%eax
40d5f9:	b9 41 00 00 00       	mov    $0x41,%ecx
40d5fe:	89 85 40 fb ff ff    	mov    %eax,-0x4c0(%ebp)
40d604:	8d 85 ac fb ff ff    	lea    -0x454(%ebp),%eax
40d60a:	66 89 8d 38 fb ff ff 	mov    %cx,-0x4c8(%ebp)
40d611:	8b 8d 88 fb ff ff    	mov    -0x478(%ebp),%ecx
40d617:	50                   	push   %eax
40d618:	89 9d 44 fb ff ff    	mov    %ebx,-0x4bc(%ebp)
40d61e:	e8 ad 54 00 00       	call   0x412ad0
40d623:	8b d8                	mov    %eax,%ebx
40d625:	85 db                	test   %ebx,%ebx
40d627:	78 14                	js     0x40d63d
40d629:	8b 8d 88 fb ff ff    	mov    -0x478(%ebp),%ecx
40d62f:	8d 85 38 fb ff ff    	lea    -0x4c8(%ebp),%eax
40d635:	50                   	push   %eax
40d636:	e8 45 22 00 00       	call   0x40f880
40d63b:	8b d8                	mov    %eax,%ebx
40d63d:	c6 45 fc 18          	movb   $0x18,-0x4(%ebp)
40d641:	57                   	push   %edi
40d642:	8b 3d 40 1a 40 00    	mov    0x401a40,%edi
40d648:	8b cf                	mov    %edi,%ecx
40d64a:	ff 15 20 a5 43 00    	call   *0x43a520
40d650:	ff d7                	call   *%edi
40d652:	c7 45 fc 19 00 00 00 	movl   $0x19,-0x4(%ebp)
40d659:	56                   	push   %esi
40d65a:	8b 35 40 1a 40 00    	mov    0x401a40,%esi
40d660:	8b ce                	mov    %esi,%ecx
40d662:	ff 15 20 a5 43 00    	call   *0x43a520
40d668:	ff d6                	call   *%esi
40d66a:	8b c3                	mov    %ebx,%eax
40d66c:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40d66f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40d676:	59                   	pop    %ecx
40d677:	5f                   	pop    %edi
40d678:	5e                   	pop    %esi
40d679:	5b                   	pop    %ebx
40d67a:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40d67d:	33 cd                	xor    %ebp,%ecx
40d67f:	e8 3c d1 00 00       	call   0x41a7c0
40d684:	8b e5                	mov    %ebp,%esp
40d686:	5d                   	pop    %ebp
40d687:	c3                   	ret
40d688:	8b 4d 04             	mov    0x4(%ebp),%ecx
40d68b:	ba d2 07 00 00       	mov    $0x7d2,%edx
40d690:	68 aa 0d 04 80       	push   $0x80040daa
40d695:	68 58 52 40 00       	push   $0x405258
40d69a:	e8 9a fc 01 00       	call   0x42d339
40d69f:	51                   	push   %ecx
40d6a0:	ba dc 07 00 00       	mov    $0x7dc,%edx
40d6a5:	e8 3c 0a 02 00       	call   0x42e0e6
40d6aa:	ff 15 a8 a0 43 00    	call   *0x43a0a8
40d6b0:	8b 4d 04             	mov    0x4(%ebp),%ecx
40d6b3:	ba db 00 00 00       	mov    $0xdb,%edx
40d6b8:	50                   	push   %eax
40d6b9:	68 9c 5c 40 00       	push   $0x405c9c
40d6be:	e8 92 fc 01 00       	call   0x42d355
40d6c3:	ff 15 a8 a0 43 00    	call   *0x43a0a8
40d6c9:	8b 4d 04             	mov    0x4(%ebp),%ecx
40d6cc:	ba eb 00 00 00       	mov    $0xeb,%edx
40d6d1:	50                   	push   %eax
40d6d2:	68 9c 5c 40 00       	push   $0x405c9c
40d6d7:	e8 79 fc 01 00       	call   0x42d355
40d6dc:	cc                   	int3
40d6dd:	8b ff                	mov    %edi,%edi
40d6df:	55                   	push   %ebp
40d6e0:	8b ec                	mov    %esp,%ebp
40d6e2:	83 3d 78 8a 43 00 00 	cmpl   $0x0,0x438a78
40d6e9:	57                   	push   %edi
40d6ea:	8b fa                	mov    %edx,%edi
40d6ec:	74 67                	je     0x40d755
40d6ee:	8b 81 a0 09 00 00    	mov    0x9a0(%ecx),%eax
40d6f4:	56                   	push   %esi
40d6f5:	ff b1 50 06 00 00    	push   0x650(%ecx)
40d6fb:	ff b1 4c 06 00 00    	push   0x64c(%ecx)
40d701:	8b 70 58             	mov    0x58(%eax),%esi
40d704:	8b 50 04             	mov    0x4(%eax),%edx
40d707:	8b 45 0c             	mov    0xc(%ebp),%eax
40d70a:	83 c0 0c             	add    $0xc,%eax
40d70d:	50                   	push   %eax
40d70e:	51                   	push   %ecx
40d70f:	57                   	push   %edi
40d710:	8d 81 e8 09 00 00    	lea    0x9e8(%ecx),%eax
40d716:	50                   	push   %eax
40d717:	83 ec 0c             	sub    $0xc,%esp
40d71a:	8d 81 1c 04 00 00    	lea    0x41c(%ecx),%eax
40d720:	ff b1 68 06 00 00    	push   0x668(%ecx)
40d726:	ff b1 5c 06 00 00    	push   0x65c(%ecx)
40d72c:	56                   	push   %esi
40d72d:	52                   	push   %edx
40d72e:	ff b1 f0 05 00 00    	push   0x5f0(%ecx)
40d734:	ff b1 58 06 00 00    	push   0x658(%ecx)
40d73a:	ff b1 54 06 00 00    	push   0x654(%ecx)
40d740:	ff b1 fc 05 00 00    	push   0x5fc(%ecx)
40d746:	83 ec 0c             	sub    $0xc,%esp
40d749:	50                   	push   %eax
40d74a:	e8 27 01 00 00       	call   0x40d876
40d74f:	5e                   	pop    %esi
40d750:	5f                   	pop    %edi
40d751:	5d                   	pop    %ebp
40d752:	c2 08 00             	ret    $0x8
40d755:	b8 ff ff 00 80       	mov    $0x8000ffff,%eax
40d75a:	eb f4                	jmp    0x40d750
40d75c:	8b ff                	mov    %edi,%edi
40d75e:	55                   	push   %ebp
40d75f:	8b ec                	mov    %esp,%ebp
40d761:	56                   	push   %esi
40d762:	57                   	push   %edi
40d763:	8b f1                	mov    %ecx,%esi
40d765:	e8 2b e6 ff ff       	call   0x40bd95
40d76a:	0f b7 86 a0 01 00 00 	movzwl 0x1a0(%esi),%eax
40d771:	33 ff                	xor    %edi,%edi
40d773:	2b c7                	sub    %edi,%eax
40d775:	75 1b                	jne    0x40d792
40d777:	8b 45 08             	mov    0x8(%ebp),%eax
40d77a:	89 38                	mov    %edi,(%eax)
40d77c:	8b 0d 98 8e 43 00    	mov    0x438e98,%ecx
40d782:	c7 40 08 8c 8e 43 00 	movl   $0x438e8c,0x8(%eax)
40d789:	89 48 04             	mov    %ecx,0x4(%eax)
40d78c:	5f                   	pop    %edi
40d78d:	5e                   	pop    %esi
40d78e:	5d                   	pop    %ebp
40d78f:	c2 04 00             	ret    $0x4
40d792:	83 e8 01             	sub    $0x1,%eax
40d795:	0f 84 2b 2e 01 00    	je     0x4205c6
40d79b:	83 e8 05             	sub    $0x5,%eax
40d79e:	0f 84 02 2e 01 00    	je     0x4205a6
40d7a4:	83 e8 01             	sub    $0x1,%eax
40d7a7:	0f 84 e2 2d 01 00    	je     0x42058f