529699:	8b 4d f0             	mov    -0x10(%ebp),%ecx
52969c:	41                   	inc    %ecx
52969d:	89 4d f0             	mov    %ecx,-0x10(%ebp)
5296a0:	3b 4f 14             	cmp    0x14(%edi),%ecx
5296a3:	7c 9b                	jl     0x529640
5296a5:	8b 45 f4             	mov    -0xc(%ebp),%eax
5296a8:	ff 30                	push   (%eax)
5296aa:	6a 00                	push   $0x0
5296ac:	ff 70 1c             	push   0x1c(%eax)
5296af:	ff 75 dc             	push   -0x24(%ebp)
5296b2:	53                   	push   %ebx
5296b3:	e8 18 48 01 00       	call   0x53ded0
5296b8:	ff 43 28             	incl   0x28(%ebx)
5296bb:	83 c4 14             	add    $0x14,%esp
5296be:	8b 45 10             	mov    0x10(%ebp),%eax
5296c1:	85 c0                	test   %eax,%eax
5296c3:	74 1c                	je     0x5296e1
5296c5:	ff 75 d4             	push   -0x2c(%ebp)
5296c8:	6a ff                	push   $0xffffffff
5296ca:	50                   	push   %eax
5296cb:	ff 75 e8             	push   -0x18(%ebp)
5296ce:	57                   	push   %edi
5296cf:	ff 75 d0             	push   -0x30(%ebp)
5296d2:	ff 75 f4             	push   -0xc(%ebp)
5296d5:	ff 75 dc             	push   -0x24(%ebp)
5296d8:	53                   	push   %ebx
5296d9:	e8 92 90 fd ff       	call   0x502770
5296de:	83 c4 24             	add    $0x24,%esp
5296e1:	8b 55 14             	mov    0x14(%ebp),%edx
5296e4:	85 d2                	test   %edx,%edx
5296e6:	74 48                	je     0x529730
5296e8:	8b 43 74             	mov    0x74(%ebx),%eax
5296eb:	8b cb                	mov    %ebx,%ecx
5296ed:	85 c0                	test   %eax,%eax
5296ef:	0f 45 c8             	cmovne %eax,%ecx
5296f2:	8b 81 04 01 00 00    	mov    0x104(%ecx),%eax
5296f8:	85 c0                	test   %eax,%eax
5296fa:	74 18                	je     0x529714
5296fc:	8b 00                	mov    (%eax),%eax
5296fe:	3b 47 1c             	cmp    0x1c(%edi),%eax
529701:	75 06                	jne    0x529709
529703:	80 7f 19 08          	cmpb   $0x8,0x19(%edi)
529707:	74 27                	je     0x529730
529709:	3b 47 20             	cmp    0x20(%edi),%eax
52970c:	75 06                	jne    0x529714
52970e:	80 7f 1a 08          	cmpb   $0x8,0x1a(%edi)
529712:	74 1c                	je     0x529730
529714:	ff 75 d4             	push   -0x2c(%ebp)
529717:	6a 01                	push   $0x1
529719:	52                   	push   %edx
52971a:	ff 75 e8             	push   -0x18(%ebp)
52971d:	57                   	push   %edi
52971e:	ff 75 d0             	push   -0x30(%ebp)
529721:	ff 75 f4             	push   -0xc(%ebp)
529724:	ff 75 dc             	push   -0x24(%ebp)
529727:	53                   	push   %ebx
529728:	e8 43 90 fd ff       	call   0x502770
52972d:	83 c4 24             	add    $0x24,%esp
529730:	8b 4d d8             	mov    -0x28(%ebp),%ecx
529733:	85 c9                	test   %ecx,%ecx
529735:	0f 84 8f 01 00 00    	je     0x5298ca
52973b:	83 be f8 01 00 00 00 	cmpl   $0x0,0x1f8(%esi)
529742:	74 0f                	je     0x529753
529744:	51                   	push   %ecx
529745:	56                   	push   %esi
529746:	e8 25 fd fd ff       	call   0x509470
52974b:	83 c4 08             	add    $0x8,%esp
52974e:	e9 77 01 00 00       	jmp    0x5298ca
529753:	3b 8e 4c 01 00 00    	cmp    0x14c(%esi),%ecx
529759:	73 36                	jae    0x529791
52975b:	3b 8e 44 01 00 00    	cmp    0x144(%esi),%ecx
529761:	72 13                	jb     0x529776
529763:	8b 86 40 01 00 00    	mov    0x140(%esi),%eax
529769:	89 01                	mov    %eax,(%ecx)
52976b:	89 8e 40 01 00 00    	mov    %ecx,0x140(%esi)
529771:	e9 54 01 00 00       	jmp    0x5298ca
529776:	3b 8e 48 01 00 00    	cmp    0x148(%esi),%ecx
52977c:	72 13                	jb     0x529791
52977e:	8b 86 38 01 00 00    	mov    0x138(%esi),%eax
529784:	89 01                	mov    %eax,(%ecx)
529786:	89 8e 38 01 00 00    	mov    %ecx,0x138(%esi)
52978c:	e9 39 01 00 00       	jmp    0x5298ca
529791:	51                   	push   %ecx
529792:	e8 f9 15 fc ff       	call   0x4ead90
529797:	83 c4 04             	add    $0x4,%esp
52979a:	e9 2b 01 00 00       	jmp    0x5298ca
52979f:	8b 45 f4             	mov    -0xc(%ebp),%eax
5297a2:	83 7d c8 00          	cmpl   $0x0,-0x38(%ebp)
5297a6:	0f 84 46 03 00 00    	je     0x529af2
5297ac:	80 7e 51 00          	cmpb   $0x0,0x51(%esi)
5297b0:	0f 85 3c 03 00 00    	jne    0x529af2
5297b6:	85 c0                	test   %eax,%eax
5297b8:	0f 85 0c 01 00 00    	jne    0x5298ca
5297be:	8b 5b 08             	mov    0x8(%ebx),%ebx
5297c1:	85 db                	test   %ebx,%ebx
5297c3:	75 1f                	jne    0x5297e4
5297c5:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
5297c8:	39 59 74             	cmp    %ebx,0x74(%ecx)
5297cb:	75 0c                	jne    0x5297d9
5297cd:	8b 01                	mov    (%ecx),%eax
5297cf:	f6 40 4c 08          	testb  $0x8,0x4c(%eax)
5297d3:	75 04                	jne    0x5297d9
5297d5:	c6 41 17 01          	movb   $0x1,0x17(%ecx)
5297d9:	51                   	push   %ecx
5297da:	e8 31 8c 01 00       	call   0x542410
5297df:	83 c4 04             	add    $0x4,%esp
5297e2:	8b d8                	mov    %eax,%ebx
5297e4:	8b 43 6c             	mov    0x6c(%ebx),%eax
5297e7:	8b 57 14             	mov    0x14(%edi),%edx
5297ea:	40                   	inc    %eax
5297eb:	03 c2                	add    %edx,%eax
5297ed:	c7 45 d4 00 00 00 00 	movl   $0x0,-0x2c(%ebp)
5297f4:	89 45 f0             	mov    %eax,-0x10(%ebp)
5297f7:	85 d2                	test   %edx,%edx
5297f9:	7e 7c                	jle    0x529877
5297fb:	8b 75 d4             	mov    -0x2c(%ebp),%esi
5297fe:	8d 47 24             	lea    0x24(%edi),%eax
529801:	89 45 d8             	mov    %eax,-0x28(%ebp)
529804:	0f b7 00             	movzwl (%eax),%eax
529807:	50                   	push   %eax
529808:	ff 37                	push   (%edi)
52980a:	e8 41 46 01 00       	call   0x53de50
52980f:	8b 55 10             	mov    0x10(%ebp),%edx
529812:	83 c4 08             	add    $0x8,%esp
529815:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
529818:	42                   	inc    %edx
529819:	98                   	cwtl
52981a:	03 d0                	add    %eax,%edx
52981c:	39 4b 70             	cmp    %ecx,0x70(%ebx)
52981f:	7f 13                	jg     0x529834
529821:	6a 00                	push   $0x0
529823:	ff 75 f0             	push   -0x10(%ebp)
529826:	52                   	push   %edx
529827:	6a 32                	push   $0x32
529829:	53                   	push   %ebx
52982a:	e8 d1 cc fd ff       	call   0x506500
52982f:	83 c4 14             	add    $0x14,%esp
529832:	eb 31                	jmp    0x529865
529834:	8b 7d e8             	mov    -0x18(%ebp),%edi
529837:	8d 41 01             	lea    0x1(%ecx),%eax
52983a:	89 43 6c             	mov    %eax,0x6c(%ebx)
52983d:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
529840:	8b 43 68             	mov    0x68(%ebx),%eax
529843:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
529847:	8b 55 f0             	mov    -0x10(%ebp),%edx
52984a:	c7 04 88 32 00 00 00 	movl   $0x32,(%eax,%ecx,4)
529851:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
529855:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
52985c:	00
52985d:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
529864:	00
529865:	8b 45 d8             	mov    -0x28(%ebp),%eax
529868:	46                   	inc    %esi
529869:	83 c0 08             	add    $0x8,%eax
52986c:	89 45 d8             	mov    %eax,-0x28(%ebp)
52986f:	3b 77 14             	cmp    0x14(%edi),%esi
529872:	7c 90                	jl     0x529804
529874:	8b 75 cc             	mov    -0x34(%ebp),%esi
529877:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
52987a:	0f b6 57 18          	movzbl 0x18(%edi),%edx
52987e:	39 4b 70             	cmp    %ecx,0x70(%ebx)
529881:	7f 15                	jg     0x529898
529883:	6a 00                	push   $0x0
529885:	6a ff                	push   $0xffffffff
529887:	52                   	push   %edx
529888:	68 95 00 00 00       	push   $0x95
52988d:	53                   	push   %ebx
52988e:	e8 6d cc fd ff       	call   0x506500
529893:	83 c4 14             	add    $0x14,%esp
529896:	eb 2f                	jmp    0x5298c7
529898:	8d 41 01             	lea    0x1(%ecx),%eax
52989b:	89 43 6c             	mov    %eax,0x6c(%ebx)
52989e:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5298a1:	8b 43 68             	mov    0x68(%ebx),%eax
5298a4:	c7 04 88 95 00 00 00 	movl   $0x95,(%eax,%ecx,4)
5298ab:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
5298af:	c7 44 88 08 ff ff ff 	movl   $0xffffffff,0x8(%eax,%ecx,4)
5298b6:	ff
5298b7:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
5298be:	00
5298bf:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5298c6:	00
5298c7:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
5298ca:	8b 7f 04             	mov    0x4(%edi),%edi
5298cd:	8b 55 ec             	mov    -0x14(%ebp),%edx
5298d0:	8b 45 e0             	mov    -0x20(%ebp),%eax
5298d3:	89 7d e8             	mov    %edi,-0x18(%ebp)
5298d6:	85 ff                	test   %edi,%edi
5298d8:	0f 85 92 fc ff ff    	jne    0x529570
5298de:	8b 42 48             	mov    0x48(%edx),%eax
5298e1:	6a 00                	push   $0x0
5298e3:	ff 32                	push   (%edx)
5298e5:	83 c0 38             	add    $0x38,%eax
5298e8:	50                   	push   %eax
5298e9:	e8 e2 86 fd ff       	call   0x501fd0
5298ee:	83 c4 0c             	add    $0xc,%esp
5298f1:	8b 40 08             	mov    0x8(%eax),%eax
5298f4:	89 45 f4             	mov    %eax,-0xc(%ebp)
5298f7:	85 c0                	test   %eax,%eax
5298f9:	0f 84 f3 01 00 00    	je     0x529af2
5298ff:	90                   	nop
529900:	8b 4d 18             	mov    0x18(%ebp),%ecx
529903:	8b 7d ec             	mov    -0x14(%ebp),%edi
529906:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
52990d:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
529914:	85 c9                	test   %ecx,%ecx
529916:	74 19                	je     0x529931
529918:	ff 75 1c             	push   0x1c(%ebp)
52991b:	51                   	push   %ecx
52991c:	50                   	push   %eax
52991d:	57                   	push   %edi
52991e:	e8 7d 97 fd ff       	call   0x5030a0
529923:	83 c4 10             	add    $0x10,%esp
529926:	85 c0                	test   %eax,%eax
529928:	0f 84 b3 01 00 00    	je     0x529ae1
52992e:	8b 45 f4             	mov    -0xc(%ebp),%eax
529931:	80 78 18 00          	cmpb   $0x0,0x18(%eax)
529935:	75 1e                	jne    0x529955
529937:	8b 46 20             	mov    0x20(%esi),%eax
52993a:	25 00 00 08 00       	and    $0x80000,%eax
52993f:	83 c8 00             	or     $0x0,%eax
529942:	75 0e                	jne    0x529952
529944:	39 43 74             	cmp    %eax,0x74(%ebx)
529947:	75 09                	jne    0x529952
529949:	38 43 14             	cmp    %al,0x14(%ebx)
52994c:	0f 84 8f 01 00 00    	je     0x529ae1
529952:	8b 45 f4             	mov    -0xc(%ebp),%eax
529955:	8d 4d f0             	lea    -0x10(%ebp),%ecx
529958:	51                   	push   %ecx
529959:	8d 4d e0             	lea    -0x20(%ebp),%ecx
52995c:	51                   	push   %ecx
52995d:	50                   	push   %eax
52995e:	57                   	push   %edi
52995f:	53                   	push   %ebx
529960:	e8 7b 05 00 00       	call   0x529ee0
529965:	83 c4 14             	add    $0x14,%esp
529968:	85 c0                	test   %eax,%eax
52996a:	74 19                	je     0x529985
52996c:	83 7d c8 00          	cmpl   $0x0,-0x38(%ebp)
529970:	0f 84 7c 01 00 00    	je     0x529af2
529976:	80 7e 51 00          	cmpb   $0x0,0x51(%esi)
52997a:	0f 85 72 01 00 00    	jne    0x529af2
529980:	e9 5c 01 00 00       	jmp    0x529ae1
529985:	6a 00                	push   $0x0
529987:	6a 50                	push   $0x50
529989:	ff 33                	push   (%ebx)
52998b:	e8 50 7a ff ff       	call   0x5213e0
529990:	8b 7d f0             	mov    -0x10(%ebp),%edi
529993:	83 c4 0c             	add    $0xc,%esp
529996:	89 45 e4             	mov    %eax,-0x1c(%ebp)
529999:	85 c0                	test   %eax,%eax
52999b:	0f 84 e6 00 00 00    	je     0x529a87
5299a1:	6a 48                	push   $0x48
5299a3:	c7 40 04 01 00 00 00 	movl   $0x1,0x4(%eax)
5299aa:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
5299b0:	83 c0 08             	add    $0x8,%eax
5299b3:	6a 00                	push   $0x0
5299b5:	50                   	push   %eax
5299b6:	89 45 f8             	mov    %eax,-0x8(%ebp)
5299b9:	e8 42 a0 0b 00       	call   0x5e3a00
5299be:	8b 55 e4             	mov    -0x1c(%ebp),%edx
5299c1:	83 c4 0c             	add    $0xc,%esp
5299c4:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5299c7:	c7 42 34 ff ff ff ff 	movl   $0xffffffff,0x34(%edx)
5299ce:	8b 02                	mov    (%edx),%eax
5299d0:	8d 04 c0             	lea    (%eax,%eax,8),%eax
5299d3:	c7 44 c2 c8 00 00 00 	movl   $0x0,-0x38(%edx,%eax,8)
5299da:	00
5299db:	c7 44 c2 c4 00 00 00 	movl   $0x0,-0x3c(%edx,%eax,8)
5299e2:	00
5299e3:	8b 01                	mov    (%ecx),%eax
5299e5:	89 42 18             	mov    %eax,0x18(%edx)
5299e8:	8b 01                	mov    (%ecx),%eax
5299ea:	8b 00                	mov    (%eax),%eax
5299ec:	89 42 10             	mov    %eax,0x10(%edx)
5299ef:	8b 42 18             	mov    0x18(%edx),%eax
5299f2:	ff 40 20             	incl   0x20(%eax)
5299f5:	8b 43 28             	mov    0x28(%ebx),%eax
5299f8:	89 42 34             	mov    %eax,0x34(%edx)
5299fb:	ff 43 28             	incl   0x28(%ebx)
5299fe:	8b 45 14             	mov    0x14(%ebp),%eax
529a01:	85 c0                	test   %eax,%eax
529a03:	74 1b                	je     0x529a20
529a05:	6a ff                	push   $0xffffffff
529a07:	50                   	push   %eax
529a08:	57                   	push   %edi
529a09:	51                   	push   %ecx
529a0a:	ff 75 e0             	push   -0x20(%ebp)
529a0d:	ff 75 ec             	push   -0x14(%ebp)
529a10:	52                   	push   %edx
529a11:	53                   	push   %ebx
529a12:	e8 69 97 fd ff       	call   0x503180
529a17:	8b 4d f4             	mov    -0xc(%ebp),%ecx
529a1a:	83 c4 20             	add    $0x20,%esp
529a1d:	8b 55 e4             	mov    -0x1c(%ebp),%edx
529a20:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
529a24:	74 4b                	je     0x529a71
529a26:	6a 01                	push   $0x1
529a28:	ff 75 10             	push   0x10(%ebp)
529a2b:	33 c0                	xor    %eax,%eax
529a2d:	39 45 18             	cmp    %eax,0x18(%ebp)
529a30:	57                   	push   %edi
529a31:	51                   	push   %ecx
529a32:	ff 75 e0             	push   -0x20(%ebp)
529a35:	0f 95 c0             	setne  %al
529a38:	ff 75 ec             	push   -0x14(%ebp)
529a3b:	52                   	push   %edx
529a3c:	0f b6 44 08 19       	movzbl 0x19(%eax,%ecx,1),%eax
529a41:	53                   	push   %ebx
529a42:	89 45 cc             	mov    %eax,-0x34(%ebp)
529a45:	e8 36 97 fd ff       	call   0x503180
529a4a:	8b 45 f4             	mov    -0xc(%ebp),%eax
529a4d:	83 c4 20             	add    $0x20,%esp
529a50:	80 78 18 00          	cmpb   $0x0,0x18(%eax)
529a54:	75 1b                	jne    0x529a71
529a56:	8b 45 cc             	mov    -0x34(%ebp),%eax
529a59:	83 f8 0a             	cmp    $0xa,%eax
529a5c:	74 13                	je     0x529a71
529a5e:	83 f8 08             	cmp    $0x8,%eax
529a61:	74 0e                	je     0x529a71
529a63:	8b 43 74             	mov    0x74(%ebx),%eax
529a66:	8b cb                	mov    %ebx,%ecx
529a68:	85 c0                	test   %eax,%eax
529a6a:	0f 45 c8             	cmovne %eax,%ecx
529a6d:	c6 41 15 01          	movb   $0x1,0x15(%ecx)
529a71:	8b 45 f8             	mov    -0x8(%ebp),%eax
529a74:	ff 75 e4             	push   -0x1c(%ebp)
529a77:	56                   	push   %esi
529a78:	c7 40 08 00 00 00 00 	movl   $0x0,0x8(%eax)
529a7f:	e8 ec 32 01 00       	call   0x53cd70
529a84:	83 c4 08             	add    $0x8,%esp
529a87:	85 ff                	test   %edi,%edi
529a89:	74 56                	je     0x529ae1
529a8b:	83 be f8 01 00 00 00 	cmpl   $0x0,0x1f8(%esi)
529a92:	74 0c                	je     0x529aa0
529a94:	57                   	push   %edi
529a95:	56                   	push   %esi
529a96:	e8 d5 f9 fd ff       	call   0x509470
529a9b:	83 c4 08             	add    $0x8,%esp
529a9e:	eb 41                	jmp    0x529ae1
529aa0:	3b be 4c 01 00 00    	cmp    0x14c(%esi),%edi
529aa6:	73 30                	jae    0x529ad8
529aa8:	3b be 44 01 00 00    	cmp    0x144(%esi),%edi
529aae:	72 10                	jb     0x529ac0
529ab0:	8b 86 40 01 00 00    	mov    0x140(%esi),%eax
529ab6:	89 07                	mov    %eax,(%edi)
529ab8:	89 be 40 01 00 00    	mov    %edi,0x140(%esi)
529abe:	eb 21                	jmp    0x529ae1
529ac0:	3b be 48 01 00 00    	cmp    0x148(%esi),%edi
529ac6:	72 10                	jb     0x529ad8