453b97:	8d 43 04             	lea    0x4(%ebx),%eax
453b9a:	89 47 08             	mov    %eax,0x8(%edi)
453b9d:	eb 0f                	jmp    0x453bae
453b9f:	8d 45 ec             	lea    -0x14(%ebp),%eax
453ba2:	8b ce                	mov    %esi,%ecx
453ba4:	50                   	push   %eax
453ba5:	ff 15 b8 75 4a 00    	call   *0x4a75b8
453bab:	83 c6 04             	add    $0x4,%esi
453bae:	3b f3                	cmp    %ebx,%esi
453bb0:	75 ed                	jne    0x453b9f
453bb2:	eb 5e                	jmp    0x453c12
453bb4:	8b 45 dc             	mov    -0x24(%ebp),%eax
453bb7:	8b 40 08             	mov    0x8(%eax),%eax
453bba:	83 c0 04             	add    $0x4,%eax
453bbd:	50                   	push   %eax
453bbe:	8b 45 08             	mov    0x8(%ebp),%eax
453bc1:	83 c0 04             	add    $0x4,%eax
453bc4:	50                   	push   %eax
453bc5:	e8 7c 00 00 00       	call   0x453c46
453bca:	eb 70                	jmp    0x453c3c
453bcc:	8d 5a fc             	lea    -0x4(%edx),%ebx
453bcf:	52                   	push   %edx
453bd0:	8b cb                	mov    %ebx,%ecx
453bd2:	e8 61 0e 00 00       	call   0x454a38
453bd7:	8b 75 08             	mov    0x8(%ebp),%esi
453bda:	89 47 08             	mov    %eax,0x8(%edi)
453bdd:	3b de                	cmp    %esi,%ebx
453bdf:	74 19                	je     0x453bfa
453be1:	8b 7d e0             	mov    -0x20(%ebp),%edi
453be4:	2b fb                	sub    %ebx,%edi
453be6:	83 eb 04             	sub    $0x4,%ebx
453be9:	53                   	push   %ebx
453bea:	8d 0c 1f             	lea    (%edi,%ebx,1),%ecx
453bed:	ff 15 b8 75 4a 00    	call   *0x4a75b8
453bf3:	3b de                	cmp    %esi,%ebx
453bf5:	75 ef                	jne    0x453be6
453bf7:	8b 75 08             	mov    0x8(%ebp),%esi
453bfa:	8d 7e 04             	lea    0x4(%esi),%edi
453bfd:	eb 0f                	jmp    0x453c0e
453bff:	8d 45 ec             	lea    -0x14(%ebp),%eax
453c02:	8b ce                	mov    %esi,%ecx
453c04:	50                   	push   %eax
453c05:	ff 15 b8 75 4a 00    	call   *0x4a75b8
453c0b:	83 c6 04             	add    $0x4,%esi
453c0e:	3b f7                	cmp    %edi,%esi
453c10:	75 ed                	jne    0x453bff
453c12:	8d 4d ec             	lea    -0x14(%ebp),%ecx
453c15:	ff 15 1c 74 4a 00    	call   *0x4a741c
453c1b:	e8 81 c8 03 00       	call   0x4904a1
453c20:	c2 0c 00             	ret    $0xc
453c23:	e8 0a 9d fc ff       	call   0x41d932
453c28:	ff 75 e8             	push   -0x18(%ebp)
453c2b:	ff 75 e4             	push   -0x1c(%ebp)
453c2e:	e8 13 00 00 00       	call   0x453c46
453c33:	51                   	push   %ecx
453c34:	ff 75 e4             	push   -0x1c(%ebp)
453c37:	e8 73 9d fc ff       	call   0x41d9af
453c3c:	33 f6                	xor    %esi,%esi
453c3e:	56                   	push   %esi
453c3f:	56                   	push   %esi
453c40:	e8 56 c8 03 00       	call   0x49049b
453c45:	cc                   	int3
453c46:	8b ff                	mov    %edi,%edi
453c48:	55                   	push   %ebp
453c49:	8b ec                	mov    %esp,%ebp
453c4b:	56                   	push   %esi
453c4c:	8b 75 08             	mov    0x8(%ebp),%esi
453c4f:	eb 0b                	jmp    0x453c5c
453c51:	8b ce                	mov    %esi,%ecx
453c53:	ff 15 1c 74 4a 00    	call   *0x4a741c
453c59:	83 c6 04             	add    $0x4,%esi
453c5c:	3b 75 0c             	cmp    0xc(%ebp),%esi
453c5f:	75 f0                	jne    0x453c51
453c61:	5e                   	pop    %esi
453c62:	5d                   	pop    %ebp
453c63:	c2 08 00             	ret    $0x8
453c66:	8b ff                	mov    %edi,%edi
453c68:	55                   	push   %ebp
453c69:	8b ec                	mov    %esp,%ebp
453c6b:	83 e4 f8             	and    $0xfffffff8,%esp
453c6e:	51                   	push   %ecx
453c6f:	51                   	push   %ecx
453c70:	56                   	push   %esi
453c71:	8b 75 0c             	mov    0xc(%ebp),%esi
453c74:	57                   	push   %edi
453c75:	8b f9                	mov    %ecx,%edi
453c77:	8b 47 04             	mov    0x4(%edi),%eax
453c7a:	3b 30                	cmp    (%eax),%esi
453c7c:	75 46                	jne    0x453cc4
453c7e:	39 45 10             	cmp    %eax,0x10(%ebp)
453c81:	75 41                	jne    0x453cc4
453c83:	ff 70 04             	push   0x4(%eax)
453c86:	e8 47 07 00 00       	call   0x4543d2
453c8b:	8b 47 04             	mov    0x4(%edi),%eax
453c8e:	89 40 04             	mov    %eax,0x4(%eax)
453c91:	8b 47 04             	mov    0x4(%edi),%eax
453c94:	83 67 08 00          	andl   $0x0,0x8(%edi)
453c98:	89 00                	mov    %eax,(%eax)
453c9a:	8b 47 04             	mov    0x4(%edi),%eax
453c9d:	89 40 08             	mov    %eax,0x8(%eax)
453ca0:	8b 47 04             	mov    0x4(%edi),%eax
453ca3:	8b 08                	mov    (%eax),%ecx
453ca5:	8b 45 08             	mov    0x8(%ebp),%eax
453ca8:	89 08                	mov    %ecx,(%eax)
453caa:	eb 22                	jmp    0x453cce
453cac:	8d 4d 0c             	lea    0xc(%ebp),%ecx
453caf:	e8 9e 6a fc ff       	call   0x41a752
453cb4:	56                   	push   %esi
453cb5:	8d 44 24 10          	lea    0x10(%esp),%eax
453cb9:	8b cf                	mov    %edi,%ecx
453cbb:	50                   	push   %eax
453cbc:	e8 b1 01 00 00       	call   0x453e72
453cc1:	8b 75 0c             	mov    0xc(%ebp),%esi
453cc4:	3b 75 10             	cmp    0x10(%ebp),%esi
453cc7:	75 e3                	jne    0x453cac
453cc9:	8b 45 08             	mov    0x8(%ebp),%eax
453ccc:	89 30                	mov    %esi,(%eax)
453cce:	5f                   	pop    %edi
453ccf:	5e                   	pop    %esi
453cd0:	8b e5                	mov    %ebp,%esp
453cd2:	5d                   	pop    %ebp
453cd3:	c2 0c 00             	ret    $0xc
453cd6:	8b ff                	mov    %edi,%edi
453cd8:	55                   	push   %ebp
453cd9:	8b ec                	mov    %esp,%ebp
453cdb:	83 e4 f8             	and    $0xfffffff8,%esp
453cde:	51                   	push   %ecx
453cdf:	51                   	push   %ecx
453ce0:	56                   	push   %esi
453ce1:	8b 75 0c             	mov    0xc(%ebp),%esi
453ce4:	57                   	push   %edi
453ce5:	8b f9                	mov    %ecx,%edi
453ce7:	8b 47 04             	mov    0x4(%edi),%eax
453cea:	3b 30                	cmp    (%eax),%esi
453cec:	75 46                	jne    0x453d34
453cee:	39 45 10             	cmp    %eax,0x10(%ebp)
453cf1:	75 41                	jne    0x453d34
453cf3:	ff 70 04             	push   0x4(%eax)
453cf6:	e8 17 07 00 00       	call   0x454412
453cfb:	8b 47 04             	mov    0x4(%edi),%eax
453cfe:	89 40 04             	mov    %eax,0x4(%eax)
453d01:	8b 47 04             	mov    0x4(%edi),%eax
453d04:	83 67 08 00          	andl   $0x0,0x8(%edi)
453d08:	89 00                	mov    %eax,(%eax)
453d0a:	8b 47 04             	mov    0x4(%edi),%eax
453d0d:	89 40 08             	mov    %eax,0x8(%eax)
453d10:	8b 47 04             	mov    0x4(%edi),%eax
453d13:	8b 08                	mov    (%eax),%ecx
453d15:	8b 45 08             	mov    0x8(%ebp),%eax
453d18:	89 08                	mov    %ecx,(%eax)
453d1a:	eb 22                	jmp    0x453d3e
453d1c:	8d 4d 0c             	lea    0xc(%ebp),%ecx
453d1f:	e8 2e 6a fc ff       	call   0x41a752
453d24:	56                   	push   %esi
453d25:	8d 44 24 10          	lea    0x10(%esp),%eax
453d29:	8b cf                	mov    %edi,%ecx
453d2b:	50                   	push   %eax
453d2c:	e8 ab 5f fc ff       	call   0x419cdc
453d31:	8b 75 0c             	mov    0xc(%ebp),%esi
453d34:	3b 75 10             	cmp    0x10(%ebp),%esi
453d37:	75 e3                	jne    0x453d1c
453d39:	8b 45 08             	mov    0x8(%ebp),%eax
453d3c:	89 30                	mov    %esi,(%eax)
453d3e:	5f                   	pop    %edi
453d3f:	5e                   	pop    %esi
453d40:	8b e5                	mov    %ebp,%esp
453d42:	5d                   	pop    %ebp
453d43:	c2 0c 00             	ret    $0xc
453d46:	8b ff                	mov    %edi,%edi
453d48:	55                   	push   %ebp
453d49:	8b ec                	mov    %esp,%ebp
453d4b:	83 e4 f8             	and    $0xfffffff8,%esp
453d4e:	51                   	push   %ecx
453d4f:	51                   	push   %ecx
453d50:	56                   	push   %esi
453d51:	8b 75 0c             	mov    0xc(%ebp),%esi
453d54:	57                   	push   %edi
453d55:	8b f9                	mov    %ecx,%edi
453d57:	8b 47 04             	mov    0x4(%edi),%eax
453d5a:	3b 30                	cmp    (%eax),%esi
453d5c:	75 46                	jne    0x453da4
453d5e:	39 45 10             	cmp    %eax,0x10(%ebp)
453d61:	75 41                	jne    0x453da4
453d63:	ff 70 04             	push   0x4(%eax)
453d66:	e8 df 06 00 00       	call   0x45444a
453d6b:	8b 47 04             	mov    0x4(%edi),%eax
453d6e:	89 40 04             	mov    %eax,0x4(%eax)
453d71:	8b 47 04             	mov    0x4(%edi),%eax
453d74:	83 67 08 00          	andl   $0x0,0x8(%edi)
453d78:	89 00                	mov    %eax,(%eax)
453d7a:	8b 47 04             	mov    0x4(%edi),%eax
453d7d:	89 40 08             	mov    %eax,0x8(%eax)
453d80:	8b 47 04             	mov    0x4(%edi),%eax
453d83:	8b 08                	mov    (%eax),%ecx
453d85:	8b 45 08             	mov    0x8(%ebp),%eax
453d88:	89 08                	mov    %ecx,(%eax)
453d8a:	eb 22                	jmp    0x453dae
453d8c:	8d 4d 0c             	lea    0xc(%ebp),%ecx
453d8f:	e8 46 5e fe ff       	call   0x439bda
453d94:	56                   	push   %esi
453d95:	8d 44 24 10          	lea    0x10(%esp),%eax
453d99:	8b cf                	mov    %edi,%ecx
453d9b:	50                   	push   %eax
453d9c:	e8 85 03 00 00       	call   0x454126
453da1:	8b 75 0c             	mov    0xc(%ebp),%esi
453da4:	3b 75 10             	cmp    0x10(%ebp),%esi
453da7:	75 e3                	jne    0x453d8c
453da9:	8b 45 08             	mov    0x8(%ebp),%eax
453dac:	89 30                	mov    %esi,(%eax)
453dae:	5f                   	pop    %edi
453daf:	5e                   	pop    %esi
453db0:	8b e5                	mov    %ebp,%esp
453db2:	5d                   	pop    %ebp
453db3:	c2 0c 00             	ret    $0xc
453db6:	8b ff                	mov    %edi,%edi
453db8:	55                   	push   %ebp
453db9:	8b ec                	mov    %esp,%ebp
453dbb:	51                   	push   %ecx
453dbc:	51                   	push   %ecx
453dbd:	56                   	push   %esi
453dbe:	57                   	push   %edi
453dbf:	8b 7d 08             	mov    0x8(%ebp),%edi
453dc2:	8b f1                	mov    %ecx,%esi
453dc4:	57                   	push   %edi
453dc5:	e8 26 72 fc ff       	call   0x41aff0
453dca:	84 c0                	test   %al,%al
453dcc:	74 1b                	je     0x453de9
453dce:	83 7e 18 08          	cmpl   $0x8,0x18(%esi)
453dd2:	8d 46 04             	lea    0x4(%esi),%eax
453dd5:	72 02                	jb     0x453dd9
453dd7:	8b 00                	mov    (%eax),%eax
453dd9:	ff 75 0c             	push   0xc(%ebp)
453ddc:	2b f8                	sub    %eax,%edi
453dde:	d1 ff                	sar    $1,%edi
453de0:	57                   	push   %edi
453de1:	56                   	push   %esi
453de2:	e8 0f 01 fd ff       	call   0x423ef6
453de7:	eb 69                	jmp    0x453e52
453de9:	8b 46 14             	mov    0x14(%esi),%eax
453dec:	53                   	push   %ebx
453ded:	8b 5d 0c             	mov    0xc(%ebp),%ebx
453df0:	f7 d0                	not    %eax
453df2:	3b c3                	cmp    %ebx,%eax
453df4:	77 05                	ja     0x453dfb
453df6:	e8 57 9c 03 00       	call   0x48da52
453dfb:	85 db                	test   %ebx,%ebx
453dfd:	74 50                	je     0x453e4f
453dff:	8b 46 14             	mov    0x14(%esi),%eax
453e02:	8b ce                	mov    %esi,%ecx
453e04:	03 c3                	add    %ebx,%eax
453e06:	6a 00                	push   $0x0
453e08:	50                   	push   %eax
453e09:	89 45 f8             	mov    %eax,-0x8(%ebp)
453e0c:	e8 8c 88 fc ff       	call   0x41c69d
453e11:	84 c0                	test   %al,%al
453e13:	74 3a                	je     0x453e4f
453e15:	8b 56 18             	mov    0x18(%esi),%edx
453e18:	8d 46 04             	lea    0x4(%esi),%eax
453e1b:	89 45 fc             	mov    %eax,-0x4(%ebp)
453e1e:	83 fa 08             	cmp    $0x8,%edx
453e21:	72 05                	jb     0x453e28
453e23:	8b 00                	mov    (%eax),%eax
453e25:	89 45 fc             	mov    %eax,-0x4(%ebp)
453e28:	8b 4e 14             	mov    0x14(%esi),%ecx
453e2b:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
453e2e:	50                   	push   %eax
453e2f:	8b 45 fc             	mov    -0x4(%ebp),%eax
453e32:	2b d1                	sub    %ecx,%edx
453e34:	57                   	push   %edi
453e35:	03 d2                	add    %edx,%edx
453e37:	52                   	push   %edx
453e38:	8d 04 48             	lea    (%eax,%ecx,2),%eax
453e3b:	50                   	push   %eax
453e3c:	ff 15 f0 80 4a 00    	call   *0x4a80f0
453e42:	83 c4 10             	add    $0x10,%esp
453e45:	8b ce                	mov    %esi,%ecx
453e47:	ff 75 f8             	push   -0x8(%ebp)
453e4a:	e8 55 89 fc ff       	call   0x41c7a4
453e4f:	8b c6                	mov    %esi,%eax
453e51:	5b                   	pop    %ebx
453e52:	5f                   	pop    %edi
453e53:	5e                   	pop    %esi
453e54:	c9                   	leave
453e55:	c2 08 00             	ret    $0x8
453e58:	6a 20                	push   $0x20
453e5a:	ff 15 14 74 4a 00    	call   *0x4a7414
453e60:	59                   	pop    %ecx
453e61:	33 c9                	xor    %ecx,%ecx
453e63:	89 08                	mov    %ecx,(%eax)
453e65:	89 48 04             	mov    %ecx,0x4(%eax)
453e68:	89 48 08             	mov    %ecx,0x8(%eax)
453e6b:	66 c7 40 1c 01 00    	movw   $0x1,0x1c(%eax)
453e71:	c3                   	ret
453e72:	6a 5c                	push   $0x5c
453e74:	b8 b9 11 49 00       	mov    $0x4911b9,%eax
453e79:	e8 88 c6 03 00       	call   0x490506
453e7e:	89 4d a4             	mov    %ecx,-0x5c(%ebp)
453e81:	8b 5d 0c             	mov    0xc(%ebp),%ebx
453e84:	8b 45 08             	mov    0x8(%ebp),%eax
453e87:	89 45 98             	mov    %eax,-0x68(%ebp)
453e8a:	80 7b 1d 00          	cmpb   $0x0,0x1d(%ebx)
453e8e:	0f 85 64 02 00 00    	jne    0x4540f8
453e94:	8d 4d 0c             	lea    0xc(%ebp),%ecx
453e97:	e8 b6 68 fc ff       	call   0x41a752
453e9c:	8b 03                	mov    (%ebx),%eax
453e9e:	8b 7b 08             	mov    0x8(%ebx),%edi
453ea1:	80 78 1d 00          	cmpb   $0x0,0x1d(%eax)
453ea5:	75 18                	jne    0x453ebf
453ea7:	80 7f 1d 00          	cmpb   $0x0,0x1d(%edi)
453eab:	74 04                	je     0x453eb1
453ead:	8b f8                	mov    %eax,%edi
453eaf:	eb 0e                	jmp    0x453ebf
453eb1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
453eb4:	8b 79 08             	mov    0x8(%ecx),%edi
453eb7:	3b cb                	cmp    %ebx,%ecx
453eb9:	0f 85 86 00 00 00    	jne    0x453f45
453ebf:	80 7f 1d 00          	cmpb   $0x0,0x1d(%edi)
453ec3:	8b 73 04             	mov    0x4(%ebx),%esi
453ec6:	75 03                	jne    0x453ecb
453ec8:	89 77 04             	mov    %esi,0x4(%edi)
453ecb:	8b 55 a4             	mov    -0x5c(%ebp),%edx
453ece:	8b 42 04             	mov    0x4(%edx),%eax
453ed1:	39 58 04             	cmp    %ebx,0x4(%eax)
453ed4:	75 05                	jne    0x453edb
453ed6:	89 78 04             	mov    %edi,0x4(%eax)
453ed9:	eb 0b                	jmp    0x453ee6
453edb:	39 1e                	cmp    %ebx,(%esi)
453edd:	75 04                	jne    0x453ee3
453edf:	89 3e                	mov    %edi,(%esi)
453ee1:	eb 03                	jmp    0x453ee6
453ee3:	89 7e 08             	mov    %edi,0x8(%esi)
453ee6:	8b 42 04             	mov    0x4(%edx),%eax
453ee9:	39 18                	cmp    %ebx,(%eax)
453eeb:	75 29                	jne    0x453f16
453eed:	80 7f 1d 00          	cmpb   $0x0,0x1d(%edi)
453ef1:	74 04                	je     0x453ef7
453ef3:	8b c6                	mov    %esi,%eax
453ef5:	eb 1a                	jmp    0x453f11
453ef7:	8b 0f                	mov    (%edi),%ecx
453ef9:	8b c7                	mov    %edi,%eax
453efb:	80 79 1d 00          	cmpb   $0x0,0x1d(%ecx)
453eff:	75 10                	jne    0x453f11
453f01:	8b 01                	mov    (%ecx),%eax
453f03:	89 4d a0             	mov    %ecx,-0x60(%ebp)
453f06:	8b c8                	mov    %eax,%ecx
453f08:	80 78 1d 00          	cmpb   $0x0,0x1d(%eax)
453f0c:	74 f3                	je     0x453f01
453f0e:	8b 45 a0             	mov    -0x60(%ebp),%eax
453f11:	8b 4a 04             	mov    0x4(%edx),%ecx
453f14:	89 01                	mov    %eax,(%ecx)