44890f:	8b 55 0c             	mov    0xc(%ebp),%edx
448912:	8b 4d f8             	mov    -0x8(%ebp),%ecx
448915:	83 62 04 00          	andl   $0x0,0x4(%edx)
448919:	89 0a                	mov    %ecx,(%edx)
44891b:	8b c6                	mov    %esi,%eax
44891d:	5e                   	pop    %esi
44891e:	8b e5                	mov    %ebp,%esp
448920:	5d                   	pop    %ebp
448921:	c2 08 00             	ret    $0x8
448924:	55                   	push   %ebp
448925:	8b ec                	mov    %esp,%ebp
448927:	51                   	push   %ecx
448928:	51                   	push   %ecx
448929:	56                   	push   %esi
44892a:	8d 45 fc             	lea    -0x4(%ebp),%eax
44892d:	c7 45 f8 04 00 00 00 	movl   $0x4,-0x8(%ebp)
448934:	50                   	push   %eax
448935:	8d 45 f8             	lea    -0x8(%ebp),%eax
448938:	33 f6                	xor    %esi,%esi
44893a:	50                   	push   %eax
44893b:	ff 75 10             	push   0x10(%ebp)
44893e:	8b 45 0c             	mov    0xc(%ebp),%eax
448941:	0d 00 00 00 20       	or     $0x20000000,%eax
448946:	89 75 fc             	mov    %esi,-0x4(%ebp)
448949:	50                   	push   %eax
44894a:	ff 75 08             	push   0x8(%ebp)
44894d:	ff 15 88 a9 46 00    	call   *0x46a988
448953:	85 c0                	test   %eax,%eax
448955:	75 2e                	jne    0x448985
448957:	ff 15 e8 b0 44 00    	call   *0x44b0e8
44895d:	0f b7 f0             	movzwl %ax,%esi
448960:	81 ce 00 00 07 80    	or     $0x80070000,%esi
448966:	85 c0                	test   %eax,%eax
448968:	0f 4e f0             	cmovle %eax,%esi
44896b:	b8 05 40 00 80       	mov    $0x80004005,%eax
448970:	85 f6                	test   %esi,%esi
448972:	0f 49 f0             	cmovns %eax,%esi
448975:	56                   	push   %esi
448976:	68 84 00 00 00       	push   $0x84
44897b:	68 f8 6c 46 00       	push   $0x466cf8
448980:	e8 4e ae fb ff       	call   0x4037d3
448985:	8b c6                	mov    %esi,%eax
448987:	5e                   	pop    %esi
448988:	8b e5                	mov    %ebp,%esp
44898a:	5d                   	pop    %ebp
44898b:	c2 0c 00             	ret    $0xc
44898e:	55                   	push   %ebp
44898f:	8b ec                	mov    %esp,%ebp
448991:	51                   	push   %ecx
448992:	51                   	push   %ecx
448993:	56                   	push   %esi
448994:	57                   	push   %edi
448995:	8b 7d 10             	mov    0x10(%ebp),%edi
448998:	33 c0                	xor    %eax,%eax
44899a:	89 45 fc             	mov    %eax,-0x4(%ebp)
44899d:	89 45 f8             	mov    %eax,-0x8(%ebp)
4489a0:	39 07                	cmp    %eax,(%edi)
4489a2:	75 12                	jne    0x4489b6
4489a4:	6a 40                	push   $0x40
4489a6:	57                   	push   %edi
4489a7:	e8 32 95 fb ff       	call   0x401ede
4489ac:	8b f0                	mov    %eax,%esi
4489ae:	85 f6                	test   %esi,%esi
4489b0:	0f 88 95 00 00 00    	js     0x448a4b
4489b6:	8d 45 fc             	lea    -0x4(%ebp),%eax
4489b9:	50                   	push   %eax
4489ba:	ff 37                	push   (%edi)
4489bc:	e8 29 9e fb ff       	call   0x4027ea
4489c1:	8b f0                	mov    %eax,%esi
4489c3:	85 f6                	test   %esi,%esi
4489c5:	0f 88 80 00 00 00    	js     0x448a4b
4489cb:	8d 45 f8             	lea    -0x8(%ebp),%eax
4489ce:	50                   	push   %eax
4489cf:	8d 45 fc             	lea    -0x4(%ebp),%eax
4489d2:	50                   	push   %eax
4489d3:	ff 37                	push   (%edi)
4489d5:	ff 75 0c             	push   0xc(%ebp)
4489d8:	ff 75 08             	push   0x8(%ebp)
4489db:	ff 15 88 a9 46 00    	call   *0x46a988
4489e1:	85 c0                	test   %eax,%eax
4489e3:	75 66                	jne    0x448a4b
4489e5:	ff 15 e8 b0 44 00    	call   *0x44b0e8
4489eb:	83 f8 7a             	cmp    $0x7a,%eax
4489ee:	75 3c                	jne    0x448a2c
4489f0:	8b 45 fc             	mov    -0x4(%ebp),%eax
4489f3:	83 c0 02             	add    $0x2,%eax
4489f6:	89 45 fc             	mov    %eax,-0x4(%ebp)
4489f9:	d1 e8                	shr    $1,%eax
4489fb:	50                   	push   %eax
4489fc:	57                   	push   %edi
4489fd:	e8 dc 94 fb ff       	call   0x401ede
448a02:	8b f0                	mov    %eax,%esi
448a04:	85 f6                	test   %esi,%esi
448a06:	78 43                	js     0x448a4b
448a08:	8d 45 f8             	lea    -0x8(%ebp),%eax
448a0b:	50                   	push   %eax
448a0c:	8d 45 fc             	lea    -0x4(%ebp),%eax
448a0f:	50                   	push   %eax
448a10:	ff 37                	push   (%edi)
448a12:	ff 75 0c             	push   0xc(%ebp)
448a15:	ff 75 08             	push   0x8(%ebp)
448a18:	ff 15 88 a9 46 00    	call   *0x46a988
448a1e:	85 c0                	test   %eax,%eax
448a20:	75 08                	jne    0x448a2a
448a22:	ff 15 e8 b0 44 00    	call   *0x44b0e8
448a28:	eb 02                	jmp    0x448a2c
448a2a:	33 c0                	xor    %eax,%eax
448a2c:	0f b7 f0             	movzwl %ax,%esi
448a2f:	81 ce 00 00 07 80    	or     $0x80070000,%esi
448a35:	85 c0                	test   %eax,%eax
448a37:	0f 4e f0             	cmovle %eax,%esi
448a3a:	85 f6                	test   %esi,%esi
448a3c:	79 0d                	jns    0x448a4b
448a3e:	56                   	push   %esi
448a3f:	6a 6c                	push   $0x6c
448a41:	68 f8 6c 46 00       	push   $0x466cf8
448a46:	e8 88 ad fb ff       	call   0x4037d3
448a4b:	5f                   	pop    %edi
448a4c:	8b c6                	mov    %esi,%eax
448a4e:	5e                   	pop    %esi
448a4f:	8b e5                	mov    %ebp,%esp
448a51:	5d                   	pop    %ebp
448a52:	c2 0c 00             	ret    $0xc
448a55:	55                   	push   %ebp
448a56:	8b ec                	mov    %esp,%ebp
448a58:	b8 6c 24 00 00       	mov    $0x246c,%eax
448a5d:	e8 9e 14 00 00       	call   0x449f00
448a62:	a1 08 a0 46 00       	mov    0x46a008,%eax
448a67:	33 c5                	xor    %ebp,%eax
448a69:	89 45 fc             	mov    %eax,-0x4(%ebp)
448a6c:	8b 45 08             	mov    0x8(%ebp),%eax
448a6f:	89 85 d8 db ff ff    	mov    %eax,-0x2428(%ebp)
448a75:	8b 45 0c             	mov    0xc(%ebp),%eax
448a78:	89 85 d4 db ff ff    	mov    %eax,-0x242c(%ebp)
448a7e:	8b 45 10             	mov    0x10(%ebp),%eax
448a81:	53                   	push   %ebx
448a82:	8b 5d 20             	mov    0x20(%ebp),%ebx
448a85:	89 85 e4 db ff ff    	mov    %eax,-0x241c(%ebp)
448a8b:	8b 45 14             	mov    0x14(%ebp),%eax
448a8e:	56                   	push   %esi
448a8f:	89 85 d0 db ff ff    	mov    %eax,-0x2430(%ebp)
448a95:	33 f6                	xor    %esi,%esi
448a97:	8b 45 18             	mov    0x18(%ebp),%eax
448a9a:	57                   	push   %edi
448a9b:	8b 7d 24             	mov    0x24(%ebp),%edi
448a9e:	89 85 e0 db ff ff    	mov    %eax,-0x2420(%ebp)
448aa4:	8b 45 1c             	mov    0x1c(%ebp),%eax
448aa7:	6a 3c                	push   $0x3c
448aa9:	89 85 dc db ff ff    	mov    %eax,-0x2424(%ebp)
448aaf:	8d 85 94 db ff ff    	lea    -0x246c(%ebp),%eax
448ab5:	56                   	push   %esi
448ab6:	50                   	push   %eax
448ab7:	e8 b4 6b fe ff       	call   0x42f670
448abc:	83 c4 0c             	add    $0xc,%esp
448abf:	c7 85 94 db ff ff 3c 	movl   $0x3c,-0x246c(%ebp)
448ac6:	00 00 00
448ac9:	39 b5 e4 db ff ff    	cmp    %esi,-0x241c(%ebp)
448acf:	74 16                	je     0x448ae7
448ad1:	8d 85 f0 fb ff ff    	lea    -0x410(%ebp),%eax
448ad7:	c7 85 a8 db ff ff 01 	movl   $0x101,-0x2458(%ebp)
448ade:	01 00 00
448ae1:	89 85 a4 db ff ff    	mov    %eax,-0x245c(%ebp)
448ae7:	b9 81 00 00 00       	mov    $0x81,%ecx
448aec:	39 b5 e0 db ff ff    	cmp    %esi,-0x2420(%ebp)
448af2:	74 12                	je     0x448b06
448af4:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
448afa:	89 8d b4 db ff ff    	mov    %ecx,-0x244c(%ebp)
448b00:	89 85 b0 db ff ff    	mov    %eax,-0x2450(%ebp)
448b06:	39 b5 dc db ff ff    	cmp    %esi,-0x2424(%ebp)
448b0c:	74 12                	je     0x448b20
448b0e:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
448b14:	89 8d bc db ff ff    	mov    %ecx,-0x2444(%ebp)
448b1a:	89 85 b8 db ff ff    	mov    %eax,-0x2448(%ebp)
448b20:	b9 01 08 00 00       	mov    $0x801,%ecx
448b25:	85 db                	test   %ebx,%ebx
448b27:	74 12                	je     0x448b3b
448b29:	8d 85 ec eb ff ff    	lea    -0x1414(%ebp),%eax
448b2f:	89 8d c4 db ff ff    	mov    %ecx,-0x243c(%ebp)
448b35:	89 85 c0 db ff ff    	mov    %eax,-0x2440(%ebp)
448b3b:	85 ff                	test   %edi,%edi
448b3d:	74 12                	je     0x448b51
448b3f:	8d 85 e8 db ff ff    	lea    -0x2418(%ebp),%eax
448b45:	89 8d cc db ff ff    	mov    %ecx,-0x2434(%ebp)
448b4b:	89 85 c8 db ff ff    	mov    %eax,-0x2438(%ebp)
448b51:	8d 85 94 db ff ff    	lea    -0x246c(%ebp),%eax
448b57:	50                   	push   %eax
448b58:	68 00 00 00 90       	push   $0x90000000
448b5d:	56                   	push   %esi
448b5e:	ff b5 d8 db ff ff    	push   -0x2428(%ebp)
448b64:	ff 15 90 a9 46 00    	call   *0x46a990
448b6a:	85 c0                	test   %eax,%eax
448b6c:	75 30                	jne    0x448b9e
448b6e:	ff 15 e8 b0 44 00    	call   *0x44b0e8
448b74:	0f b7 f0             	movzwl %ax,%esi
448b77:	81 ce 00 00 07 80    	or     $0x80070000,%esi
448b7d:	85 c0                	test   %eax,%eax
448b7f:	0f 4e f0             	cmovle %eax,%esi
448b82:	b8 05 40 00 80       	mov    $0x80004005,%eax
448b87:	85 f6                	test   %esi,%esi
448b89:	0f 49 f0             	cmovns %eax,%esi
448b8c:	56                   	push   %esi
448b8d:	6a 56                	push   $0x56
448b8f:	68 08 6d 46 00       	push   $0x466d08
448b94:	e8 3a ac fb ff       	call   0x4037d3
448b99:	e9 c4 00 00 00       	jmp    0x448c62
448b9e:	8b 8d d4 db ff ff    	mov    -0x242c(%ebp),%ecx
448ba4:	85 c9                	test   %ecx,%ecx
448ba6:	74 08                	je     0x448bb0
448ba8:	8b 85 a0 db ff ff    	mov    -0x2460(%ebp),%eax
448bae:	89 01                	mov    %eax,(%ecx)
448bb0:	8b 85 e4 db ff ff    	mov    -0x241c(%ebp),%eax
448bb6:	85 c0                	test   %eax,%eax
448bb8:	74 1c                	je     0x448bd6
448bba:	ff b5 a8 db ff ff    	push   -0x2458(%ebp)
448bc0:	ff b5 a4 db ff ff    	push   -0x245c(%ebp)
448bc6:	50                   	push   %eax
448bc7:	e8 d9 95 fb ff       	call   0x4021a5
448bcc:	8b f0                	mov    %eax,%esi
448bce:	85 f6                	test   %esi,%esi
448bd0:	0f 88 8c 00 00 00    	js     0x448c62
448bd6:	8b 85 d0 db ff ff    	mov    -0x2430(%ebp),%eax
448bdc:	85 c0                	test   %eax,%eax
448bde:	74 0a                	je     0x448bea
448be0:	66 8b 8d ac db ff ff 	mov    -0x2454(%ebp),%cx
448be7:	66 89 08             	mov    %cx,(%eax)
448bea:	8b 85 e0 db ff ff    	mov    -0x2420(%ebp),%eax
448bf0:	85 c0                	test   %eax,%eax
448bf2:	74 18                	je     0x448c0c
448bf4:	ff b5 b4 db ff ff    	push   -0x244c(%ebp)
448bfa:	ff b5 b0 db ff ff    	push   -0x2450(%ebp)
448c00:	50                   	push   %eax
448c01:	e8 9f 95 fb ff       	call   0x4021a5
448c06:	8b f0                	mov    %eax,%esi
448c08:	85 f6                	test   %esi,%esi
448c0a:	78 56                	js     0x448c62
448c0c:	8b 85 dc db ff ff    	mov    -0x2424(%ebp),%eax
448c12:	85 c0                	test   %eax,%eax
448c14:	74 18                	je     0x448c2e
448c16:	ff b5 bc db ff ff    	push   -0x2444(%ebp)
448c1c:	ff b5 b8 db ff ff    	push   -0x2448(%ebp)
448c22:	50                   	push   %eax
448c23:	e8 7d 95 fb ff       	call   0x4021a5
448c28:	8b f0                	mov    %eax,%esi
448c2a:	85 f6                	test   %esi,%esi
448c2c:	78 34                	js     0x448c62
448c2e:	85 db                	test   %ebx,%ebx
448c30:	74 18                	je     0x448c4a
448c32:	ff b5 c4 db ff ff    	push   -0x243c(%ebp)
448c38:	ff b5 c0 db ff ff    	push   -0x2440(%ebp)
448c3e:	53                   	push   %ebx
448c3f:	e8 61 95 fb ff       	call   0x4021a5
448c44:	8b f0                	mov    %eax,%esi
448c46:	85 f6                	test   %esi,%esi
448c48:	78 18                	js     0x448c62
448c4a:	85 ff                	test   %edi,%edi
448c4c:	74 14                	je     0x448c62
448c4e:	ff b5 cc db ff ff    	push   -0x2434(%ebp)
448c54:	ff b5 c8 db ff ff    	push   -0x2438(%ebp)
448c5a:	57                   	push   %edi
448c5b:	e8 45 95 fb ff       	call   0x4021a5
448c60:	8b f0                	mov    %eax,%esi
448c62:	8b 4d fc             	mov    -0x4(%ebp),%ecx
448c65:	8b c6                	mov    %esi,%eax
448c67:	5f                   	pop    %edi
448c68:	5e                   	pop    %esi
448c69:	33 cd                	xor    %ebp,%ecx
448c6b:	5b                   	pop    %ebx
448c6c:	e8 c5 51 fe ff       	call   0x42de36
448c71:	8b e5                	mov    %ebp,%esp
448c73:	5d                   	pop    %ebp
448c74:	c2 20 00             	ret    $0x20
448c77:	55                   	push   %ebp
448c78:	8b ec                	mov    %esp,%ebp
448c7a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
448c7d:	8d 41 18             	lea    0x18(%ecx),%eax
448c80:	50                   	push   %eax
448c81:	8d 41 14             	lea    0x14(%ecx),%eax
448c84:	50                   	push   %eax
448c85:	8d 41 10             	lea    0x10(%ecx),%eax
448c88:	50                   	push   %eax
448c89:	8d 41 0c             	lea    0xc(%ecx),%eax
448c8c:	50                   	push   %eax
448c8d:	8d 41 08             	lea    0x8(%ecx),%eax
448c90:	50                   	push   %eax
448c91:	8d 41 04             	lea    0x4(%ecx),%eax
448c94:	50                   	push   %eax
448c95:	51                   	push   %ecx
448c96:	ff 75 08             	push   0x8(%ebp)
448c99:	e8 b7 fd ff ff       	call   0x448a55
448c9e:	5d                   	pop    %ebp
448c9f:	c2 08 00             	ret    $0x8
448ca2:	55                   	push   %ebp
448ca3:	8b ec                	mov    %esp,%ebp
448ca5:	57                   	push   %edi
448ca6:	8b 7d 08             	mov    0x8(%ebp),%edi
448ca9:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
448cad:	74 08                	je     0x448cb7
448caf:	ff 77 04             	push   0x4(%edi)
448cb2:	e8 38 c8 ff ff       	call   0x4454ef
448cb7:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
448cbb:	74 08                	je     0x448cc5
448cbd:	ff 77 0c             	push   0xc(%edi)
448cc0:	e8 2a c8 ff ff       	call   0x4454ef
448cc5:	83 7f 10 00          	cmpl   $0x0,0x10(%edi)
448cc9:	74 08                	je     0x448cd3
448ccb:	ff 77 10             	push   0x10(%edi)
448cce:	e8 1c c8 ff ff       	call   0x4454ef
448cd3:	83 7f 14 00          	cmpl   $0x0,0x14(%edi)
448cd7:	74 08                	je     0x448ce1
448cd9:	ff 77 14             	push   0x14(%edi)
448cdc:	e8 0e c8 ff ff       	call   0x4454ef
448ce1:	83 7f 18 00          	cmpl   $0x0,0x18(%edi)
448ce5:	74 08                	je     0x448cef
448ce7:	ff 77 18             	push   0x18(%edi)
448cea:	e8 00 c8 ff ff       	call   0x4454ef
448cef:	6a 07                	push   $0x7
448cf1:	59                   	pop    %ecx
448cf2:	33 c0                	xor    %eax,%eax
448cf4:	f3 ab                	rep stos %eax,%es:(%edi)
448cf6:	5f                   	pop    %edi
448cf7:	5d                   	pop    %ebp
448cf8:	c2 04 00             	ret    $0x4
448cfb:	55                   	push   %ebp
448cfc:	8b ec                	mov    %esp,%ebp
448cfe:	51                   	push   %ecx
448cff:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
448d03:	a1 fc b6 46 00       	mov    0x46b6fc,%eax
448d08:	56                   	push   %esi
448d09:	a8 01                	test   $0x1,%al
448d0b:	75 1e                	jne    0x448d2b
448d0d:	ff 35 e0 a7 46 00    	push   0x46a7e0
448d13:	83 c8 01             	or     $0x1,%eax
448d16:	a3 fc b6 46 00       	mov    %eax,0x46b6fc
448d1b:	ff 15 f8 b0 44 00    	call   *0x44b0f8
448d21:	8b f0                	mov    %eax,%esi
448d23:	89 35 f8 b6 46 00    	mov    %esi,0x46b6f8
448d29:	eb 06                	jmp    0x448d31
448d2b:	8b 35 f8 b6 46 00    	mov    0x46b6f8,%esi
448d31:	8d 45 fc             	lea    -0x4(%ebp),%eax
448d34:	50                   	push   %eax
448d35:	68 ff ff ff 7f       	push   $0x7fffffff
448d3a:	ff 75 08             	push   0x8(%ebp)
448d3d:	e8 15 8f fb ff       	call   0x401c57
448d42:	85 c0                	test   %eax,%eax
448d44:	78 32                	js     0x448d78
448d46:	57                   	push   %edi
448d47:	8b 7d fc             	mov    -0x4(%ebp),%edi
448d4a:	8d 04 3e             	lea    (%esi,%edi,1),%eax
448d4d:	3b c6                	cmp    %esi,%eax
448d4f:	72 21                	jb     0x448d72