407df0:	3d 00 d8 00 00       	cmp    $0xd800,%eax
407df5:	0f 84 0c 7b 07 00    	je     0x47f907
407dfb:	8b 4d 2c             	mov    0x2c(%ebp),%ecx
407dfe:	85 c9                	test   %ecx,%ecx
407e00:	74 08                	je     0x407e0a
407e02:	3b f2                	cmp    %edx,%esi
407e04:	0f 87 37 7b 07 00    	ja     0x47f941
407e0a:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
407e0e:	0f 85 47 7b 07 00    	jne    0x47f95b
407e14:	83 fb 5b             	cmp    $0x5b,%ebx
407e17:	0f 84 66 7b 07 00    	je     0x47f983
407e1d:	83 fb 5c             	cmp    $0x5c,%ebx
407e20:	0f 84 d0 08 00 00    	je     0x4086f6
407e26:	8b 55 f0             	mov    -0x10(%ebp),%edx
407e29:	66 83 7f 02 5c       	cmpw   $0x5c,0x2(%edi)
407e2e:	8b 75 cc             	mov    -0x34(%ebp),%esi
407e31:	0f 84 d6 7f 07 00    	je     0x47fe0d
407e37:	8b c7                	mov    %edi,%eax
407e39:	83 fb 0d             	cmp    $0xd,%ebx
407e3c:	0f 84 e9 7f 07 00    	je     0x47fe2b
407e42:	83 fb 0a             	cmp    $0xa,%ebx
407e45:	0f 84 e0 7f 07 00    	je     0x47fe2b
407e4b:	85 f6                	test   %esi,%esi
407e4d:	75 0b                	jne    0x407e5a
407e4f:	66 83 7f 02 2d       	cmpw   $0x2d,0x2(%edi)
407e54:	0f 84 b5 06 00 00    	je     0x40850f
407e5a:	83 fa 02             	cmp    $0x2,%edx
407e5d:	0f 8c f1 00 00 00    	jl     0x407f54
407e63:	83 fa 01             	cmp    $0x1,%edx
407e66:	0f 84 38 02 00 00    	je     0x4080a4
407e6c:	53                   	push   %ebx
407e6d:	53                   	push   %ebx
407e6e:	ff 75 28             	push   0x28(%ebp)
407e71:	ff 75 f4             	push   -0xc(%ebp)
407e74:	8d 55 a4             	lea    -0x5c(%ebp),%edx
407e77:	8d 8d 28 ff ff ff    	lea    -0xd8(%ebp),%ecx
407e7d:	e8 fb 09 00 00       	call   0x40887d
407e82:	8b 4d d8             	mov    -0x28(%ebp),%ecx
407e85:	83 c4 10             	add    $0x10,%esp
407e88:	03 c8                	add    %eax,%ecx
407e8a:	89 4d d8             	mov    %ecx,-0x28(%ebp)
407e8d:	8b 75 a4             	mov    -0x5c(%ebp),%esi
407e90:	8b 7d fc             	mov    -0x4(%ebp),%edi
407e93:	89 75 e8             	mov    %esi,-0x18(%ebp)
407e96:	8b 45 cc             	mov    -0x34(%ebp),%eax
407e99:	8b 55 ec             	mov    -0x14(%ebp),%edx
407e9c:	83 c7 02             	add    $0x2,%edi
407e9f:	89 7d fc             	mov    %edi,-0x4(%ebp)
407ea2:	0f b7 1f             	movzwl (%edi),%ebx
407ea5:	85 db                	test   %ebx,%ebx
407ea7:	0f 84 b2 80 07 00    	je     0x47ff5f
407ead:	83 fb 5d             	cmp    $0x5d,%ebx
407eb0:	0f 85 2d ff ff ff    	jne    0x407de3
407eb6:	85 c0                	test   %eax,%eax
407eb8:	0f 85 25 ff ff ff    	jne    0x407de3
407ebe:	3b f2                	cmp    %edx,%esi
407ec0:	0f 87 d9 08 00 00    	ja     0x40879f
407ec6:	8b 45 b0             	mov    -0x50(%ebp),%eax
407ec9:	8b 55 d0             	mov    -0x30(%ebp),%edx
407ecc:	83 fa fe             	cmp    $0xfffffffe,%edx
407ecf:	75 06                	jne    0x407ed7
407ed1:	83 ca ff             	or     $0xffffffff,%edx
407ed4:	89 55 d0             	mov    %edx,-0x30(%ebp)
407ed7:	8b 5d 90             	mov    -0x70(%ebp),%ebx
407eda:	89 55 8c             	mov    %edx,-0x74(%ebp)
407edd:	8b 55 a0             	mov    -0x60(%ebp),%edx
407ee0:	89 55 d8             	mov    %edx,-0x28(%ebp)
407ee3:	8b 55 a8             	mov    -0x58(%ebp),%edx
407ee6:	89 9d 7c ff ff ff    	mov    %ebx,-0x84(%ebp)
407eec:	8b 5d f4             	mov    -0xc(%ebp),%ebx
407eef:	85 c0                	test   %eax,%eax
407ef1:	8b 45 e4             	mov    -0x1c(%ebp),%eax
407ef4:	89 55 98             	mov    %edx,-0x68(%ebp)
407ef7:	0f 85 a7 81 07 00    	jne    0x4800a4
407efd:	8b 7d d4             	mov    -0x2c(%ebp),%edi
407f00:	3b f8                	cmp    %eax,%edi
407f02:	0f 85 a1 08 00 00    	jne    0x4087a9
407f08:	b8 6e 00 00 00       	mov    $0x6e,%eax
407f0d:	8b 55 f8             	mov    -0x8(%ebp),%edx
407f10:	83 c2 02             	add    $0x2,%edx
407f13:	83 7d 2c 00          	cmpl   $0x0,0x2c(%ebp)
407f17:	66 89 42 fe          	mov    %ax,-0x2(%edx)
407f1b:	89 55 f8             	mov    %edx,-0x8(%ebp)
407f1e:	75 1d                	jne    0x407f3d
407f20:	85 ff                	test   %edi,%edi
407f22:	0f 85 8b 08 00 00    	jne    0x4087b3
407f28:	6a 20                	push   $0x20
407f2a:	8d 85 28 ff ff ff    	lea    -0xd8(%ebp),%eax
407f30:	50                   	push   %eax
407f31:	52                   	push   %edx
407f32:	e8 49 6f 01 00       	call   0x41ee80
407f37:	8b 55 f8             	mov    -0x8(%ebp),%edx
407f3a:	83 c4 0c             	add    $0xc,%esp
407f3d:	8b 7d fc             	mov    -0x4(%ebp),%edi
407f40:	8b 4d 84             	mov    -0x7c(%ebp),%ecx
407f43:	83 c2 20             	add    $0x20,%edx
407f46:	83 c7 02             	add    $0x2,%edi
407f49:	89 55 f8             	mov    %edx,-0x8(%ebp)
407f4c:	89 7d fc             	mov    %edi,-0x4(%ebp)
407f4f:	e9 3f f9 ff ff       	jmp    0x407893
407f54:	42                   	inc    %edx
407f55:	89 55 f0             	mov    %edx,-0x10(%ebp)
407f58:	e9 06 ff ff ff       	jmp    0x407e63
407f5d:	b9 01 00 00 00       	mov    $0x1,%ecx
407f62:	e9 2b fa ff ff       	jmp    0x407992
407f67:	8b 45 a0             	mov    -0x60(%ebp),%eax
407f6a:	89 45 d8             	mov    %eax,-0x28(%ebp)
407f6d:	8b 45 a8             	mov    -0x58(%ebp),%eax
407f70:	89 45 98             	mov    %eax,-0x68(%ebp)
407f73:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
407f79:	c7 45 8c ff ff ff ff 	movl   $0xffffffff,-0x74(%ebp)
407f80:	83 fe 01             	cmp    $0x1,%esi
407f83:	0f 85 4f 8f 07 00    	jne    0x480ed8
407f89:	0f b7 db             	movzwl %bx,%ebx
407f8c:	89 5d 90             	mov    %ebx,-0x70(%ebp)
407f8f:	8b 5d f4             	mov    -0xc(%ebp),%ebx
407f92:	89 45 d0             	mov    %eax,-0x30(%ebp)
407f95:	83 fe 01             	cmp    $0x1,%esi
407f98:	0f 84 60 fd ff ff    	je     0x407cfe
407f9e:	e9 53 8f 07 00       	jmp    0x480ef6
407fa3:	8b 5d f4             	mov    -0xc(%ebp),%ebx
407fa6:	dd d8                	fstp   %st(0)
407fa8:	6a 00                	push   $0x0
407faa:	89 7d 80             	mov    %edi,-0x80(%ebp)
407fad:	8b 7d 28             	mov    0x28(%ebp),%edi
407fb0:	53                   	push   %ebx
407fb1:	ff 77 40             	push   0x40(%edi)
407fb4:	8d 95 54 ff ff ff    	lea    -0xac(%ebp),%edx
407fba:	ff 75 0c             	push   0xc(%ebp)
407fbd:	8d 4d fc             	lea    -0x4(%ebp),%ecx
407fc0:	e8 a9 0e 00 00       	call   0x408e6e
407fc5:	8b 55 0c             	mov    0xc(%ebp),%edx
407fc8:	83 c4 10             	add    $0x10,%esp
407fcb:	83 3a 00             	cmpl   $0x0,(%edx)
407fce:	8b f0                	mov    %eax,%esi
407fd0:	0f 85 16 08 00 00    	jne    0x4087ec
407fd6:	85 f6                	test   %esi,%esi
407fd8:	0f 84 e7 04 00 00    	je     0x4084c5
407fde:	83 fe 1a             	cmp    $0x1a,%esi
407fe1:	0f 84 74 8c 07 00    	je     0x480c5b
407fe7:	83 fe 19             	cmp    $0x19,%esi
407fea:	0f 84 60 8e 07 00    	je     0x480e50
407ff0:	8b 4d d0             	mov    -0x30(%ebp),%ecx
407ff3:	83 f9 fe             	cmp    $0xfffffffe,%ecx
407ff6:	75 0e                	jne    0x408006
407ff8:	8d 46 fa             	lea    -0x6(%esi),%eax
407ffb:	83 f8 10             	cmp    $0x10,%eax
407ffe:	77 06                	ja     0x408006
408000:	83 c9 ff             	or     $0xffffffff,%ecx
408003:	89 4d d0             	mov    %ecx,-0x30(%ebp)
408006:	8b 45 90             	mov    -0x70(%ebp),%eax
408009:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
40800f:	8b 45 a0             	mov    -0x60(%ebp),%eax
408012:	89 45 d8             	mov    %eax,-0x28(%ebp)
408015:	8b 45 a8             	mov    -0x58(%ebp),%eax
408018:	89 4d 8c             	mov    %ecx,-0x74(%ebp)
40801b:	89 45 98             	mov    %eax,-0x68(%ebp)
40801e:	83 fe 1b             	cmp    $0x1b,%esi
408021:	0f 84 5f 8c 07 00    	je     0x480c86
408027:	83 fe 1c             	cmp    $0x1c,%esi
40802a:	0f 84 e6 8c 07 00    	je     0x480d16
408030:	85 f6                	test   %esi,%esi
408032:	0f 88 34 8d 07 00    	js     0x480d6c
408038:	83 fe 0f             	cmp    $0xf,%esi
40803b:	0f 84 90 8d 07 00    	je     0x480dd1
408041:	83 fe 10             	cmp    $0x10,%esi
408044:	0f 84 87 8d 07 00    	je     0x480dd1
40804a:	83 fe 05             	cmp    $0x5,%esi
40804d:	0f 84 25 8d 07 00    	je     0x480d78
408053:	83 fe 04             	cmp    $0x4,%esi
408056:	0f 84 1c 8d 07 00    	je     0x480d78
40805c:	83 fe 01             	cmp    $0x1,%esi
40805f:	0f 84 13 8d 07 00    	je     0x480d78
408065:	83 fe 1d             	cmp    $0x1d,%esi
408068:	0f 8d 20 8d 07 00    	jge    0x480d8e
40806e:	8b 55 f8             	mov    -0x8(%ebp),%edx
408071:	8d 46 fa             	lea    -0x6(%esi),%eax
408074:	83 f8 10             	cmp    $0x10,%eax
408077:	0f 87 35 8d 07 00    	ja     0x480db2
40807d:	89 55 e0             	mov    %edx,-0x20(%ebp)
408080:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
408084:	0f 84 34 8d 07 00    	je     0x480dbe
40808a:	8b 4d 84             	mov    -0x7c(%ebp),%ecx
40808d:	66 89 32             	mov    %si,(%edx)
408090:	8b 7d fc             	mov    -0x4(%ebp),%edi
408093:	83 c2 02             	add    $0x2,%edx
408096:	83 c7 02             	add    $0x2,%edi
408099:	89 55 f8             	mov    %edx,-0x8(%ebp)
40809c:	89 7d fc             	mov    %edi,-0x4(%ebp)
40809f:	e9 ef f7 ff ff       	jmp    0x407893
4080a4:	66 83 7f 02 5d       	cmpw   $0x5d,0x2(%edi)
4080a9:	0f 85 bd fd ff ff    	jne    0x407e6c
4080af:	e9 df 7e 07 00       	jmp    0x47ff93
4080b4:	33 f6                	xor    %esi,%esi
4080b6:	83 c8 ff             	or     $0xffffffff,%eax
4080b9:	89 75 ac             	mov    %esi,-0x54(%ebp)
4080bc:	89 45 c4             	mov    %eax,-0x3c(%ebp)
4080bf:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4080c2:	85 c9                	test   %ecx,%ecx
4080c4:	0f 84 fa 9f 07 00    	je     0x4820c4
4080ca:	85 f6                	test   %esi,%esi
4080cc:	75 1e                	jne    0x4080ec
4080ce:	8b b5 7c ff ff ff    	mov    -0x84(%ebp),%esi
4080d4:	89 75 90             	mov    %esi,-0x70(%ebp)
4080d7:	8b 75 8c             	mov    -0x74(%ebp),%esi
4080da:	89 75 d0             	mov    %esi,-0x30(%ebp)
4080dd:	8b 75 d8             	mov    -0x28(%ebp),%esi
4080e0:	89 75 a0             	mov    %esi,-0x60(%ebp)
4080e3:	8b 75 98             	mov    -0x68(%ebp),%esi
4080e6:	89 75 a8             	mov    %esi,-0x58(%ebp)
4080e9:	8b 75 ac             	mov    -0x54(%ebp),%esi
4080ec:	3b f0                	cmp    %eax,%esi
4080ee:	0f 84 99 80 07 00    	je     0x48018d
4080f4:	c7 45 88 02 00 00 00 	movl   $0x2,-0x78(%ebp)
4080fb:	c7 45 d4 00 00 00 00 	movl   $0x0,-0x2c(%ebp)
408102:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
408105:	85 db                	test   %ebx,%ebx
408107:	0f 85 8c 80 07 00    	jne    0x480199
40810d:	0f b7 47 02          	movzwl 0x2(%edi),%eax
408111:	83 f8 2b             	cmp    $0x2b,%eax
408114:	0f 84 6b 81 07 00    	je     0x480285
40811a:	83 f8 3f             	cmp    $0x3f,%eax
40811d:	0f 85 54 03 00 00    	jne    0x408477
408123:	8b 85 1c ff ff ff    	mov    -0xe4(%ebp),%eax
408129:	83 c7 02             	add    $0x2,%edi
40812c:	89 7d fc             	mov    %edi,-0x4(%ebp)
40812f:	8b 5d e0             	mov    -0x20(%ebp),%ebx
408132:	89 45 f0             	mov    %eax,-0x10(%ebp)
408135:	66 83 3b 75          	cmpw   $0x75,(%ebx)
408139:	0f 84 5a 81 07 00    	je     0x480299
40813f:	0f b7 0b             	movzwl (%ebx),%ecx
408142:	83 f9 1d             	cmp    $0x1d,%ecx
408145:	0f 84 49 87 07 00    	je     0x480894
40814b:	83 f9 1e             	cmp    $0x1e,%ecx
40814e:	0f 84 40 87 07 00    	je     0x480894
408154:	83 f9 1f             	cmp    $0x1f,%ecx
408157:	0f 84 37 87 07 00    	je     0x480894
40815d:	83 f9 20             	cmp    $0x20,%ecx
408160:	0f 84 2e 87 07 00    	je     0x480894
408166:	83 f9 17             	cmp    $0x17,%ecx
408169:	0f 83 13 03 00 00    	jae    0x408482
40816f:	dd d8                	fstp   %st(0)
408171:	be 34 00 00 00       	mov    $0x34,%esi
408176:	8b d9                	mov    %ecx,%ebx
408178:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40817b:	0f b7 01             	movzwl (%ecx),%eax
40817e:	83 f8 10             	cmp    $0x10,%eax
408181:	0f 84 d2 87 07 00    	je     0x480959
408187:	83 f8 0f             	cmp    $0xf,%eax
40818a:	0f 84 c9 87 07 00    	je     0x480959
408190:	83 c8 ff             	or     $0xffffffff,%eax
408193:	c7 45 ec ff ff ff ff 	movl   $0xffffffff,-0x14(%ebp)
40819a:	89 45 e8             	mov    %eax,-0x18(%ebp)
40819d:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
4081a1:	8b ca                	mov    %edx,%ecx
4081a3:	8b 55 e0             	mov    -0x20(%ebp),%edx
4081a6:	89 55 f8             	mov    %edx,-0x8(%ebp)
4081a9:	74 67                	je     0x408212
4081ab:	8b 55 f0             	mov    -0x10(%ebp),%edx
4081ae:	8b 45 ac             	mov    -0x54(%ebp),%eax
4081b1:	03 d6                	add    %esi,%edx
4081b3:	89 55 f0             	mov    %edx,-0x10(%ebp)
4081b6:	85 c0                	test   %eax,%eax
4081b8:	0f 85 e6 87 07 00    	jne    0x4809a4
4081be:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
4081c1:	83 f9 ff             	cmp    $0xffffffff,%ecx
4081c4:	0f 85 a2 87 07 00    	jne    0x48096c
4081ca:	8d 42 21             	lea    0x21(%edx),%eax
4081cd:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4081d0:	66 89 01             	mov    %ax,(%ecx)
4081d3:	8d 51 02             	lea    0x2(%ecx),%edx
4081d6:	89 55 f8             	mov    %edx,-0x8(%ebp)
4081d9:	8b 7d ec             	mov    -0x14(%ebp),%edi
4081dc:	8b 75 e8             	mov    -0x18(%ebp),%esi
4081df:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
4081e3:	74 0c                	je     0x4081f1
4081e5:	f7 c3 00 00 00 10    	test   $0x10000000,%ebx
4081eb:	0f 85 0e 89 07 00    	jne    0x480aff
4081f1:	66 89 1a             	mov    %bx,(%edx)
4081f4:	83 c2 02             	add    $0x2,%edx
4081f7:	8b 5d 28             	mov    0x28(%ebp),%ebx
4081fa:	89 55 f8             	mov    %edx,-0x8(%ebp)
4081fd:	85 f6                	test   %esi,%esi
4081ff:	0f 89 1c 89 07 00    	jns    0x480b21
408205:	8b 7d fc             	mov    -0x4(%ebp),%edi
408208:	83 7d d4 00          	cmpl   $0x0,-0x2c(%ebp)
40820c:	0f 85 21 89 07 00    	jne    0x480b33
408212:	8b 4d 28             	mov    0x28(%ebp),%ecx
408215:	8b 45 88             	mov    -0x78(%ebp),%eax
408218:	09 41 68             	or     %eax,0x68(%ecx)
40821b:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40821e:	8b 4d 84             	mov    -0x7c(%ebp),%ecx
408221:	83 c7 02             	add    $0x2,%edi
408224:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
40822b:	89 7d fc             	mov    %edi,-0x4(%ebp)
40822e:	e9 60 f6 ff ff       	jmp    0x407893
408233:	8b 4d 2c             	mov    0x2c(%ebp),%ecx
408236:	a9 00 10 00 00       	test   $0x1000,%eax
40823b:	0f 85 db 9c 07 00    	jne    0x481f1c
408241:	8b 45 28             	mov    0x28(%ebp),%eax
408244:	ff 40 40             	incl   0x40(%eax)
408247:	8b 55 f8             	mov    -0x8(%ebp),%edx
40824a:	66 8b 40 40          	mov    0x40(%eax),%ax
40824e:	66 89 42 04          	mov    %ax,0x4(%edx)
408252:	8b 7d fc             	mov    -0x4(%ebp),%edi
408255:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
40825c:	8b 45 28             	mov    0x28(%ebp),%eax
40825f:	ff 40 58             	incl   0x58(%eax)
408262:	81 78 58 fa 00 00 00 	cmpl   $0xfa,0x58(%eax)
408269:	0f 8f 91 a0 07 00    	jg     0x482300
40826f:	66 89 32             	mov    %si,(%edx)
408272:	89 55 e0             	mov    %edx,-0x20(%ebp)
408275:	89 55 b4             	mov    %edx,-0x4c(%ebp)
408278:	8b d0                	mov    %eax,%edx
40827a:	f7 d9                	neg    %ecx
40827c:	8b 42 68             	mov    0x68(%edx),%eax
40827f:	8b 7a 40             	mov    0x40(%edx),%edi
408282:	89 45 bc             	mov    %eax,-0x44(%ebp)
408285:	1b c0                	sbb    %eax,%eax
408287:	8d 8d 74 ff ff ff    	lea    -0x8c(%ebp),%ecx
40828d:	23 c1                	and    %ecx,%eax
40828f:	c7 85 74 ff ff ff 00 	movl   $0x0,-0x8c(%ebp)
408296:	00 00 00
408299:	81 fe 87 00 00 00    	cmp    $0x87,%esi
40829f:	0f 84 33 05 00 00    	je     0x4087d8
4082a5:	33 d2                	xor    %edx,%edx
4082a7:	83 fe 7f             	cmp    $0x7f,%esi
4082aa:	0f 84 32 05 00 00    	je     0x4087e2
4082b0:	81 fe 80 00 00 00    	cmp    $0x80,%esi
4082b6:	0f 84 26 05 00 00    	je     0x4087e2
4082bc:	33 c9                	xor    %ecx,%ecx
4082be:	50                   	push   %eax
4082bf:	ff 75 28             	push   0x28(%ebp)
4082c2:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
4082c8:	ff 75 20             	push   0x20(%ebp)
4082cb:	50                   	push   %eax
4082cc:	8d 85 4c ff ff ff    	lea    -0xb4(%ebp),%eax
4082d2:	50                   	push   %eax
4082d3:	8d 85 5c ff ff ff    	lea    -0xa4(%ebp),%eax
4082d9:	50                   	push   %eax
4082da:	8d 85 14 ff ff ff    	lea    -0xec(%ebp),%eax
4082e0:	50                   	push   %eax
4082e1:	8b 45 24             	mov    0x24(%ebp),%eax
4082e4:	03 c2                	add    %edx,%eax
4082e6:	50                   	push   %eax
4082e7:	ff 75 f0             	push   -0x10(%ebp)
4082ea:	8d 45 fc             	lea    -0x4(%ebp),%eax
4082ed:	ff 75 b0             	push   -0x50(%ebp)
4082f0:	8d 55 b4             	lea    -0x4c(%ebp),%edx
4082f3:	51                   	push   %ecx