40aa17:	0f 84 fc 0a 08 00    	je     0x48b519
40aa1d:	85 d2                	test   %edx,%edx
40aa1f:	0f 84 19 0b 08 00    	je     0x48b53e
40aa25:	5f                   	pop    %edi
40aa26:	5e                   	pop    %esi
40aa27:	8b c2                	mov    %edx,%eax
40aa29:	5b                   	pop    %ebx
40aa2a:	8b e5                	mov    %ebp,%esp
40aa2c:	5d                   	pop    %ebp
40aa2d:	c3                   	ret
40aa2e:	8d 46 ab             	lea    -0x55(%esi),%eax
40aa31:	83 c7 02             	add    $0x2,%edi
40aa34:	a8 01                	test   $0x1,%al
40aa36:	0f 84 ec 02 00 00    	je     0x40ad28
40aa3c:	ba 01 00 00 00       	mov    $0x1,%edx
40aa41:	0f be 88 7c e4 49 00 	movsbl 0x49e47c(%eax),%ecx
40aa48:	0f be 80 20 e5 49 00 	movsbl 0x49e520(%eax),%eax
40aa4f:	89 55 c8             	mov    %edx,-0x38(%ebp)
40aa52:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40aa55:	89 45 dc             	mov    %eax,-0x24(%ebp)
40aa58:	85 c0                	test   %eax,%eax
40aa5a:	75 07                	jne    0x40aa63
40aa5c:	c7 45 dc ff ff ff 7f 	movl   $0x7fffffff,-0x24(%ebp)
40aa63:	0f b7 07             	movzwl (%edi),%eax
40aa66:	83 c7 02             	add    $0x2,%edi
40aa69:	89 45 d8             	mov    %eax,-0x28(%ebp)
40aa6c:	89 7d cc             	mov    %edi,-0x34(%ebp)
40aa6f:	83 f8 10             	cmp    $0x10,%eax
40aa72:	0f 84 96 ba 07 00    	je     0x48650e
40aa78:	83 f8 0f             	cmp    $0xf,%eax
40aa7b:	0f 84 84 ba 07 00    	je     0x486505
40aa81:	83 c8 ff             	or     $0xffffffff,%eax
40aa84:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40aa87:	85 c9                	test   %ecx,%ecx
40aa89:	0f 8f 9b ba 07 00    	jg     0x48652a
40aa8f:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40aa92:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40aa95:	8b 75 dc             	mov    -0x24(%ebp),%esi
40aa98:	39 75 f0             	cmp    %esi,-0x10(%ebp)
40aa9b:	8b 75 d0             	mov    -0x30(%ebp),%esi
40aa9e:	0f 84 bc f8 ff ff    	je     0x40a360
40aaa4:	85 d2                	test   %edx,%edx
40aaa6:	8b 55 d4             	mov    -0x2c(%ebp),%edx
40aaa9:	0f 84 b7 d2 07 00    	je     0x487d66
40aaaf:	85 d2                	test   %edx,%edx
40aab1:	0f 89 29 f8 07 00    	jns    0x48a2e0
40aab7:	83 7d d8 16          	cmpl   $0x16,-0x28(%ebp)
40aabb:	8b d7                	mov    %edi,%edx
40aabd:	0f 84 93 01 08 00    	je     0x48ac56
40aac3:	85 c0                	test   %eax,%eax
40aac5:	8b 45 18             	mov    0x18(%ebp),%eax
40aac8:	0f 84 90 06 08 00    	je     0x48b15e
40aace:	40                   	inc    %eax
40aacf:	50                   	push   %eax
40aad0:	ff 75 14             	push   0x14(%ebp)
40aad3:	53                   	push   %ebx
40aad4:	ff 75 0c             	push   0xc(%ebp)
40aad7:	ff 75 08             	push   0x8(%ebp)
40aada:	e8 21 f8 ff ff       	call   0x40a300
40aadf:	83 c4 14             	add    $0x14,%esp
40aae2:	85 c0                	test   %eax,%eax
40aae4:	0f 85 dd f9 ff ff    	jne    0x40a4c7
40aaea:	8b 75 f8             	mov    -0x8(%ebp),%esi
40aaed:	8d 49 00             	lea    0x0(%ecx),%ecx
40aaf0:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40aaf3:	3b 4d dc             	cmp    -0x24(%ebp),%ecx
40aaf6:	0f 8d 78 fa ff ff    	jge    0x40a574
40aafc:	8b 53 7c             	mov    0x7c(%ebx),%edx
40aaff:	3b f2                	cmp    %edx,%esi
40ab01:	0f 83 ab f3 07 00    	jae    0x489eb2
40ab07:	83 7d d8 0c          	cmpl   $0xc,-0x28(%ebp)
40ab0b:	75 2a                	jne    0x40ab37
40ab0d:	83 7b 18 00          	cmpl   $0x0,0x18(%ebx)
40ab11:	0f 84 f8 02 08 00    	je     0x48ae0f
40ab17:	ff 75 e4             	push   -0x1c(%ebp)
40ab1a:	8d 43 1c             	lea    0x1c(%ebx),%eax
40ab1d:	50                   	push   %eax
40ab1e:	52                   	push   %edx
40ab1f:	8b 53 18             	mov    0x18(%ebx),%edx
40ab22:	8b ce                	mov    %esi,%ecx
40ab24:	e8 d5 e4 ff ff       	call   0x408ffe
40ab29:	83 c4 0c             	add    $0xc,%esp
40ab2c:	85 c0                	test   %eax,%eax
40ab2e:	0f 85 40 fa ff ff    	jne    0x40a574
40ab34:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40ab37:	0f b7 16             	movzwl (%esi),%edx
40ab3a:	8b c2                	mov    %edx,%eax
40ab3c:	25 00 fc 00 00       	and    $0xfc00,%eax
40ab41:	83 c6 02             	add    $0x2,%esi
40ab44:	3d 00 d8 00 00       	cmp    $0xd800,%eax
40ab49:	0f 84 f9 02 08 00    	je     0x48ae48
40ab4f:	8b 45 d8             	mov    -0x28(%ebp),%eax
40ab52:	83 f8 0c             	cmp    $0xc,%eax
40ab55:	0f 85 0e 03 08 00    	jne    0x48ae69
40ab5b:	83 bb 8c 00 00 00 00 	cmpl   $0x0,0x8c(%ebx)
40ab62:	0f 85 b4 05 08 00    	jne    0x48b11c
40ab68:	8b 45 18             	mov    0x18(%ebp),%eax
40ab6b:	40                   	inc    %eax
40ab6c:	50                   	push   %eax
40ab6d:	ff 75 14             	push   0x14(%ebp)
40ab70:	41                   	inc    %ecx
40ab71:	53                   	push   %ebx
40ab72:	ff 75 0c             	push   0xc(%ebp)
40ab75:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40ab78:	ff 75 08             	push   0x8(%ebp)
40ab7b:	8b d7                	mov    %edi,%edx
40ab7d:	8b ce                	mov    %esi,%ecx
40ab7f:	e8 7c f7 ff ff       	call   0x40a300
40ab84:	83 c4 14             	add    $0x14,%esp
40ab87:	85 c0                	test   %eax,%eax
40ab89:	0f 85 38 f9 ff ff    	jne    0x40a4c7
40ab8f:	e9 5c ff ff ff       	jmp    0x40aaf0
40ab94:	39 93 8c 00 00 00    	cmp    %edx,0x8c(%ebx)
40ab9a:	0f 84 d4 f9 ff ff    	je     0x40a574
40aba0:	e9 74 f0 07 00       	jmp    0x489c19
40aba5:	83 bb 8c 00 00 00 00 	cmpl   $0x0,0x8c(%ebx)
40abac:	eb ec                	jmp    0x40ab9a
40abae:	83 e8 62             	sub    $0x62,%eax
40abb1:	83 f8 0b             	cmp    $0xb,%eax
40abb4:	0f 87 32 f9 ff ff    	ja     0x40a4ec
40abba:	0f b6 80 28 af 40 00 	movzbl 0x40af28(%eax),%eax
40abc1:	ff 24 85 20 af 40 00 	jmp    *0x40af20(,%eax,4)
40abc8:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40abcb:	83 c1 9e             	add    $0xffffff9e,%ecx
40abce:	83 c7 02             	add    $0x2,%edi
40abd1:	89 7d cc             	mov    %edi,-0x34(%ebp)
40abd4:	83 f9 08             	cmp    $0x8,%ecx
40abd7:	0f 82 f0 00 00 00    	jb     0x40accd
40abdd:	c7 45 d0 01 00 00 00 	movl   $0x1,-0x30(%ebp)
40abe4:	0f be 81 7c e4 49 00 	movsbl 0x49e47c(%ecx),%eax
40abeb:	0f be 89 20 e5 49 00 	movsbl 0x49e520(%ecx),%ecx
40abf2:	89 45 d8             	mov    %eax,-0x28(%ebp)
40abf5:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40abf8:	85 c9                	test   %ecx,%ecx
40abfa:	0f 85 fb f8 ff ff    	jne    0x40a4fb
40ac00:	c7 45 e8 ff ff ff 7f 	movl   $0x7fffffff,-0x18(%ebp)
40ac07:	e9 ef f8 ff ff       	jmp    0x40a4fb
40ac0c:	8b 45 f8             	mov    -0x8(%ebp),%eax
40ac0f:	e9 86 fa ff ff       	jmp    0x40a69a
40ac14:	0f b7 47 02          	movzwl 0x2(%edi),%eax
40ac18:	66 83 3c 47 77       	cmpw   $0x77,(%edi,%eax,2)
40ac1d:	8d 3c 47             	lea    (%edi,%eax,2),%edi
40ac20:	74 f2                	je     0x40ac14
40ac22:	89 7d cc             	mov    %edi,-0x34(%ebp)
40ac25:	e9 36 f7 ff ff       	jmp    0x40a360
40ac2a:	8b 45 18             	mov    0x18(%ebp),%eax
40ac2d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40ac30:	40                   	inc    %eax
40ac31:	50                   	push   %eax
40ac32:	ff 75 14             	push   0x14(%ebp)
40ac35:	83 c7 02             	add    $0x2,%edi
40ac38:	53                   	push   %ebx
40ac39:	ff 75 0c             	push   0xc(%ebp)
40ac3c:	8b d7                	mov    %edi,%edx
40ac3e:	ff 75 08             	push   0x8(%ebp)
40ac41:	e8 ba f6 ff ff       	call   0x40a300
40ac46:	83 c4 14             	add    $0x14,%esp
40ac49:	85 c0                	test   %eax,%eax
40ac4b:	0f 85 76 f8 ff ff    	jne    0x40a4c7
40ac51:	e9 5a 8f 07 00       	jmp    0x483bb0
40ac56:	8b 83 b0 00 00 00    	mov    0xb0(%ebx),%eax
40ac5c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40ac5f:	89 45 f4             	mov    %eax,-0xc(%ebp)
40ac62:	8b 83 94 00 00 00    	mov    0x94(%ebx),%eax
40ac68:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40ac6b:	8b 45 18             	mov    0x18(%ebp),%eax
40ac6e:	40                   	inc    %eax
40ac6f:	50                   	push   %eax
40ac70:	ff 75 14             	push   0x14(%ebp)
40ac73:	0f b7 07             	movzwl (%edi),%eax
40ac76:	53                   	push   %ebx
40ac77:	0f b6 80 60 e5 49 00 	movzbl 0x49e560(%eax),%eax
40ac7e:	ff 75 0c             	push   0xc(%ebp)
40ac81:	8d 14 47             	lea    (%edi,%eax,2),%edx
40ac84:	ff 75 08             	push   0x8(%ebp)
40ac87:	e8 74 f6 ff ff       	call   0x40a300
40ac8c:	8b d0                	mov    %eax,%edx
40ac8e:	83 c4 14             	add    $0x14,%esp
40ac91:	81 fa 20 fc ff ff    	cmp    $0xfffffc20,%edx
40ac97:	0f 84 aa ec 07 00    	je     0x489947
40ac9d:	85 d2                	test   %edx,%edx
40ac9f:	0f 85 e6 08 08 00    	jne    0x48b58b
40aca5:	0f b7 47 02          	movzwl 0x2(%edi),%eax
40aca9:	8d 3c 47             	lea    (%edi,%eax,2),%edi
40acac:	8b 45 f4             	mov    -0xc(%ebp),%eax
40acaf:	89 83 b0 00 00 00    	mov    %eax,0xb0(%ebx)
40acb5:	66 83 3f 77          	cmpw   $0x77,(%edi)
40acb9:	0f 85 b5 f8 ff ff    	jne    0x40a574
40acbf:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40acc2:	89 83 94 00 00 00    	mov    %eax,0x94(%ebx)
40acc8:	e9 c3 f6 ff ff       	jmp    0x40a390
40accd:	f6 c1 01             	test   $0x1,%cl
40acd0:	75 42                	jne    0x40ad14
40acd2:	33 d2                	xor    %edx,%edx
40acd4:	e9 0b ff ff ff       	jmp    0x40abe4
40acd9:	8b 45 f8             	mov    -0x8(%ebp),%eax
40acdc:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
40acdf:	42                   	inc    %edx
40ace0:	8d 04 48             	lea    (%eax,%ecx,2),%eax
40ace3:	89 45 f8             	mov    %eax,-0x8(%ebp)
40ace6:	3b 55 e8             	cmp    -0x18(%ebp),%edx
40ace9:	0f 8d 29 fa ff ff    	jge    0x40a718
40acef:	e9 d0 f9 ff ff       	jmp    0x40a6c4
40acf4:	89 55 e0             	mov    %edx,-0x20(%ebp)
40acf7:	e9 48 8f 07 00       	jmp    0x483c44
40acfc:	83 c7 02             	add    $0x2,%edi
40acff:	e9 05 8f 07 00       	jmp    0x483c09
40ad04:	8b 45 f8             	mov    -0x8(%ebp),%eax
40ad07:	e9 c4 92 07 00       	jmp    0x483fd0
40ad0c:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40ad0f:	e9 d1 98 07 00       	jmp    0x4845e5
40ad14:	ba 01 00 00 00       	mov    $0x1,%edx
40ad19:	e9 c6 fe ff ff       	jmp    0x40abe4
40ad1e:	be 02 00 00 00       	mov    $0x2,%esi
40ad23:	e9 0c fc ff ff       	jmp    0x40a934
40ad28:	33 d2                	xor    %edx,%edx
40ad2a:	e9 12 fd ff ff       	jmp    0x40aa41
40ad2f:	90                   	nop
40ad30:	97                   	xchg   %eax,%edi
40ad31:	a4                   	movsb  %ds:(%esi),%es:(%edi)
40ad32:	40                   	inc    %eax
40ad33:	00 04 ad 40 00 78 40 	add    %al,0x40780040(,%ebp,4)
40ad3a:	48                   	dec    %eax
40ad3b:	00 98 40 48 00 50    	add    %bl,0x50004840(%eax)
40ad41:	42                   	inc    %edx
40ad42:	48                   	dec    %eax
40ad43:	00 42 46             	add    %al,0x46(%edx)
40ad46:	48                   	dec    %eax
40ad47:	00 a8 46 48 00 0e    	add    %ch,0xe004846(%eax)
40ad4d:	47                   	inc    %edi
40ad4e:	48                   	dec    %eax
40ad4f:	00 74 47 48          	add    %dh,0x48(%edi,%eax,2)
40ad53:	00 da                	add    %bl,%dl
40ad55:	47                   	inc    %edi
40ad56:	48                   	dec    %eax
40ad57:	00 40 48             	add    %al,0x48(%eax)
40ad5a:	48                   	dec    %eax
40ad5b:	00 41 45             	add    %al,0x45(%ecx)
40ad5e:	48                   	dec    %eax
40ad5f:	00 0c ad 40 00 2b 46 	add    %cl,0x462b0040(,%ebp,4)
40ad66:	48                   	dec    %eax
40ad67:	00 57 a8             	add    %dl,-0x58(%edi)
40ad6a:	40                   	inc    %eax
40ad6b:	00 a6 48 48 00 86    	add    %ah,-0x79ffb7b8(%esi)
40ad71:	49                   	dec    %ecx
40ad72:	48                   	dec    %eax
40ad73:	00 5a 4a             	add    %bl,0x4a(%edx)
40ad76:	48                   	dec    %eax
40ad77:	00 2e                	add    %ch,(%esi)
40ad79:	4b                   	dec    %ebx
40ad7a:	48                   	dec    %eax
40ad7b:	00 b8 4b 48 00 7d    	add    %bh,0x7d00484b(%eax)
40ad81:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40ad82:	40                   	inc    %eax
40ad83:	00 d5                	add    %dl,%ch
40ad85:	41                   	inc    %ecx
40ad86:	48                   	dec    %eax
40ad87:	00 c1                	add    %al,%cl
40ad89:	41                   	inc    %ecx
40ad8a:	48                   	dec    %eax
40ad8b:	00 b3 41 48 00 a9    	add    %dh,-0x56ffb7bf(%ebx)
40ad91:	40                   	inc    %eax
40ad92:	48                   	dec    %eax
40ad93:	00 bf 3f 48 00 e4    	add    %bh,-0x1bffb7c1(%edi)
40ad99:	3f                   	aas
40ad9a:	48                   	dec    %eax
40ad9b:	00 06                	add    %al,(%esi)
40ad9d:	a9 40 00 63 a7       	test   $0xa7630040,%eax
40ada2:	40                   	inc    %eax
40ada3:	00 59 5c             	add    %bl,0x5c(%ecx)
40ada6:	48                   	dec    %eax
40ada7:	00 2b                	add    %ch,(%ebx)
40ada9:	57                   	push   %edi
40adaa:	48                   	dec    %eax
40adab:	00 bc 56 48 00 a3 56 	add    %bh,0x56a30048(%esi,%edx,2)
40adb2:	48                   	dec    %eax
40adb3:	00 ea                	add    %ch,%dl
40adb5:	56                   	push   %esi
40adb6:	48                   	dec    %eax
40adb7:	00 01                	add    %al,(%ecx)
40adb9:	57                   	push   %edi
40adba:	48                   	dec    %eax
40adbb:	00 18                	add    %bl,(%eax)
40adbd:	57                   	push   %edi
40adbe:	48                   	dec    %eax
40adbf:	00 b5 56 48 00 4d    	add    %dh,0x4d004856(%ebp)
40adc5:	5e                   	pop    %esi
40adc6:	48                   	dec    %eax
40adc7:	00 b7 5d 48 00 a5    	add    %dh,-0x5affb7a3(%edi)
40adcd:	5d                   	pop    %ebp
40adce:	48                   	dec    %eax
40adcf:	00 ea                	add    %ch,%dl
40add1:	5d                   	pop    %ebp
40add2:	48                   	dec    %eax
40add3:	00 06                	add    %al,(%esi)
40add5:	5e                   	pop    %esi
40add6:	48                   	dec    %eax
40add7:	00 1f                	add    %bl,(%edi)
40add9:	5e                   	pop    %esi
40adda:	48                   	dec    %eax
40addb:	00 34 5e             	add    %dh,(%esi,%ebx,2)
40adde:	48                   	dec    %eax
40addf:	00 2e                	add    %ch,(%esi)
40ade1:	aa                   	stos   %al,%es:(%edi)
40ade2:	40                   	inc    %eax
40ade3:	00 88 64 48 00 6c    	add    %cl,0x6c004864(%eax)
40ade9:	64 48                	fs dec %eax
40adeb:	00 a7 64 48 00 bc    	add    %ah,-0x43ffb79c(%edi)
40adf1:	64 48                	fs dec %eax
40adf3:	00 d1                	add    %dl,%cl
40adf5:	64 48                	fs dec %eax
40adf7:	00 e9                	add    %ch,%cl
40adf9:	64 48                	fs dec %eax
40adfb:	00 ce                	add    %cl,%dh
40adfd:	a4                   	movsb  %ds:(%esi),%es:(%edi)
40adfe:	40                   	inc    %eax
40adff:	00 f7                	add    %dh,%bh
40ae01:	52                   	push   %edx
40ae02:	48                   	dec    %eax
40ae03:	00 5a 4f             	add    %bl,0x4f(%edx)
40ae06:	48                   	dec    %eax
40ae07:	00 be 4e 48 00 1d    	add    %bh,0x1d00484e(%esi)
40ae0d:	3a 48 00             	cmp    0x0(%eax),%cl
40ae10:	43                   	inc    %ebx
40ae11:	39 48 00             	cmp    %ecx,0x0(%eax)
40ae14:	14 ac                	adc    $0xac,%al
40ae16:	40                   	inc    %eax
40ae17:	00 e7                	add    %ah,%bh
40ae19:	a3 40 00 c9 38       	mov    %eax,0x38c90040
40ae1e:	48                   	dec    %eax
40ae1f:	00 24 37             	add    %ah,(%edi,%esi,1)
40ae22:	48                   	dec    %eax
40ae23:	00 fb                	add    %bh,%bl
40ae25:	37                   	aaa
40ae26:	48                   	dec    %eax
40ae27:	00 90 a3 40 00 e6    	add    %dl,-0x19ffbf5d(%eax)
40ae2d:	32 48 00             	xor    0x0(%eax),%cl
40ae30:	c1 3d 48 00 76 a9 40 	sarl   $0x40,0xa9760048
40ae37:	00 f4                	add    %dh,%ah
40ae39:	ac                   	lods   %ds:(%esi),%al
40ae3a:	40                   	inc    %eax
40ae3b:	00 c7                	add    %al,%bh
40ae3d:	33 48 00             	xor    0x0(%eax),%ecx
40ae40:	2a ac 40 00 c9 3b 48 	sub    0x483bc900(%eax,%eax,2),%ch
40ae47:	00 22                	add    %ah,(%edx)
40ae49:	3c 48                	cmp    $0x48,%al
40ae4b:	00 d1                	add    %dl,%cl
40ae4d:	b5 48                	mov    $0x48,%ch
40ae4f:	00 98 b6 48 00 d1    	add    %bl,-0x2effb74a(%eax)
40ae55:	b6 48                	mov    $0x48,%dh