42068c:	50                   	push   %eax
42068d:	e8 2e 9c ff ff       	call   0x41a2c0
420692:	3b c7                	cmp    %edi,%eax
420694:	74 1a                	je     0x4206b0
420696:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
420699:	51                   	push   %ecx
42069a:	57                   	push   %edi
42069b:	68 68 03 00 00       	push   $0x368
4206a0:	ff 70 1c             	push   0x1c(%eax)
4206a3:	ff 15 88 99 43 00    	call   *0x439988
4206a9:	3b c7                	cmp    %edi,%eax
4206ab:	74 03                	je     0x4206b0
4206ad:	89 7d fc             	mov    %edi,-0x4(%ebp)
4206b0:	39 7d fc             	cmp    %edi,-0x4(%ebp)
4206b3:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4206b6:	50                   	push   %eax
4206b7:	74 3d                	je     0x4206f6
4206b9:	8d 45 f4             	lea    -0xc(%ebp),%eax
4206bc:	8b ce                	mov    %esi,%ecx
4206be:	50                   	push   %eax
4206bf:	e8 6f fe ff ff       	call   0x420533
4206c4:	85 c0                	test   %eax,%eax
4206c6:	75 49                	jne    0x420711
4206c8:	8d 45 b4             	lea    -0x4c(%ebp),%eax
4206cb:	50                   	push   %eax
4206cc:	ff 76 1c             	push   0x1c(%esi)
4206cf:	ff 15 4c 99 43 00    	call   *0x43994c
4206d5:	39 7d bc             	cmp    %edi,-0x44(%ebp)
4206d8:	0f 8e f4 00 00 00    	jle    0x4207d2
4206de:	39 7d c0             	cmp    %edi,-0x40(%ebp)
4206e1:	0f 8e eb 00 00 00    	jle    0x4207d2
4206e7:	57                   	push   %edi
4206e8:	6a 03                	push   $0x3
4206ea:	8b ce                	mov    %esi,%ecx
4206ec:	e8 7c b4 ff ff       	call   0x41bb6d
4206f1:	e9 dc 00 00 00       	jmp    0x4207d2
4206f6:	8b ce                	mov    %esi,%ecx
4206f8:	e8 dc fd ff ff       	call   0x4204d9
4206fd:	8b 4d cc             	mov    -0x34(%ebp),%ecx
420700:	8b 45 d0             	mov    -0x30(%ebp),%eax
420703:	2b 4d c4             	sub    -0x3c(%ebp),%ecx
420706:	2b 45 c8             	sub    -0x38(%ebp),%eax
420709:	89 4d f4             	mov    %ecx,-0xc(%ebp)
42070c:	89 45 f8             	mov    %eax,-0x8(%ebp)
42070f:	eb 06                	jmp    0x420717
420711:	8b 45 f8             	mov    -0x8(%ebp),%eax
420714:	8b 4d f4             	mov    -0xc(%ebp),%ecx
420717:	ff 75 fc             	push   -0x4(%ebp)
42071a:	8d 55 dc             	lea    -0x24(%ebp),%edx
42071d:	52                   	push   %edx
42071e:	8d 55 d4             	lea    -0x2c(%ebp),%edx
420721:	52                   	push   %edx
420722:	8d 55 ec             	lea    -0x14(%ebp),%edx
420725:	52                   	push   %edx
420726:	50                   	push   %eax
420727:	51                   	push   %ecx
420728:	8b ce                	mov    %esi,%ecx
42072a:	e8 79 fe ff ff       	call   0x4205a8
42072f:	39 7d ec             	cmp    %edi,-0x14(%ebp)
420732:	74 06                	je     0x42073a
420734:	8b 45 e8             	mov    -0x18(%ebp),%eax
420737:	29 45 f8             	sub    %eax,-0x8(%ebp)
42073a:	39 7d f0             	cmp    %edi,-0x10(%ebp)
42073d:	74 06                	je     0x420745
42073f:	8b 45 e4             	mov    -0x1c(%ebp),%eax
420742:	29 45 f4             	sub    %eax,-0xc(%ebp)
420745:	ff 75 e0             	push   -0x20(%ebp)
420748:	8b ce                	mov    %esi,%ecx
42074a:	ff 75 dc             	push   -0x24(%ebp)
42074d:	e8 0d fd ff ff       	call   0x42045f
420752:	ff 75 ec             	push   -0x14(%ebp)
420755:	8b ce                	mov    %esi,%ecx
420757:	c7 45 9c 03 00 00 00 	movl   $0x3,-0x64(%ebp)
42075e:	89 7d a0             	mov    %edi,-0x60(%ebp)
420761:	57                   	push   %edi
420762:	e8 06 b4 ff ff       	call   0x41bb6d
420767:	39 7d ec             	cmp    %edi,-0x14(%ebp)
42076a:	74 2b                	je     0x420797
42076c:	8b 45 f4             	mov    -0xc(%ebp),%eax
42076f:	53                   	push   %ebx
420770:	89 45 a8             	mov    %eax,-0x58(%ebp)
420773:	8b 46 4c             	mov    0x4c(%esi),%eax
420776:	48                   	dec    %eax
420777:	8b ce                	mov    %esi,%ecx
420779:	89 45 a4             	mov    %eax,-0x5c(%ebp)
42077c:	8d 45 98             	lea    -0x68(%ebp),%eax
42077f:	50                   	push   %eax
420780:	57                   	push   %edi
420781:	e8 2a b4 ff ff       	call   0x41bbb0
420786:	85 c0                	test   %eax,%eax
420788:	75 0d                	jne    0x420797
42078a:	53                   	push   %ebx
42078b:	8b ce                	mov    %esi,%ecx
42078d:	ff 75 d4             	push   -0x2c(%ebp)
420790:	57                   	push   %edi
420791:	57                   	push   %edi
420792:	e8 a3 b3 ff ff       	call   0x41bb3a
420797:	ff 75 f0             	push   -0x10(%ebp)
42079a:	8b ce                	mov    %esi,%ecx
42079c:	53                   	push   %ebx
42079d:	e8 cb b3 ff ff       	call   0x41bb6d
4207a2:	39 7d f0             	cmp    %edi,-0x10(%ebp)
4207a5:	74 2b                	je     0x4207d2
4207a7:	8b 45 f8             	mov    -0x8(%ebp),%eax
4207aa:	53                   	push   %ebx
4207ab:	89 45 a8             	mov    %eax,-0x58(%ebp)
4207ae:	8b 46 50             	mov    0x50(%esi),%eax
4207b1:	48                   	dec    %eax
4207b2:	8b ce                	mov    %esi,%ecx
4207b4:	89 45 a4             	mov    %eax,-0x5c(%ebp)
4207b7:	8d 45 98             	lea    -0x68(%ebp),%eax
4207ba:	50                   	push   %eax
4207bb:	53                   	push   %ebx
4207bc:	e8 ef b3 ff ff       	call   0x41bbb0
4207c1:	85 c0                	test   %eax,%eax
4207c3:	75 0d                	jne    0x4207d2
4207c5:	53                   	push   %ebx
4207c6:	8b ce                	mov    %esi,%ecx
4207c8:	ff 75 d8             	push   -0x28(%ebp)
4207cb:	57                   	push   %edi
4207cc:	53                   	push   %ebx
4207cd:	e8 68 b3 ff ff       	call   0x41bb3a
4207d2:	89 7e 68             	mov    %edi,0x68(%esi)
4207d5:	5f                   	pop    %edi
4207d6:	5e                   	pop    %esi
4207d7:	5b                   	pop    %ebx
4207d8:	c9                   	leave
4207d9:	c3                   	ret
4207da:	55                   	push   %ebp
4207db:	8b ec                	mov    %esp,%ebp
4207dd:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
4207e1:	56                   	push   %esi
4207e2:	57                   	push   %edi
4207e3:	8b f9                	mov    %ecx,%edi
4207e5:	74 0e                	je     0x4207f5
4207e7:	8b 4d 10             	mov    0x10(%ebp),%ecx
4207ea:	6a 00                	push   $0x0
4207ec:	e8 0a b7 ff ff       	call   0x41befb
4207f1:	85 c0                	test   %eax,%eax
4207f3:	75 23                	jne    0x420818
4207f5:	8b 37                	mov    (%edi),%esi
4207f7:	6a 00                	push   $0x0
4207f9:	8b cf                	mov    %edi,%ecx
4207fb:	ff 56 70             	call   *0x70(%esi)
4207fe:	39 45 10             	cmp    %eax,0x10(%ebp)
420801:	75 15                	jne    0x420818
420803:	0f b6 45 08          	movzbl 0x8(%ebp),%eax
420807:	6a 01                	push   $0x1
420809:	80 cc ff             	or     $0xff,%ah
42080c:	ff 75 0c             	push   0xc(%ebp)
42080f:	8b cf                	mov    %edi,%ecx
420811:	50                   	push   %eax
420812:	ff 96 c4 00 00 00    	call   *0xc4(%esi)
420818:	5f                   	pop    %edi
420819:	5e                   	pop    %esi
42081a:	5d                   	pop    %ebp
42081b:	c2 0c 00             	ret    $0xc
42081e:	55                   	push   %ebp
42081f:	8b ec                	mov    %esp,%ebp
420821:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
420825:	56                   	push   %esi
420826:	57                   	push   %edi
420827:	8b f9                	mov    %ecx,%edi
420829:	74 0e                	je     0x420839
42082b:	8b 4d 10             	mov    0x10(%ebp),%ecx
42082e:	6a 00                	push   $0x0
420830:	e8 c6 b6 ff ff       	call   0x41befb
420835:	85 c0                	test   %eax,%eax
420837:	75 26                	jne    0x42085f
420839:	8b 37                	mov    (%edi),%esi
42083b:	6a 01                	push   $0x1
42083d:	8b cf                	mov    %edi,%ecx
42083f:	ff 56 70             	call   *0x70(%esi)
420842:	39 45 10             	cmp    %eax,0x10(%ebp)
420845:	75 18                	jne    0x42085f
420847:	33 c0                	xor    %eax,%eax
420849:	6a 01                	push   $0x1
42084b:	8a 65 08             	mov    0x8(%ebp),%ah
42084e:	ff 75 0c             	push   0xc(%ebp)
420851:	0f b7 c0             	movzwl %ax,%eax
420854:	0c ff                	or     $0xff,%al
420856:	8b cf                	mov    %edi,%ecx
420858:	50                   	push   %eax
420859:	ff 96 c4 00 00 00    	call   *0xc4(%esi)
42085f:	5f                   	pop    %edi
420860:	5e                   	pop    %esi
420861:	5d                   	pop    %ebp
420862:	c2 0c 00             	ret    $0xc
420865:	55                   	push   %ebp
420866:	8b ec                	mov    %esp,%ebp
420868:	f6 45 08 0c          	testb  $0xc,0x8(%ebp)
42086c:	56                   	push   %esi
42086d:	8b f1                	mov    %ecx,%esi
42086f:	75 0c                	jne    0x42087d
420871:	6a 01                	push   $0x1
420873:	56                   	push   %esi
420874:	e8 64 02 00 00       	call   0x420add
420879:	85 c0                	test   %eax,%eax
42087b:	74 04                	je     0x420881
42087d:	33 c0                	xor    %eax,%eax
42087f:	eb 13                	jmp    0x420894
420881:	ff 75 14             	push   0x14(%ebp)
420884:	8b ce                	mov    %esi,%ecx
420886:	ff 75 10             	push   0x10(%ebp)
420889:	ff 75 0c             	push   0xc(%ebp)
42088c:	ff 75 08             	push   0x8(%ebp)
42088f:	e8 05 00 00 00       	call   0x420899
420894:	5e                   	pop    %esi
420895:	5d                   	pop    %ebp
420896:	c2 10 00             	ret    $0x10
420899:	55                   	push   %ebp
42089a:	8b ec                	mov    %esp,%ebp
42089c:	83 ec 0c             	sub    $0xc,%esp
42089f:	53                   	push   %ebx
4208a0:	56                   	push   %esi
4208a1:	57                   	push   %edi
4208a2:	8b f1                	mov    %ecx,%esi
4208a4:	e8 2f ce ff ff       	call   0x41d6d8
4208a9:	8b 3e                	mov    (%esi),%edi
4208ab:	6a 01                	push   $0x1
4208ad:	8b ce                	mov    %esi,%ecx
4208af:	89 45 f8             	mov    %eax,-0x8(%ebp)
4208b2:	8b 5f 70             	mov    0x70(%edi),%ebx
4208b5:	ff d3                	call   *%ebx
4208b7:	85 c0                	test   %eax,%eax
4208b9:	74 0b                	je     0x4208c6
4208bb:	8b c8                	mov    %eax,%ecx
4208bd:	e8 4f cf ff ff       	call   0x41d811
4208c2:	85 c0                	test   %eax,%eax
4208c4:	75 0c                	jne    0x4208d2
4208c6:	f6 45 fa 20          	testb  $0x20,-0x6(%ebp)
4208ca:	75 06                	jne    0x4208d2
4208cc:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4208d0:	eb 07                	jmp    0x4208d9
4208d2:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4208d9:	6a 00                	push   $0x0
4208db:	8b ce                	mov    %esi,%ecx
4208dd:	ff d3                	call   *%ebx
4208df:	33 db                	xor    %ebx,%ebx
4208e1:	3b c3                	cmp    %ebx,%eax
4208e3:	74 0b                	je     0x4208f0
4208e5:	8b c8                	mov    %eax,%ecx
4208e7:	e8 25 cf ff ff       	call   0x41d811
4208ec:	85 c0                	test   %eax,%eax
4208ee:	75 09                	jne    0x4208f9
4208f0:	f6 45 fa 10          	testb  $0x10,-0x6(%ebp)
4208f4:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4208f7:	74 07                	je     0x420900
4208f9:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
420900:	39 5d fc             	cmp    %ebx,-0x4(%ebp)
420903:	75 0c                	jne    0x420911
420905:	39 5d f8             	cmp    %ebx,-0x8(%ebp)
420908:	75 07                	jne    0x420911
42090a:	33 c0                	xor    %eax,%eax
42090c:	e9 a5 00 00 00       	jmp    0x4209b6
420911:	6a 00                	push   $0x0
420913:	e8 cc f8 ff ff       	call   0x4201e4
420918:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
42091c:	59                   	pop    %ecx
42091d:	89 45 f4             	mov    %eax,-0xc(%ebp)
420920:	74 40                	je     0x420962
420922:	6a 78                	push   $0x78
420924:	50                   	push   %eax
420925:	0f bf 45 0c          	movswl 0xc(%ebp),%eax
420929:	f7 d8                	neg    %eax
42092b:	50                   	push   %eax
42092c:	ff 15 14 97 43 00    	call   *0x439714
420932:	83 f8 ff             	cmp    $0xffffffff,%eax
420935:	74 17                	je     0x42094e
420937:	83 7d f4 ff          	cmpl   $0xffffffff,-0xc(%ebp)
42093b:	74 11                	je     0x42094e
42093d:	8b 4e 60             	mov    0x60(%esi),%ecx
420940:	0f af c8             	imul   %eax,%ecx
420943:	8b 46 58             	mov    0x58(%esi),%eax
420946:	3b c8                	cmp    %eax,%ecx
420948:	7c 10                	jl     0x42095a
42094a:	8b c8                	mov    %eax,%ecx
42094c:	eb 0c                	jmp    0x42095a
42094e:	66 83 7d 0c 00       	cmpw   $0x0,0xc(%ebp)
420953:	8b 4e 58             	mov    0x58(%esi),%ecx
420956:	7e 02                	jle    0x42095a
420958:	f7 d9                	neg    %ecx
42095a:	33 c0                	xor    %eax,%eax
42095c:	6a 01                	push   $0x1
42095e:	51                   	push   %ecx
42095f:	50                   	push   %eax
420960:	eb 3b                	jmp    0x42099d
420962:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
420966:	74 3f                	je     0x4209a7
420968:	6a 78                	push   $0x78
42096a:	50                   	push   %eax
42096b:	0f bf 45 0c          	movswl 0xc(%ebp),%eax
42096f:	f7 d8                	neg    %eax
420971:	50                   	push   %eax
420972:	ff 15 14 97 43 00    	call   *0x439714
420978:	83 f8 ff             	cmp    $0xffffffff,%eax
42097b:	74 17                	je     0x420994
42097d:	83 7d f4 ff          	cmpl   $0xffffffff,-0xc(%ebp)
420981:	74 11                	je     0x420994
420983:	8b 4e 5c             	mov    0x5c(%esi),%ecx
420986:	0f af c8             	imul   %eax,%ecx
420989:	8b 46 54             	mov    0x54(%esi),%eax
42098c:	3b c8                	cmp    %eax,%ecx
42098e:	7c 07                	jl     0x420997
420990:	8b c8                	mov    %eax,%ecx
420992:	eb 03                	jmp    0x420997
420994:	8b 4e 54             	mov    0x54(%esi),%ecx
420997:	33 c0                	xor    %eax,%eax
420999:	6a 01                	push   $0x1
42099b:	50                   	push   %eax
42099c:	51                   	push   %ecx
42099d:	8b ce                	mov    %esi,%ecx
42099f:	ff 97 c8 00 00 00    	call   *0xc8(%edi)
4209a5:	8b d8                	mov    %eax,%ebx
4209a7:	85 db                	test   %ebx,%ebx
4209a9:	74 09                	je     0x4209b4
4209ab:	ff 76 1c             	push   0x1c(%esi)
4209ae:	ff 15 3c 99 43 00    	call   *0x43993c
4209b4:	8b c3                	mov    %ebx,%eax
4209b6:	5f                   	pop    %edi
4209b7:	5e                   	pop    %esi
4209b8:	5b                   	pop    %ebx
4209b9:	c9                   	leave
4209ba:	c2 10 00             	ret    $0x10
4209bd:	56                   	push   %esi
4209be:	8b f1                	mov    %ecx,%esi
4209c0:	e8 50 98 ff ff       	call   0x41a215
4209c5:	83 f8 ff             	cmp    $0xffffffff,%eax
4209c8:	75 04                	jne    0x4209ce
4209ca:	0b c0                	or     %eax,%eax
4209cc:	eb 1b                	jmp    0x4209e9
4209ce:	8b 44 24 08          	mov    0x8(%esp),%eax
4209d2:	8b 00                	mov    (%eax),%eax
4209d4:	85 c0                	test   %eax,%eax
4209d6:	74 0f                	je     0x4209e7
4209d8:	8b 40 04             	mov    0x4(%eax),%eax
4209db:	85 c0                	test   %eax,%eax
4209dd:	74 08                	je     0x4209e7
4209df:	56                   	push   %esi
4209e0:	8b c8                	mov    %eax,%ecx
4209e2:	e8 35 02 00 00       	call   0x420c1c
4209e7:	33 c0                	xor    %eax,%eax
4209e9:	5e                   	pop    %esi
4209ea:	c2 04 00             	ret    $0x4
4209ed:	56                   	push   %esi
4209ee:	57                   	push   %edi
4209ef:	8b f9                	mov    %ecx,%edi
4209f1:	e8 58 ae ff ff       	call   0x41b84e
4209f6:	8b f0                	mov    %eax,%esi
4209f8:	85 f6                	test   %esi,%esi