457904:	ff 75 f8             	push   -0x8(%ebp)
457907:	50                   	push   %eax
457908:	8b 08                	mov    (%eax),%ecx
45790a:	ff 51 50             	call   *0x50(%ecx)
45790d:	8b 45 f4             	mov    -0xc(%ebp),%eax
457910:	47                   	inc    %edi
457911:	89 75 f8             	mov    %esi,-0x8(%ebp)
457914:	66 3b 78 2c          	cmp    0x2c(%eax),%di
457918:	72 9b                	jb     0x4578b5
45791a:	eb 05                	jmp    0x457921
45791c:	ff 75 f0             	push   -0x10(%ebp)
45791f:	ff d3                	call   *%ebx
457921:	33 db                	xor    %ebx,%ebx
457923:	e9 48 ff ff ff       	jmp    0x457870
457928:	8b 45 fc             	mov    -0x4(%ebp),%eax
45792b:	ff 75 f4             	push   -0xc(%ebp)
45792e:	8b 08                	mov    (%eax),%ecx
457930:	50                   	push   %eax
457931:	ff 51 4c             	call   *0x4c(%ecx)
457934:	e9 cf 00 00 00       	jmp    0x457a08
457939:	8b 75 10             	mov    0x10(%ebp),%esi
45793c:	33 c0                	xor    %eax,%eax
45793e:	c7 06 01 00 00 00    	movl   $0x1,(%esi)
457944:	66 3b 42 18          	cmp    0x18(%edx),%ax
457948:	7d 77                	jge    0x4579c1
45794a:	33 ff                	xor    %edi,%edi
45794c:	83 c6 10             	add    $0x10,%esi
45794f:	8b 42 08             	mov    0x8(%edx),%eax
457952:	0f b7 44 38 04       	movzwl 0x4(%eax,%edi,1),%eax
457957:	66 89 06             	mov    %ax,(%esi)
45795a:	83 f8 1a             	cmp    $0x1a,%eax
45795d:	75 12                	jne    0x457971
45795f:	8b 42 08             	mov    0x8(%edx),%eax
457962:	b9 00 40 00 00       	mov    $0x4000,%ecx
457967:	8b 04 38             	mov    (%eax,%edi,1),%eax
45796a:	66 0b 48 04          	or     0x4(%eax),%cx
45796e:	66 89 0e             	mov    %cx,(%esi)
457971:	66 83 3e 1b          	cmpw   $0x1b,(%esi)
457975:	75 12                	jne    0x457989
457977:	8b 42 08             	mov    0x8(%edx),%eax
45797a:	b9 00 20 00 00       	mov    $0x2000,%ecx
45797f:	8b 04 38             	mov    (%eax,%edi,1),%eax
457982:	66 0b 48 04          	or     0x4(%eax),%cx
457986:	66 89 0e             	mov    %cx,(%esi)
457989:	66 83 3e 1d          	cmpw   $0x1d,(%esi)
45798d:	75 14                	jne    0x4579a3
45798f:	8b 52 08             	mov    0x8(%edx),%edx
457992:	8b 4d fc             	mov    -0x4(%ebp),%ecx
457995:	8b 14 3a             	mov    (%edx,%edi,1),%edx
457998:	e8 dc fb ff ff       	call   0x457579
45799d:	8b 55 f8             	mov    -0x8(%ebp),%edx
4579a0:	66 89 06             	mov    %ax,(%esi)
4579a3:	8b 42 08             	mov    0x8(%edx),%eax
4579a6:	43                   	inc    %ebx
4579a7:	66 8b 44 38 0c       	mov    0xc(%eax,%edi,1),%ax
4579ac:	83 c7 10             	add    $0x10,%edi
4579af:	66 89 46 02          	mov    %ax,0x2(%esi)
4579b3:	83 c6 04             	add    $0x4,%esi
4579b6:	0f bf 42 18          	movswl 0x18(%edx),%eax
4579ba:	3b d8                	cmp    %eax,%ebx
4579bc:	7c 91                	jl     0x45794f
4579be:	8b 75 10             	mov    0x10(%ebp),%esi
4579c1:	0f b7 4a 24          	movzwl 0x24(%edx),%ecx
4579c5:	8b c1                	mov    %ecx,%eax
4579c7:	83 e8 16             	sub    $0x16,%eax
4579ca:	74 15                	je     0x4579e1
4579cc:	48                   	dec    %eax
4579cd:	74 0e                	je     0x4579dd
4579cf:	48                   	dec    %eax
4579d0:	74 07                	je     0x4579d9
4579d2:	48                   	dec    %eax
4579d3:	75 0f                	jne    0x4579e4
4579d5:	6a 0a                	push   $0xa
4579d7:	eb 0a                	jmp    0x4579e3
4579d9:	33 c9                	xor    %ecx,%ecx
4579db:	eb 07                	jmp    0x4579e4
4579dd:	6a 13                	push   $0x13
4579df:	eb 02                	jmp    0x4579e3
4579e1:	6a 03                	push   $0x3
4579e3:	59                   	pop    %ecx
4579e4:	66 89 4e 0c          	mov    %cx,0xc(%esi)
4579e8:	8b 42 10             	mov    0x10(%edx),%eax
4579eb:	89 46 04             	mov    %eax,0x4(%esi)
4579ee:	8b 42 14             	mov    0x14(%edx),%eax
4579f1:	89 46 08             	mov    %eax,0x8(%esi)
4579f4:	66 8b 42 18          	mov    0x18(%edx),%ax
4579f8:	66 89 46 0e          	mov    %ax,0xe(%esi)
4579fc:	8b 45 fc             	mov    -0x4(%ebp),%eax
4579ff:	52                   	push   %edx
457a00:	50                   	push   %eax
457a01:	8b 08                	mov    (%eax),%ecx
457a03:	ff 51 50             	call   *0x50(%ecx)
457a06:	33 f6                	xor    %esi,%esi
457a08:	8b 45 fc             	mov    -0x4(%ebp),%eax
457a0b:	85 c0                	test   %eax,%eax
457a0d:	74 06                	je     0x457a15
457a0f:	8b 08                	mov    (%eax),%ecx
457a11:	50                   	push   %eax
457a12:	ff 51 08             	call   *0x8(%ecx)
457a15:	5f                   	pop    %edi
457a16:	8b c6                	mov    %esi,%eax
457a18:	5e                   	pop    %esi
457a19:	5b                   	pop    %ebx
457a1a:	8b e5                	mov    %ebp,%esp
457a1c:	5d                   	pop    %ebp
457a1d:	c3                   	ret
457a1e:	55                   	push   %ebp
457a1f:	8b ec                	mov    %esp,%ebp
457a21:	51                   	push   %ecx
457a22:	53                   	push   %ebx
457a23:	56                   	push   %esi
457a24:	57                   	push   %edi
457a25:	8b fa                	mov    %edx,%edi
457a27:	33 f6                	xor    %esi,%esi
457a29:	8b d9                	mov    %ecx,%ebx
457a2b:	85 ff                	test   %edi,%edi
457a2d:	74 3b                	je     0x457a6a
457a2f:	57                   	push   %edi
457a30:	e8 07 b4 fc ff       	call   0x422e3c
457a35:	59                   	pop    %ecx
457a36:	85 c0                	test   %eax,%eax
457a38:	74 30                	je     0x457a6a
457a3a:	8b cf                	mov    %edi,%ecx
457a3c:	e8 85 84 fc ff       	call   0x41fec6
457a41:	ff 75 08             	push   0x8(%ebp)
457a44:	8d 4d fc             	lea    -0x4(%ebp),%ecx
457a47:	89 45 fc             	mov    %eax,-0x4(%ebp)
457a4a:	8b 03                	mov    (%ebx),%eax
457a4c:	68 00 08 00 00       	push   $0x800
457a51:	6a 01                	push   $0x1
457a53:	51                   	push   %ecx
457a54:	68 2c 2c 49 00       	push   $0x492c2c
457a59:	53                   	push   %ebx
457a5a:	ff 50 14             	call   *0x14(%eax)
457a5d:	ff 75 fc             	push   -0x4(%ebp)
457a60:	8b f0                	mov    %eax,%esi
457a62:	e8 49 b6 fc ff       	call   0x4230b0
457a67:	59                   	pop    %ecx
457a68:	eb 05                	jmp    0x457a6f
457a6a:	8b 45 08             	mov    0x8(%ebp),%eax
457a6d:	89 30                	mov    %esi,(%eax)
457a6f:	5f                   	pop    %edi
457a70:	8b c6                	mov    %esi,%eax
457a72:	5e                   	pop    %esi
457a73:	5b                   	pop    %ebx
457a74:	8b e5                	mov    %ebp,%esp
457a76:	5d                   	pop    %ebp
457a77:	c3                   	ret
457a78:	55                   	push   %ebp
457a79:	8b ec                	mov    %esp,%ebp
457a7b:	83 ec 54             	sub    $0x54,%esp
457a7e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
457a82:	53                   	push   %ebx
457a83:	56                   	push   %esi
457a84:	57                   	push   %edi
457a85:	be 2c 2c 49 00       	mov    $0x492c2c,%esi
457a8a:	89 55 cc             	mov    %edx,-0x34(%ebp)
457a8d:	8d 7d ac             	lea    -0x54(%ebp),%edi
457a90:	8b d9                	mov    %ecx,%ebx
457a92:	8d 4d d8             	lea    -0x28(%ebp),%ecx
457a95:	51                   	push   %ecx
457a96:	a5                   	movsl  %ds:(%esi),%es:(%edi)
457a97:	8b 03                	mov    (%ebx),%eax
457a99:	68 7c 2c 49 00       	push   $0x492c7c
457a9e:	53                   	push   %ebx
457a9f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
457aa0:	a5                   	movsl  %ds:(%esi),%es:(%edi)
457aa1:	a5                   	movsl  %ds:(%esi),%es:(%edi)
457aa2:	ff 10                	call   *(%eax)
457aa4:	8d 4d fc             	lea    -0x4(%ebp),%ecx
457aa7:	51                   	push   %ecx
457aa8:	85 c0                	test   %eax,%eax
457aaa:	78 13                	js     0x457abf
457aac:	8b 75 d8             	mov    -0x28(%ebp),%esi
457aaf:	56                   	push   %esi
457ab0:	8b 06                	mov    (%esi),%eax
457ab2:	ff 50 0c             	call   *0xc(%eax)
457ab5:	8b 0e                	mov    (%esi),%ecx
457ab7:	8b f8                	mov    %eax,%edi
457ab9:	56                   	push   %esi
457aba:	ff 51 08             	call   *0x8(%ecx)
457abd:	eb 0f                	jmp    0x457ace
457abf:	8b 03                	mov    (%ebx),%eax
457ac1:	68 00 08 00 00       	push   $0x800
457ac6:	6a 00                	push   $0x0
457ac8:	53                   	push   %ebx
457ac9:	ff 50 10             	call   *0x10(%eax)
457acc:	8b f8                	mov    %eax,%edi
457ace:	85 ff                	test   %edi,%edi
457ad0:	0f 88 b0 01 00 00    	js     0x457c86
457ad6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
457ad9:	85 c9                	test   %ecx,%ecx
457adb:	0f 84 a5 01 00 00    	je     0x457c86
457ae1:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
457ae5:	8d 55 e4             	lea    -0x1c(%ebp),%edx
457ae8:	8b 01                	mov    (%ecx),%eax
457aea:	52                   	push   %edx
457aeb:	8d 55 f8             	lea    -0x8(%ebp),%edx
457aee:	52                   	push   %edx
457aef:	51                   	push   %ecx
457af0:	ff 50 48             	call   *0x48(%eax)
457af3:	85 c0                	test   %eax,%eax
457af5:	0f 88 82 01 00 00    	js     0x457c7d
457afb:	8b 4d f8             	mov    -0x8(%ebp),%ecx
457afe:	85 c9                	test   %ecx,%ecx
457b00:	0f 84 77 01 00 00    	je     0x457c7d
457b06:	8b 01                	mov    (%ecx),%eax
457b08:	8d 55 f0             	lea    -0x10(%ebp),%edx
457b0b:	52                   	push   %edx
457b0c:	ff 75 e4             	push   -0x1c(%ebp)
457b0f:	51                   	push   %ecx
457b10:	ff 50 14             	call   *0x14(%eax)
457b13:	83 7d f0 05          	cmpl   $0x5,-0x10(%ebp)
457b17:	0f 84 e0 00 00 00    	je     0x457bfd
457b1d:	8b 45 f8             	mov    -0x8(%ebp),%eax
457b20:	50                   	push   %eax
457b21:	8b 08                	mov    (%eax),%ecx
457b23:	ff 51 0c             	call   *0xc(%ecx)
457b26:	8b d8                	mov    %eax,%ebx
457b28:	33 ff                	xor    %edi,%edi
457b2a:	33 f6                	xor    %esi,%esi
457b2c:	89 7d dc             	mov    %edi,-0x24(%ebp)
457b2f:	85 db                	test   %ebx,%ebx
457b31:	0f 84 bc 00 00 00    	je     0x457bf3
457b37:	85 ff                	test   %edi,%edi
457b39:	0f 85 b4 00 00 00    	jne    0x457bf3
457b3f:	8b 45 f8             	mov    -0x8(%ebp),%eax
457b42:	8d 55 f0             	lea    -0x10(%ebp),%edx
457b45:	21 7d f0             	and    %edi,-0x10(%ebp)
457b48:	52                   	push   %edx
457b49:	56                   	push   %esi
457b4a:	8b 08                	mov    (%eax),%ecx
457b4c:	50                   	push   %eax
457b4d:	ff 51 14             	call   *0x14(%ecx)
457b50:	83 7d f0 05          	cmpl   $0x5,-0x10(%ebp)
457b54:	0f 85 90 00 00 00    	jne    0x457bea
457b5a:	8b 45 f8             	mov    -0x8(%ebp),%eax
457b5d:	8d 55 f4             	lea    -0xc(%ebp),%edx
457b60:	52                   	push   %edx
457b61:	56                   	push   %esi
457b62:	50                   	push   %eax
457b63:	8b 08                	mov    (%eax),%ecx
457b65:	ff 51 10             	call   *0x10(%ecx)
457b68:	8b 45 f4             	mov    -0xc(%ebp),%eax
457b6b:	8d 55 d4             	lea    -0x2c(%ebp),%edx
457b6e:	52                   	push   %edx
457b6f:	50                   	push   %eax
457b70:	8b 08                	mov    (%eax),%ecx
457b72:	ff 51 0c             	call   *0xc(%ecx)
457b75:	8b 55 d4             	mov    -0x2c(%ebp),%edx
457b78:	52                   	push   %edx
457b79:	0f b7 42 30          	movzwl 0x30(%edx),%eax
457b7d:	89 45 e0             	mov    %eax,-0x20(%ebp)
457b80:	8b 45 f4             	mov    -0xc(%ebp),%eax
457b83:	50                   	push   %eax
457b84:	8b 08                	mov    (%eax),%ecx
457b86:	ff 51 4c             	call   *0x4c(%ecx)
457b89:	83 4d e8 ff          	orl    $0xffffffff,-0x18(%ebp)
457b8d:	39 7d e0             	cmp    %edi,-0x20(%ebp)
457b90:	76 4c                	jbe    0x457bde
457b92:	8b 45 f4             	mov    -0xc(%ebp),%eax
457b95:	8d 55 d0             	lea    -0x30(%ebp),%edx
457b98:	52                   	push   %edx
457b99:	57                   	push   %edi
457b9a:	50                   	push   %eax
457b9b:	8b 08                	mov    (%eax),%ecx
457b9d:	ff 51 20             	call   *0x20(%ecx)
457ba0:	85 c0                	test   %eax,%eax
457ba2:	75 34                	jne    0x457bd8
457ba4:	8b 45 fc             	mov    -0x4(%ebp),%eax
457ba7:	8d 55 ec             	lea    -0x14(%ebp),%edx
457baa:	52                   	push   %edx
457bab:	ff 75 d0             	push   -0x30(%ebp)
457bae:	8b 08                	mov    (%eax),%ecx
457bb0:	50                   	push   %eax
457bb1:	ff 51 38             	call   *0x38(%ecx)
457bb4:	8b 45 ec             	mov    -0x14(%ebp),%eax
457bb7:	8d 55 e8             	lea    -0x18(%ebp),%edx
457bba:	52                   	push   %edx
457bbb:	6a 00                	push   $0x0
457bbd:	50                   	push   %eax
457bbe:	8b 08                	mov    (%eax),%ecx
457bc0:	ff 51 48             	call   *0x48(%ecx)
457bc3:	8b 45 e8             	mov    -0x18(%ebp),%eax
457bc6:	3b 45 e4             	cmp    -0x1c(%ebp),%eax
457bc9:	8b 45 ec             	mov    -0x14(%ebp),%eax
457bcc:	50                   	push   %eax
457bcd:	8b 08                	mov    (%eax),%ecx
457bcf:	0f 84 cf 00 00 00    	je     0x457ca4
457bd5:	ff 51 08             	call   *0x8(%ecx)
457bd8:	47                   	inc    %edi
457bd9:	3b 7d e0             	cmp    -0x20(%ebp),%edi
457bdc:	72 b4                	jb     0x457b92
457bde:	8b 45 f4             	mov    -0xc(%ebp),%eax
457be1:	50                   	push   %eax
457be2:	8b 08                	mov    (%eax),%ecx
457be4:	ff 51 08             	call   *0x8(%ecx)
457be7:	8b 7d dc             	mov    -0x24(%ebp),%edi
457bea:	46                   	inc    %esi
457beb:	3b f3                	cmp    %ebx,%esi
457bed:	0f 82 44 ff ff ff    	jb     0x457b37
457bf3:	83 7d f0 05          	cmpl   $0x5,-0x10(%ebp)
457bf7:	0f 85 80 00 00 00    	jne    0x457c7d
457bfd:	8b 4d fc             	mov    -0x4(%ebp),%ecx
457c00:	8d 55 dc             	lea    -0x24(%ebp),%edx
457c03:	52                   	push   %edx
457c04:	51                   	push   %ecx
457c05:	8b 01                	mov    (%ecx),%eax
457c07:	ff 50 0c             	call   *0xc(%eax)
457c0a:	8b 75 dc             	mov    -0x24(%ebp),%esi
457c0d:	8d 7d ac             	lea    -0x54(%ebp),%edi
457c10:	8b 45 fc             	mov    -0x4(%ebp),%eax
457c13:	ff 75 dc             	push   -0x24(%ebp)
457c16:	a5                   	movsl  %ds:(%esi),%es:(%edi)
457c17:	50                   	push   %eax
457c18:	a5                   	movsl  %ds:(%esi),%es:(%edi)
457c19:	a5                   	movsl  %ds:(%esi),%es:(%edi)
457c1a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
457c1b:	8b 08                	mov    (%eax),%ecx
457c1d:	ff 51 4c             	call   *0x4c(%ecx)
457c20:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
457c24:	75 57                	jne    0x457c7d
457c26:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
457c2a:	8d 45 ec             	lea    -0x14(%ebp),%eax
457c2d:	50                   	push   %eax
457c2e:	8d 45 ac             	lea    -0x54(%ebp),%eax
457c31:	50                   	push   %eax
457c32:	ff 15 34 f8 48 00    	call   *0x48f834
457c38:	85 c0                	test   %eax,%eax
457c3a:	78 41                	js     0x457c7d
457c3c:	ff 75 ec             	push   -0x14(%ebp)
457c3f:	8d 4d bc             	lea    -0x44(%ebp),%ecx
457c42:	e8 fa 02 fb ff       	call   0x407f41
457c47:	ff 75 ec             	push   -0x14(%ebp)
457c4a:	ff 15 2c f8 48 00    	call   *0x48f82c
457c50:	6a ff                	push   $0xffffffff
457c52:	68 80 fb 48 00       	push   $0x48fb80
457c57:	8d 4d bc             	lea    -0x44(%ebp),%ecx
457c5a:	e8 d0 01 fb ff       	call   0x407e2f
457c5f:	50                   	push   %eax
457c60:	8d 4d bc             	lea    -0x44(%ebp),%ecx
457c63:	e8 24 02 fb ff       	call   0x407e8c
457c68:	8d 45 ac             	lea    -0x54(%ebp),%eax
457c6b:	50                   	push   %eax
457c6c:	ff 75 bc             	push   -0x44(%ebp)
457c6f:	ff 15 38 f8 48 00    	call   *0x48f838
457c75:	8d 4d bc             	lea    -0x44(%ebp),%ecx
457c78:	e8 e7 dd fa ff       	call   0x405a64
457c7d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
457c80:	51                   	push   %ecx