441cc2:	52                   	push   %edx
441cc3:	56                   	push   %esi
441cc4:	89 75 ec             	mov    %esi,-0x14(%ebp)
441cc7:	89 75 f0             	mov    %esi,-0x10(%ebp)
441cca:	8b 08                	mov    (%eax),%ecx
441ccc:	56                   	push   %esi
441ccd:	50                   	push   %eax
441cce:	ff 51 28             	call   *0x28(%ecx)
441cd1:	8b 7d ec             	mov    -0x14(%ebp),%edi
441cd4:	89 7d 08             	mov    %edi,0x8(%ebp)
441cd7:	85 c0                	test   %eax,%eax
441cd9:	0f 88 15 01 00 00    	js     0x441df4
441cdf:	85 ff                	test   %edi,%edi
441ce1:	0f 8e 0d 01 00 00    	jle    0x441df4
441ce7:	8b 43 0c             	mov    0xc(%ebx),%eax
441cea:	56                   	push   %esi
441ceb:	8b 08                	mov    (%eax),%ecx
441ced:	8d 55 e4             	lea    -0x1c(%ebp),%edx
441cf0:	52                   	push   %edx
441cf1:	56                   	push   %esi
441cf2:	56                   	push   %esi
441cf3:	50                   	push   %eax
441cf4:	ff 51 2c             	call   *0x2c(%ecx)
441cf7:	85 c0                	test   %eax,%eax
441cf9:	0f 88 f5 00 00 00    	js     0x441df4
441cff:	8b 5d 0c             	mov    0xc(%ebp),%ebx
441d02:	8b 55 ec             	mov    -0x14(%ebp),%edx
441d05:	b8 00 40 00 00       	mov    $0x4000,%eax
441d0a:	89 55 f8             	mov    %edx,-0x8(%ebp)
441d0d:	66 85 03             	test   %ax,(%ebx)
441d10:	74 34                	je     0x441d46
441d12:	8b 75 20             	mov    0x20(%ebp),%esi
441d15:	8b 7d 10             	mov    0x10(%ebp),%edi
441d18:	6a 13                	push   $0x13
441d1a:	58                   	pop    %eax
441d1b:	66 89 03             	mov    %ax,(%ebx)
441d1e:	8b 06                	mov    (%esi),%eax
441d20:	c1 e0 04             	shl    $0x4,%eax
441d23:	03 c7                	add    %edi,%eax
441d25:	50                   	push   %eax
441d26:	ff 15 4c d4 48 00    	call   *0x48d44c
441d2c:	8b 0e                	mov    (%esi),%ecx
441d2e:	66 8b 03             	mov    (%ebx),%ax
441d31:	03 c9                	add    %ecx,%ecx
441d33:	66 89 04 cf          	mov    %ax,(%edi,%ecx,8)
441d37:	8b 45 f8             	mov    -0x8(%ebp),%eax
441d3a:	8b 40 08             	mov    0x8(%eax),%eax
441d3d:	89 44 cf 08          	mov    %eax,0x8(%edi,%ecx,8)
441d41:	e9 ae 00 00 00       	jmp    0x441df4
441d46:	8b 42 0c             	mov    0xc(%edx),%eax
441d49:	33 c9                	xor    %ecx,%ecx
441d4b:	41                   	inc    %ecx
441d4c:	2b cf                	sub    %edi,%ecx
441d4e:	8d 04 88             	lea    (%eax,%ecx,4),%eax
441d51:	8b 4a 08             	mov    0x8(%edx),%ecx
441d54:	89 45 f8             	mov    %eax,-0x8(%ebp)
441d57:	8b c6                	mov    %esi,%eax
441d59:	8b 75 20             	mov    0x20(%ebp),%esi
441d5c:	89 4d f4             	mov    %ecx,-0xc(%ebp)
441d5f:	89 45 0c             	mov    %eax,0xc(%ebp)
441d62:	85 ff                	test   %edi,%edi
441d64:	0f 84 88 00 00 00    	je     0x441df2
441d6a:	8b 5d 08             	mov    0x8(%ebp),%ebx
441d6d:	8b 55 10             	mov    0x10(%ebp),%edx
441d70:	6a 13                	push   $0x13
441d72:	5f                   	pop    %edi
441d73:	8b 04 81             	mov    (%ecx,%eax,4),%eax
441d76:	89 45 20             	mov    %eax,0x20(%ebp)
441d79:	8b 06                	mov    (%esi),%eax
441d7b:	c1 e0 04             	shl    $0x4,%eax
441d7e:	03 c2                	add    %edx,%eax
441d80:	50                   	push   %eax
441d81:	ff 15 4c d4 48 00    	call   *0x48d44c
441d87:	8b 16                	mov    (%esi),%edx
441d89:	8b 4d 10             	mov    0x10(%ebp),%ecx
441d8c:	c1 e2 04             	shl    $0x4,%edx
441d8f:	8d 43 ff             	lea    -0x1(%ebx),%eax
441d92:	66 89 3c 0a          	mov    %di,(%edx,%ecx,1)
441d96:	39 45 0c             	cmp    %eax,0xc(%ebp)
441d99:	75 1a                	jne    0x441db5
441d9b:	ff 75 f8             	push   -0x8(%ebp)
441d9e:	8d 41 08             	lea    0x8(%ecx),%eax
441da1:	8d 4d 20             	lea    0x20(%ebp),%ecx
441da4:	03 c2                	add    %edx,%eax
441da6:	51                   	push   %ecx
441da7:	83 20 00             	andl   $0x0,(%eax)
441daa:	50                   	push   %eax
441dab:	e8 d0 d0 fd ff       	call   0x41ee80
441db0:	83 c4 0c             	add    $0xc,%esp
441db3:	eb 07                	jmp    0x441dbc
441db5:	8b 45 20             	mov    0x20(%ebp),%eax
441db8:	89 44 0a 08          	mov    %eax,0x8(%edx,%ecx,1)
441dbc:	8b 0e                	mov    (%esi),%ecx
441dbe:	8b 45 18             	mov    0x18(%ebp),%eax
441dc1:	8b 55 10             	mov    0x10(%ebp),%edx
441dc4:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
441dc7:	66 89 3c 48          	mov    %di,(%eax,%ecx,2)
441dcb:	8b c1                	mov    %ecx,%eax
441dcd:	c1 e0 04             	shl    $0x4,%eax
441dd0:	03 c2                	add    %edx,%eax
441dd2:	89 04 8b             	mov    %eax,(%ebx,%ecx,4)
441dd5:	8b 45 14             	mov    0x14(%ebp),%eax
441dd8:	8b 5d 08             	mov    0x8(%ebp),%ebx
441ddb:	83 24 88 00          	andl   $0x0,(%eax,%ecx,4)
441ddf:	8d 41 01             	lea    0x1(%ecx),%eax
441de2:	8b 4d f4             	mov    -0xc(%ebp),%ecx
441de5:	89 06                	mov    %eax,(%esi)
441de7:	8b 45 0c             	mov    0xc(%ebp),%eax
441dea:	40                   	inc    %eax
441deb:	89 45 0c             	mov    %eax,0xc(%ebp)
441dee:	3b c3                	cmp    %ebx,%eax
441df0:	72 81                	jb     0x441d73
441df2:	ff 0e                	decl   (%esi)
441df4:	8d 45 e4             	lea    -0x1c(%ebp),%eax
441df7:	50                   	push   %eax
441df8:	ff 15 4c d4 48 00    	call   *0x48d44c
441dfe:	eb 37                	jmp    0x441e37
441e00:	8b 45 0c             	mov    0xc(%ebp),%eax
441e03:	b9 00 40 00 00       	mov    $0x4000,%ecx
441e08:	66 85 08             	test   %cx,(%eax)
441e0b:	74 2a                	je     0x441e37
441e0d:	8b 7d 20             	mov    0x20(%ebp),%edi
441e10:	8b 75 10             	mov    0x10(%ebp),%esi
441e13:	6a 13                	push   $0x13
441e15:	59                   	pop    %ecx
441e16:	51                   	push   %ecx
441e17:	66 89 08             	mov    %cx,(%eax)
441e1a:	8b 07                	mov    (%edi),%eax
441e1c:	6a 00                	push   $0x0
441e1e:	03 c0                	add    %eax,%eax
441e20:	53                   	push   %ebx
441e21:	53                   	push   %ebx
441e22:	66 89 0c c6          	mov    %cx,(%esi,%eax,8)
441e26:	ff 15 5c d4 48 00    	call   *0x48d45c
441e2c:	8b 0f                	mov    (%edi),%ecx
441e2e:	8b 43 08             	mov    0x8(%ebx),%eax
441e31:	03 c9                	add    %ecx,%ecx
441e33:	89 44 ce 08          	mov    %eax,0x8(%esi,%ecx,8)
441e37:	5f                   	pop    %edi
441e38:	5e                   	pop    %esi
441e39:	5b                   	pop    %ebx
441e3a:	c9                   	leave
441e3b:	c2 1c 00             	ret    $0x1c
441e3e:	55                   	push   %ebp
441e3f:	8b ec                	mov    %esp,%ebp
441e41:	51                   	push   %ecx
441e42:	56                   	push   %esi
441e43:	57                   	push   %edi
441e44:	8b 7d 08             	mov    0x8(%ebp),%edi
441e47:	57                   	push   %edi
441e48:	e8 68 fb ff ff       	call   0x4419b5
441e4d:	57                   	push   %edi
441e4e:	8b f0                	mov    %eax,%esi
441e50:	ff 15 4c d4 48 00    	call   *0x48d44c
441e56:	6a 13                	push   $0x13
441e58:	58                   	pop    %eax
441e59:	66 89 07             	mov    %ax,(%edi)
441e5c:	89 77 08             	mov    %esi,0x8(%edi)
441e5f:	5f                   	pop    %edi
441e60:	8b c6                	mov    %esi,%eax
441e62:	5e                   	pop    %esi
441e63:	59                   	pop    %ecx
441e64:	5d                   	pop    %ebp
441e65:	c2 04 00             	ret    $0x4
441e68:	55                   	push   %ebp
441e69:	8b ec                	mov    %esp,%ebp
441e6b:	51                   	push   %ecx
441e6c:	53                   	push   %ebx
441e6d:	56                   	push   %esi
441e6e:	57                   	push   %edi
441e6f:	ff 75 08             	push   0x8(%ebp)
441e72:	33 f6                	xor    %esi,%esi
441e74:	89 75 fc             	mov    %esi,-0x4(%ebp)
441e77:	ff 15 a4 d1 48 00    	call   *0x48d1a4
441e7d:	8b f8                	mov    %eax,%edi
441e7f:	33 c9                	xor    %ecx,%ecx
441e81:	6a 02                	push   $0x2
441e83:	5a                   	pop    %edx
441e84:	8d 47 01             	lea    0x1(%edi),%eax
441e87:	f7 e2                	mul    %edx
441e89:	0f 90 c1             	seto   %cl
441e8c:	f7 d9                	neg    %ecx
441e8e:	0b c8                	or     %eax,%ecx
441e90:	51                   	push   %ecx
441e91:	e8 54 d6 fd ff       	call   0x41f4ea
441e96:	59                   	pop    %ecx
441e97:	ff 75 08             	push   0x8(%ebp)
441e9a:	8b d8                	mov    %eax,%ebx
441e9c:	53                   	push   %ebx
441e9d:	ff 15 a0 d1 48 00    	call   *0x48d1a0
441ea3:	33 c0                	xor    %eax,%eax
441ea5:	66 89 04 7b          	mov    %ax,(%ebx,%edi,2)
441ea9:	0f b7 44 7b fe       	movzwl -0x2(%ebx,%edi,2),%eax
441eae:	83 f8 2a             	cmp    $0x2a,%eax
441eb1:	74 05                	je     0x441eb8
441eb3:	83 f8 5e             	cmp    $0x5e,%eax
441eb6:	75 0e                	jne    0x441ec6
441eb8:	33 c0                	xor    %eax,%eax
441eba:	66 89 44 7b fe       	mov    %ax,-0x2(%ebx,%edi,2)
441ebf:	c7 45 fc 00 40 00 00 	movl   $0x4000,-0x4(%ebp)
441ec6:	53                   	push   %ebx
441ec7:	ff 34 b5 70 00 4c 00 	push   0x4c0070(,%esi,4)
441ece:	ff 15 24 d3 48 00    	call   *0x48d324
441ed4:	85 c0                	test   %eax,%eax
441ed6:	74 0e                	je     0x441ee6
441ed8:	46                   	inc    %esi
441ed9:	83 fe 24             	cmp    $0x24,%esi
441edc:	7c e8                	jl     0x441ec6
441ede:	66 8b 7d fc          	mov    -0x4(%ebp),%di
441ee2:	33 f6                	xor    %esi,%esi
441ee4:	eb 0f                	jmp    0x441ef5
441ee6:	66 8b 7d fc          	mov    -0x4(%ebp),%di
441eea:	66 03 3c 75 28 00 4c 	add    0x4c0028(,%esi,2),%di
441ef1:	00
441ef2:	33 f6                	xor    %esi,%esi
441ef4:	46                   	inc    %esi
441ef5:	53                   	push   %ebx
441ef6:	e8 63 d6 fd ff       	call   0x41f55e
441efb:	59                   	pop    %ecx
441efc:	85 f6                	test   %esi,%esi
441efe:	74 05                	je     0x441f05
441f00:	66 8b c7             	mov    %di,%ax
441f03:	eb 05                	jmp    0x441f0a
441f05:	b8 ff ff 00 00       	mov    $0xffff,%eax
441f0a:	5f                   	pop    %edi
441f0b:	5e                   	pop    %esi
441f0c:	5b                   	pop    %ebx
441f0d:	c9                   	leave
441f0e:	c2 04 00             	ret    $0x4
441f11:	55                   	push   %ebp
441f12:	8b ec                	mov    %esp,%ebp
441f14:	51                   	push   %ecx
441f15:	51                   	push   %ecx
441f16:	53                   	push   %ebx
441f17:	8b 5d 14             	mov    0x14(%ebp),%ebx
441f1a:	56                   	push   %esi
441f1b:	33 c0                	xor    %eax,%eax
441f1d:	57                   	push   %edi
441f1e:	8b 7d 1c             	mov    0x1c(%ebp),%edi
441f21:	33 d2                	xor    %edx,%edx
441f23:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
441f29:	0f 94 c0             	sete   %al
441f2c:	8b f1                	mov    %ecx,%esi
441f2e:	89 75 f8             	mov    %esi,-0x8(%ebp)
441f31:	89 55 fc             	mov    %edx,-0x4(%ebp)
441f34:	89 45 1c             	mov    %eax,0x1c(%ebp)
441f37:	85 db                	test   %ebx,%ebx
441f39:	79 0f                	jns    0x441f4a
441f3b:	ff 75 08             	push   0x8(%ebp)
441f3e:	e8 98 ed fd ff       	call   0x420cdb
441f43:	8b d8                	mov    %eax,%ebx
441f45:	33 d2                	xor    %edx,%edx
441f47:	59                   	pop    %ecx
441f48:	85 db                	test   %ebx,%ebx
441f4a:	0f 84 57 01 00 00    	je     0x4420a7
441f50:	8b 4e 04             	mov    0x4(%esi),%ecx
441f53:	85 c9                	test   %ecx,%ecx
441f55:	0f 84 4c 01 00 00    	je     0x4420a7
441f5b:	8b 45 10             	mov    0x10(%ebp),%eax
441f5e:	85 c0                	test   %eax,%eax
441f60:	0f 84 41 01 00 00    	je     0x4420a7
441f66:	8b 75 18             	mov    0x18(%ebp),%esi
441f69:	0f 8e 8b 00 00 00    	jle    0x441ffa
441f6f:	85 f6                	test   %esi,%esi
441f71:	79 02                	jns    0x441f75
441f73:	8b f2                	mov    %edx,%esi
441f75:	3b f1                	cmp    %ecx,%esi
441f77:	7c 07                	jl     0x441f80
441f79:	8b c1                	mov    %ecx,%eax
441f7b:	e9 2a 01 00 00       	jmp    0x4420aa
441f80:	85 ff                	test   %edi,%edi
441f82:	79 04                	jns    0x441f88
441f84:	8b f9                	mov    %ecx,%edi
441f86:	2b fe                	sub    %esi,%edi
441f88:	2b ce                	sub    %esi,%ecx
441f8a:	3b f9                	cmp    %ecx,%edi
441f8c:	7e 02                	jle    0x441f90
441f8e:	8b f9                	mov    %ecx,%edi
441f90:	8b c6                	mov    %esi,%eax
441f92:	2b c3                	sub    %ebx,%eax
441f94:	40                   	inc    %eax
441f95:	03 c7                	add    %edi,%eax
441f97:	8b 7d 10             	mov    0x10(%ebp),%edi
441f9a:	89 45 18             	mov    %eax,0x18(%ebp)
441f9d:	3b f0                	cmp    %eax,%esi
441f9f:	0f 8d e8 00 00 00    	jge    0x44208d
441fa5:	3b d7                	cmp    %edi,%edx
441fa7:	0f 8d f6 00 00 00    	jge    0x4420a3
441fad:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)
441fb1:	8b 45 f8             	mov    -0x8(%ebp),%eax
441fb4:	8b 00                	mov    (%eax),%eax
441fb6:	75 0f                	jne    0x441fc7
441fb8:	8b 55 08             	mov    0x8(%ebp),%edx
441fbb:	53                   	push   %ebx
441fbc:	8d 0c 70             	lea    (%eax,%esi,2),%ecx
441fbf:	e8 d9 9e fc ff       	call   0x40be9d
441fc4:	59                   	pop    %ecx
441fc5:	eb 11                	jmp    0x441fd8
441fc7:	ff 75 0c             	push   0xc(%ebp)
441fca:	8d 04 70             	lea    (%eax,%esi,2),%eax
441fcd:	53                   	push   %ebx
441fce:	ff 75 08             	push   0x8(%ebp)
441fd1:	53                   	push   %ebx
441fd2:	50                   	push   %eax
441fd3:	e8 a2 b3 fd ff       	call   0x41d37a
441fd8:	8b 55 fc             	mov    -0x4(%ebp),%edx
441fdb:	85 c0                	test   %eax,%eax
441fdd:	75 10                	jne    0x441fef
441fdf:	42                   	inc    %edx
441fe0:	89 55 fc             	mov    %edx,-0x4(%ebp)
441fe3:	3b d7                	cmp    %edi,%edx
441fe5:	0f 84 b8 00 00 00    	je     0x4420a3
441feb:	03 f3                	add    %ebx,%esi
441fed:	eb 01                	jmp    0x441ff0
441fef:	46                   	inc    %esi
441ff0:	3b 75 18             	cmp    0x18(%ebp),%esi
441ff3:	7c b0                	jl     0x441fa5
441ff5:	e9 93 00 00 00       	jmp    0x44208d
441ffa:	f7 d8                	neg    %eax
441ffc:	89 45 10             	mov    %eax,0x10(%ebp)
441fff:	85 f6                	test   %esi,%esi
442001:	78 10                	js     0x442013
442003:	3b f1                	cmp    %ecx,%esi
442005:	7d 0c                	jge    0x442013
442007:	33 c0                	xor    %eax,%eax
442009:	40                   	inc    %eax
44200a:	2b c3                	sub    %ebx,%eax
44200c:	03 f0                	add    %eax,%esi
44200e:	8b 45 10             	mov    0x10(%ebp),%eax
442011:	eb 04                	jmp    0x442017
442013:	8b f1                	mov    %ecx,%esi
442015:	2b f3                	sub    %ebx,%esi
442017:	85 f6                	test   %esi,%esi
442019:	0f 88 5a ff ff ff    	js     0x441f79
44201f:	85 ff                	test   %edi,%edi
442021:	79 03                	jns    0x442026
442023:	8d 7e 01             	lea    0x1(%esi),%edi
442026:	8d 4e 01             	lea    0x1(%esi),%ecx
442029:	3b f9                	cmp    %ecx,%edi
44202b:	7e 02                	jle    0x44202f
44202d:	8b f9                	mov    %ecx,%edi
44202f:	8b ce                	mov    %esi,%ecx
442031:	2b cf                	sub    %edi,%ecx
442033:	89 4d 18             	mov    %ecx,0x18(%ebp)
442036:	3b f1                	cmp    %ecx,%esi
442038:	7e 4c                	jle    0x442086
44203a:	8b f9                	mov    %ecx,%edi
44203c:	3b d0                	cmp    %eax,%edx
44203e:	7d 63                	jge    0x4420a3
442040:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)