5646a2:	89 45 f0             	mov    %eax,-0x10(%ebp)
5646a5:	8d 04 75 02 00 00 00 	lea    0x2(,%esi,2),%eax
5646ac:	57                   	push   %edi
5646ad:	8d 7a 13             	lea    0x13(%edx),%edi
5646b0:	89 45 f4             	mov    %eax,-0xc(%ebp)
5646b3:	8b 45 18             	mov    0x18(%ebp),%eax
5646b6:	8b 08                	mov    (%eax),%ecx
5646b8:	8b 41 0c             	mov    0xc(%ecx),%eax
5646bb:	8b 40 14             	mov    0x14(%eax),%eax
5646be:	8b 74 38 04          	mov    0x4(%eax,%edi,1),%esi
5646c2:	8b 41 10             	mov    0x10(%ecx),%eax
5646c5:	f7 40 04 00 08 00 00 	testl  $0x800,0x4(%eax)
5646cc:	8b 40 14             	mov    0x14(%eax),%eax
5646cf:	74 03                	je     0x5646d4
5646d1:	8b 40 1c             	mov    0x1c(%eax),%eax
5646d4:	80 3e a4             	cmpb   $0xa4,(%esi)
5646d7:	8b 44 38 04          	mov    0x4(%eax,%edi,1),%eax
5646db:	89 45 f8             	mov    %eax,-0x8(%ebp)
5646de:	0f 85 e5 00 00 00    	jne    0x5647c9
5646e4:	8b 45 0c             	mov    0xc(%ebp),%eax
5646e7:	39 46 1c             	cmp    %eax,0x1c(%esi)
5646ea:	0f 85 d9 00 00 00    	jne    0x5647c9
5646f0:	8b 55 f4             	mov    -0xc(%ebp),%edx
5646f3:	8b 4b 04             	mov    0x4(%ebx),%ecx
5646f6:	66 8b 46 20          	mov    0x20(%esi),%ax
5646fa:	66 3b 04 0a          	cmp    (%edx,%ecx,1),%ax
5646fe:	8b 55 fc             	mov    -0x4(%ebp),%edx
564701:	0f 85 c2 00 00 00    	jne    0x5647c9
564707:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
56470a:	8b 5d 14             	mov    0x14(%ebp),%ebx
56470d:	8d 04 11             	lea    (%ecx,%edx,1),%eax
564710:	8a 04 18             	mov    (%eax,%ebx,1),%al
564713:	3a 04 19             	cmp    (%ecx,%ebx,1),%al
564716:	0f 85 ad 00 00 00    	jne    0x5647c9
56471c:	56                   	push   %esi
56471d:	e8 8e ee fb ff       	call   0x5235b0
564722:	ff 75 f8             	push   -0x8(%ebp)
564725:	8a d8                	mov    %al,%bl
564727:	e8 84 ee fb ff       	call   0x5235b0
56472c:	83 c4 08             	add    $0x8,%esp
56472f:	3c 40                	cmp    $0x40,%al
564731:	7e 1b                	jle    0x56474e
564733:	80 fb 40             	cmp    $0x40,%bl
564736:	7e 11                	jle    0x564749
564738:	3c 43                	cmp    $0x43,%al
56473a:	7d 09                	jge    0x564745
56473c:	80 fb 43             	cmp    $0x43,%bl
56473f:	7d 04                	jge    0x564745
564741:	b2 41                	mov    $0x41,%dl
564743:	eb 0f                	jmp    0x564754
564745:	b2 43                	mov    $0x43,%dl
564747:	eb 0b                	jmp    0x564754
564749:	0f be d0             	movsbl %al,%edx
56474c:	eb 03                	jmp    0x564751
56474e:	0f be d3             	movsbl %bl,%edx
564751:	80 ca 40             	or     $0x40,%dl
564754:	0f bf 4e 20          	movswl 0x20(%esi),%ecx
564758:	8b 5d 10             	mov    0x10(%ebp),%ebx
56475b:	85 c9                	test   %ecx,%ecx
56475d:	78 0f                	js     0x56476e
56475f:	8b 43 0c             	mov    0xc(%ebx),%eax
564762:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
564765:	8b 40 04             	mov    0x4(%eax),%eax
564768:	8a 44 88 0d          	mov    0xd(%eax,%ecx,4),%al
56476c:	eb 02                	jmp    0x564770
56476e:	b0 44                	mov    $0x44,%al
564770:	3a d0                	cmp    %al,%dl
564772:	75 52                	jne    0x5647c6
564774:	ff 75 f8             	push   -0x8(%ebp)
564777:	56                   	push   %esi
564778:	ff 75 08             	push   0x8(%ebp)
56477b:	e8 30 5b fb ff       	call   0x51a2b0
564780:	8b c8                	mov    %eax,%ecx
564782:	83 c4 0c             	add    $0xc,%esp
564785:	85 c9                	test   %ecx,%ecx
564787:	74 3d                	je     0x5647c6
564789:	8b 43 20             	mov    0x20(%ebx),%eax
56478c:	8b 75 f0             	mov    -0x10(%ebp),%esi
56478f:	ff 34 30             	push   (%eax,%esi,1)
564792:	ff 31                	push   (%ecx)
564794:	e8 97 94 fd ff       	call   0x53dc30
564799:	8b 55 fc             	mov    -0x4(%ebp),%edx
56479c:	83 c4 08             	add    $0x8,%esp
56479f:	85 c0                	test   %eax,%eax
5647a1:	75 26                	jne    0x5647c9
5647a3:	83 45 f4 02          	addl   $0x2,-0xc(%ebp)
5647a7:	42                   	inc    %edx
5647a8:	83 c6 04             	add    $0x4,%esi
5647ab:	89 55 fc             	mov    %edx,-0x4(%ebp)
5647ae:	83 c7 14             	add    $0x14,%edi
5647b1:	89 75 f0             	mov    %esi,-0x10(%ebp)
5647b4:	3b 55 ec             	cmp    -0x14(%ebp),%edx
5647b7:	0f 8c f6 fe ff ff    	jl     0x5646b3
5647bd:	5f                   	pop    %edi
5647be:	5e                   	pop    %esi
5647bf:	8b c2                	mov    %edx,%eax
5647c1:	5b                   	pop    %ebx
5647c2:	8b e5                	mov    %ebp,%esp
5647c4:	5d                   	pop    %ebp
5647c5:	c3                   	ret
5647c6:	8b 55 fc             	mov    -0x4(%ebp),%edx
5647c9:	5f                   	pop    %edi
5647ca:	5e                   	pop    %esi
5647cb:	8b c2                	mov    %edx,%eax
5647cd:	5b                   	pop    %ebx
5647ce:	8b e5                	mov    %ebp,%esp
5647d0:	5d                   	pop    %ebp
5647d1:	c3                   	ret
5647d2:	cc                   	int3
5647d3:	cc                   	int3
5647d4:	cc                   	int3
5647d5:	cc                   	int3
5647d6:	cc                   	int3
5647d7:	cc                   	int3
5647d8:	cc                   	int3
5647d9:	cc                   	int3
5647da:	cc                   	int3
5647db:	cc                   	int3
5647dc:	cc                   	int3
5647dd:	cc                   	int3
5647de:	cc                   	int3
5647df:	cc                   	int3
5647e0:	55                   	push   %ebp
5647e1:	8b ec                	mov    %esp,%ebp
5647e3:	8b 55 08             	mov    0x8(%ebp),%edx
5647e6:	8b 45 0c             	mov    0xc(%ebp),%eax
5647e9:	53                   	push   %ebx
5647ea:	56                   	push   %esi
5647eb:	89 02                	mov    %eax,(%edx)
5647ed:	89 42 04             	mov    %eax,0x4(%edx)
5647f0:	8b 45 18             	mov    0x18(%ebp),%eax
5647f3:	89 42 14             	mov    %eax,0x14(%edx)
5647f6:	8b 45 10             	mov    0x10(%ebp),%eax
5647f9:	57                   	push   %edi
5647fa:	8b 7d 1c             	mov    0x1c(%ebp),%edi
5647fd:	c7 42 0c 00 00 00 00 	movl   $0x0,0xc(%edx)
564804:	66 c7 42 10 00 01    	movw   $0x100,0x10(%edx)
56480a:	c7 42 08 00 00 00 00 	movl   $0x0,0x8(%edx)
564811:	c7 42 18 00 00 00 00 	movl   $0x0,0x18(%edx)
564818:	89 42 1c             	mov    %eax,0x1c(%edx)
56481b:	c6 42 12 01          	movb   $0x1,0x12(%edx)
56481f:	85 ff                	test   %edi,%edi
564821:	0f 84 88 00 00 00    	je     0x5648af
564827:	8b 5d 14             	mov    0x14(%ebp),%ebx
56482a:	8b 47 04             	mov    0x4(%edi),%eax
56482d:	0f bf 34 58          	movswl (%eax,%ebx,2),%esi
564831:	83 fe fe             	cmp    $0xfffffffe,%esi
564834:	75 2a                	jne    0x564860
564836:	8b 47 28             	mov    0x28(%edi),%eax
564839:	8d 0c 9b             	lea    (%ebx,%ebx,4),%ecx
56483c:	52                   	push   %edx
56483d:	8b 44 88 04          	mov    0x4(%eax,%ecx,4),%eax
564841:	89 42 0c             	mov    %eax,0xc(%edx)
564844:	8b 47 20             	mov    0x20(%edi),%eax
564847:	8b 04 98             	mov    (%eax,%ebx,4),%eax
56484a:	89 42 08             	mov    %eax,0x8(%edx)
56484d:	8b c6                	mov    %esi,%eax
56484f:	66 89 42 48          	mov    %ax,0x48(%edx)
564853:	e8 68 00 00 00       	call   0x5648c0
564858:	83 c4 04             	add    $0x4,%esp
56485b:	5f                   	pop    %edi
56485c:	5e                   	pop    %esi
56485d:	5b                   	pop    %ebx
56485e:	5d                   	pop    %ebp
56485f:	c3                   	ret
564860:	8b 47 0c             	mov    0xc(%edi),%eax
564863:	0f bf 40 28          	movswl 0x28(%eax),%eax
564867:	3b f0                	cmp    %eax,%esi
564869:	75 15                	jne    0x564880
56486b:	83 ce ff             	or     $0xffffffff,%esi
56486e:	52                   	push   %edx
56486f:	66 89 72 48          	mov    %si,0x48(%edx)
564873:	e8 68 00 00 00       	call   0x5648e0
564878:	83 c4 04             	add    $0x4,%esp
56487b:	5f                   	pop    %edi
56487c:	5e                   	pop    %esi
56487d:	5b                   	pop    %ebx
56487e:	5d                   	pop    %ebp
56487f:	c3                   	ret
564880:	85 f6                	test   %esi,%esi
564882:	78 ea                	js     0x56486e
564884:	8b 47 0c             	mov    0xc(%edi),%eax
564887:	8d 0c b6             	lea    (%esi,%esi,4),%ecx
56488a:	52                   	push   %edx
56488b:	8b 40 04             	mov    0x4(%eax),%eax
56488e:	8a 44 88 0d          	mov    0xd(%eax,%ecx,4),%al
564892:	88 42 10             	mov    %al,0x10(%edx)
564895:	8b 47 20             	mov    0x20(%edi),%eax
564898:	8b 04 98             	mov    (%eax,%ebx,4),%eax
56489b:	89 42 08             	mov    %eax,0x8(%edx)
56489e:	66 89 72 48          	mov    %si,0x48(%edx)
5648a2:	e8 39 00 00 00       	call   0x5648e0
5648a7:	83 c4 04             	add    $0x4,%esp
5648aa:	5f                   	pop    %edi
5648ab:	5e                   	pop    %esi
5648ac:	5b                   	pop    %ebx
5648ad:	5d                   	pop    %ebp
5648ae:	c3                   	ret
5648af:	8b 75 14             	mov    0x14(%ebp),%esi
5648b2:	83 fe fe             	cmp    $0xfffffffe,%esi
5648b5:	75 b7                	jne    0x56486e
5648b7:	5f                   	pop    %edi
5648b8:	5e                   	pop    %esi
5648b9:	33 c0                	xor    %eax,%eax
5648bb:	5b                   	pop    %ebx
5648bc:	5d                   	pop    %ebp
5648bd:	c3                   	ret
5648be:	cc                   	int3
5648bf:	cc                   	int3
5648c0:	55                   	push   %ebp
5648c1:	8b ec                	mov    %esp,%ebp
5648c3:	56                   	push   %esi
5648c4:	8b 75 08             	mov    0x8(%ebp),%esi
5648c7:	ff 76 0c             	push   0xc(%esi)
5648ca:	e8 e1 ec fb ff       	call   0x5235b0
5648cf:	56                   	push   %esi
5648d0:	88 46 10             	mov    %al,0x10(%esi)
5648d3:	e8 08 00 00 00       	call   0x5648e0
5648d8:	83 c4 08             	add    $0x8,%esp
5648db:	5e                   	pop    %esi
5648dc:	5d                   	pop    %ebp
5648dd:	c3                   	ret
5648de:	cc                   	int3
5648df:	cc                   	int3
5648e0:	55                   	push   %ebp
5648e1:	8b ec                	mov    %esp,%ebp
5648e3:	83 ec 18             	sub    $0x18,%esp
5648e6:	53                   	push   %ebx
5648e7:	56                   	push   %esi
5648e8:	8b 75 08             	mov    0x8(%ebp),%esi
5648eb:	57                   	push   %edi
5648ec:	8b 4e 18             	mov    0x18(%esi),%ecx
5648ef:	8b 5e 04             	mov    0x4(%esi),%ebx
5648f2:	0f b6 46 12          	movzbl 0x12(%esi),%eax
5648f6:	89 5d fc             	mov    %ebx,-0x4(%ebp)
5648f9:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5648fc:	0f b7 54 46 46       	movzwl 0x46(%esi,%eax,2),%edx
564901:	8b 44 86 18          	mov    0x18(%esi,%eax,4),%eax
564905:	89 55 ec             	mov    %edx,-0x14(%ebp)
564908:	89 45 f4             	mov    %eax,-0xc(%ebp)
56490b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
564910:	8d 3c 49             	lea    (%ecx,%ecx,2),%edi
564913:	c1 e7 04             	shl    $0x4,%edi
564916:	03 7b 14             	add    0x14(%ebx),%edi
564919:	89 7d f0             	mov    %edi,-0x10(%ebp)
56491c:	3b 4b 0c             	cmp    0xc(%ebx),%ecx
56491f:	0f 8d 85 02 00 00    	jge    0x564baa
564925:	39 47 14             	cmp    %eax,0x14(%edi)
564928:	0f 85 66 02 00 00    	jne    0x564b94
56492e:	0f bf c2             	movswl %dx,%eax
564931:	39 47 1c             	cmp    %eax,0x1c(%edi)
564934:	0f 85 57 02 00 00    	jne    0x564b91
56493a:	66 83 fa fe          	cmp    $0xfffe,%dx
56493e:	75 7c                	jne    0x5649bc
564940:	8b 07                	mov    (%edi),%eax
564942:	8b 56 0c             	mov    0xc(%esi),%edx
564945:	8b 40 0c             	mov    0xc(%eax),%eax
564948:	85 d2                	test   %edx,%edx
56494a:	74 26                	je     0x564972
56494c:	0f 1f 40 00          	nopl   0x0(%eax)
564950:	8b 4a 04             	mov    0x4(%edx),%ecx
564953:	f7 c1 00 10 04 00    	test   $0x41000,%ecx
564959:	74 17                	je     0x564972
56495b:	f7 c1 00 00 04 00    	test   $0x40000,%ecx
564961:	74 08                	je     0x56496b
564963:	8b 4a 14             	mov    0x14(%edx),%ecx
564966:	8b 51 04             	mov    0x4(%ecx),%edx
564969:	eb 03                	jmp    0x56496e
56496b:	8b 52 0c             	mov    0xc(%edx),%edx
56496e:	85 d2                	test   %edx,%edx
564970:	75 de                	jne    0x564950
564972:	85 c0                	test   %eax,%eax
564974:	74 2c                	je     0x5649a2
564976:	66 66 0f 1f 84 00 00 	data16 nopw 0x0(%eax,%eax,1)
56497d:	00 00 00
564980:	8b 48 04             	mov    0x4(%eax),%ecx
564983:	f7 c1 00 10 04 00    	test   $0x41000,%ecx
564989:	74 17                	je     0x5649a2
56498b:	f7 c1 00 00 04 00    	test   $0x40000,%ecx
564991:	74 08                	je     0x56499b
564993:	8b 48 14             	mov    0x14(%eax),%ecx
564996:	8b 41 04             	mov    0x4(%ecx),%eax
564999:	eb 03                	jmp    0x56499e
56499b:	8b 40 0c             	mov    0xc(%eax),%eax
56499e:	85 c0                	test   %eax,%eax
5649a0:	75 de                	jne    0x564980
5649a2:	ff 75 f4             	push   -0xc(%ebp)
5649a5:	52                   	push   %edx
5649a6:	50                   	push   %eax
5649a7:	6a 00                	push   $0x0
5649a9:	e8 22 1b fc ff       	call   0x5264d0
5649ae:	8b 4d f8             	mov    -0x8(%ebp),%ecx
5649b1:	83 c4 10             	add    $0x10,%esp
5649b4:	85 c0                	test   %eax,%eax
5649b6:	0f 85 d5 01 00 00    	jne    0x564b91
5649bc:	80 7e 12 01          	cmpb   $0x1,0x12(%esi)
5649c0:	76 0c                	jbe    0x5649ce
5649c2:	8b 07                	mov    (%edi),%eax
5649c4:	f6 40 04 01          	testb  $0x1,0x4(%eax)
5649c8:	0f 85 c3 01 00 00    	jne    0x564b91
5649ce:	b8 00 08 00 00       	mov    $0x800,%eax
5649d3:	66 85 47 0c          	test   %ax,0xc(%edi)
5649d7:	0f 84 93 00 00 00    	je     0x564a70
5649dd:	8a 5e 11             	mov    0x11(%esi),%bl
5649e0:	80 fb 0b             	cmp    $0xb,%bl
5649e3:	0f 83 84 00 00 00    	jae    0x564a6d
5649e9:	8b 07                	mov    (%edi),%eax
5649eb:	8b 48 10             	mov    0x10(%eax),%ecx
5649ee:	85 c9                	test   %ecx,%ecx
5649f0:	74 20                	je     0x564a12
5649f2:	8b 41 04             	mov    0x4(%ecx),%eax
5649f5:	a9 00 10 04 00       	test   $0x41000,%eax
5649fa:	74 16                	je     0x564a12
5649fc:	a9 00 00 04 00       	test   $0x40000,%eax
564a01:	74 08                	je     0x564a0b
564a03:	8b 41 14             	mov    0x14(%ecx),%eax
564a06:	8b 48 04             	mov    0x4(%eax),%ecx
564a09:	eb 03                	jmp    0x564a0e
564a0b:	8b 49 0c             	mov    0xc(%ecx),%ecx
564a0e:	85 c9                	test   %ecx,%ecx
564a10:	75 e0                	jne    0x5649f2
564a12:	80 39 a4             	cmpb   $0xa4,(%ecx)
564a15:	75 56                	jne    0x564a6d
564a17:	0f b6 db             	movzbl %bl,%ebx
564a1a:	33 d2                	xor    %edx,%edx
564a1c:	85 db                	test   %ebx,%ebx
564a1e:	74 31                	je     0x564a51
564a20:	8b 41 1c             	mov    0x1c(%ecx),%eax
564a23:	8d 7e 48             	lea    0x48(%esi),%edi
564a26:	83 c6 1c             	add    $0x1c,%esi
564a29:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
564a30:	39 06                	cmp    %eax,(%esi)
564a32:	75 0c                	jne    0x564a40
564a34:	66 8b 07             	mov    (%edi),%ax
564a37:	66 3b 41 20          	cmp    0x20(%ecx),%ax
564a3b:	74 0e                	je     0x564a4b
564a3d:	8b 41 1c             	mov    0x1c(%ecx),%eax
564a40:	42                   	inc    %edx
564a41:	83 c6 04             	add    $0x4,%esi
564a44:	83 c7 02             	add    $0x2,%edi
564a47:	3b d3                	cmp    %ebx,%edx
564a49:	7c e5                	jl     0x564a30
564a4b:	8b 7d f0             	mov    -0x10(%ebp),%edi
564a4e:	8b 75 08             	mov    0x8(%ebp),%esi
564a51:	3b d3                	cmp    %ebx,%edx
564a53:	8b 5d fc             	mov    -0x4(%ebp),%ebx
564a56:	75 18                	jne    0x564a70
564a58:	8b 41 1c             	mov    0x1c(%ecx),%eax
564a5b:	89 44 96 1c          	mov    %eax,0x1c(%esi,%edx,4)
564a5f:	66 8b 41 20          	mov    0x20(%ecx),%ax