405cbd:	64 89 20             	mov    %esp,%fs:(%eax)
405cc0:	8b 5d f8             	mov    -0x8(%ebp),%ebx
405cc3:	8b 45 fc             	mov    -0x4(%ebp),%eax
405cc6:	ff 53 04             	call   *0x4(%ebx)
405cc9:	33 c0                	xor    %eax,%eax
405ccb:	5a                   	pop    %edx
405ccc:	59                   	pop    %ecx
405ccd:	59                   	pop    %ecx
405cce:	64 89 10             	mov    %edx,%fs:(%eax)
405cd1:	eb 0a                	jmp    0x405cdd
405cd3:	e9 dc db ff ff       	jmp    0x4038b4
405cd8:	e8 3f df ff ff       	call   0x403c1c
405cdd:	8b 45 f8             	mov    -0x8(%ebp),%eax
405ce0:	8b 00                	mov    (%eax),%eax
405ce2:	89 45 f8             	mov    %eax,-0x8(%ebp)
405ce5:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
405ce9:	75 c7                	jne    0x405cb2
405ceb:	5f                   	pop    %edi
405cec:	5e                   	pop    %esi
405ced:	5b                   	pop    %ebx
405cee:	59                   	pop    %ecx
405cef:	59                   	pop    %ecx
405cf0:	5d                   	pop    %ebp
405cf1:	c3                   	ret
405cf2:	8b c0                	mov    %eax,%eax
405cf4:	8b 15 34 d0 48 00    	mov    0x48d034,%edx
405cfa:	89 10                	mov    %edx,(%eax)
405cfc:	a3 34 d0 48 00       	mov    %eax,0x48d034
405d01:	c3                   	ret
405d02:	8b c0                	mov    %eax,%eax
405d04:	55                   	push   %ebp
405d05:	8b ec                	mov    %esp,%ebp
405d07:	51                   	push   %ecx
405d08:	89 45 fc             	mov    %eax,-0x4(%ebp)
405d0b:	33 d2                	xor    %edx,%edx
405d0d:	55                   	push   %ebp
405d0e:	68 68 5d 40 00       	push   $0x405d68
405d13:	64 ff 32             	push   %fs:(%edx)
405d16:	64 89 22             	mov    %esp,%fs:(%edx)
405d19:	8b 45 fc             	mov    -0x4(%ebp),%eax
405d1c:	8b 40 04             	mov    0x4(%eax),%eax
405d1f:	e8 74 ff ff ff       	call   0x405c98
405d24:	33 c0                	xor    %eax,%eax
405d26:	5a                   	pop    %edx
405d27:	59                   	pop    %ecx
405d28:	59                   	pop    %ecx
405d29:	64 89 10             	mov    %edx,%fs:(%eax)
405d2c:	68 6f 5d 40 00       	push   $0x405d6f
405d31:	8b 45 fc             	mov    -0x4(%ebp),%eax
405d34:	3b 05 34 d0 48 00    	cmp    0x48d034,%eax
405d3a:	75 0c                	jne    0x405d48
405d3c:	8b 45 fc             	mov    -0x4(%ebp),%eax
405d3f:	8b 00                	mov    (%eax),%eax
405d41:	a3 34 d0 48 00       	mov    %eax,0x48d034
405d46:	eb 1f                	jmp    0x405d67
405d48:	a1 34 d0 48 00       	mov    0x48d034,%eax
405d4d:	85 c0                	test   %eax,%eax
405d4f:	74 16                	je     0x405d67
405d51:	8b 10                	mov    (%eax),%edx
405d53:	3b 55 fc             	cmp    -0x4(%ebp),%edx
405d56:	75 09                	jne    0x405d61
405d58:	8b 55 fc             	mov    -0x4(%ebp),%edx
405d5b:	8b 12                	mov    (%edx),%edx
405d5d:	89 10                	mov    %edx,(%eax)
405d5f:	eb 06                	jmp    0x405d67
405d61:	8b 00                	mov    (%eax),%eax
405d63:	85 c0                	test   %eax,%eax
405d65:	75 ea                	jne    0x405d51
405d67:	c3                   	ret
405d68:	e9 fb dd ff ff       	jmp    0x403b68
405d6d:	eb c2                	jmp    0x405d31
405d6f:	59                   	pop    %ecx
405d70:	5d                   	pop    %ebp
405d71:	c3                   	ret
405d72:	8b c0                	mov    %eax,%eax
405d74:	8b 10                	mov    (%eax),%edx
405d76:	85 d2                	test   %edx,%edx
405d78:	74 0e                	je     0x405d88
405d7a:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
405d80:	50                   	push   %eax
405d81:	52                   	push   %edx
405d82:	8b 02                	mov    (%edx),%eax
405d84:	ff 50 08             	call   *0x8(%eax)
405d87:	58                   	pop    %eax
405d88:	c3                   	ret
405d89:	8d 40 00             	lea    0x0(%eax),%eax
405d8c:	85 d2                	test   %edx,%edx
405d8e:	74 19                	je     0x405da9
405d90:	52                   	push   %edx
405d91:	50                   	push   %eax
405d92:	8b 02                	mov    (%edx),%eax
405d94:	52                   	push   %edx
405d95:	ff 50 04             	call   *0x4(%eax)
405d98:	58                   	pop    %eax
405d99:	8b 08                	mov    (%eax),%ecx
405d9b:	8f 00                	pop    (%eax)
405d9d:	85 c9                	test   %ecx,%ecx
405d9f:	75 01                	jne    0x405da2
405da1:	c3                   	ret
405da2:	8b 01                	mov    (%ecx),%eax
405da4:	51                   	push   %ecx
405da5:	ff 50 08             	call   *0x8(%eax)
405da8:	c3                   	ret
405da9:	8b 08                	mov    (%eax),%ecx
405dab:	85 c9                	test   %ecx,%ecx
405dad:	89 10                	mov    %edx,(%eax)
405daf:	74 06                	je     0x405db7
405db1:	8b 01                	mov    (%ecx),%eax
405db3:	51                   	push   %ecx
405db4:	ff 50 08             	call   *0x8(%eax)
405db7:	c3                   	ret
405db8:	85 d2                	test   %edx,%edx
405dba:	0f 84 b4 ff ff ff    	je     0x405d74
405dc0:	57                   	push   %edi
405dc1:	89 c7                	mov    %eax,%edi
405dc3:	6a 00                	push   $0x0
405dc5:	54                   	push   %esp
405dc6:	51                   	push   %ecx
405dc7:	52                   	push   %edx
405dc8:	8b 02                	mov    (%edx),%eax
405dca:	ff 10                	call   *(%eax)
405dcc:	85 c0                	test   %eax,%eax
405dce:	74 07                	je     0x405dd7
405dd0:	b0 17                	mov    $0x17,%al
405dd2:	e9 fd ca ff ff       	jmp    0x4028d4
405dd7:	8b 07                	mov    (%edi),%eax
405dd9:	85 c0                	test   %eax,%eax
405ddb:	74 06                	je     0x405de3
405ddd:	50                   	push   %eax
405dde:	8b 00                	mov    (%eax),%eax
405de0:	ff 50 08             	call   *0x8(%eax)
405de3:	58                   	pop    %eax
405de4:	89 07                	mov    %eax,(%edi)
405de6:	5f                   	pop    %edi
405de7:	c3                   	ret
405de8:	85 c0                	test   %eax,%eax
405dea:	74 06                	je     0x405df2
405dec:	50                   	push   %eax
405ded:	8b 00                	mov    (%eax),%eax
405def:	ff 50 04             	call   *0x4(%eax)
405df2:	c3                   	ret
405df3:	90                   	nop
405df4:	83 c0 04             	add    $0x4,%eax
405df7:	50                   	push   %eax
405df8:	e8 b3 b5 ff ff       	call   0x4013b0
405dfd:	c3                   	ret
405dfe:	8b c0                	mov    %eax,%eax
405e00:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
405e04:	74 07                	je     0x405e0d
405e06:	b0 02                	mov    $0x2,%al
405e08:	e8 c7 ca ff ff       	call   0x4028d4
405e0d:	c3                   	ret
405e0e:	8b c0                	mov    %eax,%eax
405e10:	e8 6f d5 ff ff       	call   0x403384
405e15:	c7 40 04 01 00 00 00 	movl   $0x1,0x4(%eax)
405e1c:	c3                   	ret
405e1d:	8d 40 00             	lea    0x0(%eax),%eax
405e20:	55                   	push   %ebp
405e21:	8b ec                	mov    %esp,%ebp
405e23:	53                   	push   %ebx
405e24:	8b 5d 08             	mov    0x8(%ebp),%ebx
405e27:	8b 4d 10             	mov    0x10(%ebp),%ecx
405e2a:	8b 55 0c             	mov    0xc(%ebp),%edx
405e2d:	8b c3                	mov    %ebx,%eax
405e2f:	e8 6c d6 ff ff       	call   0x4034a0
405e34:	84 c0                	test   %al,%al
405e36:	74 04                	je     0x405e3c
405e38:	33 c0                	xor    %eax,%eax
405e3a:	eb 05                	jmp    0x405e41
405e3c:	b8 02 40 00 80       	mov    $0x80004002,%eax
405e41:	5b                   	pop    %ebx
405e42:	5d                   	pop    %ebp
405e43:	c2 0c 00             	ret    $0xc
405e46:	8b c0                	mov    %eax,%eax
405e48:	55                   	push   %ebp
405e49:	8b ec                	mov    %esp,%ebp
405e4b:	8b 45 08             	mov    0x8(%ebp),%eax
405e4e:	83 c0 04             	add    $0x4,%eax
405e51:	50                   	push   %eax
405e52:	e8 51 b5 ff ff       	call   0x4013a8
405e57:	5d                   	pop    %ebp
405e58:	c2 04 00             	ret    $0x4
405e5b:	90                   	nop
405e5c:	55                   	push   %ebp
405e5d:	8b ec                	mov    %esp,%ebp
405e5f:	53                   	push   %ebx
405e60:	56                   	push   %esi
405e61:	8b 5d 08             	mov    0x8(%ebp),%ebx
405e64:	8d 43 04             	lea    0x4(%ebx),%eax
405e67:	50                   	push   %eax
405e68:	e8 43 b5 ff ff       	call   0x4013b0
405e6d:	8b f0                	mov    %eax,%esi
405e6f:	85 f6                	test   %esi,%esi
405e71:	75 09                	jne    0x405e7c
405e73:	b2 01                	mov    $0x1,%dl
405e75:	8b c3                	mov    %ebx,%eax
405e77:	8b 08                	mov    (%eax),%ecx
405e79:	ff 51 fc             	call   *-0x4(%ecx)
405e7c:	8b c6                	mov    %esi,%eax
405e7e:	5e                   	pop    %esi
405e7f:	5b                   	pop    %ebx
405e80:	5d                   	pop    %ebp
405e81:	c2 04 00             	ret    $0x4
405e84:	55                   	push   %ebp
405e85:	8b ec                	mov    %esp,%ebp
405e87:	83 c4 f8             	add    $0xfffffff8,%esp
405e8a:	53                   	push   %ebx
405e8b:	56                   	push   %esi
405e8c:	89 4d f8             	mov    %ecx,-0x8(%ebp)
405e8f:	89 55 fc             	mov    %edx,-0x4(%ebp)
405e92:	33 d2                	xor    %edx,%edx
405e94:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
405e98:	0f 84 b8 00 00 00    	je     0x405f56
405e9e:	33 f6                	xor    %esi,%esi
405ea0:	33 c9                	xor    %ecx,%ecx
405ea2:	85 c0                	test   %eax,%eax
405ea4:	0f 84 87 00 00 00    	je     0x405f31
405eaa:	eb 6c                	jmp    0x405f18
405eac:	8b 55 f8             	mov    -0x8(%ebp),%edx
405eaf:	0f b7 14 4a          	movzwl (%edx,%ecx,2),%edx
405eb3:	41                   	inc    %ecx
405eb4:	83 fa 7f             	cmp    $0x7f,%edx
405eb7:	77 06                	ja     0x405ebf
405eb9:	88 14 30             	mov    %dl,(%eax,%esi,1)
405ebc:	46                   	inc    %esi
405ebd:	eb 59                	jmp    0x405f18
405ebf:	81 fa ff 07 00 00    	cmp    $0x7ff,%edx
405ec5:	76 31                	jbe    0x405ef8
405ec7:	8d 5e 03             	lea    0x3(%esi),%ebx
405eca:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
405ecd:	77 53                	ja     0x405f22
405ecf:	8b da                	mov    %edx,%ebx
405ed1:	c1 eb 0c             	shr    $0xc,%ebx
405ed4:	80 cb e0             	or     $0xe0,%bl
405ed7:	88 1c 30             	mov    %bl,(%eax,%esi,1)
405eda:	8b da                	mov    %edx,%ebx
405edc:	c1 eb 06             	shr    $0x6,%ebx
405edf:	80 e3 3f             	and    $0x3f,%bl
405ee2:	80 cb 80             	or     $0x80,%bl
405ee5:	88 5c 30 01          	mov    %bl,0x1(%eax,%esi,1)
405ee9:	80 e2 3f             	and    $0x3f,%dl
405eec:	80 ca 80             	or     $0x80,%dl
405eef:	88 54 30 02          	mov    %dl,0x2(%eax,%esi,1)
405ef3:	83 c6 03             	add    $0x3,%esi
405ef6:	eb 20                	jmp    0x405f18
405ef8:	8d 5e 02             	lea    0x2(%esi),%ebx
405efb:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
405efe:	77 22                	ja     0x405f22
405f00:	8b da                	mov    %edx,%ebx
405f02:	c1 eb 06             	shr    $0x6,%ebx
405f05:	80 cb c0             	or     $0xc0,%bl
405f08:	88 1c 30             	mov    %bl,(%eax,%esi,1)
405f0b:	80 e2 3f             	and    $0x3f,%dl
405f0e:	80 ca 80             	or     $0x80,%dl
405f11:	88 54 30 01          	mov    %dl,0x1(%eax,%esi,1)
405f15:	83 c6 02             	add    $0x2,%esi
405f18:	3b 4d 08             	cmp    0x8(%ebp),%ecx
405f1b:	73 05                	jae    0x405f22
405f1d:	3b 75 fc             	cmp    -0x4(%ebp),%esi
405f20:	72 8a                	jb     0x405eac
405f22:	3b 75 fc             	cmp    -0x4(%ebp),%esi
405f25:	72 04                	jb     0x405f2b
405f27:	8b 75 fc             	mov    -0x4(%ebp),%esi
405f2a:	4e                   	dec    %esi
405f2b:	c6 04 30 00          	movb   $0x0,(%eax,%esi,1)
405f2f:	eb 22                	jmp    0x405f53
405f31:	3b 4d 08             	cmp    0x8(%ebp),%ecx
405f34:	73 1d                	jae    0x405f53
405f36:	8b 45 f8             	mov    -0x8(%ebp),%eax
405f39:	0f b7 14 48          	movzwl (%eax,%ecx,2),%edx
405f3d:	41                   	inc    %ecx
405f3e:	83 fa 7f             	cmp    $0x7f,%edx
405f41:	76 0a                	jbe    0x405f4d
405f43:	81 fa ff 07 00 00    	cmp    $0x7ff,%edx
405f49:	76 01                	jbe    0x405f4c
405f4b:	46                   	inc    %esi
405f4c:	46                   	inc    %esi
405f4d:	46                   	inc    %esi
405f4e:	3b 4d 08             	cmp    0x8(%ebp),%ecx
405f51:	72 e3                	jb     0x405f36
405f53:	8d 56 01             	lea    0x1(%esi),%edx
405f56:	8b c2                	mov    %edx,%eax
405f58:	5e                   	pop    %esi
405f59:	5b                   	pop    %ebx
405f5a:	59                   	pop    %ecx
405f5b:	59                   	pop    %ecx
405f5c:	5d                   	pop    %ebp
405f5d:	c2 04 00             	ret    $0x4
405f60:	55                   	push   %ebp
405f61:	8b ec                	mov    %esp,%ebp
405f63:	83 c4 f0             	add    $0xfffffff0,%esp
405f66:	53                   	push   %ebx
405f67:	56                   	push   %esi
405f68:	89 4d f4             	mov    %ecx,-0xc(%ebp)
405f6b:	89 55 f8             	mov    %edx,-0x8(%ebp)
405f6e:	89 45 fc             	mov    %eax,-0x4(%ebp)
405f71:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
405f75:	75 0a                	jne    0x405f81
405f77:	33 c0                	xor    %eax,%eax
405f79:	89 45 f0             	mov    %eax,-0x10(%ebp)
405f7c:	e9 09 01 00 00       	jmp    0x40608a
405f81:	c7 45 f0 ff ff ff ff 	movl   $0xffffffff,-0x10(%ebp)
405f88:	33 c0                	xor    %eax,%eax
405f8a:	33 f6                	xor    %esi,%esi
405f8c:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
405f90:	0f 84 a9 00 00 00    	je     0x40603f
405f96:	e9 82 00 00 00       	jmp    0x40601d
405f9b:	8b 55 f4             	mov    -0xc(%ebp),%edx
405f9e:	33 c9                	xor    %ecx,%ecx
405fa0:	8a 0c 32             	mov    (%edx,%esi,1),%cl
405fa3:	46                   	inc    %esi
405fa4:	f6 c1 80             	test   $0x80,%cl
405fa7:	74 6c                	je     0x406015
405fa9:	3b 75 08             	cmp    0x8(%ebp),%esi
405fac:	0f 83 d8 00 00 00    	jae    0x40608a
405fb2:	83 e1 3f             	and    $0x3f,%ecx
405fb5:	f6 c1 20             	test   $0x20,%cl
405fb8:	74 2e                	je     0x405fe8
405fba:	8b 55 f4             	mov    -0xc(%ebp),%edx
405fbd:	8a 14 32             	mov    (%edx,%esi,1),%dl
405fc0:	46                   	inc    %esi
405fc1:	8b da                	mov    %edx,%ebx
405fc3:	80 e3 c0             	and    $0xc0,%bl
405fc6:	80 fb 80             	cmp    $0x80,%bl
405fc9:	0f 85 bb 00 00 00    	jne    0x40608a
405fcf:	3b 75 08             	cmp    0x8(%ebp),%esi
405fd2:	0f 83 b2 00 00 00    	jae    0x40608a
405fd8:	80 e2 3f             	and    $0x3f,%dl
405fdb:	81 e2 ff 00 00 00    	and    $0xff,%edx
405fe1:	c1 e1 06             	shl    $0x6,%ecx
405fe4:	0b d1                	or     %ecx,%edx
405fe6:	8b ca                	mov    %edx,%ecx
405fe8:	8b 55 f4             	mov    -0xc(%ebp),%edx
405feb:	8a 14 32             	mov    (%edx,%esi,1),%dl
405fee:	46                   	inc    %esi
405fef:	8b da                	mov    %edx,%ebx
405ff1:	80 e3 c0             	and    $0xc0,%bl
405ff4:	80 fb 80             	cmp    $0x80,%bl
405ff7:	0f 85 8d 00 00 00    	jne    0x40608a
405ffd:	80 e2 3f             	and    $0x3f,%dl
406000:	81 e2 ff 00 00 00    	and    $0xff,%edx
406006:	c1 e1 06             	shl    $0x6,%ecx
406009:	66 0b d1             	or     %cx,%dx
40600c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40600f:	66 89 14 41          	mov    %dx,(%ecx,%eax,2)
406013:	eb 07                	jmp    0x40601c
406015:	8b 55 fc             	mov    -0x4(%ebp),%edx
406018:	66 89 0c 42          	mov    %cx,(%edx,%eax,2)
40601c:	40                   	inc    %eax
40601d:	3b 75 08             	cmp    0x8(%ebp),%esi