40d2aa:	8d 44 01 24          	lea    0x24(%ecx,%eax,1),%eax
40d2ae:	50                   	push   %eax
40d2af:	e8 8e 91 ff ff       	call   0x406442
40d2b4:	8b 45 0c             	mov    0xc(%ebp),%eax
40d2b7:	8b 00                	mov    (%eax),%eax
40d2b9:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40d2bc:	8b 09                	mov    (%ecx),%ecx
40d2be:	33 d2                	xor    %edx,%edx
40d2c0:	2b 51 14             	sub    0x14(%ecx),%edx
40d2c3:	8b 40 0c             	mov    0xc(%eax),%eax
40d2c6:	66 0f b6 04 10       	movzbw (%eax,%edx,1),%ax
40d2cb:	66 3d 23 00          	cmp    $0x23,%ax
40d2cf:	0f 85 e9 00 00 00    	jne    0x40d3be
40d2d5:	8b 45 0c             	mov    0xc(%ebp),%eax
40d2d8:	ff 30                	push   (%eax)
40d2da:	6a 01                	push   $0x1
40d2dc:	e8 81 41 ff ff       	call   0x401462
40d2e1:	89 45 98             	mov    %eax,-0x68(%ebp)
40d2e4:	c7 45 9c 01 00 00 00 	movl   $0x1,-0x64(%ebp)
40d2eb:	c7 45 cc 01 00 00 00 	movl   $0x1,-0x34(%ebp)
40d2f2:	eb 09                	jmp    0x40d2fd
40d2f4:	8b 45 cc             	mov    -0x34(%ebp),%eax
40d2f7:	03 45 9c             	add    -0x64(%ebp),%eax
40d2fa:	89 45 cc             	mov    %eax,-0x34(%ebp)
40d2fd:	8b 45 cc             	mov    -0x34(%ebp),%eax
40d300:	3b 45 98             	cmp    -0x68(%ebp),%eax
40d303:	7f 7c                	jg     0x40d381
40d305:	8b 45 0c             	mov    0xc(%ebp),%eax
40d308:	8b 00                	mov    (%eax),%eax
40d30a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40d30d:	8b 09                	mov    (%ecx),%ecx
40d30f:	8b 55 cc             	mov    -0x34(%ebp),%edx
40d312:	2b 51 14             	sub    0x14(%ecx),%edx
40d315:	8b 40 0c             	mov    0xc(%eax),%eax
40d318:	66 0f b6 04 10       	movzbw (%eax,%edx,1),%ax
40d31d:	33 c9                	xor    %ecx,%ecx
40d31f:	66 3d 30 00          	cmp    $0x30,%ax
40d323:	0f 9d c1             	setge  %cl
40d326:	8b 45 0c             	mov    0xc(%ebp),%eax
40d329:	8b 00                	mov    (%eax),%eax
40d32b:	8b 55 0c             	mov    0xc(%ebp),%edx
40d32e:	8b 12                	mov    (%edx),%edx
40d330:	8b 75 cc             	mov    -0x34(%ebp),%esi
40d333:	2b 72 14             	sub    0x14(%edx),%esi
40d336:	8b 40 0c             	mov    0xc(%eax),%eax
40d339:	66 0f b6 04 30       	movzbw (%eax,%esi,1),%ax
40d33e:	33 d2                	xor    %edx,%edx
40d340:	66 3d 39 00          	cmp    $0x39,%ax
40d344:	0f 9e c2             	setle  %dl
40d347:	23 ca                	and    %edx,%ecx
40d349:	85 c9                	test   %ecx,%ecx
40d34b:	75 05                	jne    0x40d352
40d34d:	e9 28 03 00 00       	jmp    0x40d67a
40d352:	8b 45 d8             	mov    -0x28(%ebp),%eax
40d355:	6b c0 0a             	imul   $0xa,%eax,%eax
40d358:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40d35b:	8b 09                	mov    (%ecx),%ecx
40d35d:	8b 55 0c             	mov    0xc(%ebp),%edx
40d360:	8b 12                	mov    (%edx),%edx
40d362:	8b 75 cc             	mov    -0x34(%ebp),%esi
40d365:	2b 72 14             	sub    0x14(%edx),%esi
40d368:	8b 49 0c             	mov    0xc(%ecx),%ecx
40d36b:	66 0f b6 0c 31       	movzbw (%ecx,%esi,1),%cx
40d370:	66 83 e9 30          	sub    $0x30,%cx
40d374:	0f bf c9             	movswl %cx,%ecx
40d377:	03 c1                	add    %ecx,%eax
40d379:	89 45 d8             	mov    %eax,-0x28(%ebp)
40d37c:	e9 73 ff ff ff       	jmp    0x40d2f4
40d381:	8b 45 d8             	mov    -0x28(%ebp),%eax
40d384:	2b 45 d4             	sub    -0x2c(%ebp),%eax
40d387:	89 45 d8             	mov    %eax,-0x28(%ebp)
40d38a:	8b 45 d8             	mov    -0x28(%ebp),%eax
40d38d:	3b 45 b8             	cmp    -0x48(%ebp),%eax
40d390:	7d 06                	jge    0x40d398
40d392:	83 7d b8 00          	cmpl   $0x0,-0x48(%ebp)
40d396:	7d 05                	jge    0x40d39d
40d398:	e9 dd 02 00 00       	jmp    0x40d67a
40d39d:	8d 45 e8             	lea    -0x18(%ebp),%eax
40d3a0:	50                   	push   %eax
40d3a1:	e8 10 41 ff ff       	call   0x4014b6
40d3a6:	50                   	push   %eax
40d3a7:	8b 45 08             	mov    0x8(%ebp),%eax
40d3aa:	03 45 b4             	add    -0x4c(%ebp),%eax
40d3ad:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40d3b0:	8d 04 88             	lea    (%eax,%ecx,4),%eax
40d3b3:	50                   	push   %eax
40d3b4:	e8 89 90 ff ff       	call   0x406442
40d3b9:	e9 8f 00 00 00       	jmp    0x40d44d
40d3be:	8b 45 d0             	mov    -0x30(%ebp),%eax
40d3c1:	3b 45 ac             	cmp    -0x54(%ebp),%eax
40d3c4:	0f 8d 83 00 00 00    	jge    0x40d44d
40d3ca:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40d3cd:	50                   	push   %eax
40d3ce:	e8 e3 40 ff ff       	call   0x4014b6
40d3d3:	50                   	push   %eax
40d3d4:	8b 45 08             	mov    0x8(%ebp),%eax
40d3d7:	03 45 a8             	add    -0x58(%ebp),%eax
40d3da:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40d3dd:	8d 04 88             	lea    (%eax,%ecx,4),%eax
40d3e0:	50                   	push   %eax
40d3e1:	e8 5c 90 ff ff       	call   0x406442
40d3e6:	ff 75 0c             	push   0xc(%ebp)
40d3e9:	8b 45 08             	mov    0x8(%ebp),%eax
40d3ec:	03 45 e4             	add    -0x1c(%ebp),%eax
40d3ef:	50                   	push   %eax
40d3f0:	e8 b3 9c ff ff       	call   0x4070a8
40d3f5:	0f bf c0             	movswl %ax,%eax
40d3f8:	85 c0                	test   %eax,%eax
40d3fa:	74 45                	je     0x40d441
40d3fc:	8d 45 ec             	lea    -0x14(%ebp),%eax
40d3ff:	50                   	push   %eax
40d400:	e8 b1 40 ff ff       	call   0x4014b6
40d405:	50                   	push   %eax
40d406:	8b 45 08             	mov    0x8(%ebp),%eax
40d409:	03 45 e0             	add    -0x20(%ebp),%eax
40d40c:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40d40f:	8d 04 48             	lea    (%eax,%ecx,2),%eax
40d412:	50                   	push   %eax
40d413:	e8 2a 90 ff ff       	call   0x406442
40d418:	8b 45 ec             	mov    -0x14(%ebp),%eax
40d41b:	25 ff ff 00 00       	and    $0xffff,%eax
40d420:	89 45 ec             	mov    %eax,-0x14(%ebp)
40d423:	8d 45 e8             	lea    -0x18(%ebp),%eax
40d426:	50                   	push   %eax
40d427:	e8 8a 40 ff ff       	call   0x4014b6
40d42c:	50                   	push   %eax
40d42d:	8b 45 08             	mov    0x8(%ebp),%eax
40d430:	03 45 b4             	add    -0x4c(%ebp),%eax
40d433:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40d436:	8d 04 88             	lea    (%eax,%ecx,4),%eax
40d439:	50                   	push   %eax
40d43a:	e8 03 90 ff ff       	call   0x406442
40d43f:	eb 0c                	jmp    0x40d44d
40d441:	8b 45 d0             	mov    -0x30(%ebp),%eax
40d444:	40                   	inc    %eax
40d445:	89 45 d0             	mov    %eax,-0x30(%ebp)
40d448:	e9 71 ff ff ff       	jmp    0x40d3be
40d44d:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
40d451:	75 05                	jne    0x40d458
40d453:	e9 22 02 00 00       	jmp    0x40d67a
40d458:	8b 45 e8             	mov    -0x18(%ebp),%eax
40d45b:	3b 45 bc             	cmp    -0x44(%ebp),%eax
40d45e:	0f 8e 0d 02 00 00    	jle    0x40d671
40d464:	8b 45 bc             	mov    -0x44(%ebp),%eax
40d467:	03 45 dc             	add    -0x24(%ebp),%eax
40d46a:	39 45 e8             	cmp    %eax,-0x18(%ebp)
40d46d:	0f 8d fe 01 00 00    	jge    0x40d671
40d473:	8b 45 08             	mov    0x8(%ebp),%eax
40d476:	03 45 e8             	add    -0x18(%ebp),%eax
40d479:	89 45 a8             	mov    %eax,-0x58(%ebp)
40d47c:	83 65 cc 00          	andl   $0x0,-0x34(%ebp)
40d480:	6a 00                	push   $0x0
40d482:	68 ff 00 00 00       	push   $0xff
40d487:	6a 01                	push   $0x1
40d489:	6a 11                	push   $0x11
40d48b:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40d48e:	50                   	push   %eax
40d48f:	6a 01                	push   $0x1
40d491:	68 80 00 00 00       	push   $0x80
40d496:	e8 69 40 ff ff       	call   0x401504
40d49b:	83 c4 1c             	add    $0x1c,%esp
40d49e:	6a 00                	push   $0x0
40d4a0:	68 ff 00 00 00       	push   $0xff
40d4a5:	6a 01                	push   $0x1
40d4a7:	6a 11                	push   $0x11
40d4a9:	ff 75 0c             	push   0xc(%ebp)
40d4ac:	6a 01                	push   $0x1
40d4ae:	68 80 00 00 00       	push   $0x80
40d4b3:	e8 4c 40 ff ff       	call   0x401504
40d4b8:	83 c4 1c             	add    $0x1c,%esp
40d4bb:	ff 75 c4             	push   -0x3c(%ebp)
40d4be:	8d 45 a4             	lea    -0x5c(%ebp),%eax
40d4c1:	50                   	push   %eax
40d4c2:	e8 19 40 ff ff       	call   0x4014e0
40d4c7:	8b 45 a4             	mov    -0x5c(%ebp),%eax
40d4ca:	8b 4d cc             	mov    -0x34(%ebp),%ecx
40d4cd:	2b 48 14             	sub    0x14(%eax),%ecx
40d4d0:	8b 45 a4             	mov    -0x5c(%ebp),%eax
40d4d3:	8b 40 0c             	mov    0xc(%eax),%eax
40d4d6:	03 c1                	add    %ecx,%eax
40d4d8:	50                   	push   %eax
40d4d9:	e8 d8 3f ff ff       	call   0x4014b6
40d4de:	89 45 a0             	mov    %eax,-0x60(%ebp)
40d4e1:	8d 45 a4             	lea    -0x5c(%ebp),%eax
40d4e4:	50                   	push   %eax
40d4e5:	e8 f0 3f ff ff       	call   0x4014da
40d4ea:	ff 75 a0             	push   -0x60(%ebp)
40d4ed:	ff 75 a8             	push   -0x58(%ebp)
40d4f0:	e8 4d 8f ff ff       	call   0x406442
40d4f5:	8b 45 c4             	mov    -0x3c(%ebp),%eax
40d4f8:	8b 4d cc             	mov    -0x34(%ebp),%ecx
40d4fb:	2b 48 14             	sub    0x14(%eax),%ecx
40d4fe:	8b 45 c4             	mov    -0x3c(%ebp),%eax
40d501:	8b 40 0c             	mov    0xc(%eax),%eax
40d504:	66 0f b6 04 08       	movzbw (%eax,%ecx,1),%ax
40d509:	33 c9                	xor    %ecx,%ecx
40d50b:	66 3d 2e 00          	cmp    $0x2e,%ax
40d50f:	0f 95 c1             	setne  %cl
40d512:	8b 45 c4             	mov    -0x3c(%ebp),%eax
40d515:	8b 55 cc             	mov    -0x34(%ebp),%edx
40d518:	2b 50 14             	sub    0x14(%eax),%edx
40d51b:	8b 45 c4             	mov    -0x3c(%ebp),%eax
40d51e:	8b 40 0c             	mov    0xc(%eax),%eax
40d521:	66 0f b6 04 10       	movzbw (%eax,%edx,1),%ax
40d526:	33 d2                	xor    %edx,%edx
40d528:	66 3d 23 00          	cmp    $0x23,%ax
40d52c:	0f 95 c2             	setne  %dl
40d52f:	23 ca                	and    %edx,%ecx
40d531:	85 c9                	test   %ecx,%ecx
40d533:	0f 85 0d 01 00 00    	jne    0x40d646
40d539:	8b 45 c4             	mov    -0x3c(%ebp),%eax
40d53c:	8b 4d cc             	mov    -0x34(%ebp),%ecx
40d53f:	2b 48 14             	sub    0x14(%eax),%ecx
40d542:	8b 45 c4             	mov    -0x3c(%ebp),%eax
40d545:	8b 40 0c             	mov    0xc(%eax),%eax
40d548:	66 0f b6 04 08       	movzbw (%eax,%ecx,1),%ax
40d54d:	66 2d 2e 00          	sub    $0x2e,%ax
40d551:	66 f7 d8             	neg    %ax
40d554:	1b c0                	sbb    %eax,%eax
40d556:	40                   	inc    %eax
40d557:	f7 d8                	neg    %eax
40d559:	0f bf c0             	movswl %ax,%eax
40d55c:	8b 4d a8             	mov    -0x58(%ebp),%ecx
40d55f:	2b c8                	sub    %eax,%ecx
40d561:	89 4d a8             	mov    %ecx,-0x58(%ebp)
40d564:	6a 00                	push   $0x0
40d566:	8b 45 cc             	mov    -0x34(%ebp),%eax
40d569:	48                   	dec    %eax
40d56a:	50                   	push   %eax
40d56b:	6a 01                	push   $0x1
40d56d:	6a 11                	push   $0x11
40d56f:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40d572:	50                   	push   %eax
40d573:	6a 01                	push   $0x1
40d575:	68 80 00 00 00       	push   $0x80
40d57a:	e8 5f 3e ff ff       	call   0x4013de
40d57f:	83 c4 1c             	add    $0x1c,%esp
40d582:	83 65 cc 00          	andl   $0x0,-0x34(%ebp)
40d586:	8b 45 0c             	mov    0xc(%ebp),%eax
40d589:	ff 30                	push   (%eax)
40d58b:	8d 45 a4             	lea    -0x5c(%ebp),%eax
40d58e:	50                   	push   %eax
40d58f:	e8 4c 3f ff ff       	call   0x4014e0
40d594:	8b 45 a4             	mov    -0x5c(%ebp),%eax
40d597:	8b 4d cc             	mov    -0x34(%ebp),%ecx
40d59a:	2b 48 14             	sub    0x14(%eax),%ecx
40d59d:	8b 45 a4             	mov    -0x5c(%ebp),%eax
40d5a0:	8b 40 0c             	mov    0xc(%eax),%eax
40d5a3:	03 c1                	add    %ecx,%eax
40d5a5:	50                   	push   %eax
40d5a6:	e8 0b 3f ff ff       	call   0x4014b6
40d5ab:	89 45 a0             	mov    %eax,-0x60(%ebp)
40d5ae:	8d 45 a4             	lea    -0x5c(%ebp),%eax
40d5b1:	50                   	push   %eax
40d5b2:	e8 23 3f ff ff       	call   0x4014da
40d5b7:	ff 75 a0             	push   -0x60(%ebp)
40d5ba:	ff 75 a8             	push   -0x58(%ebp)
40d5bd:	e8 80 8e ff ff       	call   0x406442
40d5c2:	8b 45 0c             	mov    0xc(%ebp),%eax
40d5c5:	8b 00                	mov    (%eax),%eax
40d5c7:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40d5ca:	8b 09                	mov    (%ecx),%ecx
40d5cc:	8b 55 cc             	mov    -0x34(%ebp),%edx
40d5cf:	2b 51 14             	sub    0x14(%ecx),%edx
40d5d2:	8b 40 0c             	mov    0xc(%eax),%eax
40d5d5:	0f b6 04 10          	movzbl (%eax,%edx,1),%eax
40d5d9:	85 c0                	test   %eax,%eax
40d5db:	75 44                	jne    0x40d621
40d5dd:	6a 00                	push   $0x0
40d5df:	8b 45 cc             	mov    -0x34(%ebp),%eax
40d5e2:	48                   	dec    %eax
40d5e3:	50                   	push   %eax
40d5e4:	6a 01                	push   $0x1
40d5e6:	6a 11                	push   $0x11
40d5e8:	ff 75 0c             	push   0xc(%ebp)
40d5eb:	6a 01                	push   $0x1
40d5ed:	68 80 00 00 00       	push   $0x80
40d5f2:	e8 e7 3d ff ff       	call   0x4013de
40d5f7:	83 c4 1c             	add    $0x1c,%esp
40d5fa:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40d5fd:	50                   	push   %eax
40d5fe:	ff 75 08             	push   0x8(%ebp)
40d601:	e8 5b fa ff ff       	call   0x40d061
40d606:	89 45 c0             	mov    %eax,-0x40(%ebp)
40d609:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
40d60d:	75 02                	jne    0x40d611
40d60f:	eb 69                	jmp    0x40d67a
40d611:	ff 75 0c             	push   0xc(%ebp)
40d614:	ff 75 c0             	push   -0x40(%ebp)
40d617:	e8 85 fb ff ff       	call   0x40d1a1
40d61c:	89 45 c8             	mov    %eax,-0x38(%ebp)
40d61f:	eb 59                	jmp    0x40d67a
40d621:	8b 45 cc             	mov    -0x34(%ebp),%eax
40d624:	40                   	inc    %eax
40d625:	89 45 cc             	mov    %eax,-0x34(%ebp)
40d628:	8b 45 a8             	mov    -0x58(%ebp),%eax
40d62b:	40                   	inc    %eax
40d62c:	89 45 a8             	mov    %eax,-0x58(%ebp)
40d62f:	8b 45 cc             	mov    -0x34(%ebp),%eax
40d632:	83 e0 03             	and    $0x3,%eax
40d635:	85 c0                	test   %eax,%eax
40d637:	75 89                	jne    0x40d5c2
40d639:	81 7d cc ff 00 00 00 	cmpl   $0xff,-0x34(%ebp)
40d640:	0f 8e 40 ff ff ff    	jle    0x40d586
40d646:	8b 45 cc             	mov    -0x34(%ebp),%eax
40d649:	40                   	inc    %eax
40d64a:	89 45 cc             	mov    %eax,-0x34(%ebp)
40d64d:	8b 45 a8             	mov    -0x58(%ebp),%eax
40d650:	40                   	inc    %eax
40d651:	89 45 a8             	mov    %eax,-0x58(%ebp)
40d654:	8b 45 cc             	mov    -0x34(%ebp),%eax
40d657:	83 e0 03             	and    $0x3,%eax
40d65a:	85 c0                	test   %eax,%eax
40d65c:	0f 85 93 fe ff ff    	jne    0x40d4f5
40d662:	81 7d cc ff 00 00 00 	cmpl   $0xff,-0x34(%ebp)
40d669:	0f 8e 4c fe ff ff    	jle    0x40d4bb
40d66f:	eb 09                	jmp    0x40d67a
40d671:	8b 45 08             	mov    0x8(%ebp),%eax
40d674:	03 45 e8             	add    -0x18(%ebp),%eax
40d677:	89 45 c8             	mov    %eax,-0x38(%ebp)
40d67a:	68 97 d6 40 00       	push   $0x40d697
40d67f:	eb 0a                	jmp    0x40d68b
40d681:	8d 45 a4             	lea    -0x5c(%ebp),%eax
40d684:	50                   	push   %eax
40d685:	e8 50 3e ff ff       	call   0x4014da
40d68a:	c3                   	ret
40d68b:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40d68e:	50                   	push   %eax
40d68f:	6a 00                	push   $0x0
40d691:	e8 38 3e ff ff       	call   0x4014ce
40d696:	c3                   	ret
40d697:	8b 45 c8             	mov    -0x38(%ebp),%eax
40d69a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40d69d:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40d6a4:	5f                   	pop    %edi
40d6a5:	5e                   	pop    %esi
40d6a6:	5b                   	pop    %ebx
40d6a7:	c9                   	leave
40d6a8:	c2 08 00             	ret    $0x8
40d6ab:	55                   	push   %ebp
40d6ac:	8b ec                	mov    %esp,%ebp
40d6ae:	83 ec 0c             	sub    $0xc,%esp
40d6b1:	68 36 13 40 00       	push   $0x401336
40d6b6:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40d6bc:	50                   	push   %eax
40d6bd:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40d6c4:	6a 78                	push   $0x78
40d6c6:	58                   	pop    %eax
40d6c7:	e8 64 3c ff ff       	call   0x401330
40d6cc:	53                   	push   %ebx