454d05:	2b d1                	sub    %ecx,%edx
454d07:	50                   	push   %eax
454d08:	8b 45 0c             	mov    0xc(%ebp),%eax
454d0b:	03 c1                	add    %ecx,%eax
454d0d:	8d 04 47             	lea    (%edi,%eax,2),%eax
454d10:	50                   	push   %eax
454d11:	8b 45 fc             	mov    -0x4(%ebp),%eax
454d14:	2b d0                	sub    %eax,%edx
454d16:	03 d2                	add    %edx,%edx
454d18:	03 c1                	add    %ecx,%eax
454d1a:	52                   	push   %edx
454d1b:	eb 6b                	jmp    0x454d88
454d1d:	3b cf                	cmp    %edi,%ecx
454d1f:	72 07                	jb     0x454d28
454d21:	8b 06                	mov    (%esi),%eax
454d23:	89 45 f0             	mov    %eax,-0x10(%ebp)
454d26:	eb 03                	jmp    0x454d2b
454d28:	89 75 f0             	mov    %esi,-0x10(%ebp)
454d2b:	72 07                	jb     0x454d34
454d2d:	8b 06                	mov    (%esi),%eax
454d2f:	89 45 f4             	mov    %eax,-0xc(%ebp)
454d32:	eb 03                	jmp    0x454d37
454d34:	89 75 f4             	mov    %esi,-0xc(%ebp)
454d37:	8b 45 f8             	mov    -0x8(%ebp),%eax
454d3a:	8b 55 f0             	mov    -0x10(%ebp),%edx
454d3d:	03 c0                	add    %eax,%eax
454d3f:	2b 4d 08             	sub    0x8(%ebp),%ecx
454d42:	50                   	push   %eax
454d43:	8b 45 0c             	mov    0xc(%ebp),%eax
454d46:	03 45 08             	add    0x8(%ebp),%eax
454d49:	8d 04 42             	lea    (%edx,%eax,2),%eax
454d4c:	50                   	push   %eax
454d4d:	8b 45 fc             	mov    -0x4(%ebp),%eax
454d50:	2b c8                	sub    %eax,%ecx
454d52:	03 45 08             	add    0x8(%ebp),%eax
454d55:	03 c9                	add    %ecx,%ecx
454d57:	51                   	push   %ecx
454d58:	8b 4d f4             	mov    -0xc(%ebp),%ecx
454d5b:	8d 04 41             	lea    (%ecx,%eax,2),%eax
454d5e:	50                   	push   %eax
454d5f:	ff 15 c4 80 4a 00    	call   *0x4a80c4
454d65:	8b 4b 18             	mov    0x18(%ebx),%ecx
454d68:	83 c4 10             	add    $0x10,%esp
454d6b:	3b cf                	cmp    %edi,%ecx
454d6d:	72 04                	jb     0x454d73
454d6f:	8b 16                	mov    (%esi),%edx
454d71:	eb 02                	jmp    0x454d75
454d73:	8b d6                	mov    %esi,%edx
454d75:	72 02                	jb     0x454d79
454d77:	8b 36                	mov    (%esi),%esi
454d79:	8b 45 fc             	mov    -0x4(%ebp),%eax
454d7c:	03 c0                	add    %eax,%eax
454d7e:	50                   	push   %eax
454d7f:	8b 45 08             	mov    0x8(%ebp),%eax
454d82:	2b c8                	sub    %eax,%ecx
454d84:	52                   	push   %edx
454d85:	03 c9                	add    %ecx,%ecx
454d87:	51                   	push   %ecx
454d88:	8d 04 46             	lea    (%esi,%eax,2),%eax
454d8b:	50                   	push   %eax
454d8c:	ff 15 c4 80 4a 00    	call   *0x4a80c4
454d92:	83 c4 10             	add    $0x10,%esp
454d95:	8b cb                	mov    %ebx,%ecx
454d97:	ff 75 ec             	push   -0x14(%ebp)
454d9a:	e8 05 7a fc ff       	call   0x41c7a4
454d9f:	5f                   	pop    %edi
454da0:	5e                   	pop    %esi
454da1:	8b c3                	mov    %ebx,%eax
454da3:	5b                   	pop    %ebx
454da4:	c9                   	leave
454da5:	c2 14 00             	ret    $0x14
454da8:	8b ff                	mov    %edi,%edi
454daa:	55                   	push   %ebp
454dab:	8b ec                	mov    %esp,%ebp
454dad:	57                   	push   %edi
454dae:	8b f9                	mov    %ecx,%edi
454db0:	8b 0d 38 65 4a 00    	mov    0x4a6538,%ecx
454db6:	c7 07 c0 34 40 00    	movl   $0x4034c0,(%edi)
454dbc:	c7 47 08 01 00 00 00 	movl   $0x1,0x8(%edi)
454dc3:	c7 07 ec 34 40 00    	movl   $0x4034ec,(%edi)
454dc9:	85 c9                	test   %ecx,%ecx
454dcb:	74 12                	je     0x454ddf
454dcd:	8b 01                	mov    (%ecx),%eax
454dcf:	56                   	push   %esi
454dd0:	51                   	push   %ecx
454dd1:	8b 70 04             	mov    0x4(%eax),%esi
454dd4:	8b ce                	mov    %esi,%ecx
454dd6:	ff 15 2c 81 4a 00    	call   *0x4a812c
454ddc:	ff d6                	call   *%esi
454dde:	5e                   	pop    %esi
454ddf:	8b 4d 08             	mov    0x8(%ebp),%ecx
454de2:	8b 01                	mov    (%ecx),%eax
454de4:	89 47 0c             	mov    %eax,0xc(%edi)
454de7:	8b 41 04             	mov    0x4(%ecx),%eax
454dea:	89 47 10             	mov    %eax,0x10(%edi)
454ded:	8b c7                	mov    %edi,%eax
454def:	c7 07 04 35 40 00    	movl   $0x403504,(%edi)
454df5:	5f                   	pop    %edi
454df6:	5d                   	pop    %ebp
454df7:	c2 04 00             	ret    $0x4
454dfa:	8b ff                	mov    %edi,%edi
454dfc:	55                   	push   %ebp
454dfd:	8b ec                	mov    %esp,%ebp
454dff:	57                   	push   %edi
454e00:	8b f9                	mov    %ecx,%edi
454e02:	8b 0d 38 65 4a 00    	mov    0x4a6538,%ecx
454e08:	c7 07 ac 34 40 00    	movl   $0x4034ac,(%edi)
454e0e:	c7 47 08 01 00 00 00 	movl   $0x1,0x8(%edi)
454e15:	c7 07 d4 34 40 00    	movl   $0x4034d4,(%edi)
454e1b:	85 c9                	test   %ecx,%ecx
454e1d:	74 12                	je     0x454e31
454e1f:	8b 01                	mov    (%ecx),%eax
454e21:	56                   	push   %esi
454e22:	51                   	push   %ecx
454e23:	8b 70 04             	mov    0x4(%eax),%esi
454e26:	8b ce                	mov    %esi,%ecx
454e28:	ff 15 2c 81 4a 00    	call   *0x4a812c
454e2e:	ff d6                	call   *%esi
454e30:	5e                   	pop    %esi
454e31:	8b 4d 08             	mov    0x8(%ebp),%ecx
454e34:	8b 01                	mov    (%ecx),%eax
454e36:	89 47 0c             	mov    %eax,0xc(%edi)
454e39:	8b 41 04             	mov    0x4(%ecx),%eax
454e3c:	89 47 10             	mov    %eax,0x10(%edi)
454e3f:	8b c7                	mov    %edi,%eax
454e41:	c7 07 1c 35 40 00    	movl   $0x40351c,(%edi)
454e47:	5f                   	pop    %edi
454e48:	5d                   	pop    %ebp
454e49:	c2 04 00             	ret    $0x4
454e4c:	6a 08                	push   $0x8
454e4e:	b8 e2 3f 49 00       	mov    $0x493fe2,%eax
454e53:	e8 e4 b6 03 00       	call   0x49053c
454e58:	8b f9                	mov    %ecx,%edi
454e5a:	89 7d ec             	mov    %edi,-0x14(%ebp)
454e5d:	8b 45 0c             	mov    0xc(%ebp),%eax
454e60:	8b 75 08             	mov    0x8(%ebp),%esi
454e63:	2b c6                	sub    %esi,%eax
454e65:	8b 5f 14             	mov    0x14(%edi),%ebx
454e68:	d1 f8                	sar    $1,%eax
454e6a:	3b d8                	cmp    %eax,%ebx
454e6c:	77 19                	ja     0x454e87
454e6e:	39 47 18             	cmp    %eax,0x18(%edi)
454e71:	74 14                	je     0x454e87
454e73:	6a 01                	push   $0x1
454e75:	50                   	push   %eax
454e76:	e8 22 78 fc ff       	call   0x41c69d
454e7b:	84 c0                	test   %al,%al
454e7d:	74 08                	je     0x454e87
454e7f:	53                   	push   %ebx
454e80:	8b cf                	mov    %edi,%ecx
454e82:	e8 1d 79 fc ff       	call   0x41c7a4
454e87:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
454e8b:	3b 75 0c             	cmp    0xc(%ebp),%esi
454e8e:	74 11                	je     0x454ea1
454e90:	0f b7 06             	movzwl (%esi),%eax
454e93:	50                   	push   %eax
454e94:	51                   	push   %ecx
454e95:	8b cf                	mov    %edi,%ecx
454e97:	e8 05 ee fc ff       	call   0x423ca1
454e9c:	83 c6 02             	add    $0x2,%esi
454e9f:	eb ea                	jmp    0x454e8b
454ea1:	e8 fb b5 03 00       	call   0x4904a1
454ea6:	c2 0c 00             	ret    $0xc
454ea9:	8b 4d ec             	mov    -0x14(%ebp),%ecx
454eac:	33 f6                	xor    %esi,%esi
454eae:	56                   	push   %esi
454eaf:	6a 01                	push   $0x1
454eb1:	e8 0e 79 fc ff       	call   0x41c7c4
454eb6:	56                   	push   %esi
454eb7:	56                   	push   %esi
454eb8:	e8 de b5 03 00       	call   0x49049b
454ebd:	cc                   	int3
454ebe:	cc                   	int3
454ebf:	cc                   	int3
454ec0:	8d 41 24             	lea    0x24(%ecx),%eax
454ec3:	c3                   	ret
454ec4:	cc                   	int3
454ec5:	cc                   	int3
454ec6:	cc                   	int3
454ec7:	cc                   	int3
454ec8:	cc                   	int3
454ec9:	cc                   	int3
454eca:	cc                   	int3
454ecb:	cc                   	int3
454ecc:	cc                   	int3
454ecd:	cc                   	int3
454ece:	cc                   	int3
454ecf:	cc                   	int3
454ed0:	8b ff                	mov    %edi,%edi
454ed2:	55                   	push   %ebp
454ed3:	8b ec                	mov    %esp,%ebp
454ed5:	57                   	push   %edi
454ed6:	8b 7d 08             	mov    0x8(%ebp),%edi
454ed9:	33 d2                	xor    %edx,%edx
454edb:	8b 4f 2c             	mov    0x2c(%edi),%ecx
454ede:	85 c9                	test   %ecx,%ecx
454ee0:	75 0a                	jne    0x454eec
454ee2:	8b 45 0c             	mov    0xc(%ebp),%eax
454ee5:	8b 4f 28             	mov    0x28(%edi),%ecx
454ee8:	89 08                	mov    %ecx,(%eax)
454eea:	eb 23                	jmp    0x454f0f
454eec:	8b 01                	mov    (%ecx),%eax
454eee:	53                   	push   %ebx
454eef:	8b 5d 0c             	mov    0xc(%ebp),%ebx
454ef2:	56                   	push   %esi
454ef3:	8b 70 4c             	mov    0x4c(%eax),%esi
454ef6:	53                   	push   %ebx
454ef7:	51                   	push   %ecx
454ef8:	8b ce                	mov    %esi,%ecx
454efa:	ff 15 2c 81 4a 00    	call   *0x4a812c
454f00:	ff d6                	call   *%esi
454f02:	8b d0                	mov    %eax,%edx
454f04:	85 d2                	test   %edx,%edx
454f06:	78 05                	js     0x454f0d
454f08:	8b 4f 28             	mov    0x28(%edi),%ecx
454f0b:	09 0b                	or     %ecx,(%ebx)
454f0d:	5e                   	pop    %esi
454f0e:	5b                   	pop    %ebx
454f0f:	8b c2                	mov    %edx,%eax
454f11:	5f                   	pop    %edi
454f12:	5d                   	pop    %ebp
454f13:	c2 08 00             	ret    $0x8
454f16:	cc                   	int3
454f17:	cc                   	int3
454f18:	cc                   	int3
454f19:	cc                   	int3
454f1a:	cc                   	int3
454f1b:	cc                   	int3
454f1c:	cc                   	int3
454f1d:	cc                   	int3
454f1e:	cc                   	int3
454f1f:	cc                   	int3
454f20:	8b ff                	mov    %edi,%edi
454f22:	55                   	push   %ebp
454f23:	8b ec                	mov    %esp,%ebp
454f25:	8b 45 08             	mov    0x8(%ebp),%eax
454f28:	8b 48 2c             	mov    0x2c(%eax),%ecx
454f2b:	85 c9                	test   %ecx,%ecx
454f2d:	75 04                	jne    0x454f33
454f2f:	33 c0                	xor    %eax,%eax
454f31:	eb 15                	jmp    0x454f48
454f33:	8b 01                	mov    (%ecx),%eax
454f35:	56                   	push   %esi
454f36:	ff 75 0c             	push   0xc(%ebp)
454f39:	8b 70 48             	mov    0x48(%eax),%esi
454f3c:	51                   	push   %ecx
454f3d:	8b ce                	mov    %esi,%ecx
454f3f:	ff 15 2c 81 4a 00    	call   *0x4a812c
454f45:	ff d6                	call   *%esi
454f47:	5e                   	pop    %esi
454f48:	5d                   	pop    %ebp
454f49:	c2 08 00             	ret    $0x8
454f4c:	cc                   	int3
454f4d:	cc                   	int3
454f4e:	cc                   	int3
454f4f:	cc                   	int3
454f50:	8b ff                	mov    %edi,%edi
454f52:	55                   	push   %ebp
454f53:	8b ec                	mov    %esp,%ebp
454f55:	8b 45 08             	mov    0x8(%ebp),%eax
454f58:	8b 40 2c             	mov    0x2c(%eax),%eax
454f5b:	85 c0                	test   %eax,%eax
454f5d:	74 20                	je     0x454f7f
454f5f:	56                   	push   %esi
454f60:	ff 75 1c             	push   0x1c(%ebp)
454f63:	8b 30                	mov    (%eax),%esi
454f65:	ff 75 18             	push   0x18(%ebp)
454f68:	ff 75 14             	push   0x14(%ebp)
454f6b:	8b 4e 44             	mov    0x44(%esi),%ecx
454f6e:	ff 75 10             	push   0x10(%ebp)
454f71:	ff 75 0c             	push   0xc(%ebp)
454f74:	50                   	push   %eax
454f75:	ff 15 2c 81 4a 00    	call   *0x4a812c
454f7b:	ff 56 44             	call   *0x44(%esi)
454f7e:	5e                   	pop    %esi
454f7f:	5d                   	pop    %ebp
454f80:	c2 18 00             	ret    $0x18
454f83:	cc                   	int3
454f84:	cc                   	int3
454f85:	cc                   	int3
454f86:	cc                   	int3
454f87:	cc                   	int3
454f88:	cc                   	int3
454f89:	cc                   	int3
454f8a:	cc                   	int3
454f8b:	cc                   	int3
454f8c:	cc                   	int3
454f8d:	cc                   	int3
454f8e:	cc                   	int3
454f8f:	cc                   	int3
454f90:	8b ff                	mov    %edi,%edi
454f92:	55                   	push   %ebp
454f93:	8b ec                	mov    %esp,%ebp
454f95:	8b 45 08             	mov    0x8(%ebp),%eax
454f98:	8b 48 2c             	mov    0x2c(%eax),%ecx
454f9b:	85 c9                	test   %ecx,%ecx
454f9d:	75 04                	jne    0x454fa3
454f9f:	33 c0                	xor    %eax,%eax
454fa1:	eb 18                	jmp    0x454fbb
454fa3:	8b 01                	mov    (%ecx),%eax
454fa5:	56                   	push   %esi
454fa6:	ff 75 10             	push   0x10(%ebp)
454fa9:	ff 75 0c             	push   0xc(%ebp)
454fac:	8b 70 40             	mov    0x40(%eax),%esi
454faf:	51                   	push   %ecx
454fb0:	8b ce                	mov    %esi,%ecx
454fb2:	ff 15 2c 81 4a 00    	call   *0x4a812c
454fb8:	ff d6                	call   *%esi
454fba:	5e                   	pop    %esi
454fbb:	5d                   	pop    %ebp
454fbc:	c2 0c 00             	ret    $0xc
454fbf:	cc                   	int3
454fc0:	8b ff                	mov    %edi,%edi
454fc2:	55                   	push   %ebp
454fc3:	8b ec                	mov    %esp,%ebp
454fc5:	8b 45 08             	mov    0x8(%ebp),%eax
454fc8:	8b 48 2c             	mov    0x2c(%eax),%ecx
454fcb:	85 c9                	test   %ecx,%ecx
454fcd:	75 04                	jne    0x454fd3
454fcf:	33 c0                	xor    %eax,%eax
454fd1:	eb 18                	jmp    0x454feb
454fd3:	8b 01                	mov    (%ecx),%eax
454fd5:	56                   	push   %esi
454fd6:	ff 75 10             	push   0x10(%ebp)
454fd9:	ff 75 0c             	push   0xc(%ebp)
454fdc:	8b 70 3c             	mov    0x3c(%eax),%esi
454fdf:	51                   	push   %ecx
454fe0:	8b ce                	mov    %esi,%ecx
454fe2:	ff 15 2c 81 4a 00    	call   *0x4a812c
454fe8:	ff d6                	call   *%esi
454fea:	5e                   	pop    %esi
454feb:	5d                   	pop    %ebp
454fec:	c2 0c 00             	ret    $0xc
454fef:	cc                   	int3
454ff0:	8b ff                	mov    %edi,%edi
454ff2:	55                   	push   %ebp
454ff3:	8b ec                	mov    %esp,%ebp
454ff5:	8b 45 08             	mov    0x8(%ebp),%eax
454ff8:	8b 40 2c             	mov    0x2c(%eax),%eax
454ffb:	85 c0                	test   %eax,%eax
454ffd:	74 1d                	je     0x45501c
454fff:	56                   	push   %esi
455000:	ff 75 18             	push   0x18(%ebp)
455003:	8b 30                	mov    (%eax),%esi
455005:	ff 75 14             	push   0x14(%ebp)
455008:	ff 75 10             	push   0x10(%ebp)
45500b:	8b 4e 34             	mov    0x34(%esi),%ecx
45500e:	ff 75 0c             	push   0xc(%ebp)
455011:	50                   	push   %eax
455012:	ff 15 2c 81 4a 00    	call   *0x4a812c