4057fc:	8b 00                	mov    (%eax),%eax
4057fe:	a3 38 90 46 00       	mov    %eax,0x469038
405803:	ba 08 00 00 00       	mov    $0x8,%edx
405808:	8b c6                	mov    %esi,%eax
40580a:	e8 05 cf ff ff       	call   0x402714
40580f:	5e                   	pop    %esi
405810:	5b                   	pop    %ebx
405811:	c3                   	ret
405812:	8b d6                	mov    %esi,%edx
405814:	85 d2                	test   %edx,%edx
405816:	74 27                	je     0x40583f
405818:	8b 0a                	mov    (%edx),%ecx
40581a:	85 c9                	test   %ecx,%ecx
40581c:	74 1b                	je     0x405839
40581e:	8b 59 04             	mov    0x4(%ecx),%ebx
405821:	3b d8                	cmp    %eax,%ebx
405823:	75 14                	jne    0x405839
405825:	8b f1                	mov    %ecx,%esi
405827:	8b 01                	mov    (%ecx),%eax
405829:	89 02                	mov    %eax,(%edx)
40582b:	ba 08 00 00 00       	mov    $0x8,%edx
405830:	8b c6                	mov    %esi,%eax
405832:	e8 dd ce ff ff       	call   0x402714
405837:	eb 06                	jmp    0x40583f
405839:	8b 12                	mov    (%edx),%edx
40583b:	85 d2                	test   %edx,%edx
40583d:	75 d9                	jne    0x405818
40583f:	5e                   	pop    %esi
405840:	5b                   	pop    %ebx
405841:	c3                   	ret
405842:	8b c0                	mov    %eax,%eax
405844:	55                   	push   %ebp
405845:	8b ec                	mov    %esp,%ebp
405847:	83 c4 f8             	add    $0xfffffff8,%esp
40584a:	53                   	push   %ebx
40584b:	56                   	push   %esi
40584c:	57                   	push   %edi
40584d:	89 45 fc             	mov    %eax,-0x4(%ebp)
405850:	a1 38 90 46 00       	mov    0x469038,%eax
405855:	89 45 f8             	mov    %eax,-0x8(%ebp)
405858:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
40585c:	74 39                	je     0x405897
40585e:	33 c0                	xor    %eax,%eax
405860:	55                   	push   %ebp
405861:	68 7f 58 40 00       	push   $0x40587f
405866:	64 ff 30             	push   %fs:(%eax)
405869:	64 89 20             	mov    %esp,%fs:(%eax)
40586c:	8b 5d f8             	mov    -0x8(%ebp),%ebx
40586f:	8b 45 fc             	mov    -0x4(%ebp),%eax
405872:	ff 53 04             	call   *0x4(%ebx)
405875:	33 c0                	xor    %eax,%eax
405877:	5a                   	pop    %edx
405878:	59                   	pop    %ecx
405879:	59                   	pop    %ecx
40587a:	64 89 10             	mov    %edx,%fs:(%eax)
40587d:	eb 0a                	jmp    0x405889
40587f:	e9 1c df ff ff       	jmp    0x4037a0
405884:	e8 7f e2 ff ff       	call   0x403b08
405889:	8b 45 f8             	mov    -0x8(%ebp),%eax
40588c:	8b 00                	mov    (%eax),%eax
40588e:	89 45 f8             	mov    %eax,-0x8(%ebp)
405891:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
405895:	75 c7                	jne    0x40585e
405897:	5f                   	pop    %edi
405898:	5e                   	pop    %esi
405899:	5b                   	pop    %ebx
40589a:	59                   	pop    %ecx
40589b:	59                   	pop    %ecx
40589c:	5d                   	pop    %ebp
40589d:	c3                   	ret
40589e:	8b c0                	mov    %eax,%eax
4058a0:	8b 15 34 90 46 00    	mov    0x469034,%edx
4058a6:	89 10                	mov    %edx,(%eax)
4058a8:	a3 34 90 46 00       	mov    %eax,0x469034
4058ad:	c3                   	ret
4058ae:	8b c0                	mov    %eax,%eax
4058b0:	55                   	push   %ebp
4058b1:	8b ec                	mov    %esp,%ebp
4058b3:	51                   	push   %ecx
4058b4:	89 45 fc             	mov    %eax,-0x4(%ebp)
4058b7:	33 d2                	xor    %edx,%edx
4058b9:	55                   	push   %ebp
4058ba:	68 14 59 40 00       	push   $0x405914
4058bf:	64 ff 32             	push   %fs:(%edx)
4058c2:	64 89 22             	mov    %esp,%fs:(%edx)
4058c5:	8b 45 fc             	mov    -0x4(%ebp),%eax
4058c8:	8b 40 04             	mov    0x4(%eax),%eax
4058cb:	e8 74 ff ff ff       	call   0x405844
4058d0:	33 c0                	xor    %eax,%eax
4058d2:	5a                   	pop    %edx
4058d3:	59                   	pop    %ecx
4058d4:	59                   	pop    %ecx
4058d5:	64 89 10             	mov    %edx,%fs:(%eax)
4058d8:	68 1b 59 40 00       	push   $0x40591b
4058dd:	8b 45 fc             	mov    -0x4(%ebp),%eax
4058e0:	3b 05 34 90 46 00    	cmp    0x469034,%eax
4058e6:	75 0c                	jne    0x4058f4
4058e8:	8b 45 fc             	mov    -0x4(%ebp),%eax
4058eb:	8b 00                	mov    (%eax),%eax
4058ed:	a3 34 90 46 00       	mov    %eax,0x469034
4058f2:	eb 1f                	jmp    0x405913
4058f4:	a1 34 90 46 00       	mov    0x469034,%eax
4058f9:	85 c0                	test   %eax,%eax
4058fb:	74 16                	je     0x405913
4058fd:	8b 10                	mov    (%eax),%edx
4058ff:	3b 55 fc             	cmp    -0x4(%ebp),%edx
405902:	75 09                	jne    0x40590d
405904:	8b 55 fc             	mov    -0x4(%ebp),%edx
405907:	8b 12                	mov    (%edx),%edx
405909:	89 10                	mov    %edx,(%eax)
40590b:	eb 06                	jmp    0x405913
40590d:	8b 00                	mov    (%eax),%eax
40590f:	85 c0                	test   %eax,%eax
405911:	75 ea                	jne    0x4058fd
405913:	c3                   	ret
405914:	e9 3b e1 ff ff       	jmp    0x403a54
405919:	eb c2                	jmp    0x4058dd
40591b:	59                   	pop    %ecx
40591c:	5d                   	pop    %ebp
40591d:	c3                   	ret
40591e:	8b c0                	mov    %eax,%eax
405920:	8b 10                	mov    (%eax),%edx
405922:	85 d2                	test   %edx,%edx
405924:	74 0e                	je     0x405934
405926:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
40592c:	50                   	push   %eax
40592d:	52                   	push   %edx
40592e:	8b 02                	mov    (%edx),%eax
405930:	ff 50 08             	call   *0x8(%eax)
405933:	58                   	pop    %eax
405934:	c3                   	ret
405935:	8d 40 00             	lea    0x0(%eax),%eax
405938:	85 d2                	test   %edx,%edx
40593a:	74 19                	je     0x405955
40593c:	52                   	push   %edx
40593d:	50                   	push   %eax
40593e:	8b 02                	mov    (%edx),%eax
405940:	52                   	push   %edx
405941:	ff 50 04             	call   *0x4(%eax)
405944:	58                   	pop    %eax
405945:	8b 08                	mov    (%eax),%ecx
405947:	8f 00                	pop    (%eax)
405949:	85 c9                	test   %ecx,%ecx
40594b:	75 01                	jne    0x40594e
40594d:	c3                   	ret
40594e:	8b 01                	mov    (%ecx),%eax
405950:	51                   	push   %ecx
405951:	ff 50 08             	call   *0x8(%eax)
405954:	c3                   	ret
405955:	8b 08                	mov    (%eax),%ecx
405957:	85 c9                	test   %ecx,%ecx
405959:	89 10                	mov    %edx,(%eax)
40595b:	74 06                	je     0x405963
40595d:	8b 01                	mov    (%ecx),%eax
40595f:	51                   	push   %ecx
405960:	ff 50 08             	call   *0x8(%eax)
405963:	c3                   	ret
405964:	85 d2                	test   %edx,%edx
405966:	0f 84 b4 ff ff ff    	je     0x405920
40596c:	57                   	push   %edi
40596d:	89 c7                	mov    %eax,%edi
40596f:	6a 00                	push   $0x0
405971:	54                   	push   %esp
405972:	51                   	push   %ecx
405973:	52                   	push   %edx
405974:	8b 02                	mov    (%edx),%eax
405976:	ff 10                	call   *(%eax)
405978:	85 c0                	test   %eax,%eax
40597a:	74 07                	je     0x405983
40597c:	b0 17                	mov    $0x17,%al
40597e:	e9 cd ce ff ff       	jmp    0x402850
405983:	8b 07                	mov    (%edi),%eax
405985:	85 c0                	test   %eax,%eax
405987:	74 06                	je     0x40598f
405989:	50                   	push   %eax
40598a:	8b 00                	mov    (%eax),%eax
40598c:	ff 50 08             	call   *0x8(%eax)
40598f:	58                   	pop    %eax
405990:	89 07                	mov    %eax,(%edi)
405992:	5f                   	pop    %edi
405993:	c3                   	ret
405994:	85 c0                	test   %eax,%eax
405996:	74 06                	je     0x40599e
405998:	50                   	push   %eax
405999:	8b 00                	mov    (%eax),%eax
40599b:	ff 50 04             	call   *0x4(%eax)
40599e:	c3                   	ret
40599f:	90                   	nop
4059a0:	83 c0 04             	add    $0x4,%eax
4059a3:	50                   	push   %eax
4059a4:	e8 83 b9 ff ff       	call   0x40132c
4059a9:	c3                   	ret
4059aa:	8b c0                	mov    %eax,%eax
4059ac:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
4059b0:	74 07                	je     0x4059b9
4059b2:	b0 02                	mov    $0x2,%al
4059b4:	e8 97 ce ff ff       	call   0x402850
4059b9:	c3                   	ret
4059ba:	8b c0                	mov    %eax,%eax
4059bc:	e8 97 d8 ff ff       	call   0x403258
4059c1:	c7 40 04 01 00 00 00 	movl   $0x1,0x4(%eax)
4059c8:	c3                   	ret
4059c9:	8d 40 00             	lea    0x0(%eax),%eax
4059cc:	55                   	push   %ebp
4059cd:	8b ec                	mov    %esp,%ebp
4059cf:	53                   	push   %ebx
4059d0:	8b 5d 08             	mov    0x8(%ebp),%ebx
4059d3:	8b 4d 10             	mov    0x10(%ebp),%ecx
4059d6:	8b 55 0c             	mov    0xc(%ebp),%edx
4059d9:	8b c3                	mov    %ebx,%eax
4059db:	e8 94 d9 ff ff       	call   0x403374
4059e0:	84 c0                	test   %al,%al
4059e2:	74 04                	je     0x4059e8
4059e4:	33 c0                	xor    %eax,%eax
4059e6:	eb 05                	jmp    0x4059ed
4059e8:	b8 02 40 00 80       	mov    $0x80004002,%eax
4059ed:	5b                   	pop    %ebx
4059ee:	5d                   	pop    %ebp
4059ef:	c2 0c 00             	ret    $0xc
4059f2:	8b c0                	mov    %eax,%eax
4059f4:	55                   	push   %ebp
4059f5:	8b ec                	mov    %esp,%ebp
4059f7:	8b 45 08             	mov    0x8(%ebp),%eax
4059fa:	83 c0 04             	add    $0x4,%eax
4059fd:	50                   	push   %eax
4059fe:	e8 21 b9 ff ff       	call   0x401324
405a03:	5d                   	pop    %ebp
405a04:	c2 04 00             	ret    $0x4
405a07:	90                   	nop
405a08:	55                   	push   %ebp
405a09:	8b ec                	mov    %esp,%ebp
405a0b:	53                   	push   %ebx
405a0c:	56                   	push   %esi
405a0d:	8b 5d 08             	mov    0x8(%ebp),%ebx
405a10:	8d 43 04             	lea    0x4(%ebx),%eax
405a13:	50                   	push   %eax
405a14:	e8 13 b9 ff ff       	call   0x40132c
405a19:	8b f0                	mov    %eax,%esi
405a1b:	85 f6                	test   %esi,%esi
405a1d:	75 09                	jne    0x405a28
405a1f:	b2 01                	mov    $0x1,%dl
405a21:	8b c3                	mov    %ebx,%eax
405a23:	8b 08                	mov    (%eax),%ecx
405a25:	ff 51 fc             	call   *-0x4(%ecx)
405a28:	8b c6                	mov    %esi,%eax
405a2a:	5e                   	pop    %esi
405a2b:	5b                   	pop    %ebx
405a2c:	5d                   	pop    %ebp
405a2d:	c2 04 00             	ret    $0x4
405a30:	55                   	push   %ebp
405a31:	8b ec                	mov    %esp,%ebp
405a33:	83 c4 f8             	add    $0xfffffff8,%esp
405a36:	53                   	push   %ebx
405a37:	56                   	push   %esi
405a38:	89 4d f8             	mov    %ecx,-0x8(%ebp)
405a3b:	89 55 fc             	mov    %edx,-0x4(%ebp)
405a3e:	33 d2                	xor    %edx,%edx
405a40:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
405a44:	0f 84 b8 00 00 00    	je     0x405b02
405a4a:	33 f6                	xor    %esi,%esi
405a4c:	33 c9                	xor    %ecx,%ecx
405a4e:	85 c0                	test   %eax,%eax
405a50:	0f 84 87 00 00 00    	je     0x405add
405a56:	eb 6c                	jmp    0x405ac4
405a58:	8b 55 f8             	mov    -0x8(%ebp),%edx
405a5b:	0f b7 14 4a          	movzwl (%edx,%ecx,2),%edx
405a5f:	41                   	inc    %ecx
405a60:	83 fa 7f             	cmp    $0x7f,%edx
405a63:	77 06                	ja     0x405a6b
405a65:	88 14 30             	mov    %dl,(%eax,%esi,1)
405a68:	46                   	inc    %esi
405a69:	eb 59                	jmp    0x405ac4
405a6b:	81 fa ff 07 00 00    	cmp    $0x7ff,%edx
405a71:	76 31                	jbe    0x405aa4
405a73:	8d 5e 03             	lea    0x3(%esi),%ebx
405a76:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
405a79:	77 53                	ja     0x405ace
405a7b:	8b da                	mov    %edx,%ebx
405a7d:	c1 eb 0c             	shr    $0xc,%ebx
405a80:	80 cb e0             	or     $0xe0,%bl
405a83:	88 1c 30             	mov    %bl,(%eax,%esi,1)
405a86:	8b da                	mov    %edx,%ebx
405a88:	c1 eb 06             	shr    $0x6,%ebx
405a8b:	80 e3 3f             	and    $0x3f,%bl
405a8e:	80 cb 80             	or     $0x80,%bl
405a91:	88 5c 30 01          	mov    %bl,0x1(%eax,%esi,1)
405a95:	80 e2 3f             	and    $0x3f,%dl
405a98:	80 ca 80             	or     $0x80,%dl
405a9b:	88 54 30 02          	mov    %dl,0x2(%eax,%esi,1)
405a9f:	83 c6 03             	add    $0x3,%esi
405aa2:	eb 20                	jmp    0x405ac4
405aa4:	8d 5e 02             	lea    0x2(%esi),%ebx
405aa7:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
405aaa:	77 22                	ja     0x405ace
405aac:	8b da                	mov    %edx,%ebx
405aae:	c1 eb 06             	shr    $0x6,%ebx
405ab1:	80 cb c0             	or     $0xc0,%bl
405ab4:	88 1c 30             	mov    %bl,(%eax,%esi,1)
405ab7:	80 e2 3f             	and    $0x3f,%dl
405aba:	80 ca 80             	or     $0x80,%dl
405abd:	88 54 30 01          	mov    %dl,0x1(%eax,%esi,1)
405ac1:	83 c6 02             	add    $0x2,%esi
405ac4:	3b 4d 08             	cmp    0x8(%ebp),%ecx
405ac7:	73 05                	jae    0x405ace
405ac9:	3b 75 fc             	cmp    -0x4(%ebp),%esi
405acc:	72 8a                	jb     0x405a58
405ace:	3b 75 fc             	cmp    -0x4(%ebp),%esi
405ad1:	72 04                	jb     0x405ad7
405ad3:	8b 75 fc             	mov    -0x4(%ebp),%esi
405ad6:	4e                   	dec    %esi
405ad7:	c6 04 30 00          	movb   $0x0,(%eax,%esi,1)
405adb:	eb 22                	jmp    0x405aff
405add:	3b 4d 08             	cmp    0x8(%ebp),%ecx
405ae0:	73 1d                	jae    0x405aff
405ae2:	8b 45 f8             	mov    -0x8(%ebp),%eax
405ae5:	0f b7 14 48          	movzwl (%eax,%ecx,2),%edx
405ae9:	41                   	inc    %ecx
405aea:	83 fa 7f             	cmp    $0x7f,%edx
405aed:	76 0a                	jbe    0x405af9
405aef:	81 fa ff 07 00 00    	cmp    $0x7ff,%edx
405af5:	76 01                	jbe    0x405af8
405af7:	46                   	inc    %esi
405af8:	46                   	inc    %esi
405af9:	46                   	inc    %esi
405afa:	3b 4d 08             	cmp    0x8(%ebp),%ecx
405afd:	72 e3                	jb     0x405ae2
405aff:	8d 56 01             	lea    0x1(%esi),%edx
405b02:	8b c2                	mov    %edx,%eax
405b04:	5e                   	pop    %esi
405b05:	5b                   	pop    %ebx
405b06:	59                   	pop    %ecx
405b07:	59                   	pop    %ecx
405b08:	5d                   	pop    %ebp
405b09:	c2 04 00             	ret    $0x4
405b0c:	55                   	push   %ebp
405b0d:	8b ec                	mov    %esp,%ebp
405b0f:	83 c4 f0             	add    $0xfffffff0,%esp
405b12:	53                   	push   %ebx
405b13:	56                   	push   %esi
405b14:	89 4d f4             	mov    %ecx,-0xc(%ebp)
405b17:	89 55 f8             	mov    %edx,-0x8(%ebp)
405b1a:	89 45 fc             	mov    %eax,-0x4(%ebp)
405b1d:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
405b21:	75 0a                	jne    0x405b2d
405b23:	33 c0                	xor    %eax,%eax
405b25:	89 45 f0             	mov    %eax,-0x10(%ebp)
405b28:	e9 09 01 00 00       	jmp    0x405c36
405b2d:	c7 45 f0 ff ff ff ff 	movl   $0xffffffff,-0x10(%ebp)
405b34:	33 c0                	xor    %eax,%eax
405b36:	33 f6                	xor    %esi,%esi