44595b:	89 45 e8             	mov    %eax,-0x18(%ebp)
44595e:	83 f8 ff             	cmp    $0xffffffff,%eax
445961:	75 33                	jne    0x445996
445963:	ff 15 e8 b0 44 00    	call   *0x44b0e8
445969:	0f b7 f0             	movzwl %ax,%esi
44596c:	81 ce 00 00 07 80    	or     $0x80070000,%esi
445972:	85 c0                	test   %eax,%eax
445974:	0f 4e f0             	cmovle %eax,%esi
445977:	b8 05 40 00 80       	mov    $0x80004005,%eax
44597c:	85 f6                	test   %esi,%esi
44597e:	0f 49 f0             	cmovns %eax,%esi
445981:	56                   	push   %esi
445982:	68 21 01 00 00       	push   $0x121
445987:	68 5c 68 46 00       	push   $0x46685c
44598c:	e8 42 de fb ff       	call   0x4037d3
445991:	e9 73 01 00 00       	jmp    0x445b09
445996:	6a 04                	push   $0x4
445998:	68 00 30 00 00       	push   $0x3000
44599d:	68 00 00 01 00       	push   $0x10000
4459a2:	6a 00                	push   $0x0
4459a4:	ff 15 a8 b2 44 00    	call   *0x44b2a8
4459aa:	89 45 ec             	mov    %eax,-0x14(%ebp)
4459ad:	85 c0                	test   %eax,%eax
4459af:	75 26                	jne    0x4459d7
4459b1:	ff 15 e8 b0 44 00    	call   *0x44b0e8
4459b7:	0f b7 f0             	movzwl %ax,%esi
4459ba:	81 ce 00 00 07 80    	or     $0x80070000,%esi
4459c0:	85 c0                	test   %eax,%eax
4459c2:	0f 4e f0             	cmovle %eax,%esi
4459c5:	b8 05 40 00 80       	mov    $0x80004005,%eax
4459ca:	85 f6                	test   %esi,%esi
4459cc:	0f 49 f0             	cmovns %eax,%esi
4459cf:	56                   	push   %esi
4459d0:	68 26 01 00 00       	push   $0x126
4459d5:	eb b0                	jmp    0x445987
4459d7:	8b 45 28             	mov    0x28(%ebp),%eax
4459da:	8b 4d 24             	mov    0x24(%ebp),%ecx
4459dd:	89 45 18             	mov    %eax,0x18(%ebp)
4459e0:	89 4d 28             	mov    %ecx,0x28(%ebp)
4459e3:	85 c9                	test   %ecx,%ecx
4459e5:	75 0c                	jne    0x4459f3
4459e7:	85 c0                	test   %eax,%eax
4459e9:	75 08                	jne    0x4459f3
4459eb:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
4459ee:	8b 45 20             	mov    0x20(%ebp),%eax
4459f1:	eb 14                	jmp    0x445a07
4459f3:	39 45 30             	cmp    %eax,0x30(%ebp)
4459f6:	0f 87 f7 00 00 00    	ja     0x445af3
4459fc:	72 09                	jb     0x445a07
4459fe:	39 4d 2c             	cmp    %ecx,0x2c(%ebp)
445a01:	0f 83 ec 00 00 00    	jae    0x445af3
445a07:	8d 55 f0             	lea    -0x10(%ebp),%edx
445a0a:	52                   	push   %edx
445a0b:	50                   	push   %eax
445a0c:	51                   	push   %ecx
445a0d:	ff 75 30             	push   0x30(%ebp)
445a10:	ff 75 2c             	push   0x2c(%ebp)
445a13:	e8 78 fe ff ff       	call   0x445890
445a18:	8b f0                	mov    %eax,%esi
445a1a:	85 f6                	test   %esi,%esi
445a1c:	0f 88 d1 00 00 00    	js     0x445af3
445a22:	85 ff                	test   %edi,%edi
445a24:	74 0b                	je     0x445a31
445a26:	57                   	push   %edi
445a27:	ff 15 6c a9 46 00    	call   *0x46a96c
445a2d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
445a31:	85 db                	test   %ebx,%ebx
445a33:	74 0b                	je     0x445a40
445a35:	53                   	push   %ebx
445a36:	ff 15 6c a9 46 00    	call   *0x46a96c
445a3c:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
445a40:	8d 45 f8             	lea    -0x8(%ebp),%eax
445a43:	50                   	push   %eax
445a44:	8d 45 f4             	lea    -0xc(%ebp),%eax
445a47:	50                   	push   %eax
445a48:	8d 45 fc             	lea    -0x4(%ebp),%eax
445a4b:	50                   	push   %eax
445a4c:	ff 75 3c             	push   0x3c(%ebp)
445a4f:	ff 75 14             	push   0x14(%ebp)
445a52:	ff 75 10             	push   0x10(%ebp)
445a55:	ff 75 f0             	push   -0x10(%ebp)
445a58:	68 94 68 46 00       	push   $0x466894
445a5d:	ff 75 0c             	push   0xc(%ebp)
445a60:	ff 75 08             	push   0x8(%ebp)
445a63:	e8 17 03 00 00       	call   0x445d7f
445a68:	8b 5d f4             	mov    -0xc(%ebp),%ebx
445a6b:	8b f0                	mov    %eax,%esi
445a6d:	85 f6                	test   %esi,%esi
445a6f:	78 7f                	js     0x445af0
445a71:	8b 4d 28             	mov    0x28(%ebp),%ecx
445a74:	8b 45 18             	mov    0x18(%ebp),%eax
445a77:	85 c9                	test   %ecx,%ecx
445a79:	75 1e                	jne    0x445a99
445a7b:	85 c0                	test   %eax,%eax
445a7d:	75 1a                	jne    0x445a99
445a7f:	8d 45 e0             	lea    -0x20(%ebp),%eax
445a82:	50                   	push   %eax
445a83:	53                   	push   %ebx
445a84:	e8 35 2e 00 00       	call   0x4488be
445a89:	85 c0                	test   %eax,%eax
445a8b:	78 50                	js     0x445add
445a8d:	8b 4d e0             	mov    -0x20(%ebp),%ecx
445a90:	8b 45 e4             	mov    -0x1c(%ebp),%eax
445a93:	89 4d 28             	mov    %ecx,0x28(%ebp)
445a96:	89 45 18             	mov    %eax,0x18(%ebp)
445a99:	8b 7d f8             	mov    -0x8(%ebp),%edi
445a9c:	85 ff                	test   %edi,%edi
445a9e:	75 08                	jne    0x445aa8
445aa0:	0f 57 c0             	xorps  %xmm0,%xmm0
445aa3:	66 0f 13 45 2c       	movlpd %xmm0,0x2c(%ebp)
445aa8:	ff 75 38             	push   0x38(%ebp)
445aab:	68 00 00 01 00       	push   $0x10000
445ab0:	ff 75 ec             	push   -0x14(%ebp)
445ab3:	50                   	push   %eax
445ab4:	51                   	push   %ecx
445ab5:	ff 75 34             	push   0x34(%ebp)
445ab8:	8d 45 2c             	lea    0x2c(%ebp),%eax
445abb:	50                   	push   %eax
445abc:	ff 75 e8             	push   -0x18(%ebp)
445abf:	53                   	push   %ebx
445ac0:	e8 35 07 00 00       	call   0x4461fa
445ac5:	8b f0                	mov    %eax,%esi
445ac7:	85 f6                	test   %esi,%esi
445ac9:	78 25                	js     0x445af0
445acb:	85 ff                	test   %edi,%edi
445acd:	8b 7d fc             	mov    -0x4(%ebp),%edi
445ad0:	74 21                	je     0x445af3
445ad2:	8b 45 18             	mov    0x18(%ebp),%eax
445ad5:	8b 4d 28             	mov    0x28(%ebp),%ecx
445ad8:	e9 06 ff ff ff       	jmp    0x4459e3
445add:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
445ae0:	33 ff                	xor    %edi,%edi
445ae2:	8b 45 20             	mov    0x20(%ebp),%eax
445ae5:	89 4d 28             	mov    %ecx,0x28(%ebp)
445ae8:	89 45 18             	mov    %eax,0x18(%ebp)
445aeb:	89 7d f8             	mov    %edi,-0x8(%ebp)
445aee:	eb ac                	jmp    0x445a9c
445af0:	8b 7d fc             	mov    -0x4(%ebp),%edi
445af3:	85 db                	test   %ebx,%ebx
445af5:	74 07                	je     0x445afe
445af7:	53                   	push   %ebx
445af8:	ff 15 6c a9 46 00    	call   *0x46a96c
445afe:	85 ff                	test   %edi,%edi
445b00:	74 07                	je     0x445b09
445b02:	57                   	push   %edi
445b03:	ff 15 6c a9 46 00    	call   *0x46a96c
445b09:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
445b0d:	74 08                	je     0x445b17
445b0f:	ff 75 f0             	push   -0x10(%ebp)
445b12:	e8 d8 f9 ff ff       	call   0x4454ef
445b17:	8b 45 ec             	mov    -0x14(%ebp),%eax
445b1a:	85 c0                	test   %eax,%eax
445b1c:	74 0e                	je     0x445b2c
445b1e:	68 00 80 00 00       	push   $0x8000
445b23:	6a 00                	push   $0x0
445b25:	50                   	push   %eax
445b26:	ff 15 ac b2 44 00    	call   *0x44b2ac
445b2c:	8b 45 e8             	mov    -0x18(%ebp),%eax
445b2f:	83 f8 ff             	cmp    $0xffffffff,%eax
445b32:	74 07                	je     0x445b3b
445b34:	50                   	push   %eax
445b35:	ff 15 d4 b0 44 00    	call   *0x44b0d4
445b3b:	5f                   	pop    %edi
445b3c:	8b c6                	mov    %esi,%eax
445b3e:	5e                   	pop    %esi
445b3f:	5b                   	pop    %ebx
445b40:	8b e5                	mov    %ebp,%esp
445b42:	5d                   	pop    %ebp
445b43:	c2 38 00             	ret    $0x38
445b46:	55                   	push   %ebp
445b47:	8b ec                	mov    %esp,%ebp
445b49:	56                   	push   %esi
445b4a:	57                   	push   %edi
445b4b:	8b 7d 08             	mov    0x8(%ebp),%edi
445b4e:	33 f6                	xor    %esi,%esi
445b50:	8b 17                	mov    (%edi),%edx
445b52:	85 d2                	test   %edx,%edx
445b54:	74 61                	je     0x445bb7
445b56:	ff 77 08             	push   0x8(%edi)
445b59:	8b 0d f4 b6 46 00    	mov    0x46b6f4,%ecx
445b5f:	ff 75 1c             	push   0x1c(%ebp)
445b62:	a1 f0 b6 46 00       	mov    0x46b6f0,%eax
445b67:	6a ff                	push   $0xffffffff
445b69:	56                   	push   %esi
445b6a:	6a 01                	push   $0x1
445b6c:	51                   	push   %ecx
445b6d:	50                   	push   %eax
445b6e:	51                   	push   %ecx
445b6f:	50                   	push   %eax
445b70:	ff 75 10             	push   0x10(%ebp)
445b73:	ff 75 0c             	push   0xc(%ebp)
445b76:	ff 75 18             	push   0x18(%ebp)
445b79:	ff 75 14             	push   0x14(%ebp)
445b7c:	ff d2                	call   *%edx
445b7e:	2b c6                	sub    %esi,%eax
445b80:	74 35                	je     0x445bb7
445b82:	83 e8 01             	sub    $0x1,%eax
445b85:	74 1b                	je     0x445ba2
445b87:	83 e8 01             	sub    $0x1,%eax
445b8a:	74 16                	je     0x445ba2
445b8c:	83 e8 01             	sub    $0x1,%eax
445b8f:	74 0d                	je     0x445b9e
445b91:	be ff ff 00 80       	mov    $0x8000ffff,%esi
445b96:	56                   	push   %esi
445b97:	68 09 03 00 00       	push   $0x309
445b9c:	eb 0f                	jmp    0x445bad
445b9e:	89 37                	mov    %esi,(%edi)
445ba0:	eb 15                	jmp    0x445bb7
445ba2:	be 42 06 07 80       	mov    $0x80070642,%esi
445ba7:	56                   	push   %esi
445ba8:	68 00 03 00 00       	push   $0x300
445bad:	68 5c 68 46 00       	push   $0x46685c
445bb2:	e8 1c dc fb ff       	call   0x4037d3
445bb7:	5f                   	pop    %edi
445bb8:	8b c6                	mov    %esi,%eax
445bba:	5e                   	pop    %esi
445bbb:	5d                   	pop    %ebp
445bbc:	c2 18 00             	ret    $0x18
445bbf:	55                   	push   %ebp
445bc0:	8b ec                	mov    %esp,%ebp
445bc2:	83 ec 14             	sub    $0x14,%esp
445bc5:	53                   	push   %ebx
445bc6:	56                   	push   %esi
445bc7:	57                   	push   %edi
445bc8:	8d 45 f4             	lea    -0xc(%ebp),%eax
445bcb:	33 db                	xor    %ebx,%ebx
445bcd:	50                   	push   %eax
445bce:	8d 45 f8             	lea    -0x8(%ebp),%eax
445bd1:	89 5d fc             	mov    %ebx,-0x4(%ebp)
445bd4:	50                   	push   %eax
445bd5:	8d 45 fc             	lea    -0x4(%ebp),%eax
445bd8:	89 5d f8             	mov    %ebx,-0x8(%ebp)
445bdb:	50                   	push   %eax
445bdc:	ff 75 18             	push   0x18(%ebp)
445bdf:	0f 57 c0             	xorps  %xmm0,%xmm0
445be2:	ff 75 14             	push   0x14(%ebp)
445be5:	66 0f 13 45 ec       	movlpd %xmm0,-0x14(%ebp)
445bea:	ff 75 10             	push   0x10(%ebp)
445bed:	53                   	push   %ebx
445bee:	68 88 68 46 00       	push   $0x466888
445bf3:	ff 75 0c             	push   0xc(%ebp)
445bf6:	ff 75 08             	push   0x8(%ebp)
445bf9:	e8 81 01 00 00       	call   0x445d7f
445bfe:	8b 75 f8             	mov    -0x8(%ebp),%esi
445c01:	8b f8                	mov    %eax,%edi
445c03:	85 ff                	test   %edi,%edi
445c05:	78 3e                	js     0x445c45
445c07:	8d 45 ec             	lea    -0x14(%ebp),%eax
445c0a:	50                   	push   %eax
445c0b:	56                   	push   %esi
445c0c:	e8 ad 2c 00 00       	call   0x4488be
445c11:	85 c0                	test   %eax,%eax
445c13:	79 08                	jns    0x445c1d
445c15:	0f 57 c0             	xorps  %xmm0,%xmm0
445c18:	66 0f 13 45 ec       	movlpd %xmm0,-0x14(%ebp)
445c1d:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
445c20:	8b 45 ec             	mov    -0x14(%ebp),%eax
445c23:	ff 75 20             	push   0x20(%ebp)
445c26:	89 01                	mov    %eax,(%ecx)
445c28:	8b 45 f0             	mov    -0x10(%ebp),%eax
445c2b:	56                   	push   %esi
445c2c:	89 41 04             	mov    %eax,0x4(%ecx)
445c2f:	e8 cf 2b 00 00       	call   0x448803
445c34:	8b f8                	mov    %eax,%edi
445c36:	85 ff                	test   %edi,%edi
445c38:	79 0b                	jns    0x445c45
445c3a:	ff 75 20             	push   0x20(%ebp)
445c3d:	ff 15 fc b2 44 00    	call   *0x44b2fc
445c43:	8b fb                	mov    %ebx,%edi
445c45:	8b 1d 6c a9 46 00    	mov    0x46a96c,%ebx
445c4b:	85 f6                	test   %esi,%esi
445c4d:	74 03                	je     0x445c52
445c4f:	56                   	push   %esi
445c50:	ff d3                	call   *%ebx
445c52:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
445c56:	74 05                	je     0x445c5d
445c58:	ff 75 fc             	push   -0x4(%ebp)
445c5b:	ff d3                	call   *%ebx
445c5d:	8b c7                	mov    %edi,%eax
445c5f:	5f                   	pop    %edi
445c60:	5e                   	pop    %esi
445c61:	5b                   	pop    %ebx
445c62:	8b e5                	mov    %ebp,%esp
445c64:	5d                   	pop    %ebp
445c65:	c2 1c 00             	ret    $0x1c
445c68:	55                   	push   %ebp
445c69:	8b ec                	mov    %esp,%ebp
445c6b:	51                   	push   %ecx
445c6c:	51                   	push   %ecx
445c6d:	53                   	push   %ebx
445c6e:	8b 5d 14             	mov    0x14(%ebp),%ebx
445c71:	33 c0                	xor    %eax,%eax
445c73:	56                   	push   %esi
445c74:	57                   	push   %edi
445c75:	89 45 fc             	mov    %eax,-0x4(%ebp)
445c78:	89 45 f8             	mov    %eax,-0x8(%ebp)
445c7b:	89 03                	mov    %eax,(%ebx)
445c7d:	89 43 04             	mov    %eax,0x4(%ebx)
445c80:	ff 75 08             	push   0x8(%ebp)
445c83:	8b 7d 0c             	mov    0xc(%ebp),%edi
445c86:	68 08 64 45 00       	push   $0x456408
445c8b:	57                   	push   %edi
445c8c:	e8 8f c2 fb ff       	call   0x401f20
445c91:	8b f0                	mov    %eax,%esi
445c93:	83 c4 0c             	add    $0xc,%esp
445c96:	85 f6                	test   %esi,%esi
445c98:	0f 88 d6 00 00 00    	js     0x445d74
445c9e:	6a 00                	push   $0x0
445ca0:	68 80 00 00 00       	push   $0x80
445ca5:	6a 04                	push   $0x4
445ca7:	6a 00                	push   $0x0
445ca9:	6a 04                	push   $0x4
445cab:	68 00 00 00 c0       	push   $0xc0000000
445cb0:	ff 37                	push   (%edi)
445cb2:	ff 15 d8 b0 44 00    	call   *0x44b0d8
445cb8:	8b f8                	mov    %eax,%edi
445cba:	83 ff ff             	cmp    $0xffffffff,%edi
445cbd:	75 33                	jne    0x445cf2
445cbf:	ff 15 e8 b0 44 00    	call   *0x44b0e8
445cc5:	0f b7 f0             	movzwl %ax,%esi
445cc8:	81 ce 00 00 07 80    	or     $0x80070000,%esi
445cce:	85 c0                	test   %eax,%eax
445cd0:	0f 4e f0             	cmovle %eax,%esi
445cd3:	b8 05 40 00 80       	mov    $0x80004005,%eax
445cd8:	85 f6                	test   %esi,%esi
445cda:	0f 49 f0             	cmovns %eax,%esi
445cdd:	56                   	push   %esi
445cde:	68 c1 00 00 00       	push   $0xc1
445ce3:	68 5c 68 46 00       	push   $0x46685c
445ce8:	e8 e6 da fb ff       	call   0x4037d3
445ced:	e9 82 00 00 00       	jmp    0x445d74
445cf2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
445cf5:	6a 00                	push   $0x0
445cf7:	8d 45 f8             	lea    -0x8(%ebp),%eax
445cfa:	50                   	push   %eax
445cfb:	6a 08                	push   $0x8
445cfd:	58                   	pop    %eax
445cfe:	2b c1                	sub    %ecx,%eax
445d00:	50                   	push   %eax
445d01:	8d 04 19             	lea    (%ecx,%ebx,1),%eax
445d04:	50                   	push   %eax
445d05:	57                   	push   %edi
445d06:	ff 15 ec b1 44 00    	call   *0x44b1ec
445d0c:	85 c0                	test   %eax,%eax
445d0e:	74 2a                	je     0x445d3a
445d10:	8b 4d fc             	mov    -0x4(%ebp),%ecx
445d13:	03 4d f8             	add    -0x8(%ebp),%ecx
445d16:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
445d1a:	89 4d fc             	mov    %ecx,-0x4(%ebp)
445d1d:	74 05                	je     0x445d24