45981e:	53                   	push   %ebx
45981f:	56                   	push   %esi
459820:	8b 75 0c             	mov    0xc(%ebp),%esi
459823:	83 4e 04 70          	orl    $0x70,0x4(%esi)
459827:	57                   	push   %edi
459828:	8b 7d 08             	mov    0x8(%ebp),%edi
45982b:	c7 06 50 00 00 00    	movl   $0x50,(%esi)
459831:	8b 47 1c             	mov    0x1c(%edi),%eax
459834:	57                   	push   %edi
459835:	68 14 ca 48 00       	push   $0x48ca14
45983a:	8b d9                	mov    %ecx,%ebx
45983c:	89 46 20             	mov    %eax,0x20(%esi)
45983f:	e8 c5 71 fe ff       	call   0x440a09
459844:	85 c0                	test   %eax,%eax
459846:	59                   	pop    %ecx
459847:	59                   	pop    %ecx
459848:	74 21                	je     0x45986b
45984a:	8b 4b 7c             	mov    0x7c(%ebx),%ecx
45984d:	8b 10                	mov    (%eax),%edx
45984f:	81 e1 00 a0 00 00    	and    $0xa000,%ecx
459855:	51                   	push   %ecx
459856:	6a 00                	push   $0x0
459858:	8d 4d f8             	lea    -0x8(%ebp),%ecx
45985b:	51                   	push   %ecx
45985c:	8b c8                	mov    %eax,%ecx
45985e:	ff 92 30 01 00 00    	call   *0x130(%edx)
459864:	8b 10                	mov    (%eax),%edx
459866:	8b 48 04             	mov    0x4(%eax),%ecx
459869:	eb 1b                	jmp    0x459886
45986b:	8d 45 f0             	lea    -0x10(%ebp),%eax
45986e:	50                   	push   %eax
45986f:	ff 77 1c             	push   0x1c(%edi)
459872:	ff 15 40 07 4b 00    	call   *0x4b0740
459878:	8b 45 f8             	mov    -0x8(%ebp),%eax
45987b:	2b 45 f0             	sub    -0x10(%ebp),%eax
45987e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
459881:	2b 4d f4             	sub    -0xc(%ebp),%ecx
459884:	8b d0                	mov    %eax,%edx
459886:	89 4e 28             	mov    %ecx,0x28(%esi)
459889:	81 3d 58 85 4a 00 48 	cmpl   $0x40048,0x4a8558
459890:	00 04 00
459893:	7d 05                	jge    0x45989a
459895:	6a 04                	push   $0x4
459897:	58                   	pop    %eax
459898:	eb 02                	jmp    0x45989c
45989a:	33 c0                	xor    %eax,%eax
45989c:	03 c2                	add    %edx,%eax
45989e:	ba 00 02 00 00       	mov    $0x200,%edx
4598a3:	85 56 08             	test   %edx,0x8(%esi)
4598a6:	89 46 44             	mov    %eax,0x44(%esi)
4598a9:	89 46 2c             	mov    %eax,0x2c(%esi)
4598ac:	74 08                	je     0x4598b6
4598ae:	09 56 04             	or     %edx,0x4(%esi)
4598b1:	89 4e 24             	mov    %ecx,0x24(%esi)
4598b4:	eb 03                	jmp    0x4598b9
4598b6:	89 46 24             	mov    %eax,0x24(%esi)
4598b9:	8b 03                	mov    (%ebx),%eax
4598bb:	56                   	push   %esi
4598bc:	6a ff                	push   $0xffffffff
4598be:	68 01 04 00 00       	push   $0x401
4598c3:	8b cb                	mov    %ebx,%ecx
4598c5:	ff 90 10 01 00 00    	call   *0x110(%eax)
4598cb:	85 c0                	test   %eax,%eax
4598cd:	74 2e                	je     0x4598fd
4598cf:	8b cb                	mov    %ebx,%ecx
4598d1:	e8 76 be fe ff       	call   0x44574c
4598d6:	85 c0                	test   %eax,%eax
4598d8:	74 0c                	je     0x4598e6
4598da:	8b 10                	mov    (%eax),%edx
4598dc:	6a 01                	push   $0x1
4598de:	8b c8                	mov    %eax,%ecx
4598e0:	ff 92 44 01 00 00    	call   *0x144(%edx)
4598e6:	6a 00                	push   $0x0
4598e8:	6a 00                	push   $0x0
4598ea:	68 1f 04 00 00       	push   $0x41f
4598ef:	ff 73 1c             	push   0x1c(%ebx)
4598f2:	ff 15 98 08 4b 00    	call   *0x4b0898
4598f8:	33 c0                	xor    %eax,%eax
4598fa:	40                   	inc    %eax
4598fb:	eb 02                	jmp    0x4598ff
4598fd:	33 c0                	xor    %eax,%eax
4598ff:	5f                   	pop    %edi
459900:	5e                   	pop    %esi
459901:	5b                   	pop    %ebx
459902:	c9                   	leave
459903:	c2 08 00             	ret    $0x8
459906:	55                   	push   %ebp
459907:	8b ec                	mov    %esp,%ebp
459909:	83 ec 50             	sub    $0x50,%esp
45990c:	8b 45 14             	mov    0x14(%ebp),%eax
45990f:	89 45 b8             	mov    %eax,-0x48(%ebp)
459912:	8b 45 0c             	mov    0xc(%ebp),%eax
459915:	85 c0                	test   %eax,%eax
459917:	c7 45 b4 01 00 00 00 	movl   $0x1,-0x4c(%ebp)
45991e:	74 0a                	je     0x45992a
459920:	c7 45 b4 05 00 00 00 	movl   $0x5,-0x4c(%ebp)
459927:	89 45 c4             	mov    %eax,-0x3c(%ebp)
45992a:	8b 45 10             	mov    0x10(%ebp),%eax
45992d:	85 c0                	test   %eax,%eax
45992f:	74 0a                	je     0x45993b
459931:	8b 40 04             	mov    0x4(%eax),%eax
459934:	80 4d b4 80          	orb    $0x80,-0x4c(%ebp)
459938:	89 45 e0             	mov    %eax,-0x20(%ebp)
45993b:	8d 45 b0             	lea    -0x50(%ebp),%eax
45993e:	50                   	push   %eax
45993f:	ff 75 08             	push   0x8(%ebp)
459942:	e8 d1 fe ff ff       	call   0x459818
459947:	c9                   	leave
459948:	c2 10 00             	ret    $0x10
45994b:	55                   	push   %ebp
45994c:	8b ec                	mov    %esp,%ebp
45994e:	83 ec 50             	sub    $0x50,%esp
459951:	8b 45 18             	mov    0x18(%ebp),%eax
459954:	89 45 b8             	mov    %eax,-0x48(%ebp)
459957:	8b 45 0c             	mov    0xc(%ebp),%eax
45995a:	89 45 bc             	mov    %eax,-0x44(%ebp)
45995d:	8b 45 10             	mov    0x10(%ebp),%eax
459960:	89 45 c0             	mov    %eax,-0x40(%ebp)
459963:	8b 45 14             	mov    0x14(%ebp),%eax
459966:	85 c0                	test   %eax,%eax
459968:	c7 45 b4 03 00 00 00 	movl   $0x3,-0x4c(%ebp)
45996f:	74 0a                	je     0x45997b
459971:	c7 45 b4 07 00 00 00 	movl   $0x7,-0x4c(%ebp)
459978:	89 45 c4             	mov    %eax,-0x3c(%ebp)
45997b:	8d 45 b0             	lea    -0x50(%ebp),%eax
45997e:	50                   	push   %eax
45997f:	ff 75 08             	push   0x8(%ebp)
459982:	e8 91 fe ff ff       	call   0x459818
459987:	c9                   	leave
459988:	c2 14 00             	ret    $0x14
45998b:	55                   	push   %ebp
45998c:	8b ec                	mov    %esp,%ebp
45998e:	83 ec 70             	sub    $0x70,%esp
459991:	53                   	push   %ebx
459992:	56                   	push   %esi
459993:	57                   	push   %edi
459994:	6a 00                	push   $0x0
459996:	8b f1                	mov    %ecx,%esi
459998:	8b 06                	mov    (%esi),%eax
45999a:	6a 00                	push   $0x0
45999c:	68 0c 04 00 00       	push   $0x40c
4599a1:	ff 90 10 01 00 00    	call   *0x110(%eax)
4599a7:	8b d8                	mov    %eax,%ebx
4599a9:	85 db                	test   %ebx,%ebx
4599ab:	c7 45 90 50 00 00 00 	movl   $0x50,-0x70(%ebp)
4599b2:	8b fb                	mov    %ebx,%edi
4599b4:	74 76                	je     0x459a2c
4599b6:	8b 06                	mov    (%esi),%eax
4599b8:	8d 4d 90             	lea    -0x70(%ebp),%ecx
4599bb:	51                   	push   %ecx
4599bc:	4f                   	dec    %edi
4599bd:	57                   	push   %edi
4599be:	68 1d 04 00 00       	push   $0x41d
4599c3:	8b ce                	mov    %esi,%ecx
4599c5:	c7 45 94 11 00 00 00 	movl   $0x11,-0x6c(%ebp)
4599cc:	ff 90 10 01 00 00    	call   *0x110(%eax)
4599d2:	ff 75 b0             	push   -0x50(%ebp)
4599d5:	e8 ef b2 fe ff       	call   0x444cc9
4599da:	50                   	push   %eax
4599db:	68 14 ca 48 00       	push   $0x48ca14
4599e0:	e8 24 70 fe ff       	call   0x440a09
4599e5:	85 c0                	test   %eax,%eax
4599e7:	59                   	pop    %ecx
4599e8:	59                   	pop    %ecx
4599e9:	74 0c                	je     0x4599f7
4599eb:	8b 10                	mov    (%eax),%edx
4599ed:	8b c8                	mov    %eax,%ecx
4599ef:	ff 92 50 01 00 00    	call   *0x150(%edx)
4599f5:	eb 11                	jmp    0x459a08
4599f7:	6a f0                	push   $0xfffffff0
4599f9:	ff 75 b0             	push   -0x50(%ebp)
4599fc:	ff 15 14 08 4b 00    	call   *0x4b0814
459a02:	c1 e8 1c             	shr    $0x1c,%eax
459a05:	83 e0 01             	and    $0x1,%eax
459a08:	8b 4d 98             	mov    -0x68(%ebp),%ecx
459a0b:	c1 e9 03             	shr    $0x3,%ecx
459a0e:	f7 d1                	not    %ecx
459a10:	83 e1 01             	and    $0x1,%ecx
459a13:	3b c1                	cmp    %ecx,%eax
459a15:	74 11                	je     0x459a28
459a17:	8b 16                	mov    (%esi),%edx
459a19:	50                   	push   %eax
459a1a:	57                   	push   %edi
459a1b:	68 23 04 00 00       	push   $0x423
459a20:	8b ce                	mov    %esi,%ecx
459a22:	ff 92 10 01 00 00    	call   *0x110(%edx)
459a28:	85 ff                	test   %edi,%edi
459a2a:	75 8a                	jne    0x4599b6
459a2c:	8b 3d 3c 08 4b 00    	mov    0x4b083c,%edi
459a32:	8d 45 f0             	lea    -0x10(%ebp),%eax
459a35:	50                   	push   %eax
459a36:	ff d7                	call   *%edi
459a38:	eb 45                	jmp    0x459a7f
459a3a:	8b 06                	mov    (%esi),%eax
459a3c:	8d 4d 90             	lea    -0x70(%ebp),%ecx
459a3f:	51                   	push   %ecx
459a40:	4b                   	dec    %ebx
459a41:	53                   	push   %ebx
459a42:	68 1d 04 00 00       	push   $0x41d
459a47:	8b ce                	mov    %esi,%ecx
459a49:	c7 45 94 01 00 00 00 	movl   $0x1,-0x6c(%ebp)
459a50:	ff 90 10 01 00 00    	call   *0x110(%eax)
459a56:	f6 45 98 08          	testb  $0x8,-0x68(%ebp)
459a5a:	75 23                	jne    0x459a7f
459a5c:	8b 06                	mov    (%esi),%eax
459a5e:	8d 4d e0             	lea    -0x20(%ebp),%ecx
459a61:	51                   	push   %ecx
459a62:	53                   	push   %ebx
459a63:	68 09 04 00 00       	push   $0x409
459a68:	8b ce                	mov    %esi,%ecx
459a6a:	ff 90 10 01 00 00    	call   *0x110(%eax)
459a70:	8d 45 e0             	lea    -0x20(%ebp),%eax
459a73:	50                   	push   %eax
459a74:	8d 45 f0             	lea    -0x10(%ebp),%eax
459a77:	50                   	push   %eax
459a78:	50                   	push   %eax
459a79:	ff 15 e4 05 4b 00    	call   *0x4b05e4
459a7f:	85 db                	test   %ebx,%ebx
459a81:	75 b7                	jne    0x459a3a
459a83:	8d 45 f0             	lea    -0x10(%ebp),%eax
459a86:	50                   	push   %eax
459a87:	ff 15 20 06 4b 00    	call   *0x4b0620
459a8d:	85 c0                	test   %eax,%eax
459a8f:	75 2f                	jne    0x459ac0
459a91:	8d 45 e0             	lea    -0x20(%ebp),%eax
459a94:	50                   	push   %eax
459a95:	ff d7                	call   *%edi
459a97:	ff 75 10             	push   0x10(%ebp)
459a9a:	8b 06                	mov    (%esi),%eax
459a9c:	8d 4d e0             	lea    -0x20(%ebp),%ecx
459a9f:	51                   	push   %ecx
459aa0:	8b ce                	mov    %esi,%ecx
459aa2:	ff 90 3c 01 00 00    	call   *0x13c(%eax)
459aa8:	8b 45 e0             	mov    -0x20(%ebp),%eax
459aab:	2b 45 e8             	sub    -0x18(%ebp),%eax
459aae:	8b 4d f8             	mov    -0x8(%ebp),%ecx
459ab1:	8b 55 e4             	mov    -0x1c(%ebp),%edx
459ab4:	2b 55 ec             	sub    -0x14(%ebp),%edx
459ab7:	03 c8                	add    %eax,%ecx
459ab9:	8b 45 fc             	mov    -0x4(%ebp),%eax
459abc:	03 c2                	add    %edx,%eax
459abe:	eb 06                	jmp    0x459ac6
459ac0:	8b 45 fc             	mov    -0x4(%ebp),%eax
459ac3:	8b 4d f8             	mov    -0x8(%ebp),%ecx
459ac6:	33 f6                	xor    %esi,%esi
459ac8:	39 75 10             	cmp    %esi,0x10(%ebp)
459acb:	75 1c                	jne    0x459ae9
459acd:	39 75 0c             	cmp    %esi,0xc(%ebp)
459ad0:	74 17                	je     0x459ae9
459ad2:	ba ff 7f 00 00       	mov    $0x7fff,%edx
459ad7:	2b 4d f0             	sub    -0x10(%ebp),%ecx
459ada:	8b 45 08             	mov    0x8(%ebp),%eax
459add:	5f                   	pop    %edi
459ade:	5e                   	pop    %esi
459adf:	89 08                	mov    %ecx,(%eax)
459ae1:	89 50 04             	mov    %edx,0x4(%eax)
459ae4:	5b                   	pop    %ebx
459ae5:	c9                   	leave
459ae6:	c2 0c 00             	ret    $0xc
459ae9:	2b 45 f4             	sub    -0xc(%ebp),%eax
459aec:	39 75 10             	cmp    %esi,0x10(%ebp)
459aef:	8b d0                	mov    %eax,%edx
459af1:	74 e4                	je     0x459ad7
459af3:	39 75 0c             	cmp    %esi,0xc(%ebp)
459af6:	74 df                	je     0x459ad7
459af8:	b9 ff 7f 00 00       	mov    $0x7fff,%ecx
459afd:	eb db                	jmp    0x459ada
459aff:	55                   	push   %ebp
459b00:	8b ec                	mov    %esp,%ebp
459b02:	83 ec 10             	sub    $0x10,%esp
459b05:	56                   	push   %esi
459b06:	8b 75 10             	mov    0x10(%ebp),%esi
459b09:	8b c6                	mov    %esi,%eax
459b0b:	57                   	push   %edi
459b0c:	25 ff ff 40 00       	and    $0x40ffff,%eax
459b11:	81 7d 14 04 e8 00 00 	cmpl   $0xe804,0x14(%ebp)
459b18:	8b f9                	mov    %ecx,%edi
459b1a:	89 47 7c             	mov    %eax,0x7c(%edi)
459b1d:	75 06                	jne    0x459b25
459b1f:	83 c8 08             	or     $0x8,%eax
459b22:	89 47 7c             	mov    %eax,0x7c(%edi)
459b25:	68 00 80 00 00       	push   $0x8000
459b2a:	e8 cc ad fe ff       	call   0x4448fb
459b2f:	e8 51 61 01 00       	call   0x46fc85
459b34:	8d 45 f0             	lea    -0x10(%ebp),%eax
459b37:	50                   	push   %eax
459b38:	ff 15 3c 08 4b 00    	call   *0x4b083c
459b3e:	6a 00                	push   $0x0
459b40:	ff 75 14             	push   0x14(%ebp)
459b43:	81 e6 4e 02 bf ff    	and    $0xffbf024e,%esi
459b49:	ff 75 08             	push   0x8(%ebp)
459b4c:	0b 75 0c             	or     0xc(%ebp),%esi
459b4f:	8d 45 f0             	lea    -0x10(%ebp),%eax
459b52:	50                   	push   %eax
459b53:	81 ce 4e 02 00 00    	or     $0x24e,%esi
459b59:	56                   	push   %esi
459b5a:	6a 00                	push   $0x0
459b5c:	68 94 d0 48 00       	push   $0x48d094
459b61:	8b cf                	mov    %edi,%ecx
459b63:	e8 80 a3 fe ff       	call   0x443ee8
459b68:	f7 d8                	neg    %eax
459b6a:	1b c0                	sbb    %eax,%eax
459b6c:	5f                   	pop    %edi
459b6d:	f7 d8                	neg    %eax
459b6f:	5e                   	pop    %esi
459b70:	c9                   	leave
459b71:	c2 10 00             	ret    $0x10
459b74:	56                   	push   %esi
459b75:	8b f1                	mov    %ecx,%esi
459b77:	e8 83 b0 fe ff       	call   0x444bff
459b7c:	85 c0                	test   %eax,%eax
459b7e:	74 1c                	je     0x459b9c
459b80:	8b 46 34             	mov    0x34(%esi),%eax
459b83:	85 c0                	test   %eax,%eax
459b85:	74 12                	je     0x459b99
459b87:	8b 16                	mov    (%esi),%edx
459b89:	6a 00                	push   $0x0
459b8b:	50                   	push   %eax
459b8c:	68 07 04 00 00       	push   $0x407
459b91:	8b ce                	mov    %esi,%ecx
459b93:	ff 92 10 01 00 00    	call   *0x110(%edx)
459b99:	33 c0                	xor    %eax,%eax
459b9b:	40                   	inc    %eax
459b9c:	5e                   	pop    %esi
459b9d:	c2 04 00             	ret    $0x4
459ba0:	55                   	push   %ebp
459ba1:	8b ec                	mov    %esp,%ebp
459ba3:	83 ec 10             	sub    $0x10,%esp
459ba6:	56                   	push   %esi
459ba7:	8d 45 f0             	lea    -0x10(%ebp),%eax
459baa:	50                   	push   %eax
459bab:	8b f1                	mov    %ecx,%esi
459bad:	ff 15 3c 08 4b 00    	call   *0x4b083c
459bb3:	8b 46 7c             	mov    0x7c(%esi),%eax
459bb6:	25 00 a0 00 00       	and    $0xa000,%eax
459bbb:	f7 d8                	neg    %eax
459bbd:	1b c0                	sbb    %eax,%eax
459bbf:	f7 d8                	neg    %eax
459bc1:	50                   	push   %eax
459bc2:	8d 45 f0             	lea    -0x10(%ebp),%eax
459bc5:	50                   	push   %eax
459bc6:	8b ce                	mov    %esi,%ecx
459bc8:	e8 2a 02 00 00       	call   0x459df7
459bcd:	8b 45 0c             	mov    0xc(%ebp),%eax
459bd0:	8b 4d f0             	mov    -0x10(%ebp),%ecx
459bd3:	01 08                	add    %ecx,(%eax)
459bd5:	8b 4d f4             	mov    -0xc(%ebp),%ecx
459bd8:	01 48 04             	add    %ecx,0x4(%eax)
459bdb:	8b 4d f8             	mov    -0x8(%ebp),%ecx
459bde:	01 48 08             	add    %ecx,0x8(%eax)