409f21:	73 0b                	jae    0x409f2e
409f23:	0f b7 c6             	movzwl %si,%eax
409f26:	83 e8 30             	sub    $0x30,%eax
409f29:	e9 3d 02 00 00       	jmp    0x40a16b
409f2e:	b8 10 ff 00 00       	mov    $0xff10,%eax
409f33:	66 3b f0             	cmp    %ax,%si
409f36:	0f 83 18 02 00 00    	jae    0x40a154
409f3c:	b8 60 06 00 00       	mov    $0x660,%eax
409f41:	66 3b f0             	cmp    %ax,%si
409f44:	0f 82 26 02 00 00    	jb     0x40a170
409f4a:	83 c0 0a             	add    $0xa,%eax
409f4d:	66 3b f0             	cmp    %ax,%si
409f50:	73 0d                	jae    0x409f5f
409f52:	0f b7 c6             	movzwl %si,%eax
409f55:	2d 60 06 00 00       	sub    $0x660,%eax
409f5a:	e9 0c 02 00 00       	jmp    0x40a16b
409f5f:	b8 f0 06 00 00       	mov    $0x6f0,%eax
409f64:	66 3b f0             	cmp    %ax,%si
409f67:	0f 82 03 02 00 00    	jb     0x40a170
409f6d:	83 c0 0a             	add    $0xa,%eax
409f70:	66 3b f0             	cmp    %ax,%si
409f73:	73 0d                	jae    0x409f82
409f75:	0f b7 c6             	movzwl %si,%eax
409f78:	2d f0 06 00 00       	sub    $0x6f0,%eax
409f7d:	e9 e9 01 00 00       	jmp    0x40a16b
409f82:	b8 66 09 00 00       	mov    $0x966,%eax
409f87:	66 3b f0             	cmp    %ax,%si
409f8a:	0f 82 e0 01 00 00    	jb     0x40a170
409f90:	83 c0 0a             	add    $0xa,%eax
409f93:	66 3b f0             	cmp    %ax,%si
409f96:	73 0d                	jae    0x409fa5
409f98:	0f b7 c6             	movzwl %si,%eax
409f9b:	2d 66 09 00 00       	sub    $0x966,%eax
409fa0:	e9 c6 01 00 00       	jmp    0x40a16b
409fa5:	b8 e6 09 00 00       	mov    $0x9e6,%eax
409faa:	66 3b f0             	cmp    %ax,%si
409fad:	0f 82 bd 01 00 00    	jb     0x40a170
409fb3:	83 c0 0a             	add    $0xa,%eax
409fb6:	66 3b f0             	cmp    %ax,%si
409fb9:	73 0d                	jae    0x409fc8
409fbb:	0f b7 c6             	movzwl %si,%eax
409fbe:	2d e6 09 00 00       	sub    $0x9e6,%eax
409fc3:	e9 a3 01 00 00       	jmp    0x40a16b
409fc8:	b8 66 0a 00 00       	mov    $0xa66,%eax
409fcd:	66 3b f0             	cmp    %ax,%si
409fd0:	0f 82 9a 01 00 00    	jb     0x40a170
409fd6:	83 c0 0a             	add    $0xa,%eax
409fd9:	66 3b f0             	cmp    %ax,%si
409fdc:	73 0d                	jae    0x409feb
409fde:	0f b7 c6             	movzwl %si,%eax
409fe1:	2d 66 0a 00 00       	sub    $0xa66,%eax
409fe6:	e9 80 01 00 00       	jmp    0x40a16b
409feb:	b8 e6 0a 00 00       	mov    $0xae6,%eax
409ff0:	66 3b f0             	cmp    %ax,%si
409ff3:	0f 82 77 01 00 00    	jb     0x40a170
409ff9:	83 c0 0a             	add    $0xa,%eax
409ffc:	66 3b f0             	cmp    %ax,%si
409fff:	73 0d                	jae    0x40a00e
40a001:	0f b7 c6             	movzwl %si,%eax
40a004:	2d e6 0a 00 00       	sub    $0xae6,%eax
40a009:	e9 5d 01 00 00       	jmp    0x40a16b
40a00e:	b8 66 0b 00 00       	mov    $0xb66,%eax
40a013:	66 3b f0             	cmp    %ax,%si
40a016:	0f 82 54 01 00 00    	jb     0x40a170
40a01c:	83 c0 0a             	add    $0xa,%eax
40a01f:	66 3b f0             	cmp    %ax,%si
40a022:	73 0d                	jae    0x40a031
40a024:	0f b7 c6             	movzwl %si,%eax
40a027:	2d 66 0b 00 00       	sub    $0xb66,%eax
40a02c:	e9 3a 01 00 00       	jmp    0x40a16b
40a031:	b8 66 0c 00 00       	mov    $0xc66,%eax
40a036:	66 3b f0             	cmp    %ax,%si
40a039:	0f 82 31 01 00 00    	jb     0x40a170
40a03f:	83 c0 0a             	add    $0xa,%eax
40a042:	66 3b f0             	cmp    %ax,%si
40a045:	73 0d                	jae    0x40a054
40a047:	0f b7 c6             	movzwl %si,%eax
40a04a:	2d 66 0c 00 00       	sub    $0xc66,%eax
40a04f:	e9 17 01 00 00       	jmp    0x40a16b
40a054:	b8 e6 0c 00 00       	mov    $0xce6,%eax
40a059:	66 3b f0             	cmp    %ax,%si
40a05c:	0f 82 0e 01 00 00    	jb     0x40a170
40a062:	83 c0 0a             	add    $0xa,%eax
40a065:	66 3b f0             	cmp    %ax,%si
40a068:	73 0d                	jae    0x40a077
40a06a:	0f b7 c6             	movzwl %si,%eax
40a06d:	2d e6 0c 00 00       	sub    $0xce6,%eax
40a072:	e9 f4 00 00 00       	jmp    0x40a16b
40a077:	b8 66 0d 00 00       	mov    $0xd66,%eax
40a07c:	66 3b f0             	cmp    %ax,%si
40a07f:	0f 82 eb 00 00 00    	jb     0x40a170
40a085:	83 c0 0a             	add    $0xa,%eax
40a088:	66 3b f0             	cmp    %ax,%si
40a08b:	73 0d                	jae    0x40a09a
40a08d:	0f b7 c6             	movzwl %si,%eax
40a090:	2d 66 0d 00 00       	sub    $0xd66,%eax
40a095:	e9 d1 00 00 00       	jmp    0x40a16b
40a09a:	b8 50 0e 00 00       	mov    $0xe50,%eax
40a09f:	66 3b f0             	cmp    %ax,%si
40a0a2:	0f 82 c8 00 00 00    	jb     0x40a170
40a0a8:	83 c0 0a             	add    $0xa,%eax
40a0ab:	66 3b f0             	cmp    %ax,%si
40a0ae:	73 0d                	jae    0x40a0bd
40a0b0:	0f b7 c6             	movzwl %si,%eax
40a0b3:	2d 50 0e 00 00       	sub    $0xe50,%eax
40a0b8:	e9 ae 00 00 00       	jmp    0x40a16b
40a0bd:	b8 d0 0e 00 00       	mov    $0xed0,%eax
40a0c2:	66 3b f0             	cmp    %ax,%si
40a0c5:	0f 82 a5 00 00 00    	jb     0x40a170
40a0cb:	83 c0 0a             	add    $0xa,%eax
40a0ce:	66 3b f0             	cmp    %ax,%si
40a0d1:	73 0d                	jae    0x40a0e0
40a0d3:	0f b7 c6             	movzwl %si,%eax
40a0d6:	2d d0 0e 00 00       	sub    $0xed0,%eax
40a0db:	e9 8b 00 00 00       	jmp    0x40a16b
40a0e0:	b8 20 0f 00 00       	mov    $0xf20,%eax
40a0e5:	66 3b f0             	cmp    %ax,%si
40a0e8:	0f 82 82 00 00 00    	jb     0x40a170
40a0ee:	83 c0 0a             	add    $0xa,%eax
40a0f1:	66 3b f0             	cmp    %ax,%si
40a0f4:	73 0a                	jae    0x40a100
40a0f6:	0f b7 c6             	movzwl %si,%eax
40a0f9:	2d 20 0f 00 00       	sub    $0xf20,%eax
40a0fe:	eb 6b                	jmp    0x40a16b
40a100:	b8 40 10 00 00       	mov    $0x1040,%eax
40a105:	66 3b f0             	cmp    %ax,%si
40a108:	72 66                	jb     0x40a170
40a10a:	83 c0 0a             	add    $0xa,%eax
40a10d:	66 3b f0             	cmp    %ax,%si
40a110:	73 0a                	jae    0x40a11c
40a112:	0f b7 c6             	movzwl %si,%eax
40a115:	2d 40 10 00 00       	sub    $0x1040,%eax
40a11a:	eb 4f                	jmp    0x40a16b
40a11c:	b8 e0 17 00 00       	mov    $0x17e0,%eax
40a121:	66 3b f0             	cmp    %ax,%si
40a124:	72 4a                	jb     0x40a170
40a126:	83 c0 0a             	add    $0xa,%eax
40a129:	66 3b f0             	cmp    %ax,%si
40a12c:	73 0a                	jae    0x40a138
40a12e:	0f b7 c6             	movzwl %si,%eax
40a131:	2d e0 17 00 00       	sub    $0x17e0,%eax
40a136:	eb 33                	jmp    0x40a16b
40a138:	b8 10 18 00 00       	mov    $0x1810,%eax
40a13d:	66 3b f0             	cmp    %ax,%si
40a140:	72 2e                	jb     0x40a170
40a142:	83 c0 0a             	add    $0xa,%eax
40a145:	66 3b f0             	cmp    %ax,%si
40a148:	73 26                	jae    0x40a170
40a14a:	0f b7 c6             	movzwl %si,%eax
40a14d:	2d 10 18 00 00       	sub    $0x1810,%eax
40a152:	eb 17                	jmp    0x40a16b
40a154:	b8 1a ff 00 00       	mov    $0xff1a,%eax
40a159:	66 3b f0             	cmp    %ax,%si
40a15c:	73 0a                	jae    0x40a168
40a15e:	0f b7 c6             	movzwl %si,%eax
40a161:	2d 10 ff 00 00       	sub    $0xff10,%eax
40a166:	eb 03                	jmp    0x40a16b
40a168:	83 c8 ff             	or     $0xffffffff,%eax
40a16b:	83 f8 ff             	cmp    $0xffffffff,%eax
40a16e:	75 30                	jne    0x40a1a0
40a170:	6a 41                	push   $0x41
40a172:	58                   	pop    %eax
40a173:	66 3b c6             	cmp    %si,%ax
40a176:	77 08                	ja     0x40a180
40a178:	6a 5a                	push   $0x5a
40a17a:	58                   	pop    %eax
40a17b:	66 3b f0             	cmp    %ax,%si
40a17e:	76 09                	jbe    0x40a189
40a180:	8d 46 9f             	lea    -0x61(%esi),%eax
40a183:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
40a187:	77 14                	ja     0x40a19d
40a189:	8d 46 9f             	lea    -0x61(%esi),%eax
40a18c:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
40a190:	0f b7 c6             	movzwl %si,%eax
40a193:	77 03                	ja     0x40a198
40a195:	83 e8 20             	sub    $0x20,%eax
40a198:	83 c0 c9             	add    $0xffffffc9,%eax
40a19b:	eb 03                	jmp    0x40a1a0
40a19d:	83 c8 ff             	or     $0xffffffff,%eax
40a1a0:	83 f8 ff             	cmp    $0xffffffff,%eax
40a1a3:	74 31                	je     0x40a1d6
40a1a5:	3b 45 14             	cmp    0x14(%ebp),%eax
40a1a8:	73 2c                	jae    0x40a1d6
40a1aa:	8b 75 f8             	mov    -0x8(%ebp),%esi
40a1ad:	83 cb 08             	or     $0x8,%ebx
40a1b0:	3b f1                	cmp    %ecx,%esi
40a1b2:	72 0b                	jb     0x40a1bf
40a1b4:	75 04                	jne    0x40a1ba
40a1b6:	3b c2                	cmp    %edx,%eax
40a1b8:	76 05                	jbe    0x40a1bf
40a1ba:	83 cb 04             	or     $0x4,%ebx
40a1bd:	eb 09                	jmp    0x40a1c8
40a1bf:	0f af 75 14          	imul   0x14(%ebp),%esi
40a1c3:	03 f0                	add    %eax,%esi
40a1c5:	89 75 f8             	mov    %esi,-0x8(%ebp)
40a1c8:	0f b7 37             	movzwl (%edi),%esi
40a1cb:	83 c7 02             	add    $0x2,%edi
40a1ce:	89 7d 0c             	mov    %edi,0xc(%ebp)
40a1d1:	e9 39 fd ff ff       	jmp    0x409f0f
40a1d6:	56                   	push   %esi
40a1d7:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40a1da:	e8 92 00 00 00       	call   0x40a271
40a1df:	f6 c3 08             	test   $0x8,%bl
40a1e2:	75 0a                	jne    0x40a1ee
40a1e4:	8b 45 f4             	mov    -0xc(%ebp),%eax
40a1e7:	33 db                	xor    %ebx,%ebx
40a1e9:	89 45 0c             	mov    %eax,0xc(%ebp)
40a1ec:	eb 41                	jmp    0x40a22f
40a1ee:	8b 75 f8             	mov    -0x8(%ebp),%esi
40a1f1:	56                   	push   %esi
40a1f2:	53                   	push   %ebx
40a1f3:	e8 11 f7 ff ff       	call   0x409909
40a1f8:	59                   	pop    %ecx
40a1f9:	59                   	pop    %ecx
40a1fa:	84 c0                	test   %al,%al
40a1fc:	74 28                	je     0x40a226
40a1fe:	e8 04 db ff ff       	call   0x407d07
40a203:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
40a209:	f6 c3 01             	test   $0x1,%bl
40a20c:	75 05                	jne    0x40a213
40a20e:	83 ce ff             	or     $0xffffffff,%esi
40a211:	eb 1a                	jmp    0x40a22d
40a213:	f6 c3 02             	test   $0x2,%bl
40a216:	74 07                	je     0x40a21f
40a218:	bb 00 00 00 80       	mov    $0x80000000,%ebx
40a21d:	eb 10                	jmp    0x40a22f
40a21f:	bb ff ff ff 7f       	mov    $0x7fffffff,%ebx
40a224:	eb 09                	jmp    0x40a22f
40a226:	f6 c3 02             	test   $0x2,%bl
40a229:	74 02                	je     0x40a22d
40a22b:	f7 de                	neg    %esi
40a22d:	8b de                	mov    %esi,%ebx
40a22f:	80 7d f0 00          	cmpb   $0x0,-0x10(%ebp)
40a233:	5e                   	pop    %esi
40a234:	0f 84 65 f9 ff ff    	je     0x409b9f
40a23a:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40a23d:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
40a244:	e9 56 f9 ff ff       	jmp    0x409b9f
40a249:	8b ff                	mov    %edi,%edi
40a24b:	55                   	push   %ebp
40a24c:	8b ec                	mov    %esp,%ebp
40a24e:	ff 09                	decl   (%ecx)
40a250:	8a 45 08             	mov    0x8(%ebp),%al
40a253:	8b 09                	mov    (%ecx),%ecx
40a255:	84 c0                	test   %al,%al
40a257:	74 14                	je     0x40a26d
40a259:	38 01                	cmp    %al,(%ecx)
40a25b:	74 10                	je     0x40a26d
40a25d:	e8 a5 da ff ff       	call   0x407d07
40a262:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40a268:	e8 c1 d9 ff ff       	call   0x407c2e
40a26d:	5d                   	pop    %ebp
40a26e:	c2 04 00             	ret    $0x4
40a271:	8b ff                	mov    %edi,%edi
40a273:	55                   	push   %ebp
40a274:	8b ec                	mov    %esp,%ebp
40a276:	83 01 fe             	addl   $0xfffffffe,(%ecx)
40a279:	66 8b 45 08          	mov    0x8(%ebp),%ax
40a27d:	8b 09                	mov    (%ecx),%ecx
40a27f:	66 85 c0             	test   %ax,%ax
40a282:	74 15                	je     0x40a299
40a284:	66 39 01             	cmp    %ax,(%ecx)
40a287:	74 10                	je     0x40a299
40a289:	e8 79 da ff ff       	call   0x407d07
40a28e:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40a294:	e8 95 d9 ff ff       	call   0x407c2e
40a299:	5d                   	pop    %ebp
40a29a:	c2 04 00             	ret    $0x4
40a29d:	83 39 00             	cmpl   $0x0,(%ecx)
40a2a0:	75 13                	jne    0x40a2b5
40a2a2:	e8 60 da ff ff       	call   0x407d07
40a2a7:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40a2ad:	e8 7c d9 ff ff       	call   0x407c2e
40a2b2:	32 c0                	xor    %al,%al
40a2b4:	c3                   	ret
40a2b5:	b0 01                	mov    $0x1,%al
40a2b7:	c3                   	ret
40a2b8:	8b ff                	mov    %edi,%edi
40a2ba:	55                   	push   %ebp
40a2bb:	8b ec                	mov    %esp,%ebp
40a2bd:	8b 45 10             	mov    0x10(%ebp),%eax
40a2c0:	85 c0                	test   %eax,%eax
40a2c2:	74 0d                	je     0x40a2d1
40a2c4:	8b 00                	mov    (%eax),%eax
40a2c6:	8b 08                	mov    (%eax),%ecx
40a2c8:	8b 45 08             	mov    0x8(%ebp),%eax
40a2cb:	0f b7 04 41          	movzwl (%ecx,%eax,2),%eax
40a2cf:	eb 0c                	jmp    0x40a2dd
40a2d1:	e8 54 66 00 00       	call   0x41092a
40a2d6:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a2d9:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
40a2dd:	23 45 0c             	and    0xc(%ebp),%eax
40a2e0:	5d                   	pop    %ebp
40a2e1:	c3                   	ret
40a2e2:	8b ff                	mov    %edi,%edi
40a2e4:	55                   	push   %ebp
40a2e5:	8b ec                	mov    %esp,%ebp
40a2e7:	8b 4d 10             	mov    0x10(%ebp),%ecx
40a2ea:	85 c9                	test   %ecx,%ecx
40a2ec:	74 16                	je     0x40a304
40a2ee:	8b 01                	mov    (%ecx),%eax
40a2f0:	83 78 04 01          	cmpl   $0x1,0x4(%eax)
40a2f4:	7e 0e                	jle    0x40a304
40a2f6:	51                   	push   %ecx
40a2f7:	ff 75 0c             	push   0xc(%ebp)
40a2fa:	ff 75 08             	push   0x8(%ebp)
40a2fd:	e8 23 74 00 00       	call   0x411725
40a302:	eb 0c                	jmp    0x40a310
40a304:	51                   	push   %ecx
40a305:	ff 75 0c             	push   0xc(%ebp)
40a308:	ff 75 08             	push   0x8(%ebp)
40a30b:	e8 a8 ff ff ff       	call   0x40a2b8
40a310:	83 c4 0c             	add    $0xc,%esp
40a313:	5d                   	pop    %ebp
40a314:	c3                   	ret
40a315:	8b ff                	mov    %edi,%edi
40a317:	55                   	push   %ebp
40a318:	8b ec                	mov    %esp,%ebp
40a31a:	51                   	push   %ecx
40a31b:	6a 01                	push   $0x1
40a31d:	6a 0a                	push   $0xa
40a31f:	51                   	push   %ecx
40a320:	51                   	push   %ecx
40a321:	8b c4                	mov    %esp,%eax
40a323:	6a 00                	push   $0x0
40a325:	ff 75 08             	push   0x8(%ebp)
40a328:	50                   	push   %eax
40a329:	e8 27 02 00 00       	call   0x40a555
40a32e:	83 c4 0c             	add    $0xc,%esp
40a331:	6a 00                	push   $0x0
40a333:	e8 04 f6 ff ff       	call   0x40993c
40a338:	83 c4 14             	add    $0x14,%esp
40a33b:	8b e5                	mov    %ebp,%esp
40a33d:	5d                   	pop    %ebp
40a33e:	c3                   	ret
40a33f:	8b ff                	mov    %edi,%edi
40a341:	55                   	push   %ebp
40a342:	8b ec                	mov    %esp,%ebp
40a344:	83 ec 10             	sub    $0x10,%esp
40a347:	ff 75 0c             	push   0xc(%ebp)
40a34a:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40a34d:	e8 5f b3 ff ff       	call   0x4056b1
40a352:	8d 45 f4             	lea    -0xc(%ebp),%eax
40a355:	50                   	push   %eax
40a356:	6a 04                	push   $0x4
40a358:	ff 75 08             	push   0x8(%ebp)
40a35b:	e8 82 ff ff ff       	call   0x40a2e2
40a360:	83 c4 0c             	add    $0xc,%esp
40a363:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
40a367:	74 0a                	je     0x40a373