40f450:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f453:	85 c0                	test   %eax,%eax
40f455:	0f 88 16 02 00 00    	js     0x40f671
40f45b:	8d 83 5c 06 00 00    	lea    0x65c(%ebx),%eax
40f461:	50                   	push   %eax
40f462:	e8 6c a1 00 00       	call   0x4195d3
40f467:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f46a:	85 c0                	test   %eax,%eax
40f46c:	0f 88 ff 01 00 00    	js     0x40f671
40f472:	8d 83 60 06 00 00    	lea    0x660(%ebx),%eax
40f478:	50                   	push   %eax
40f479:	e8 55 a1 00 00       	call   0x4195d3
40f47e:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f481:	85 c0                	test   %eax,%eax
40f483:	0f 88 e8 01 00 00    	js     0x40f671
40f489:	8d 45 ec             	lea    -0x14(%ebp),%eax
40f48c:	8b cb                	mov    %ebx,%ecx
40f48e:	50                   	push   %eax
40f48f:	8d 45 e8             	lea    -0x18(%ebp),%eax
40f492:	50                   	push   %eax
40f493:	e8 48 44 00 00       	call   0x4138e0
40f498:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f49b:	85 c0                	test   %eax,%eax
40f49d:	0f 88 ce 01 00 00    	js     0x40f671
40f4a3:	8b 83 64 06 00 00    	mov    0x664(%ebx),%eax
40f4a9:	ff 75 ec             	push   -0x14(%ebp)
40f4ac:	6a 00                	push   $0x0
40f4ae:	8b 40 10             	mov    0x10(%eax),%eax
40f4b1:	89 45 e0             	mov    %eax,-0x20(%ebp)
40f4b4:	ff 75 e8             	push   -0x18(%ebp)
40f4b7:	3d a0 36 41 00       	cmp    $0x4136a0,%eax
40f4bc:	0f 85 71 18 01 00    	jne    0x420d33
40f4c2:	8d 8b 64 06 00 00    	lea    0x664(%ebx),%ecx
40f4c8:	e8 d3 41 00 00       	call   0x4136a0
40f4cd:	8d 45 ec             	lea    -0x14(%ebp),%eax
40f4d0:	8b cb                	mov    %ebx,%ecx
40f4d2:	50                   	push   %eax
40f4d3:	8d 45 e8             	lea    -0x18(%ebp),%eax
40f4d6:	50                   	push   %eax
40f4d7:	e8 04 44 00 00       	call   0x4138e0
40f4dc:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f4df:	85 c0                	test   %eax,%eax
40f4e1:	0f 88 8a 01 00 00    	js     0x40f671
40f4e7:	8b 83 f8 07 00 00    	mov    0x7f8(%ebx),%eax
40f4ed:	ff 75 ec             	push   -0x14(%ebp)
40f4f0:	6a 00                	push   $0x0
40f4f2:	8b 40 10             	mov    0x10(%eax),%eax
40f4f5:	89 45 e0             	mov    %eax,-0x20(%ebp)
40f4f8:	ff 75 e8             	push   -0x18(%ebp)
40f4fb:	3d a0 36 41 00       	cmp    $0x4136a0,%eax
40f500:	0f 85 43 18 01 00    	jne    0x420d49
40f506:	8d 8b f8 07 00 00    	lea    0x7f8(%ebx),%ecx
40f50c:	e8 8f 41 00 00       	call   0x4136a0
40f511:	8d 45 ec             	lea    -0x14(%ebp),%eax
40f514:	50                   	push   %eax
40f515:	8d 8b d4 09 00 00    	lea    0x9d4(%ebx),%ecx
40f51b:	e8 b3 a0 00 00       	call   0x4195d3
40f520:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f523:	85 c0                	test   %eax,%eax
40f525:	0f 88 46 01 00 00    	js     0x40f671
40f52b:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40f52e:	8d 83 ec 09 00 00    	lea    0x9ec(%ebx),%eax
40f534:	50                   	push   %eax
40f535:	89 8b e8 09 00 00    	mov    %ecx,0x9e8(%ebx)
40f53b:	51                   	push   %ecx
40f53c:	8d 8b d4 09 00 00    	lea    0x9d4(%ebx),%ecx
40f542:	e8 fb a6 00 00       	call   0x419c42
40f547:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f54a:	85 c0                	test   %eax,%eax
40f54c:	0f 88 1f 01 00 00    	js     0x40f671
40f552:	8b 8b 5c 06 00 00    	mov    0x65c(%ebx),%ecx
40f558:	f6 c1 10             	test   $0x10,%cl
40f55b:	0f 85 fe 17 01 00    	jne    0x420d5f
40f561:	33 c0                	xor    %eax,%eax
40f563:	89 83 e0 05 00 00    	mov    %eax,0x5e0(%ebx)
40f569:	f6 c1 20             	test   $0x20,%cl
40f56c:	0f 85 f7 17 01 00    	jne    0x420d69
40f572:	33 c0                	xor    %eax,%eax
40f574:	89 83 e4 05 00 00    	mov    %eax,0x5e4(%ebx)
40f57a:	f6 c1 40             	test   $0x40,%cl
40f57d:	0f 85 f0 17 01 00    	jne    0x420d73
40f583:	33 c0                	xor    %eax,%eax
40f585:	89 83 e8 05 00 00    	mov    %eax,0x5e8(%ebx)
40f58b:	8b c1                	mov    %ecx,%eax
40f58d:	c1 e8 07             	shr    $0x7,%eax
40f590:	83 e0 01             	and    $0x1,%eax
40f593:	89 83 f0 05 00 00    	mov    %eax,0x5f0(%ebx)
40f599:	f7 c1 00 04 00 00    	test   $0x400,%ecx
40f59f:	0f 85 d8 17 01 00    	jne    0x420d7d
40f5a5:	33 c0                	xor    %eax,%eax
40f5a7:	c1 e9 0c             	shr    $0xc,%ecx
40f5aa:	83 e1 01             	and    $0x1,%ecx
40f5ad:	89 83 ec 05 00 00    	mov    %eax,0x5ec(%ebx)
40f5b3:	89 8b f4 05 00 00    	mov    %ecx,0x5f4(%ebx)
40f5b9:	51                   	push   %ecx
40f5ba:	8b 8b 18 04 00 00    	mov    0x418(%ebx),%ecx
40f5c0:	e8 d5 57 00 00       	call   0x414d9a
40f5c5:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f5c8:	85 c0                	test   %eax,%eax
40f5ca:	0f 88 b7 17 01 00    	js     0x420d87
40f5d0:	8b b3 98 09 00 00    	mov    0x998(%ebx),%esi
40f5d6:	56                   	push   %esi
40f5d7:	89 75 d8             	mov    %esi,-0x28(%ebp)
40f5da:	ff 15 d4 a2 43 00    	call   *0x43a2d4
40f5e0:	ff 75 e4             	push   -0x1c(%ebp)
40f5e3:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40f5e7:	8b 83 9c 09 00 00    	mov    0x99c(%ebx),%eax
40f5ed:	89 45 e8             	mov    %eax,-0x18(%ebp)
40f5f0:	8b 40 08             	mov    0x8(%eax),%eax
40f5f3:	89 45 e0             	mov    %eax,-0x20(%ebp)
40f5f6:	3d b0 df 40 00       	cmp    $0x40dfb0,%eax
40f5fb:	0f 85 99 17 01 00    	jne    0x420d9a
40f601:	e8 aa e9 ff ff       	call   0x40dfb0
40f606:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40f609:	33 d2                	xor    %edx,%edx
40f60b:	ff 75 e4             	push   -0x1c(%ebp)
40f60e:	f7 71 0c             	divl   0xc(%ecx)
40f611:	c1 e2 04             	shl    $0x4,%edx
40f614:	03 51 24             	add    0x24(%ecx),%edx
40f617:	8b ca                	mov    %edx,%ecx
40f619:	e8 98 ec ff ff       	call   0x40e2b6
40f61e:	8b 10                	mov    (%eax),%edx
40f620:	85 d2                	test   %edx,%edx
40f622:	0f 85 82 17 01 00    	jne    0x420daa
40f628:	8b 55 e4             	mov    -0x1c(%ebp),%edx
40f62b:	8b 8a 4c 02 00 00    	mov    0x24c(%edx),%ecx
40f631:	8b 01                	mov    (%ecx),%eax
40f633:	89 03                	mov    %eax,(%ebx)
40f635:	89 19                	mov    %ebx,(%ecx)
40f637:	3b 8a 4c 02 00 00    	cmp    0x24c(%edx),%ecx
40f63d:	75 06                	jne    0x40f645
40f63f:	89 9a 4c 02 00 00    	mov    %ebx,0x24c(%edx)
40f645:	ff 82 50 02 00 00    	incl   0x250(%edx)
40f64b:	8b 8b 9c 09 00 00    	mov    0x99c(%ebx),%ecx
40f651:	52                   	push   %edx
40f652:	52                   	push   %edx
40f653:	e8 dc e5 ff ff       	call   0x40dc34
40f658:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40f65b:	33 ff                	xor    %edi,%edi
40f65d:	89 83 a0 09 00 00    	mov    %eax,0x9a0(%ebx)
40f663:	85 f6                	test   %esi,%esi
40f665:	74 07                	je     0x40f66e
40f667:	56                   	push   %esi
40f668:	ff 15 9c a2 43 00    	call   *0x43a29c
40f66e:	8b 45 f0             	mov    -0x10(%ebp),%eax
40f671:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40f678:	85 ff                	test   %edi,%edi
40f67a:	0f 85 51 17 01 00    	jne    0x420dd1
40f680:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40f683:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40f68a:	59                   	pop    %ecx
40f68b:	5f                   	pop    %edi
40f68c:	5e                   	pop    %esi
40f68d:	5b                   	pop    %ebx
40f68e:	8b e5                	mov    %ebp,%esp
40f690:	5d                   	pop    %ebp
40f691:	c2 14 00             	ret    $0x14
40f694:	6a 08                	push   $0x8
40f696:	b8 73 e6 41 00       	mov    $0x41e673,%eax
40f69b:	e8 6e b7 00 00       	call   0x41ae0e
40f6a0:	8b f1                	mov    %ecx,%esi
40f6a2:	89 75 f0             	mov    %esi,-0x10(%ebp)
40f6a5:	89 75 ec             	mov    %esi,-0x14(%ebp)
40f6a8:	8d 4e 04             	lea    0x4(%esi),%ecx
40f6ab:	c7 06 9c 11 40 00    	movl   $0x40119c,(%esi)
40f6b1:	e8 65 3e 00 00       	call   0x41351b
40f6b6:	33 c0                	xor    %eax,%eax
40f6b8:	89 86 98 00 00 00    	mov    %eax,0x98(%esi)
40f6be:	89 86 9c 00 00 00    	mov    %eax,0x9c(%esi)
40f6c4:	50                   	push   %eax
40f6c5:	51                   	push   %ecx
40f6c6:	51                   	push   %ecx
40f6c7:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f6ca:	8b ce                	mov    %esi,%ecx
40f6cc:	68 02 00 00 80       	push   $0x80000002
40f6d1:	c7 06 3c 11 40 00    	movl   $0x40113c,(%esi)
40f6d7:	e8 64 3e 00 00       	call   0x413540
40f6dc:	85 c0                	test   %eax,%eax
40f6de:	0f 88 1e 17 01 00    	js     0x420e02
40f6e4:	8b c6                	mov    %esi,%eax
40f6e6:	e8 f1 b6 00 00       	call   0x41addc
40f6eb:	c2 08 00             	ret    $0x8
40f6ee:	e9 e2 3d 00 00       	jmp    0x4134d5
40f6f3:	8b ff                	mov    %edi,%edi
40f6f5:	56                   	push   %esi
40f6f6:	8b f1                	mov    %ecx,%esi
40f6f8:	c7 06 9c 11 40 00    	movl   $0x40119c,(%esi)
40f6fe:	8b 4e 08             	mov    0x8(%esi),%ecx
40f701:	c7 46 04 c4 11 40 00 	movl   $0x4011c4,0x4(%esi)
40f708:	85 c9                	test   %ecx,%ecx
40f70a:	0f 85 01 17 01 00    	jne    0x420e11
40f710:	c7 46 04 80 11 40 00 	movl   $0x401180,0x4(%esi)
40f717:	5e                   	pop    %esi
40f718:	c3                   	ret
40f719:	8b ff                	mov    %edi,%edi
40f71b:	55                   	push   %ebp
40f71c:	8b ec                	mov    %esp,%ebp
40f71e:	51                   	push   %ecx
40f71f:	53                   	push   %ebx
40f720:	8b d9                	mov    %ecx,%ebx
40f722:	56                   	push   %esi
40f723:	57                   	push   %edi
40f724:	33 ff                	xor    %edi,%edi
40f726:	8b cf                	mov    %edi,%ecx
40f728:	39 7b 08             	cmp    %edi,0x8(%ebx)
40f72b:	74 25                	je     0x40f752
40f72d:	8b 75 0c             	mov    0xc(%ebp),%esi
40f730:	8b cb                	mov    %ebx,%ecx
40f732:	56                   	push   %esi
40f733:	89 3b                	mov    %edi,(%ebx)
40f735:	e8 b6 00 00 00       	call   0x40f7f0
40f73a:	8b c8                	mov    %eax,%ecx
40f73c:	85 c9                	test   %ecx,%ecx
40f73e:	78 0c                	js     0x40f74c
40f740:	f7 d6                	not    %esi
40f742:	8b cb                	mov    %ebx,%ecx
40f744:	56                   	push   %esi
40f745:	e8 a6 00 00 00       	call   0x40f7f0
40f74a:	8b c8                	mov    %eax,%ecx
40f74c:	89 3b                	mov    %edi,(%ebx)
40f74e:	85 c9                	test   %ecx,%ecx
40f750:	78 49                	js     0x40f79b
40f752:	8b 03                	mov    (%ebx),%eax
40f754:	8d 50 07             	lea    0x7(%eax),%edx
40f757:	83 e2 f8             	and    $0xfffffff8,%edx
40f75a:	2b d0                	sub    %eax,%edx
40f75c:	89 55 fc             	mov    %edx,-0x4(%ebp)
40f75f:	0f 85 c4 16 01 00    	jne    0x420e29
40f765:	85 c9                	test   %ecx,%ecx
40f767:	78 32                	js     0x40f79b
40f769:	01 13                	add    %edx,(%ebx)
40f76b:	39 7b 08             	cmp    %edi,0x8(%ebx)
40f76e:	74 24                	je     0x40f794
40f770:	8b 73 10             	mov    0x10(%ebx),%esi
40f773:	6a 00                	push   $0x0
40f775:	6a 14                	push   $0x14
40f777:	ff 75 08             	push   0x8(%ebp)
40f77a:	8b 06                	mov    (%esi),%eax
40f77c:	8b 78 04             	mov    0x4(%eax),%edi
40f77f:	81 ff 70 2d 41 00    	cmp    $0x412d70,%edi
40f785:	0f 85 cf 16 01 00    	jne    0x420e5a
40f78b:	8b ce                	mov    %esi,%ecx
40f78d:	e8 de 35 00 00       	call   0x412d70
40f792:	8b c8                	mov    %eax,%ecx
40f794:	85 c9                	test   %ecx,%ecx
40f796:	78 03                	js     0x40f79b
40f798:	83 03 14             	addl   $0x14,(%ebx)
40f79b:	5f                   	pop    %edi
40f79c:	5e                   	pop    %esi
40f79d:	8b c1                	mov    %ecx,%eax
40f79f:	5b                   	pop    %ebx
40f7a0:	c9                   	leave
40f7a1:	c2 08 00             	ret    $0x8
40f7a4:	8b ff                	mov    %edi,%edi
40f7a6:	56                   	push   %esi
40f7a7:	8b f1                	mov    %ecx,%esi
40f7a9:	8b 4e 04             	mov    0x4(%esi),%ecx
40f7ac:	c7 06 c4 11 40 00    	movl   $0x4011c4,(%esi)
40f7b2:	85 c9                	test   %ecx,%ecx
40f7b4:	75 08                	jne    0x40f7be
40f7b6:	c7 06 80 11 40 00    	movl   $0x401180,(%esi)
40f7bc:	5e                   	pop    %esi
40f7bd:	c3                   	ret
40f7be:	8d 46 10             	lea    0x10(%esi),%eax
40f7c1:	3b c8                	cmp    %eax,%ecx
40f7c3:	74 f1                	je     0x40f7b6
40f7c5:	51                   	push   %ecx
40f7c6:	ff 15 14 a4 43 00    	call   *0x43a414
40f7cc:	59                   	pop    %ecx
40f7cd:	eb e7                	jmp    0x40f7b6
40f7cf:	83 61 0c 00          	andl   $0x0,0xc(%ecx)
40f7d3:	8d 41 10             	lea    0x10(%ecx),%eax
40f7d6:	89 41 04             	mov    %eax,0x4(%ecx)
40f7d9:	33 d2                	xor    %edx,%edx
40f7db:	c7 41 08 21 00 00 00 	movl   $0x21,0x8(%ecx)
40f7e2:	66 89 10             	mov    %dx,(%eax)
40f7e5:	8b c1                	mov    %ecx,%eax
40f7e7:	c7 01 64 11 40 00    	movl   $0x401164,(%ecx)
40f7ed:	c3                   	ret
40f7ee:	cc                   	int3
40f7ef:	cc                   	int3
40f7f0:	8b ff                	mov    %edi,%edi
40f7f2:	55                   	push   %ebp
40f7f3:	8b ec                	mov    %esp,%ebp
40f7f5:	51                   	push   %ecx
40f7f6:	53                   	push   %ebx
40f7f7:	56                   	push   %esi
40f7f8:	8b f1                	mov    %ecx,%esi
40f7fa:	33 d2                	xor    %edx,%edx
40f7fc:	57                   	push   %edi
40f7fd:	8b 06                	mov    (%esi),%eax
40f7ff:	8d 48 03             	lea    0x3(%eax),%ecx
40f802:	83 e1 fc             	and    $0xfffffffc,%ecx
40f805:	2b c8                	sub    %eax,%ecx
40f807:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40f80a:	75 3f                	jne    0x40f84b
40f80c:	01 0e                	add    %ecx,(%esi)
40f80e:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
40f812:	74 25                	je     0x40f839
40f814:	8b 7e 10             	mov    0x10(%esi),%edi
40f817:	6a 00                	push   $0x0
40f819:	6a 04                	push   $0x4
40f81b:	8b 07                	mov    (%edi),%eax
40f81d:	8b 58 04             	mov    0x4(%eax),%ebx
40f820:	8d 45 08             	lea    0x8(%ebp),%eax
40f823:	50                   	push   %eax
40f824:	81 fb 70 2d 41 00    	cmp    $0x412d70,%ebx
40f82a:	0f 85 3b 16 01 00    	jne    0x420e6b
40f830:	8b cf                	mov    %edi,%ecx
40f832:	e8 39 35 00 00       	call   0x412d70
40f837:	8b d0                	mov    %eax,%edx
40f839:	8b c2                	mov    %edx,%eax
40f83b:	85 d2                	test   %edx,%edx
40f83d:	78 03                	js     0x40f842
40f83f:	83 06 04             	addl   $0x4,(%esi)
40f842:	5f                   	pop    %edi
40f843:	5e                   	pop    %esi
40f844:	5b                   	pop    %ebx
40f845:	8b e5                	mov    %ebp,%esp
40f847:	5d                   	pop    %ebp
40f848:	c2 04 00             	ret    $0x4
40f84b:	39 56 08             	cmp    %edx,0x8(%esi)
40f84e:	74 bc                	je     0x40f80c
40f850:	8b 5e 10             	mov    0x10(%esi),%ebx
40f853:	6a 00                	push   $0x0
40f855:	51                   	push   %ecx
40f856:	68 18 86 43 00       	push   $0x438618
40f85b:	8b 03                	mov    (%ebx),%eax
40f85d:	8b 78 04             	mov    0x4(%eax),%edi
40f860:	8b cf                	mov    %edi,%ecx
40f862:	ff 15 20 a5 43 00    	call   *0x43a520
40f868:	8b cb                	mov    %ebx,%ecx
40f86a:	ff d7                	call   *%edi
40f86c:	8b d0                	mov    %eax,%edx
40f86e:	85 d2                	test   %edx,%edx
40f870:	78 d0                	js     0x40f842
40f872:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f875:	eb 95                	jmp    0x40f80c
40f877:	cc                   	int3
40f878:	cc                   	int3
40f879:	cc                   	int3
40f87a:	cc                   	int3
40f87b:	cc                   	int3
40f87c:	cc                   	int3
40f87d:	cc                   	int3
40f87e:	cc                   	int3
40f87f:	cc                   	int3
40f880:	8b ff                	mov    %edi,%edi
40f882:	55                   	push   %ebp
40f883:	8b ec                	mov    %esp,%ebp