479d56:	57                   	push   %edi
479d57:	8b 7d 08             	mov    0x8(%ebp),%edi
479d5a:	8b 70 04             	mov    0x4(%eax),%esi
479d5d:	89 37                	mov    %esi,(%edi)
479d5f:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
479d63:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)
479d6a:	89 47 08             	mov    %eax,0x8(%edi)
479d6d:	75 5a                	jne    0x479dc9
479d6f:	53                   	push   %ebx
479d70:	8b 5d 0c             	mov    0xc(%ebp),%ebx
479d73:	8b 4b 14             	mov    0x14(%ebx),%ecx
479d76:	8b 43 10             	mov    0x10(%ebx),%eax
479d79:	89 4d 0c             	mov    %ecx,0xc(%ebp)
479d7c:	89 45 08             	mov    %eax,0x8(%ebp)
479d7f:	90                   	nop
479d80:	89 37                	mov    %esi,(%edi)
479d82:	8b d3                	mov    %ebx,%edx
479d84:	83 f9 10             	cmp    $0x10,%ecx
479d87:	72 02                	jb     0x479d8b
479d89:	8b 13                	mov    (%ebx),%edx
479d8b:	83 7e 24 10          	cmpl   $0x10,0x24(%esi)
479d8f:	8d 4e 10             	lea    0x10(%esi),%ecx
479d92:	72 03                	jb     0x479d97
479d94:	8b 4e 10             	mov    0x10(%esi),%ecx
479d97:	ff 75 08             	push   0x8(%ebp)
479d9a:	52                   	push   %edx
479d9b:	ff 76 20             	push   0x20(%esi)
479d9e:	51                   	push   %ecx
479d9f:	e8 6c 47 ff ff       	call   0x46e510
479da4:	83 c4 10             	add    $0x10,%esp
479da7:	85 c0                	test   %eax,%eax
479da9:	79 07                	jns    0x479db2
479dab:	8b 76 08             	mov    0x8(%esi),%esi
479dae:	33 c0                	xor    %eax,%eax
479db0:	eb 0a                	jmp    0x479dbc
479db2:	89 77 08             	mov    %esi,0x8(%edi)
479db5:	b8 01 00 00 00       	mov    $0x1,%eax
479dba:	8b 36                	mov    (%esi),%esi
479dbc:	8b 4d 0c             	mov    0xc(%ebp),%ecx
479dbf:	89 47 04             	mov    %eax,0x4(%edi)
479dc2:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
479dc6:	74 b8                	je     0x479d80
479dc8:	5b                   	pop    %ebx
479dc9:	8b c7                	mov    %edi,%eax
479dcb:	5f                   	pop    %edi
479dcc:	5e                   	pop    %esi
479dcd:	5d                   	pop    %ebp
479dce:	c2 08 00             	ret    $0x8
479dd1:	cc                   	int3
479dd2:	cc                   	int3
479dd3:	cc                   	int3
479dd4:	cc                   	int3
479dd5:	cc                   	int3
479dd6:	cc                   	int3
479dd7:	cc                   	int3
479dd8:	cc                   	int3
479dd9:	cc                   	int3
479dda:	cc                   	int3
479ddb:	cc                   	int3
479ddc:	cc                   	int3
479ddd:	cc                   	int3
479dde:	cc                   	int3
479ddf:	cc                   	int3
479de0:	55                   	push   %ebp
479de1:	8b ec                	mov    %esp,%ebp
479de3:	51                   	push   %ecx
479de4:	8b 01                	mov    (%ecx),%eax
479de6:	8b 4d 08             	mov    0x8(%ebp),%ecx
479de9:	57                   	push   %edi
479dea:	8b 78 04             	mov    0x4(%eax),%edi
479ded:	89 39                	mov    %edi,(%ecx)
479def:	c7 41 04 00 00 00 00 	movl   $0x0,0x4(%ecx)
479df6:	89 41 08             	mov    %eax,0x8(%ecx)
479df9:	80 7f 0d 00          	cmpb   $0x0,0xd(%edi)
479dfd:	75 63                	jne    0x479e62
479dff:	8b 45 0c             	mov    0xc(%ebp),%eax
479e02:	53                   	push   %ebx
479e03:	56                   	push   %esi
479e04:	8b 30                	mov    (%eax),%esi
479e06:	8b 50 04             	mov    0x4(%eax),%edx
479e09:	89 75 fc             	mov    %esi,-0x4(%ebp)
479e0c:	89 55 0c             	mov    %edx,0xc(%ebp)
479e0f:	90                   	nop
479e10:	8b 5f 14             	mov    0x14(%edi),%ebx
479e13:	8b c6                	mov    %esi,%eax
479e15:	89 39                	mov    %edi,(%ecx)
479e17:	8b 4f 10             	mov    0x10(%edi),%ecx
479e1a:	3b cb                	cmp    %ebx,%ecx
479e1c:	74 1b                	je     0x479e39
479e1e:	66 90                	xchg   %ax,%ax
479e20:	3b c2                	cmp    %edx,%eax
479e22:	74 23                	je     0x479e47
479e24:	8b 11                	mov    (%ecx),%edx
479e26:	3b 10                	cmp    (%eax),%edx
479e28:	8b 55 0c             	mov    0xc(%ebp),%edx
479e2b:	7c 10                	jl     0x479e3d
479e2d:	7f 18                	jg     0x479e47
479e2f:	83 c1 04             	add    $0x4,%ecx
479e32:	83 c0 04             	add    $0x4,%eax
479e35:	3b cb                	cmp    %ebx,%ecx
479e37:	75 e7                	jne    0x479e20
479e39:	3b c2                	cmp    %edx,%eax
479e3b:	74 0a                	je     0x479e47
479e3d:	8b 7f 08             	mov    0x8(%edi),%edi
479e40:	33 c0                	xor    %eax,%eax
479e42:	8b 4d 08             	mov    0x8(%ebp),%ecx
479e45:	eb 0d                	jmp    0x479e54
479e47:	8b 4d 08             	mov    0x8(%ebp),%ecx
479e4a:	b8 01 00 00 00       	mov    $0x1,%eax
479e4f:	89 79 08             	mov    %edi,0x8(%ecx)
479e52:	8b 3f                	mov    (%edi),%edi
479e54:	8b 75 fc             	mov    -0x4(%ebp),%esi
479e57:	89 41 04             	mov    %eax,0x4(%ecx)
479e5a:	80 7f 0d 00          	cmpb   $0x0,0xd(%edi)
479e5e:	74 b0                	je     0x479e10
479e60:	5e                   	pop    %esi
479e61:	5b                   	pop    %ebx
479e62:	8b c1                	mov    %ecx,%eax
479e64:	5f                   	pop    %edi
479e65:	8b e5                	mov    %ebp,%esp
479e67:	5d                   	pop    %ebp
479e68:	c2 08 00             	ret    $0x8
479e6b:	cc                   	int3
479e6c:	cc                   	int3
479e6d:	cc                   	int3
479e6e:	cc                   	int3
479e6f:	cc                   	int3
479e70:	55                   	push   %ebp
479e71:	8b ec                	mov    %esp,%ebp
479e73:	56                   	push   %esi
479e74:	8b 75 0c             	mov    0xc(%ebp),%esi
479e77:	8b 46 04             	mov    0x4(%esi),%eax
479e7a:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
479e80:	8b 36                	mov    (%esi),%esi
479e82:	85 f6                	test   %esi,%esi
479e84:	74 57                	je     0x479edd
479e86:	57                   	push   %edi
479e87:	8b 4e 1c             	mov    0x1c(%esi),%ecx
479e8a:	8b 3e                	mov    (%esi),%edi
479e8c:	83 f9 10             	cmp    $0x10,%ecx
479e8f:	72 28                	jb     0x479eb9
479e91:	8b 46 08             	mov    0x8(%esi),%eax
479e94:	41                   	inc    %ecx
479e95:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
479e9b:	72 12                	jb     0x479eaf
479e9d:	8b 50 fc             	mov    -0x4(%eax),%edx
479ea0:	83 c1 23             	add    $0x23,%ecx
479ea3:	2b c2                	sub    %edx,%eax
479ea5:	83 c0 fc             	add    $0xfffffffc,%eax
479ea8:	83 f8 1f             	cmp    $0x1f,%eax
479eab:	77 33                	ja     0x479ee0
479ead:	8b c2                	mov    %edx,%eax
479eaf:	51                   	push   %ecx
479eb0:	50                   	push   %eax
479eb1:	e8 9f 73 15 00       	call   0x5d1255
479eb6:	83 c4 08             	add    $0x8,%esp
479eb9:	6a 24                	push   $0x24
479ebb:	56                   	push   %esi
479ebc:	c7 46 18 00 00 00 00 	movl   $0x0,0x18(%esi)
479ec3:	c7 46 1c 0f 00 00 00 	movl   $0xf,0x1c(%esi)
479eca:	c6 46 08 00          	movb   $0x0,0x8(%esi)
479ece:	e8 82 73 15 00       	call   0x5d1255
479ed3:	83 c4 08             	add    $0x8,%esp
479ed6:	8b f7                	mov    %edi,%esi
479ed8:	85 ff                	test   %edi,%edi
479eda:	75 ab                	jne    0x479e87
479edc:	5f                   	pop    %edi
479edd:	5e                   	pop    %esi
479ede:	5d                   	pop    %ebp
479edf:	c3                   	ret
479ee0:	e8 0b c3 15 00       	call   0x5d61f0
479ee5:	cc                   	int3
479ee6:	cc                   	int3
479ee7:	cc                   	int3
479ee8:	cc                   	int3
479ee9:	cc                   	int3
479eea:	cc                   	int3
479eeb:	cc                   	int3
479eec:	cc                   	int3
479eed:	cc                   	int3
479eee:	cc                   	int3
479eef:	cc                   	int3
479ef0:	55                   	push   %ebp
479ef1:	8b ec                	mov    %esp,%ebp
479ef3:	56                   	push   %esi
479ef4:	8b 75 0c             	mov    0xc(%ebp),%esi
479ef7:	8b 46 04             	mov    0x4(%esi),%eax
479efa:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
479f00:	8b 36                	mov    (%esi),%esi
479f02:	85 f6                	test   %esi,%esi
479f04:	74 57                	je     0x479f5d
479f06:	57                   	push   %edi
479f07:	8b 4e 1c             	mov    0x1c(%esi),%ecx
479f0a:	8b 3e                	mov    (%esi),%edi
479f0c:	83 f9 10             	cmp    $0x10,%ecx
479f0f:	72 28                	jb     0x479f39
479f11:	8b 46 08             	mov    0x8(%esi),%eax
479f14:	41                   	inc    %ecx
479f15:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
479f1b:	72 12                	jb     0x479f2f
479f1d:	8b 50 fc             	mov    -0x4(%eax),%edx
479f20:	83 c1 23             	add    $0x23,%ecx
479f23:	2b c2                	sub    %edx,%eax
479f25:	83 c0 fc             	add    $0xfffffffc,%eax
479f28:	83 f8 1f             	cmp    $0x1f,%eax
479f2b:	77 33                	ja     0x479f60
479f2d:	8b c2                	mov    %edx,%eax
479f2f:	51                   	push   %ecx
479f30:	50                   	push   %eax
479f31:	e8 1f 73 15 00       	call   0x5d1255
479f36:	83 c4 08             	add    $0x8,%esp
479f39:	6a 20                	push   $0x20
479f3b:	56                   	push   %esi
479f3c:	c7 46 18 00 00 00 00 	movl   $0x0,0x18(%esi)
479f43:	c7 46 1c 0f 00 00 00 	movl   $0xf,0x1c(%esi)
479f4a:	c6 46 08 00          	movb   $0x0,0x8(%esi)
479f4e:	e8 02 73 15 00       	call   0x5d1255
479f53:	83 c4 08             	add    $0x8,%esp
479f56:	8b f7                	mov    %edi,%esi
479f58:	85 ff                	test   %edi,%edi
479f5a:	75 ab                	jne    0x479f07
479f5c:	5f                   	pop    %edi
479f5d:	5e                   	pop    %esi
479f5e:	5d                   	pop    %ebp
479f5f:	c3                   	ret
479f60:	e8 8b c2 15 00       	call   0x5d61f0
479f65:	cc                   	int3
479f66:	cc                   	int3
479f67:	cc                   	int3
479f68:	cc                   	int3
479f69:	cc                   	int3
479f6a:	cc                   	int3
479f6b:	cc                   	int3
479f6c:	cc                   	int3
479f6d:	cc                   	int3
479f6e:	cc                   	int3
479f6f:	cc                   	int3
479f70:	55                   	push   %ebp
479f71:	8b ec                	mov    %esp,%ebp
479f73:	56                   	push   %esi
479f74:	8b 75 0c             	mov    0xc(%ebp),%esi
479f77:	8b 4e 1c             	mov    0x1c(%esi),%ecx
479f7a:	83 f9 10             	cmp    $0x10,%ecx
479f7d:	72 28                	jb     0x479fa7
479f7f:	8b 46 08             	mov    0x8(%esi),%eax
479f82:	41                   	inc    %ecx
479f83:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
479f89:	72 12                	jb     0x479f9d
479f8b:	8b 50 fc             	mov    -0x4(%eax),%edx
479f8e:	83 c1 23             	add    $0x23,%ecx
479f91:	2b c2                	sub    %edx,%eax
479f93:	83 c0 fc             	add    $0xfffffffc,%eax
479f96:	83 f8 1f             	cmp    $0x1f,%eax
479f99:	77 2c                	ja     0x479fc7
479f9b:	8b c2                	mov    %edx,%eax
479f9d:	51                   	push   %ecx
479f9e:	50                   	push   %eax
479f9f:	e8 b1 72 15 00       	call   0x5d1255
479fa4:	83 c4 08             	add    $0x8,%esp
479fa7:	6a 20                	push   $0x20
479fa9:	56                   	push   %esi
479faa:	c7 46 18 00 00 00 00 	movl   $0x0,0x18(%esi)
479fb1:	c7 46 1c 0f 00 00 00 	movl   $0xf,0x1c(%esi)
479fb8:	c6 46 08 00          	movb   $0x0,0x8(%esi)
479fbc:	e8 94 72 15 00       	call   0x5d1255
479fc1:	83 c4 08             	add    $0x8,%esp
479fc4:	5e                   	pop    %esi
479fc5:	5d                   	pop    %ebp
479fc6:	c3                   	ret
479fc7:	e8 24 c2 15 00       	call   0x5d61f0
479fcc:	cc                   	int3
479fcd:	cc                   	int3
479fce:	cc                   	int3
479fcf:	cc                   	int3
479fd0:	55                   	push   %ebp
479fd1:	8b ec                	mov    %esp,%ebp
479fd3:	8b 45 08             	mov    0x8(%ebp),%eax
479fd6:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
479fda:	75 35                	jne    0x47a011
479fdc:	83 78 24 10          	cmpl   $0x10,0x24(%eax)
479fe0:	8d 50 10             	lea    0x10(%eax),%edx
479fe3:	72 03                	jb     0x479fe8
479fe5:	8b 50 10             	mov    0x10(%eax),%edx
479fe8:	8b 4d 0c             	mov    0xc(%ebp),%ecx
479feb:	56                   	push   %esi
479fec:	8b f1                	mov    %ecx,%esi
479fee:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
479ff2:	72 02                	jb     0x479ff6
479ff4:	8b 31                	mov    (%ecx),%esi
479ff6:	ff 70 20             	push   0x20(%eax)
479ff9:	52                   	push   %edx
479ffa:	ff 71 10             	push   0x10(%ecx)
479ffd:	56                   	push   %esi
479ffe:	e8 0d 45 ff ff       	call   0x46e510
47a003:	83 c4 10             	add    $0x10,%esp
47a006:	5e                   	pop    %esi
47a007:	85 c0                	test   %eax,%eax
47a009:	78 06                	js     0x47a011
47a00b:	b0 01                	mov    $0x1,%al
47a00d:	5d                   	pop    %ebp
47a00e:	c2 08 00             	ret    $0x8
47a011:	32 c0                	xor    %al,%al
47a013:	5d                   	pop    %ebp
47a014:	c2 08 00             	ret    $0x8
47a017:	cc                   	int3
47a018:	cc                   	int3
47a019:	cc                   	int3
47a01a:	cc                   	int3
47a01b:	cc                   	int3
47a01c:	cc                   	int3
47a01d:	cc                   	int3
47a01e:	cc                   	int3
47a01f:	cc                   	int3
47a020:	55                   	push   %ebp
47a021:	8b ec                	mov    %esp,%ebp
47a023:	51                   	push   %ecx
47a024:	53                   	push   %ebx
47a025:	56                   	push   %esi
47a026:	57                   	push   %edi
47a027:	8b 7d 08             	mov    0x8(%ebp),%edi
47a02a:	8b d1                	mov    %ecx,%edx
47a02c:	89 55 fc             	mov    %edx,-0x4(%ebp)
47a02f:	81 ff ff ff ff 3f    	cmp    $0x3fffffff,%edi
47a035:	77 7a                	ja     0x47a0b1
47a037:	8b 4a 04             	mov    0x4(%edx),%ecx
47a03a:	b8 ff ff ff 3f       	mov    $0x3fffffff,%eax
47a03f:	2b 0a                	sub    (%edx),%ecx
47a041:	c1 f9 02             	sar    $0x2,%ecx
47a044:	89 4d 08             	mov    %ecx,0x8(%ebp)
47a047:	8b 4a 08             	mov    0x8(%edx),%ecx
47a04a:	2b 0a                	sub    (%edx),%ecx
47a04c:	c1 f9 02             	sar    $0x2,%ecx
47a04f:	8b f1                	mov    %ecx,%esi
47a051:	d1 ee                	shr    $1,%esi
47a053:	2b c6                	sub    %esi,%eax
47a055:	3b c8                	cmp    %eax,%ecx
47a057:	76 07                	jbe    0x47a060
47a059:	bb ff ff ff 3f       	mov    $0x3fffffff,%ebx
47a05e:	eb 08                	jmp    0x47a068
47a060:	8d 1c 0e             	lea    (%esi,%ecx,1),%ebx
47a063:	3b df                	cmp    %edi,%ebx
47a065:	0f 42 df             	cmovb  %edi,%ebx
47a068:	53                   	push   %ebx
47a069:	8b ca                	mov    %edx,%ecx
47a06b:	e8 60 f2 fe ff       	call   0x4692d0
47a070:	8b f0                	mov    %eax,%esi
47a072:	8b cf                	mov    %edi,%ecx
47a074:	8b 45 08             	mov    0x8(%ebp),%eax
47a077:	2b c8                	sub    %eax,%ecx
47a079:	c1 e1 02             	shl    $0x2,%ecx