64692c:	3d fd 2e 00 00       	cmp    $0x2efd,%eax
646931:	74 22                	je     0x646955
646933:	e8 a8 fa fe ff       	call   0x6363e0
646938:	ff 76 3c             	push   0x3c(%esi)
64693b:	68 90 32 6e 00       	push   $0x6e3290
646940:	8b 08                	mov    (%eax),%ecx
646942:	68 fc 56 6e 00       	push   $0x6e56fc
646947:	50                   	push   %eax
646948:	ff 51 24             	call   *0x24(%ecx)
64694b:	83 c4 10             	add    $0x10,%esp
64694e:	32 c0                	xor    %al,%al
646950:	5e                   	pop    %esi
646951:	5d                   	pop    %ebp
646952:	c2 10 00             	ret    $0x10
646955:	e8 86 fa fe ff       	call   0x6363e0
64695a:	ff 76 3c             	push   0x3c(%esi)
64695d:	68 90 32 6e 00       	push   $0x6e3290
646962:	8b 08                	mov    (%eax),%ecx
646964:	50                   	push   %eax
646965:	ff 51 04             	call   *0x4(%ecx)
646968:	83 c4 0c             	add    $0xc,%esp
64696b:	32 c0                	xor    %al,%al
64696d:	5e                   	pop    %esi
64696e:	5d                   	pop    %ebp
64696f:	c2 10 00             	ret    $0x10
646972:	b0 01                	mov    $0x1,%al
646974:	5e                   	pop    %esi
646975:	5d                   	pop    %ebp
646976:	c2 10 00             	ret    $0x10
646979:	cc                   	int3
64697a:	cc                   	int3
64697b:	cc                   	int3
64697c:	cc                   	int3
64697d:	cc                   	int3
64697e:	cc                   	int3
64697f:	cc                   	int3
646980:	55                   	push   %ebp
646981:	8b ec                	mov    %esp,%ebp
646983:	51                   	push   %ecx
646984:	56                   	push   %esi
646985:	8b f1                	mov    %ecx,%esi
646987:	57                   	push   %edi
646988:	80 7e 20 00          	cmpb   $0x0,0x20(%esi)
64698c:	75 24                	jne    0x6469b2
64698e:	83 ec 18             	sub    $0x18,%esp
646991:	8b cc                	mov    %esp,%ecx
646993:	68 fc 56 6e 00       	push   $0x6e56fc
646998:	e8 83 1c df ff       	call   0x438620
64699d:	6a 00                	push   $0x0
64699f:	6a 13                	push   $0x13
6469a1:	8b ce                	mov    %esi,%ecx
6469a3:	e8 68 13 00 00       	call   0x647d10
6469a8:	32 c0                	xor    %al,%al
6469aa:	5f                   	pop    %edi
6469ab:	5e                   	pop    %esi
6469ac:	8b e5                	mov    %ebp,%esp
6469ae:	5d                   	pop    %ebp
6469af:	c2 04 00             	ret    $0x4
6469b2:	8b 86 b0 00 00 00    	mov    0xb0(%esi),%eax
6469b8:	85 c0                	test   %eax,%eax
6469ba:	74 11                	je     0x6469cd
6469bc:	50                   	push   %eax
6469bd:	ff 15 8c 24 68 00    	call   *0x68248c
6469c3:	c7 86 b0 00 00 00 00 	movl   $0x0,0xb0(%esi)
6469ca:	00 00 00
6469cd:	8b 46 24             	mov    0x24(%esi),%eax
6469d0:	bf 00 01 00 00       	mov    $0x100,%edi
6469d5:	b9 00 01 80 00       	mov    $0x800100,%ecx
6469da:	8d 90 38 01 00 00    	lea    0x138(%eax),%edx
6469e0:	83 b8 54 01 00 00 01 	cmpl   $0x1,0x154(%eax)
6469e7:	0f 44 f9             	cmove  %ecx,%edi
6469ea:	83 7a 14 08          	cmpl   $0x8,0x14(%edx)
6469ee:	72 02                	jb     0x6469f2
6469f0:	8b 12                	mov    (%edx),%edx
6469f2:	83 be 90 00 00 00 08 	cmpl   $0x8,0x90(%esi)
6469f9:	8d 46 7c             	lea    0x7c(%esi),%eax
6469fc:	72 02                	jb     0x646a00
6469fe:	8b 00                	mov    (%eax),%eax
646a00:	83 be a8 00 00 00 08 	cmpl   $0x8,0xa8(%esi)
646a07:	8d 8e 94 00 00 00    	lea    0x94(%esi),%ecx
646a0d:	72 02                	jb     0x646a11
646a0f:	8b 09                	mov    (%ecx),%ecx
646a11:	57                   	push   %edi
646a12:	6a 00                	push   $0x0
646a14:	52                   	push   %edx
646a15:	6a 00                	push   $0x0
646a17:	50                   	push   %eax
646a18:	51                   	push   %ecx
646a19:	ff b6 ac 00 00 00    	push   0xac(%esi)
646a1f:	ff 15 94 24 68 00    	call   *0x682494
646a25:	89 86 b0 00 00 00    	mov    %eax,0xb0(%esi)
646a2b:	85 c0                	test   %eax,%eax
646a2d:	75 2b                	jne    0x646a5a
646a2f:	e8 ac f9 fe ff       	call   0x6363e0
646a34:	68 f8 39 6e 00       	push   $0x6e39f8
646a39:	50                   	push   %eax
646a3a:	8b 08                	mov    (%eax),%ecx
646a3c:	ff 51 04             	call   *0x4(%ecx)
646a3f:	83 c4 08             	add    $0x8,%esp
646a42:	ff 15 e0 21 68 00    	call   *0x6821e0
646a48:	50                   	push   %eax
646a49:	8b ce                	mov    %esi,%ecx
646a4b:	e8 80 0a 00 00       	call   0x6474d0
646a50:	32 c0                	xor    %al,%al
646a52:	5f                   	pop    %edi
646a53:	5e                   	pop    %esi
646a54:	8b e5                	mov    %ebp,%esp
646a56:	5d                   	pop    %ebp
646a57:	c2 04 00             	ret    $0x4
646a5a:	5f                   	pop    %edi
646a5b:	b0 01                	mov    $0x1,%al
646a5d:	5e                   	pop    %esi
646a5e:	8b e5                	mov    %ebp,%esp
646a60:	5d                   	pop    %ebp
646a61:	c2 04 00             	ret    $0x4
646a64:	cc                   	int3
646a65:	cc                   	int3
646a66:	cc                   	int3
646a67:	cc                   	int3
646a68:	cc                   	int3
646a69:	cc                   	int3
646a6a:	cc                   	int3
646a6b:	cc                   	int3
646a6c:	cc                   	int3
646a6d:	cc                   	int3
646a6e:	cc                   	int3
646a6f:	cc                   	int3
646a70:	55                   	push   %ebp
646a71:	8b ec                	mov    %esp,%ebp
646a73:	51                   	push   %ecx
646a74:	53                   	push   %ebx
646a75:	56                   	push   %esi
646a76:	8b f1                	mov    %ecx,%esi
646a78:	57                   	push   %edi
646a79:	80 7e 20 00          	cmpb   $0x0,0x20(%esi)
646a7d:	0f 84 4a 01 00 00    	je     0x646bcd
646a83:	80 7e 28 00          	cmpb   $0x0,0x28(%esi)
646a87:	0f 84 40 01 00 00    	je     0x646bcd
646a8d:	8b 5d 0c             	mov    0xc(%ebp),%ebx
646a90:	8d 45 fc             	lea    -0x4(%ebp),%eax
646a93:	50                   	push   %eax
646a94:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
646a9b:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
646aa1:	ff b6 b0 00 00 00    	push   0xb0(%esi)
646aa7:	ff 15 b8 24 68 00    	call   *0x6824b8
646aad:	85 c0                	test   %eax,%eax
646aaf:	75 38                	jne    0x646ae9
646ab1:	8b 1d e0 21 68 00    	mov    0x6821e0,%ebx
646ab7:	ff d3                	call   *%ebx
646ab9:	50                   	push   %eax
646aba:	8b ce                	mov    %esi,%ecx
646abc:	e8 0f 0a 00 00       	call   0x6474d0
646ac1:	e8 1a f9 fe ff       	call   0x6363e0
646ac6:	8b f0                	mov    %eax,%esi
646ac8:	8b 3e                	mov    (%esi),%edi
646aca:	ff d3                	call   *%ebx
646acc:	50                   	push   %eax
646acd:	68 20 39 6e 00       	push   $0x6e3920
646ad2:	68 fc 56 6e 00       	push   $0x6e56fc
646ad7:	56                   	push   %esi
646ad8:	ff 57 24             	call   *0x24(%edi)
646adb:	83 c4 10             	add    $0x10,%esp
646ade:	33 c0                	xor    %eax,%eax
646ae0:	5f                   	pop    %edi
646ae1:	5e                   	pop    %esi
646ae2:	5b                   	pop    %ebx
646ae3:	8b e5                	mov    %ebp,%esp
646ae5:	5d                   	pop    %ebp
646ae6:	c2 10 00             	ret    $0x10
646ae9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
646aec:	3b 4d 14             	cmp    0x14(%ebp),%ecx
646aef:	0f 47 4d 14          	cmova  0x14(%ebp),%ecx
646af3:	89 4d fc             	mov    %ecx,-0x4(%ebp)
646af6:	85 c9                	test   %ecx,%ecx
646af8:	75 0c                	jne    0x646b06
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