52b5ef:	8b 49 40             	mov    0x40(%ecx),%ecx
52b5f2:	8b 46 6c             	mov    0x6c(%esi),%eax
52b5f5:	89 04 91             	mov    %eax,(%ecx,%edx,4)
52b5f8:	e9 1d 0b 00 00       	jmp    0x52c11a
52b5fd:	0f b6 59 36          	movzbl 0x36(%ecx),%ebx
52b601:	85 db                	test   %ebx,%ebx
52b603:	75 20                	jne    0x52b625
52b605:	8b 4e 0c             	mov    0xc(%esi),%ecx
52b608:	8b 55 a4             	mov    -0x5c(%ebp),%edx
52b60b:	f7 d2                	not    %edx
52b60d:	8b 41 3c             	mov    0x3c(%ecx),%eax
52b610:	03 41 38             	add    0x38(%ecx),%eax
52b613:	79 da                	jns    0x52b5ef
52b615:	52                   	push   %edx
52b616:	56                   	push   %esi
52b617:	51                   	push   %ecx
52b618:	e8 83 81 fe ff       	call   0x5137a0
52b61d:	83 c4 0c             	add    $0xc,%esp
52b620:	e9 f5 0a 00 00       	jmp    0x52c11a
52b625:	8a 55 28             	mov    0x28(%ebp),%dl
52b628:	80 fa 0b             	cmp    $0xb,%dl
52b62b:	74 05                	je     0x52b632
52b62d:	0f b6 da             	movzbl %dl,%ebx
52b630:	eb 0b                	jmp    0x52b63d
52b632:	83 fb 0b             	cmp    $0xb,%ebx
52b635:	ba 02 00 00 00       	mov    $0x2,%edx
52b63a:	0f 44 da             	cmove  %edx,%ebx
52b63d:	89 5d c0             	mov    %ebx,-0x40(%ebp)
52b640:	39 8d 78 ff ff ff    	cmp    %ecx,-0x88(%ebp)
52b646:	75 18                	jne    0x52b660
52b648:	8b 95 7c ff ff ff    	mov    -0x84(%ebp),%edx
52b64e:	33 db                	xor    %ebx,%ebx
52b650:	39 5a 08             	cmp    %ebx,0x8(%edx)
52b653:	0f 95 c3             	setne  %bl
52b656:	8d 1c 5d 04 00 00 00 	lea    0x4(,%ebx,2),%ebx
52b65d:	89 5d c0             	mov    %ebx,-0x40(%ebp)
52b660:	83 7d d4 00          	cmpl   $0x0,-0x2c(%ebp)
52b664:	0f 85 e8 00 00 00    	jne    0x52b752
52b66a:	83 79 14 00          	cmpl   $0x0,0x14(%ecx)
52b66e:	0f 85 de 00 00 00    	jne    0x52b752
52b674:	3b c1                	cmp    %ecx,%eax
52b676:	0f 85 d6 00 00 00    	jne    0x52b752
52b67c:	83 fb 05             	cmp    $0x5,%ebx
52b67f:	0f 85 cd 00 00 00    	jne    0x52b752
52b685:	8b 85 6c ff ff ff    	mov    -0x94(%ebp),%eax
52b68b:	8b 40 20             	mov    0x20(%eax),%eax
52b68e:	25 00 20 00 00       	and    $0x2000,%eax
52b693:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
52b699:	8d 43 fb             	lea    -0x5(%ebx),%eax
52b69c:	75 04                	jne    0x52b6a2
52b69e:	85 c0                	test   %eax,%eax
52b6a0:	74 4c                	je     0x52b6ee
52b6a2:	8b 4d dc             	mov    -0x24(%ebp),%ecx
52b6a5:	33 d2                	xor    %edx,%edx
52b6a7:	33 ff                	xor    %edi,%edi
52b6a9:	8b 01                	mov    (%ecx),%eax
52b6ab:	8b 40 20             	mov    0x20(%eax),%eax
52b6ae:	25 00 00 04 00       	and    $0x40000,%eax
52b6b3:	0b c2                	or     %edx,%eax
52b6b5:	74 0e                	je     0x52b6c5
52b6b7:	ff 75 d8             	push   -0x28(%ebp)
52b6ba:	51                   	push   %ecx
52b6bb:	e8 a0 2d 01 00       	call   0x53e460
52b6c0:	83 c4 08             	add    $0x8,%esp
52b6c3:	8b d0                	mov    %eax,%edx
52b6c5:	8b ca                	mov    %edx,%ecx
52b6c7:	85 d2                	test   %edx,%edx
52b6c9:	74 18                	je     0x52b6e3
52b6cb:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
52b6d0:	80 79 08 7e          	cmpb   $0x7e,0x8(%ecx)
52b6d4:	75 06                	jne    0x52b6dc
52b6d6:	0f b6 41 09          	movzbl 0x9(%ecx),%eax
52b6da:	0b f8                	or     %eax,%edi
52b6dc:	8b 49 20             	mov    0x20(%ecx),%ecx
52b6df:	85 c9                	test   %ecx,%ecx
52b6e1:	75 ed                	jne    0x52b6d0
52b6e3:	33 c0                	xor    %eax,%eax
52b6e5:	85 ff                	test   %edi,%edi
52b6e7:	0f 45 c2             	cmovne %edx,%eax
52b6ea:	85 c0                	test   %eax,%eax
52b6ec:	75 64                	jne    0x52b752
52b6ee:	8b 85 6c ff ff ff    	mov    -0x94(%ebp),%eax
52b6f4:	8b 40 20             	mov    0x20(%eax),%eax
52b6f7:	25 00 40 00 00       	and    $0x4000,%eax
52b6fc:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
52b702:	b8 00 00 00 00       	mov    $0x0,%eax
52b707:	75 04                	jne    0x52b70d
52b709:	85 c0                	test   %eax,%eax
52b70b:	74 21                	je     0x52b72e
52b70d:	8b 4d d8             	mov    -0x28(%ebp),%ecx
52b710:	39 41 10             	cmp    %eax,0x10(%ecx)
52b713:	75 3d                	jne    0x52b752
52b715:	8b 41 48             	mov    0x48(%ecx),%eax
52b718:	6a 00                	push   $0x0
52b71a:	ff 31                	push   (%ecx)
52b71c:	83 c0 38             	add    $0x38,%eax
52b71f:	50                   	push   %eax
52b720:	e8 ab 68 fd ff       	call   0x501fd0
52b725:	83 c4 0c             	add    $0xc,%esp
52b728:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
52b72c:	75 24                	jne    0x52b752
52b72e:	8b 4e 0c             	mov    0xc(%esi),%ecx
52b731:	8b 55 a4             	mov    -0x5c(%ebp),%edx
52b734:	f7 d2                	not    %edx
52b736:	8b 41 3c             	mov    0x3c(%ecx),%eax
52b739:	03 41 38             	add    0x38(%ecx),%eax
52b73c:	0f 89 ad fe ff ff    	jns    0x52b5ef
52b742:	52                   	push   %edx
52b743:	56                   	push   %esi
52b744:	51                   	push   %ecx
52b745:	e8 56 80 fe ff       	call   0x5137a0
52b74a:	83 c4 0c             	add    $0xc,%esp
52b74d:	e9 c8 09 00 00       	jmp    0x52c11a
52b752:	8b 45 d0             	mov    -0x30(%ebp),%eax
52b755:	8b 56 6c             	mov    0x6c(%esi),%edx
52b758:	89 55 bc             	mov    %edx,-0x44(%ebp)
52b75b:	0f b7 78 32          	movzwl 0x32(%eax),%edi
52b75f:	39 56 70             	cmp    %edx,0x70(%esi)
52b762:	7f 20                	jg     0x52b784
52b764:	8b 55 cc             	mov    -0x34(%ebp),%edx
52b767:	8b 45 d4             	mov    -0x2c(%ebp),%eax
52b76a:	03 45 18             	add    0x18(%ebp),%eax
52b76d:	52                   	push   %edx
52b76e:	ff 75 a4             	push   -0x5c(%ebp)
52b771:	50                   	push   %eax
52b772:	6a 1c                	push   $0x1c
52b774:	56                   	push   %esi
52b775:	e8 86 ad fd ff       	call   0x506500
52b77a:	8b d0                	mov    %eax,%edx
52b77c:	83 c4 14             	add    $0x14,%esp
52b77f:	89 55 bc             	mov    %edx,-0x44(%ebp)
52b782:	eb 3c                	jmp    0x52b7c0
52b784:	8b 5d c0             	mov    -0x40(%ebp),%ebx
52b787:	8d 42 01             	lea    0x1(%edx),%eax
52b78a:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
52b78d:	89 46 6c             	mov    %eax,0x6c(%esi)
52b790:	8b 46 68             	mov    0x68(%esi),%eax
52b793:	8b 55 d4             	mov    -0x2c(%ebp),%edx
52b796:	03 55 18             	add    0x18(%ebp),%edx
52b799:	8b 75 90             	mov    -0x70(%ebp),%esi
52b79c:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
52b7a0:	8b 55 a4             	mov    -0x5c(%ebp),%edx
52b7a3:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
52b7a7:	8b 55 cc             	mov    -0x34(%ebp),%edx
52b7aa:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
52b7ae:	8b 55 bc             	mov    -0x44(%ebp),%edx
52b7b1:	c7 04 88 1c 00 00 00 	movl   $0x1c,(%eax,%ecx,4)
52b7b8:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52b7bf:	00
52b7c0:	8b 06                	mov    (%esi),%eax
52b7c2:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
52b7c6:	75 0f                	jne    0x52b7d7
52b7c8:	8b 46 68             	mov    0x68(%esi),%eax
52b7cb:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
52b7ce:	c6 44 88 01 fd       	movb   $0xfd,0x1(%eax,%ecx,4)
52b7d3:	89 7c 88 10          	mov    %edi,0x10(%eax,%ecx,4)
52b7d7:	8b 55 d0             	mov    -0x30(%ebp),%edx
52b7da:	3b 55 b0             	cmp    -0x50(%ebp),%edx
52b7dd:	75 08                	jne    0x52b7e7
52b7df:	8b 7d cc             	mov    -0x34(%ebp),%edi
52b7e2:	89 7d 98             	mov    %edi,-0x68(%ebp)
52b7e5:	eb 57                	jmp    0x52b83e
52b7e7:	8b 45 84             	mov    -0x7c(%ebp),%eax
52b7ea:	8b 55 dc             	mov    -0x24(%ebp),%edx
52b7ed:	83 f8 01             	cmp    $0x1,%eax
52b7f0:	75 20                	jne    0x52b812
52b7f2:	8a 42 13             	mov    0x13(%edx),%al
52b7f5:	84 c0                	test   %al,%al
52b7f7:	75 08                	jne    0x52b801
52b7f9:	ff 42 2c             	incl   0x2c(%edx)
52b7fc:	8b 7a 2c             	mov    0x2c(%edx),%edi
52b7ff:	eb 37                	jmp    0x52b838
52b801:	fe c8                	dec    %al
52b803:	88 42 13             	mov    %al,0x13(%edx)
52b806:	0f b6 c0             	movzbl %al,%eax
52b809:	8b bc 82 94 00 00 00 	mov    0x94(%edx,%eax,4),%edi
52b810:	eb 26                	jmp    0x52b838
52b812:	8b 4a 1c             	mov    0x1c(%edx),%ecx
52b815:	8b 7a 20             	mov    0x20(%edx),%edi
52b818:	89 7d 98             	mov    %edi,-0x68(%ebp)
52b81b:	3b c1                	cmp    %ecx,%eax
52b81d:	7f 0d                	jg     0x52b82c
52b81f:	03 c7                	add    %edi,%eax
52b821:	2b 4d 84             	sub    -0x7c(%ebp),%ecx
52b824:	89 42 20             	mov    %eax,0x20(%edx)
52b827:	89 4a 1c             	mov    %ecx,0x1c(%edx)
52b82a:	eb 0f                	jmp    0x52b83b
52b82c:	8b 42 2c             	mov    0x2c(%edx),%eax
52b82f:	8d 78 01             	lea    0x1(%eax),%edi
52b832:	03 45 84             	add    -0x7c(%ebp),%eax
52b835:	89 42 2c             	mov    %eax,0x2c(%edx)
52b838:	89 7d 98             	mov    %edi,-0x68(%ebp)
52b83b:	8b 55 d0             	mov    -0x30(%ebp),%edx
52b83e:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
52b842:	75 09                	jne    0x52b84d
52b844:	83 fb 05             	cmp    $0x5,%ebx
52b847:	0f 85 55 03 00 00    	jne    0x52bba2
52b84d:	8b 45 d8             	mov    -0x28(%ebp),%eax
52b850:	f6 40 24 80          	testb  $0x80,0x24(%eax)
52b854:	0f 85 cb 00 00 00    	jne    0x52b925
52b85a:	8b 4e 6c             	mov    0x6c(%esi),%ecx
52b85d:	39 4e 70             	cmp    %ecx,0x70(%esi)
52b860:	7f 1a                	jg     0x52b87c
52b862:	8b 45 d4             	mov    -0x2c(%ebp),%eax
52b865:	03 45 18             	add    0x18(%ebp),%eax
52b868:	6a 00                	push   $0x0
52b86a:	57                   	push   %edi
52b86b:	50                   	push   %eax
52b86c:	68 86 00 00 00       	push   $0x86
52b871:	56                   	push   %esi
52b872:	e8 89 ac fd ff       	call   0x506500
52b877:	83 c4 14             	add    $0x14,%esp
52b87a:	eb 34                	jmp    0x52b8b0
52b87c:	8b 55 d4             	mov    -0x2c(%ebp),%edx
52b87f:	8d 41 01             	lea    0x1(%ecx),%eax
52b882:	03 55 18             	add    0x18(%ebp),%edx
52b885:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52b888:	8b 7d 98             	mov    -0x68(%ebp),%edi
52b88b:	89 46 6c             	mov    %eax,0x6c(%esi)
52b88e:	8b 46 68             	mov    0x68(%esi),%eax
52b891:	c7 04 88 86 00 00 00 	movl   $0x86,(%eax,%ecx,4)
52b898:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
52b89c:	89 7c 88 08          	mov    %edi,0x8(%eax,%ecx,4)
52b8a0:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
52b8a7:	00
52b8a8:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52b8af:	00
52b8b0:	8b 55 20             	mov    0x20(%ebp),%edx
52b8b3:	85 d2                	test   %edx,%edx
52b8b5:	0f 84 ea 02 00 00    	je     0x52bba5
52b8bb:	8b 4e 6c             	mov    0x6c(%esi),%ecx
52b8be:	39 4e 70             	cmp    %ecx,0x70(%esi)
52b8c1:	7f 15                	jg     0x52b8d8
52b8c3:	52                   	push   %edx
52b8c4:	ff 75 a4             	push   -0x5c(%ebp)
52b8c7:	57                   	push   %edi
52b8c8:	6a 35                	push   $0x35
52b8ca:	56                   	push   %esi
52b8cb:	e8 30 ac fd ff       	call   0x506500
52b8d0:	8b 55 20             	mov    0x20(%ebp),%edx
52b8d3:	83 c4 14             	add    $0x14,%esp
52b8d6:	eb 2d                	jmp    0x52b905
52b8d8:	8b 55 a4             	mov    -0x5c(%ebp),%edx
52b8db:	8d 41 01             	lea    0x1(%ecx),%eax
52b8de:	89 46 6c             	mov    %eax,0x6c(%esi)
52b8e1:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52b8e4:	8b 46 68             	mov    0x68(%esi),%eax
52b8e7:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
52b8eb:	8b 55 20             	mov    0x20(%ebp),%edx
52b8ee:	c7 04 88 35 00 00 00 	movl   $0x35,(%eax,%ecx,4)
52b8f5:	89 7c 88 04          	mov    %edi,0x4(%eax,%ecx,4)
52b8f9:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
52b8fd:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52b904:	00
52b905:	8b 46 6c             	mov    0x6c(%esi),%eax
52b908:	85 c0                	test   %eax,%eax
52b90a:	0f 8e 95 02 00 00    	jle    0x52bba5
52b910:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
52b913:	bb 90 00 00 00       	mov    $0x90,%ebx
52b918:	8b 46 68             	mov    0x68(%esi),%eax
52b91b:	66 89 5c 88 ee       	mov    %bx,-0x12(%eax,%ecx,4)
52b920:	e9 80 02 00 00       	jmp    0x52bba5
52b925:	8b 45 b0             	mov    -0x50(%ebp),%eax
52b928:	3b d0                	cmp    %eax,%edx
52b92a:	0f 84 b8 00 00 00    	je     0x52b9e8
52b930:	33 ff                	xor    %edi,%edi
52b932:	33 c9                	xor    %ecx,%ecx
52b934:	89 7d b4             	mov    %edi,-0x4c(%ebp)
52b937:	66 3b 48 32          	cmp    0x32(%eax),%cx
52b93b:	0f 83 a7 00 00 00    	jae    0x52b9e8
52b941:	8b 5d 98             	mov    -0x68(%ebp),%ebx
52b944:	0f b7 52 34          	movzwl 0x34(%edx),%edx
52b948:	33 c9                	xor    %ecx,%ecx
52b94a:	85 d2                	test   %edx,%edx
52b94c:	7e 1f                	jle    0x52b96d
52b94e:	8b 40 04             	mov    0x4(%eax),%eax
52b951:	0f b7 3c 78          	movzwl (%eax,%edi,2),%edi
52b955:	8b 45 d0             	mov    -0x30(%ebp),%eax
52b958:	8b 40 04             	mov    0x4(%eax),%eax
52b95b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
52b960:	66 3b 38             	cmp    (%eax),%di
52b963:	74 2f                	je     0x52b994
52b965:	41                   	inc    %ecx
52b966:	83 c0 02             	add    $0x2,%eax
52b969:	3b ca                	cmp    %edx,%ecx
52b96b:	7c f3                	jl     0x52b960
52b96d:	83 c8 ff             	or     $0xffffffff,%eax
52b970:	8b 4e 6c             	mov    0x6c(%esi),%ecx
52b973:	0f bf d0             	movswl %ax,%edx
52b976:	89 55 a0             	mov    %edx,-0x60(%ebp)
52b979:	39 4e 70             	cmp    %ecx,0x70(%esi)
52b97c:	7f 1b                	jg     0x52b999
52b97e:	8b 45 d4             	mov    -0x2c(%ebp),%eax
52b981:	03 45 18             	add    0x18(%ebp),%eax
52b984:	53                   	push   %ebx
52b985:	52                   	push   %edx
52b986:	50                   	push   %eax
52b987:	6a 59                	push   $0x59
52b989:	56                   	push   %esi
52b98a:	e8 71 ab fd ff       	call   0x506500
52b98f:	83 c4 14             	add    $0x14,%esp
52b992:	eb 38                	jmp    0x52b9cc
52b994:	0f b7 c1             	movzwl %cx,%eax
52b997:	eb d7                	jmp    0x52b970
52b999:	8b 7d d4             	mov    -0x2c(%ebp),%edi
52b99c:	8d 41 01             	lea    0x1(%ecx),%eax
52b99f:	03 7d 18             	add    0x18(%ebp),%edi
52b9a2:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52b9a5:	8b 55 a0             	mov    -0x60(%ebp),%edx
52b9a8:	89 46 6c             	mov    %eax,0x6c(%esi)
52b9ab:	8b 46 68             	mov    0x68(%esi),%eax
52b9ae:	8b 75 90             	mov    -0x70(%ebp),%esi
52b9b1:	c7 04 88 59 00 00 00 	movl   $0x59,(%eax,%ecx,4)
52b9b8:	89 7c 88 04          	mov    %edi,0x4(%eax,%ecx,4)
52b9bc:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
52b9c0:	89 5c 88 0c          	mov    %ebx,0xc(%eax,%ecx,4)
52b9c4:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52b9cb:	00
52b9cc:	8b 4d b0             	mov    -0x50(%ebp),%ecx
52b9cf:	43                   	inc    %ebx
52b9d0:	8b 7d b4             	mov    -0x4c(%ebp),%edi
52b9d3:	8b 55 d0             	mov    -0x30(%ebp),%edx
52b9d6:	47                   	inc    %edi
52b9d7:	89 7d b4             	mov    %edi,-0x4c(%ebp)
52b9da:	0f b7 41 32          	movzwl 0x32(%ecx),%eax
52b9de:	3b f8                	cmp    %eax,%edi
52b9e0:	8b c1                	mov    %ecx,%eax
52b9e2:	0f 8c 5c ff ff ff    	jl     0x52b944
52b9e8:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
52b9ec:	0f 84 b0 01 00 00    	je     0x52bba2
52b9f2:	0f b7 48 32          	movzwl 0x32(%eax),%ecx
52b9f6:	8b 46 6c             	mov    0x6c(%esi),%eax
52b9f9:	03 c1                	add    %ecx,%eax
52b9fb:	c7 45 80 34 00 00 00 	movl   $0x34,-0x80(%ebp)
52ba02:	89 45 b4             	mov    %eax,-0x4c(%ebp)
52ba05:	8b 42 38             	mov    0x38(%edx),%eax
52ba08:	8b 55 98             	mov    -0x68(%ebp),%edx
52ba0b:	24 03                	and    $0x3,%al
52ba0d:	3c 02                	cmp    $0x2,%al
52ba0f:	0f 44 55 cc          	cmove  -0x34(%ebp),%edx
52ba13:	33 db                	xor    %ebx,%ebx
52ba15:	89 55 a0             	mov    %edx,-0x60(%ebp)
52ba18:	89 5d c4             	mov    %ebx,-0x3c(%ebp)
52ba1b:	85 c9                	test   %ecx,%ecx
52ba1d:	0f 8e 7f 01 00 00    	jle    0x52bba2
52ba23:	8b 4d b0             	mov    -0x50(%ebp),%ecx
52ba26:	8b 55 dc             	mov    -0x24(%ebp),%edx
52ba29:	8b 41 20             	mov    0x20(%ecx),%eax
52ba2c:	8b 3a                	mov    (%edx),%edi
52ba2e:	8b 0c 98             	mov    (%eax,%ebx,4),%ecx