653c42:	f6 83 49 02 00 00 10 	testb  $0x10,0x249(%ebx)
653c49:	74 14                	je     0x653c5f
653c4b:	8d 55 d8             	lea    -0x28(%ebp),%edx
653c4e:	8b c3                	mov    %ebx,%eax
653c50:	e8 73 16 00 00       	call   0x6552c8
653c55:	8d 55 d8             	lea    -0x28(%ebp),%edx
653c58:	8b c3                	mov    %ebx,%eax
653c5a:	e8 59 f5 ff ff       	call   0x6531b8
653c5f:	5f                   	pop    %edi
653c60:	5e                   	pop    %esi
653c61:	5b                   	pop    %ebx
653c62:	8b e5                	mov    %ebp,%esp
653c64:	5d                   	pop    %ebp
653c65:	c2 04 00             	ret    $0x4
653c68:	53                   	push   %ebx
653c69:	56                   	push   %esi
653c6a:	57                   	push   %edi
653c6b:	83 c4 a0             	add    $0xffffffa0,%esp
653c6e:	8b f9                	mov    %ecx,%edi
653c70:	8b f2                	mov    %edx,%esi
653c72:	8b d8                	mov    %eax,%ebx
653c74:	8b d4                	mov    %esp,%edx
653c76:	8b c3                	mov    %ebx,%eax
653c78:	e8 97 e5 ff ff       	call   0x652214
653c7d:	54                   	push   %esp
653c7e:	8b cf                	mov    %edi,%ecx
653c80:	8b d6                	mov    %esi,%edx
653c82:	8b c3                	mov    %ebx,%eax
653c84:	e8 33 fe ff ff       	call   0x653abc
653c89:	83 c4 60             	add    $0x60,%esp
653c8c:	5f                   	pop    %edi
653c8d:	5e                   	pop    %esi
653c8e:	5b                   	pop    %ebx
653c8f:	c3                   	ret
653c90:	55                   	push   %ebp
653c91:	8b ec                	mov    %esp,%ebp
653c93:	83 c4 ec             	add    $0xffffffec,%esp
653c96:	53                   	push   %ebx
653c97:	56                   	push   %esi
653c98:	89 4d f8             	mov    %ecx,-0x8(%ebp)
653c9b:	89 55 fc             	mov    %edx,-0x4(%ebp)
653c9e:	8b d8                	mov    %eax,%ebx
653ca0:	8b 75 08             	mov    0x8(%ebp),%esi
653ca3:	c6 45 f7 00          	movb   $0x0,-0x9(%ebp)
653ca7:	8b 45 fc             	mov    -0x4(%ebp),%eax
653caa:	3b 45 f8             	cmp    -0x8(%ebp),%eax
653cad:	7d 08                	jge    0x653cb7
653caf:	8b 45 fc             	mov    -0x4(%ebp),%eax
653cb2:	8b 55 f8             	mov    -0x8(%ebp),%edx
653cb5:	eb 06                	jmp    0x653cbd
653cb7:	8b 45 f8             	mov    -0x8(%ebp),%eax
653cba:	8b 55 fc             	mov    -0x4(%ebp),%edx
653cbd:	33 c9                	xor    %ecx,%ecx
653cbf:	89 0e                	mov    %ecx,(%esi)
653cc1:	4a                   	dec    %edx
653cc2:	2b d0                	sub    %eax,%edx
653cc4:	7c 33                	jl     0x653cf9
653cc6:	42                   	inc    %edx
653cc7:	89 55 ec             	mov    %edx,-0x14(%ebp)
653cca:	89 45 f0             	mov    %eax,-0x10(%ebp)
653ccd:	8b 55 f0             	mov    -0x10(%ebp),%edx
653cd0:	8b 43 2c             	mov    0x2c(%ebx),%eax
653cd3:	ff 53 28             	call   *0x28(%ebx)
653cd6:	03 03                	add    (%ebx),%eax
653cd8:	01 06                	add    %eax,(%esi)
653cda:	8b 43 08             	mov    0x8(%ebx),%eax
653cdd:	2b 43 04             	sub    0x4(%ebx),%eax
653ce0:	3b 06                	cmp    (%esi),%eax
653ce2:	7d 0d                	jge    0x653cf1
653ce4:	8b 45 0c             	mov    0xc(%ebp),%eax
653ce7:	8b 40 fc             	mov    -0x4(%eax),%eax
653cea:	e8 c1 f4 ff ff       	call   0x6531b0
653cef:	eb 16                	jmp    0x653d07
653cf1:	ff 45 f0             	incl   -0x10(%ebp)
653cf4:	ff 4d ec             	decl   -0x14(%ebp)
653cf7:	75 d4                	jne    0x653ccd
653cf9:	8b 45 fc             	mov    -0x4(%ebp),%eax
653cfc:	3b 45 f8             	cmp    -0x8(%ebp),%eax
653cff:	7d 02                	jge    0x653d03
653d01:	f7 1e                	negl   (%esi)
653d03:	c6 45 f7 01          	movb   $0x1,-0x9(%ebp)
653d07:	8a 45 f7             	mov    -0x9(%ebp),%al
653d0a:	5e                   	pop    %esi
653d0b:	5b                   	pop    %ebx
653d0c:	8b e5                	mov    %ebp,%esp
653d0e:	5d                   	pop    %ebp
653d0f:	c2 04 00             	ret    $0x4
653d12:	8b c0                	mov    %eax,%eax
653d14:	55                   	push   %ebp
653d15:	8b ec                	mov    %esp,%ebp
653d17:	83 c4 90             	add    $0xffffff90,%esp
653d1a:	53                   	push   %ebx
653d1b:	56                   	push   %esi
653d1c:	8b da                	mov    %edx,%ebx
653d1e:	89 45 fc             	mov    %eax,-0x4(%ebp)
653d21:	8b 45 fc             	mov    -0x4(%ebp),%eax
653d24:	e8 eb 00 00 00       	call   0x653e14
653d29:	8d 55 90             	lea    -0x70(%ebp),%edx
653d2c:	8b 45 fc             	mov    -0x4(%ebp),%eax
653d2f:	e8 e0 e4 ff ff       	call   0x652214
653d34:	55                   	push   %ebp
653d35:	8d 45 f4             	lea    -0xc(%ebp),%eax
653d38:	50                   	push   %eax
653d39:	8b 45 fc             	mov    -0x4(%ebp),%eax
653d3c:	8b 88 58 02 00 00    	mov    0x258(%eax),%ecx
653d42:	8b 13                	mov    (%ebx),%edx
653d44:	8d 45 90             	lea    -0x70(%ebp),%eax
653d47:	e8 44 ff ff ff       	call   0x653c90
653d4c:	59                   	pop    %ecx
653d4d:	84 c0                	test   %al,%al
653d4f:	74 30                	je     0x653d81
653d51:	55                   	push   %ebp
653d52:	8d 45 f8             	lea    -0x8(%ebp),%eax
653d55:	50                   	push   %eax
653d56:	8b 45 fc             	mov    -0x4(%ebp),%eax
653d59:	8b 88 5c 02 00 00    	mov    0x25c(%eax),%ecx
653d5f:	8b 53 04             	mov    0x4(%ebx),%edx
653d62:	8d 45 c0             	lea    -0x40(%ebp),%eax
653d65:	e8 26 ff ff ff       	call   0x653c90
653d6a:	59                   	pop    %ecx
653d6b:	84 c0                	test   %al,%al
653d6d:	74 12                	je     0x653d81
653d6f:	8d 45 90             	lea    -0x70(%ebp),%eax
653d72:	50                   	push   %eax
653d73:	8b 4d f8             	mov    -0x8(%ebp),%ecx
653d76:	8b 55 f4             	mov    -0xc(%ebp),%edx
653d79:	8b 45 fc             	mov    -0x4(%ebp),%eax
653d7c:	e8 3b fd ff ff       	call   0x653abc
653d81:	8b 45 fc             	mov    -0x4(%ebp),%eax
653d84:	66 be a7 ff          	mov    $0xffa7,%si
653d88:	e8 e7 fe da ff       	call   0x403c74
653d8d:	5e                   	pop    %esi
653d8e:	5b                   	pop    %ebx
653d8f:	8b e5                	mov    %ebp,%esp
653d91:	5d                   	pop    %ebp
653d92:	c3                   	ret
653d93:	90                   	nop
653d94:	55                   	push   %ebp
653d95:	8b ec                	mov    %esp,%ebp
653d97:	53                   	push   %ebx
653d98:	56                   	push   %esi
653d99:	57                   	push   %edi
653d9a:	8b da                	mov    %edx,%ebx
653d9c:	8b f8                	mov    %eax,%edi
653d9e:	8b 45 08             	mov    0x8(%ebp),%eax
653da1:	8b 40 fc             	mov    -0x4(%eax),%eax
653da4:	66 be c8 ff          	mov    $0xffc8,%si
653da8:	e8 c7 fe da ff       	call   0x403c74
653dad:	84 c0                	test   %al,%al
653daf:	74 2f                	je     0x653de0
653db1:	66 85 ff             	test   %di,%di
653db4:	75 2a                	jne    0x653de0
653db6:	8b 45 08             	mov    0x8(%ebp),%eax
653db9:	8b 40 fc             	mov    -0x4(%eax),%eax
653dbc:	83 b8 1c 02 00 00 01 	cmpl   $0x1,0x21c(%eax)
653dc3:	74 0b                	je     0x653dd0
653dc5:	b8 7f 00 00 00       	mov    $0x7f,%eax
653dca:	2b c3                	sub    %ebx,%eax
653dcc:	8b d8                	mov    %eax,%ebx
653dce:	eb 10                	jmp    0x653de0
653dd0:	8b 45 08             	mov    0x8(%ebp),%eax
653dd3:	8b 40 f8             	mov    -0x8(%eax),%eax
653dd6:	8b 55 08             	mov    0x8(%ebp),%edx
653dd9:	2b 42 f4             	sub    -0xc(%edx),%eax
653ddc:	2b c3                	sub    %ebx,%eax
653dde:	8b d8                	mov    %eax,%ebx
653de0:	0f b7 f7             	movzwl %di,%esi
653de3:	56                   	push   %esi
653de4:	8b 45 08             	mov    0x8(%ebp),%eax
653de7:	8b 40 fc             	mov    -0x4(%eax),%eax
653dea:	e8 65 b1 df ff       	call   0x44ef54
653def:	50                   	push   %eax
653df0:	e8 fb 3c db ff       	call   0x407af0
653df5:	3b d8                	cmp    %eax,%ebx
653df7:	74 15                	je     0x653e0e
653df9:	6a ff                	push   $0xffffffff
653dfb:	53                   	push   %ebx
653dfc:	56                   	push   %esi
653dfd:	8b 45 08             	mov    0x8(%ebp),%eax
653e00:	8b 40 fc             	mov    -0x4(%eax),%eax
653e03:	e8 4c b1 df ff       	call   0x44ef54
653e08:	50                   	push   %eax
653e09:	e8 a2 3f db ff       	call   0x407db0
653e0e:	5f                   	pop    %edi
653e0f:	5e                   	pop    %esi
653e10:	5b                   	pop    %ebx
653e11:	5d                   	pop    %ebp
653e12:	c3                   	ret
653e13:	90                   	nop
653e14:	55                   	push   %ebp
653e15:	8b ec                	mov    %esp,%ebp
653e17:	83 c4 80             	add    $0xffffff80,%esp
653e1a:	53                   	push   %ebx
653e1b:	56                   	push   %esi
653e1c:	89 45 fc             	mov    %eax,-0x4(%ebp)
653e1f:	8d 75 fc             	lea    -0x4(%ebp),%esi
653e22:	8b 06                	mov    (%esi),%eax
653e24:	e8 2f b4 df ff       	call   0x44f258
653e29:	84 c0                	test   %al,%al
653e2b:	0f 84 29 01 00 00    	je     0x653f5a
653e31:	8b 06                	mov    (%esi),%eax
653e33:	80 b8 54 02 00 00 00 	cmpb   $0x0,0x254(%eax)
653e3a:	0f 84 1a 01 00 00    	je     0x653f5a
653e40:	8d 55 88             	lea    -0x78(%ebp),%edx
653e43:	8b 06                	mov    (%esi),%eax
653e45:	e8 ca e3 ff ff       	call   0x652214
653e4a:	8b 06                	mov    (%esi),%eax
653e4c:	8b 80 1c 02 00 00    	mov    0x21c(%eax),%eax
653e52:	48                   	dec    %eax
653e53:	89 45 ec             	mov    %eax,-0x14(%ebp)
653e56:	8b 06                	mov    (%esi),%eax
653e58:	8b 80 4c 02 00 00    	mov    0x24c(%eax),%eax
653e5e:	48                   	dec    %eax
653e5f:	89 45 f0             	mov    %eax,-0x10(%ebp)
653e62:	8d 45 80             	lea    -0x80(%ebp),%eax
653e65:	50                   	push   %eax
653e66:	8d 4d 88             	lea    -0x78(%ebp),%ecx
653e69:	8d 55 ec             	lea    -0x14(%ebp),%edx
653e6c:	8b 06                	mov    (%esi),%eax
653e6e:	e8 d9 e5 ff ff       	call   0x65244c
653e73:	8b 45 80             	mov    -0x80(%ebp),%eax
653e76:	89 45 ec             	mov    %eax,-0x14(%ebp)
653e79:	8b 45 84             	mov    -0x7c(%ebp),%eax
653e7c:	89 45 f0             	mov    %eax,-0x10(%ebp)
653e7f:	8b 06                	mov    (%esi),%eax
653e81:	8a 80 54 02 00 00    	mov    0x254(%eax),%al
653e87:	2c 01                	sub    $0x1,%al
653e89:	74 08                	je     0x653e93
653e8b:	2c 02                	sub    $0x2,%al
653e8d:	0f 85 8c 00 00 00    	jne    0x653f1f
653e93:	8b 06                	mov    (%esi),%eax
653e95:	83 b8 1c 02 00 00 01 	cmpl   $0x1,0x21c(%eax)
653e9c:	75 56                	jne    0x653ef4
653e9e:	8b 55 a4             	mov    -0x5c(%ebp),%edx
653ea1:	8b 06                	mov    (%esi),%eax
653ea3:	e8 e0 13 00 00       	call   0x655288
653ea8:	89 45 f8             	mov    %eax,-0x8(%ebp)
653eab:	8b 06                	mov    (%esi),%eax
653ead:	e8 1e 43 df ff       	call   0x4481d0
653eb2:	2b 45 8c             	sub    -0x74(%ebp),%eax
653eb5:	89 45 f4             	mov    %eax,-0xc(%ebp)
653eb8:	8b 06                	mov    (%esi),%eax
653eba:	8b 80 88 02 00 00    	mov    0x288(%eax),%eax
653ec0:	85 c0                	test   %eax,%eax
653ec2:	7e 23                	jle    0x653ee7
653ec4:	8b 55 f8             	mov    -0x8(%ebp),%edx
653ec7:	2b d0                	sub    %eax,%edx
653ec9:	3b 55 f4             	cmp    -0xc(%ebp),%edx
653ecc:	7d 19                	jge    0x653ee7
653ece:	8b 45 f8             	mov    -0x8(%ebp),%eax
653ed1:	2b 45 f4             	sub    -0xc(%ebp),%eax
653ed4:	50                   	push   %eax
653ed5:	6a 01                	push   $0x1
653ed7:	b9 04 00 00 00       	mov    $0x4,%ecx
653edc:	33 d2                	xor    %edx,%edx
653ede:	8b 06                	mov    (%esi),%eax
653ee0:	e8 f7 f6 ff ff       	call   0x6535dc
653ee5:	eb 38                	jmp    0x653f1f
653ee7:	55                   	push   %ebp
653ee8:	8b d0                	mov    %eax,%edx
653eea:	33 c0                	xor    %eax,%eax
653eec:	e8 a3 fe ff ff       	call   0x653d94
653ef1:	59                   	pop    %ecx
653ef2:	eb 2b                	jmp    0x653f1f
653ef4:	55                   	push   %ebp
653ef5:	8b 06                	mov    (%esi),%eax
653ef7:	8b 98 38 02 00 00    	mov    0x238(%eax),%ebx
653efd:	8b 45 ec             	mov    -0x14(%ebp),%eax
653f00:	2b c3                	sub    %ebx,%eax
653f02:	50                   	push   %eax
653f03:	6a 7f                	push   $0x7f
653f05:	8b 06                	mov    (%esi),%eax
653f07:	8b 80 58 02 00 00    	mov    0x258(%eax),%eax
653f0d:	2b c3                	sub    %ebx,%eax
653f0f:	50                   	push   %eax
653f10:	e8 f7 c2 ff ff       	call   0x65020c
653f15:	8b d0                	mov    %eax,%edx
653f17:	33 c0                	xor    %eax,%eax
653f19:	e8 76 fe ff ff       	call   0x653d94
653f1e:	59                   	pop    %ecx
653f1f:	8b 06                	mov    (%esi),%eax
653f21:	8a 80 54 02 00 00    	mov    0x254(%eax),%al
653f27:	04 fe                	add    $0xfe,%al
653f29:	2c 02                	sub    $0x2,%al
653f2b:	73 2d                	jae    0x653f5a
653f2d:	55                   	push   %ebp
653f2e:	8b 06                	mov    (%esi),%eax
653f30:	8b 98 3c 02 00 00    	mov    0x23c(%eax),%ebx
653f36:	8b 45 f0             	mov    -0x10(%ebp),%eax
653f39:	2b c3                	sub    %ebx,%eax
653f3b:	50                   	push   %eax
653f3c:	6a 7f                	push   $0x7f
653f3e:	8b 06                	mov    (%esi),%eax
653f40:	8b 80 5c 02 00 00    	mov    0x25c(%eax),%eax
653f46:	2b c3                	sub    %ebx,%eax
653f48:	50                   	push   %eax
653f49:	e8 be c2 ff ff       	call   0x65020c
653f4e:	8b d0                	mov    %eax,%edx
653f50:	66 b8 01 00          	mov    $0x1,%ax
653f54:	e8 3b fe ff ff       	call   0x653d94
653f59:	59                   	pop    %ecx
653f5a:	5e                   	pop    %esi
653f5b:	5b                   	pop    %ebx
653f5c:	8b e5                	mov    %ebp,%esp
653f5e:	5d                   	pop    %ebp
653f5f:	c3                   	ret
653f60:	55                   	push   %ebp
653f61:	8b ec                	mov    %esp,%ebp
653f63:	8b 45 08             	mov    0x8(%ebp),%eax
653f66:	80 78 ff 00          	cmpb   $0x0,-0x1(%eax)
653f6a:	75 15                	jne    0x653f81
653f6c:	8b 45 08             	mov    0x8(%ebp),%eax
653f6f:	8b 40 f8             	mov    -0x8(%eax),%eax
653f72:	8b 10                	mov    (%eax),%edx
653f74:	ff 92 88 00 00 00    	call   *0x88(%edx)
653f7a:	8b 45 08             	mov    0x8(%ebp),%eax
653f7d:	c6 40 ff 01          	movb   $0x1,-0x1(%eax)
653f81:	5d                   	pop    %ebp
653f82:	c3                   	ret
653f83:	90                   	nop
653f84:	55                   	push   %ebp
653f85:	8b ec                	mov    %esp,%ebp
653f87:	83 c4 f8             	add    $0xfffffff8,%esp
653f8a:	53                   	push   %ebx
653f8b:	8b d8                	mov    %eax,%ebx
653f8d:	33 c0                	xor    %eax,%eax
653f8f:	8b 55 08             	mov    0x8(%ebp),%edx
653f92:	8b 52 f8             	mov    -0x8(%edx),%edx
653f95:	80 ba 54 02 00 00 03 	cmpb   $0x3,0x254(%edx)
653f9c:	74 29                	je     0x653fc7
653f9e:	66 85 db             	test   %bx,%bx
653fa1:	75 0f                	jne    0x653fb2
653fa3:	8b 55 08             	mov    0x8(%ebp),%edx
653fa6:	8b 52 f8             	mov    -0x8(%edx),%edx
653fa9:	80 ba 54 02 00 00 01 	cmpb   $0x1,0x254(%edx)
653fb0:	74 15                	je     0x653fc7
653fb2:	66 83 fb 01          	cmp    $0x1,%bx
653fb6:	75 35                	jne    0x653fed
653fb8:	8b 55 08             	mov    0x8(%ebp),%edx
653fbb:	8b 52 f8             	mov    -0x8(%edx),%edx
653fbe:	80 ba 54 02 00 00 02 	cmpb   $0x2,0x254(%edx)
653fc5:	75 26                	jne    0x653fed
653fc7:	8d 45 f8             	lea    -0x8(%ebp),%eax
653fca:	50                   	push   %eax
653fcb:	8d 45 fc             	lea    -0x4(%ebp),%eax
653fce:	50                   	push   %eax
653fcf:	0f b7 c3             	movzwl %bx,%eax
653fd2:	50                   	push   %eax
653fd3:	8b 45 08             	mov    0x8(%ebp),%eax
653fd6:	8b 40 f8             	mov    -0x8(%eax),%eax