4075ed:	8d 85 bc fc ff ff    	lea    -0x344(%ebp),%eax
4075f3:	50                   	push   %eax
4075f4:	ff 15 44 12 43 00    	call   *0x431244
4075fa:	6a ff                	push   $0xffffffff
4075fc:	68 0a 03 00 00       	push   $0x30a
407601:	8d 85 bc fc ff ff    	lea    -0x344(%ebp),%eax
407607:	68 14 15 43 00       	push   $0x431514
40760c:	50                   	push   %eax
40760d:	ff 15 38 12 43 00    	call   *0x431238
407613:	8d 85 bc fc ff ff    	lea    -0x344(%ebp),%eax
407619:	6a 5c                	push   $0x5c
40761b:	50                   	push   %eax
40761c:	ff d6                	call   *%esi
40761e:	83 c4 38             	add    $0x38,%esp
407621:	8d 8d bc fc ff ff    	lea    -0x344(%ebp),%ecx
407627:	8b c4                	mov    %esp,%eax
407629:	89 08                	mov    %ecx,(%eax)
40762b:	e8 c0 18 00 00       	call   0x408ef0
407630:	83 c4 04             	add    $0x4,%esp
407633:	84 c0                	test   %al,%al
407635:	75 13                	jne    0x40764a
407637:	51                   	push   %ecx
407638:	8b c4                	mov    %esp,%eax
40763a:	8d 8d bc fc ff ff    	lea    -0x344(%ebp),%ecx
407640:	89 08                	mov    %ecx,(%eax)
407642:	e8 09 17 00 00       	call   0x408d50
407647:	83 c4 04             	add    $0x4,%esp
40764a:	6a 04                	push   $0x4
40764c:	68 08 02 00 00       	push   $0x208
407651:	8d 85 b4 fa ff ff    	lea    -0x54c(%ebp),%eax
407657:	50                   	push   %eax
407658:	8d 85 bc fc ff ff    	lea    -0x344(%ebp),%eax
40765e:	50                   	push   %eax
40765f:	ff 15 3c 12 43 00    	call   *0x43123c
407665:	8d b5 b4 fa ff ff    	lea    -0x54c(%ebp),%esi
40766b:	83 c4 10             	add    $0x10,%esp
40766e:	8d 4e 02             	lea    0x2(%esi),%ecx
407671:	66 8b 06             	mov    (%esi),%ax
407674:	83 c6 02             	add    $0x2,%esi
407677:	66 85 c0             	test   %ax,%ax
40767a:	75 f5                	jne    0x407671
40767c:	8b 57 14             	mov    0x14(%edi),%edx
40767f:	2b f1                	sub    %ecx,%esi
407681:	d1 fe                	sar    $1,%esi
407683:	89 55 e4             	mov    %edx,-0x1c(%ebp)
407686:	3b f2                	cmp    %edx,%esi
407688:	77 33                	ja     0x4076bd
40768a:	89 7d f0             	mov    %edi,-0x10(%ebp)
40768d:	8b c7                	mov    %edi,%eax
40768f:	83 fa 07             	cmp    $0x7,%edx
407692:	76 05                	jbe    0x407699
407694:	8b 07                	mov    (%edi),%eax
407696:	89 45 f0             	mov    %eax,-0x10(%ebp)
407699:	89 77 10             	mov    %esi,0x10(%edi)
40769c:	8d 8d b4 fa ff ff    	lea    -0x54c(%ebp),%ecx
4076a2:	03 f6                	add    %esi,%esi
4076a4:	56                   	push   %esi
4076a5:	51                   	push   %ecx
4076a6:	50                   	push   %eax
4076a7:	e8 94 37 00 00       	call   0x40ae40
4076ac:	8b 45 f0             	mov    -0x10(%ebp),%eax
4076af:	83 c4 0c             	add    $0xc,%esp
4076b2:	33 c9                	xor    %ecx,%ecx
4076b4:	66 89 0c 06          	mov    %cx,(%esi,%eax,1)
4076b8:	e9 b7 00 00 00       	jmp    0x407774
4076bd:	81 fe fe ff ff 7f    	cmp    $0x7ffffffe,%esi
4076c3:	0f 87 64 02 00 00    	ja     0x40792d
4076c9:	8b ce                	mov    %esi,%ecx
4076cb:	83 c9 07             	or     $0x7,%ecx
4076ce:	81 f9 fe ff ff 7f    	cmp    $0x7ffffffe,%ecx
4076d4:	76 07                	jbe    0x4076dd
4076d6:	b9 fe ff ff 7f       	mov    $0x7ffffffe,%ecx
4076db:	eb 24                	jmp    0x407701
4076dd:	8b c2                	mov    %edx,%eax
4076df:	d1 e8                	shr    $1,%eax
4076e1:	89 45 f0             	mov    %eax,-0x10(%ebp)
4076e4:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
4076e9:	2b 45 f0             	sub    -0x10(%ebp),%eax
4076ec:	3b d0                	cmp    %eax,%edx
4076ee:	76 07                	jbe    0x4076f7
4076f0:	b9 fe ff ff 7f       	mov    $0x7ffffffe,%ecx
4076f5:	eb 0a                	jmp    0x407701
4076f7:	8b 45 f0             	mov    -0x10(%ebp),%eax
4076fa:	03 c2                	add    %edx,%eax
4076fc:	3b c8                	cmp    %eax,%ecx
4076fe:	0f 42 c8             	cmovb  %eax,%ecx
407701:	8d 45 f0             	lea    -0x10(%ebp),%eax
407704:	89 4d f0             	mov    %ecx,-0x10(%ebp)
407707:	50                   	push   %eax
407708:	57                   	push   %edi
407709:	e8 22 f6 ff ff       	call   0x406d30
40770e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
407711:	89 77 10             	mov    %esi,0x10(%edi)
407714:	03 f6                	add    %esi,%esi
407716:	89 4f 14             	mov    %ecx,0x14(%edi)
407719:	8d 8d b4 fa ff ff    	lea    -0x54c(%ebp),%ecx
40771f:	56                   	push   %esi
407720:	51                   	push   %ecx
407721:	50                   	push   %eax
407722:	89 45 e8             	mov    %eax,-0x18(%ebp)
407725:	e8 16 37 00 00       	call   0x40ae40
40772a:	8b 45 e8             	mov    -0x18(%ebp),%eax
40772d:	33 c9                	xor    %ecx,%ecx
40772f:	83 c4 14             	add    $0x14,%esp
407732:	66 89 0c 06          	mov    %cx,(%esi,%eax,1)
407736:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
407739:	83 f9 07             	cmp    $0x7,%ecx
40773c:	76 34                	jbe    0x407772
40773e:	8b 07                	mov    (%edi),%eax
407740:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
407747:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40774d:	72 16                	jb     0x407765
40774f:	8b 50 fc             	mov    -0x4(%eax),%edx
407752:	83 c1 23             	add    $0x23,%ecx
407755:	2b c2                	sub    %edx,%eax
407757:	83 c0 fc             	add    $0xfffffffc,%eax
40775a:	83 f8 1f             	cmp    $0x1f,%eax
40775d:	0f 87 cf 01 00 00    	ja     0x407932
407763:	8b c2                	mov    %edx,%eax
407765:	51                   	push   %ecx
407766:	50                   	push   %eax
407767:	e8 84 f2 ff ff       	call   0x4069f0
40776c:	8b 45 e8             	mov    -0x18(%ebp),%eax
40776f:	83 c4 08             	add    $0x8,%esp
407772:	89 07                	mov    %eax,(%edi)
407774:	6a 24                	push   $0x24
407776:	e8 45 f2 ff ff       	call   0x4069c0
40777b:	8b f0                	mov    %eax,%esi
40777d:	83 c4 04             	add    $0x4,%esp
407780:	89 75 e4             	mov    %esi,-0x1c(%ebp)
407783:	33 c0                	xor    %eax,%eax
407785:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
407789:	85 f6                	test   %esi,%esi
40778b:	74 3a                	je     0x4077c7
40778d:	50                   	push   %eax
40778e:	68 1c 15 43 00       	push   $0x43151c
407793:	8d 4d cc             	lea    -0x34(%ebp),%ecx
407796:	89 45 cc             	mov    %eax,-0x34(%ebp)
407799:	89 45 d0             	mov    %eax,-0x30(%ebp)
40779c:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40779f:	89 45 d8             	mov    %eax,-0x28(%ebp)
4077a2:	89 45 dc             	mov    %eax,-0x24(%ebp)
4077a5:	89 45 e0             	mov    %eax,-0x20(%ebp)
4077a8:	e8 e3 f5 ff ff       	call   0x406d90
4077ad:	b8 01 00 00 00       	mov    $0x1,%eax
4077b2:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
4077b6:	89 45 ec             	mov    %eax,-0x14(%ebp)
4077b9:	8b ce                	mov    %esi,%ecx
4077bb:	89 45 e8             	mov    %eax,-0x18(%ebp)
4077be:	8d 45 cc             	lea    -0x34(%ebp),%eax
4077c1:	50                   	push   %eax
4077c2:	e8 e5 bf ff ff       	call   0x4037ac
4077c7:	89 43 10             	mov    %eax,0x10(%ebx)
4077ca:	8b 45 ec             	mov    -0x14(%ebp),%eax
4077cd:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
4077d4:	a8 01                	test   $0x1,%al
4077d6:	74 40                	je     0x407818
4077d8:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4077db:	83 e0 fe             	and    $0xfffffffe,%eax
4077de:	89 45 ec             	mov    %eax,-0x14(%ebp)
4077e1:	83 f9 07             	cmp    $0x7,%ecx
4077e4:	76 32                	jbe    0x407818
4077e6:	8b 55 cc             	mov    -0x34(%ebp),%edx
4077e9:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
4077f0:	8b c2                	mov    %edx,%eax
4077f2:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4077f8:	72 14                	jb     0x40780e
4077fa:	8b 50 fc             	mov    -0x4(%eax),%edx
4077fd:	83 c1 23             	add    $0x23,%ecx
407800:	2b c2                	sub    %edx,%eax
407802:	83 c0 fc             	add    $0xfffffffc,%eax
407805:	83 f8 1f             	cmp    $0x1f,%eax
407808:	0f 87 24 01 00 00    	ja     0x407932
40780e:	51                   	push   %ecx
40780f:	52                   	push   %edx
407810:	e8 db f1 ff ff       	call   0x4069f0
407815:	83 c4 08             	add    $0x8,%esp
407818:	68 d8 00 00 00       	push   $0xd8
40781d:	e8 9e f1 ff ff       	call   0x4069c0
407822:	8b f0                	mov    %eax,%esi
407824:	83 c4 04             	add    $0x4,%esp
407827:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40782a:	c6 45 fc 06          	movb   $0x6,-0x4(%ebp)
40782e:	85 f6                	test   %esi,%esi
407830:	74 59                	je     0x40788b
407832:	33 c0                	xor    %eax,%eax
407834:	8d 4d cc             	lea    -0x34(%ebp),%ecx
407837:	6a 29                	push   $0x29
407839:	68 c0 14 43 00       	push   $0x4314c0
40783e:	89 45 cc             	mov    %eax,-0x34(%ebp)
407841:	89 45 d0             	mov    %eax,-0x30(%ebp)
407844:	89 45 d4             	mov    %eax,-0x2c(%ebp)
407847:	89 45 d8             	mov    %eax,-0x28(%ebp)
40784a:	89 45 dc             	mov    %eax,-0x24(%ebp)
40784d:	89 45 e0             	mov    %eax,-0x20(%ebp)
407850:	e8 3b f5 ff ff       	call   0x406d90
407855:	8b 45 ec             	mov    -0x14(%ebp),%eax
407858:	8b ce                	mov    %esi,%ecx
40785a:	57                   	push   %edi
40785b:	6a 01                	push   $0x1
40785d:	6a 00                	push   $0x0
40785f:	6a 00                	push   $0x0
407861:	6a 00                	push   $0x0
407863:	6a 00                	push   $0x0
407865:	53                   	push   %ebx
407866:	68 80 82 40 00       	push   $0x408280
40786b:	6a 00                	push   $0x0
40786d:	83 c8 02             	or     $0x2,%eax
407870:	c6 45 fc 07          	movb   $0x7,-0x4(%ebp)
407874:	6a 00                	push   $0x0
407876:	89 45 ec             	mov    %eax,-0x14(%ebp)
407879:	89 45 e8             	mov    %eax,-0x18(%ebp)
40787c:	8d 45 cc             	lea    -0x34(%ebp),%eax
40787f:	6a 00                	push   $0x0
407881:	50                   	push   %eax
407882:	e8 c8 99 ff ff       	call   0x40124f
407887:	8b c8                	mov    %eax,%ecx
407889:	eb 02                	jmp    0x40788d
40788b:	33 c9                	xor    %ecx,%ecx
40788d:	8b 45 ec             	mov    -0x14(%ebp),%eax
407890:	89 4b 0c             	mov    %ecx,0xc(%ebx)
407893:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
40789a:	a8 02                	test   $0x2,%al
40789c:	74 39                	je     0x4078d7
40789e:	8b 45 e0             	mov    -0x20(%ebp),%eax
4078a1:	83 f8 07             	cmp    $0x7,%eax
4078a4:	76 31                	jbe    0x4078d7
4078a6:	8b 55 cc             	mov    -0x34(%ebp),%edx
4078a9:	8d 0c 45 02 00 00 00 	lea    0x2(,%eax,2),%ecx
4078b0:	8b c2                	mov    %edx,%eax
4078b2:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4078b8:	72 10                	jb     0x4078ca
4078ba:	8b 50 fc             	mov    -0x4(%eax),%edx
4078bd:	83 c1 23             	add    $0x23,%ecx
4078c0:	2b c2                	sub    %edx,%eax
4078c2:	83 c0 fc             	add    $0xfffffffc,%eax
4078c5:	83 f8 1f             	cmp    $0x1f,%eax
4078c8:	77 6d                	ja     0x407937
4078ca:	51                   	push   %ecx
4078cb:	52                   	push   %edx
4078cc:	e8 1f f1 ff ff       	call   0x4069f0
4078d1:	8b 4b 0c             	mov    0xc(%ebx),%ecx
4078d4:	83 c4 08             	add    $0x8,%esp
4078d7:	e8 8b 9b ff ff       	call   0x401467
4078dc:	84 c0                	test   %al,%al
4078de:	75 38                	jne    0x407918
4078e0:	8b 73 0c             	mov    0xc(%ebx),%esi
4078e3:	85 f6                	test   %esi,%esi
4078e5:	74 15                	je     0x4078fc
4078e7:	8b ce                	mov    %esi,%ecx
4078e9:	e8 8c 9a ff ff       	call   0x40137a
4078ee:	68 d8 00 00 00       	push   $0xd8
4078f3:	56                   	push   %esi
4078f4:	e8 f7 f0 ff ff       	call   0x4069f0
4078f9:	83 c4 08             	add    $0x8,%esp
4078fc:	8b 4b 10             	mov    0x10(%ebx),%ecx
4078ff:	c7 43 0c 00 00 00 00 	movl   $0x0,0xc(%ebx)
407906:	85 c9                	test   %ecx,%ecx
407908:	74 07                	je     0x407911
40790a:	6a 01                	push   $0x1
40790c:	e8 df 04 00 00       	call   0x407df0
407911:	c7 43 10 00 00 00 00 	movl   $0x0,0x10(%ebx)
407918:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40791b:	8b c3                	mov    %ebx,%eax
40791d:	5f                   	pop    %edi
40791e:	5e                   	pop    %esi
40791f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
407926:	5b                   	pop    %ebx
407927:	8b e5                	mov    %ebp,%esp
407929:	5d                   	pop    %ebp
40792a:	c2 04 00             	ret    $0x4
40792d:	e8 1e 0f 00 00       	call   0x408850
407932:	e8 c7 5a 00 00       	call   0x40d3fe
407937:	e8 c2 5a 00 00       	call   0x40d3fe
40793c:	cc                   	int3
40793d:	cc                   	int3
40793e:	cc                   	int3
40793f:	cc                   	int3
407940:	55                   	push   %ebp
407941:	8b ec                	mov    %esp,%ebp
407943:	6a ff                	push   $0xffffffff
407945:	68 65 01 43 00       	push   $0x430165
40794a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
407950:	50                   	push   %eax
407951:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
407958:	83 ec 0c             	sub    $0xc,%esp
40795b:	53                   	push   %ebx
40795c:	56                   	push   %esi
40795d:	8b f1                	mov    %ecx,%esi
40795f:	89 75 f0             	mov    %esi,-0x10(%ebp)
407962:	57                   	push   %edi
407963:	6a 40                	push   $0x40
407965:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
40796b:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
407972:	89 75 e8             	mov    %esi,-0x18(%ebp)
407975:	89 75 ec             	mov    %esi,-0x14(%ebp)
407978:	e8 43 f0 ff ff       	call   0x4069c0
40797d:	83 c4 04             	add    $0x4,%esp
407980:	89 00                	mov    %eax,(%eax)
407982:	89 40 04             	mov    %eax,0x4(%eax)
407985:	89 40 08             	mov    %eax,0x8(%eax)
407988:	66 c7 40 0c 01 01    	movw   $0x101,0xc(%eax)
40798e:	89 06                	mov    %eax,(%esi)
407990:	8b 5d 08             	mov    0x8(%ebp),%ebx
407993:	8b ce                	mov    %esi,%ecx
407995:	50                   	push   %eax
407996:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40799d:	8b 03                	mov    (%ebx),%eax
40799f:	ff 70 04             	push   0x4(%eax)
4079a2:	e8 89 f4 ff ff       	call   0x406e30
4079a7:	8b 0e                	mov    (%esi),%ecx
4079a9:	89 41 04             	mov    %eax,0x4(%ecx)
4079ac:	8b 3e                	mov    (%esi),%edi
4079ae:	8b 43 04             	mov    0x4(%ebx),%eax
4079b1:	89 46 04             	mov    %eax,0x4(%esi)
4079b4:	8b 57 04             	mov    0x4(%edi),%edx
4079b7:	80 7a 0d 00          	cmpb   $0x0,0xd(%edx)
4079bb:	75 34                	jne    0x4079f1
4079bd:	8b 0a                	mov    (%edx),%ecx
4079bf:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
4079c3:	75 0c                	jne    0x4079d1
4079c5:	8b 01                	mov    (%ecx),%eax
4079c7:	8b d1                	mov    %ecx,%edx
4079c9:	8b c8                	mov    %eax,%ecx
4079cb:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
4079cf:	74 f4                	je     0x4079c5
4079d1:	89 17                	mov    %edx,(%edi)
4079d3:	8b 16                	mov    (%esi),%edx
4079d5:	8b 4a 04             	mov    0x4(%edx),%ecx
4079d8:	8b 41 08             	mov    0x8(%ecx),%eax
4079db:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
4079df:	75 0b                	jne    0x4079ec
4079e1:	8b c8                	mov    %eax,%ecx
4079e3:	8b 41 08             	mov    0x8(%ecx),%eax
4079e6:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
4079ea:	74 f5                	je     0x4079e1
4079ec:	89 4a 08             	mov    %ecx,0x8(%edx)
4079ef:	eb 07                	jmp    0x4079f8
4079f1:	89 3f                	mov    %edi,(%edi)
4079f3:	8b 06                	mov    (%esi),%eax
4079f5:	89 40 08             	mov    %eax,0x8(%eax)
4079f8:	8d 43 08             	lea    0x8(%ebx),%eax
4079fb:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
407a02:	50                   	push   %eax
407a03:	8d 4e 08             	lea    0x8(%esi),%ecx
407a06:	e8 5f a6 ff ff       	call   0x40206a
407a0b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
407a0e:	8b c6                	mov    %esi,%eax
407a10:	5f                   	pop    %edi
407a11:	5e                   	pop    %esi