51a7b2:	c1 ea 03             	shr    $0x3,%edx
51a7b5:	6b c2 7d             	imul   $0x7d,%edx,%eax
51a7b8:	89 75 0c             	mov    %esi,0xc(%ebp)
51a7bb:	2b c8                	sub    %eax,%ecx
51a7bd:	8b 44 8b 0c          	mov    0xc(%ebx,%ecx,4),%eax
51a7c1:	85 c0                	test   %eax,%eax
51a7c3:	75 5a                	jne    0x51a81f
51a7c5:	8b 43 04             	mov    0x4(%ebx),%eax
51a7c8:	83 f8 7c             	cmp    $0x7c,%eax
51a7cb:	0f 82 0c 01 00 00    	jb     0x51a8dd
51a7d1:	8b 43 04             	mov    0x4(%ebx),%eax
51a7d4:	83 f8 3e             	cmp    $0x3e,%eax
51a7d7:	0f 82 00 01 00 00    	jb     0x51a8dd
51a7dd:	83 3d 10 18 72 00 00 	cmpl   $0x0,0x721810
51a7e4:	74 65                	je     0x51a84b
51a7e6:	a1 90 ff 72 00       	mov    0x72ff90,%eax
51a7eb:	85 c0                	test   %eax,%eax
51a7ed:	74 0a                	je     0x51a7f9
51a7ef:	50                   	push   %eax
51a7f0:	ff 15 60 18 72 00    	call   *0x721860
51a7f6:	83 c4 04             	add    $0x4,%esp
51a7f9:	8d 45 08             	lea    0x8(%ebp),%eax
51a7fc:	50                   	push   %eax
51a7fd:	68 f4 01 00 00       	push   $0x1f4
51a802:	e8 f9 ea fe ff       	call   0x509300
51a807:	a1 90 ff 72 00       	mov    0x72ff90,%eax
51a80c:	83 c4 08             	add    $0x8,%esp
51a80f:	85 c0                	test   %eax,%eax
51a811:	74 33                	je     0x51a846
51a813:	50                   	push   %eax
51a814:	ff 15 68 18 72 00    	call   *0x721868
51a81a:	8b 45 08             	mov    0x8(%ebp),%eax
51a81d:	eb 37                	jmp    0x51a856
51a81f:	3b c6                	cmp    %esi,%eax
51a821:	0f 84 da 00 00 00    	je     0x51a901
51a827:	8d 41 01             	lea    0x1(%ecx),%eax
51a82a:	83 f8 7d             	cmp    $0x7d,%eax
51a82d:	1b c9                	sbb    %ecx,%ecx
51a82f:	23 c8                	and    %eax,%ecx
51a831:	83 7c 8b 0c 00       	cmpl   $0x0,0xc(%ebx,%ecx,4)
51a836:	74 99                	je     0x51a7d1
51a838:	39 74 8b 0c          	cmp    %esi,0xc(%ebx,%ecx,4)
51a83c:	75 e9                	jne    0x51a827
51a83e:	5e                   	pop    %esi
51a83f:	33 c0                	xor    %eax,%eax
51a841:	5b                   	pop    %ebx
51a842:	8b e5                	mov    %ebp,%esp
51a844:	5d                   	pop    %ebp
51a845:	c3                   	ret
51a846:	8b 45 08             	mov    0x8(%ebp),%eax
51a849:	eb 0e                	jmp    0x51a859
51a84b:	68 f4 01 00 00       	push   $0x1f4
51a850:	ff 15 30 18 72 00    	call   *0x721830
51a856:	83 c4 04             	add    $0x4,%esp
51a859:	89 45 08             	mov    %eax,0x8(%ebp)
51a85c:	85 c0                	test   %eax,%eax
51a85e:	75 0b                	jne    0x51a86b
51a860:	5e                   	pop    %esi
51a861:	b8 07 00 00 00       	mov    $0x7,%eax
51a866:	5b                   	pop    %ebx
51a867:	8b e5                	mov    %ebp,%esp
51a869:	5d                   	pop    %ebp
51a86a:	c3                   	ret
51a86b:	57                   	push   %edi
51a86c:	8d 53 0c             	lea    0xc(%ebx),%edx
51a86f:	8b f8                	mov    %eax,%edi
51a871:	68 f4 01 00 00       	push   $0x1f4
51a876:	8b f2                	mov    %edx,%esi
51a878:	b9 7d 00 00 00       	mov    $0x7d,%ecx
51a87d:	6a 00                	push   $0x0
51a87f:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
51a881:	52                   	push   %edx
51a882:	e8 79 91 0c 00       	call   0x5e3a00
51a887:	8b 0b                	mov    (%ebx),%ecx
51a889:	b8 d3 4d 62 10       	mov    $0x10624dd3,%eax
51a88e:	ff 75 0c             	push   0xc(%ebp)
51a891:	83 c1 7c             	add    $0x7c,%ecx
51a894:	f7 e1                	mul    %ecx
51a896:	53                   	push   %ebx
51a897:	c1 ea 03             	shr    $0x3,%edx
51a89a:	89 53 08             	mov    %edx,0x8(%ebx)
51a89d:	e8 9e fe ff ff       	call   0x51a740
51a8a2:	8b 7d 08             	mov    0x8(%ebp),%edi
51a8a5:	83 c4 14             	add    $0x14,%esp
51a8a8:	89 45 fc             	mov    %eax,-0x4(%ebp)
51a8ab:	33 f6                	xor    %esi,%esi
51a8ad:	0f 1f 00             	nopl   (%eax)
51a8b0:	8b 0c b7             	mov    (%edi,%esi,4),%ecx
51a8b3:	85 c9                	test   %ecx,%ecx
51a8b5:	74 0d                	je     0x51a8c4
51a8b7:	51                   	push   %ecx
51a8b8:	53                   	push   %ebx
51a8b9:	e8 82 fe ff ff       	call   0x51a740
51a8be:	83 c4 08             	add    $0x8,%esp
51a8c1:	09 45 fc             	or     %eax,-0x4(%ebp)
51a8c4:	46                   	inc    %esi
51a8c5:	83 fe 7d             	cmp    $0x7d,%esi
51a8c8:	72 e6                	jb     0x51a8b0
51a8ca:	57                   	push   %edi
51a8cb:	e8 c0 04 fd ff       	call   0x4ead90
51a8d0:	8b 45 fc             	mov    -0x4(%ebp),%eax
51a8d3:	83 c4 04             	add    $0x4,%esp
51a8d6:	5f                   	pop    %edi
51a8d7:	5e                   	pop    %esi
51a8d8:	5b                   	pop    %ebx
51a8d9:	8b e5                	mov    %ebp,%esp
51a8db:	5d                   	pop    %ebp
51a8dc:	c3                   	ret
51a8dd:	40                   	inc    %eax
51a8de:	89 43 04             	mov    %eax,0x4(%ebx)
51a8e1:	33 c0                	xor    %eax,%eax
51a8e3:	89 74 8b 0c          	mov    %esi,0xc(%ebx,%ecx,4)
51a8e7:	5e                   	pop    %esi
51a8e8:	5b                   	pop    %ebx
51a8e9:	8b e5                	mov    %ebp,%esp
51a8eb:	5d                   	pop    %ebp
51a8ec:	c3                   	ret
51a8ed:	8b ce                	mov    %esi,%ecx
51a8ef:	83 e6 07             	and    $0x7,%esi
51a8f2:	c1 e9 03             	shr    $0x3,%ecx
51a8f5:	0f b6 44 19 0c       	movzbl 0xc(%ecx,%ebx,1),%eax
51a8fa:	0f ab f0             	bts    %esi,%eax
51a8fd:	88 44 19 0c          	mov    %al,0xc(%ecx,%ebx,1)
51a901:	5e                   	pop    %esi
51a902:	33 c0                	xor    %eax,%eax
51a904:	5b                   	pop    %ebx
51a905:	8b e5                	mov    %ebp,%esp
51a907:	5d                   	pop    %ebp
51a908:	c3                   	ret
51a909:	cc                   	int3
51a90a:	cc                   	int3
51a90b:	cc                   	int3
51a90c:	cc                   	int3
51a90d:	cc                   	int3
51a90e:	cc                   	int3
51a90f:	cc                   	int3
51a910:	55                   	push   %ebp
51a911:	8b ec                	mov    %esp,%ebp
51a913:	8b 45 08             	mov    0x8(%ebp),%eax
51a916:	85 c0                	test   %eax,%eax
51a918:	74 17                	je     0x51a931
51a91a:	ff 75 0c             	push   0xc(%ebp)
51a91d:	50                   	push   %eax
51a91e:	e8 1d 00 00 00       	call   0x51a940
51a923:	83 c4 08             	add    $0x8,%esp
51a926:	85 c0                	test   %eax,%eax
51a928:	74 07                	je     0x51a931
51a92a:	b8 01 00 00 00       	mov    $0x1,%eax
51a92f:	5d                   	pop    %ebp
51a930:	c3                   	ret
51a931:	33 c0                	xor    %eax,%eax
51a933:	5d                   	pop    %ebp
51a934:	c3                   	ret
51a935:	cc                   	int3
51a936:	cc                   	int3
51a937:	cc                   	int3
51a938:	cc                   	int3
51a939:	cc                   	int3
51a93a:	cc                   	int3
51a93b:	cc                   	int3
51a93c:	cc                   	int3
51a93d:	cc                   	int3
51a93e:	cc                   	int3
51a93f:	cc                   	int3
51a940:	55                   	push   %ebp
51a941:	8b ec                	mov    %esp,%ebp
51a943:	56                   	push   %esi
51a944:	8b 75 08             	mov    0x8(%ebp),%esi
51a947:	57                   	push   %edi
51a948:	8b 7d 0c             	mov    0xc(%ebp),%edi
51a94b:	4f                   	dec    %edi
51a94c:	3b 3e                	cmp    (%esi),%edi
51a94e:	73 76                	jae    0x51a9c6
51a950:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
51a954:	74 17                	je     0x51a96d
51a956:	8b c7                	mov    %edi,%eax
51a958:	33 d2                	xor    %edx,%edx
51a95a:	f7 76 08             	divl   0x8(%esi)
51a95d:	8b fa                	mov    %edx,%edi
51a95f:	8b 74 86 0c          	mov    0xc(%esi,%eax,4),%esi
51a963:	85 f6                	test   %esi,%esi
51a965:	74 5f                	je     0x51a9c6
51a967:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
51a96b:	75 e9                	jne    0x51a956
51a96d:	81 3e a0 0f 00 00    	cmpl   $0xfa0,(%esi)
51a973:	77 1f                	ja     0x51a994
51a975:	8b cf                	mov    %edi,%ecx
51a977:	b8 01 00 00 00       	mov    $0x1,%eax
51a97c:	c1 ef 03             	shr    $0x3,%edi
51a97f:	83 e1 07             	and    $0x7,%ecx
51a982:	d3 e0                	shl    %cl,%eax
51a984:	84 44 37 0c          	test   %al,0xc(%edi,%esi,1)
51a988:	b8 00 00 00 00       	mov    $0x0,%eax
51a98d:	5f                   	pop    %edi
51a98e:	0f 95 c0             	setne  %al
51a991:	5e                   	pop    %esi
51a992:	5d                   	pop    %ebp
51a993:	c3                   	ret
51a994:	b8 d3 4d 62 10       	mov    $0x10624dd3,%eax
51a999:	f7 e7                	mul    %edi
51a99b:	c1 ea 03             	shr    $0x3,%edx
51a99e:	6b c2 7d             	imul   $0x7d,%edx,%eax
51a9a1:	8b d7                	mov    %edi,%edx
51a9a3:	47                   	inc    %edi
51a9a4:	2b d0                	sub    %eax,%edx
51a9a6:	8b 44 96 0c          	mov    0xc(%esi,%edx,4),%eax
51a9aa:	85 c0                	test   %eax,%eax
51a9ac:	74 18                	je     0x51a9c6
51a9ae:	b9 7d 00 00 00       	mov    $0x7d,%ecx
51a9b3:	3b c7                	cmp    %edi,%eax
51a9b5:	74 15                	je     0x51a9cc
51a9b7:	8d 42 01             	lea    0x1(%edx),%eax
51a9ba:	33 d2                	xor    %edx,%edx
51a9bc:	f7 f1                	div    %ecx
51a9be:	8b 44 96 0c          	mov    0xc(%esi,%edx,4),%eax
51a9c2:	85 c0                	test   %eax,%eax
51a9c4:	75 ed                	jne    0x51a9b3
51a9c6:	5f                   	pop    %edi
51a9c7:	33 c0                	xor    %eax,%eax
51a9c9:	5e                   	pop    %esi
51a9ca:	5d                   	pop    %ebp
51a9cb:	c3                   	ret
51a9cc:	5f                   	pop    %edi
51a9cd:	b8 01 00 00 00       	mov    $0x1,%eax
51a9d2:	5e                   	pop    %esi
51a9d3:	5d                   	pop    %ebp
51a9d4:	c3                   	ret
51a9d5:	cc                   	int3
51a9d6:	cc                   	int3
51a9d7:	cc                   	int3
51a9d8:	cc                   	int3
51a9d9:	cc                   	int3
51a9da:	cc                   	int3
51a9db:	cc                   	int3
51a9dc:	cc                   	int3
51a9dd:	cc                   	int3
51a9de:	cc                   	int3
51a9df:	cc                   	int3
51a9e0:	55                   	push   %ebp
51a9e1:	8b ec                	mov    %esp,%ebp
51a9e3:	51                   	push   %ecx
51a9e4:	8b 55 0c             	mov    0xc(%ebp),%edx
51a9e7:	53                   	push   %ebx
51a9e8:	8b 5d 08             	mov    0x8(%ebp),%ebx
51a9eb:	56                   	push   %esi
51a9ec:	0f b7 4a 08          	movzwl 0x8(%edx),%ecx
51a9f0:	8b 72 0c             	mov    0xc(%edx),%esi
51a9f3:	0f b7 43 08          	movzwl 0x8(%ebx),%eax
51a9f7:	89 45 08             	mov    %eax,0x8(%ebp)
51a9fa:	8b c1                	mov    %ecx,%eax
51a9fc:	0b 45 08             	or     0x8(%ebp),%eax
51a9ff:	89 75 fc             	mov    %esi,-0x4(%ebp)
51aa02:	57                   	push   %edi
51aa03:	8b 7b 0c             	mov    0xc(%ebx),%edi
51aa06:	a9 00 40 00 00       	test   $0x4000,%eax
51aa0b:	74 6f                	je     0x51aa7c
51aa0d:	0f b7 43 08          	movzwl 0x8(%ebx),%eax
51aa11:	23 c8                	and    %eax,%ecx
51aa13:	f7 c1 00 40 00 00    	test   $0x4000,%ecx
51aa19:	74 0b                	je     0x51aa26
51aa1b:	8b 03                	mov    (%ebx),%eax
51aa1d:	2b 02                	sub    (%edx),%eax
51aa1f:	5f                   	pop    %edi
51aa20:	5e                   	pop    %esi
51aa21:	5b                   	pop    %ebx
51aa22:	8b e5                	mov    %ebp,%esp
51aa24:	5d                   	pop    %ebp
51aa25:	c3                   	ret
51aa26:	a9 00 40 00 00       	test   $0x4000,%eax
51aa2b:	74 25                	je     0x51aa52
51aa2d:	56                   	push   %esi
51aa2e:	ff 72 10             	push   0x10(%edx)
51aa31:	e8 ea cb fe ff       	call   0x507620
51aa36:	83 c4 08             	add    $0x8,%esp
51aa39:	85 c0                	test   %eax,%eax
51aa3b:	75 0a                	jne    0x51aa47
51aa3d:	5f                   	pop    %edi
51aa3e:	5e                   	pop    %esi
51aa3f:	83 c8 ff             	or     $0xffffffff,%eax
51aa42:	5b                   	pop    %ebx
51aa43:	8b e5                	mov    %ebp,%esp
51aa45:	5d                   	pop    %ebp
51aa46:	c3                   	ret
51aa47:	8b 03                	mov    (%ebx),%eax
51aa49:	5f                   	pop    %edi
51aa4a:	2b c6                	sub    %esi,%eax
51aa4c:	5e                   	pop    %esi
51aa4d:	5b                   	pop    %ebx
51aa4e:	8b e5                	mov    %ebp,%esp
51aa50:	5d                   	pop    %ebp
51aa51:	c3                   	ret
51aa52:	57                   	push   %edi
51aa53:	ff 73 10             	push   0x10(%ebx)
51aa56:	e8 c5 cb fe ff       	call   0x507620
51aa5b:	83 c4 08             	add    $0x8,%esp
51aa5e:	85 c0                	test   %eax,%eax
51aa60:	75 0c                	jne    0x51aa6e
51aa62:	5f                   	pop    %edi
51aa63:	5e                   	pop    %esi
51aa64:	b8 01 00 00 00       	mov    $0x1,%eax
51aa69:	5b                   	pop    %ebx
51aa6a:	8b e5                	mov    %ebp,%esp
51aa6c:	5d                   	pop    %ebp
51aa6d:	c3                   	ret
51aa6e:	8b 45 0c             	mov    0xc(%ebp),%eax
51aa71:	2b 38                	sub    (%eax),%edi
51aa73:	8b c7                	mov    %edi,%eax
51aa75:	5f                   	pop    %edi
51aa76:	5e                   	pop    %esi
51aa77:	5b                   	pop    %ebx
51aa78:	8b e5                	mov    %ebp,%esp
51aa7a:	5d                   	pop    %ebp
51aa7b:	c3                   	ret
51aa7c:	3b 7a 0c             	cmp    0xc(%edx),%edi
51aa7f:	8b f7                	mov    %edi,%esi
51aa81:	8b 4b 10             	mov    0x10(%ebx),%ecx
51aa84:	0f 4f 72 0c          	cmovg  0xc(%edx),%esi
51aa88:	8b 52 10             	mov    0x10(%edx),%edx
51aa8b:	83 ee 04             	sub    $0x4,%esi
51aa8e:	72 11                	jb     0x51aaa1
51aa90:	8b 01                	mov    (%ecx),%eax
51aa92:	3b 02                	cmp    (%edx),%eax
51aa94:	75 10                	jne    0x51aaa6
51aa96:	83 c1 04             	add    $0x4,%ecx
51aa99:	83 c2 04             	add    $0x4,%edx
51aa9c:	83 ee 04             	sub    $0x4,%esi
51aa9f:	73 ef                	jae    0x51aa90
51aaa1:	83 fe fc             	cmp    $0xfffffffc,%esi
51aaa4:	74 34                	je     0x51aada
51aaa6:	8a 01                	mov    (%ecx),%al
51aaa8:	3a 02                	cmp    (%edx),%al
51aaaa:	75 27                	jne    0x51aad3
51aaac:	83 fe fd             	cmp    $0xfffffffd,%esi
51aaaf:	74 29                	je     0x51aada
51aab1:	8a 41 01             	mov    0x1(%ecx),%al
51aab4:	3a 42 01             	cmp    0x1(%edx),%al
51aab7:	75 1a                	jne    0x51aad3
51aab9:	83 fe fe             	cmp    $0xfffffffe,%esi
51aabc:	74 1c                	je     0x51aada
51aabe:	8a 41 02             	mov    0x2(%ecx),%al
51aac1:	3a 42 02             	cmp    0x2(%edx),%al
51aac4:	75 0d                	jne    0x51aad3
51aac6:	83 fe ff             	cmp    $0xffffffff,%esi
51aac9:	74 0f                	je     0x51aada
51aacb:	8a 41 03             	mov    0x3(%ecx),%al
51aace:	3a 42 03             	cmp    0x3(%edx),%al
51aad1:	74 07                	je     0x51aada
51aad3:	1b c0                	sbb    %eax,%eax
51aad5:	83 c8 01             	or     $0x1,%eax
51aad8:	eb 02                	jmp    0x51aadc