41ec43:	bb e3 00 00 00       	mov    $0xe3,%ebx
41ec48:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
41ec4b:	99                   	cltd
41ec4c:	2b c2                	sub    %edx,%eax
41ec4e:	8b f0                	mov    %eax,%esi
41ec50:	d1 fe                	sar    $1,%esi
41ec52:	6a 55                	push   $0x55
41ec54:	ff 34 f5 00 a5 42 00 	push   0x42a500(,%esi,8)
41ec5b:	ff 75 08             	push   0x8(%ebp)
41ec5e:	e8 c5 e0 fe ff       	call   0x40cd28
41ec63:	83 c4 0c             	add    $0xc,%esp
41ec66:	85 c0                	test   %eax,%eax
41ec68:	74 13                	je     0x41ec7d
41ec6a:	79 05                	jns    0x41ec71
41ec6c:	8d 5e ff             	lea    -0x1(%esi),%ebx
41ec6f:	eb 03                	jmp    0x41ec74
41ec71:	8d 7e 01             	lea    0x1(%esi),%edi
41ec74:	3b fb                	cmp    %ebx,%edi
41ec76:	7e d0                	jle    0x41ec48
41ec78:	83 c8 ff             	or     $0xffffffff,%eax
41ec7b:	eb 07                	jmp    0x41ec84
41ec7d:	8b 04 f5 04 a5 42 00 	mov    0x42a504(,%esi,8),%eax
41ec84:	5f                   	pop    %edi
41ec85:	5e                   	pop    %esi
41ec86:	5b                   	pop    %ebx
41ec87:	5d                   	pop    %ebp
41ec88:	c3                   	ret
41ec89:	8b ff                	mov    %edi,%edi
41ec8b:	55                   	push   %ebp
41ec8c:	8b ec                	mov    %esp,%ebp
41ec8e:	8b 4d 08             	mov    0x8(%ebp),%ecx
41ec91:	53                   	push   %ebx
41ec92:	56                   	push   %esi
41ec93:	57                   	push   %edi
41ec94:	85 c9                	test   %ecx,%ecx
41ec96:	0f 84 83 00 00 00    	je     0x41ed1f
41ec9c:	81 f9 00 04 00 00    	cmp    $0x400,%ecx
41eca2:	74 7b                	je     0x41ed1f
41eca4:	81 f9 00 08 00 00    	cmp    $0x800,%ecx
41ecaa:	74 73                	je     0x41ed1f
41ecac:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
41ecb0:	8b 75 10             	mov    0x10(%ebp),%esi
41ecb3:	75 04                	jne    0x41ecb9
41ecb5:	85 f6                	test   %esi,%esi
41ecb7:	7f 66                	jg     0x41ed1f
41ecb9:	85 f6                	test   %esi,%esi
41ecbb:	78 62                	js     0x41ed1f
41ecbd:	33 ff                	xor    %edi,%edi
41ecbf:	bb e3 00 00 00       	mov    $0xe3,%ebx
41ecc4:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
41ecc7:	99                   	cltd
41ecc8:	2b c2                	sub    %edx,%eax
41ecca:	8b d1                	mov    %ecx,%edx
41eccc:	d1 f8                	sar    $1,%eax
41ecce:	2b 14 c5 e0 93 42 00 	sub    0x4293e0(,%eax,8),%edx
41ecd5:	74 13                	je     0x41ecea
41ecd7:	85 d2                	test   %edx,%edx
41ecd9:	79 05                	jns    0x41ece0
41ecdb:	8d 58 ff             	lea    -0x1(%eax),%ebx
41ecde:	eb 03                	jmp    0x41ece3
41ece0:	8d 78 01             	lea    0x1(%eax),%edi
41ece3:	3b fb                	cmp    %ebx,%edi
41ece5:	7e dd                	jle    0x41ecc4
41ece7:	83 c8 ff             	or     $0xffffffff,%eax
41ecea:	85 c0                	test   %eax,%eax
41ecec:	78 31                	js     0x41ed1f
41ecee:	8b 1c c5 e4 93 42 00 	mov    0x4293e4(,%eax,8),%ebx
41ecf5:	6a 55                	push   $0x55
41ecf7:	53                   	push   %ebx
41ecf8:	e8 91 0b ff ff       	call   0x40f88e
41ecfd:	8b f8                	mov    %eax,%edi
41ecff:	59                   	pop    %ecx
41ed00:	59                   	pop    %ecx
41ed01:	85 f6                	test   %esi,%esi
41ed03:	7e 15                	jle    0x41ed1a
41ed05:	3b fe                	cmp    %esi,%edi
41ed07:	7d 16                	jge    0x41ed1f
41ed09:	53                   	push   %ebx
41ed0a:	56                   	push   %esi
41ed0b:	ff 75 0c             	push   0xc(%ebp)
41ed0e:	e8 4a 9d ff ff       	call   0x418a5d
41ed13:	83 c4 0c             	add    $0xc,%esp
41ed16:	85 c0                	test   %eax,%eax
41ed18:	75 0c                	jne    0x41ed26
41ed1a:	8d 47 01             	lea    0x1(%edi),%eax
41ed1d:	eb 02                	jmp    0x41ed21
41ed1f:	33 c0                	xor    %eax,%eax
41ed21:	5f                   	pop    %edi
41ed22:	5e                   	pop    %esi
41ed23:	5b                   	pop    %ebx
41ed24:	5d                   	pop    %ebp
41ed25:	c3                   	ret
41ed26:	33 c0                	xor    %eax,%eax
41ed28:	50                   	push   %eax
41ed29:	50                   	push   %eax
41ed2a:	50                   	push   %eax
41ed2b:	50                   	push   %eax
41ed2c:	50                   	push   %eax
41ed2d:	e8 7c e3 fe ff       	call   0x40d0ae
41ed32:	cc                   	int3
41ed33:	8b ff                	mov    %edi,%edi
41ed35:	55                   	push   %ebp
41ed36:	8b ec                	mov    %esp,%ebp
41ed38:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
41ed3c:	74 1d                	je     0x41ed5b
41ed3e:	ff 75 08             	push   0x8(%ebp)
41ed41:	e8 f3 fe ff ff       	call   0x41ec39
41ed46:	59                   	pop    %ecx
41ed47:	85 c0                	test   %eax,%eax
41ed49:	78 10                	js     0x41ed5b
41ed4b:	3d e4 00 00 00       	cmp    $0xe4,%eax
41ed50:	73 09                	jae    0x41ed5b
41ed52:	8b 04 c5 e0 93 42 00 	mov    0x4293e0(,%eax,8),%eax
41ed59:	5d                   	pop    %ebp
41ed5a:	c3                   	ret
41ed5b:	33 c0                	xor    %eax,%eax
41ed5d:	5d                   	pop    %ebp
41ed5e:	c3                   	ret
41ed5f:	8b ff                	mov    %edi,%edi
41ed61:	55                   	push   %ebp
41ed62:	8b ec                	mov    %esp,%ebp
41ed64:	8b 4d 08             	mov    0x8(%ebp),%ecx
41ed67:	80 39 00             	cmpb   $0x0,(%ecx)
41ed6a:	75 05                	jne    0x41ed71
41ed6c:	33 c0                	xor    %eax,%eax
41ed6e:	40                   	inc    %eax
41ed6f:	eb 16                	jmp    0x41ed87
41ed71:	80 79 01 00          	cmpb   $0x0,0x1(%ecx)
41ed75:	75 05                	jne    0x41ed7c
41ed77:	6a 02                	push   $0x2
41ed79:	58                   	pop    %eax
41ed7a:	eb 0b                	jmp    0x41ed87
41ed7c:	33 c0                	xor    %eax,%eax
41ed7e:	38 41 02             	cmp    %al,0x2(%ecx)
41ed81:	0f 95 c0             	setne  %al
41ed84:	83 c0 03             	add    $0x3,%eax
41ed87:	5d                   	pop    %ebp
41ed88:	c2 04 00             	ret    $0x4
41ed8b:	8b ff                	mov    %edi,%edi
41ed8d:	55                   	push   %ebp
41ed8e:	8b ec                	mov    %esp,%ebp
41ed90:	51                   	push   %ecx
41ed91:	ff 75 14             	push   0x14(%ebp)
41ed94:	8d 45 fc             	lea    -0x4(%ebp),%eax
41ed97:	ff 75 10             	push   0x10(%ebp)
41ed9a:	ff 75 0c             	push   0xc(%ebp)
41ed9d:	50                   	push   %eax
41ed9e:	e8 cb 2c 00 00       	call   0x421a6e
41eda3:	8b d0                	mov    %eax,%edx
41eda5:	83 c4 10             	add    $0x10,%esp
41eda8:	83 fa 04             	cmp    $0x4,%edx
41edab:	77 1a                	ja     0x41edc7
41edad:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41edb0:	81 f9 ff ff 00 00    	cmp    $0xffff,%ecx
41edb6:	76 05                	jbe    0x41edbd
41edb8:	b9 fd ff 00 00       	mov    $0xfffd,%ecx
41edbd:	8b 45 08             	mov    0x8(%ebp),%eax
41edc0:	85 c0                	test   %eax,%eax
41edc2:	74 03                	je     0x41edc7
41edc4:	66 89 08             	mov    %cx,(%eax)
41edc7:	8b c2                	mov    %edx,%eax
41edc9:	c9                   	leave
41edca:	c3                   	ret
41edcb:	8b ff                	mov    %edi,%edi
41edcd:	55                   	push   %ebp
41edce:	8b ec                	mov    %esp,%ebp
41edd0:	51                   	push   %ecx
41edd1:	51                   	push   %ecx
41edd2:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
41edd6:	53                   	push   %ebx
41edd7:	56                   	push   %esi
41edd8:	57                   	push   %edi
41edd9:	8b 7d 0c             	mov    0xc(%ebp),%edi
41eddc:	8b 3f                	mov    (%edi),%edi
41edde:	0f 84 9c 00 00 00    	je     0x41ee80
41ede4:	8b 5d 10             	mov    0x10(%ebp),%ebx
41ede7:	8b 75 08             	mov    0x8(%ebp),%esi
41edea:	85 db                	test   %ebx,%ebx
41edec:	74 68                	je     0x41ee56
41edee:	57                   	push   %edi
41edef:	8d 4d ff             	lea    -0x1(%ebp),%ecx
41edf2:	e8 68 ff ff ff       	call   0x41ed5f
41edf7:	ff 75 14             	push   0x14(%ebp)
41edfa:	50                   	push   %eax
41edfb:	8d 45 f8             	lea    -0x8(%ebp),%eax
41edfe:	57                   	push   %edi
41edff:	50                   	push   %eax
41ee00:	e8 69 2c 00 00       	call   0x421a6e
41ee05:	8b d0                	mov    %eax,%edx
41ee07:	83 c4 10             	add    $0x10,%esp
41ee0a:	83 fa ff             	cmp    $0xffffffff,%edx
41ee0d:	74 5c                	je     0x41ee6b
41ee0f:	85 d2                	test   %edx,%edx
41ee11:	74 4f                	je     0x41ee62
41ee13:	8b 4d f8             	mov    -0x8(%ebp),%ecx
41ee16:	81 f9 ff ff 00 00    	cmp    $0xffff,%ecx
41ee1c:	76 2b                	jbe    0x41ee49
41ee1e:	83 fb 01             	cmp    $0x1,%ebx
41ee21:	76 33                	jbe    0x41ee56
41ee23:	81 e9 00 00 01 00    	sub    $0x10000,%ecx
41ee29:	4b                   	dec    %ebx
41ee2a:	8b c1                	mov    %ecx,%eax
41ee2c:	89 4d f8             	mov    %ecx,-0x8(%ebp)
41ee2f:	c1 e8 0a             	shr    $0xa,%eax
41ee32:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
41ee38:	0d 00 d8 00 00       	or     $0xd800,%eax
41ee3d:	66 89 06             	mov    %ax,(%esi)
41ee40:	83 c6 02             	add    $0x2,%esi
41ee43:	81 c9 00 dc 00 00    	or     $0xdc00,%ecx
41ee49:	66 89 0e             	mov    %cx,(%esi)
41ee4c:	03 fa                	add    %edx,%edi
41ee4e:	83 c6 02             	add    $0x2,%esi
41ee51:	83 eb 01             	sub    $0x1,%ebx
41ee54:	75 98                	jne    0x41edee
41ee56:	8b 5d 0c             	mov    0xc(%ebp),%ebx
41ee59:	2b 75 08             	sub    0x8(%ebp),%esi
41ee5c:	d1 fe                	sar    $1,%esi
41ee5e:	89 3b                	mov    %edi,(%ebx)
41ee60:	eb 59                	jmp    0x41eebb
41ee62:	33 ff                	xor    %edi,%edi
41ee64:	33 c0                	xor    %eax,%eax
41ee66:	66 89 06             	mov    %ax,(%esi)
41ee69:	eb eb                	jmp    0x41ee56
41ee6b:	8b 45 0c             	mov    0xc(%ebp),%eax
41ee6e:	89 38                	mov    %edi,(%eax)
41ee70:	e8 86 ff fe ff       	call   0x40edfb
41ee75:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
41ee7b:	83 c8 ff             	or     $0xffffffff,%eax
41ee7e:	eb 3d                	jmp    0x41eebd
41ee80:	33 db                	xor    %ebx,%ebx
41ee82:	eb 0d                	jmp    0x41ee91
41ee84:	85 f6                	test   %esi,%esi
41ee86:	74 3a                	je     0x41eec2
41ee88:	83 fe 04             	cmp    $0x4,%esi
41ee8b:	75 01                	jne    0x41ee8e
41ee8d:	43                   	inc    %ebx
41ee8e:	03 fe                	add    %esi,%edi
41ee90:	43                   	inc    %ebx
41ee91:	57                   	push   %edi
41ee92:	8d 4d ff             	lea    -0x1(%ebp),%ecx
41ee95:	e8 c5 fe ff ff       	call   0x41ed5f
41ee9a:	ff 75 14             	push   0x14(%ebp)
41ee9d:	50                   	push   %eax
41ee9e:	57                   	push   %edi
41ee9f:	6a 00                	push   $0x0
41eea1:	e8 c8 2b 00 00       	call   0x421a6e
41eea6:	8b f0                	mov    %eax,%esi
41eea8:	83 c4 10             	add    $0x10,%esp
41eeab:	83 fe ff             	cmp    $0xffffffff,%esi
41eeae:	75 d4                	jne    0x41ee84
41eeb0:	e8 46 ff fe ff       	call   0x40edfb
41eeb5:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
41eebb:	8b c6                	mov    %esi,%eax
41eebd:	5f                   	pop    %edi
41eebe:	5e                   	pop    %esi
41eebf:	5b                   	pop    %ebx
41eec0:	c9                   	leave
41eec1:	c3                   	ret
41eec2:	8b c3                	mov    %ebx,%eax
41eec4:	eb f7                	jmp    0x41eebd
41eec6:	8b ff                	mov    %edi,%edi
41eec8:	55                   	push   %ebp
41eec9:	8b ec                	mov    %esp,%ebp
41eecb:	8b 55 08             	mov    0x8(%ebp),%edx
41eece:	85 d2                	test   %edx,%edx
41eed0:	75 0f                	jne    0x41eee1
41eed2:	33 c9                	xor    %ecx,%ecx
41eed4:	8b 45 10             	mov    0x10(%ebp),%eax
41eed7:	89 08                	mov    %ecx,(%eax)
41eed9:	89 48 04             	mov    %ecx,0x4(%eax)
41eedc:	33 c0                	xor    %eax,%eax
41eede:	40                   	inc    %eax
41eedf:	5d                   	pop    %ebp
41eee0:	c3                   	ret
41eee1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41eee4:	85 c9                	test   %ecx,%ecx
41eee6:	75 04                	jne    0x41eeec
41eee8:	88 0a                	mov    %cl,(%edx)
41eeea:	eb e8                	jmp    0x41eed4
41eeec:	f7 c1 80 ff ff ff    	test   $0xffffff80,%ecx
41eef2:	75 04                	jne    0x41eef8
41eef4:	88 0a                	mov    %cl,(%edx)
41eef6:	eb e4                	jmp    0x41eedc
41eef8:	53                   	push   %ebx
41eef9:	56                   	push   %esi
41eefa:	f7 c1 00 f8 ff ff    	test   $0xfffff800,%ecx
41ef00:	75 07                	jne    0x41ef09
41ef02:	33 f6                	xor    %esi,%esi
41ef04:	b3 c0                	mov    $0xc0,%bl
41ef06:	46                   	inc    %esi
41ef07:	eb 33                	jmp    0x41ef3c
41ef09:	f7 c1 00 00 ff ff    	test   $0xffff0000,%ecx
41ef0f:	75 16                	jne    0x41ef27
41ef11:	81 f9 00 d8 00 00    	cmp    $0xd800,%ecx
41ef17:	72 08                	jb     0x41ef21
41ef19:	81 f9 ff df 00 00    	cmp    $0xdfff,%ecx
41ef1f:	76 43                	jbe    0x41ef64
41ef21:	6a 02                	push   $0x2
41ef23:	b3 e0                	mov    $0xe0,%bl
41ef25:	eb 14                	jmp    0x41ef3b
41ef27:	f7 c1 00 00 e0 ff    	test   $0xffe00000,%ecx
41ef2d:	75 35                	jne    0x41ef64
41ef2f:	81 f9 ff ff 10 00    	cmp    $0x10ffff,%ecx
41ef35:	77 2d                	ja     0x41ef64
41ef37:	6a 03                	push   $0x3
41ef39:	b3 f0                	mov    $0xf0,%bl
41ef3b:	5e                   	pop    %esi
41ef3c:	57                   	push   %edi
41ef3d:	8b fe                	mov    %esi,%edi
41ef3f:	8a c1                	mov    %cl,%al
41ef41:	c1 e9 06             	shr    $0x6,%ecx
41ef44:	24 3f                	and    $0x3f,%al
41ef46:	0c 80                	or     $0x80,%al
41ef48:	88 04 17             	mov    %al,(%edi,%edx,1)
41ef4b:	83 ef 01             	sub    $0x1,%edi
41ef4e:	75 ef                	jne    0x41ef3f
41ef50:	8b 45 10             	mov    0x10(%ebp),%eax
41ef53:	0a cb                	or     %bl,%cl
41ef55:	88 0a                	mov    %cl,(%edx)
41ef57:	33 c9                	xor    %ecx,%ecx
41ef59:	5f                   	pop    %edi
41ef5a:	89 08                	mov    %ecx,(%eax)
41ef5c:	89 48 04             	mov    %ecx,0x4(%eax)
41ef5f:	8d 46 01             	lea    0x1(%esi),%eax
41ef62:	eb 09                	jmp    0x41ef6d
41ef64:	ff 75 10             	push   0x10(%ebp)
41ef67:	e8 05 00 00 00       	call   0x41ef71
41ef6c:	59                   	pop    %ecx
41ef6d:	5e                   	pop    %esi
41ef6e:	5b                   	pop    %ebx
41ef6f:	5d                   	pop    %ebp
41ef70:	c3                   	ret
41ef71:	8b ff                	mov    %edi,%edi
41ef73:	55                   	push   %ebp
41ef74:	8b ec                	mov    %esp,%ebp
41ef76:	8b 45 08             	mov    0x8(%ebp),%eax
41ef79:	83 20 00             	andl   $0x0,(%eax)
41ef7c:	83 60 04 00          	andl   $0x0,0x4(%eax)
41ef80:	e8 76 fe fe ff       	call   0x40edfb
41ef85:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
41ef8b:	83 c8 ff             	or     $0xffffffff,%eax
41ef8e:	5d                   	pop    %ebp
41ef8f:	c3                   	ret
41ef90:	8b ff                	mov    %edi,%edi
41ef92:	55                   	push   %ebp
41ef93:	8b ec                	mov    %esp,%ebp
41ef95:	5d                   	pop    %ebp
41ef96:	e9 2b ff ff ff       	jmp    0x41eec6
41ef9b:	8b ff                	mov    %edi,%edi
41ef9d:	55                   	push   %ebp