40f26e:	8b 55 c0             	mov    -0x40(%ebp),%edx
40f271:	8b fb                	mov    %ebx,%edi
40f273:	85 db                	test   %ebx,%ebx
40f275:	74 11                	je     0x40f288
40f277:	66 8b 02             	mov    (%edx),%ax
40f27a:	66 3b 01             	cmp    (%ecx),%ax
40f27d:	75 0d                	jne    0x40f28c
40f27f:	83 c2 02             	add    $0x2,%edx
40f282:	83 c1 02             	add    $0x2,%ecx
40f285:	4f                   	dec    %edi
40f286:	75 ef                	jne    0x40f277
40f288:	33 c0                	xor    %eax,%eax
40f28a:	eb 0c                	jmp    0x40f298
40f28c:	0f b7 02             	movzwl (%edx),%eax
40f28f:	66 3b 01             	cmp    (%ecx),%ax
40f292:	1b c0                	sbb    %eax,%eax
40f294:	83 e0 fe             	and    $0xfffffffe,%eax
40f297:	40                   	inc    %eax
40f298:	85 c0                	test   %eax,%eax
40f29a:	0f 88 88 00 00 00    	js     0x40f328
40f2a0:	0f 8e e3 00 00 00    	jle    0x40f389
40f2a6:	8b 45 98             	mov    -0x68(%ebp),%eax
40f2a9:	8b 7d c0             	mov    -0x40(%ebp),%edi
40f2ac:	8b 48 1c             	mov    0x1c(%eax),%ecx
40f2af:	85 c9                	test   %ecx,%ecx
40f2b1:	0f 84 e0 03 00 00    	je     0x40f697
40f2b7:	8b 51 04             	mov    0x4(%ecx),%edx
40f2ba:	3b d3                	cmp    %ebx,%edx
40f2bc:	0f 87 40 07 00 00    	ja     0x40fa02
40f2c2:	8b 19                	mov    (%ecx),%ebx
40f2c4:	89 55 e4             	mov    %edx,-0x1c(%ebp)
40f2c7:	85 d2                	test   %edx,%edx
40f2c9:	74 18                	je     0x40f2e3
40f2cb:	eb 03                	jmp    0x40f2d0
40f2cd:	8d 49 00             	lea    0x0(%ecx),%ecx
40f2d0:	66 8b 03             	mov    (%ebx),%ax
40f2d3:	66 3b 07             	cmp    (%edi),%ax
40f2d6:	75 14                	jne    0x40f2ec
40f2d8:	83 c3 02             	add    $0x2,%ebx
40f2db:	83 c7 02             	add    $0x2,%edi
40f2de:	ff 4d e4             	decl   -0x1c(%ebp)
40f2e1:	75 ed                	jne    0x40f2d0
40f2e3:	8b 5d b8             	mov    -0x48(%ebp),%ebx
40f2e6:	3b d3                	cmp    %ebx,%edx
40f2e8:	72 07                	jb     0x40f2f1
40f2ea:	eb 1f                	jmp    0x40f30b
40f2ec:	73 1d                	jae    0x40f30b
40f2ee:	8b 5d b8             	mov    -0x48(%ebp),%ebx
40f2f1:	8b 41 18             	mov    0x18(%ecx),%eax
40f2f4:	8b 55 98             	mov    -0x68(%ebp),%edx
40f2f7:	89 42 1c             	mov    %eax,0x1c(%edx)
40f2fa:	8b 06                	mov    (%esi),%eax
40f2fc:	89 41 18             	mov    %eax,0x18(%ecx)
40f2ff:	89 0e                	mov    %ecx,(%esi)
40f301:	83 79 1c 00          	cmpl   $0x0,0x1c(%ecx)
40f305:	0f 84 8c 03 00 00    	je     0x40f697
40f30b:	8b 06                	mov    (%esi),%eax
40f30d:	8b 4d 88             	mov    -0x78(%ebp),%ecx
40f310:	8b 5d b8             	mov    -0x48(%ebp),%ebx
40f313:	8b 7d c0             	mov    -0x40(%ebp),%edi
40f316:	89 41 1c             	mov    %eax,0x1c(%ecx)
40f319:	8b 16                	mov    (%esi),%edx
40f31b:	89 55 88             	mov    %edx,-0x78(%ebp)
40f31e:	8b 42 1c             	mov    0x1c(%edx),%eax
40f321:	89 06                	mov    %eax,(%esi)
40f323:	e9 28 ff ff ff       	jmp    0x40f250
40f328:	8b 45 98             	mov    -0x68(%ebp),%eax
40f32b:	8b 7d c0             	mov    -0x40(%ebp),%edi
40f32e:	8b 48 18             	mov    0x18(%eax),%ecx
40f331:	85 c9                	test   %ecx,%ecx
40f333:	0f 84 5e 03 00 00    	je     0x40f697
40f339:	8b 41 04             	mov    0x4(%ecx),%eax
40f33c:	39 45 b8             	cmp    %eax,-0x48(%ebp)
40f33f:	0f 87 c4 06 00 00    	ja     0x40fa09
40f345:	8b 11                	mov    (%ecx),%edx
40f347:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40f34a:	85 db                	test   %ebx,%ebx
40f34c:	74 1c                	je     0x40f36a
40f34e:	8b ff                	mov    %edi,%edi
40f350:	66 8b 07             	mov    (%edi),%ax
40f353:	66 3b 02             	cmp    (%edx),%ax
40f356:	0f 85 00 02 00 00    	jne    0x40f55c
40f35c:	83 c7 02             	add    $0x2,%edi
40f35f:	83 c2 02             	add    $0x2,%edx
40f362:	ff 4d e4             	decl   -0x1c(%ebp)
40f365:	75 e9                	jne    0x40f350
40f367:	8b 41 04             	mov    0x4(%ecx),%eax
40f36a:	3b d8                	cmp    %eax,%ebx
40f36c:	0f 82 ec 01 00 00    	jb     0x40f55e
40f372:	e9 01 02 00 00       	jmp    0x40f578
40f377:	4e                   	dec    %esi
40f378:	83 c2 04             	add    $0x4,%edx
40f37b:	e9 b0 fd ff ff       	jmp    0x40f130
40f380:	46                   	inc    %esi
40f381:	83 c2 04             	add    $0x4,%edx
40f384:	e9 a7 fd ff ff       	jmp    0x40f130
40f389:	b2 01                	mov    $0x1,%dl
40f38b:	8b 06                	mov    (%esi),%eax
40f38d:	8b 4d 88             	mov    -0x78(%ebp),%ecx
40f390:	8b 40 18             	mov    0x18(%eax),%eax
40f393:	89 41 1c             	mov    %eax,0x1c(%ecx)
40f396:	8b 06                	mov    (%esi),%eax
40f398:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40f39b:	8b 40 1c             	mov    0x1c(%eax),%eax
40f39e:	89 41 18             	mov    %eax,0x18(%ecx)
40f3a1:	8b 0e                	mov    (%esi),%ecx
40f3a3:	a1 10 22 4c 00       	mov    0x4c2210,%eax
40f3a8:	89 41 18             	mov    %eax,0x18(%ecx)
40f3ab:	8b 0e                	mov    (%esi),%ecx
40f3ad:	a1 0c 22 4c 00       	mov    0x4c220c,%eax
40f3b2:	89 41 1c             	mov    %eax,0x1c(%ecx)
40f3b5:	84 d2                	test   %dl,%dl
40f3b7:	0f 84 d8 01 00 00    	je     0x40f595
40f3bd:	8b 36                	mov    (%esi),%esi
40f3bf:	85 f6                	test   %esi,%esi
40f3c1:	0f 84 ce 01 00 00    	je     0x40f595
40f3c7:	8b 46 10             	mov    0x10(%esi),%eax
40f3ca:	8b 76 14             	mov    0x14(%esi),%esi
40f3cd:	25 00 ff 00 00       	and    $0xff00,%eax
40f3d2:	89 45 ac             	mov    %eax,-0x54(%ebp)
40f3d5:	85 f6                	test   %esi,%esi
40f3d7:	0f 84 b8 01 00 00    	je     0x40f595
40f3dd:	8b 55 f8             	mov    -0x8(%ebp),%edx
40f3e0:	89 75 b8             	mov    %esi,-0x48(%ebp)
40f3e3:	85 f6                	test   %esi,%esi
40f3e5:	74 7c                	je     0x40f463
40f3e7:	a9 00 01 00 00       	test   $0x100,%eax
40f3ec:	0f 85 d6 93 06 00    	jne    0x4787c8
40f3f2:	8b 46 0c             	mov    0xc(%esi),%eax
40f3f5:	8b 7d 08             	mov    0x8(%ebp),%edi
40f3f8:	83 f8 08             	cmp    $0x8,%eax
40f3fb:	74 1b                	je     0x40f418
40f3fd:	83 f8 0c             	cmp    $0xc,%eax
40f400:	74 16                	je     0x40f418
40f402:	83 f8 0f             	cmp    $0xf,%eax
40f405:	74 11                	je     0x40f418
40f407:	8b 4f 04             	mov    0x4(%edi),%ecx
40f40a:	8b 41 04             	mov    0x4(%ecx),%eax
40f40d:	66 83 78 08 47       	cmpw   $0x47,0x8(%eax)
40f412:	0f 84 cf 93 06 00    	je     0x4787e7
40f418:	8b 5d f0             	mov    -0x10(%ebp),%ebx
40f41b:	eb 03                	jmp    0x40f420
40f41d:	8d 49 00             	lea    0x0(%ecx),%ecx
40f420:	8b 4f 04             	mov    0x4(%edi),%ecx
40f423:	8b 04 91             	mov    (%ecx,%edx,4),%eax
40f426:	66 83 78 08 4e       	cmpw   $0x4e,0x8(%eax)
40f42b:	0f 84 6f 02 00 00    	je     0x40f6a0
40f431:	8b 47 04             	mov    0x4(%edi),%eax
40f434:	8b 04 90             	mov    (%eax,%edx,4),%eax
40f437:	0f b7 78 08          	movzwl 0x8(%eax),%edi
40f43b:	66 83 ff 35          	cmp    $0x35,%di
40f43f:	0f 84 12 97 06 00    	je     0x478b57
40f445:	8b 46 0c             	mov    0xc(%esi),%eax
40f448:	83 f8 08             	cmp    $0x8,%eax
40f44b:	0f 84 1d 97 06 00    	je     0x478b6e
40f451:	83 f8 0c             	cmp    $0xc,%eax
40f454:	0f 84 14 97 06 00    	je     0x478b6e
40f45a:	83 f8 0f             	cmp    $0xf,%eax
40f45d:	0f 84 0b 97 06 00    	je     0x478b6e
40f463:	8b 5d 08             	mov    0x8(%ebp),%ebx
40f466:	8b 43 04             	mov    0x4(%ebx),%eax
40f469:	8b 04 90             	mov    (%eax,%edx,4),%eax
40f46c:	0f b7 48 08          	movzwl 0x8(%eax),%ecx
40f470:	0f bf 78 08          	movswl 0x8(%eax),%edi
40f474:	89 7d 88             	mov    %edi,-0x78(%ebp)
40f477:	66 83 f9 41          	cmp    $0x41,%cx
40f47b:	0f 85 6c 06 00 00    	jne    0x40faed
40f481:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40f484:	6a ff                	push   $0xffffffff
40f486:	8d 45 9c             	lea    -0x64(%ebp),%eax
40f489:	50                   	push   %eax
40f48a:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f48d:	50                   	push   %eax
40f48e:	42                   	inc    %edx
40f48f:	53                   	push   %ebx
40f490:	89 55 f8             	mov    %edx,-0x8(%ebp)
40f493:	c7 45 9c 00 00 00 00 	movl   $0x0,-0x64(%ebp)
40f49a:	c7 45 a4 00 00 00 00 	movl   $0x0,-0x5c(%ebp)
40f4a1:	c7 45 a8 01 00 00 00 	movl   $0x1,-0x58(%ebp)
40f4a8:	e8 83 09 00 00       	call   0x40fe30
40f4ad:	85 c0                	test   %eax,%eax
40f4af:	78 6f                	js     0x40f520
40f4b1:	80 7d eb 00          	cmpb   $0x0,-0x15(%ebp)
40f4b5:	0f 85 65 03 00 00    	jne    0x40f820
40f4bb:	8b 4b 04             	mov    0x4(%ebx),%ecx
40f4be:	8b 45 f8             	mov    -0x8(%ebp),%eax
40f4c1:	8b 04 81             	mov    (%ecx,%eax,4),%eax
40f4c4:	66 83 78 08 7f       	cmpw   $0x7f,0x8(%eax)
40f4c9:	0f 85 90 99 06 00    	jne    0x478e5f
40f4cf:	85 f6                	test   %esi,%esi
40f4d1:	0f 84 d7 07 00 00    	je     0x40fcae
40f4d7:	83 ff 41             	cmp    $0x41,%edi
40f4da:	0f 85 1c 06 00 00    	jne    0x40fafc
40f4e0:	8d 45 9c             	lea    -0x64(%ebp),%eax
40f4e3:	3b f0                	cmp    %eax,%esi
40f4e5:	74 39                	je     0x40f520
40f4e7:	83 7e 0c 04          	cmpl   $0x4,0xc(%esi)
40f4eb:	0f 84 66 06 00 00    	je     0x40fb57
40f4f1:	8b 7e 08             	mov    0x8(%esi),%edi
40f4f4:	85 ff                	test   %edi,%edi
40f4f6:	0f 85 bd 06 00 00    	jne    0x40fbb9
40f4fc:	8b 46 0c             	mov    0xc(%esi),%eax
40f4ff:	83 f8 05             	cmp    $0x5,%eax
40f502:	0f 8d ed 06 00 00    	jge    0x40fbf5
40f508:	8d 45 9c             	lea    -0x64(%ebp),%eax
40f50b:	50                   	push   %eax
40f50c:	8b ce                	mov    %esi,%ecx
40f50e:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
40f515:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
40f51b:	e8 00 22 00 00       	call   0x411720
40f520:	8b 75 a4             	mov    -0x5c(%ebp),%esi
40f523:	85 f6                	test   %esi,%esi
40f525:	0f 85 9c 05 00 00    	jne    0x40fac7
40f52b:	8b 45 a8             	mov    -0x58(%ebp),%eax
40f52e:	83 f8 05             	cmp    $0x5,%eax
40f531:	0f 8d 9e 06 00 00    	jge    0x40fbd5
40f537:	c7 45 a8 01 00 00 00 	movl   $0x1,-0x58(%ebp)
40f53e:	c7 45 9c 00 00 00 00 	movl   $0x0,-0x64(%ebp)
40f545:	8b b5 60 ff ff ff    	mov    -0xa0(%ebp),%esi
40f54b:	ff 0e                	decl   (%esi)
40f54d:	0f 84 9d 9a 06 00    	je     0x478ff0
40f553:	5f                   	pop    %edi
40f554:	5e                   	pop    %esi
40f555:	5b                   	pop    %ebx
40f556:	8b e5                	mov    %ebp,%esp
40f558:	5d                   	pop    %ebp
40f559:	c2 04 00             	ret    $0x4
40f55c:	73 1a                	jae    0x40f578
40f55e:	8b 41 1c             	mov    0x1c(%ecx),%eax
40f561:	8b 55 98             	mov    -0x68(%ebp),%edx
40f564:	89 42 18             	mov    %eax,0x18(%edx)
40f567:	8b 06                	mov    (%esi),%eax
40f569:	89 41 1c             	mov    %eax,0x1c(%ecx)
40f56c:	89 0e                	mov    %ecx,(%esi)
40f56e:	83 79 18 00          	cmpl   $0x0,0x18(%ecx)
40f572:	0f 84 1c 01 00 00    	je     0x40f694
40f578:	8b 06                	mov    (%esi),%eax
40f57a:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40f57d:	8b 5d b8             	mov    -0x48(%ebp),%ebx
40f580:	8b 7d c0             	mov    -0x40(%ebp),%edi
40f583:	89 41 18             	mov    %eax,0x18(%ecx)
40f586:	8b 06                	mov    (%esi),%eax
40f588:	89 45 ec             	mov    %eax,-0x14(%ebp)
40f58b:	8b 40 18             	mov    0x18(%eax),%eax
40f58e:	89 06                	mov    %eax,(%esi)
40f590:	e9 bb fc ff ff       	jmp    0x40f250
40f595:	8b 3d e0 20 4c 00    	mov    0x4c20e0,%edi
40f59b:	85 ff                	test   %edi,%edi
40f59d:	0f 84 01 07 00 00    	je     0x40fca4
40f5a3:	a1 f0 21 4c 00       	mov    0x4c21f0,%eax
40f5a8:	c6 45 f7 00          	movb   $0x0,-0x9(%ebp)
40f5ac:	a8 01                	test   $0x1,%al
40f5ae:	0f 84 dd 91 06 00    	je     0x478791
40f5b4:	c7 05 10 22 4c 00 00 	movl   $0x0,0x4c2210
40f5bb:	00 00 00
40f5be:	c7 05 0c 22 4c 00 00 	movl   $0x0,0x4c220c
40f5c5:	00 00 00
40f5c8:	c7 45 88 f4 21 4c 00 	movl   $0x4c21f4,-0x78(%ebp)
40f5cf:	c7 45 ec f4 21 4c 00 	movl   $0x4c21f4,-0x14(%ebp)
40f5d6:	eb 08                	jmp    0x40f5e0
40f5d8:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40f5df:	90                   	nop
40f5e0:	8b 4f 04             	mov    0x4(%edi),%ecx
40f5e3:	85 db                	test   %ebx,%ebx
40f5e5:	0f 84 d0 91 06 00    	je     0x4787bb
40f5eb:	85 c9                	test   %ecx,%ecx
40f5ed:	0f 84 1d 04 00 00    	je     0x40fa10
40f5f3:	3b d9                	cmp    %ecx,%ebx
40f5f5:	0f 82 24 05 00 00    	jb     0x40fb1f
40f5fb:	8b 0f                	mov    (%edi),%ecx
40f5fd:	8b 55 c0             	mov    -0x40(%ebp),%edx
40f600:	8b f3                	mov    %ebx,%esi
40f602:	85 db                	test   %ebx,%ebx
40f604:	74 11                	je     0x40f617
40f606:	66 8b 02             	mov    (%edx),%ax
40f609:	66 3b 01             	cmp    (%ecx),%ax
40f60c:	75 78                	jne    0x40f686
40f60e:	83 c2 02             	add    $0x2,%edx
40f611:	83 c1 02             	add    $0x2,%ecx
40f614:	4e                   	dec    %esi
40f615:	75 ef                	jne    0x40f606
40f617:	33 c0                	xor    %eax,%eax
40f619:	85 c0                	test   %eax,%eax
40f61b:	0f 88 59 03 00 00    	js     0x40f97a
40f621:	0f 8f e9 03 00 00    	jg     0x40fa10
40f627:	c6 45 f7 01          	movb   $0x1,-0x9(%ebp)
40f62b:	80 7d f7 00          	cmpb   $0x0,-0x9(%ebp)
40f62f:	8b 47 18             	mov    0x18(%edi),%eax
40f632:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40f635:	89 41 1c             	mov    %eax,0x1c(%ecx)
40f638:	a1 e0 20 4c 00       	mov    0x4c20e0,%eax
40f63d:	8b 4d 88             	mov    -0x78(%ebp),%ecx
40f640:	8b 40 1c             	mov    0x1c(%eax),%eax
40f643:	89 41 18             	mov    %eax,0x18(%ecx)
40f646:	8b 0d e0 20 4c 00    	mov    0x4c20e0,%ecx
40f64c:	a1 10 22 4c 00       	mov    0x4c2210,%eax
40f651:	89 41 18             	mov    %eax,0x18(%ecx)
40f654:	8b 0d e0 20 4c 00    	mov    0x4c20e0,%ecx
40f65a:	a1 0c 22 4c 00       	mov    0x4c220c,%eax
40f65f:	89 41 1c             	mov    %eax,0x1c(%ecx)
40f662:	0f 84 3c 06 00 00    	je     0x40fca4
40f668:	8b 35 e0 20 4c 00    	mov    0x4c20e0,%esi
40f66e:	85 f6                	test   %esi,%esi
40f670:	0f 84 2e 06 00 00    	je     0x40fca4
40f676:	8b 46 10             	mov    0x10(%esi),%eax
40f679:	8b 76 14             	mov    0x14(%esi),%esi
40f67c:	25 00 ff 00 00       	and    $0xff00,%eax
40f681:	e9 57 fd ff ff       	jmp    0x40f3dd
40f686:	0f b7 02             	movzwl (%edx),%eax
40f689:	66 3b 01             	cmp    (%ecx),%ax
40f68c:	1b c0                	sbb    %eax,%eax
40f68e:	83 e0 fe             	and    $0xfffffffe,%eax
40f691:	40                   	inc    %eax
40f692:	eb 85                	jmp    0x40f619
40f694:	8b 5d b8             	mov    -0x48(%ebp),%ebx
40f697:	8a 55 f7             	mov    -0x9(%ebp),%dl
40f69a:	e9 ec fc ff ff       	jmp    0x40f38b
40f69f:	90                   	nop
40f6a0:	83 7e 0c 05          	cmpl   $0x5,0xc(%esi)
40f6a4:	0f 85 71 94 06 00    	jne    0x478b1b
40f6aa:	8b c2                	mov    %edx,%eax
40f6ac:	c7 45 c4 00 00 00 00 	movl   $0x0,-0x3c(%ebp)
40f6b3:	c7 45 cc 00 00 00 00 	movl   $0x0,-0x34(%ebp)
40f6ba:	c7 45 d0 01 00 00 00 	movl   $0x1,-0x30(%ebp)
40f6c1:	89 45 b0             	mov    %eax,-0x50(%ebp)
40f6c4:	8b 44 91 fc          	mov    -0x4(%ecx,%edx,4),%eax
40f6c8:	33 db                	xor    %ebx,%ebx
40f6ca:	0f bf 40 0a          	movswl 0xa(%eax),%eax
40f6ce:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40f6d1:	8b 04 91             	mov    (%ecx,%edx,4),%eax
40f6d4:	89 75 90             	mov    %esi,-0x70(%ebp)
40f6d7:	66 83 78 08 4e       	cmpw   $0x4e,0x8(%eax)
40f6dc:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40f6df:	0f 85 8b 00 00 00    	jne    0x40f770
40f6e5:	8b 44 91 04          	mov    0x4(%ecx,%edx,4),%eax
40f6e9:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40f6ec:	0f bf 40 0a          	movswl 0xa(%eax),%eax
40f6f0:	42                   	inc    %edx
40f6f1:	89 45 ac             	mov    %eax,-0x54(%ebp)
40f6f4:	6a ff                	push   $0xffffffff
40f6f6:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40f6f9:	50                   	push   %eax
40f6fa:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f6fd:	50                   	push   %eax
40f6fe:	57                   	push   %edi
40f6ff:	89 55 f8             	mov    %edx,-0x8(%ebp)
40f702:	e8 29 07 00 00       	call   0x40fe30
40f707:	85 c0                	test   %eax,%eax
40f709:	0f 88 b3 94 06 00    	js     0x478bc2
40f70f:	8b 7d d0             	mov    -0x30(%ebp),%edi