4395be:	e8 5b d3 ff ff       	call   0x43691e
4395c3:	59                   	pop    %ecx
4395c4:	59                   	pop    %ecx
4395c5:	8b c7                	mov    %edi,%eax
4395c7:	5e                   	pop    %esi
4395c8:	5f                   	pop    %edi
4395c9:	c9                   	leave
4395ca:	c3                   	ret
4395cb:	8b ff                	mov    %edi,%edi
4395cd:	55                   	push   %ebp
4395ce:	8b ec                	mov    %esp,%ebp
4395d0:	ff 75 14             	push   0x14(%ebp)
4395d3:	6a 00                	push   $0x0
4395d5:	ff 75 10             	push   0x10(%ebp)
4395d8:	ff 75 0c             	push   0xc(%ebp)
4395db:	ff 75 08             	push   0x8(%ebp)
4395de:	e8 3c ff ff ff       	call   0x43951f
4395e3:	83 c4 14             	add    $0x14,%esp
4395e6:	5d                   	pop    %ebp
4395e7:	c3                   	ret
4395e8:	8b ff                	mov    %edi,%edi
4395ea:	55                   	push   %ebp
4395eb:	8b ec                	mov    %esp,%ebp
4395ed:	b8 e4 1a 00 00       	mov    $0x1ae4,%eax
4395f2:	e8 99 78 ff ff       	call   0x430e90
4395f7:	a1 a8 f6 46 00       	mov    0x46f6a8,%eax
4395fc:	33 c5                	xor    %ebp,%eax
4395fe:	89 45 fc             	mov    %eax,-0x4(%ebp)
439601:	8b 45 0c             	mov    0xc(%ebp),%eax
439604:	56                   	push   %esi
439605:	8b 75 08             	mov    0x8(%ebp),%esi
439608:	57                   	push   %edi
439609:	33 ff                	xor    %edi,%edi
43960b:	89 85 34 e5 ff ff    	mov    %eax,-0x1acc(%ebp)
439611:	89 bd 38 e5 ff ff    	mov    %edi,-0x1ac8(%ebp)
439617:	89 bd 30 e5 ff ff    	mov    %edi,-0x1ad0(%ebp)
43961d:	39 7d 10             	cmp    %edi,0x10(%ebp)
439620:	75 07                	jne    0x439629
439622:	33 c0                	xor    %eax,%eax
439624:	e9 ae 06 00 00       	jmp    0x439cd7
439629:	3b c7                	cmp    %edi,%eax
43962b:	75 1f                	jne    0x43964c
43962d:	e8 89 b3 ff ff       	call   0x4349bb
439632:	89 38                	mov    %edi,(%eax)
439634:	e8 6f b3 ff ff       	call   0x4349a8
439639:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
43963f:	e8 2a ad ff ff       	call   0x43436e
439644:	83 c8 ff             	or     $0xffffffff,%eax
439647:	e9 8b 06 00 00       	jmp    0x439cd7
43964c:	8b c6                	mov    %esi,%eax
43964e:	c1 f8 05             	sar    $0x5,%eax
439651:	8b fe                	mov    %esi,%edi
439653:	53                   	push   %ebx
439654:	8d 1c 85 80 17 47 00 	lea    0x471780(,%eax,4),%ebx
43965b:	8b 03                	mov    (%ebx),%eax
43965d:	83 e7 1f             	and    $0x1f,%edi
439660:	c1 e7 06             	shl    $0x6,%edi
439663:	8a 4c 38 24          	mov    0x24(%eax,%edi,1),%cl
439667:	02 c9                	add    %cl,%cl
439669:	d0 f9                	sar    $1,%cl
43966b:	89 9d 24 e5 ff ff    	mov    %ebx,-0x1adc(%ebp)
439671:	88 8d 3f e5 ff ff    	mov    %cl,-0x1ac1(%ebp)
439677:	80 f9 02             	cmp    $0x2,%cl
43967a:	74 05                	je     0x439681
43967c:	80 f9 01             	cmp    $0x1,%cl
43967f:	75 27                	jne    0x4396a8
439681:	8b 4d 10             	mov    0x10(%ebp),%ecx
439684:	f7 d1                	not    %ecx
439686:	f6 c1 01             	test   $0x1,%cl
439689:	75 1d                	jne    0x4396a8
43968b:	e8 2b b3 ff ff       	call   0x4349bb
439690:	83 20 00             	andl   $0x0,(%eax)
439693:	e8 10 b3 ff ff       	call   0x4349a8
439698:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
43969e:	e8 cb ac ff ff       	call   0x43436e
4396a3:	e9 1d 06 00 00       	jmp    0x439cc5
4396a8:	f6 44 38 04 20       	testb  $0x20,0x4(%eax,%edi,1)
4396ad:	74 0f                	je     0x4396be
4396af:	6a 02                	push   $0x2
4396b1:	6a 00                	push   $0x0
4396b3:	6a 00                	push   $0x0
4396b5:	56                   	push   %esi
4396b6:	e8 f3 12 00 00       	call   0x43a9ae
4396bb:	83 c4 10             	add    $0x10,%esp
4396be:	56                   	push   %esi
4396bf:	e8 9a 56 00 00       	call   0x43ed5e
4396c4:	59                   	pop    %ecx
4396c5:	85 c0                	test   %eax,%eax
4396c7:	0f 84 99 02 00 00    	je     0x439966
4396cd:	8b 03                	mov    (%ebx),%eax
4396cf:	f6 44 07 04 80       	testb  $0x80,0x4(%edi,%eax,1)
4396d4:	0f 84 8c 02 00 00    	je     0x439966
4396da:	e8 49 af ff ff       	call   0x434628
4396df:	8b 40 6c             	mov    0x6c(%eax),%eax
4396e2:	33 c9                	xor    %ecx,%ecx
4396e4:	39 48 14             	cmp    %ecx,0x14(%eax)
4396e7:	8d 85 20 e5 ff ff    	lea    -0x1ae0(%ebp),%eax
4396ed:	0f 94 c1             	sete   %cl
4396f0:	50                   	push   %eax
4396f1:	8b 03                	mov    (%ebx),%eax
4396f3:	ff 34 07             	push   (%edi,%eax,1)
4396f6:	8b f1                	mov    %ecx,%esi
4396f8:	ff 15 a0 35 47 00    	call   *0x4735a0
4396fe:	33 c9                	xor    %ecx,%ecx
439700:	3b c1                	cmp    %ecx,%eax
439702:	0f 84 60 02 00 00    	je     0x439968
439708:	3b f1                	cmp    %ecx,%esi
43970a:	74 0c                	je     0x439718
43970c:	38 8d 3f e5 ff ff    	cmp    %cl,-0x1ac1(%ebp)
439712:	0f 84 50 02 00 00    	je     0x439968
439718:	ff 15 9c 35 47 00    	call   *0x47359c
43971e:	8b 9d 34 e5 ff ff    	mov    -0x1acc(%ebp),%ebx
439724:	89 85 20 e5 ff ff    	mov    %eax,-0x1ae0(%ebp)
43972a:	33 c0                	xor    %eax,%eax
43972c:	89 85 2c e5 ff ff    	mov    %eax,-0x1ad4(%ebp)
439732:	39 45 10             	cmp    %eax,0x10(%ebp)
439735:	0f 86 23 05 00 00    	jbe    0x439c5e
43973b:	89 85 40 e5 ff ff    	mov    %eax,-0x1ac0(%ebp)
439741:	8a 85 3f e5 ff ff    	mov    -0x1ac1(%ebp),%al
439747:	84 c0                	test   %al,%al
439749:	0f 85 67 01 00 00    	jne    0x4398b6
43974f:	8a 0b                	mov    (%ebx),%cl
439751:	8b b5 24 e5 ff ff    	mov    -0x1adc(%ebp),%esi
439757:	33 c0                	xor    %eax,%eax
439759:	80 f9 0a             	cmp    $0xa,%cl
43975c:	0f 94 c0             	sete   %al
43975f:	89 85 1c e5 ff ff    	mov    %eax,-0x1ae4(%ebp)
439765:	8b 06                	mov    (%esi),%eax
439767:	03 c7                	add    %edi,%eax
439769:	83 78 38 00          	cmpl   $0x0,0x38(%eax)
43976d:	74 15                	je     0x439784
43976f:	8a 50 34             	mov    0x34(%eax),%dl
439772:	88 55 f4             	mov    %dl,-0xc(%ebp)
439775:	88 4d f5             	mov    %cl,-0xb(%ebp)
439778:	83 60 38 00          	andl   $0x0,0x38(%eax)
43977c:	6a 02                	push   $0x2
43977e:	8d 45 f4             	lea    -0xc(%ebp),%eax
439781:	50                   	push   %eax
439782:	eb 4b                	jmp    0x4397cf
439784:	0f be c1             	movsbl %cl,%eax
439787:	50                   	push   %eax
439788:	e8 54 58 00 00       	call   0x43efe1
43978d:	59                   	pop    %ecx
43978e:	85 c0                	test   %eax,%eax
439790:	74 3a                	je     0x4397cc
439792:	8b 8d 34 e5 ff ff    	mov    -0x1acc(%ebp),%ecx
439798:	2b cb                	sub    %ebx,%ecx
43979a:	03 4d 10             	add    0x10(%ebp),%ecx
43979d:	33 c0                	xor    %eax,%eax
43979f:	40                   	inc    %eax
4397a0:	3b c8                	cmp    %eax,%ecx
4397a2:	0f 86 a5 01 00 00    	jbe    0x43994d
4397a8:	6a 02                	push   $0x2
4397aa:	8d 85 44 e5 ff ff    	lea    -0x1abc(%ebp),%eax
4397b0:	53                   	push   %ebx
4397b1:	50                   	push   %eax
4397b2:	e8 23 83 00 00       	call   0x441ada
4397b7:	83 c4 0c             	add    $0xc,%esp
4397ba:	83 f8 ff             	cmp    $0xffffffff,%eax
4397bd:	0f 84 92 04 00 00    	je     0x439c55
4397c3:	43                   	inc    %ebx
4397c4:	ff 85 40 e5 ff ff    	incl   -0x1ac0(%ebp)
4397ca:	eb 1b                	jmp    0x4397e7
4397cc:	6a 01                	push   $0x1
4397ce:	53                   	push   %ebx
4397cf:	8d 85 44 e5 ff ff    	lea    -0x1abc(%ebp),%eax
4397d5:	50                   	push   %eax
4397d6:	e8 ff 82 00 00       	call   0x441ada
4397db:	83 c4 0c             	add    $0xc,%esp
4397de:	83 f8 ff             	cmp    $0xffffffff,%eax
4397e1:	0f 84 6e 04 00 00    	je     0x439c55
4397e7:	33 c0                	xor    %eax,%eax
4397e9:	50                   	push   %eax
4397ea:	50                   	push   %eax
4397eb:	6a 05                	push   $0x5
4397ed:	8d 4d f4             	lea    -0xc(%ebp),%ecx
4397f0:	51                   	push   %ecx
4397f1:	6a 01                	push   $0x1
4397f3:	8d 8d 44 e5 ff ff    	lea    -0x1abc(%ebp),%ecx
4397f9:	51                   	push   %ecx
4397fa:	50                   	push   %eax
4397fb:	ff b5 20 e5 ff ff    	push   -0x1ae0(%ebp)
439801:	43                   	inc    %ebx
439802:	ff 85 40 e5 ff ff    	incl   -0x1ac0(%ebp)
439808:	ff 15 68 35 47 00    	call   *0x473568
43980e:	8b f0                	mov    %eax,%esi
439810:	85 f6                	test   %esi,%esi
439812:	0f 84 3d 04 00 00    	je     0x439c55
439818:	6a 00                	push   $0x0
43981a:	8d 85 2c e5 ff ff    	lea    -0x1ad4(%ebp),%eax
439820:	50                   	push   %eax
439821:	56                   	push   %esi
439822:	8d 45 f4             	lea    -0xc(%ebp),%eax
439825:	50                   	push   %eax
439826:	8b 85 24 e5 ff ff    	mov    -0x1adc(%ebp),%eax
43982c:	8b 00                	mov    (%eax),%eax
43982e:	ff 34 07             	push   (%edi,%eax,1)
439831:	ff 15 48 35 47 00    	call   *0x473548
439837:	85 c0                	test   %eax,%eax
439839:	0f 84 0a 04 00 00    	je     0x439c49
43983f:	8b 85 40 e5 ff ff    	mov    -0x1ac0(%ebp),%eax
439845:	8b 8d 30 e5 ff ff    	mov    -0x1ad0(%ebp),%ecx
43984b:	03 c1                	add    %ecx,%eax
43984d:	89 85 38 e5 ff ff    	mov    %eax,-0x1ac8(%ebp)
439853:	39 b5 2c e5 ff ff    	cmp    %esi,-0x1ad4(%ebp)
439859:	0f 8c f6 03 00 00    	jl     0x439c55
43985f:	83 bd 1c e5 ff ff 00 	cmpl   $0x0,-0x1ae4(%ebp)
439866:	0f 84 cd 00 00 00    	je     0x439939
43986c:	6a 00                	push   $0x0
43986e:	8d 85 2c e5 ff ff    	lea    -0x1ad4(%ebp),%eax
439874:	50                   	push   %eax
439875:	6a 01                	push   $0x1
439877:	8d 45 f4             	lea    -0xc(%ebp),%eax
43987a:	50                   	push   %eax
43987b:	8b 85 24 e5 ff ff    	mov    -0x1adc(%ebp),%eax
439881:	8b 00                	mov    (%eax),%eax
439883:	c6 45 f4 0d          	movb   $0xd,-0xc(%ebp)
439887:	ff 34 07             	push   (%edi,%eax,1)
43988a:	ff 15 48 35 47 00    	call   *0x473548
439890:	85 c0                	test   %eax,%eax
439892:	0f 84 b1 03 00 00    	je     0x439c49
439898:	83 bd 2c e5 ff ff 01 	cmpl   $0x1,-0x1ad4(%ebp)
43989f:	0f 8c b0 03 00 00    	jl     0x439c55
4398a5:	ff 85 30 e5 ff ff    	incl   -0x1ad0(%ebp)
4398ab:	ff 85 38 e5 ff ff    	incl   -0x1ac8(%ebp)
4398b1:	e9 83 00 00 00       	jmp    0x439939
4398b6:	3c 01                	cmp    $0x1,%al
4398b8:	74 04                	je     0x4398be
4398ba:	3c 02                	cmp    $0x2,%al
4398bc:	75 21                	jne    0x4398df
4398be:	0f b7 33             	movzwl (%ebx),%esi
4398c1:	33 c9                	xor    %ecx,%ecx
4398c3:	83 fe 0a             	cmp    $0xa,%esi
4398c6:	0f 94 c1             	sete   %cl
4398c9:	83 c3 02             	add    $0x2,%ebx
4398cc:	83 85 40 e5 ff ff 02 	addl   $0x2,-0x1ac0(%ebp)
4398d3:	89 b5 44 e5 ff ff    	mov    %esi,-0x1abc(%ebp)
4398d9:	89 8d 1c e5 ff ff    	mov    %ecx,-0x1ae4(%ebp)
4398df:	3c 01                	cmp    $0x1,%al
4398e1:	74 04                	je     0x4398e7
4398e3:	3c 02                	cmp    $0x2,%al
4398e5:	75 52                	jne    0x439939
4398e7:	ff b5 44 e5 ff ff    	push   -0x1abc(%ebp)
4398ed:	e8 a0 9e 00 00       	call   0x443792
4398f2:	59                   	pop    %ecx
4398f3:	66 3b 85 44 e5 ff ff 	cmp    -0x1abc(%ebp),%ax
4398fa:	0f 85 49 03 00 00    	jne    0x439c49
439900:	83 85 38 e5 ff ff 02 	addl   $0x2,-0x1ac8(%ebp)
439907:	83 bd 1c e5 ff ff 00 	cmpl   $0x0,-0x1ae4(%ebp)
43990e:	74 29                	je     0x439939
439910:	6a 0d                	push   $0xd
439912:	58                   	pop    %eax
439913:	50                   	push   %eax
439914:	89 85 44 e5 ff ff    	mov    %eax,-0x1abc(%ebp)
43991a:	e8 73 9e 00 00       	call   0x443792
43991f:	59                   	pop    %ecx
439920:	66 3b 85 44 e5 ff ff 	cmp    -0x1abc(%ebp),%ax
439927:	0f 85 1c 03 00 00    	jne    0x439c49
43992d:	ff 85 38 e5 ff ff    	incl   -0x1ac8(%ebp)
439933:	ff 85 30 e5 ff ff    	incl   -0x1ad0(%ebp)
439939:	8b 45 10             	mov    0x10(%ebp),%eax
43993c:	39 85 40 e5 ff ff    	cmp    %eax,-0x1ac0(%ebp)
439942:	0f 82 f9 fd ff ff    	jb     0x439741
439948:	e9 08 03 00 00       	jmp    0x439c55
43994d:	8b 0e                	mov    (%esi),%ecx
43994f:	8a 13                	mov    (%ebx),%dl
439951:	ff 85 38 e5 ff ff    	incl   -0x1ac8(%ebp)
439957:	88 54 0f 34          	mov    %dl,0x34(%edi,%ecx,1)
43995b:	8b 0e                	mov    (%esi),%ecx
43995d:	89 44 0f 38          	mov    %eax,0x38(%edi,%ecx,1)
439961:	e9 ef 02 00 00       	jmp    0x439c55
439966:	33 c9                	xor    %ecx,%ecx
439968:	8b 03                	mov    (%ebx),%eax
43996a:	f6 44 38 04 80       	testb  $0x80,0x4(%eax,%edi,1)
43996f:	0f 84 a1 02 00 00    	je     0x439c16
439975:	80 bd 3f e5 ff ff 00 	cmpb   $0x0,-0x1ac1(%ebp)
43997c:	89 8d 44 e5 ff ff    	mov    %ecx,-0x1abc(%ebp)
439982:	0f 85 a8 00 00 00    	jne    0x439a30
439988:	8b 9d 34 e5 ff ff    	mov    -0x1acc(%ebp),%ebx
43998e:	39 4d 10             	cmp    %ecx,0x10(%ebp)
439991:	0f 86 fd 02 00 00    	jbe    0x439c94
439997:	8b cb                	mov    %ebx,%ecx
439999:	33 f6                	xor    %esi,%esi
43999b:	2b 8d 34 e5 ff ff    	sub    -0x1acc(%ebp),%ecx
4399a1:	8d 85 48 e5 ff ff    	lea    -0x1ab8(%ebp),%eax
4399a7:	3b 4d 10             	cmp    0x10(%ebp),%ecx
4399aa:	73 26                	jae    0x4399d2
4399ac:	8a 13                	mov    (%ebx),%dl
4399ae:	43                   	inc    %ebx
4399af:	41                   	inc    %ecx
4399b0:	89 9d 20 e5 ff ff    	mov    %ebx,-0x1ae0(%ebp)
4399b6:	80 fa 0a             	cmp    $0xa,%dl
4399b9:	75 0b                	jne    0x4399c6
4399bb:	ff 85 30 e5 ff ff    	incl   -0x1ad0(%ebp)
4399c1:	c6 00 0d             	movb   $0xd,(%eax)
4399c4:	40                   	inc    %eax
4399c5:	46                   	inc    %esi
4399c6:	88 10                	mov    %dl,(%eax)
4399c8:	40                   	inc    %eax
4399c9:	46                   	inc    %esi
4399ca:	81 fe ff 13 00 00    	cmp    $0x13ff,%esi
4399d0:	72 d5                	jb     0x4399a7
4399d2:	8b f0                	mov    %eax,%esi
4399d4:	8d 85 48 e5 ff ff    	lea    -0x1ab8(%ebp),%eax
4399da:	2b f0                	sub    %eax,%esi
4399dc:	6a 00                	push   $0x0
4399de:	8d 85 28 e5 ff ff    	lea    -0x1ad8(%ebp),%eax
4399e4:	50                   	push   %eax
4399e5:	56                   	push   %esi
4399e6:	8d 85 48 e5 ff ff    	lea    -0x1ab8(%ebp),%eax
4399ec:	50                   	push   %eax
4399ed:	8b 85 24 e5 ff ff    	mov    -0x1adc(%ebp),%eax
4399f3:	8b 00                	mov    (%eax),%eax
4399f5:	ff 34 07             	push   (%edi,%eax,1)
4399f8:	ff 15 48 35 47 00    	call   *0x473548
4399fe:	85 c0                	test   %eax,%eax
439a00:	0f 84 43 02 00 00    	je     0x439c49
439a06:	8b 85 28 e5 ff ff    	mov    -0x1ad8(%ebp),%eax
439a0c:	01 85 38 e5 ff ff    	add    %eax,-0x1ac8(%ebp)
439a12:	3b c6                	cmp    %esi,%eax
439a14:	0f 8c 3b 02 00 00    	jl     0x439c55
439a1a:	8b c3                	mov    %ebx,%eax
439a1c:	2b 85 34 e5 ff ff    	sub    -0x1acc(%ebp),%eax
439a22:	3b 45 10             	cmp    0x10(%ebp),%eax
439a25:	0f 82 6c ff ff ff    	jb     0x439997
439a2b:	e9 25 02 00 00       	jmp    0x439c55
439a30:	80 bd 3f e5 ff ff 02 	cmpb   $0x2,-0x1ac1(%ebp)
439a37:	0f 85 cd 00 00 00    	jne    0x439b0a
439a3d:	8b 9d 34 e5 ff ff    	mov    -0x1acc(%ebp),%ebx
439a43:	39 4d 10             	cmp    %ecx,0x10(%ebp)
439a46:	0f 86 48 02 00 00    	jbe    0x439c94
439a4c:	83 a5 40 e5 ff ff 00 	andl   $0x0,-0x1ac0(%ebp)
439a53:	8b cb                	mov    %ebx,%ecx
439a55:	2b 8d 34 e5 ff ff    	sub    -0x1acc(%ebp),%ecx
439a5b:	6a 02                	push   $0x2
439a5d:	8d 85 48 e5 ff ff    	lea    -0x1ab8(%ebp),%eax
439a63:	5e                   	pop    %esi
439a64:	3b 4d 10             	cmp    0x10(%ebp),%ecx
439a67:	73 43                	jae    0x439aac
439a69:	0f b7 13             	movzwl (%ebx),%edx
439a6c:	03 de                	add    %esi,%ebx
439a6e:	03 ce                	add    %esi,%ecx
439a70:	89 9d 20 e5 ff ff    	mov    %ebx,-0x1ae0(%ebp)
439a76:	83 fa 0a             	cmp    $0xa,%edx
439a79:	75 1a                	jne    0x439a95
439a7b:	01 b5 30 e5 ff ff    	add    %esi,-0x1ad0(%ebp)
439a81:	6a 0d                	push   $0xd
439a83:	5b                   	pop    %ebx
439a84:	66 89 18             	mov    %bx,(%eax)
439a87:	8b 9d 20 e5 ff ff    	mov    -0x1ae0(%ebp),%ebx