40a183:	e8 2c fa ff ff       	call   0x409bb4
40a188:	59                   	pop    %ecx
40a189:	c6 45 e1 00          	movb   $0x0,-0x1f(%ebp)
40a18d:	8b 75 fc             	mov    -0x4(%ebp),%esi
40a190:	e9 95 00 00 00       	jmp    0x40a22a
40a195:	25 ff 00 00 00       	and    $0xff,%eax
40a19a:	0f a3 05 0c d1 45 00 	bt     %eax,0x45d10c
40a1a1:	73 0b                	jae    0x40a1ae
40a1a3:	8b c6                	mov    %esi,%eax
40a1a5:	e8 9a 21 00 00       	call   0x40c344
40a1aa:	8b f0                	mov    %eax,%esi
40a1ac:	eb 7c                	jmp    0x40a22a
40a1ae:	33 c0                	xor    %eax,%eax
40a1b0:	8a 06                	mov    (%esi),%al
40a1b2:	83 f8 48             	cmp    $0x48,%eax
40a1b5:	7f 13                	jg     0x40a1ca
40a1b7:	74 7b                	je     0x40a234
40a1b9:	83 e8 22             	sub    $0x22,%eax
40a1bc:	74 63                	je     0x40a221
40a1be:	83 e8 05             	sub    $0x5,%eax
40a1c1:	74 5e                	je     0x40a221
40a1c3:	83 e8 1a             	sub    $0x1a,%eax
40a1c6:	74 0e                	je     0x40a1d6
40a1c8:	eb 5f                	jmp    0x40a229
40a1ca:	83 e8 61             	sub    $0x61,%eax
40a1cd:	74 07                	je     0x40a1d6
40a1cf:	83 e8 07             	sub    $0x7,%eax
40a1d2:	74 60                	je     0x40a234
40a1d4:	eb 53                	jmp    0x40a229
40a1d6:	80 7d e1 00          	cmpb   $0x0,-0x1f(%ebp)
40a1da:	75 4d                	jne    0x40a229
40a1dc:	ba f4 a5 40 00       	mov    $0x40a5f4,%edx
40a1e1:	b9 05 00 00 00       	mov    $0x5,%ecx
40a1e6:	8b c6                	mov    %esi,%eax
40a1e8:	e8 7b e5 ff ff       	call   0x408768
40a1ed:	85 c0                	test   %eax,%eax
40a1ef:	74 2a                	je     0x40a21b
40a1f1:	ba fc a5 40 00       	mov    $0x40a5fc,%edx
40a1f6:	b9 03 00 00 00       	mov    $0x3,%ecx
40a1fb:	8b c6                	mov    %esi,%eax
40a1fd:	e8 66 e5 ff ff       	call   0x408768
40a202:	85 c0                	test   %eax,%eax
40a204:	74 15                	je     0x40a21b
40a206:	ba 00 a6 40 00       	mov    $0x40a600,%edx
40a20b:	b9 04 00 00 00       	mov    $0x4,%ecx
40a210:	8b c6                	mov    %esi,%eax
40a212:	e8 51 e5 ff ff       	call   0x408768
40a217:	85 c0                	test   %eax,%eax
40a219:	75 19                	jne    0x40a234
40a21b:	c6 45 e2 01          	movb   $0x1,-0x1e(%ebp)
40a21f:	eb 13                	jmp    0x40a234
40a221:	8a 45 e1             	mov    -0x1f(%ebp),%al
40a224:	34 01                	xor    $0x1,%al
40a226:	88 45 e1             	mov    %al,-0x1f(%ebp)
40a229:	46                   	inc    %esi
40a22a:	8a 06                	mov    (%esi),%al
40a22c:	84 c0                	test   %al,%al
40a22e:	0f 85 61 ff ff ff    	jne    0x40a195
40a234:	66 8b 45 ea          	mov    -0x16(%ebp),%ax
40a238:	80 7d e2 00          	cmpb   $0x0,-0x1e(%ebp)
40a23c:	74 15                	je     0x40a253
40a23e:	66 85 c0             	test   %ax,%ax
40a241:	75 06                	jne    0x40a249
40a243:	66 b8 0c 00          	mov    $0xc,%ax
40a247:	eb 0a                	jmp    0x40a253
40a249:	66 83 f8 0c          	cmp    $0xc,%ax
40a24d:	76 04                	jbe    0x40a253
40a24f:	66 83 e8 0c          	sub    $0xc,%ax
40a253:	83 7d f4 02          	cmpl   $0x2,-0xc(%ebp)
40a257:	7e 07                	jle    0x40a260
40a259:	c7 45 f4 02 00 00 00 	movl   $0x2,-0xc(%ebp)
40a260:	8b 55 08             	mov    0x8(%ebp),%edx
40a263:	52                   	push   %edx
40a264:	0f b7 c0             	movzwl %ax,%eax
40a267:	8b 55 f4             	mov    -0xc(%ebp),%edx
40a26a:	e8 95 f8 ff ff       	call   0x409b04
40a26f:	59                   	pop    %ecx
40a270:	e9 3f 03 00 00       	jmp    0x40a5b4
40a275:	55                   	push   %ebp
40a276:	e8 d5 f8 ff ff       	call   0x409b50
40a27b:	59                   	pop    %ecx
40a27c:	55                   	push   %ebp
40a27d:	e8 32 f9 ff ff       	call   0x409bb4
40a282:	59                   	pop    %ecx
40a283:	83 7d f4 02          	cmpl   $0x2,-0xc(%ebp)
40a287:	7e 07                	jle    0x40a290
40a289:	c7 45 f4 02 00 00 00 	movl   $0x2,-0xc(%ebp)
40a290:	8b 45 08             	mov    0x8(%ebp),%eax
40a293:	50                   	push   %eax
40a294:	0f b7 45 e8          	movzwl -0x18(%ebp),%eax
40a298:	8b 55 f4             	mov    -0xc(%ebp),%edx
40a29b:	e8 64 f8 ff ff       	call   0x409b04
40a2a0:	59                   	pop    %ecx
40a2a1:	e9 0e 03 00 00       	jmp    0x40a5b4
40a2a6:	55                   	push   %ebp
40a2a7:	e8 a4 f8 ff ff       	call   0x409b50
40a2ac:	59                   	pop    %ecx
40a2ad:	55                   	push   %ebp
40a2ae:	e8 01 f9 ff ff       	call   0x409bb4
40a2b3:	59                   	pop    %ecx
40a2b4:	83 7d f4 02          	cmpl   $0x2,-0xc(%ebp)
40a2b8:	7e 07                	jle    0x40a2c1
40a2ba:	c7 45 f4 02 00 00 00 	movl   $0x2,-0xc(%ebp)
40a2c1:	8b 45 08             	mov    0x8(%ebp),%eax
40a2c4:	50                   	push   %eax
40a2c5:	0f b7 45 e6          	movzwl -0x1a(%ebp),%eax
40a2c9:	8b 55 f4             	mov    -0xc(%ebp),%edx
40a2cc:	e8 33 f8 ff ff       	call   0x409b04
40a2d1:	59                   	pop    %ecx
40a2d2:	e9 dd 02 00 00       	jmp    0x40a5b4
40a2d7:	55                   	push   %ebp
40a2d8:	e8 73 f8 ff ff       	call   0x409b50
40a2dd:	59                   	pop    %ecx
40a2de:	83 7d f4 01          	cmpl   $0x1,-0xc(%ebp)
40a2e2:	75 14                	jne    0x40a2f8
40a2e4:	8b 45 08             	mov    0x8(%ebp),%eax
40a2e7:	50                   	push   %eax
40a2e8:	a1 a0 96 46 00       	mov    0x4696a0,%eax
40a2ed:	e8 72 fb ff ff       	call   0x409e64
40a2f2:	59                   	pop    %ecx
40a2f3:	e9 bc 02 00 00       	jmp    0x40a5b4
40a2f8:	8b 45 08             	mov    0x8(%ebp),%eax
40a2fb:	50                   	push   %eax
40a2fc:	a1 a4 96 46 00       	mov    0x4696a4,%eax
40a301:	e8 5e fb ff ff       	call   0x409e64
40a306:	59                   	pop    %ecx
40a307:	e9 a8 02 00 00       	jmp    0x40a5b4
40a30c:	55                   	push   %ebp
40a30d:	e8 3e f8 ff ff       	call   0x409b50
40a312:	59                   	pop    %ecx
40a313:	55                   	push   %ebp
40a314:	e8 9b f8 ff ff       	call   0x409bb4
40a319:	59                   	pop    %ecx
40a31a:	83 7d f4 03          	cmpl   $0x3,-0xc(%ebp)
40a31e:	7e 07                	jle    0x40a327
40a320:	c7 45 f4 03 00 00 00 	movl   $0x3,-0xc(%ebp)
40a327:	8b 45 08             	mov    0x8(%ebp),%eax
40a32a:	50                   	push   %eax
40a32b:	0f b7 45 e4          	movzwl -0x1c(%ebp),%eax
40a32f:	8b 55 f4             	mov    -0xc(%ebp),%edx
40a332:	e8 cd f7 ff ff       	call   0x409b04
40a337:	59                   	pop    %ecx
40a338:	e9 77 02 00 00       	jmp    0x40a5b4
40a33d:	55                   	push   %ebp
40a33e:	e8 71 f8 ff ff       	call   0x409bb4
40a343:	59                   	pop    %ecx
40a344:	8b 75 fc             	mov    -0x4(%ebp),%esi
40a347:	4e                   	dec    %esi
40a348:	ba f4 a5 40 00       	mov    $0x40a5f4,%edx
40a34d:	b9 05 00 00 00       	mov    $0x5,%ecx
40a352:	8b c6                	mov    %esi,%eax
40a354:	e8 0f e4 ff ff       	call   0x408768
40a359:	85 c0                	test   %eax,%eax
40a35b:	75 28                	jne    0x40a385
40a35d:	66 83 7d ea 0c       	cmpw   $0xc,-0x16(%ebp)
40a362:	72 03                	jb     0x40a367
40a364:	83 c6 03             	add    $0x3,%esi
40a367:	8b 45 08             	mov    0x8(%ebp),%eax
40a36a:	50                   	push   %eax
40a36b:	ba 02 00 00 00       	mov    $0x2,%edx
40a370:	8b c6                	mov    %esi,%eax
40a372:	e8 29 f7 ff ff       	call   0x409aa0
40a377:	59                   	pop    %ecx
40a378:	83 45 fc 04          	addl   $0x4,-0x4(%ebp)
40a37c:	c6 45 e2 01          	movb   $0x1,-0x1e(%ebp)
40a380:	e9 2f 02 00 00       	jmp    0x40a5b4
40a385:	ba fc a5 40 00       	mov    $0x40a5fc,%edx
40a38a:	b9 03 00 00 00       	mov    $0x3,%ecx
40a38f:	8b c6                	mov    %esi,%eax
40a391:	e8 d2 e3 ff ff       	call   0x408768
40a396:	85 c0                	test   %eax,%eax
40a398:	75 28                	jne    0x40a3c2
40a39a:	66 83 7d ea 0c       	cmpw   $0xc,-0x16(%ebp)
40a39f:	72 03                	jb     0x40a3a4
40a3a1:	83 c6 02             	add    $0x2,%esi
40a3a4:	8b 45 08             	mov    0x8(%ebp),%eax
40a3a7:	50                   	push   %eax
40a3a8:	ba 01 00 00 00       	mov    $0x1,%edx
40a3ad:	8b c6                	mov    %esi,%eax
40a3af:	e8 ec f6 ff ff       	call   0x409aa0
40a3b4:	59                   	pop    %ecx
40a3b5:	83 45 fc 02          	addl   $0x2,-0x4(%ebp)
40a3b9:	c6 45 e2 01          	movb   $0x1,-0x1e(%ebp)
40a3bd:	e9 f2 01 00 00       	jmp    0x40a5b4
40a3c2:	ba 00 a6 40 00       	mov    $0x40a600,%edx
40a3c7:	b9 04 00 00 00       	mov    $0x4,%ecx
40a3cc:	8b c6                	mov    %esi,%eax
40a3ce:	e8 95 e3 ff ff       	call   0x408768
40a3d3:	85 c0                	test   %eax,%eax
40a3d5:	75 34                	jne    0x40a40b
40a3d7:	66 83 7d ea 0c       	cmpw   $0xc,-0x16(%ebp)
40a3dc:	73 11                	jae    0x40a3ef
40a3de:	8b 45 08             	mov    0x8(%ebp),%eax
40a3e1:	50                   	push   %eax
40a3e2:	a1 98 96 46 00       	mov    0x469698,%eax
40a3e7:	e8 f8 f6 ff ff       	call   0x409ae4
40a3ec:	59                   	pop    %ecx
40a3ed:	eb 0f                	jmp    0x40a3fe
40a3ef:	8b 45 08             	mov    0x8(%ebp),%eax
40a3f2:	50                   	push   %eax
40a3f3:	a1 9c 96 46 00       	mov    0x46969c,%eax
40a3f8:	e8 e7 f6 ff ff       	call   0x409ae4
40a3fd:	59                   	pop    %ecx
40a3fe:	83 45 fc 03          	addl   $0x3,-0x4(%ebp)
40a402:	c6 45 e2 01          	movb   $0x1,-0x1e(%ebp)
40a406:	e9 a9 01 00 00       	jmp    0x40a5b4
40a40b:	ba 08 a6 40 00       	mov    $0x40a608,%edx
40a410:	b9 04 00 00 00       	mov    $0x4,%ecx
40a415:	8b c6                	mov    %esi,%eax
40a417:	e8 4c e3 ff ff       	call   0x408768
40a41c:	85 c0                	test   %eax,%eax
40a41e:	75 32                	jne    0x40a452
40a420:	55                   	push   %ebp
40a421:	e8 56 f7 ff ff       	call   0x409b7c
40a426:	59                   	pop    %ecx
40a427:	8b 45 08             	mov    0x8(%ebp),%eax
40a42a:	50                   	push   %eax
40a42b:	8b 45 08             	mov    0x8(%ebp),%eax
40a42e:	ff 70 0c             	push   0xc(%eax)
40a431:	ff 70 08             	push   0x8(%eax)
40a434:	e8 87 f5 ff ff       	call   0x4099c0
40a439:	0f b7 c0             	movzwl %ax,%eax
40a43c:	8b 04 85 20 97 46 00 	mov    0x469720(,%eax,4),%eax
40a443:	e8 9c f6 ff ff       	call   0x409ae4
40a448:	59                   	pop    %ecx
40a449:	83 45 fc 03          	addl   $0x3,-0x4(%ebp)
40a44d:	e9 62 01 00 00       	jmp    0x40a5b4
40a452:	ba 10 a6 40 00       	mov    $0x40a610,%edx
40a457:	b9 03 00 00 00       	mov    $0x3,%ecx
40a45c:	8b c6                	mov    %esi,%eax
40a45e:	e8 05 e3 ff ff       	call   0x408768
40a463:	85 c0                	test   %eax,%eax
40a465:	75 32                	jne    0x40a499
40a467:	55                   	push   %ebp
40a468:	e8 0f f7 ff ff       	call   0x409b7c
40a46d:	59                   	pop    %ecx
40a46e:	8b 45 08             	mov    0x8(%ebp),%eax
40a471:	50                   	push   %eax
40a472:	8b 45 08             	mov    0x8(%ebp),%eax
40a475:	ff 70 0c             	push   0xc(%eax)
40a478:	ff 70 08             	push   0x8(%eax)
40a47b:	e8 40 f5 ff ff       	call   0x4099c0
40a480:	0f b7 c0             	movzwl %ax,%eax
40a483:	8b 04 85 04 97 46 00 	mov    0x469704(,%eax,4),%eax
40a48a:	e8 55 f6 ff ff       	call   0x409ae4
40a48f:	59                   	pop    %ecx
40a490:	83 45 fc 02          	addl   $0x2,-0x4(%ebp)
40a494:	e9 1b 01 00 00       	jmp    0x40a5b4
40a499:	8b 45 08             	mov    0x8(%ebp),%eax
40a49c:	50                   	push   %eax
40a49d:	8d 45 fb             	lea    -0x5(%ebp),%eax
40a4a0:	ba 01 00 00 00       	mov    $0x1,%edx
40a4a5:	e8 f6 f5 ff ff       	call   0x409aa0
40a4aa:	59                   	pop    %ecx
40a4ab:	e9 04 01 00 00       	jmp    0x40a5b4
40a4b0:	55                   	push   %ebp
40a4b1:	e8 9a f6 ff ff       	call   0x409b50
40a4b6:	59                   	pop    %ecx
40a4b7:	8b 45 08             	mov    0x8(%ebp),%eax
40a4ba:	50                   	push   %eax
40a4bb:	a1 8c 96 46 00       	mov    0x46968c,%eax
40a4c0:	e8 9f f9 ff ff       	call   0x409e64
40a4c5:	59                   	pop    %ecx
40a4c6:	55                   	push   %ebp
40a4c7:	e8 e8 f6 ff ff       	call   0x409bb4
40a4cc:	59                   	pop    %ecx
40a4cd:	66 83 7d ea 00       	cmpw   $0x0,-0x16(%ebp)
40a4d2:	75 12                	jne    0x40a4e6
40a4d4:	66 83 7d e8 00       	cmpw   $0x0,-0x18(%ebp)
40a4d9:	75 0b                	jne    0x40a4e6
40a4db:	66 83 7d e6 00       	cmpw   $0x0,-0x1a(%ebp)
40a4e0:	0f 84 ce 00 00 00    	je     0x40a5b4
40a4e6:	8b 45 08             	mov    0x8(%ebp),%eax
40a4e9:	50                   	push   %eax
40a4ea:	b8 14 a6 40 00       	mov    $0x40a614,%eax
40a4ef:	ba 01 00 00 00       	mov    $0x1,%edx
40a4f4:	e8 a7 f5 ff ff       	call   0x409aa0
40a4f9:	59                   	pop    %ecx
40a4fa:	8b 45 08             	mov    0x8(%ebp),%eax
40a4fd:	50                   	push   %eax
40a4fe:	a1 a4 96 46 00       	mov    0x4696a4,%eax
40a503:	e8 5c f9 ff ff       	call   0x409e64
40a508:	59                   	pop    %ecx
40a509:	e9 a6 00 00 00       	jmp    0x40a5b4
40a50e:	80 3d 89 96 46 00 00 	cmpb   $0x0,0x469689
40a515:	0f 84 99 00 00 00    	je     0x40a5b4
40a51b:	8b 45 08             	mov    0x8(%ebp),%eax
40a51e:	50                   	push   %eax
40a51f:	b8 89 96 46 00       	mov    $0x469689,%eax
40a524:	ba 01 00 00 00       	mov    $0x1,%edx
40a529:	e8 72 f5 ff ff       	call   0x409aa0
40a52e:	59                   	pop    %ecx
40a52f:	e9 80 00 00 00       	jmp    0x40a5b4
40a534:	80 3d 94 96 46 00 00 	cmpb   $0x0,0x469694
40a53b:	74 77                	je     0x40a5b4
40a53d:	8b 45 08             	mov    0x8(%ebp),%eax
40a540:	50                   	push   %eax
40a541:	b8 94 96 46 00       	mov    $0x469694,%eax
40a546:	ba 01 00 00 00       	mov    $0x1,%edx
40a54b:	e8 50 f5 ff ff       	call   0x409aa0
40a550:	59                   	pop    %ecx
40a551:	eb 61                	jmp    0x40a5b4
40a553:	8b 75 fc             	mov    -0x4(%ebp),%esi
40a556:	eb 1e                	jmp    0x40a576
40a558:	25 ff 00 00 00       	and    $0xff,%eax
40a55d:	0f a3 05 0c d1 45 00 	bt     %eax,0x45d10c
40a564:	73 0d                	jae    0x40a573
40a566:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a569:	e8 d6 1d 00 00       	call   0x40c344
40a56e:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a571:	eb 03                	jmp    0x40a576
40a573:	ff 45 fc             	incl   -0x4(%ebp)
40a576:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a579:	8a 00                	mov    (%eax),%al
40a57b:	84 c0                	test   %al,%al
40a57d:	74 05                	je     0x40a584
40a57f:	3a 45 fb             	cmp    -0x5(%ebp),%al
40a582:	75 d4                	jne    0x40a558
40a584:	8b 45 08             	mov    0x8(%ebp),%eax
40a587:	50                   	push   %eax
40a588:	8b 55 fc             	mov    -0x4(%ebp),%edx
40a58b:	2b d6                	sub    %esi,%edx
40a58d:	8b c6                	mov    %esi,%eax
40a58f:	e8 0c f5 ff ff       	call   0x409aa0
40a594:	59                   	pop    %ecx
40a595:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a598:	80 38 00             	cmpb   $0x0,(%eax)
40a59b:	74 17                	je     0x40a5b4
40a59d:	ff 45 fc             	incl   -0x4(%ebp)
40a5a0:	eb 12                	jmp    0x40a5b4
40a5a2:	8b 45 08             	mov    0x8(%ebp),%eax
40a5a5:	50                   	push   %eax
40a5a6:	8d 45 fb             	lea    -0x5(%ebp),%eax
40a5a9:	ba 01 00 00 00       	mov    $0x1,%edx
40a5ae:	e8 ed f4 ff ff       	call   0x409aa0
40a5b3:	59                   	pop    %ecx
40a5b4:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a5b7:	8a 00                	mov    (%eax),%al
40a5b9:	84 c0                	test   %al,%al
40a5bb:	0f 85 fa f8 ff ff    	jne    0x409ebb
40a5c1:	8b 45 08             	mov    0x8(%ebp),%eax
40a5c4:	ff 88 f8 fe ff ff    	decl   -0x108(%eax)
40a5ca:	33 c0                	xor    %eax,%eax
40a5cc:	5a                   	pop    %edx
40a5cd:	59                   	pop    %ecx
40a5ce:	59                   	pop    %ecx
40a5cf:	64 89 10             	mov    %edx,%fs:(%eax)
40a5d2:	68 ec a5 40 00       	push   $0x40a5ec
40a5d7:	8d 45 d8             	lea    -0x28(%ebp),%eax
40a5da:	ba 02 00 00 00       	mov    $0x2,%edx