40846b:	85 f6                	test   %esi,%esi
40846d:	79 13                	jns    0x408482
40846f:	56                   	push   %esi
408470:	51                   	push   %ecx
408471:	8b 4d 04             	mov    0x4(%ebp),%ecx
408474:	ba 85 00 00 00       	mov    $0x85,%edx
408479:	e8 51 fe ff ff       	call   0x4082cf
40847e:	8b c6                	mov    %esi,%eax
408480:	eb 02                	jmp    0x408484
408482:	33 c0                	xor    %eax,%eax
408484:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408487:	5f                   	pop    %edi
408488:	5e                   	pop    %esi
408489:	33 cd                	xor    %ebp,%ecx
40848b:	5b                   	pop    %ebx
40848c:	e8 9f 7f 00 00       	call   0x410430
408491:	c9                   	leave
408492:	c2 10 00             	ret    $0x10
408495:	e8 f1 fe ff ff       	call   0x40838b
40849a:	cc                   	int3
40849b:	8b ff                	mov    %edi,%edi
40849d:	55                   	push   %ebp
40849e:	8b ec                	mov    %esp,%ebp
4084a0:	83 ec 0c             	sub    $0xc,%esp
4084a3:	53                   	push   %ebx
4084a4:	56                   	push   %esi
4084a5:	57                   	push   %edi
4084a6:	33 db                	xor    %ebx,%ebx
4084a8:	8b f1                	mov    %ecx,%esi
4084aa:	53                   	push   %ebx
4084ab:	56                   	push   %esi
4084ac:	8b fa                	mov    %edx,%edi
4084ae:	ff 15 c4 30 43 00    	call   *0x4330c4
4084b4:	83 f8 ff             	cmp    $0xffffffff,%eax
4084b7:	75 13                	jne    0x4084cc
4084b9:	ba 95 00 00 00       	mov    $0x95,%edx
4084be:	51                   	push   %ecx
4084bf:	8b 4d 04             	mov    0x4(%ebp),%ecx
4084c2:	e8 27 fe ff ff       	call   0x4082ee
4084c7:	e9 df 00 00 00       	jmp    0x4085ab
4084cc:	85 c0                	test   %eax,%eax
4084ce:	74 11                	je     0x4084e1
4084d0:	3d 02 01 00 00       	cmp    $0x102,%eax
4084d5:	74 0a                	je     0x4084e1
4084d7:	ba 96 00 00 00       	mov    $0x96,%edx
4084dc:	e9 b9 00 00 00       	jmp    0x40859a
4084e1:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4084e4:	85 c0                	test   %eax,%eax
4084e6:	75 3d                	jne    0x408525
4084e8:	8d 45 fc             	lea    -0x4(%ebp),%eax
4084eb:	50                   	push   %eax
4084ec:	6a 01                	push   $0x1
4084ee:	56                   	push   %esi
4084ef:	ff 15 20 31 43 00    	call   *0x433120
4084f5:	85 c0                	test   %eax,%eax
4084f7:	75 07                	jne    0x408500
4084f9:	ba 9e 00 00 00       	mov    $0x9e,%edx
4084fe:	eb be                	jmp    0x4084be
408500:	ff 45 fc             	incl   -0x4(%ebp)
408503:	53                   	push   %ebx
408504:	6a 01                	push   $0x1
408506:	56                   	push   %esi
408507:	ff 15 20 31 43 00    	call   *0x433120
40850d:	85 c0                	test   %eax,%eax
40850f:	75 0d                	jne    0x40851e
408511:	ff 15 4c 31 43 00    	call   *0x43314c
408517:	3d 2a 01 00 00       	cmp    $0x12a,%eax
40851c:	74 6e                	je     0x40858c
40851e:	ba a3 00 00 00       	mov    $0xa3,%edx
408523:	eb 75                	jmp    0x40859a
408525:	8d 45 f8             	lea    -0x8(%ebp),%eax
408528:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40852b:	50                   	push   %eax
40852c:	6a 01                	push   $0x1
40852e:	56                   	push   %esi
40852f:	ff 15 20 31 43 00    	call   *0x433120
408535:	85 c0                	test   %eax,%eax
408537:	75 0a                	jne    0x408543
408539:	ba ad 00 00 00       	mov    $0xad,%edx
40853e:	e9 7b ff ff ff       	jmp    0x4084be
408543:	39 5d f8             	cmp    %ebx,-0x8(%ebp)
408546:	74 07                	je     0x40854f
408548:	ba ae 00 00 00       	mov    $0xae,%edx
40854d:	eb 4b                	jmp    0x40859a
40854f:	53                   	push   %ebx
408550:	6a 01                	push   $0x1
408552:	56                   	push   %esi
408553:	ff 15 20 31 43 00    	call   *0x433120
408559:	85 c0                	test   %eax,%eax
40855b:	75 38                	jne    0x408595
40855d:	ff 15 4c 31 43 00    	call   *0x43314c
408563:	3d 2a 01 00 00       	cmp    $0x12a,%eax
408568:	75 2b                	jne    0x408595
40856a:	53                   	push   %ebx
40856b:	56                   	push   %esi
40856c:	ff 15 c4 30 43 00    	call   *0x4330c4
408572:	83 f8 ff             	cmp    $0xffffffff,%eax
408575:	75 0a                	jne    0x408581
408577:	ba b4 00 00 00       	mov    $0xb4,%edx
40857c:	e9 3d ff ff ff       	jmp    0x4084be
408581:	85 c0                	test   %eax,%eax
408583:	74 07                	je     0x40858c
408585:	ba b5 00 00 00       	mov    $0xb5,%edx
40858a:	eb 0e                	jmp    0x40859a
40858c:	8b 45 fc             	mov    -0x4(%ebp),%eax
40858f:	89 07                	mov    %eax,(%edi)
408591:	33 c0                	xor    %eax,%eax
408593:	eb 16                	jmp    0x4085ab
408595:	ba b1 00 00 00       	mov    $0xb1,%edx
40859a:	be ff ff 00 80       	mov    $0x8000ffff,%esi
40859f:	56                   	push   %esi
4085a0:	51                   	push   %ecx
4085a1:	8b 4d 04             	mov    0x4(%ebp),%ecx
4085a4:	e8 26 fd ff ff       	call   0x4082cf
4085a9:	8b c6                	mov    %esi,%eax
4085ab:	5f                   	pop    %edi
4085ac:	5e                   	pop    %esi
4085ad:	5b                   	pop    %ebx
4085ae:	c9                   	leave
4085af:	c3                   	ret
4085b0:	8b ff                	mov    %edi,%edi
4085b2:	55                   	push   %ebp
4085b3:	8b ec                	mov    %esp,%ebp
4085b5:	83 e4 f8             	and    $0xfffffff8,%esp
4085b8:	81 ec 1c 02 00 00    	sub    $0x21c,%esp
4085be:	a1 64 10 41 00       	mov    0x411064,%eax
4085c3:	33 c4                	xor    %esp,%eax
4085c5:	89 84 24 18 02 00 00 	mov    %eax,0x218(%esp)
4085cc:	8b 45 08             	mov    0x8(%ebp),%eax
4085cf:	53                   	push   %ebx
4085d0:	56                   	push   %esi
4085d1:	57                   	push   %edi
4085d2:	33 ff                	xor    %edi,%edi
4085d4:	89 44 24 14          	mov    %eax,0x14(%esp)
4085d8:	51                   	push   %ecx
4085d9:	be 04 01 00 00       	mov    $0x104,%esi
4085de:	89 38                	mov    %edi,(%eax)
4085e0:	8b d6                	mov    %esi,%edx
4085e2:	89 78 04             	mov    %edi,0x4(%eax)
4085e5:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
4085e9:	e8 71 b4 ff ff       	call   0x403a5f
4085ee:	68 d8 16 40 00       	push   $0x4016d8
4085f3:	8b d6                	mov    %esi,%edx
4085f5:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
4085f9:	e8 3c b3 ff ff       	call   0x40393a
4085fe:	8d 44 24 18          	lea    0x18(%esp),%eax
408602:	50                   	push   %eax
408603:	57                   	push   %edi
408604:	68 03 00 1f 00       	push   $0x1f0003
408609:	ff 15 c8 30 43 00    	call   *0x4330c8
40860f:	8b f0                	mov    %eax,%esi
408611:	85 f6                	test   %esi,%esi
408613:	75 1d                	jne    0x408632
408615:	ff 15 4c 31 43 00    	call   *0x43314c
40861b:	83 f8 02             	cmp    $0x2,%eax
40861e:	74 48                	je     0x408668
408620:	51                   	push   %ecx
408621:	8b 4d 04             	mov    0x4(%ebp),%ecx
408624:	ba c9 00 00 00       	mov    $0xc9,%edx
408629:	e8 c0 fc ff ff       	call   0x4082ee
40862e:	8b f8                	mov    %eax,%edi
408630:	eb 36                	jmp    0x408668
408632:	8d 54 24 10          	lea    0x10(%esp),%edx
408636:	89 7c 24 10          	mov    %edi,0x10(%esp)
40863a:	8b ce                	mov    %esi,%ecx
40863c:	e8 5a fe ff ff       	call   0x40849b
408641:	8b d8                	mov    %eax,%ebx
408643:	85 db                	test   %ebx,%ebx
408645:	79 13                	jns    0x40865a
408647:	53                   	push   %ebx
408648:	51                   	push   %ecx
408649:	8b 4d 04             	mov    0x4(%ebp),%ecx
40864c:	ba cf 00 00 00       	mov    $0xcf,%edx
408651:	e8 79 fc ff ff       	call   0x4082cf
408656:	8b fb                	mov    %ebx,%edi
408658:	eb 0e                	jmp    0x408668
40865a:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40865e:	8b 44 24 10          	mov    0x10(%esp),%eax
408662:	99                   	cltd
408663:	89 01                	mov    %eax,(%ecx)
408665:	89 51 04             	mov    %edx,0x4(%ecx)
408668:	85 f6                	test   %esi,%esi
40866a:	74 06                	je     0x408672
40866c:	56                   	push   %esi
40866d:	e8 1f fd ff ff       	call   0x408391
408672:	8b 8c 24 24 02 00 00 	mov    0x224(%esp),%ecx
408679:	8b c7                	mov    %edi,%eax
40867b:	5f                   	pop    %edi
40867c:	5e                   	pop    %esi
40867d:	5b                   	pop    %ebx
40867e:	33 cc                	xor    %esp,%ecx
408680:	e8 ab 7d 00 00       	call   0x410430
408685:	8b e5                	mov    %ebp,%esp
408687:	5d                   	pop    %ebp
408688:	c2 08 00             	ret    $0x8
40868b:	8b ff                	mov    %edi,%edi
40868d:	55                   	push   %ebp
40868e:	8b ec                	mov    %esp,%ebp
408690:	83 ec 0c             	sub    $0xc,%esp
408693:	8b 45 0c             	mov    0xc(%ebp),%eax
408696:	53                   	push   %ebx
408697:	8b 5d 08             	mov    0x8(%ebp),%ebx
40869a:	56                   	push   %esi
40869b:	8b f1                	mov    %ecx,%esi
40869d:	33 c9                	xor    %ecx,%ecx
40869f:	57                   	push   %edi
4086a0:	89 46 04             	mov    %eax,0x4(%esi)
4086a3:	8b 43 04             	mov    0x4(%ebx),%eax
4086a6:	89 46 08             	mov    %eax,0x8(%esi)
4086a9:	8d 46 0c             	lea    0xc(%esi),%eax
4086ac:	89 08                	mov    %ecx,(%eax)
4086ae:	89 45 fc             	mov    %eax,-0x4(%ebp)
4086b1:	66 8b 43 20          	mov    0x20(%ebx),%ax
4086b5:	66 89 46 10          	mov    %ax,0x10(%esi)
4086b9:	8a 03                	mov    (%ebx),%al
4086bb:	88 46 12             	mov    %al,0x12(%esi)
4086be:	8d 46 14             	lea    0x14(%esi),%eax
4086c1:	89 08                	mov    %ecx,(%eax)
4086c3:	89 45 f8             	mov    %eax,-0x8(%ebp)
4086c6:	8b 43 48             	mov    0x48(%ebx),%eax
4086c9:	89 46 18             	mov    %eax,0x18(%esi)
4086cc:	8b 43 4c             	mov    0x4c(%ebx),%eax
4086cf:	89 46 1c             	mov    %eax,0x1c(%esi)
4086d2:	8d 46 20             	lea    0x20(%esi),%eax
4086d5:	89 08                	mov    %ecx,(%eax)
4086d7:	8b 4b 0c             	mov    0xc(%ebx),%ecx
4086da:	89 45 f4             	mov    %eax,-0xc(%ebp)
4086dd:	e8 d4 f5 ff ff       	call   0x407cb6
4086e2:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
4086e5:	8b f8                	mov    %eax,%edi
4086e7:	e8 b2 f5 ff ff       	call   0x407c9e
4086ec:	8b 4b 44             	mov    0x44(%ebx),%ecx
4086ef:	03 f8                	add    %eax,%edi
4086f1:	e8 a8 f5 ff ff       	call   0x407c9e
4086f6:	03 f8                	add    %eax,%edi
4086f8:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
4086fc:	74 05                	je     0x408703
4086fe:	39 7e 28             	cmp    %edi,0x28(%esi)
408701:	73 2b                	jae    0x40872e
408703:	6a 08                	push   $0x8
408705:	8b d7                	mov    %edi,%edx
408707:	59                   	pop    %ecx
408708:	e8 6a f4 ff ff       	call   0x407b77
40870d:	8b d8                	mov    %eax,%ebx
40870f:	85 db                	test   %ebx,%ebx
408711:	74 18                	je     0x40872b
408713:	ff 76 24             	push   0x24(%esi)
408716:	6a 00                	push   $0x0
408718:	ff 15 44 31 43 00    	call   *0x433144
40871e:	50                   	push   %eax
40871f:	ff 15 48 31 43 00    	call   *0x433148
408725:	89 5e 24             	mov    %ebx,0x24(%esi)
408728:	89 7e 28             	mov    %edi,0x28(%esi)
40872b:	8b 5d 08             	mov    0x8(%ebp),%ebx
40872e:	8b 4e 24             	mov    0x24(%esi),%ecx
408731:	85 c9                	test   %ecx,%ecx
408733:	74 3e                	je     0x408773
408735:	8b 76 28             	mov    0x28(%esi),%esi
408738:	ff 75 fc             	push   -0x4(%ebp)
40873b:	03 f1                	add    %ecx,%esi
40873d:	ff 73 1c             	push   0x1c(%ebx)
408740:	8b d6                	mov    %esi,%edx
408742:	e8 f8 70 00 00       	call   0x40f83f
408747:	ff 75 f8             	push   -0x8(%ebp)
40874a:	8b d6                	mov    %esi,%edx
40874c:	8b c8                	mov    %eax,%ecx
40874e:	ff 73 44             	push   0x44(%ebx)
408751:	e8 e9 70 00 00       	call   0x40f83f
408756:	ff 75 f4             	push   -0xc(%ebp)
408759:	8b d6                	mov    %esi,%edx
40875b:	8b c8                	mov    %eax,%ecx
40875d:	ff 73 0c             	push   0xc(%ebx)
408760:	e8 70 70 00 00       	call   0x40f7d5
408765:	2b f0                	sub    %eax,%esi
408767:	56                   	push   %esi
408768:	6a 00                	push   $0x0
40876a:	50                   	push   %eax
40876b:	e8 97 83 00 00       	call   0x410b07
408770:	83 c4 0c             	add    $0xc,%esp
408773:	5f                   	pop    %edi
408774:	5e                   	pop    %esi
408775:	5b                   	pop    %ebx
408776:	c9                   	leave
408777:	c2 08 00             	ret    $0x8
40877a:	8b ff                	mov    %edi,%edi
40877c:	53                   	push   %ebx
40877d:	57                   	push   %edi
40877e:	8b f9                	mov    %ecx,%edi
408780:	0f b7 47 14          	movzwl 0x14(%edi),%eax
408784:	8b 4f 10             	mov    0x10(%edi),%ecx
408787:	6b d8 2c             	imul   $0x2c,%eax,%ebx
40878a:	03 d9                	add    %ecx,%ebx
40878c:	3b cb                	cmp    %ebx,%ecx
40878e:	74 2a                	je     0x4087ba
408790:	56                   	push   %esi
408791:	8d 71 24             	lea    0x24(%ecx),%esi
408794:	ff 36                	push   (%esi)
408796:	6a 00                	push   $0x0
408798:	ff 15 44 31 43 00    	call   *0x433144
40879e:	50                   	push   %eax
40879f:	ff 15 48 31 43 00    	call   *0x433148
4087a5:	83 26 00             	andl   $0x0,(%esi)
4087a8:	8d 76 2c             	lea    0x2c(%esi),%esi
4087ab:	83 66 d8 00          	andl   $0x0,-0x28(%esi)
4087af:	8d 46 dc             	lea    -0x24(%esi),%eax
4087b2:	3b c3                	cmp    %ebx,%eax
4087b4:	75 de                	jne    0x408794
4087b6:	8b 4f 10             	mov    0x10(%edi),%ecx
4087b9:	5e                   	pop    %esi
4087ba:	51                   	push   %ecx
4087bb:	6a 00                	push   $0x0
4087bd:	ff 15 44 31 43 00    	call   *0x433144
4087c3:	50                   	push   %eax
4087c4:	ff 15 48 31 43 00    	call   *0x433148
4087ca:	33 c0                	xor    %eax,%eax
4087cc:	21 47 10             	and    %eax,0x10(%edi)
4087cf:	89 47 14             	mov    %eax,0x14(%edi)
4087d2:	5f                   	pop    %edi
4087d3:	5b                   	pop    %ebx
4087d4:	c3                   	ret
4087d5:	8b ff                	mov    %edi,%edi
4087d7:	55                   	push   %ebp
4087d8:	8b ec                	mov    %esp,%ebp
4087da:	53                   	push   %ebx
4087db:	56                   	push   %esi
4087dc:	8b f1                	mov    %ecx,%esi
4087de:	57                   	push   %edi
4087df:	6a 2c                	push   $0x2c
4087e1:	5b                   	pop    %ebx
4087e2:	8b 56 10             	mov    0x10(%esi),%edx
4087e5:	8b 7e 0c             	mov    0xc(%esi),%edi
4087e8:	85 d2                	test   %edx,%edx
4087ea:	75 49                	jne    0x408835
4087ec:	85 ff                	test   %edi,%edi
4087ee:	0f 84 9e 00 00 00    	je     0x408892
4087f4:	6a 08                	push   $0x8
4087f6:	ba dc 00 00 00       	mov    $0xdc,%edx
4087fb:	59                   	pop    %ecx
4087fc:	e8 76 f3 ff ff       	call   0x407b77
408801:	8b d0                	mov    %eax,%edx
408803:	89 56 10             	mov    %edx,0x10(%esi)
408806:	85 d2                	test   %edx,%edx
408808:	0f 84 84 00 00 00    	je     0x408892
40880e:	6a 05                	push   $0x5
408810:	58                   	pop    %eax
408811:	66 89 46 14          	mov    %ax,0x14(%esi)
408815:	33 c0                	xor    %eax,%eax
408817:	66 89 46 16          	mov    %ax,0x16(%esi)
40881b:	8d 82 dc 00 00 00    	lea    0xdc(%edx),%eax
408821:	3b d0                	cmp    %eax,%edx