407f06:	3b 55 fc             	cmp    -0x4(%ebp),%edx
407f09:	75 f3                	jne    0x407efe
407f0b:	2b d1                	sub    %ecx,%edx
407f0d:	d1 fa                	sar    $1,%edx
407f0f:	3b d6                	cmp    %esi,%edx
407f11:	75 66                	jne    0x407f79
407f13:	8d 14 51             	lea    (%ecx,%edx,2),%edx
407f16:	66 0f ef c9          	pxor   %xmm1,%xmm1
407f1a:	8b c8                	mov    %eax,%ecx
407f1c:	2b ce                	sub    %esi,%ecx
407f1e:	8b c1                	mov    %ecx,%eax
407f20:	83 e0 0f             	and    $0xf,%eax
407f23:	2b c8                	sub    %eax,%ecx
407f25:	8d 0c 4a             	lea    (%edx,%ecx,2),%ecx
407f28:	eb 12                	jmp    0x407f3c
407f2a:	0f 28 02             	movaps (%edx),%xmm0
407f2d:	66 0f 75 c1          	pcmpeqw %xmm1,%xmm0
407f31:	66 0f d7 c0          	pmovmskb %xmm0,%eax
407f35:	85 c0                	test   %eax,%eax
407f37:	75 07                	jne    0x407f40
407f39:	83 c2 10             	add    $0x10,%edx
407f3c:	3b d1                	cmp    %ecx,%edx
407f3e:	75 ea                	jne    0x407f2a
407f40:	8b 45 08             	mov    0x8(%ebp),%eax
407f43:	8b 4d 0c             	mov    0xc(%ebp),%ecx
407f46:	8d 0c 48             	lea    (%eax,%ecx,2),%ecx
407f49:	eb 08                	jmp    0x407f53
407f4b:	66 39 3a             	cmp    %di,(%edx)
407f4e:	74 07                	je     0x407f57
407f50:	83 c2 02             	add    $0x2,%edx
407f53:	3b d1                	cmp    %ecx,%edx
407f55:	75 f4                	jne    0x407f4b
407f57:	2b d0                	sub    %eax,%edx
407f59:	eb 1c                	jmp    0x407f77
407f5b:	8b 45 0c             	mov    0xc(%ebp),%eax
407f5e:	8b d1                	mov    %ecx,%edx
407f60:	8d 04 41             	lea    (%ecx,%eax,2),%eax
407f63:	3b c8                	cmp    %eax,%ecx
407f65:	74 0e                	je     0x407f75
407f67:	33 ff                	xor    %edi,%edi
407f69:	66 39 3a             	cmp    %di,(%edx)
407f6c:	74 07                	je     0x407f75
407f6e:	83 c2 02             	add    $0x2,%edx
407f71:	3b d0                	cmp    %eax,%edx
407f73:	75 f4                	jne    0x407f69
407f75:	2b d1                	sub    %ecx,%edx
407f77:	d1 fa                	sar    $1,%edx
407f79:	5f                   	pop    %edi
407f7a:	8b c2                	mov    %edx,%eax
407f7c:	5e                   	pop    %esi
407f7d:	8b e5                	mov    %ebp,%esp
407f7f:	5d                   	pop    %ebp
407f80:	c3                   	ret
407f81:	8b ff                	mov    %edi,%edi
407f83:	55                   	push   %ebp
407f84:	8b ec                	mov    %esp,%ebp
407f86:	8b 55 08             	mov    0x8(%ebp),%edx
407f89:	56                   	push   %esi
407f8a:	85 d2                	test   %edx,%edx
407f8c:	74 13                	je     0x407fa1
407f8e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
407f91:	85 c9                	test   %ecx,%ecx
407f93:	74 0c                	je     0x407fa1
407f95:	8b 75 10             	mov    0x10(%ebp),%esi
407f98:	85 f6                	test   %esi,%esi
407f9a:	75 19                	jne    0x407fb5
407f9c:	33 c0                	xor    %eax,%eax
407f9e:	66 89 02             	mov    %ax,(%edx)
407fa1:	e8 61 fd ff ff       	call   0x407d07
407fa6:	6a 16                	push   $0x16
407fa8:	5e                   	pop    %esi
407fa9:	89 30                	mov    %esi,(%eax)
407fab:	e8 7e fc ff ff       	call   0x407c2e
407fb0:	8b c6                	mov    %esi,%eax
407fb2:	5e                   	pop    %esi
407fb3:	5d                   	pop    %ebp
407fb4:	c3                   	ret
407fb5:	57                   	push   %edi
407fb6:	8b fa                	mov    %edx,%edi
407fb8:	2b f2                	sub    %edx,%esi
407fba:	0f b7 04 3e          	movzwl (%esi,%edi,1),%eax
407fbe:	66 89 07             	mov    %ax,(%edi)
407fc1:	8d 7f 02             	lea    0x2(%edi),%edi
407fc4:	66 85 c0             	test   %ax,%ax
407fc7:	74 05                	je     0x407fce
407fc9:	83 e9 01             	sub    $0x1,%ecx
407fcc:	75 ec                	jne    0x407fba
407fce:	5f                   	pop    %edi
407fcf:	85 c9                	test   %ecx,%ecx
407fd1:	75 0e                	jne    0x407fe1
407fd3:	33 c0                	xor    %eax,%eax
407fd5:	66 89 02             	mov    %ax,(%edx)
407fd8:	e8 2a fd ff ff       	call   0x407d07
407fdd:	6a 22                	push   $0x22
407fdf:	eb c7                	jmp    0x407fa8
407fe1:	33 f6                	xor    %esi,%esi
407fe3:	eb cb                	jmp    0x407fb0
407fe5:	8b ff                	mov    %edi,%edi
407fe7:	55                   	push   %ebp
407fe8:	8b ec                	mov    %esp,%ebp
407fea:	a1 98 41 42 00       	mov    0x424198,%eax
407fef:	85 c0                	test   %eax,%eax
407ff1:	75 75                	jne    0x408068
407ff3:	8b 55 08             	mov    0x8(%ebp),%edx
407ff6:	85 d2                	test   %edx,%edx
407ff8:	75 17                	jne    0x408011
407ffa:	e8 08 fd ff ff       	call   0x407d07
407fff:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
408005:	e8 24 fc ff ff       	call   0x407c2e
40800a:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
40800f:	5d                   	pop    %ebp
408010:	c3                   	ret
408011:	8b 4d 0c             	mov    0xc(%ebp),%ecx
408014:	85 c9                	test   %ecx,%ecx
408016:	74 e2                	je     0x407ffa
408018:	53                   	push   %ebx
408019:	56                   	push   %esi
40801a:	57                   	push   %edi
40801b:	6a 41                	push   $0x41
40801d:	5f                   	pop    %edi
40801e:	6a 5a                	push   $0x5a
408020:	2b d1                	sub    %ecx,%edx
408022:	5b                   	pop    %ebx
408023:	0f b7 04 0a          	movzwl (%edx,%ecx,1),%eax
408027:	66 3b c7             	cmp    %di,%ax
40802a:	72 0d                	jb     0x408039
40802c:	66 3b c3             	cmp    %bx,%ax
40802f:	77 08                	ja     0x408039
408031:	83 c0 20             	add    $0x20,%eax
408034:	0f b7 f0             	movzwl %ax,%esi
408037:	eb 02                	jmp    0x40803b
408039:	8b f0                	mov    %eax,%esi
40803b:	0f b7 01             	movzwl (%ecx),%eax
40803e:	66 3b c7             	cmp    %di,%ax
408041:	72 0b                	jb     0x40804e
408043:	66 3b c3             	cmp    %bx,%ax
408046:	77 06                	ja     0x40804e
408048:	83 c0 20             	add    $0x20,%eax
40804b:	0f b7 c0             	movzwl %ax,%eax
40804e:	83 c1 02             	add    $0x2,%ecx
408051:	66 85 f6             	test   %si,%si
408054:	74 05                	je     0x40805b
408056:	66 3b f0             	cmp    %ax,%si
408059:	74 c8                	je     0x408023
40805b:	0f b7 c8             	movzwl %ax,%ecx
40805e:	5f                   	pop    %edi
40805f:	0f b7 c6             	movzwl %si,%eax
408062:	5e                   	pop    %esi
408063:	2b c1                	sub    %ecx,%eax
408065:	5b                   	pop    %ebx
408066:	5d                   	pop    %ebp
408067:	c3                   	ret
408068:	6a 00                	push   $0x0
40806a:	ff 75 0c             	push   0xc(%ebp)
40806d:	ff 75 08             	push   0x8(%ebp)
408070:	e8 05 00 00 00       	call   0x40807a
408075:	83 c4 0c             	add    $0xc,%esp
408078:	5d                   	pop    %ebp
408079:	c3                   	ret
40807a:	8b ff                	mov    %edi,%edi
40807c:	55                   	push   %ebp
40807d:	8b ec                	mov    %esp,%ebp
40807f:	83 ec 10             	sub    $0x10,%esp
408082:	8d 4d f0             	lea    -0x10(%ebp),%ecx
408085:	53                   	push   %ebx
408086:	56                   	push   %esi
408087:	ff 75 10             	push   0x10(%ebp)
40808a:	e8 22 d6 ff ff       	call   0x4056b1
40808f:	8b 5d 08             	mov    0x8(%ebp),%ebx
408092:	85 db                	test   %ebx,%ebx
408094:	74 07                	je     0x40809d
408096:	8b 75 0c             	mov    0xc(%ebp),%esi
408099:	85 f6                	test   %esi,%esi
40809b:	75 1a                	jne    0x4080b7
40809d:	e8 65 fc ff ff       	call   0x407d07
4080a2:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4080a8:	e8 81 fb ff ff       	call   0x407c2e
4080ad:	ba ff ff ff 7f       	mov    $0x7fffffff,%edx
4080b2:	e9 8b 00 00 00       	jmp    0x408142
4080b7:	8b 45 f4             	mov    -0xc(%ebp),%eax
4080ba:	57                   	push   %edi
4080bb:	83 b8 a8 00 00 00 00 	cmpl   $0x0,0xa8(%eax)
4080c2:	75 42                	jne    0x408106
4080c4:	6a 41                	push   $0x41
4080c6:	59                   	pop    %ecx
4080c7:	6a 5a                	push   $0x5a
4080c9:	2b de                	sub    %esi,%ebx
4080cb:	5a                   	pop    %edx
4080cc:	0f b7 04 33          	movzwl (%ebx,%esi,1),%eax
4080d0:	66 3b c1             	cmp    %cx,%ax
4080d3:	72 0d                	jb     0x4080e2
4080d5:	66 3b c2             	cmp    %dx,%ax
4080d8:	77 08                	ja     0x4080e2
4080da:	83 c0 20             	add    $0x20,%eax
4080dd:	0f b7 f8             	movzwl %ax,%edi
4080e0:	eb 02                	jmp    0x4080e4
4080e2:	8b f8                	mov    %eax,%edi
4080e4:	0f b7 06             	movzwl (%esi),%eax
4080e7:	66 3b c1             	cmp    %cx,%ax
4080ea:	72 0b                	jb     0x4080f7
4080ec:	66 3b c2             	cmp    %dx,%ax
4080ef:	77 06                	ja     0x4080f7
4080f1:	83 c0 20             	add    $0x20,%eax
4080f4:	0f b7 c0             	movzwl %ax,%eax
4080f7:	83 c6 02             	add    $0x2,%esi
4080fa:	66 85 ff             	test   %di,%di
4080fd:	74 3a                	je     0x408139
4080ff:	66 3b f8             	cmp    %ax,%di
408102:	74 c8                	je     0x4080cc
408104:	eb 33                	jmp    0x408139
408106:	0f b7 03             	movzwl (%ebx),%eax
408109:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40810c:	51                   	push   %ecx
40810d:	50                   	push   %eax
40810e:	e8 88 6c 00 00       	call   0x40ed9b
408113:	8d 4d f4             	lea    -0xc(%ebp),%ecx
408116:	0f b7 f8             	movzwl %ax,%edi
408119:	0f b7 06             	movzwl (%esi),%eax
40811c:	8d 5b 02             	lea    0x2(%ebx),%ebx
40811f:	51                   	push   %ecx
408120:	50                   	push   %eax
408121:	e8 75 6c 00 00       	call   0x40ed9b
408126:	83 c4 10             	add    $0x10,%esp
408129:	0f b7 c0             	movzwl %ax,%eax
40812c:	8d 76 02             	lea    0x2(%esi),%esi
40812f:	66 85 ff             	test   %di,%di
408132:	74 05                	je     0x408139
408134:	66 3b f8             	cmp    %ax,%di
408137:	74 cd                	je     0x408106
408139:	0f b7 d7             	movzwl %di,%edx
40813c:	0f b7 c0             	movzwl %ax,%eax
40813f:	2b d0                	sub    %eax,%edx
408141:	5f                   	pop    %edi
408142:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
408146:	5e                   	pop    %esi
408147:	5b                   	pop    %ebx
408148:	74 0a                	je     0x408154
40814a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40814d:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
408154:	8b c2                	mov    %edx,%eax
408156:	8b e5                	mov    %ebp,%esp
408158:	5d                   	pop    %ebp
408159:	c3                   	ret
40815a:	8b ff                	mov    %edi,%edi
40815c:	55                   	push   %ebp
40815d:	8b ec                	mov    %esp,%ebp
40815f:	51                   	push   %ecx
408160:	51                   	push   %ecx
408161:	a1 0c 30 42 00       	mov    0x42300c,%eax
408166:	33 c5                	xor    %ebp,%eax
408168:	89 45 fc             	mov    %eax,-0x4(%ebp)
40816b:	56                   	push   %esi
40816c:	e8 35 29 00 00       	call   0x40aaa6
408171:	8b f0                	mov    %eax,%esi
408173:	85 f6                	test   %esi,%esi
408175:	0f 84 43 01 00 00    	je     0x4082be
40817b:	8b 16                	mov    (%esi),%edx
40817d:	8b ca                	mov    %edx,%ecx
40817f:	53                   	push   %ebx
408180:	33 db                	xor    %ebx,%ebx
408182:	57                   	push   %edi
408183:	8d 82 90 00 00 00    	lea    0x90(%edx),%eax
408189:	3b d0                	cmp    %eax,%edx
40818b:	74 0e                	je     0x40819b
40818d:	8b 7d 08             	mov    0x8(%ebp),%edi
408190:	39 39                	cmp    %edi,(%ecx)
408192:	74 09                	je     0x40819d
408194:	83 c1 0c             	add    $0xc,%ecx
408197:	3b c8                	cmp    %eax,%ecx
408199:	75 f5                	jne    0x408190
40819b:	8b cb                	mov    %ebx,%ecx
40819d:	85 c9                	test   %ecx,%ecx
40819f:	74 07                	je     0x4081a8
4081a1:	8b 79 08             	mov    0x8(%ecx),%edi
4081a4:	85 ff                	test   %edi,%edi
4081a6:	75 07                	jne    0x4081af
4081a8:	33 c0                	xor    %eax,%eax
4081aa:	e9 0d 01 00 00       	jmp    0x4082bc
4081af:	83 ff 05             	cmp    $0x5,%edi
4081b2:	75 0b                	jne    0x4081bf
4081b4:	33 c0                	xor    %eax,%eax
4081b6:	89 59 08             	mov    %ebx,0x8(%ecx)
4081b9:	40                   	inc    %eax
4081ba:	e9 fd 00 00 00       	jmp    0x4082bc
4081bf:	83 ff 01             	cmp    $0x1,%edi
4081c2:	0f 84 f1 00 00 00    	je     0x4082b9
4081c8:	8b 46 04             	mov    0x4(%esi),%eax
4081cb:	89 45 f8             	mov    %eax,-0x8(%ebp)
4081ce:	8b 45 0c             	mov    0xc(%ebp),%eax
4081d1:	89 46 04             	mov    %eax,0x4(%esi)
4081d4:	83 79 04 08          	cmpl   $0x8,0x4(%ecx)
4081d8:	0f 85 c4 00 00 00    	jne    0x4082a2
4081de:	8d 42 24             	lea    0x24(%edx),%eax
4081e1:	8d 50 6c             	lea    0x6c(%eax),%edx
4081e4:	eb 06                	jmp    0x4081ec
4081e6:	89 58 08             	mov    %ebx,0x8(%eax)
4081e9:	83 c0 0c             	add    $0xc,%eax
4081ec:	3b c2                	cmp    %edx,%eax
4081ee:	75 f6                	jne    0x4081e6
4081f0:	8b 5e 08             	mov    0x8(%esi),%ebx
4081f3:	b8 91 00 00 c0       	mov    $0xc0000091,%eax
4081f8:	39 01                	cmp    %eax,(%ecx)
4081fa:	77 4f                	ja     0x40824b
4081fc:	74 44                	je     0x408242
4081fe:	81 39 8d 00 00 c0    	cmpl   $0xc000008d,(%ecx)
408204:	74 33                	je     0x408239
408206:	81 39 8e 00 00 c0    	cmpl   $0xc000008e,(%ecx)
40820c:	74 22                	je     0x408230
40820e:	81 39 8f 00 00 c0    	cmpl   $0xc000008f,(%ecx)
408214:	74 11                	je     0x408227
408216:	81 39 90 00 00 c0    	cmpl   $0xc0000090,(%ecx)
40821c:	75 6f                	jne    0x40828d
40821e:	c7 46 08 81 00 00 00 	movl   $0x81,0x8(%esi)
408225:	eb 66                	jmp    0x40828d
408227:	c7 46 08 86 00 00 00 	movl   $0x86,0x8(%esi)
40822e:	eb 5d                	jmp    0x40828d
408230:	c7 46 08 83 00 00 00 	movl   $0x83,0x8(%esi)
408237:	eb 54                	jmp    0x40828d
408239:	c7 46 08 82 00 00 00 	movl   $0x82,0x8(%esi)
408240:	eb 4b                	jmp    0x40828d
408242:	c7 46 08 84 00 00 00 	movl   $0x84,0x8(%esi)
408249:	eb 42                	jmp    0x40828d
40824b:	81 39 92 00 00 c0    	cmpl   $0xc0000092,(%ecx)
408251:	74 33                	je     0x408286
408253:	81 39 93 00 00 c0    	cmpl   $0xc0000093,(%ecx)
408259:	74 22                	je     0x40827d
40825b:	81 39 b4 02 00 c0    	cmpl   $0xc00002b4,(%ecx)
408261:	74 11                	je     0x408274
408263:	81 39 b5 02 00 c0    	cmpl   $0xc00002b5,(%ecx)
408269:	75 22                	jne    0x40828d
40826b:	c7 46 08 8d 00 00 00 	movl   $0x8d,0x8(%esi)
408272:	eb 19                	jmp    0x40828d
408274:	c7 46 08 8e 00 00 00 	movl   $0x8e,0x8(%esi)
40827b:	eb 10                	jmp    0x40828d
40827d:	c7 46 08 85 00 00 00 	movl   $0x85,0x8(%esi)
408284:	eb 07                	jmp    0x40828d
408286:	c7 46 08 8a 00 00 00 	movl   $0x8a,0x8(%esi)
40828d:	ff 76 08             	push   0x8(%esi)
408290:	8b cf                	mov    %edi,%ecx
408292:	6a 08                	push   $0x8
408294:	ff 15 a8 b1 41 00    	call   *0x41b1a8
40829a:	ff d7                	call   *%edi
40829c:	59                   	pop    %ecx
40829d:	89 5e 08             	mov    %ebx,0x8(%esi)
4082a0:	eb 10                	jmp    0x4082b2
4082a2:	ff 71 04             	push   0x4(%ecx)
4082a5:	89 59 08             	mov    %ebx,0x8(%ecx)
4082a8:	8b cf                	mov    %edi,%ecx
4082aa:	ff 15 a8 b1 41 00    	call   *0x41b1a8
4082b0:	ff d7                	call   *%edi