6518d1:	e8 d2 39 00 00       	call   0x6552a8
6518d6:	03 45 d7             	add    -0x29(%ebp),%eax
6518d9:	89 45 df             	mov    %eax,-0x21(%ebp)
6518dc:	e9 a3 02 00 00       	jmp    0x651b84
6518e1:	8b 03                	mov    (%ebx),%eax
6518e3:	8b d7                	mov    %edi,%edx
6518e5:	e8 9e 39 00 00       	call   0x655288
6518ea:	03 45 d3             	add    -0x2d(%ebp),%eax
6518ed:	89 45 db             	mov    %eax,-0x25(%ebp)
6518f0:	8b 45 db             	mov    -0x25(%ebp),%eax
6518f3:	3b 45 d3             	cmp    -0x2d(%ebp),%eax
6518f6:	0f 8e 7b 02 00 00    	jle    0x651b77
6518fc:	8d 45 d3             	lea    -0x2d(%ebp),%eax
6518ff:	50                   	push   %eax
651900:	8b 03                	mov    (%ebx),%eax
651902:	8b 80 08 02 00 00    	mov    0x208(%eax),%eax
651908:	e8 b3 73 dd ff       	call   0x428cc0
65190d:	50                   	push   %eax
65190e:	e8 bd 5d db ff       	call   0x4076d0
651913:	85 c0                	test   %eax,%eax
651915:	0f 84 5c 02 00 00    	je     0x651b77
65191b:	8a 45 08             	mov    0x8(%ebp),%al
65191e:	88 45 f3             	mov    %al,-0xd(%ebp)
651921:	8b 03                	mov    (%ebx),%eax
651923:	e8 8c f7 ff ff       	call   0x6510b4
651928:	84 c0                	test   %al,%al
65192a:	74 1b                	je     0x651947
65192c:	8b 03                	mov    (%ebx),%eax
65192e:	8b 80 2c 02 00 00    	mov    0x22c(%eax),%eax
651934:	3b 45 f4             	cmp    -0xc(%ebp),%eax
651937:	75 0e                	jne    0x651947
651939:	8b 03                	mov    (%ebx),%eax
65193b:	3b b8 28 02 00 00    	cmp    0x228(%eax),%edi
651941:	75 04                	jne    0x651947
651943:	80 4d f3 02          	orb    $0x2,-0xd(%ebp)
651947:	8b 45 1c             	mov    0x1c(%ebp),%eax
65194a:	8d 48 80             	lea    -0x80(%eax),%ecx
65194d:	8b 55 f4             	mov    -0xc(%ebp),%edx
651950:	8b c7                	mov    %edi,%eax
651952:	e8 91 e4 ff ff       	call   0x64fde8
651957:	84 c0                	test   %al,%al
651959:	74 04                	je     0x65195f
65195b:	80 4d f3 01          	orb    $0x1,-0xd(%ebp)
65195f:	f6 45 f3 02          	testb  $0x2,-0xd(%ebp)
651963:	74 22                	je     0x651987
651965:	8b 03                	mov    (%ebx),%eax
651967:	f6 80 49 02 00 00 04 	testb  $0x4,0x249(%eax)
65196e:	74 17                	je     0x651987
651970:	8b 03                	mov    (%ebx),%eax
651972:	80 b8 8d 02 00 00 00 	cmpb   $0x0,0x28d(%eax)
651979:	74 0c                	je     0x651987
65197b:	8b 03                	mov    (%ebx),%eax
65197d:	f6 40 1c 10          	testb  $0x10,0x1c(%eax)
651981:	0f 84 f0 01 00 00    	je     0x651b77
651987:	8b 03                	mov    (%ebx),%eax
651989:	80 b8 8c 02 00 00 00 	cmpb   $0x0,0x28c(%eax)
651990:	75 08                	jne    0x65199a
651992:	8b 03                	mov    (%ebx),%eax
651994:	f6 40 1c 10          	testb  $0x10,0x1c(%eax)
651998:	74 6d                	je     0x651a07
65199a:	8b 03                	mov    (%ebx),%eax
65199c:	8b b0 08 02 00 00    	mov    0x208(%eax),%esi
6519a2:	8b 03                	mov    (%ebx),%eax
6519a4:	8b 50 68             	mov    0x68(%eax),%edx
6519a7:	8b c6                	mov    %esi,%eax
6519a9:	e8 0e 72 dd ff       	call   0x428bbc
6519ae:	f6 45 f3 01          	testb  $0x1,-0xd(%ebp)
6519b2:	74 3e                	je     0x6519f2
6519b4:	f6 45 f3 02          	testb  $0x2,-0xd(%ebp)
6519b8:	74 1c                	je     0x6519d6
6519ba:	8b 03                	mov    (%ebx),%eax
6519bc:	66 8b 80 48 02 00 00 	mov    0x248(%eax),%ax
6519c3:	66 23 05 cc 1b 65 00 	and    0x651bcc,%ax
6519ca:	66 8b 15 d0 1b 65 00 	mov    0x651bd0,%dx
6519d1:	66 3b d0             	cmp    %ax,%dx
6519d4:	74 1c                	je     0x6519f2
6519d6:	8b 46 14             	mov    0x14(%esi),%eax
6519d9:	ba 0d 00 00 80       	mov    $0x8000000d,%edx
6519de:	e8 a1 68 dd ff       	call   0x428284
6519e3:	8b 46 0c             	mov    0xc(%esi),%eax
6519e6:	ba 0e 00 00 80       	mov    $0x8000000e,%edx
6519eb:	e8 a8 60 dd ff       	call   0x427a98
6519f0:	eb 0b                	jmp    0x6519fd
6519f2:	8b 46 14             	mov    0x14(%esi),%eax
6519f5:	8b 55 0c             	mov    0xc(%ebp),%edx
6519f8:	e8 87 68 dd ff       	call   0x428284
6519fd:	8d 55 d3             	lea    -0x2d(%ebp),%edx
651a00:	8b c6                	mov    %esi,%eax
651a02:	e8 f5 6c dd ff       	call   0x4286fc
651a07:	8d 45 d3             	lea    -0x2d(%ebp),%eax
651a0a:	50                   	push   %eax
651a0b:	8a 45 f3             	mov    -0xd(%ebp),%al
651a0e:	50                   	push   %eax
651a0f:	8b 03                	mov    (%ebx),%eax
651a11:	8b 4d f4             	mov    -0xc(%ebp),%ecx
651a14:	8b d7                	mov    %edi,%edx
651a16:	8b 30                	mov    (%eax),%esi
651a18:	ff 96 d4 00 00 00    	call   *0xd4(%esi)
651a1e:	8b 03                	mov    (%ebx),%eax
651a20:	80 b8 8c 02 00 00 00 	cmpb   $0x0,0x28c(%eax)
651a27:	0f 84 ab 00 00 00    	je     0x651ad8
651a2d:	f6 45 f3 04          	testb  $0x4,-0xd(%ebp)
651a31:	0f 84 a1 00 00 00    	je     0x651ad8
651a37:	8b 03                	mov    (%ebx),%eax
651a39:	80 b8 a5 01 00 00 00 	cmpb   $0x0,0x1a5(%eax)
651a40:	0f 84 92 00 00 00    	je     0x651ad8
651a46:	8b 45 1c             	mov    0x1c(%ebp),%eax
651a49:	8b 80 7c ff ff ff    	mov    -0x84(%eax),%eax
651a4f:	8b 55 1c             	mov    0x1c(%ebp),%edx
651a52:	0b 82 78 ff ff ff    	or     -0x88(%edx),%eax
651a58:	74 7e                	je     0x651ad8
651a5a:	57                   	push   %edi
651a5b:	8d 75 d3             	lea    -0x2d(%ebp),%esi
651a5e:	8d 7d c3             	lea    -0x3d(%ebp),%edi
651a61:	a5                   	movsl  %ds:(%esi),%es:(%edi)
651a62:	a5                   	movsl  %ds:(%esi),%es:(%edi)
651a63:	a5                   	movsl  %ds:(%esi),%es:(%edi)
651a64:	a5                   	movsl  %ds:(%esi),%es:(%edi)
651a65:	5f                   	pop    %edi
651a66:	8b 45 1c             	mov    0x1c(%ebp),%eax
651a69:	f6 80 7c ff ff ff 04 	testb  $0x4,-0x84(%eax)
651a70:	75 0b                	jne    0x651a7d
651a72:	8b 45 1c             	mov    0x1c(%ebp),%eax
651a75:	8b 40 90             	mov    -0x70(%eax),%eax
651a78:	01 45 cb             	add    %eax,-0x35(%ebp)
651a7b:	eb 15                	jmp    0x651a92
651a7d:	8b 45 1c             	mov    0x1c(%ebp),%eax
651a80:	f6 80 7c ff ff ff 08 	testb  $0x8,-0x84(%eax)
651a87:	75 09                	jne    0x651a92
651a89:	8b 45 1c             	mov    0x1c(%ebp),%eax
651a8c:	8b 40 c0             	mov    -0x40(%eax),%eax
651a8f:	01 45 cf             	add    %eax,-0x31(%ebp)
651a92:	8b 45 1c             	mov    0x1c(%ebp),%eax
651a95:	8b 80 7c ff ff ff    	mov    -0x84(%eax),%eax
651a9b:	50                   	push   %eax
651a9c:	6a 04                	push   $0x4
651a9e:	8d 45 c3             	lea    -0x3d(%ebp),%eax
651aa1:	50                   	push   %eax
651aa2:	8b 03                	mov    (%ebx),%eax
651aa4:	8b 80 08 02 00 00    	mov    0x208(%eax),%eax
651aaa:	e8 11 72 dd ff       	call   0x428cc0
651aaf:	50                   	push   %eax
651ab0:	e8 53 5e db ff       	call   0x407908
651ab5:	8b 45 1c             	mov    0x1c(%ebp),%eax
651ab8:	8b 80 78 ff ff ff    	mov    -0x88(%eax),%eax
651abe:	50                   	push   %eax
651abf:	6a 04                	push   $0x4
651ac1:	8d 45 c3             	lea    -0x3d(%ebp),%eax
651ac4:	50                   	push   %eax
651ac5:	8b 03                	mov    (%ebx),%eax
651ac7:	8b 80 08 02 00 00    	mov    0x208(%eax),%eax
651acd:	e8 ee 71 dd ff       	call   0x428cc0
651ad2:	50                   	push   %eax
651ad3:	e8 30 5e db ff       	call   0x407908
651ad8:	8b 03                	mov    (%ebx),%eax
651ada:	80 b8 8c 02 00 00 00 	cmpb   $0x0,0x28c(%eax)
651ae1:	0f 84 90 00 00 00    	je     0x651b77
651ae7:	8b 03                	mov    (%ebx),%eax
651ae9:	f6 40 1c 10          	testb  $0x10,0x1c(%eax)
651aed:	0f 85 84 00 00 00    	jne    0x651b77
651af3:	f6 45 f3 02          	testb  $0x2,-0xd(%ebp)
651af7:	74 7e                	je     0x651b77
651af9:	8b 03                	mov    (%ebx),%eax
651afb:	66 8b 80 48 02 00 00 	mov    0x248(%eax),%ax
651b02:	66 23 05 d4 1b 65 00 	and    0x651bd4,%ax
651b09:	66 8b 15 d4 1b 65 00 	mov    0x651bd4,%dx
651b10:	66 3b d0             	cmp    %ax,%dx
651b13:	74 62                	je     0x651b77
651b15:	8b 03                	mov    (%ebx),%eax
651b17:	f6 80 49 02 00 00 10 	testb  $0x10,0x249(%eax)
651b1e:	75 57                	jne    0x651b77
651b20:	8b 03                	mov    (%ebx),%eax
651b22:	66 be c8 ff          	mov    $0xffc8,%si
651b26:	e8 49 21 db ff       	call   0x403c74
651b2b:	84 c0                	test   %al,%al
651b2d:	75 19                	jne    0x651b48
651b2f:	8d 45 d3             	lea    -0x2d(%ebp),%eax
651b32:	50                   	push   %eax
651b33:	8b 03                	mov    (%ebx),%eax
651b35:	8b 80 08 02 00 00    	mov    0x208(%eax),%eax
651b3b:	e8 80 71 dd ff       	call   0x428cc0
651b40:	50                   	push   %eax
651b41:	e8 ca 5d db ff       	call   0x407910
651b46:	eb 2f                	jmp    0x651b77
651b48:	57                   	push   %edi
651b49:	8d 75 d3             	lea    -0x2d(%ebp),%esi
651b4c:	8d 7d e3             	lea    -0x1d(%ebp),%edi
651b4f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
651b50:	a5                   	movsl  %ds:(%esi),%es:(%edi)
651b51:	a5                   	movsl  %ds:(%esi),%es:(%edi)
651b52:	a5                   	movsl  %ds:(%esi),%es:(%edi)
651b53:	5f                   	pop    %edi
651b54:	8b 45 db             	mov    -0x25(%ebp),%eax
651b57:	89 45 e3             	mov    %eax,-0x1d(%ebp)
651b5a:	8b 45 d3             	mov    -0x2d(%ebp),%eax
651b5d:	89 45 eb             	mov    %eax,-0x15(%ebp)
651b60:	8d 45 e3             	lea    -0x1d(%ebp),%eax
651b63:	50                   	push   %eax
651b64:	8b 03                	mov    (%ebx),%eax
651b66:	8b 80 08 02 00 00    	mov    0x208(%eax),%eax
651b6c:	e8 4f 71 dd ff       	call   0x428cc0
651b71:	50                   	push   %eax
651b72:	e8 99 5d db ff       	call   0x407910
651b77:	8b 45 1c             	mov    0x1c(%ebp),%eax
651b7a:	8b 40 90             	mov    -0x70(%eax),%eax
651b7d:	03 45 db             	add    -0x25(%ebp),%eax
651b80:	89 45 d3             	mov    %eax,-0x2d(%ebp)
651b83:	47                   	inc    %edi
651b84:	8b 45 d3             	mov    -0x2d(%ebp),%eax
651b87:	3b 45 14             	cmp    0x14(%ebp),%eax
651b8a:	7d 0e                	jge    0x651b9a
651b8c:	8b 03                	mov    (%ebx),%eax
651b8e:	3b b8 1c 02 00 00    	cmp    0x21c(%eax),%edi
651b94:	0f 8c 47 fd ff ff    	jl     0x6518e1
651b9a:	8b 45 1c             	mov    0x1c(%ebp),%eax
651b9d:	8b 40 c0             	mov    -0x40(%eax),%eax
651ba0:	03 45 df             	add    -0x21(%ebp),%eax
651ba3:	89 45 d7             	mov    %eax,-0x29(%ebp)
651ba6:	ff 45 f4             	incl   -0xc(%ebp)
651ba9:	8b 45 d7             	mov    -0x29(%ebp),%eax
651bac:	3b 45 10             	cmp    0x10(%ebp),%eax
651baf:	7d 11                	jge    0x651bc2
651bb1:	8b 03                	mov    (%ebx),%eax
651bb3:	8b 80 4c 02 00 00    	mov    0x24c(%eax),%eax
651bb9:	3b 45 f4             	cmp    -0xc(%ebp),%eax
651bbc:	0f 8f 01 fd ff ff    	jg     0x6518c3
651bc2:	5f                   	pop    %edi
651bc3:	5e                   	pop    %esi
651bc4:	5b                   	pop    %ebx
651bc5:	8b e5                	mov    %ebp,%esp
651bc7:	5d                   	pop    %ebp
651bc8:	c2 14 00             	ret    $0x14
651bcb:	00 20                	add    %ah,(%eax)
651bcd:	10 00                	adc    %al,(%eax)
651bcf:	00 00                	add    %al,(%eax)
651bd1:	00 00                	add    %al,(%eax)
651bd3:	00 00                	add    %al,(%eax)
651bd5:	24 00                	and    $0x0,%al
651bd7:	00 55 8b             	add    %dl,-0x75(%ebp)
651bda:	ec                   	in     (%dx),%al
651bdb:	81 c4 38 ff ff ff    	add    $0xffffff38,%esp
651be1:	53                   	push   %ebx
651be2:	56                   	push   %esi
651be3:	57                   	push   %edi
651be4:	89 45 fc             	mov    %eax,-0x4(%ebp)
651be7:	8d 5d fc             	lea    -0x4(%ebp),%ebx
651bea:	8d 7d 90             	lea    -0x70(%ebp),%edi
651bed:	8b 03                	mov    (%ebx),%eax
651bef:	66 be c8 ff          	mov    $0xffc8,%si
651bf3:	e8 7c 20 db ff       	call   0x403c74
651bf8:	84 c0                	test   %al,%al
651bfa:	74 09                	je     0x651c05
651bfc:	b2 01                	mov    $0x1,%dl
651bfe:	8b 03                	mov    (%ebx),%eax
651c00:	e8 fb 0a 00 00       	call   0x652700
651c05:	8d 95 68 ff ff ff    	lea    -0x98(%ebp),%edx
651c0b:	8b 03                	mov    (%ebx),%eax
651c0d:	8b 80 08 02 00 00    	mov    0x208(%eax),%eax
651c13:	e8 84 70 dd ff       	call   0x428c9c
651c18:	8b d7                	mov    %edi,%edx
651c1a:	8b 03                	mov    (%ebx),%eax
651c1c:	e8 f3 05 00 00       	call   0x652214
651c21:	83 3f 00             	cmpl   $0x0,(%edi)
651c24:	7f 0a                	jg     0x651c30
651c26:	83 7f 30 00          	cmpl   $0x0,0x30(%edi)
651c2a:	0f 8e 0b 02 00 00    	jle    0x651e3b
651c30:	be c0 c0 c0 00       	mov    $0xc0c0c0,%esi
651c35:	8b 03                	mov    (%ebx),%eax
651c37:	8b 57 40             	mov    0x40(%edi),%edx
651c3a:	2b 90 5c 02 00 00    	sub    0x25c(%eax),%edx
651c40:	8b 03                	mov    (%ebx),%eax
651c42:	03 90 3c 02 00 00    	add    0x23c(%eax),%edx
651c48:	8b 03                	mov    (%ebx),%eax
651c4a:	ff b0 58 02 00 00    	push   0x258(%eax)
651c50:	8b 47 10             	mov    0x10(%edi),%eax
651c53:	59                   	pop    %ecx
651c54:	2b c1                	sub    %ecx,%eax
651c56:	8b 0b                	mov    (%ebx),%ecx
651c58:	03 81 38 02 00 00    	add    0x238(%ecx),%eax
651c5e:	e8 ad dd dd ff       	call   0x42fa10
651c63:	83 c0 03             	add    $0x3,%eax
651c66:	89 45 f4             	mov    %eax,-0xc(%ebp)
651c69:	8b 45 f4             	mov    -0xc(%ebp),%eax
651c6c:	c1 e0 03             	shl    $0x3,%eax
651c6f:	03 c0                	add    %eax,%eax
651c71:	e8 6a f9 ff ff       	call   0x6515e0
651c76:	89 45 f8             	mov    %eax,-0x8(%ebp)
651c79:	8b 45 f4             	mov    -0xc(%ebp),%eax
651c7c:	c1 e0 02             	shl    $0x2,%eax
651c7f:	e8 5c f9 ff ff       	call   0x6515e0
651c84:	89 45 f0             	mov    %eax,-0x10(%ebp)
651c87:	8b 45 f0             	mov    -0x10(%ebp),%eax
651c8a:	b9 02 00 00 00       	mov    $0x2,%ecx
651c8f:	8b 55 f4             	mov    -0xc(%ebp),%edx
651c92:	e8 3d f9 ff ff       	call   0x6515d4
651c97:	8b 03                	mov    (%ebx),%eax
651c99:	8b 40 70             	mov    0x70(%eax),%eax
651c9c:	e8 37 59 dd ff       	call   0x4275d8
651ca1:	3d c0 c0 c0 00       	cmp    $0xc0c0c0,%eax
651ca6:	75 05                	jne    0x651cad
651ca8:	be 80 80 80 00       	mov    $0x808080,%esi
651cad:	55                   	push   %ebp
651cae:	6a 00                	push   $0x0
651cb0:	33 c0                	xor    %eax,%eax
651cb2:	89 85 38 ff ff ff    	mov    %eax,-0xc8(%ebp)
651cb8:	33 c0                	xor    %eax,%eax
651cba:	89 85 3c ff ff ff    	mov    %eax,-0xc4(%ebp)
651cc0:	8b 47 04             	mov    0x4(%edi),%eax
651cc3:	89 85 40 ff ff ff    	mov    %eax,-0xc0(%ebp)
651cc9:	8b 47 34             	mov    0x34(%edi),%eax
651ccc:	89 85 44 ff ff ff    	mov    %eax,-0xbc(%ebp)
651cd2:	8d 85 38 ff ff ff    	lea    -0xc8(%ebp),%eax
651cd8:	50                   	push   %eax
651cd9:	6a 03                	push   $0x3
651cdb:	6a 00                	push   $0x0
651cdd:	8b 03                	mov    (%ebx),%eax
651cdf:	8b 80 40 02 00 00    	mov    0x240(%eax),%eax
651ce5:	50                   	push   %eax
651ce6:	8b 03                	mov    (%ebx),%eax
651ce8:	f6 80 48 02 00 00 01 	testb  $0x1,0x248(%eax)
651cef:	0f 95 c2             	setne  %dl
651cf2:	8b 03                	mov    (%ebx),%eax
651cf4:	f6 80 48 02 00 00 02 	testb  $0x2,0x248(%eax)
651cfb:	0f 95 c0             	setne  %al
651cfe:	33 c9                	xor    %ecx,%ecx
651d00:	e8 0b fb ff ff       	call   0x651810
651d05:	59                   	pop    %ecx
651d06:	55                   	push   %ebp
651d07:	6a 00                	push   $0x0
651d09:	8b 47 04             	mov    0x4(%edi),%eax
651d0c:	89 85 38 ff ff ff    	mov    %eax,-0xc8(%ebp)
651d12:	33 c0                	xor    %eax,%eax
651d14:	89 85 3c ff ff ff    	mov    %eax,-0xc4(%ebp)
651d1a:	8b 47 08             	mov    0x8(%edi),%eax
651d1d:	89 85 40 ff ff ff    	mov    %eax,-0xc0(%ebp)
651d23:	8b 47 34             	mov    0x34(%edi),%eax
651d26:	89 85 44 ff ff ff    	mov    %eax,-0xbc(%ebp)
651d2c:	8d 85 38 ff ff ff    	lea    -0xc8(%ebp),%eax
651d32:	50                   	push   %eax
651d33:	6a 03                	push   $0x3
651d35:	6a 00                	push   $0x0
651d37:	8b 03                	mov    (%ebx),%eax
651d39:	8b 80 40 02 00 00    	mov    0x240(%eax),%eax
651d3f:	50                   	push   %eax
651d40:	8b 03                	mov    (%ebx),%eax
651d42:	f6 80 48 02 00 00 01 	testb  $0x1,0x248(%eax)
651d49:	0f 95 c2             	setne  %dl
651d4c:	8b 03                	mov    (%ebx),%eax
651d4e:	f6 80 48 02 00 00 02 	testb  $0x2,0x248(%eax)
651d55:	0f 95 c0             	setne  %al