40d3d6:	75 05                	jne    0x40d3dd
40d3d8:	5e                   	pop    %esi
40d3d9:	8b e5                	mov    %ebp,%esp
40d3db:	5d                   	pop    %ebp
40d3dc:	c3                   	ret
40d3dd:	8b 75 0c             	mov    0xc(%ebp),%esi
40d3e0:	85 f6                	test   %esi,%esi
40d3e2:	74 21                	je     0x40d405
40d3e4:	8d 95 40 fd ff ff    	lea    -0x2c0(%ebp),%edx
40d3ea:	52                   	push   %edx
40d3eb:	e8 60 b2 00 00       	call   0x418650
40d3f0:	8d 44 00 02          	lea    0x2(%eax,%eax,1),%eax
40d3f4:	50                   	push   %eax
40d3f5:	8d 8d 40 fd ff ff    	lea    -0x2c0(%ebp),%ecx
40d3fb:	51                   	push   %ecx
40d3fc:	56                   	push   %esi
40d3fd:	e8 5e af 00 00       	call   0x418360
40d402:	83 c4 10             	add    $0x10,%esp
40d405:	b8 01 00 00 00       	mov    $0x1,%eax
40d40a:	5e                   	pop    %esi
40d40b:	8b e5                	mov    %ebp,%esp
40d40d:	5d                   	pop    %ebp
40d40e:	c3                   	ret
40d40f:	cc                   	int3
40d410:	55                   	push   %ebp
40d411:	8b ec                	mov    %esp,%ebp
40d413:	81 ec 28 05 00 00    	sub    $0x528,%esp
40d419:	53                   	push   %ebx
40d41a:	56                   	push   %esi
40d41b:	33 db                	xor    %ebx,%ebx
40d41d:	68 a4 02 00 00       	push   $0x2a4
40d422:	8d 85 48 fd ff ff    	lea    -0x2b8(%ebp),%eax
40d428:	53                   	push   %ebx
40d429:	50                   	push   %eax
40d42a:	89 9d 44 fd ff ff    	mov    %ebx,-0x2bc(%ebp)
40d430:	e8 ab af 00 00       	call   0x4183e0
40d435:	68 28 02 00 00       	push   $0x228
40d43a:	8d 8d dc fa ff ff    	lea    -0x524(%ebp),%ecx
40d440:	53                   	push   %ebx
40d441:	51                   	push   %ecx
40d442:	89 9d d8 fa ff ff    	mov    %ebx,-0x528(%ebp)
40d448:	e8 93 af 00 00       	call   0x4183e0
40d44d:	8b 75 08             	mov    0x8(%ebp),%esi
40d450:	8b 96 98 0b 00 00    	mov    0xb98(%esi),%edx
40d456:	68 f7 5e 14 cc       	push   $0xcc145ef7
40d45b:	53                   	push   %ebx
40d45c:	53                   	push   %ebx
40d45d:	8d 46 1c             	lea    0x1c(%esi),%eax
40d460:	52                   	push   %edx
40d461:	50                   	push   %eax
40d462:	c7 45 8c 44 00 00 00 	movl   $0x44,-0x74(%ebp)
40d469:	c7 45 f4 8b ff 55 8b 	movl   $0x8b55ff8b,-0xc(%ebp)
40d470:	c7 45 f8 ec e8 00 00 	movl   $0xe8ec,-0x8(%ebp)
40d477:	66 89 5d fc          	mov    %bx,-0x4(%ebp)
40d47b:	e8 50 4e 00 00       	call   0x4122d0
40d480:	83 c4 2c             	add    $0x2c,%esp
40d483:	89 45 08             	mov    %eax,0x8(%ebp)
40d486:	3b c3                	cmp    %ebx,%eax
40d488:	0f 84 47 03 00 00    	je     0x40d7d5
40d48e:	57                   	push   %edi
40d48f:	8b 7d 0c             	mov    0xc(%ebp),%edi
40d492:	53                   	push   %ebx
40d493:	6a 02                	push   $0x2
40d495:	57                   	push   %edi
40d496:	56                   	push   %esi
40d497:	e8 34 4a 00 00       	call   0x411ed0
40d49c:	83 c4 10             	add    $0x10,%esp
40d49f:	89 85 5c fd ff ff    	mov    %eax,-0x2a4(%ebp)
40d4a5:	3b c3                	cmp    %ebx,%eax
40d4a7:	0f 84 27 03 00 00    	je     0x40d7d4
40d4ad:	50                   	push   %eax
40d4ae:	e8 5d ad 00 00       	call   0x418210
40d4b3:	53                   	push   %ebx
40d4b4:	89 45 84             	mov    %eax,-0x7c(%ebp)
40d4b7:	8d 85 64 ff ff ff    	lea    -0x9c(%ebp),%eax
40d4bd:	50                   	push   %eax
40d4be:	8d 4d 8c             	lea    -0x74(%ebp),%ecx
40d4c1:	51                   	push   %ecx
40d4c2:	53                   	push   %ebx
40d4c3:	53                   	push   %ebx
40d4c4:	6a 0c                	push   $0xc
40d4c6:	53                   	push   %ebx
40d4c7:	53                   	push   %ebx
40d4c8:	53                   	push   %ebx
40d4c9:	53                   	push   %ebx
40d4ca:	57                   	push   %edi
40d4cb:	53                   	push   %ebx
40d4cc:	56                   	push   %esi
40d4cd:	e8 6e 9a 00 00       	call   0x416f40
40d4d2:	83 c4 38             	add    $0x38,%esp
40d4d5:	85 c0                	test   %eax,%eax
40d4d7:	0f 84 e7 02 00 00    	je     0x40d7c4
40d4dd:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
40d4e3:	50                   	push   %eax
40d4e4:	8d 8e 1c 0a 00 00    	lea    0xa1c(%esi),%ecx
40d4ea:	51                   	push   %ecx
40d4eb:	56                   	push   %esi
40d4ec:	e8 ef c0 00 00       	call   0x4195e0
40d4f1:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
40d4f7:	8b 95 68 ff ff ff    	mov    -0x98(%ebp),%edx
40d4fd:	8b 8d 6c ff ff ff    	mov    -0x94(%ebp),%ecx
40d503:	89 85 f0 fa ff ff    	mov    %eax,-0x510(%ebp)
40d509:	8b 85 5c fd ff ff    	mov    -0x2a4(%ebp),%eax
40d50f:	89 85 f4 fa ff ff    	mov    %eax,-0x50c(%ebp)
40d515:	8b 86 d8 07 00 00    	mov    0x7d8(%esi),%eax
40d51b:	89 95 e8 fa ff ff    	mov    %edx,-0x518(%ebp)
40d521:	8b 55 84             	mov    -0x7c(%ebp),%edx
40d524:	83 c4 0c             	add    $0xc,%esp
40d527:	89 8d e0 fa ff ff    	mov    %ecx,-0x520(%ebp)
40d52d:	89 95 f8 fa ff ff    	mov    %edx,-0x508(%ebp)
40d533:	3b c3                	cmp    %ebx,%eax
40d535:	0f 84 7e 02 00 00    	je     0x40d7b9
40d53b:	89 88 48 20 00 00    	mov    %ecx,0x2048(%eax)
40d541:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40d544:	39 5e 1c             	cmp    %ebx,0x1c(%esi)
40d547:	0f 84 8c 00 00 00    	je     0x40d5d9
40d54d:	8b 95 64 ff ff ff    	mov    -0x9c(%ebp),%edx
40d553:	53                   	push   %ebx
40d554:	6a 04                	push   $0x4
40d556:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40d559:	51                   	push   %ecx
40d55a:	6a 1a                	push   $0x1a
40d55c:	52                   	push   %edx
40d55d:	56                   	push   %esi
40d55e:	e8 fd 91 00 00       	call   0x416760
40d563:	83 c4 18             	add    $0x18,%esp
40d566:	39 5d f0             	cmp    %ebx,-0x10(%ebp)
40d569:	75 6e                	jne    0x40d5d9
40d56b:	8b 86 7c 0b 00 00    	mov    0xb7c(%esi),%eax
40d571:	39 58 10             	cmp    %ebx,0x10(%eax)
40d574:	74 4c                	je     0x40d5c2
40d576:	39 9e d4 07 00 00    	cmp    %ebx,0x7d4(%esi)
40d57c:	74 13                	je     0x40d591
40d57e:	6a 64                	push   $0x64
40d580:	8d 8d 64 ff ff ff    	lea    -0x9c(%ebp),%ecx
40d586:	51                   	push   %ecx
40d587:	50                   	push   %eax
40d588:	56                   	push   %esi
40d589:	e8 e2 c7 ff ff       	call   0x409d70
40d58e:	83 c4 10             	add    $0x10,%esp
40d591:	8b 95 64 ff ff ff    	mov    -0x9c(%ebp),%edx
40d597:	52                   	push   %edx
40d598:	56                   	push   %esi
40d599:	e8 52 97 00 00       	call   0x416cf0
40d59e:	8b 86 7c 0b 00 00    	mov    0xb7c(%esi),%eax
40d5a4:	8b 8e 78 0b 00 00    	mov    0xb78(%esi),%ecx
40d5aa:	68 ff ff 00 00       	push   $0xffff
40d5af:	50                   	push   %eax
40d5b0:	51                   	push   %ecx
40d5b1:	8d 95 d8 fa ff ff    	lea    -0x528(%ebp),%edx
40d5b7:	52                   	push   %edx
40d5b8:	53                   	push   %ebx
40d5b9:	56                   	push   %esi
40d5ba:	e8 d1 85 00 00       	call   0x415b90
40d5bf:	83 c4 20             	add    $0x20,%esp
40d5c2:	8b 85 5c fd ff ff    	mov    -0x2a4(%ebp),%eax
40d5c8:	50                   	push   %eax
40d5c9:	56                   	push   %esi
40d5ca:	e8 71 ad 00 00       	call   0x418340
40d5cf:	83 c4 08             	add    $0x8,%esp
40d5d2:	5f                   	pop    %edi
40d5d3:	5e                   	pop    %esi
40d5d4:	5b                   	pop    %ebx
40d5d5:	8b e5                	mov    %ebp,%esp
40d5d7:	5d                   	pop    %ebp
40d5d8:	c3                   	ret
40d5d9:	6a 3f                	push   $0x3f
40d5db:	8d 8d 05 fd ff ff    	lea    -0x2fb(%ebp),%ecx
40d5e1:	53                   	push   %ebx
40d5e2:	51                   	push   %ecx
40d5e3:	88 9d 04 fd ff ff    	mov    %bl,-0x2fc(%ebp)
40d5e9:	e8 f2 ad 00 00       	call   0x4183e0
40d5ee:	8b 85 64 ff ff ff    	mov    -0x9c(%ebp),%eax
40d5f4:	6a 20                	push   $0x20
40d5f6:	8d 95 04 fd ff ff    	lea    -0x2fc(%ebp),%edx
40d5fc:	52                   	push   %edx
40d5fd:	50                   	push   %eax
40d5fe:	56                   	push   %esi
40d5ff:	e8 7c c8 ff ff       	call   0x409e80
40d604:	8b 85 0c fd ff ff    	mov    -0x2f4(%ebp),%eax
40d60a:	83 c4 1c             	add    $0x1c,%esp
40d60d:	3b c3                	cmp    %ebx,%eax
40d60f:	0f 84 a4 01 00 00    	je     0x40d7b9
40d615:	89 85 58 fd ff ff    	mov    %eax,-0x2a8(%ebp)
40d61b:	39 9e d4 07 00 00    	cmp    %ebx,0x7d4(%esi)
40d621:	74 19                	je     0x40d63c
40d623:	8b 8e 7c 0b 00 00    	mov    0xb7c(%esi),%ecx
40d629:	6a 32                	push   $0x32
40d62b:	8d 85 64 ff ff ff    	lea    -0x9c(%ebp),%eax
40d631:	50                   	push   %eax
40d632:	51                   	push   %ecx
40d633:	56                   	push   %esi
40d634:	e8 37 c7 ff ff       	call   0x409d70
40d639:	83 c4 10             	add    $0x10,%esp
40d63c:	8b 96 7c 0b 00 00    	mov    0xb7c(%esi),%edx
40d642:	8b 02                	mov    (%edx),%eax
40d644:	8b 8e 78 0b 00 00    	mov    0xb78(%esi),%ecx
40d64a:	6a 02                	push   $0x2
40d64c:	50                   	push   %eax
40d64d:	51                   	push   %ecx
40d64e:	8d 95 64 ff ff ff    	lea    -0x9c(%ebp),%edx
40d654:	52                   	push   %edx
40d655:	56                   	push   %esi
40d656:	e8 95 c5 ff ff       	call   0x409bf0
40d65b:	83 c4 14             	add    $0x14,%esp
40d65e:	8b f8                	mov    %eax,%edi
40d660:	53                   	push   %ebx
40d661:	3b fb                	cmp    %ebx,%edi
40d663:	0f 84 2f 01 00 00    	je     0x40d798
40d669:	8b 45 84             	mov    -0x7c(%ebp),%eax
40d66c:	8b 8d 5c fd ff ff    	mov    -0x2a4(%ebp),%ecx
40d672:	8b 95 58 fd ff ff    	mov    -0x2a8(%ebp),%edx
40d678:	50                   	push   %eax
40d679:	8b 85 64 ff ff ff    	mov    -0x9c(%ebp),%eax
40d67f:	51                   	push   %ecx
40d680:	52                   	push   %edx
40d681:	50                   	push   %eax
40d682:	56                   	push   %esi
40d683:	e8 d8 96 00 00       	call   0x416d60
40d688:	8b 8d 58 fd ff ff    	mov    -0x2a8(%ebp),%ecx
40d68e:	8b 95 5c fd ff ff    	mov    -0x2a4(%ebp),%edx
40d694:	51                   	push   %ecx
40d695:	52                   	push   %edx
40d696:	e8 e5 ab 00 00       	call   0x418280
40d69b:	2b f8                	sub    %eax,%edi
40d69d:	6a 04                	push   $0x4
40d69f:	8d 45 ec             	lea    -0x14(%ebp),%eax
40d6a2:	50                   	push   %eax
40d6a3:	8d 4d fa             	lea    -0x6(%ebp),%ecx
40d6a6:	83 ef 0a             	sub    $0xa,%edi
40d6a9:	51                   	push   %ecx
40d6aa:	89 7d ec             	mov    %edi,-0x14(%ebp)
40d6ad:	e8 ae ac 00 00       	call   0x418360
40d6b2:	8b 85 5c fd ff ff    	mov    -0x2a4(%ebp),%eax
40d6b8:	83 c4 2c             	add    $0x2c,%esp
40d6bb:	6a 0a                	push   $0xa
40d6bd:	8d 55 f4             	lea    -0xc(%ebp),%edx
40d6c0:	52                   	push   %edx
40d6c1:	50                   	push   %eax
40d6c2:	50                   	push   %eax
40d6c3:	e8 b8 ab 00 00       	call   0x418280
40d6c8:	83 c4 08             	add    $0x8,%esp
40d6cb:	50                   	push   %eax
40d6cc:	e8 8f ac 00 00       	call   0x418360
40d6d1:	53                   	push   %ebx
40d6d2:	8d 85 54 fd ff ff    	lea    -0x2ac(%ebp),%eax
40d6d8:	50                   	push   %eax
40d6d9:	8b 06                	mov    (%esi),%eax
40d6db:	8d 4d 84             	lea    -0x7c(%ebp),%ecx
40d6de:	51                   	push   %ecx
40d6df:	8d 95 50 fd ff ff    	lea    -0x2b0(%ebp),%edx
40d6e5:	52                   	push   %edx
40d6e6:	50                   	push   %eax
40d6e7:	56                   	push   %esi
40d6e8:	e8 d3 f4 ff ff       	call   0x40cbc0
40d6ed:	83 c4 24             	add    $0x24,%esp
40d6f0:	85 c0                	test   %eax,%eax
40d6f2:	0f 84 c1 00 00 00    	je     0x40d7b9
40d6f8:	8b 45 84             	mov    -0x7c(%ebp),%eax
40d6fb:	8b 8d 5c fd ff ff    	mov    -0x2a4(%ebp),%ecx
40d701:	8b 95 54 fd ff ff    	mov    -0x2ac(%ebp),%edx
40d707:	50                   	push   %eax
40d708:	51                   	push   %ecx
40d709:	52                   	push   %edx
40d70a:	e8 51 ac 00 00       	call   0x418360
40d70f:	8b 85 5c fd ff ff    	mov    -0x2a4(%ebp),%eax
40d715:	50                   	push   %eax
40d716:	56                   	push   %esi
40d717:	e8 24 ac 00 00       	call   0x418340
40d71c:	8b 8d 58 fd ff ff    	mov    -0x2a8(%ebp),%ecx
40d722:	8b 95 64 ff ff ff    	mov    -0x9c(%ebp),%edx
40d728:	51                   	push   %ecx
40d729:	52                   	push   %edx
40d72a:	56                   	push   %esi
40d72b:	e8 90 91 00 00       	call   0x4168c0
40d730:	8b 95 64 ff ff ff    	mov    -0x9c(%ebp),%edx
40d736:	6a 40                	push   $0x40
40d738:	53                   	push   %ebx
40d739:	6a 01                	push   $0x1
40d73b:	8d 45 84             	lea    -0x7c(%ebp),%eax
40d73e:	50                   	push   %eax
40d73f:	8b 85 50 fd ff ff    	mov    -0x2b0(%ebp),%eax
40d745:	53                   	push   %ebx
40d746:	53                   	push   %ebx
40d747:	53                   	push   %ebx
40d748:	8d 8d 58 fd ff ff    	lea    -0x2a8(%ebp),%ecx
40d74e:	51                   	push   %ecx
40d74f:	52                   	push   %edx
40d750:	50                   	push   %eax
40d751:	56                   	push   %esi
40d752:	e8 19 91 00 00       	call   0x416870
40d757:	83 c4 4c             	add    $0x4c,%esp
40d75a:	85 c0                	test   %eax,%eax
40d75c:	79 12                	jns    0x40d770
40d75e:	8b 8d 64 ff ff ff    	mov    -0x9c(%ebp),%ecx
40d764:	53                   	push   %ebx
40d765:	51                   	push   %ecx
40d766:	ff 55 08             	call   *0x8(%ebp)
40d769:	5f                   	pop    %edi
40d76a:	5e                   	pop    %esi
40d76b:	5b                   	pop    %ebx
40d76c:	8b e5                	mov    %ebp,%esp
40d76e:	5d                   	pop    %ebp
40d76f:	c3                   	ret
40d770:	8b 95 54 fd ff ff    	mov    -0x2ac(%ebp),%edx
40d776:	8b 06                	mov    (%esi),%eax
40d778:	52                   	push   %edx
40d779:	50                   	push   %eax
40d77a:	56                   	push   %esi
40d77b:	e8 40 91 00 00       	call   0x4168c0
40d780:	8b 8d 68 ff ff ff    	mov    -0x98(%ebp),%ecx
40d786:	53                   	push   %ebx
40d787:	51                   	push   %ecx
40d788:	56                   	push   %esi
40d789:	e8 f2 8e 00 00       	call   0x416680
40d78e:	83 c4 18             	add    $0x18,%esp
40d791:	5f                   	pop    %edi
40d792:	5e                   	pop    %esi
40d793:	5b                   	pop    %ebx
40d794:	8b e5                	mov    %ebp,%esp
40d796:	5d                   	pop    %ebp
40d797:	c3                   	ret
40d798:	8b 95 64 ff ff ff    	mov    -0x9c(%ebp),%edx
40d79e:	52                   	push   %edx
40d79f:	ff 55 08             	call   *0x8(%ebp)
40d7a2:	8b 85 5c fd ff ff    	mov    -0x2a4(%ebp),%eax
40d7a8:	50                   	push   %eax
40d7a9:	56                   	push   %esi
40d7aa:	e8 91 ab 00 00       	call   0x418340
40d7af:	83 c4 08             	add    $0x8,%esp
40d7b2:	5f                   	pop    %edi
40d7b3:	5e                   	pop    %esi
40d7b4:	5b                   	pop    %ebx
40d7b5:	8b e5                	mov    %ebp,%esp
40d7b7:	5d                   	pop    %ebp
40d7b8:	c3                   	ret
40d7b9:	8b 8d 64 ff ff ff    	mov    -0x9c(%ebp),%ecx
40d7bf:	53                   	push   %ebx
40d7c0:	51                   	push   %ecx
40d7c1:	ff 55 08             	call   *0x8(%ebp)
40d7c4:	8b 95 5c fd ff ff    	mov    -0x2a4(%ebp),%edx
40d7ca:	52                   	push   %edx
40d7cb:	56                   	push   %esi
40d7cc:	e8 6f ab 00 00       	call   0x418340
40d7d1:	83 c4 08             	add    $0x8,%esp
40d7d4:	5f                   	pop    %edi
40d7d5:	5e                   	pop    %esi
40d7d6:	5b                   	pop    %ebx
40d7d7:	8b e5                	mov    %ebp,%esp
40d7d9:	5d                   	pop    %ebp