40e126:	b9 10 ff 00 00       	mov    $0xff10,%ecx
40e12b:	66 3b f1             	cmp    %cx,%si
40e12e:	0f 83 38 01 00 00    	jae    0x40e26c
40e134:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40e137:	66 3b f1             	cmp    %cx,%si
40e13a:	0f 82 41 01 00 00    	jb     0x40e281
40e140:	66 3b 75 f4          	cmp    -0xc(%ebp),%si
40e144:	72 d6                	jb     0x40e11c
40e146:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40e149:	66 3b f1             	cmp    %cx,%si
40e14c:	0f 82 2f 01 00 00    	jb     0x40e281
40e152:	66 3b 75 ec          	cmp    -0x14(%ebp),%si
40e156:	72 c4                	jb     0x40e11c
40e158:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40e15b:	66 3b f1             	cmp    %cx,%si
40e15e:	0f 82 1d 01 00 00    	jb     0x40e281
40e164:	66 3b 75 e4          	cmp    -0x1c(%ebp),%si
40e168:	72 b2                	jb     0x40e11c
40e16a:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40e16d:	66 3b f1             	cmp    %cx,%si
40e170:	0f 82 0b 01 00 00    	jb     0x40e281
40e176:	66 3b 75 dc          	cmp    -0x24(%ebp),%si
40e17a:	72 a0                	jb     0x40e11c
40e17c:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40e17f:	66 3b f1             	cmp    %cx,%si
40e182:	0f 82 f9 00 00 00    	jb     0x40e281
40e188:	66 3b 75 d4          	cmp    -0x2c(%ebp),%si
40e18c:	72 8e                	jb     0x40e11c
40e18e:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40e191:	66 3b f1             	cmp    %cx,%si
40e194:	0f 82 e7 00 00 00    	jb     0x40e281
40e19a:	66 3b 75 cc          	cmp    -0x34(%ebp),%si
40e19e:	0f 82 78 ff ff ff    	jb     0x40e11c
40e1a4:	8b 4d c8             	mov    -0x38(%ebp),%ecx
40e1a7:	66 3b f1             	cmp    %cx,%si
40e1aa:	0f 82 d1 00 00 00    	jb     0x40e281
40e1b0:	66 3b 75 c4          	cmp    -0x3c(%ebp),%si
40e1b4:	0f 82 62 ff ff ff    	jb     0x40e11c
40e1ba:	8b 4d c0             	mov    -0x40(%ebp),%ecx
40e1bd:	66 3b f1             	cmp    %cx,%si
40e1c0:	0f 82 bb 00 00 00    	jb     0x40e281
40e1c6:	66 3b 75 bc          	cmp    -0x44(%ebp),%si
40e1ca:	0f 82 4c ff ff ff    	jb     0x40e11c
40e1d0:	8b 4d b8             	mov    -0x48(%ebp),%ecx
40e1d3:	66 3b f1             	cmp    %cx,%si
40e1d6:	0f 82 a5 00 00 00    	jb     0x40e281
40e1dc:	66 3b 75 b4          	cmp    -0x4c(%ebp),%si
40e1e0:	0f 82 36 ff ff ff    	jb     0x40e11c
40e1e6:	8b 4d b0             	mov    -0x50(%ebp),%ecx
40e1e9:	66 3b f1             	cmp    %cx,%si
40e1ec:	0f 82 8f 00 00 00    	jb     0x40e281
40e1f2:	66 3b 75 ac          	cmp    -0x54(%ebp),%si
40e1f6:	0f 82 20 ff ff ff    	jb     0x40e11c
40e1fc:	8b 4d a8             	mov    -0x58(%ebp),%ecx
40e1ff:	66 3b f1             	cmp    %cx,%si
40e202:	72 7d                	jb     0x40e281
40e204:	66 3b 75 a4          	cmp    -0x5c(%ebp),%si
40e208:	0f 82 0e ff ff ff    	jb     0x40e11c
40e20e:	8b 4d a0             	mov    -0x60(%ebp),%ecx
40e211:	66 3b f1             	cmp    %cx,%si
40e214:	72 6b                	jb     0x40e281
40e216:	66 3b 75 9c          	cmp    -0x64(%ebp),%si
40e21a:	0f 82 fc fe ff ff    	jb     0x40e11c
40e220:	8b 4d 98             	mov    -0x68(%ebp),%ecx
40e223:	66 3b f1             	cmp    %cx,%si
40e226:	72 59                	jb     0x40e281
40e228:	66 3b 75 94          	cmp    -0x6c(%ebp),%si
40e22c:	0f 82 ea fe ff ff    	jb     0x40e11c
40e232:	8b 4d 90             	mov    -0x70(%ebp),%ecx
40e235:	66 3b f1             	cmp    %cx,%si
40e238:	72 47                	jb     0x40e281
40e23a:	66 3b 75 8c          	cmp    -0x74(%ebp),%si
40e23e:	0f 82 d8 fe ff ff    	jb     0x40e11c
40e244:	8b 4d 88             	mov    -0x78(%ebp),%ecx
40e247:	66 3b f1             	cmp    %cx,%si
40e24a:	72 35                	jb     0x40e281
40e24c:	66 3b 75 84          	cmp    -0x7c(%ebp),%si
40e250:	0f 82 c6 fe ff ff    	jb     0x40e11c
40e256:	8b 4d 80             	mov    -0x80(%ebp),%ecx
40e259:	66 3b f1             	cmp    %cx,%si
40e25c:	72 23                	jb     0x40e281
40e25e:	66 3b b5 7c ff ff ff 	cmp    -0x84(%ebp),%si
40e265:	73 1a                	jae    0x40e281
40e267:	e9 b0 fe ff ff       	jmp    0x40e11c
40e26c:	66 3b b5 78 ff ff ff 	cmp    -0x88(%ebp),%si
40e273:	0f 82 a3 fe ff ff    	jb     0x40e11c
40e279:	83 c8 ff             	or     $0xffffffff,%eax
40e27c:	83 f8 ff             	cmp    $0xffffffff,%eax
40e27f:	75 2a                	jne    0x40e2ab
40e281:	0f b7 c6             	movzwl %si,%eax
40e284:	83 f8 41             	cmp    $0x41,%eax
40e287:	72 0a                	jb     0x40e293
40e289:	83 f8 5a             	cmp    $0x5a,%eax
40e28c:	77 05                	ja     0x40e293
40e28e:	8d 48 9f             	lea    -0x61(%eax),%ecx
40e291:	eb 08                	jmp    0x40e29b
40e293:	8d 48 9f             	lea    -0x61(%eax),%ecx
40e296:	83 f9 19             	cmp    $0x19,%ecx
40e299:	77 0d                	ja     0x40e2a8
40e29b:	83 f9 19             	cmp    $0x19,%ecx
40e29e:	77 03                	ja     0x40e2a3
40e2a0:	83 c0 e0             	add    $0xffffffe0,%eax
40e2a3:	83 c0 c9             	add    $0xffffffc9,%eax
40e2a6:	eb 03                	jmp    0x40e2ab
40e2a8:	83 c8 ff             	or     $0xffffffff,%eax
40e2ab:	83 f8 ff             	cmp    $0xffffffff,%eax
40e2ae:	74 35                	je     0x40e2e5
40e2b0:	3b 45 14             	cmp    0x14(%ebp),%eax
40e2b3:	73 30                	jae    0x40e2e5
40e2b5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e2b8:	3b cf                	cmp    %edi,%ecx
40e2ba:	72 0a                	jb     0x40e2c6
40e2bc:	75 04                	jne    0x40e2c2
40e2be:	3b c2                	cmp    %edx,%eax
40e2c0:	76 04                	jbe    0x40e2c6
40e2c2:	6a 0c                	push   $0xc
40e2c4:	eb 0b                	jmp    0x40e2d1
40e2c6:	0f af 4d 14          	imul   0x14(%ebp),%ecx
40e2ca:	6a 08                	push   $0x8
40e2cc:	03 c8                	add    %eax,%ecx
40e2ce:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40e2d1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40e2d4:	58                   	pop    %eax
40e2d5:	0f b7 31             	movzwl (%ecx),%esi
40e2d8:	83 c1 02             	add    $0x2,%ecx
40e2db:	89 4d 0c             	mov    %ecx,0xc(%ebp)
40e2de:	0b d8                	or     %eax,%ebx
40e2e0:	e9 23 fe ff ff       	jmp    0x40e108
40e2e5:	56                   	push   %esi
40e2e6:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40e2e9:	e8 9c 00 00 00       	call   0x40e38a
40e2ee:	f6 c3 08             	test   $0x8,%bl
40e2f1:	75 0d                	jne    0x40e300
40e2f3:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
40e2f9:	33 db                	xor    %ebx,%ebx
40e2fb:	89 45 0c             	mov    %eax,0xc(%ebp)
40e2fe:	eb 41                	jmp    0x40e341
40e300:	8b 75 fc             	mov    -0x4(%ebp),%esi
40e303:	56                   	push   %esi
40e304:	53                   	push   %ebx
40e305:	e8 fb f7 ff ff       	call   0x40db05
40e30a:	59                   	pop    %ecx
40e30b:	59                   	pop    %ecx
40e30c:	84 c0                	test   %al,%al
40e30e:	74 28                	je     0x40e338
40e310:	e8 be 09 00 00       	call   0x40ecd3
40e315:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
40e31b:	f6 c3 01             	test   $0x1,%bl
40e31e:	75 05                	jne    0x40e325
40e320:	83 ce ff             	or     $0xffffffff,%esi
40e323:	eb 1a                	jmp    0x40e33f
40e325:	f6 c3 02             	test   $0x2,%bl
40e328:	74 07                	je     0x40e331
40e32a:	bb 00 00 00 80       	mov    $0x80000000,%ebx
40e32f:	eb 10                	jmp    0x40e341
40e331:	bb ff ff ff 7f       	mov    $0x7fffffff,%ebx
40e336:	eb 09                	jmp    0x40e341
40e338:	f6 c3 02             	test   $0x2,%bl
40e33b:	74 02                	je     0x40e33f
40e33d:	f7 de                	neg    %esi
40e33f:	8b de                	mov    %esi,%ebx
40e341:	80 bd 6c ff ff ff 00 	cmpb   $0x0,-0x94(%ebp)
40e348:	5e                   	pop    %esi
40e349:	0f 84 46 fa ff ff    	je     0x40dd95
40e34f:	8b 85 60 ff ff ff    	mov    -0xa0(%ebp),%eax
40e355:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
40e35c:	e9 34 fa ff ff       	jmp    0x40dd95
40e361:	8b ff                	mov    %edi,%edi
40e363:	55                   	push   %ebp
40e364:	8b ec                	mov    %esp,%ebp
40e366:	8b 01                	mov    (%ecx),%eax
40e368:	48                   	dec    %eax
40e369:	89 01                	mov    %eax,(%ecx)
40e36b:	8a 4d 08             	mov    0x8(%ebp),%cl
40e36e:	84 c9                	test   %cl,%cl
40e370:	74 14                	je     0x40e386
40e372:	38 08                	cmp    %cl,(%eax)
40e374:	74 10                	je     0x40e386
40e376:	e8 58 09 00 00       	call   0x40ecd3
40e37b:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40e381:	e8 90 08 00 00       	call   0x40ec16
40e386:	5d                   	pop    %ebp
40e387:	c2 04 00             	ret    $0x4
40e38a:	8b ff                	mov    %edi,%edi
40e38c:	55                   	push   %ebp
40e38d:	8b ec                	mov    %esp,%ebp
40e38f:	8b 01                	mov    (%ecx),%eax
40e391:	83 c0 fe             	add    $0xfffffffe,%eax
40e394:	89 01                	mov    %eax,(%ecx)
40e396:	66 8b 4d 08          	mov    0x8(%ebp),%cx
40e39a:	66 85 c9             	test   %cx,%cx
40e39d:	74 15                	je     0x40e3b4
40e39f:	66 39 08             	cmp    %cx,(%eax)
40e3a2:	74 10                	je     0x40e3b4
40e3a4:	e8 2a 09 00 00       	call   0x40ecd3
40e3a9:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40e3af:	e8 62 08 00 00       	call   0x40ec16
40e3b4:	5d                   	pop    %ebp
40e3b5:	c2 04 00             	ret    $0x4
40e3b8:	8b ff                	mov    %edi,%edi
40e3ba:	55                   	push   %ebp
40e3bb:	8b ec                	mov    %esp,%ebp
40e3bd:	8b 4d 10             	mov    0x10(%ebp),%ecx
40e3c0:	56                   	push   %esi
40e3c1:	85 c9                	test   %ecx,%ecx
40e3c3:	74 30                	je     0x40e3f5
40e3c5:	8b 55 08             	mov    0x8(%ebp),%edx
40e3c8:	8b 31                	mov    (%ecx),%esi
40e3ca:	8d 42 01             	lea    0x1(%edx),%eax
40e3cd:	3d 00 01 00 00       	cmp    $0x100,%eax
40e3d2:	77 0b                	ja     0x40e3df
40e3d4:	8b 06                	mov    (%esi),%eax
40e3d6:	0f b7 04 50          	movzwl (%eax,%edx,2),%eax
40e3da:	23 45 0c             	and    0xc(%ebp),%eax
40e3dd:	eb 2a                	jmp    0x40e409
40e3df:	83 7e 04 01          	cmpl   $0x1,0x4(%esi)
40e3e3:	7e 0c                	jle    0x40e3f1
40e3e5:	51                   	push   %ecx
40e3e6:	ff 75 0c             	push   0xc(%ebp)
40e3e9:	52                   	push   %edx
40e3ea:	e8 d2 4d 00 00       	call   0x4131c1
40e3ef:	eb 15                	jmp    0x40e406
40e3f1:	33 c0                	xor    %eax,%eax
40e3f3:	eb 14                	jmp    0x40e409
40e3f5:	ff 75 0c             	push   0xc(%ebp)
40e3f8:	ff 75 08             	push   0x8(%ebp)
40e3fb:	e8 bf 25 00 00       	call   0x4109bf
40e400:	50                   	push   %eax
40e401:	e8 27 d8 ff ff       	call   0x40bc2d
40e406:	83 c4 0c             	add    $0xc,%esp
40e409:	5e                   	pop    %esi
40e40a:	5d                   	pop    %ebp
40e40b:	c3                   	ret
40e40c:	cc                   	int3
40e40d:	cc                   	int3
40e40e:	cc                   	int3
40e40f:	cc                   	int3
40e410:	53                   	push   %ebx
40e411:	56                   	push   %esi
40e412:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40e416:	8b 54 24 10          	mov    0x10(%esp),%edx
40e41a:	8b 5c 24 14          	mov    0x14(%esp),%ebx
40e41e:	f7 c3 ff ff ff ff    	test   $0xffffffff,%ebx
40e424:	74 50                	je     0x40e476
40e426:	2b ca                	sub    %edx,%ecx
40e428:	f7 c2 03 00 00 00    	test   $0x3,%edx
40e42e:	74 17                	je     0x40e447
40e430:	0f b6 04 11          	movzbl (%ecx,%edx,1),%eax
40e434:	3a 02                	cmp    (%edx),%al
40e436:	75 48                	jne    0x40e480
40e438:	85 c0                	test   %eax,%eax
40e43a:	74 3a                	je     0x40e476
40e43c:	42                   	inc    %edx
40e43d:	83 eb 01             	sub    $0x1,%ebx
40e440:	76 34                	jbe    0x40e476
40e442:	f6 c2 03             	test   $0x3,%dl
40e445:	75 e9                	jne    0x40e430
40e447:	8d 04 11             	lea    (%ecx,%edx,1),%eax
40e44a:	25 ff 0f 00 00       	and    $0xfff,%eax
40e44f:	3d fc 0f 00 00       	cmp    $0xffc,%eax
40e454:	77 da                	ja     0x40e430
40e456:	8b 04 11             	mov    (%ecx,%edx,1),%eax
40e459:	3b 02                	cmp    (%edx),%eax
40e45b:	75 d3                	jne    0x40e430
40e45d:	83 eb 04             	sub    $0x4,%ebx
40e460:	76 14                	jbe    0x40e476
40e462:	8d b0 ff fe fe fe    	lea    -0x1010101(%eax),%esi
40e468:	83 c2 04             	add    $0x4,%edx
40e46b:	f7 d0                	not    %eax
40e46d:	23 c6                	and    %esi,%eax
40e46f:	a9 80 80 80 80       	test   $0x80808080,%eax
40e474:	74 d1                	je     0x40e447
40e476:	33 c0                	xor    %eax,%eax
40e478:	5e                   	pop    %esi
40e479:	5b                   	pop    %ebx
40e47a:	c3                   	ret
40e47b:	eb 03                	jmp    0x40e480
40e47d:	cc                   	int3
40e47e:	cc                   	int3
40e47f:	cc                   	int3
40e480:	1b c0                	sbb    %eax,%eax
40e482:	83 c8 01             	or     $0x1,%eax
40e485:	5e                   	pop    %esi
40e486:	5b                   	pop    %ebx
40e487:	c3                   	ret
40e488:	8b ff                	mov    %edi,%edi
40e48a:	55                   	push   %ebp
40e48b:	8b ec                	mov    %esp,%ebp
40e48d:	8b 45 10             	mov    0x10(%ebp),%eax
40e490:	85 c0                	test   %eax,%eax
40e492:	75 02                	jne    0x40e496
40e494:	5d                   	pop    %ebp
40e495:	c3                   	ret
40e496:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40e499:	8b 55 08             	mov    0x8(%ebp),%edx
40e49c:	56                   	push   %esi
40e49d:	83 e8 01             	sub    $0x1,%eax
40e4a0:	74 15                	je     0x40e4b7
40e4a2:	0f b7 32             	movzwl (%edx),%esi
40e4a5:	66 85 f6             	test   %si,%si
40e4a8:	74 0d                	je     0x40e4b7
40e4aa:	66 3b 31             	cmp    (%ecx),%si
40e4ad:	75 08                	jne    0x40e4b7
40e4af:	83 c2 02             	add    $0x2,%edx
40e4b2:	83 c1 02             	add    $0x2,%ecx
40e4b5:	eb e6                	jmp    0x40e49d
40e4b7:	0f b7 02             	movzwl (%edx),%eax
40e4ba:	0f b7 09             	movzwl (%ecx),%ecx
40e4bd:	2b c1                	sub    %ecx,%eax
40e4bf:	5e                   	pop    %esi
40e4c0:	5d                   	pop    %ebp
40e4c1:	c3                   	ret
40e4c2:	6a 08                	push   $0x8
40e4c4:	68 00 3f 42 00       	push   $0x423f00
40e4c9:	e8 02 a5 ff ff       	call   0x4089d0
40e4ce:	8b 45 08             	mov    0x8(%ebp),%eax
40e4d1:	ff 30                	push   (%eax)
40e4d3:	e8 29 1d 00 00       	call   0x410201
40e4d8:	59                   	pop    %ecx
40e4d9:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40e4dd:	8b 45 0c             	mov    0xc(%ebp),%eax
40e4e0:	8b 00                	mov    (%eax),%eax
40e4e2:	8b 00                	mov    (%eax),%eax
40e4e4:	8b 40 48             	mov    0x48(%eax),%eax
40e4e7:	f0 ff 00             	lock incl (%eax)
40e4ea:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40e4f1:	e8 12 00 00 00       	call   0x40e508
40e4f6:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40e4f9:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40e500:	59                   	pop    %ecx
40e501:	5f                   	pop    %edi
40e502:	5e                   	pop    %esi
40e503:	5b                   	pop    %ebx
40e504:	c9                   	leave
40e505:	c2 0c 00             	ret    $0xc
40e508:	8b 45 10             	mov    0x10(%ebp),%eax
40e50b:	ff 30                	push   (%eax)
40e50d:	e8 3f 1d 00 00       	call   0x410251
40e512:	59                   	pop    %ecx
40e513:	c3                   	ret
40e514:	6a 08                	push   $0x8
40e516:	68 40 3f 42 00       	push   $0x423f40
40e51b:	e8 b0 a4 ff ff       	call   0x4089d0
40e520:	8b 45 08             	mov    0x8(%ebp),%eax
40e523:	ff 30                	push   (%eax)
40e525:	e8 d7 1c 00 00       	call   0x410201
40e52a:	59                   	pop    %ecx
40e52b:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40e52f:	8b 45 0c             	mov    0xc(%ebp),%eax
40e532:	8b 00                	mov    (%eax),%eax