437619:	03 fa                	add    %edx,%edi
43761b:	83 c6 02             	add    $0x2,%esi
43761e:	83 eb 01             	sub    $0x1,%ebx
437621:	75 95                	jne    0x4375b8
437623:	8b 5d 0c             	mov    0xc(%ebp),%ebx
437626:	2b 75 08             	sub    0x8(%ebp),%esi
437629:	d1 fe                	sar    $1,%esi
43762b:	89 3b                	mov    %edi,(%ebx)
43762d:	8b c6                	mov    %esi,%eax
43762f:	eb 67                	jmp    0x437698
437631:	33 ff                	xor    %edi,%edi
437633:	33 c0                	xor    %eax,%eax
437635:	66 89 06             	mov    %ax,(%esi)
437638:	eb e9                	jmp    0x437623
43763a:	8b 45 0c             	mov    0xc(%ebp),%eax
43763d:	89 38                	mov    %edi,(%eax)
43763f:	8b 45 18             	mov    0x18(%ebp),%eax
437642:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
437646:	c7 40 18 2a 00 00 00 	movl   $0x2a,0x18(%eax)
43764d:	83 c8 ff             	or     $0xffffffff,%eax
437650:	eb 46                	jmp    0x437698
437652:	57                   	push   %edi
437653:	8d 4d ff             	lea    -0x1(%ebp),%ecx
437656:	33 f6                	xor    %esi,%esi
437658:	e8 c9 fe ff ff       	call   0x437526
43765d:	8b 5d 18             	mov    0x18(%ebp),%ebx
437660:	eb 16                	jmp    0x437678
437662:	85 c0                	test   %eax,%eax
437664:	74 c7                	je     0x43762d
437666:	83 f8 04             	cmp    $0x4,%eax
437669:	75 01                	jne    0x43766c
43766b:	46                   	inc    %esi
43766c:	03 f8                	add    %eax,%edi
43766e:	8d 4d ff             	lea    -0x1(%ebp),%ecx
437671:	57                   	push   %edi
437672:	46                   	inc    %esi
437673:	e8 ae fe ff ff       	call   0x437526
437678:	53                   	push   %ebx
437679:	ff 75 14             	push   0x14(%ebp)
43767c:	50                   	push   %eax
43767d:	57                   	push   %edi
43767e:	6a 00                	push   $0x0
437680:	e8 9e 20 00 00       	call   0x439723
437685:	83 c4 14             	add    $0x14,%esp
437688:	83 f8 ff             	cmp    $0xffffffff,%eax
43768b:	75 d5                	jne    0x437662
43768d:	c6 43 1c 01          	movb   $0x1,0x1c(%ebx)
437691:	c7 43 18 2a 00 00 00 	movl   $0x2a,0x18(%ebx)
437698:	5f                   	pop    %edi
437699:	5e                   	pop    %esi
43769a:	5b                   	pop    %ebx
43769b:	c9                   	leave
43769c:	c3                   	ret
43769d:	8b ff                	mov    %edi,%edi
43769f:	55                   	push   %ebp
4376a0:	8b ec                	mov    %esp,%ebp
4376a2:	8b 4d 08             	mov    0x8(%ebp),%ecx
4376a5:	83 f9 fe             	cmp    $0xfffffffe,%ecx
4376a8:	75 0d                	jne    0x4376b7
4376aa:	e8 81 c3 fe ff       	call   0x423a30
4376af:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
4376b5:	eb 38                	jmp    0x4376ef
4376b7:	85 c9                	test   %ecx,%ecx
4376b9:	78 24                	js     0x4376df
4376bb:	3b 0d c0 6f 45 00    	cmp    0x456fc0,%ecx
4376c1:	73 1c                	jae    0x4376df
4376c3:	8b c1                	mov    %ecx,%eax
4376c5:	83 e1 3f             	and    $0x3f,%ecx
4376c8:	c1 e8 06             	shr    $0x6,%eax
4376cb:	6b c9 38             	imul   $0x38,%ecx,%ecx
4376ce:	8b 04 85 c0 6d 45 00 	mov    0x456dc0(,%eax,4),%eax
4376d5:	0f b6 44 08 28       	movzbl 0x28(%eax,%ecx,1),%eax
4376da:	83 e0 40             	and    $0x40,%eax
4376dd:	5d                   	pop    %ebp
4376de:	c3                   	ret
4376df:	e8 4c c3 fe ff       	call   0x423a30
4376e4:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
4376ea:	e8 94 82 fe ff       	call   0x41f983
4376ef:	33 c0                	xor    %eax,%eax
4376f1:	5d                   	pop    %ebp
4376f2:	c3                   	ret
4376f3:	6a 10                	push   $0x10
4376f5:	68 50 34 45 00       	push   $0x453450
4376fa:	e8 11 32 fe ff       	call   0x41a910
4376ff:	8b 75 18             	mov    0x18(%ebp),%esi
437702:	85 f6                	test   %esi,%esi
437704:	75 13                	jne    0x437719
437706:	e8 25 c3 fe ff       	call   0x423a30
43770b:	6a 16                	push   $0x16
43770d:	5e                   	pop    %esi
43770e:	89 30                	mov    %esi,(%eax)
437710:	e8 6e 82 fe ff       	call   0x41f983
437715:	8b c6                	mov    %esi,%eax
437717:	eb 59                	jmp    0x437772
437719:	83 0e ff             	orl    $0xffffffff,(%esi)
43771c:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
437720:	74 e4                	je     0x437706
437722:	83 7d 1c 00          	cmpl   $0x0,0x1c(%ebp)
437726:	74 09                	je     0x437731
437728:	f7 45 14 7f fe ff ff 	testl  $0xfffffe7f,0x14(%ebp)
43772f:	75 d5                	jne    0x437706
437731:	33 c0                	xor    %eax,%eax
437733:	89 45 e0             	mov    %eax,-0x20(%ebp)
437736:	89 45 e4             	mov    %eax,-0x1c(%ebp)
437739:	89 45 fc             	mov    %eax,-0x4(%ebp)
43773c:	ff 75 1c             	push   0x1c(%ebp)
43773f:	ff 75 14             	push   0x14(%ebp)
437742:	ff 75 10             	push   0x10(%ebp)
437745:	ff 75 0c             	push   0xc(%ebp)
437748:	ff 75 08             	push   0x8(%ebp)
43774b:	56                   	push   %esi
43774c:	8d 45 e0             	lea    -0x20(%ebp),%eax
43774f:	50                   	push   %eax
437750:	e8 88 05 00 00       	call   0x437cdd
437755:	83 c4 1c             	add    $0x1c,%esp
437758:	8b f8                	mov    %eax,%edi
43775a:	89 7d e4             	mov    %edi,-0x1c(%ebp)
43775d:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
437764:	e8 1f 00 00 00       	call   0x437788
437769:	85 ff                	test   %edi,%edi
43776b:	74 03                	je     0x437770
43776d:	83 0e ff             	orl    $0xffffffff,(%esi)
437770:	8b c7                	mov    %edi,%eax
437772:	8b 4d f0             	mov    -0x10(%ebp),%ecx
437775:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
43777c:	59                   	pop    %ecx
43777d:	5f                   	pop    %edi
43777e:	5e                   	pop    %esi
43777f:	5b                   	pop    %ebx
437780:	c9                   	leave
437781:	c3                   	ret
437782:	8b 75 18             	mov    0x18(%ebp),%esi
437785:	8b 7d e4             	mov    -0x1c(%ebp),%edi
437788:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
43778c:	74 3f                	je     0x4377cd
43778e:	85 ff                	test   %edi,%edi
437790:	74 33                	je     0x4377c5
437792:	8b 16                	mov    (%esi),%edx
437794:	c1 fa 06             	sar    $0x6,%edx
437797:	8b 06                	mov    (%esi),%eax
437799:	83 e0 3f             	and    $0x3f,%eax
43779c:	6b c8 38             	imul   $0x38,%eax,%ecx
43779f:	8b 04 95 c0 6d 45 00 	mov    0x456dc0(,%edx,4),%eax
4377a6:	8a 5c 08 28          	mov    0x28(%eax,%ecx,1),%bl
4377aa:	80 e3 fe             	and    $0xfe,%bl
4377ad:	8b 16                	mov    (%esi),%edx
4377af:	c1 fa 06             	sar    $0x6,%edx
4377b2:	8b 06                	mov    (%esi),%eax
4377b4:	83 e0 3f             	and    $0x3f,%eax
4377b7:	6b c8 38             	imul   $0x38,%eax,%ecx
4377ba:	8b 04 95 c0 6d 45 00 	mov    0x456dc0(,%edx,4),%eax
4377c1:	88 5c 08 28          	mov    %bl,0x28(%eax,%ecx,1)
4377c5:	ff 36                	push   (%esi)
4377c7:	e8 ce b9 ff ff       	call   0x43319a
4377cc:	59                   	pop    %ecx
4377cd:	c3                   	ret
4377ce:	8b ff                	mov    %edi,%edi
4377d0:	55                   	push   %ebp
4377d1:	8b ec                	mov    %esp,%ebp
4377d3:	51                   	push   %ecx
4377d4:	51                   	push   %ecx
4377d5:	8b 45 08             	mov    0x8(%ebp),%eax
4377d8:	8b 55 08             	mov    0x8(%ebp),%edx
4377db:	83 e0 3f             	and    $0x3f,%eax
4377de:	53                   	push   %ebx
4377df:	56                   	push   %esi
4377e0:	57                   	push   %edi
4377e1:	8b 7d 28             	mov    0x28(%ebp),%edi
4377e4:	33 db                	xor    %ebx,%ebx
4377e6:	c1 fa 06             	sar    $0x6,%edx
4377e9:	6b c8 38             	imul   $0x38,%eax,%ecx
4377ec:	88 1f                	mov    %bl,(%edi)
4377ee:	8b 04 95 c0 6d 45 00 	mov    0x456dc0(,%edx,4),%eax
4377f5:	38 5c 08 28          	cmp    %bl,0x28(%eax,%ecx,1)
4377f9:	0f 8d 13 02 00 00    	jge    0x437a12
4377ff:	8b 75 24             	mov    0x24(%ebp),%esi
437802:	f7 c6 00 40 07 00    	test   $0x74000,%esi
437808:	75 25                	jne    0x43782f
43780a:	8d 45 fc             	lea    -0x4(%ebp),%eax
43780d:	89 5d fc             	mov    %ebx,-0x4(%ebp)
437810:	50                   	push   %eax
437811:	e8 25 0a ff ff       	call   0x42823b
437816:	59                   	pop    %ecx
437817:	85 c0                	test   %eax,%eax
437819:	0f 85 fa 01 00 00    	jne    0x437a19
43781f:	8b 45 fc             	mov    -0x4(%ebp),%eax
437822:	25 00 40 07 00       	and    $0x74000,%eax
437827:	75 49                	jne    0x437872
437829:	81 ce 00 40 00 00    	or     $0x4000,%esi
43782f:	8b c6                	mov    %esi,%eax
437831:	6a 02                	push   $0x2
437833:	25 00 40 07 00       	and    $0x74000,%eax
437838:	59                   	pop    %ecx
437839:	89 4d f8             	mov    %ecx,-0x8(%ebp)
43783c:	3d 00 40 00 00       	cmp    $0x4000,%eax
437841:	74 44                	je     0x437887
437843:	3d 00 00 01 00       	cmp    $0x10000,%eax
437848:	74 2c                	je     0x437876
43784a:	3d 00 40 01 00       	cmp    $0x14000,%eax
43784f:	74 25                	je     0x437876
437851:	3d 00 00 02 00       	cmp    $0x20000,%eax
437856:	74 2b                	je     0x437883
437858:	3d 00 40 02 00       	cmp    $0x24000,%eax
43785d:	74 24                	je     0x437883
43785f:	3d 00 00 04 00       	cmp    $0x40000,%eax
437864:	74 07                	je     0x43786d
437866:	3d 00 40 04 00       	cmp    $0x44000,%eax
43786b:	75 1c                	jne    0x437889
43786d:	c6 07 01             	movb   $0x1,(%edi)
437870:	eb 17                	jmp    0x437889
437872:	0b f0                	or     %eax,%esi
437874:	eb b9                	jmp    0x43782f
437876:	ba 01 03 00 00       	mov    $0x301,%edx
43787b:	8b c6                	mov    %esi,%eax
43787d:	23 c2                	and    %edx,%eax
43787f:	3b c2                	cmp    %edx,%eax
437881:	75 06                	jne    0x437889
437883:	88 0f                	mov    %cl,(%edi)
437885:	eb 02                	jmp    0x437889
437887:	88 1f                	mov    %bl,(%edi)
437889:	f7 c6 00 00 07 00    	test   $0x70000,%esi
43788f:	0f 84 7d 01 00 00    	je     0x437a12
437895:	f6 45 0c 40          	testb  $0x40,0xc(%ebp)
437899:	0f 85 73 01 00 00    	jne    0x437a12
43789f:	8b 45 10             	mov    0x10(%ebp),%eax
4378a2:	ba 00 00 00 c0       	mov    $0xc0000000,%edx
4378a7:	23 c2                	and    %edx,%eax
4378a9:	be 00 00 00 80       	mov    $0x80000000,%esi
4378ae:	3d 00 00 00 40       	cmp    $0x40000000,%eax
4378b3:	74 0c                	je     0x4378c1
4378b5:	3b c6                	cmp    %esi,%eax
4378b7:	74 75                	je     0x43792e
4378b9:	3b c2                	cmp    %edx,%eax
4378bb:	0f 85 51 01 00 00    	jne    0x437a12
4378c1:	8b 45 14             	mov    0x14(%ebp),%eax
4378c4:	83 e8 01             	sub    $0x1,%eax
4378c7:	0f 84 fa 00 00 00    	je     0x4379c7
4378cd:	83 e8 01             	sub    $0x1,%eax
4378d0:	0f 84 f1 00 00 00    	je     0x4379c7
4378d6:	83 e8 01             	sub    $0x1,%eax
4378d9:	74 13                	je     0x4378ee
4378db:	83 e8 01             	sub    $0x1,%eax
4378de:	74 0e                	je     0x4378ee
4378e0:	83 e8 01             	sub    $0x1,%eax
4378e3:	0f 84 de 00 00 00    	je     0x4379c7
4378e9:	e9 24 01 00 00       	jmp    0x437a12
4378ee:	51                   	push   %ecx
4378ef:	53                   	push   %ebx
4378f0:	53                   	push   %ebx
4378f1:	ff 75 08             	push   0x8(%ebp)
4378f4:	e8 17 6c ff ff       	call   0x42e510
4378f9:	83 c4 10             	add    $0x10,%esp
4378fc:	0b c2                	or     %edx,%eax
4378fe:	0f 84 c0 00 00 00    	je     0x4379c4
437904:	53                   	push   %ebx
437905:	53                   	push   %ebx
437906:	53                   	push   %ebx
437907:	ff 75 08             	push   0x8(%ebp)
43790a:	e8 01 6c ff ff       	call   0x42e510
43790f:	23 c2                	and    %edx,%eax
437911:	83 c4 10             	add    $0x10,%esp
437914:	83 f8 ff             	cmp    $0xffffffff,%eax
437917:	75 0c                	jne    0x437925
437919:	e8 12 c1 fe ff       	call   0x423a30
43791e:	8b 00                	mov    (%eax),%eax
437920:	e9 ef 00 00 00       	jmp    0x437a14
437925:	85 75 10             	test   %esi,0x10(%ebp)
437928:	0f 84 e4 00 00 00    	je     0x437a12
43792e:	6a 03                	push   $0x3
437930:	8d 45 fc             	lea    -0x4(%ebp),%eax
437933:	89 5d fc             	mov    %ebx,-0x4(%ebp)
437936:	50                   	push   %eax
437937:	ff 75 08             	push   0x8(%ebp)
43793a:	e8 c3 67 ff ff       	call   0x42e102
43793f:	8b c8                	mov    %eax,%ecx
437941:	83 c4 0c             	add    $0xc,%esp
437944:	85 c9                	test   %ecx,%ecx
437946:	7f 05                	jg     0x43794d
437948:	83 f9 ff             	cmp    $0xffffffff,%ecx
43794b:	74 cc                	je     0x437919
43794d:	8b 55 fc             	mov    -0x4(%ebp),%edx
437950:	6a 02                	push   $0x2
437952:	58                   	pop    %eax
437953:	3b c8                	cmp    %eax,%ecx
437955:	74 15                	je     0x43796c
437957:	83 f9 03             	cmp    $0x3,%ecx
43795a:	75 4e                	jne    0x4379aa
43795c:	81 fa ef bb bf 00    	cmp    $0xbfbbef,%edx
437962:	75 08                	jne    0x43796c
437964:	c6 07 01             	movb   $0x1,(%edi)
437967:	e9 a6 00 00 00       	jmp    0x437a12
43796c:	0f b7 ca             	movzwl %dx,%ecx
43796f:	81 f9 fe ff 00 00    	cmp    $0xfffe,%ecx
437975:	75 0d                	jne    0x437984
437977:	e8 b4 c0 fe ff       	call   0x423a30
43797c:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
437982:	eb 95                	jmp    0x437919
437984:	81 f9 ff fe 00 00    	cmp    $0xfeff,%ecx
43798a:	75 1e                	jne    0x4379aa
43798c:	53                   	push   %ebx
43798d:	53                   	push   %ebx
43798e:	50                   	push   %eax
43798f:	ff 75 08             	push   0x8(%ebp)
437992:	e8 79 6b ff ff       	call   0x42e510
437997:	23 c2                	and    %edx,%eax
437999:	83 c4 10             	add    $0x10,%esp
43799c:	83 f8 ff             	cmp    $0xffffffff,%eax
43799f:	0f 84 74 ff ff ff    	je     0x437919
4379a5:	c6 07 02             	movb   $0x2,(%edi)
4379a8:	eb 68                	jmp    0x437a12
4379aa:	53                   	push   %ebx
4379ab:	53                   	push   %ebx
4379ac:	53                   	push   %ebx
4379ad:	ff 75 08             	push   0x8(%ebp)
4379b0:	e8 5b 6b ff ff       	call   0x42e510
4379b5:	23 c2                	and    %edx,%eax
4379b7:	83 c4 10             	add    $0x10,%esp
4379ba:	83 f8 ff             	cmp    $0xffffffff,%eax
4379bd:	75 53                	jne    0x437a12
4379bf:	e9 55 ff ff ff       	jmp    0x437919
4379c4:	6a 02                	push   $0x2
4379c6:	59                   	pop    %ecx
4379c7:	0f be 07             	movsbl (%edi),%eax
4379ca:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4379cd:	83 e8 01             	sub    $0x1,%eax
4379d0:	74 0c                	je     0x4379de
4379d2:	83 e8 01             	sub    $0x1,%eax
4379d5:	75 3b                	jne    0x437a12
4379d7:	b8 ff fe 00 00       	mov    $0xfeff,%eax
4379dc:	eb 0b                	jmp    0x4379e9
4379de:	6a 03                	push   $0x3
4379e0:	59                   	pop    %ecx
4379e1:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4379e4:	b8 ef bb bf 00       	mov    $0xbfbbef,%eax
4379e9:	89 45 fc             	mov    %eax,-0x4(%ebp)
4379ec:	2b cb                	sub    %ebx,%ecx
4379ee:	8d 45 fc             	lea    -0x4(%ebp),%eax
4379f1:	51                   	push   %ecx
4379f2:	03 c3                	add    %ebx,%eax
4379f4:	50                   	push   %eax
4379f5:	ff 75 08             	push   0x8(%ebp)
4379f8:	e8 e7 4f ff ff       	call   0x42c9e4
4379fd:	83 c4 0c             	add    $0xc,%esp
437a00:	83 f8 ff             	cmp    $0xffffffff,%eax
437a03:	0f 84 10 ff ff ff    	je     0x437919
437a09:	8b 4d f8             	mov    -0x8(%ebp),%ecx
437a0c:	03 d8                	add    %eax,%ebx
437a0e:	3b cb                	cmp    %ebx,%ecx
437a10:	7f da                	jg     0x4379ec
437a12:	33 c0                	xor    %eax,%eax