4057ea:	c1 eb 06             	shr    $0x6,%ebx
4057ed:	80 cb c0             	or     $0xc0,%bl
4057f0:	88 1c 30             	mov    %bl,(%eax,%esi,1)
4057f3:	80 e2 3f             	and    $0x3f,%dl
4057f6:	80 ca 80             	or     $0x80,%dl
4057f9:	88 54 30 01          	mov    %dl,0x1(%eax,%esi,1)
4057fd:	83 c6 02             	add    $0x2,%esi
405800:	3b 4d 08             	cmp    0x8(%ebp),%ecx
405803:	73 05                	jae    0x40580a
405805:	3b 75 fc             	cmp    -0x4(%ebp),%esi
405808:	72 8a                	jb     0x405794
40580a:	3b 75 fc             	cmp    -0x4(%ebp),%esi
40580d:	72 04                	jb     0x405813
40580f:	8b 75 fc             	mov    -0x4(%ebp),%esi
405812:	4e                   	dec    %esi
405813:	c6 04 30 00          	movb   $0x0,(%eax,%esi,1)
405817:	eb 22                	jmp    0x40583b
405819:	3b 4d 08             	cmp    0x8(%ebp),%ecx
40581c:	73 1d                	jae    0x40583b
40581e:	8b 45 f8             	mov    -0x8(%ebp),%eax
405821:	0f b7 14 48          	movzwl (%eax,%ecx,2),%edx
405825:	41                   	inc    %ecx
405826:	83 fa 7f             	cmp    $0x7f,%edx
405829:	76 0a                	jbe    0x405835
40582b:	81 fa ff 07 00 00    	cmp    $0x7ff,%edx
405831:	76 01                	jbe    0x405834
405833:	46                   	inc    %esi
405834:	46                   	inc    %esi
405835:	46                   	inc    %esi
405836:	3b 4d 08             	cmp    0x8(%ebp),%ecx
405839:	72 e3                	jb     0x40581e
40583b:	8d 56 01             	lea    0x1(%esi),%edx
40583e:	8b c2                	mov    %edx,%eax
405840:	5e                   	pop    %esi
405841:	5b                   	pop    %ebx
405842:	59                   	pop    %ecx
405843:	59                   	pop    %ecx
405844:	5d                   	pop    %ebp
405845:	c2 04 00             	ret    $0x4
405848:	55                   	push   %ebp
405849:	8b ec                	mov    %esp,%ebp
40584b:	83 c4 f0             	add    $0xfffffff0,%esp
40584e:	53                   	push   %ebx
40584f:	56                   	push   %esi
405850:	89 4d f4             	mov    %ecx,-0xc(%ebp)
405853:	89 55 f8             	mov    %edx,-0x8(%ebp)
405856:	89 45 fc             	mov    %eax,-0x4(%ebp)
405859:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
40585d:	75 0a                	jne    0x405869
40585f:	33 c0                	xor    %eax,%eax
405861:	89 45 f0             	mov    %eax,-0x10(%ebp)
405864:	e9 09 01 00 00       	jmp    0x405972
405869:	c7 45 f0 ff ff ff ff 	movl   $0xffffffff,-0x10(%ebp)
405870:	33 c0                	xor    %eax,%eax
405872:	33 f6                	xor    %esi,%esi
405874:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
405878:	0f 84 a9 00 00 00    	je     0x405927
40587e:	e9 82 00 00 00       	jmp    0x405905
405883:	8b 55 f4             	mov    -0xc(%ebp),%edx
405886:	33 c9                	xor    %ecx,%ecx
405888:	8a 0c 32             	mov    (%edx,%esi,1),%cl
40588b:	46                   	inc    %esi
40588c:	f6 c1 80             	test   $0x80,%cl
40588f:	74 6c                	je     0x4058fd
405891:	3b 75 08             	cmp    0x8(%ebp),%esi
405894:	0f 83 d8 00 00 00    	jae    0x405972
40589a:	83 e1 3f             	and    $0x3f,%ecx
40589d:	f6 c1 20             	test   $0x20,%cl
4058a0:	74 2e                	je     0x4058d0
4058a2:	8b 55 f4             	mov    -0xc(%ebp),%edx
4058a5:	8a 14 32             	mov    (%edx,%esi,1),%dl
4058a8:	46                   	inc    %esi
4058a9:	8b da                	mov    %edx,%ebx
4058ab:	80 e3 c0             	and    $0xc0,%bl
4058ae:	80 fb 80             	cmp    $0x80,%bl
4058b1:	0f 85 bb 00 00 00    	jne    0x405972
4058b7:	3b 75 08             	cmp    0x8(%ebp),%esi
4058ba:	0f 83 b2 00 00 00    	jae    0x405972
4058c0:	80 e2 3f             	and    $0x3f,%dl
4058c3:	81 e2 ff 00 00 00    	and    $0xff,%edx
4058c9:	c1 e1 06             	shl    $0x6,%ecx
4058cc:	0b d1                	or     %ecx,%edx
4058ce:	8b ca                	mov    %edx,%ecx
4058d0:	8b 55 f4             	mov    -0xc(%ebp),%edx
4058d3:	8a 14 32             	mov    (%edx,%esi,1),%dl
4058d6:	46                   	inc    %esi
4058d7:	8b da                	mov    %edx,%ebx
4058d9:	80 e3 c0             	and    $0xc0,%bl
4058dc:	80 fb 80             	cmp    $0x80,%bl
4058df:	0f 85 8d 00 00 00    	jne    0x405972
4058e5:	80 e2 3f             	and    $0x3f,%dl
4058e8:	81 e2 ff 00 00 00    	and    $0xff,%edx
4058ee:	c1 e1 06             	shl    $0x6,%ecx
4058f1:	66 0b d1             	or     %cx,%dx
4058f4:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4058f7:	66 89 14 41          	mov    %dx,(%ecx,%eax,2)
4058fb:	eb 07                	jmp    0x405904
4058fd:	8b 55 fc             	mov    -0x4(%ebp),%edx
405900:	66 89 0c 42          	mov    %cx,(%edx,%eax,2)
405904:	40                   	inc    %eax
405905:	3b 75 08             	cmp    0x8(%ebp),%esi
405908:	73 09                	jae    0x405913
40590a:	3b 45 f8             	cmp    -0x8(%ebp),%eax
40590d:	0f 82 70 ff ff ff    	jb     0x405883
405913:	3b 45 f8             	cmp    -0x8(%ebp),%eax
405916:	72 04                	jb     0x40591c
405918:	8b 45 f8             	mov    -0x8(%ebp),%eax
40591b:	48                   	dec    %eax
40591c:	8b 55 fc             	mov    -0x4(%ebp),%edx
40591f:	66 c7 04 42 00 00    	movw   $0x0,(%edx,%eax,2)
405925:	eb 47                	jmp    0x40596e
405927:	3b 75 08             	cmp    0x8(%ebp),%esi
40592a:	73 42                	jae    0x40596e
40592c:	8b 55 f4             	mov    -0xc(%ebp),%edx
40592f:	8a 14 32             	mov    (%edx,%esi,1),%dl
405932:	46                   	inc    %esi
405933:	f6 c2 80             	test   $0x80,%dl
405936:	74 30                	je     0x405968
405938:	3b 75 08             	cmp    0x8(%ebp),%esi
40593b:	73 35                	jae    0x405972
40593d:	80 e2 3f             	and    $0x3f,%dl
405940:	f6 c2 20             	test   $0x20,%dl
405943:	74 14                	je     0x405959
405945:	8b 55 f4             	mov    -0xc(%ebp),%edx
405948:	8a 14 32             	mov    (%edx,%esi,1),%dl
40594b:	46                   	inc    %esi
40594c:	80 e2 c0             	and    $0xc0,%dl
40594f:	80 fa 80             	cmp    $0x80,%dl
405952:	75 1e                	jne    0x405972
405954:	3b 75 08             	cmp    0x8(%ebp),%esi
405957:	73 19                	jae    0x405972
405959:	8b 55 f4             	mov    -0xc(%ebp),%edx
40595c:	8a 14 32             	mov    (%edx,%esi,1),%dl
40595f:	46                   	inc    %esi
405960:	80 e2 c0             	and    $0xc0,%dl
405963:	80 fa 80             	cmp    $0x80,%dl
405966:	75 0a                	jne    0x405972
405968:	40                   	inc    %eax
405969:	3b 75 08             	cmp    0x8(%ebp),%esi
40596c:	72 be                	jb     0x40592c
40596e:	40                   	inc    %eax
40596f:	89 45 f0             	mov    %eax,-0x10(%ebp)
405972:	8b 45 f0             	mov    -0x10(%ebp),%eax
405975:	5e                   	pop    %esi
405976:	5b                   	pop    %ebx
405977:	8b e5                	mov    %ebp,%esp
405979:	5d                   	pop    %ebp
40597a:	c2 04 00             	ret    $0x4
40597d:	8d 40 00             	lea    0x0(%eax),%eax
405980:	55                   	push   %ebp
405981:	8b ec                	mov    %esp,%ebp
405983:	6a 00                	push   $0x0
405985:	53                   	push   %ebx
405986:	56                   	push   %esi
405987:	8b f2                	mov    %edx,%esi
405989:	8b d8                	mov    %eax,%ebx
40598b:	33 c0                	xor    %eax,%eax
40598d:	55                   	push   %ebp
40598e:	68 1f 5a 40 00       	push   $0x405a1f
405993:	64 ff 30             	push   %fs:(%eax)
405996:	64 89 20             	mov    %esp,%fs:(%eax)
405999:	8b c6                	mov    %esi,%eax
40599b:	e8 1c e6 ff ff       	call   0x403fbc
4059a0:	8b c3                	mov    %ebx,%eax
4059a2:	33 d2                	xor    %edx,%edx
4059a4:	e8 6b ee ff ff       	call   0x404814
4059a9:	74 5e                	je     0x405a09
4059ab:	8b c3                	mov    %ebx,%eax
4059ad:	e8 56 ee ff ff       	call   0x404808
4059b2:	8d 14 40             	lea    (%eax,%eax,2),%edx
4059b5:	8d 45 fc             	lea    -0x4(%ebp),%eax
4059b8:	e8 4b ec ff ff       	call   0x404608
4059bd:	8b c3                	mov    %ebx,%eax
4059bf:	e8 44 ee ff ff       	call   0x404808
4059c4:	50                   	push   %eax
4059c5:	8b 45 fc             	mov    -0x4(%ebp),%eax
4059c8:	e8 af e8 ff ff       	call   0x40427c
4059cd:	40                   	inc    %eax
4059ce:	50                   	push   %eax
4059cf:	8b c3                	mov    %ebx,%eax
4059d1:	e8 22 ee ff ff       	call   0x4047f8
4059d6:	50                   	push   %eax
4059d7:	8b 45 fc             	mov    -0x4(%ebp),%eax
4059da:	e8 9d ea ff ff       	call   0x40447c
4059df:	59                   	pop    %ecx
4059e0:	5a                   	pop    %edx
4059e1:	e8 86 fd ff ff       	call   0x40576c
4059e6:	85 c0                	test   %eax,%eax
4059e8:	7e 0d                	jle    0x4059f7
4059ea:	8b d0                	mov    %eax,%edx
4059ec:	4a                   	dec    %edx
4059ed:	8d 45 fc             	lea    -0x4(%ebp),%eax
4059f0:	e8 13 ec ff ff       	call   0x404608
4059f5:	eb 08                	jmp    0x4059ff
4059f7:	8d 45 fc             	lea    -0x4(%ebp),%eax
4059fa:	e8 bd e5 ff ff       	call   0x403fbc
4059ff:	8b c6                	mov    %esi,%eax
405a01:	8b 55 fc             	mov    -0x4(%ebp),%edx
405a04:	e8 07 e6 ff ff       	call   0x404010
405a09:	33 c0                	xor    %eax,%eax
405a0b:	5a                   	pop    %edx
405a0c:	59                   	pop    %ecx
405a0d:	59                   	pop    %ecx
405a0e:	64 89 10             	mov    %edx,%fs:(%eax)
405a11:	68 26 5a 40 00       	push   $0x405a26
405a16:	8d 45 fc             	lea    -0x4(%ebp),%eax
405a19:	e8 9e e5 ff ff       	call   0x403fbc
405a1e:	c3                   	ret
405a1f:	e9 9c df ff ff       	jmp    0x4039c0
405a24:	eb f0                	jmp    0x405a16
405a26:	5e                   	pop    %esi
405a27:	5b                   	pop    %ebx
405a28:	59                   	pop    %ecx
405a29:	5d                   	pop    %ebp
405a2a:	c3                   	ret
405a2b:	90                   	nop
405a2c:	55                   	push   %ebp
405a2d:	8b ec                	mov    %esp,%ebp
405a2f:	6a 00                	push   $0x0
405a31:	53                   	push   %ebx
405a32:	56                   	push   %esi
405a33:	8b f2                	mov    %edx,%esi
405a35:	8b d8                	mov    %eax,%ebx
405a37:	33 c0                	xor    %eax,%eax
405a39:	55                   	push   %ebp
405a3a:	68 c3 5a 40 00       	push   $0x405ac3
405a3f:	64 ff 30             	push   %fs:(%eax)
405a42:	64 89 20             	mov    %esp,%fs:(%eax)
405a45:	8b c6                	mov    %esi,%eax
405a47:	e8 50 ec ff ff       	call   0x40469c
405a4c:	85 db                	test   %ebx,%ebx
405a4e:	74 5d                	je     0x405aad
405a50:	8b c3                	mov    %ebx,%eax
405a52:	e8 25 e8 ff ff       	call   0x40427c
405a57:	8b d0                	mov    %eax,%edx
405a59:	8d 45 fc             	lea    -0x4(%ebp),%eax
405a5c:	e8 83 ee ff ff       	call   0x4048e4
405a61:	8b c3                	mov    %ebx,%eax
405a63:	e8 14 e8 ff ff       	call   0x40427c
405a68:	50                   	push   %eax
405a69:	8b 45 fc             	mov    -0x4(%ebp),%eax
405a6c:	e8 97 ed ff ff       	call   0x404808
405a71:	40                   	inc    %eax
405a72:	50                   	push   %eax
405a73:	8b c3                	mov    %ebx,%eax
405a75:	e8 02 ea ff ff       	call   0x40447c
405a7a:	50                   	push   %eax
405a7b:	8b 45 fc             	mov    -0x4(%ebp),%eax
405a7e:	e8 75 ed ff ff       	call   0x4047f8
405a83:	59                   	pop    %ecx
405a84:	5a                   	pop    %edx
405a85:	e8 be fd ff ff       	call   0x405848
405a8a:	85 c0                	test   %eax,%eax
405a8c:	7e 0d                	jle    0x405a9b
405a8e:	8b d0                	mov    %eax,%edx
405a90:	4a                   	dec    %edx
405a91:	8d 45 fc             	lea    -0x4(%ebp),%eax
405a94:	e8 4b ee ff ff       	call   0x4048e4
405a99:	eb 08                	jmp    0x405aa3
405a9b:	8d 45 fc             	lea    -0x4(%ebp),%eax
405a9e:	e8 f9 eb ff ff       	call   0x40469c
405aa3:	8b c6                	mov    %esi,%eax
405aa5:	8b 55 fc             	mov    -0x4(%ebp),%edx
405aa8:	e8 2b ec ff ff       	call   0x4046d8
405aad:	33 c0                	xor    %eax,%eax
405aaf:	5a                   	pop    %edx
405ab0:	59                   	pop    %ecx
405ab1:	59                   	pop    %ecx
405ab2:	64 89 10             	mov    %edx,%fs:(%eax)
405ab5:	68 ca 5a 40 00       	push   $0x405aca
405aba:	8d 45 fc             	lea    -0x4(%ebp),%eax
405abd:	e8 da eb ff ff       	call   0x40469c
405ac2:	c3                   	ret
405ac3:	e9 f8 de ff ff       	jmp    0x4039c0
405ac8:	eb f0                	jmp    0x405aba
405aca:	5e                   	pop    %esi
405acb:	5b                   	pop    %ebx
405acc:	59                   	pop    %ecx
405acd:	5d                   	pop    %ebp
405ace:	c3                   	ret
405acf:	90                   	nop
405ad0:	55                   	push   %ebp
405ad1:	8b ec                	mov    %esp,%ebp
405ad3:	6a 00                	push   $0x0
405ad5:	53                   	push   %ebx
405ad6:	56                   	push   %esi
405ad7:	8b f2                	mov    %edx,%esi
405ad9:	8b d8                	mov    %eax,%ebx
405adb:	33 c0                	xor    %eax,%eax
405add:	55                   	push   %ebp
405ade:	68 13 5b 40 00       	push   $0x405b13
405ae3:	64 ff 30             	push   %fs:(%eax)
405ae6:	64 89 20             	mov    %esp,%fs:(%eax)
405ae9:	8d 45 fc             	lea    -0x4(%ebp),%eax
405aec:	8b d3                	mov    %ebx,%edx
405aee:	e8 f5 ec ff ff       	call   0x4047e8
405af3:	8b 45 fc             	mov    -0x4(%ebp),%eax
405af6:	8b d6                	mov    %esi,%edx
405af8:	e8 83 fe ff ff       	call   0x405980
405afd:	33 c0                	xor    %eax,%eax
405aff:	5a                   	pop    %edx
405b00:	59                   	pop    %ecx
405b01:	59                   	pop    %ecx
405b02:	64 89 10             	mov    %edx,%fs:(%eax)
405b05:	68 1a 5b 40 00       	push   $0x405b1a
405b0a:	8d 45 fc             	lea    -0x4(%ebp),%eax
405b0d:	e8 8a eb ff ff       	call   0x40469c
405b12:	c3                   	ret
405b13:	e9 a8 de ff ff       	jmp    0x4039c0
405b18:	eb f0                	jmp    0x405b0a
405b1a:	5e                   	pop    %esi
405b1b:	5b                   	pop    %ebx
405b1c:	59                   	pop    %ecx
405b1d:	5d                   	pop    %ebp
405b1e:	c3                   	ret
405b1f:	90                   	nop
405b20:	53                   	push   %ebx
405b21:	56                   	push   %esi
405b22:	81 c4 00 fc ff ff    	add    $0xfffffc00,%esp
405b28:	8b f2                	mov    %edx,%esi
405b2a:	8b d8                	mov    %eax,%ebx
405b2c:	85 db                	test   %ebx,%ebx
405b2e:	74 3d                	je     0x405b6d
405b30:	81 7b 04 00 00 01 00 	cmpl   $0x10000,0x4(%ebx)
405b37:	7d 2a                	jge    0x405b63
405b39:	68 00 04 00 00       	push   $0x400
405b3e:	8d 44 24 04          	lea    0x4(%esp),%eax
405b42:	50                   	push   %eax
405b43:	8b 43 04             	mov    0x4(%ebx),%eax
405b46:	50                   	push   %eax
405b47:	8b 03                	mov    (%ebx),%eax
405b49:	8b 00                	mov    (%eax),%eax
405b4b:	e8 08 f5 ff ff       	call   0x405058
405b50:	50                   	push   %eax
405b51:	e8 36 b7 ff ff       	call   0x40128c
405b56:	8b c8                	mov    %eax,%ecx
405b58:	8b d4                	mov    %esp,%edx
405b5a:	8b c6                	mov    %esi,%eax
405b5c:	e8 4b e5 ff ff       	call   0x4040ac
405b61:	eb 0a                	jmp    0x405b6d
405b63:	8b c6                	mov    %esi,%eax
405b65:	8b 53 04             	mov    0x4(%ebx),%edx
405b68:	e8 47 e6 ff ff       	call   0x4041b4
405b6d:	81 c4 00 04 00 00    	add    $0x400,%esp
405b73:	5e                   	pop    %esi
405b74:	5b                   	pop    %ebx
405b75:	c3                   	ret
405b76:	8b c0                	mov    %eax,%eax
405b78:	55                   	push   %ebp
405b79:	8b ec                	mov    %esp,%ebp