646afa:	8d 41 02             	lea    0x2(%ecx),%eax
646afd:	5f                   	pop    %edi
646afe:	5e                   	pop    %esi
646aff:	5b                   	pop    %ebx
646b00:	8b e5                	mov    %ebp,%esp
646b02:	5d                   	pop    %ebp
646b03:	c2 10 00             	ret    $0x10
646b06:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
646b0a:	8b 7d 08             	mov    0x8(%ebp),%edi
646b0d:	74 57                	je     0x646b66
646b0f:	68 38 26 73 00       	push   $0x732638
646b14:	51                   	push   %ecx
646b15:	e8 c1 45 00 00       	call   0x64b0db
646b1a:	83 c4 08             	add    $0x8,%esp
646b1d:	89 07                	mov    %eax,(%edi)
646b1f:	85 c0                	test   %eax,%eax
646b21:	75 40                	jne    0x646b63
646b23:	e8 b8 f8 fe ff       	call   0x6363e0
646b28:	ff 75 fc             	push   -0x4(%ebp)
646b2b:	68 70 39 6e 00       	push   $0x6e3970
646b30:	8b 08                	mov    (%eax),%ecx
646b32:	68 fc 56 6e 00       	push   $0x6e56fc
646b37:	50                   	push   %eax
646b38:	ff 51 24             	call   *0x24(%ecx)
646b3b:	83 ec 08             	sub    $0x8,%esp
646b3e:	8b cc                	mov    %esp,%ecx
646b40:	68 fc 56 6e 00       	push   $0x6e56fc
646b45:	e8 d6 1a df ff       	call   0x438620
646b4a:	6a 00                	push   $0x0
646b4c:	6a 14                	push   $0x14
646b4e:	8b ce                	mov    %esi,%ecx
646b50:	e8 bb 11 00 00       	call   0x647d10
646b55:	b8 04 00 00 00       	mov    $0x4,%eax
646b5a:	5f                   	pop    %edi
646b5b:	5e                   	pop    %esi
646b5c:	5b                   	pop    %ebx
646b5d:	8b e5                	mov    %ebp,%esp
646b5f:	5d                   	pop    %ebp
646b60:	c2 10 00             	ret    $0x10
646b63:	8b 4d fc             	mov    -0x4(%ebp),%ecx
646b66:	51                   	push   %ecx
646b67:	6a 00                	push   $0x0
646b69:	ff 37                	push   (%edi)
646b6b:	e8 90 ce f9 ff       	call   0x5e3a00
646b70:	83 c4 0c             	add    $0xc,%esp
646b73:	53                   	push   %ebx
646b74:	ff 75 fc             	push   -0x4(%ebp)
646b77:	ff 37                	push   (%edi)
646b79:	ff b6 b0 00 00 00    	push   0xb0(%esi)
646b7f:	ff 15 7c 24 68 00    	call   *0x68247c
646b85:	85 c0                	test   %eax,%eax
646b87:	75 31                	jne    0x646bba
646b89:	e8 52 f8 fe ff       	call   0x6363e0
646b8e:	68 b8 39 6e 00       	push   $0x6e39b8
646b93:	68 fc 56 6e 00       	push   $0x6e56fc
646b98:	50                   	push   %eax
646b99:	8b 08                	mov    (%eax),%ecx
646b9b:	ff 51 24             	call   *0x24(%ecx)
646b9e:	83 c4 0c             	add    $0xc,%esp
646ba1:	ff 15 e0 21 68 00    	call   *0x6821e0
646ba7:	50                   	push   %eax
646ba8:	8b ce                	mov    %esi,%ecx
646baa:	e8 21 09 00 00       	call   0x6474d0
646baf:	33 c0                	xor    %eax,%eax
646bb1:	5f                   	pop    %edi
646bb2:	5e                   	pop    %esi
646bb3:	5b                   	pop    %ebx
646bb4:	8b e5                	mov    %ebp,%esp
646bb6:	5d                   	pop    %ebp
646bb7:	c2 10 00             	ret    $0x10
646bba:	8b 45 fc             	mov    -0x4(%ebp),%eax
646bbd:	f7 d8                	neg    %eax
646bbf:	1b c0                	sbb    %eax,%eax
646bc1:	83 c0 02             	add    $0x2,%eax
646bc4:	5f                   	pop    %edi
646bc5:	5e                   	pop    %esi
646bc6:	5b                   	pop    %ebx
646bc7:	8b e5                	mov    %ebp,%esp
646bc9:	5d                   	pop    %ebp
646bca:	c2 10 00             	ret    $0x10
646bcd:	e8 0e f8 fe ff       	call   0x6363e0
646bd2:	68 e0 38 6e 00       	push   $0x6e38e0
646bd7:	50                   	push   %eax
646bd8:	8b 08                	mov    (%eax),%ecx
646bda:	ff 51 04             	call   *0x4(%ecx)
646bdd:	83 ec 10             	sub    $0x10,%esp
646be0:	33 c0                	xor    %eax,%eax
646be2:	8b cc                	mov    %esp,%ecx
646be4:	50                   	push   %eax
646be5:	c7 41 14 07 00 00 00 	movl   $0x7,0x14(%ecx)
646bec:	c7 41 10 00 00 00 00 	movl   $0x0,0x10(%ecx)
646bf3:	68 fc 56 6e 00       	push   $0x6e56fc
646bf8:	66 89 01             	mov    %ax,(%ecx)
646bfb:	e8 f0 1b df ff       	call   0x4387f0
646c00:	6a 00                	push   $0x0
646c02:	6a 13                	push   $0x13
646c04:	8b ce                	mov    %esi,%ecx
646c06:	e8 05 11 00 00       	call   0x647d10
646c0b:	5f                   	pop    %edi
646c0c:	5e                   	pop    %esi
646c0d:	b8 03 00 00 00       	mov    $0x3,%eax
646c12:	5b                   	pop    %ebx
646c13:	8b e5                	mov    %ebp,%esp
646c15:	5d                   	pop    %ebp
646c16:	c2 10 00             	ret    $0x10
646c19:	cc                   	int3
646c1a:	cc                   	int3
646c1b:	cc                   	int3
646c1c:	cc                   	int3
646c1d:	cc                   	int3
646c1e:	cc                   	int3
646c1f:	cc                   	int3
646c20:	55                   	push   %ebp
646c21:	8b ec                	mov    %esp,%ebp
646c23:	83 ec 0c             	sub    $0xc,%esp
646c26:	56                   	push   %esi
646c27:	57                   	push   %edi
646c28:	8b f9                	mov    %ecx,%edi
646c2a:	e8 b1 f7 fe ff       	call   0x6363e0
646c2f:	68 78 33 6e 00       	push   $0x6e3378
646c34:	50                   	push   %eax
646c35:	8b 10                	mov    (%eax),%edx
646c37:	ff 52 04             	call   *0x4(%edx)
646c3a:	8d b7 b0 00 00 00    	lea    0xb0(%edi),%esi
646c40:	56                   	push   %esi
646c41:	e8 0a 06 00 00       	call   0x647250
646c46:	83 c4 0c             	add    $0xc,%esp
646c49:	8d 45 f8             	lea    -0x8(%ebp),%eax
646c4c:	50                   	push   %eax
646c4d:	8d 45 f4             	lea    -0xc(%ebp),%eax
646c50:	50                   	push   %eax
646c51:	8d 45 fc             	lea    -0x4(%ebp),%eax
646c54:	50                   	push   %eax
646c55:	ff 36                	push   (%esi)
646c57:	ff 15 b4 24 68 00    	call   *0x6824b4
646c5d:	85 c0                	test   %eax,%eax
646c5f:	75 16                	jne    0x646c77
646c61:	ff 15 e0 21 68 00    	call   *0x6821e0
646c67:	50                   	push   %eax
646c68:	8b cf                	mov    %edi,%ecx
646c6a:	e8 61 08 00 00       	call   0x6474d0
646c6f:	5f                   	pop    %edi
646c70:	32 c0                	xor    %al,%al
646c72:	5e                   	pop    %esi
646c73:	8b e5                	mov    %ebp,%esp
646c75:	5d                   	pop    %ebp
646c76:	c3                   	ret
646c77:	8b 45 fc             	mov    -0x4(%ebp),%eax
646c7a:	a8 10                	test   $0x10,%al
646c7c:	74 15                	je     0x646c93
646c7e:	8b 47 24             	mov    0x24(%edi),%eax
646c81:	5f                   	pop    %edi
646c82:	5e                   	pop    %esi
646c83:	c7 80 7c 01 00 00 10 	movl   $0x10,0x17c(%eax)
646c8a:	00 00 00
646c8d:	b0 01                	mov    $0x1,%al
646c8f:	8b e5                	mov    %ebp,%esp
646c91:	5d                   	pop    %ebp
646c92:	c3                   	ret
646c93:	a8 01                	test   $0x1,%al
646c95:	74 15                	je     0x646cac
646c97:	8b 47 24             	mov    0x24(%edi),%eax
646c9a:	5f                   	pop    %edi
646c9b:	5e                   	pop    %esi
646c9c:	c7 80 7c 01 00 00 01 	movl   $0x1,0x17c(%eax)
646ca3:	00 00 00
646ca6:	b0 01                	mov    $0x1,%al
646ca8:	8b e5                	mov    %ebp,%esp
646caa:	5d                   	pop    %ebp
646cab:	c3                   	ret
646cac:	a8 02                	test   $0x2,%al
646cae:	74 15                	je     0x646cc5
646cb0:	8b 47 24             	mov    0x24(%edi),%eax
646cb3:	5f                   	pop    %edi
646cb4:	5e                   	pop    %esi
646cb5:	c7 80 7c 01 00 00 02 	movl   $0x2,0x17c(%eax)
646cbc:	00 00 00
646cbf:	b0 01                	mov    $0x1,%al
646cc1:	8b e5                	mov    %ebp,%esp
646cc3:	5d                   	pop    %ebp
646cc4:	c3                   	ret
646cc5:	a8 04                	test   $0x4,%al
646cc7:	74 15                	je     0x646cde
646cc9:	8b 47 24             	mov    0x24(%edi),%eax
646ccc:	5f                   	pop    %edi
646ccd:	5e                   	pop    %esi
646cce:	c7 80 7c 01 00 00 04 	movl   $0x4,0x17c(%eax)
646cd5:	00 00 00
646cd8:	b0 01                	mov    $0x1,%al
646cda:	8b e5                	mov    %ebp,%esp
646cdc:	5d                   	pop    %ebp
646cdd:	c3                   	ret
646cde:	a8 08                	test   $0x8,%al
646ce0:	8b 47 24             	mov    0x24(%edi),%eax
646ce3:	74 12                	je     0x646cf7
646ce5:	5f                   	pop    %edi
646ce6:	c7 80 7c 01 00 00 08 	movl   $0x8,0x17c(%eax)
646ced:	00 00 00
646cf0:	b0 01                	mov    $0x1,%al
646cf2:	5e                   	pop    %esi
646cf3:	8b e5                	mov    %ebp,%esp
646cf5:	5d                   	pop    %ebp
646cf6:	c3                   	ret
646cf7:	5f                   	pop    %edi
646cf8:	c7 80 7c 01 00 00 00 	movl   $0x0,0x17c(%eax)
646cff:	00 00 00
646d02:	b0 01                	mov    $0x1,%al
646d04:	5e                   	pop    %esi
646d05:	8b e5                	mov    %ebp,%esp
646d07:	5d                   	pop    %ebp
646d08:	c3                   	ret
646d09:	cc                   	int3
646d0a:	cc                   	int3
646d0b:	cc                   	int3
646d0c:	cc                   	int3
646d0d:	cc                   	int3
646d0e:	cc                   	int3
646d0f:	cc                   	int3
646d10:	55                   	push   %ebp
646d11:	8b ec                	mov    %esp,%ebp
646d13:	6a ff                	push   $0xffffffff
646d15:	68 90 4d 66 00       	push   $0x664d90
646d1a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
646d20:	50                   	push   %eax
646d21:	83 ec 34             	sub    $0x34,%esp
646d24:	a1 d4 89 72 00       	mov    0x7289d4,%eax
646d29:	33 c5                	xor    %ebp,%eax
646d2b:	89 45 f0             	mov    %eax,-0x10(%ebp)
646d2e:	56                   	push   %esi
646d2f:	57                   	push   %edi
646d30:	50                   	push   %eax
646d31:	8d 45 f4             	lea    -0xc(%ebp),%eax
646d34:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
646d3a:	8b f1                	mov    %ecx,%esi
646d3c:	8b 7d 08             	mov    0x8(%ebp),%edi
646d3f:	33 c0                	xor    %eax,%eax
646d41:	c7 45 d4 07 00 00 00 	movl   $0x7,-0x2c(%ebp)
646d48:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
646d4f:	66 89 45 c0          	mov    %ax,-0x40(%ebp)
646d53:	89 45 fc             	mov    %eax,-0x4(%ebp)
646d56:	8d 45 c0             	lea    -0x40(%ebp),%eax
646d59:	50                   	push   %eax
646d5a:	6a 16                	push   $0x16
646d5c:	e8 cf 02 00 00       	call   0x647030
646d61:	e8 7a f6 fe ff       	call   0x6363e0
646d66:	83 7d d4 08          	cmpl   $0x8,-0x2c(%ebp)
646d6a:	8d 55 c0             	lea    -0x40(%ebp),%edx
646d6d:	0f 43 55 c0          	cmovae -0x40(%ebp),%edx
646d71:	8b 08                	mov    (%eax),%ecx
646d73:	52                   	push   %edx
646d74:	68 28 35 6e 00       	push   $0x6e3528
646d79:	50                   	push   %eax
646d7a:	ff 51 14             	call   *0x14(%ecx)
646d7d:	33 c0                	xor    %eax,%eax
646d7f:	c7 45 ec 07 00 00 00 	movl   $0x7,-0x14(%ebp)
646d86:	83 c4 0c             	add    $0xc,%esp
646d89:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
646d90:	66 89 45 d8          	mov    %ax,-0x28(%ebp)
646d94:	8d 45 d8             	lea    -0x28(%ebp),%eax
646d97:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
646d9b:	50                   	push   %eax
646d9c:	6a 05                	push   $0x5
646d9e:	8b ce                	mov    %esi,%ecx
646da0:	e8 8b 02 00 00       	call   0x647030
646da5:	84 c0                	test   %al,%al
646da7:	75 22                	jne    0x646dcb
646da9:	e8 32 f6 fe ff       	call   0x6363e0
646dae:	68 80 35 6e 00       	push   $0x6e3580
646db3:	50                   	push   %eax
646db4:	8b 08                	mov    (%eax),%ecx
646db6:	ff 51 04             	call   *0x4(%ecx)
646db9:	83 c4 08             	add    $0x8,%esp
646dbc:	8d 4d d8             	lea    -0x28(%ebp),%ecx
646dbf:	6a 01                	push   $0x1
646dc1:	68 30 36 6e 00       	push   $0x6e3630
646dc6:	e8 25 1a df ff       	call   0x4387f0
646dcb:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
646dcf:	8d 45 d8             	lea    -0x28(%ebp),%eax
646dd2:	57                   	push   %edi
646dd3:	ff 75 e8             	push   -0x18(%ebp)
646dd6:	0f 43 45 d8          	cmovae -0x28(%ebp),%eax
646dda:	50                   	push   %eax
646ddb:	e8 90 41 ff ff       	call   0x63af70
646de0:	e8 fb f5 fe ff       	call   0x6363e0
646de5:	ff 77 04             	push   0x4(%edi)
646de8:	ff 37                	push   (%edi)
646dea:	8b 08                	mov    (%eax),%ecx
646dec:	68 38 36 6e 00       	push   $0x6e3638
646df1:	50                   	push   %eax
646df2:	ff 51 04             	call   *0x4(%ecx)
646df5:	8b 45 ec             	mov    -0x14(%ebp),%eax
646df8:	83 c4 1c             	add    $0x1c,%esp
646dfb:	83 f8 08             	cmp    $0x8,%eax
646dfe:	72 0d                	jb     0x646e0d
646e00:	40                   	inc    %eax
646e01:	8d 4d d8             	lea    -0x28(%ebp),%ecx
646e04:	50                   	push   %eax
646e05:	ff 75 d8             	push   -0x28(%ebp)
646e08:	e8 d3 1f df ff       	call   0x438de0
646e0d:	33 c0                	xor    %eax,%eax
646e0f:	c7 45 ec 07 00 00 00 	movl   $0x7,-0x14(%ebp)
646e16:	66 89 45 d8          	mov    %ax,-0x28(%ebp)
646e1a:	8b 45 d4             	mov    -0x2c(%ebp),%eax
646e1d:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
646e24:	83 f8 08             	cmp    $0x8,%eax
646e27:	72 0d                	jb     0x646e36
646e29:	40                   	inc    %eax
646e2a:	8d 4d c0             	lea    -0x40(%ebp),%ecx
646e2d:	50                   	push   %eax
646e2e:	ff 75 c0             	push   -0x40(%ebp)
646e31:	e8 aa 1f df ff       	call   0x438de0
646e36:	b0 01                	mov    $0x1,%al
646e38:	8b 4d f4             	mov    -0xc(%ebp),%ecx
646e3b:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
646e42:	59                   	pop    %ecx
646e43:	5f                   	pop    %edi
646e44:	5e                   	pop    %esi
646e45:	8b 4d f0             	mov    -0x10(%ebp),%ecx
646e48:	33 cd                	xor    %ebp,%ecx
646e4a:	e8 8b a6 f9 ff       	call   0x5e14da
646e4f:	8b e5                	mov    %ebp,%esp
646e51:	5d                   	pop    %ebp
646e52:	c2 04 00             	ret    $0x4
646e55:	cc                   	int3
646e56:	cc                   	int3
646e57:	cc                   	int3
646e58:	cc                   	int3
646e59:	cc                   	int3
646e5a:	cc                   	int3
646e5b:	cc                   	int3
646e5c:	cc                   	int3
646e5d:	cc                   	int3
646e5e:	cc                   	int3
646e5f:	cc                   	int3
646e60:	55                   	push   %ebp
646e61:	8b ec                	mov    %esp,%ebp
646e63:	51                   	push   %ecx
646e64:	56                   	push   %esi
646e65:	8b 75 08             	mov    0x8(%ebp),%esi
646e68:	57                   	push   %edi
646e69:	8b f9                	mov    %ecx,%edi
646e6b:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
646e72:	6a ff                	push   $0xffffffff
646e74:	8d 4e 0c             	lea    0xc(%esi),%ecx
646e77:	8b 47 38             	mov    0x38(%edi),%eax
646e7a:	8d 57 44             	lea    0x44(%edi),%edx
646e7d:	89 06                	mov    %eax,(%esi)
646e7f:	8b 47 3c             	mov    0x3c(%edi),%eax
646e82:	89 46 04             	mov    %eax,0x4(%esi)
646e85:	8b 47 40             	mov    0x40(%edi),%eax