51268a:	eb 16                	jmp    0x5126a2
51268c:	f6 c2 01             	test   $0x1,%dl
51268f:	74 04                	je     0x512695
512691:	33 f6                	xor    %esi,%esi
512693:	eb 0d                	jmp    0x5126a2
512695:	6a 01                	push   $0x1
512697:	51                   	push   %ecx
512698:	e8 f3 74 04 00       	call   0x559b90
51269d:	83 c4 08             	add    $0x8,%esp
5126a0:	8b f0                	mov    %eax,%esi
5126a2:	8b 4d 14             	mov    0x14(%ebp),%ecx
5126a5:	85 c9                	test   %ecx,%ecx
5126a7:	75 04                	jne    0x5126ad
5126a9:	33 c0                	xor    %eax,%eax
5126ab:	eb 2d                	jmp    0x5126da
5126ad:	0f b7 51 08          	movzwl 0x8(%ecx),%edx
5126b1:	8b c2                	mov    %edx,%eax
5126b3:	25 02 02 00 00       	and    $0x202,%eax
5126b8:	3d 02 02 00 00       	cmp    $0x202,%eax
5126bd:	75 0b                	jne    0x5126ca
5126bf:	80 79 0a 01          	cmpb   $0x1,0xa(%ecx)
5126c3:	75 05                	jne    0x5126ca
5126c5:	8b 41 10             	mov    0x10(%ecx),%eax
5126c8:	eb 10                	jmp    0x5126da
5126ca:	f6 c2 01             	test   $0x1,%dl
5126cd:	75 da                	jne    0x5126a9
5126cf:	6a 01                	push   $0x1
5126d1:	51                   	push   %ecx
5126d2:	e8 b9 74 04 00       	call   0x559b90
5126d7:	83 c4 08             	add    $0x8,%esp
5126da:	8b 4d 18             	mov    0x18(%ebp),%ecx
5126dd:	ba ad 57 6e 00       	mov    $0x6e57ad,%edx
5126e2:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
5126e6:	ff 71 04             	push   0x4(%ecx)
5126e9:	b9 e8 9a 6b 00       	mov    $0x6b9ae8,%ecx
5126ee:	0f 44 ca             	cmove  %edx,%ecx
5126f1:	51                   	push   %ecx
5126f2:	50                   	push   %eax
5126f3:	56                   	push   %esi
5126f4:	68 f8 9a 6b 00       	push   $0x6b9af8
5126f9:	e8 52 7e fd ff       	call   0x4ea550
5126fe:	8b 4d 08             	mov    0x8(%ebp),%ecx
512701:	8b f0                	mov    %eax,%esi
512703:	6a ff                	push   $0xffffffff
512705:	6a 01                	push   $0x1
512707:	6a ff                	push   $0xffffffff
512709:	56                   	push   %esi
51270a:	ff 31                	push   (%ecx)
51270c:	c7 41 14 01 00 00 00 	movl   $0x1,0x14(%ecx)
512713:	e8 c8 93 03 00       	call   0x54bae0
512718:	56                   	push   %esi
512719:	e8 72 86 fd ff       	call   0x4ead90
51271e:	83 c4 2c             	add    $0x2c,%esp
512721:	5e                   	pop    %esi
512722:	5d                   	pop    %ebp
512723:	c3                   	ret
512724:	cc                   	int3
512725:	cc                   	int3
512726:	cc                   	int3
512727:	cc                   	int3
512728:	cc                   	int3
512729:	cc                   	int3
51272a:	cc                   	int3
51272b:	cc                   	int3
51272c:	cc                   	int3
51272d:	cc                   	int3
51272e:	cc                   	int3
51272f:	cc                   	int3
512730:	55                   	push   %ebp
512731:	8b ec                	mov    %esp,%ebp
512733:	8b 45 0c             	mov    0xc(%ebp),%eax
512736:	f7 40 04 00 00 20 00 	testl  $0x200000,0x4(%eax)
51273d:	74 07                	je     0x512746
51273f:	b8 01 00 00 00       	mov    $0x1,%eax
512744:	5d                   	pop    %ebp
512745:	c3                   	ret
512746:	50                   	push   %eax
512747:	ff 75 08             	push   0x8(%ebp)
51274a:	e8 a1 0c 00 00       	call   0x5133f0
51274f:	83 c4 08             	add    $0x8,%esp
512752:	33 c0                	xor    %eax,%eax
512754:	5d                   	pop    %ebp
512755:	c3                   	ret
512756:	cc                   	int3
512757:	cc                   	int3
512758:	cc                   	int3
512759:	cc                   	int3
51275a:	cc                   	int3
51275b:	cc                   	int3
51275c:	cc                   	int3
51275d:	cc                   	int3
51275e:	cc                   	int3
51275f:	cc                   	int3
512760:	55                   	push   %ebp
512761:	8b ec                	mov    %esp,%ebp
512763:	8b 55 14             	mov    0x14(%ebp),%edx
512766:	83 ec 20             	sub    $0x20,%esp
512769:	53                   	push   %ebx
51276a:	56                   	push   %esi
51276b:	57                   	push   %edi
51276c:	85 d2                	test   %edx,%edx
51276e:	75 04                	jne    0x512774
512770:	33 db                	xor    %ebx,%ebx
512772:	eb 1b                	jmp    0x51278f
512774:	8b da                	mov    %edx,%ebx
512776:	8d 4b 01             	lea    0x1(%ebx),%ecx
512779:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
512780:	8a 03                	mov    (%ebx),%al
512782:	43                   	inc    %ebx
512783:	84 c0                	test   %al,%al
512785:	75 f9                	jne    0x512780
512787:	2b d9                	sub    %ecx,%ebx
512789:	81 e3 ff ff ff 3f    	and    $0x3fffffff,%ebx
51278f:	8b 45 10             	mov    0x10(%ebp),%eax
512792:	85 c0                	test   %eax,%eax
512794:	75 04                	jne    0x51279a
512796:	33 ff                	xor    %edi,%edi
512798:	eb 15                	jmp    0x5127af
51279a:	8b f8                	mov    %eax,%edi
51279c:	8d 4f 01             	lea    0x1(%edi),%ecx
51279f:	90                   	nop
5127a0:	8a 07                	mov    (%edi),%al
5127a2:	47                   	inc    %edi
5127a3:	84 c0                	test   %al,%al
5127a5:	75 f9                	jne    0x5127a0
5127a7:	2b f9                	sub    %ecx,%edi
5127a9:	81 e7 ff ff ff 3f    	and    $0x3fffffff,%edi
5127af:	8b 45 08             	mov    0x8(%ebp),%eax
5127b2:	52                   	push   %edx
5127b3:	68 10 9b 6b 00       	push   $0x6b9b10
5127b8:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
5127bf:	8b 00                	mov    (%eax),%eax
5127c1:	8b 40 20             	mov    0x20(%eax),%eax
5127c4:	50                   	push   %eax
5127c5:	89 45 f4             	mov    %eax,-0xc(%ebp)
5127c8:	e8 73 e7 01 00       	call   0x530f40
5127cd:	8b f0                	mov    %eax,%esi
5127cf:	83 c4 0c             	add    $0xc,%esp
5127d2:	89 75 ec             	mov    %esi,-0x14(%ebp)
5127d5:	85 f6                	test   %esi,%esi
5127d7:	75 0a                	jne    0x5127e3
5127d9:	5f                   	pop    %edi
5127da:	8d 46 07             	lea    0x7(%esi),%eax
5127dd:	5e                   	pop    %esi
5127de:	5b                   	pop    %ebx
5127df:	8b e5                	mov    %ebp,%esp
5127e1:	5d                   	pop    %ebp
5127e2:	c3                   	ret
5127e3:	8b ce                	mov    %esi,%ecx
5127e5:	8d 51 01             	lea    0x1(%ecx),%edx
5127e8:	8a 01                	mov    (%ecx),%al
5127ea:	41                   	inc    %ecx
5127eb:	84 c0                	test   %al,%al
5127ed:	75 f9                	jne    0x5127e8
5127ef:	2b ca                	sub    %edx,%ecx
5127f1:	81 e1 ff ff ff 3f    	and    $0x3fffffff,%ecx
5127f7:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
5127fb:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
5127fe:	74 05                	je     0x512805
512800:	89 75 14             	mov    %esi,0x14(%ebp)
512803:	8b d9                	mov    %ecx,%ebx
512805:	8b 45 0c             	mov    0xc(%ebp),%eax
512808:	8b 40 04             	mov    0x4(%eax),%eax
51280b:	0f af c1             	imul   %ecx,%eax
51280e:	40                   	inc    %eax
51280f:	03 c7                	add    %edi,%eax
512811:	99                   	cltd
512812:	8b f0                	mov    %eax,%esi
512814:	8b 45 f4             	mov    -0xc(%ebp),%eax
512817:	52                   	push   %edx
512818:	56                   	push   %esi
512819:	85 c0                	test   %eax,%eax
51281b:	74 0b                	je     0x512828
51281d:	50                   	push   %eax
51281e:	e8 bd eb 00 00       	call   0x5213e0
512823:	83 c4 0c             	add    $0xc,%esp
512826:	eb 08                	jmp    0x512830
512828:	e8 33 e7 01 00       	call   0x530f60
51282d:	83 c4 08             	add    $0x8,%esp
512830:	89 45 fc             	mov    %eax,-0x4(%ebp)
512833:	85 c0                	test   %eax,%eax
512835:	0f 84 5e 01 00 00    	je     0x512999
51283b:	56                   	push   %esi
51283c:	6a 00                	push   $0x0
51283e:	50                   	push   %eax
51283f:	e8 bc 11 0d 00       	call   0x5e3a00
512844:	57                   	push   %edi
512845:	ff 75 10             	push   0x10(%ebp)
512848:	ff 75 fc             	push   -0x4(%ebp)
51284b:	e8 b0 06 0d 00       	call   0x5e2f00
512850:	8b 45 0c             	mov    0xc(%ebp),%eax
512853:	83 c4 18             	add    $0x18,%esp
512856:	8b 10                	mov    (%eax),%edx
512858:	85 d2                	test   %edx,%edx
51285a:	0f 84 ce 00 00 00    	je     0x51292e
512860:	8b f2                	mov    %edx,%esi
512862:	8b 4e 0c             	mov    0xc(%esi),%ecx
512865:	85 c9                	test   %ecx,%ecx
512867:	74 1a                	je     0x512883
512869:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
512870:	8b 41 04             	mov    0x4(%ecx),%eax
512873:	3b 46 04             	cmp    0x4(%esi),%eax
512876:	0f 47 f1             	cmova  %ecx,%esi
512879:	8b 49 0c             	mov    0xc(%ecx),%ecx
51287c:	85 c9                	test   %ecx,%ecx
51287e:	75 f0                	jne    0x512870
512880:	8b 45 0c             	mov    0xc(%ebp),%eax
512883:	8b c8                	mov    %eax,%ecx
512885:	3b d6                	cmp    %esi,%edx
512887:	74 10                	je     0x512899
512889:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
512890:	8d 4a 0c             	lea    0xc(%edx),%ecx
512893:	8b 11                	mov    (%ecx),%edx
512895:	3b d6                	cmp    %esi,%edx
512897:	75 f7                	jne    0x512890
512899:	8b 46 0c             	mov    0xc(%esi),%eax
51289c:	89 01                	mov    %eax,(%ecx)
51289e:	8b 4e 04             	mov    0x4(%esi),%ecx
5128a1:	0f b6 01             	movzbl (%ecx),%eax
5128a4:	f6 80 40 1b 6b 00 46 	testb  $0x46,0x6b1b40(%eax)
5128ab:	74 0a                	je     0x5128b7
5128ad:	8b 45 14             	mov    0x14(%ebp),%eax
5128b0:	8b d3                	mov    %ebx,%edx
5128b2:	89 5d f8             	mov    %ebx,-0x8(%ebp)
5128b5:	eb 09                	jmp    0x5128c0
5128b7:	8b 55 e4             	mov    -0x1c(%ebp),%edx
5128ba:	8b 45 ec             	mov    -0x14(%ebp),%eax
5128bd:	89 55 f8             	mov    %edx,-0x8(%ebp)
5128c0:	2b 4d 10             	sub    0x10(%ebp),%ecx
5128c3:	89 45 f0             	mov    %eax,-0x10(%ebp)
5128c6:	89 4d e0             	mov    %ecx,-0x20(%ebp)
5128c9:	39 56 08             	cmp    %edx,0x8(%esi)
5128cc:	74 38                	je     0x512906
5128ce:	8b c7                	mov    %edi,%eax
5128d0:	2b 46 08             	sub    0x8(%esi),%eax
5128d3:	2b c1                	sub    %ecx,%eax
5128d5:	50                   	push   %eax
5128d6:	8b 46 08             	mov    0x8(%esi),%eax
5128d9:	03 45 fc             	add    -0x4(%ebp),%eax
5128dc:	03 c1                	add    %ecx,%eax
5128de:	50                   	push   %eax
5128df:	8b 45 fc             	mov    -0x4(%ebp),%eax
5128e2:	03 c1                	add    %ecx,%eax
5128e4:	03 45 f8             	add    -0x8(%ebp),%eax
5128e7:	50                   	push   %eax
5128e8:	e8 93 0b 0d 00       	call   0x5e3480
5128ed:	8b 55 f8             	mov    -0x8(%ebp),%edx
5128f0:	83 c4 0c             	add    $0xc,%esp
5128f3:	8b 4d e0             	mov    -0x20(%ebp),%ecx
5128f6:	8b c2                	mov    %edx,%eax
5128f8:	2b 46 08             	sub    0x8(%esi),%eax
5128fb:	03 f8                	add    %eax,%edi
5128fd:	8b 45 fc             	mov    -0x4(%ebp),%eax
512900:	c6 04 38 00          	movb   $0x0,(%eax,%edi,1)
512904:	eb 03                	jmp    0x512909
512906:	8b 45 fc             	mov    -0x4(%ebp),%eax
512909:	52                   	push   %edx
51290a:	ff 75 f0             	push   -0x10(%ebp)
51290d:	03 c1                	add    %ecx,%eax
51290f:	50                   	push   %eax
512910:	e8 eb 05 0d 00       	call   0x5e2f00
512915:	56                   	push   %esi
512916:	ff 75 f4             	push   -0xc(%ebp)
512919:	e8 52 ea 00 00       	call   0x521370
51291e:	8b 45 0c             	mov    0xc(%ebp),%eax
512921:	83 c4 14             	add    $0x14,%esp
512924:	8b 10                	mov    (%eax),%edx
512926:	85 d2                	test   %edx,%edx
512928:	0f 85 32 ff ff ff    	jne    0x512860
51292e:	8b 75 08             	mov    0x8(%ebp),%esi
512931:	8b 5d fc             	mov    -0x4(%ebp),%ebx
512934:	6a ff                	push   $0xffffffff
512936:	6a 01                	push   $0x1
512938:	6a ff                	push   $0xffffffff
51293a:	53                   	push   %ebx
51293b:	ff 36                	push   (%esi)
51293d:	e8 9e 91 03 00       	call   0x54bae0
512942:	83 c4 14             	add    $0x14,%esp
512945:	83 f8 12             	cmp    $0x12,%eax
512948:	75 41                	jne    0x51298b
51294a:	89 46 14             	mov    %eax,0x14(%esi)
51294d:	b8 00 24 00 00       	mov    $0x2400,%eax
512952:	8b 36                	mov    (%esi),%esi
512954:	66 85 46 08          	test   %ax,0x8(%esi)
512958:	75 06                	jne    0x512960
51295a:	83 7e 18 00          	cmpl   $0x0,0x18(%esi)
51295e:	74 09                	je     0x512969
512960:	56                   	push   %esi
512961:	e8 aa 84 04 00       	call   0x55ae10
512966:	83 c4 04             	add    $0x4,%esp
512969:	b8 02 0a 00 00       	mov    $0xa02,%eax
51296e:	c7 46 10 00 88 6b 00 	movl   $0x6b8800,0x10(%esi)
512975:	c7 46 24 00 00 00 00 	movl   $0x0,0x24(%esi)
51297c:	c7 46 0c 16 00 00 00 	movl   $0x16,0xc(%esi)
512983:	66 89 46 08          	mov    %ax,0x8(%esi)
512987:	c6 46 0a 01          	movb   $0x1,0xa(%esi)
51298b:	53                   	push   %ebx
51298c:	ff 75 f4             	push   -0xc(%ebp)
51298f:	e8 dc e9 00 00       	call   0x521370
512994:	83 c4 08             	add    $0x8,%esp
512997:	eb 07                	jmp    0x5129a0
512999:	c7 45 e8 07 00 00 00 	movl   $0x7,-0x18(%ebp)
5129a0:	ff 75 ec             	push   -0x14(%ebp)
5129a3:	e8 e8 83 fd ff       	call   0x4ead90
5129a8:	8b 45 e8             	mov    -0x18(%ebp),%eax
5129ab:	83 c4 04             	add    $0x4,%esp
5129ae:	5f                   	pop    %edi
5129af:	5e                   	pop    %esi
5129b0:	5b                   	pop    %ebx
5129b1:	8b e5                	mov    %ebp,%esp
5129b3:	5d                   	pop    %ebp
5129b4:	c3                   	ret
5129b5:	cc                   	int3
5129b6:	cc                   	int3
5129b7:	cc                   	int3
5129b8:	cc                   	int3
5129b9:	cc                   	int3
5129ba:	cc                   	int3
5129bb:	cc                   	int3
5129bc:	cc                   	int3
5129bd:	cc                   	int3
5129be:	cc                   	int3
5129bf:	cc                   	int3
5129c0:	55                   	push   %ebp
5129c1:	8b ec                	mov    %esp,%ebp
5129c3:	53                   	push   %ebx
5129c4:	8b 5d 08             	mov    0x8(%ebp),%ebx
5129c7:	56                   	push   %esi
5129c8:	8b 43 08             	mov    0x8(%ebx),%eax
5129cb:	8b 33                	mov    (%ebx),%esi
5129cd:	85 c0                	test   %eax,%eax
5129cf:	74 09                	je     0x5129da
5129d1:	50                   	push   %eax
5129d2:	e8 b9 72 03 00       	call   0x549c90
5129d7:	83 c4 04             	add    $0x4,%esp
5129da:	8b 83 e4 00 00 00    	mov    0xe4(%ebx),%eax
5129e0:	85 c0                	test   %eax,%eax
5129e2:	74 1d                	je     0x512a01
5129e4:	85 f6                	test   %esi,%esi
5129e6:	74 09                	je     0x5129f1
5129e8:	83 be f8 01 00 00 00 	cmpl   $0x0,0x1f8(%esi)
5129ef:	75 06                	jne    0x5129f7
5129f1:	83 40 20 ff          	addl   $0xffffffff,0x20(%eax)
5129f5:	75 0a                	jne    0x512a01
5129f7:	50                   	push   %eax
5129f8:	56                   	push   %esi
5129f9:	e8 02 af fe ff       	call   0x4fd900
5129fe:	83 c4 08             	add    $0x8,%esp
512a01:	57                   	push   %edi
512a02:	8b bb e8 00 00 00    	mov    0xe8(%ebx),%edi