4409e9:	85 c0                	test   %eax,%eax
4409eb:	75 2d                	jne    0x440a1a
4409ed:	ff 15 e8 b0 44 00    	call   *0x44b0e8
4409f3:	0f b7 f0             	movzwl %ax,%esi
4409f6:	81 ce 00 00 07 80    	or     $0x80070000,%esi
4409fc:	85 c0                	test   %eax,%eax
4409fe:	0f 4e f0             	cmovle %eax,%esi
440a01:	b8 05 40 00 80       	mov    $0x80004005,%eax
440a06:	85 f6                	test   %esi,%esi
440a08:	0f 49 f0             	cmovns %eax,%esi
440a0b:	56                   	push   %esi
440a0c:	6a 4e                	push   $0x4e
440a0e:	68 c4 63 46 00       	push   $0x4663c4
440a13:	e8 bb 2d fc ff       	call   0x4037d3
440a18:	eb 08                	jmp    0x440a22
440a1a:	8b 55 0c             	mov    0xc(%ebp),%edx
440a1d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
440a20:	89 0a                	mov    %ecx,(%edx)
440a22:	8b c6                	mov    %esi,%eax
440a24:	5e                   	pop    %esi
440a25:	8b e5                	mov    %ebp,%esp
440a27:	5d                   	pop    %ebp
440a28:	c2 08 00             	ret    $0x8
440a2b:	55                   	push   %ebp
440a2c:	8b ec                	mov    %esp,%ebp
440a2e:	8b 4d 08             	mov    0x8(%ebp),%ecx
440a31:	56                   	push   %esi
440a32:	57                   	push   %edi
440a33:	33 ff                	xor    %edi,%edi
440a35:	8b d7                	mov    %edi,%edx
440a37:	85 c9                	test   %ecx,%ecx
440a39:	74 2c                	je     0x440a67
440a3b:	8b 45 0c             	mov    0xc(%ebp),%eax
440a3e:	d1 e8                	shr    $1,%eax
440a40:	8b d0                	mov    %eax,%edx
440a42:	74 0d                	je     0x440a51
440a44:	66 39 39             	cmp    %di,(%ecx)
440a47:	74 08                	je     0x440a51
440a49:	83 c1 02             	add    $0x2,%ecx
440a4c:	83 e8 01             	sub    $0x1,%eax
440a4f:	75 f3                	jne    0x440a44
440a51:	33 f6                	xor    %esi,%esi
440a53:	b9 57 00 07 80       	mov    $0x80070057,%ecx
440a58:	85 c0                	test   %eax,%eax
440a5a:	0f 45 ce             	cmovne %esi,%ecx
440a5d:	74 04                	je     0x440a63
440a5f:	2b d0                	sub    %eax,%edx
440a61:	eb 09                	jmp    0x440a6c
440a63:	8b d7                	mov    %edi,%edx
440a65:	eb 05                	jmp    0x440a6c
440a67:	b9 57 00 07 80       	mov    $0x80070057,%ecx
440a6c:	8b 75 10             	mov    0x10(%ebp),%esi
440a6f:	85 f6                	test   %esi,%esi
440a71:	74 0d                	je     0x440a80
440a73:	85 c9                	test   %ecx,%ecx
440a75:	78 07                	js     0x440a7e
440a77:	8d 04 12             	lea    (%edx,%edx,1),%eax
440a7a:	89 06                	mov    %eax,(%esi)
440a7c:	eb 02                	jmp    0x440a80
440a7e:	89 3e                	mov    %edi,(%esi)
440a80:	5f                   	pop    %edi
440a81:	8b c1                	mov    %ecx,%eax
440a83:	5e                   	pop    %esi
440a84:	5d                   	pop    %ebp
440a85:	c2 0c 00             	ret    $0xc
440a88:	55                   	push   %ebp
440a89:	8b ec                	mov    %esp,%ebp
440a8b:	56                   	push   %esi
440a8c:	33 f6                	xor    %esi,%esi
440a8e:	56                   	push   %esi
440a8f:	ff 75 14             	push   0x14(%ebp)
440a92:	56                   	push   %esi
440a93:	ff 75 10             	push   0x10(%ebp)
440a96:	56                   	push   %esi
440a97:	56                   	push   %esi
440a98:	56                   	push   %esi
440a99:	ff 75 0c             	push   0xc(%ebp)
440a9c:	ff 75 08             	push   0x8(%ebp)
440a9f:	ff 15 48 b6 46 00    	call   *0x46b648
440aa5:	85 c0                	test   %eax,%eax
440aa7:	74 25                	je     0x440ace
440aa9:	0f b7 f0             	movzwl %ax,%esi
440aac:	81 ce 00 00 07 80    	or     $0x80070000,%esi
440ab2:	85 c0                	test   %eax,%eax
440ab4:	0f 4e f0             	cmovle %eax,%esi
440ab7:	b8 05 40 00 80       	mov    $0x80004005,%eax
440abc:	85 f6                	test   %esi,%esi
440abe:	0f 49 f0             	cmovns %eax,%esi
440ac1:	56                   	push   %esi
440ac2:	6a 6e                	push   $0x6e
440ac4:	68 34 64 46 00       	push   $0x466434
440ac9:	e8 05 2d fc ff       	call   0x4037d3
440ace:	8b c6                	mov    %esi,%eax
440ad0:	5e                   	pop    %esi
440ad1:	5d                   	pop    %ebp
440ad2:	c2 10 00             	ret    $0x10
440ad5:	55                   	push   %ebp
440ad6:	8b ec                	mov    %esp,%ebp
440ad8:	51                   	push   %ecx
440ad9:	56                   	push   %esi
440ada:	8d 45 fc             	lea    -0x4(%ebp),%eax
440add:	33 f6                	xor    %esi,%esi
440adf:	50                   	push   %eax
440ae0:	ff 75 1c             	push   0x1c(%ebp)
440ae3:	33 c0                	xor    %eax,%eax
440ae5:	ff 75 18             	push   0x18(%ebp)
440ae8:	39 45 14             	cmp    %eax,0x14(%ebp)
440aeb:	ff 75 10             	push   0x10(%ebp)
440aee:	0f 95 c0             	setne  %al
440af1:	50                   	push   %eax
440af2:	56                   	push   %esi
440af3:	56                   	push   %esi
440af4:	ff 75 0c             	push   0xc(%ebp)
440af7:	ff 75 08             	push   0x8(%ebp)
440afa:	ff 15 48 b6 46 00    	call   *0x46b648
440b00:	85 c0                	test   %eax,%eax
440b02:	74 2a                	je     0x440b2e
440b04:	0f b7 f0             	movzwl %ax,%esi
440b07:	81 ce 00 00 07 80    	or     $0x80070000,%esi
440b0d:	85 c0                	test   %eax,%eax
440b0f:	0f 4e f0             	cmovle %eax,%esi
440b12:	b8 05 40 00 80       	mov    $0x80004005,%eax
440b17:	85 f6                	test   %esi,%esi
440b19:	0f 49 f0             	cmovns %eax,%esi
440b1c:	56                   	push   %esi
440b1d:	68 88 00 00 00       	push   $0x88
440b22:	68 34 64 46 00       	push   $0x466434
440b27:	e8 a7 2c fc ff       	call   0x4037d3
440b2c:	eb 12                	jmp    0x440b40
440b2e:	8b 55 20             	mov    0x20(%ebp),%edx
440b31:	85 d2                	test   %edx,%edx
440b33:	74 0b                	je     0x440b40
440b35:	33 c9                	xor    %ecx,%ecx
440b37:	83 7d fc 01          	cmpl   $0x1,-0x4(%ebp)
440b3b:	0f 94 c1             	sete   %cl
440b3e:	89 0a                	mov    %ecx,(%edx)
440b40:	8b c6                	mov    %esi,%eax
440b42:	5e                   	pop    %esi
440b43:	8b e5                	mov    %ebp,%esp
440b45:	5d                   	pop    %ebp
440b46:	c2 1c 00             	ret    $0x1c
440b49:	55                   	push   %ebp
440b4a:	8b ec                	mov    %esp,%ebp
440b4c:	83 ec 0c             	sub    $0xc,%esp
440b4f:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
440b53:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
440b57:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
440b5b:	53                   	push   %ebx
440b5c:	56                   	push   %esi
440b5d:	33 db                	xor    %ebx,%ebx
440b5f:	57                   	push   %edi
440b60:	8b 7d 10             	mov    0x10(%ebp),%edi
440b63:	39 5d 14             	cmp    %ebx,0x14(%ebp)
440b66:	74 77                	je     0x440bdf
440b68:	8d 45 fc             	lea    -0x4(%ebp),%eax
440b6b:	50                   	push   %eax
440b6c:	68 19 00 02 00       	push   $0x20019
440b71:	ff 75 0c             	push   0xc(%ebp)
440b74:	ff 75 08             	push   0x8(%ebp)
440b77:	e8 c3 02 00 00       	call   0x440e3f
440b7c:	8b f0                	mov    %eax,%esi
440b7e:	81 fe 02 00 07 80    	cmp    $0x80070002,%esi
440b84:	75 39                	jne    0x440bbf
440b86:	33 f6                	xor    %esi,%esi
440b88:	e9 0a 01 00 00       	jmp    0x440c97
440b8d:	85 f6                	test   %esi,%esi
440b8f:	0f 88 02 01 00 00    	js     0x440c97
440b95:	8d 45 f4             	lea    -0xc(%ebp),%eax
440b98:	50                   	push   %eax
440b99:	ff 75 f8             	push   -0x8(%ebp)
440b9c:	ff 75 0c             	push   0xc(%ebp)
440b9f:	e8 d5 21 fc ff       	call   0x402d79
440ba4:	8b f0                	mov    %eax,%esi
440ba6:	85 f6                	test   %esi,%esi
440ba8:	0f 88 e9 00 00 00    	js     0x440c97
440bae:	ff 75 14             	push   0x14(%ebp)
440bb1:	57                   	push   %edi
440bb2:	ff 75 f4             	push   -0xc(%ebp)
440bb5:	ff 75 08             	push   0x8(%ebp)
440bb8:	e8 8c ff ff ff       	call   0x440b49
440bbd:	8b f0                	mov    %eax,%esi
440bbf:	85 f6                	test   %esi,%esi
440bc1:	0f 88 d0 00 00 00    	js     0x440c97
440bc7:	8d 45 f8             	lea    -0x8(%ebp),%eax
440bca:	50                   	push   %eax
440bcb:	6a 00                	push   $0x0
440bcd:	ff 75 fc             	push   -0x4(%ebp)
440bd0:	e8 47 01 00 00       	call   0x440d1c
440bd5:	8b f0                	mov    %eax,%esi
440bd7:	81 fe 03 01 07 80    	cmp    $0x80070103,%esi
440bdd:	75 ae                	jne    0x440b8d
440bdf:	33 f6                	xor    %esi,%esi
440be1:	39 1d 74 b6 46 00    	cmp    %ebx,0x46b674
440be7:	75 0e                	jne    0x440bf7
440be9:	85 ff                	test   %edi,%edi
440beb:	74 0a                	je     0x440bf7
440bed:	be 57 00 07 80       	mov    $0x80070057,%esi
440bf2:	e9 a0 00 00 00       	jmp    0x440c97
440bf7:	83 ef 01             	sub    $0x1,%edi
440bfa:	74 0c                	je     0x440c08
440bfc:	83 ef 01             	sub    $0x1,%edi
440bff:	75 0c                	jne    0x440c0d
440c01:	bb 00 01 00 00       	mov    $0x100,%ebx
440c06:	eb 05                	jmp    0x440c0d
440c08:	bb 00 02 00 00       	mov    $0x200,%ebx
440c0d:	a1 6c b6 46 00       	mov    0x46b66c,%eax
440c12:	85 c0                	test   %eax,%eax
440c14:	74 3e                	je     0x440c54
440c16:	6a 00                	push   $0x0
440c18:	53                   	push   %ebx
440c19:	ff 75 0c             	push   0xc(%ebp)
440c1c:	ff 75 08             	push   0x8(%ebp)
440c1f:	ff d0                	call   *%eax
440c21:	0f b7 c8             	movzwl %ax,%ecx
440c24:	ba 02 00 07 80       	mov    $0x80070002,%edx
440c29:	81 c9 00 00 07 80    	or     $0x80070000,%ecx
440c2f:	85 c0                	test   %eax,%eax
440c31:	0f 4e c8             	cmovle %eax,%ecx
440c34:	3b ca                	cmp    %edx,%ecx
440c36:	75 04                	jne    0x440c3c
440c38:	8b f2                	mov    %edx,%esi
440c3a:	eb 5b                	jmp    0x440c97
440c3c:	85 c0                	test   %eax,%eax
440c3e:	74 57                	je     0x440c97
440c40:	8b f1                	mov    %ecx,%esi
440c42:	b8 05 40 00 80       	mov    $0x80004005,%eax
440c47:	85 f6                	test   %esi,%esi
440c49:	0f 49 f0             	cmovns %eax,%esi
440c4c:	56                   	push   %esi
440c4d:	68 f2 00 00 00       	push   $0xf2
440c52:	eb 39                	jmp    0x440c8d
440c54:	ff 75 0c             	push   0xc(%ebp)
440c57:	ff 75 08             	push   0x8(%ebp)
440c5a:	ff 15 50 b6 46 00    	call   *0x46b650
440c60:	0f b7 c8             	movzwl %ax,%ecx
440c63:	ba 02 00 07 80       	mov    $0x80070002,%edx
440c68:	81 c9 00 00 07 80    	or     $0x80070000,%ecx
440c6e:	85 c0                	test   %eax,%eax
440c70:	0f 4e c8             	cmovle %eax,%ecx
440c73:	3b ca                	cmp    %edx,%ecx
440c75:	74 c1                	je     0x440c38
440c77:	85 c0                	test   %eax,%eax
440c79:	74 1c                	je     0x440c97
440c7b:	8b f1                	mov    %ecx,%esi
440c7d:	b8 05 40 00 80       	mov    $0x80004005,%eax
440c82:	85 f6                	test   %esi,%esi
440c84:	0f 49 f0             	cmovns %eax,%esi
440c87:	56                   	push   %esi
440c88:	68 fb 00 00 00       	push   $0xfb
440c8d:	68 34 64 46 00       	push   $0x466434
440c92:	e8 3c 2b fc ff       	call   0x4037d3
440c97:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
440c9b:	74 0d                	je     0x440caa
440c9d:	ff 75 fc             	push   -0x4(%ebp)
440ca0:	ff 15 00 b0 44 00    	call   *0x44b000
440ca6:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
440caa:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
440cae:	74 08                	je     0x440cb8
440cb0:	ff 75 f8             	push   -0x8(%ebp)
440cb3:	e8 37 48 00 00       	call   0x4454ef
440cb8:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
440cbc:	74 08                	je     0x440cc6
440cbe:	ff 75 f4             	push   -0xc(%ebp)
440cc1:	e8 29 48 00 00       	call   0x4454ef
440cc6:	5f                   	pop    %edi
440cc7:	8b c6                	mov    %esi,%eax
440cc9:	5e                   	pop    %esi
440cca:	5b                   	pop    %ebx
440ccb:	8b e5                	mov    %ebp,%esp
440ccd:	5d                   	pop    %ebp
440cce:	c2 10 00             	ret    $0x10
440cd1:	56                   	push   %esi
440cd2:	68 44 b6 46 00       	push   $0x46b644
440cd7:	68 a0 61 46 00       	push   $0x4661a0
440cdc:	e8 f5 2a fc ff       	call   0x4037d6
440ce1:	8b f0                	mov    %eax,%esi
440ce3:	85 f6                	test   %esi,%esi
440ce5:	78 31                	js     0x440d18
440ce7:	68 24 64 46 00       	push   $0x466424
440cec:	ff 35 44 b6 46 00    	push   0x46b644
440cf2:	ff 15 dc b0 44 00    	call   *0x44b0dc
440cf8:	8b 0d 6c b6 46 00    	mov    0x46b66c,%ecx
440cfe:	85 c9                	test   %ecx,%ecx
440d00:	a3 70 b6 46 00       	mov    %eax,0x46b670
440d05:	0f 44 c8             	cmove  %eax,%ecx
440d08:	c7 05 74 b6 46 00 01 	movl   $0x1,0x46b674
440d0f:	00 00 00
440d12:	89 0d 6c b6 46 00    	mov    %ecx,0x46b66c
440d18:	8b c6                	mov    %esi,%eax
440d1a:	5e                   	pop    %esi
440d1b:	c3                   	ret
440d1c:	55                   	push   %ebp
440d1d:	8b ec                	mov    %esp,%ebp
440d1f:	51                   	push   %ecx
440d20:	53                   	push   %ebx
440d21:	56                   	push   %esi
440d22:	57                   	push   %edi
440d23:	8b 7d 10             	mov    0x10(%ebp),%edi
440d26:	33 db                	xor    %ebx,%ebx
440d28:	89 5d fc             	mov    %ebx,-0x4(%ebp)
440d2b:	85 ff                	test   %edi,%edi
440d2d:	74 1f                	je     0x440d4e
440d2f:	39 1f                	cmp    %ebx,(%edi)
440d31:	74 1b                	je     0x440d4e
440d33:	8d 45 fc             	lea    -0x4(%ebp),%eax
440d36:	50                   	push   %eax
440d37:	ff 37                	push   (%edi)
440d39:	e8 1f 1a fc ff       	call   0x40275d
440d3e:	8b f0                	mov    %eax,%esi
440d40:	85 f6                	test   %esi,%esi
440d42:	0f 88 ec 00 00 00    	js     0x440e34
440d48:	83 7d fc 02          	cmpl   $0x2,-0x4(%ebp)
440d4c:	73 19                	jae    0x440d67
440d4e:	6a 02                	push   $0x2
440d50:	57                   	push   %edi
440d51:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
440d58:	e8 81 11 fc ff       	call   0x401ede
440d5d:	8b f0                	mov    %eax,%esi
440d5f:	85 f6                	test   %esi,%esi
440d61:	0f 88 cd 00 00 00    	js     0x440e34
440d67:	53                   	push   %ebx
440d68:	53                   	push   %ebx
440d69:	53                   	push   %ebx
440d6a:	53                   	push   %ebx
440d6b:	8d 45 fc             	lea    -0x4(%ebp),%eax
440d6e:	50                   	push   %eax
440d6f:	ff 37                	push   (%edi)
440d71:	ff 75 0c             	push   0xc(%ebp)
440d74:	ff 75 08             	push   0x8(%ebp)
440d77:	ff 15 54 b6 46 00    	call   *0x46b654
440d7d:	3d ea 00 00 00       	cmp    $0xea,%eax
440d82:	0f 85 93 00 00 00    	jne    0x440e1b
440d88:	53                   	push   %ebx
440d89:	53                   	push   %ebx
440d8a:	53                   	push   %ebx
440d8b:	53                   	push   %ebx
440d8c:	53                   	push   %ebx
440d8d:	53                   	push   %ebx
440d8e:	8d 45 fc             	lea    -0x4(%ebp),%eax
440d91:	50                   	push   %eax
440d92:	53                   	push   %ebx
440d93:	53                   	push   %ebx
440d94:	53                   	push   %ebx
440d95:	53                   	push   %ebx
440d96:	ff 75 08             	push   0x8(%ebp)
440d99:	ff 15 5c b6 46 00    	call   *0x46b65c
440d9f:	85 c0                	test   %eax,%eax
440da1:	74 2a                	je     0x440dcd
440da3:	0f b7 f0             	movzwl %ax,%esi
440da6:	81 ce 00 00 07 80    	or     $0x80070000,%esi