40e3ab:	cc                   	int3
40e3ac:	cc                   	int3
40e3ad:	cc                   	int3
40e3ae:	cc                   	int3
40e3af:	cc                   	int3
40e3b0:	55                   	push   %ebp
40e3b1:	8b ec                	mov    %esp,%ebp
40e3b3:	83 ec 54             	sub    $0x54,%esp
40e3b6:	53                   	push   %ebx
40e3b7:	56                   	push   %esi
40e3b8:	8b 75 08             	mov    0x8(%ebp),%esi
40e3bb:	57                   	push   %edi
40e3bc:	8b c1                	mov    %ecx,%eax
40e3be:	6a ff                	push   $0xffffffff
40e3c0:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40e3c3:	51                   	push   %ecx
40e3c4:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40e3c7:	51                   	push   %ecx
40e3c8:	56                   	push   %esi
40e3c9:	8b c8                	mov    %eax,%ecx
40e3cb:	89 45 f8             	mov    %eax,-0x8(%ebp)
40e3ce:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
40e3d5:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
40e3dc:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
40e3e3:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
40e3ea:	e8 41 1a 00 00       	call   0x40fe30
40e3ef:	85 c0                	test   %eax,%eax
40e3f1:	0f 88 13 95 06 00    	js     0x47790a
40e3f7:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40e3fa:	8b 7d e8             	mov    -0x18(%ebp),%edi
40e3fd:	8b 55 e0             	mov    -0x20(%ebp),%edx
40e400:	83 f9 09             	cmp    $0x9,%ecx
40e403:	75 54                	jne    0x40e459
40e405:	84 d2                	test   %dl,%dl
40e407:	75 63                	jne    0x40e46c
40e409:	32 db                	xor    %bl,%bl
40e40b:	88 5d ff             	mov    %bl,-0x1(%ebp)
40e40e:	85 ff                	test   %edi,%edi
40e410:	0f 85 38 95 06 00    	jne    0x47794e
40e416:	83 f9 09             	cmp    $0x9,%ecx
40e419:	0f 85 e0 03 00 00    	jne    0x40e7ff
40e41f:	8b 56 04             	mov    0x4(%esi),%edx
40e422:	8b 7d f4             	mov    -0xc(%ebp),%edi
40e425:	8b 04 ba             	mov    (%edx,%edi,4),%eax
40e428:	66 83 78 08 00       	cmpw   $0x0,0x8(%eax)
40e42d:	0f 85 9f 97 06 00    	jne    0x477bd2
40e433:	83 38 05             	cmpl   $0x5,(%eax)
40e436:	0f 85 96 97 06 00    	jne    0x477bd2
40e43c:	8b 44 ba 04          	mov    0x4(%edx,%edi,4),%eax
40e440:	47                   	inc    %edi
40e441:	66 83 78 08 7f       	cmpw   $0x7f,0x8(%eax)
40e446:	0f 84 3b 02 00 00    	je     0x40e687
40e44c:	84 db                	test   %bl,%bl
40e44e:	75 20                	jne    0x40e470
40e450:	5f                   	pop    %edi
40e451:	5e                   	pop    %esi
40e452:	5b                   	pop    %ebx
40e453:	8b e5                	mov    %ebp,%esp
40e455:	5d                   	pop    %ebp
40e456:	c2 08 00             	ret    $0x8
40e459:	8d 41 ff             	lea    -0x1(%ecx),%eax
40e45c:	83 f8 0a             	cmp    $0xa,%eax
40e45f:	77 a8                	ja     0x40e409
40e461:	ff 24 85 a0 e8 40 00 	jmp    *0x40e8a0(,%eax,4)
40e468:	85 d2                	test   %edx,%edx
40e46a:	74 9d                	je     0x40e409
40e46c:	b3 01                	mov    $0x1,%bl
40e46e:	eb 9b                	jmp    0x40e40b
40e470:	33 c9                	xor    %ecx,%ecx
40e472:	33 f6                	xor    %esi,%esi
40e474:	c7 45 e0 b4 dd 49 00 	movl   $0x49ddb4,-0x20(%ebp)
40e47b:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
40e482:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40e485:	89 75 ec             	mov    %esi,-0x14(%ebp)
40e488:	8b 1c ba             	mov    (%edx,%edi,4),%ebx
40e48b:	8d 7f 01             	lea    0x1(%edi),%edi
40e48e:	3b ce                	cmp    %esi,%ecx
40e490:	0f 84 a7 00 00 00    	je     0x40e53d
40e496:	6a 0c                	push   $0xc
40e498:	e8 4d 10 01 00       	call   0x41f4ea
40e49d:	8b f0                	mov    %eax,%esi
40e49f:	83 c4 04             	add    $0x4,%esp
40e4a2:	85 f6                	test   %esi,%esi
40e4a4:	0f 84 cf 03 00 00    	je     0x40e879
40e4aa:	0f b7 4b 08          	movzwl 0x8(%ebx),%ecx
40e4ae:	66 89 4e 08          	mov    %cx,0x8(%esi)
40e4b2:	0f b7 46 08          	movzwl 0x8(%esi),%eax
40e4b6:	0f b7 4b 0a          	movzwl 0xa(%ebx),%ecx
40e4ba:	66 89 4e 0a          	mov    %cx,0xa(%esi)
40e4be:	66 83 f8 3f          	cmp    $0x3f,%ax
40e4c2:	7e 41                	jle    0x40e505
40e4c4:	66 83 f8 10          	cmp    $0x10,%ax
40e4c8:	0f 84 3c 95 06 00    	je     0x477a0a
40e4ce:	66 83 f8 20          	cmp    $0x20,%ax
40e4d2:	0f 84 98 03 00 00    	je     0x40e870
40e4d8:	8b 03                	mov    (%ebx),%eax
40e4da:	89 06                	mov    %eax,(%esi)
40e4dc:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40e4df:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40e4e2:	8b 5d 08             	mov    0x8(%ebp),%ebx
40e4e5:	89 34 88             	mov    %esi,(%eax,%ecx,4)
40e4e8:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40e4eb:	8b 53 04             	mov    0x4(%ebx),%edx
40e4ee:	41                   	inc    %ecx
40e4ef:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40e4f2:	8b 04 ba             	mov    (%edx,%edi,4),%eax
40e4f5:	66 83 78 08 7f       	cmpw   $0x7f,0x8(%eax)
40e4fa:	0f 84 97 00 00 00    	je     0x40e597
40e500:	8b 75 ec             	mov    -0x14(%ebp),%esi
40e503:	eb 83                	jmp    0x40e488
40e505:	66 83 f8 30          	cmp    $0x30,%ax
40e509:	7c b9                	jl     0x40e4c4
40e50b:	6a 10                	push   $0x10
40e50d:	e8 d8 0f 01 00       	call   0x41f4ea
40e512:	8b d0                	mov    %eax,%edx
40e514:	83 c4 04             	add    $0x4,%esp
40e517:	85 d2                	test   %edx,%edx
40e519:	0f 84 48 03 00 00    	je     0x40e867
40e51f:	8b 03                	mov    (%ebx),%eax
40e521:	8b 08                	mov    (%eax),%ecx
40e523:	89 0a                	mov    %ecx,(%edx)
40e525:	8b 48 04             	mov    0x4(%eax),%ecx
40e528:	89 4a 04             	mov    %ecx,0x4(%edx)
40e52b:	8b 48 08             	mov    0x8(%eax),%ecx
40e52e:	89 4a 08             	mov    %ecx,0x8(%edx)
40e531:	8b 40 0c             	mov    0xc(%eax),%eax
40e534:	89 42 0c             	mov    %eax,0xc(%edx)
40e537:	ff 00                	incl   (%eax)
40e539:	89 16                	mov    %edx,(%esi)
40e53b:	eb 9f                	jmp    0x40e4dc
40e53d:	8d 04 36             	lea    (%esi,%esi,1),%eax
40e540:	83 f8 08             	cmp    $0x8,%eax
40e543:	73 05                	jae    0x40e54a
40e545:	b8 08 00 00 00       	mov    $0x8,%eax
40e54a:	33 c9                	xor    %ecx,%ecx
40e54c:	89 45 ec             	mov    %eax,-0x14(%ebp)
40e54f:	ba 04 00 00 00       	mov    $0x4,%edx
40e554:	f7 e2                	mul    %edx
40e556:	0f 90 c1             	seto   %cl
40e559:	f7 d9                	neg    %ecx
40e55b:	0b c8                	or     %eax,%ecx
40e55d:	51                   	push   %ecx
40e55e:	e8 87 0f 01 00       	call   0x41f4ea
40e563:	8b f0                	mov    %eax,%esi
40e565:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40e568:	83 c4 04             	add    $0x4,%esp
40e56b:	85 c0                	test   %eax,%eax
40e56d:	74 20                	je     0x40e58f
40e56f:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40e572:	85 c9                	test   %ecx,%ecx
40e574:	74 19                	je     0x40e58f
40e576:	c1 e1 02             	shl    $0x2,%ecx
40e579:	51                   	push   %ecx
40e57a:	50                   	push   %eax
40e57b:	56                   	push   %esi
40e57c:	e8 ff 08 01 00       	call   0x41ee80
40e581:	83 c4 0c             	add    $0xc,%esp
40e584:	ff 75 e4             	push   -0x1c(%ebp)
40e587:	e8 d2 0f 01 00       	call   0x41f55e
40e58c:	83 c4 04             	add    $0x4,%esp
40e58f:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40e592:	e9 ff fe ff ff       	jmp    0x40e496
40e597:	8b f8                	mov    %eax,%edi
40e599:	8b 45 ec             	mov    -0x14(%ebp),%eax
40e59c:	3b c8                	cmp    %eax,%ecx
40e59e:	0f 84 75 94 06 00    	je     0x477a19
40e5a4:	6a 0c                	push   $0xc
40e5a6:	e8 3f 0f 01 00       	call   0x41f4ea
40e5ab:	8b f0                	mov    %eax,%esi
40e5ad:	83 c4 04             	add    $0x4,%esp
40e5b0:	85 f6                	test   %esi,%esi
40e5b2:	0f 84 d1 02 00 00    	je     0x40e889
40e5b8:	0f b7 4f 08          	movzwl 0x8(%edi),%ecx
40e5bc:	66 89 4e 08          	mov    %cx,0x8(%esi)
40e5c0:	0f b7 46 08          	movzwl 0x8(%esi),%eax
40e5c4:	0f b7 4f 0a          	movzwl 0xa(%edi),%ecx
40e5c8:	66 89 4e 0a          	mov    %cx,0xa(%esi)
40e5cc:	66 83 f8 3f          	cmp    $0x3f,%ax
40e5d0:	0f 8e 9c 94 06 00    	jle    0x477a72
40e5d6:	66 83 f8 10          	cmp    $0x10,%ax
40e5da:	0f 84 d6 94 06 00    	je     0x477ab6
40e5e0:	66 83 f8 20          	cmp    $0x20,%ax
40e5e4:	0f 84 96 02 00 00    	je     0x40e880
40e5ea:	8b 07                	mov    (%edi),%eax
40e5ec:	89 06                	mov    %eax,(%esi)
40e5ee:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40e5f1:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40e5f4:	ff 75 0c             	push   0xc(%ebp)
40e5f7:	89 34 88             	mov    %esi,(%eax,%ecx,4)
40e5fa:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40e5fd:	ff 45 e8             	incl   -0x18(%ebp)
40e600:	8d 45 e0             	lea    -0x20(%ebp),%eax
40e603:	50                   	push   %eax
40e604:	e8 56 f9 ff ff       	call   0x40df5f
40e609:	33 f6                	xor    %esi,%esi
40e60b:	c7 45 e0 b4 dd 49 00 	movl   $0x49ddb4,-0x20(%ebp)
40e612:	39 75 e8             	cmp    %esi,-0x18(%ebp)
40e615:	76 2d                	jbe    0x40e644
40e617:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40e61a:	8b 3c b0             	mov    (%eax,%esi,4),%edi
40e61d:	85 ff                	test   %edi,%edi
40e61f:	74 16                	je     0x40e637
40e621:	0f b7 47 08          	movzwl 0x8(%edi),%eax
40e625:	66 83 f8 3f          	cmp    $0x3f,%ax
40e629:	7e 34                	jle    0x40e65f
40e62b:	57                   	push   %edi
40e62c:	e8 2d 0f 01 00       	call   0x41f55e
40e631:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40e634:	83 c4 04             	add    $0x4,%esp
40e637:	c7 04 b0 00 00 00 00 	movl   $0x0,(%eax,%esi,4)
40e63e:	46                   	inc    %esi
40e63f:	3b 75 e8             	cmp    -0x18(%ebp),%esi
40e642:	72 d3                	jb     0x40e617
40e644:	ff 75 e4             	push   -0x1c(%ebp)
40e647:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
40e64e:	e8 0b 0f 01 00       	call   0x41f55e
40e653:	83 c4 04             	add    $0x4,%esp
40e656:	5f                   	pop    %edi
40e657:	5e                   	pop    %esi
40e658:	5b                   	pop    %ebx
40e659:	8b e5                	mov    %ebp,%esp
40e65b:	5d                   	pop    %ebp
40e65c:	c2 08 00             	ret    $0x8
40e65f:	66 83 f8 30          	cmp    $0x30,%ax
40e663:	7c c6                	jl     0x40e62b
40e665:	8b 1f                	mov    (%edi),%ebx
40e667:	85 db                	test   %ebx,%ebx
40e669:	74 c0                	je     0x40e62b
40e66b:	8b 43 0c             	mov    0xc(%ebx),%eax
40e66e:	ff 08                	decl   (%eax)
40e670:	8b 43 0c             	mov    0xc(%ebx),%eax
40e673:	83 38 00             	cmpl   $0x0,(%eax)
40e676:	0f 84 49 94 06 00    	je     0x477ac5
40e67c:	53                   	push   %ebx
40e67d:	e8 dc 0e 01 00       	call   0x41f55e
40e682:	83 c4 04             	add    $0x4,%esp
40e685:	eb a4                	jmp    0x40e62b
40e687:	8b 7d 0c             	mov    0xc(%ebp),%edi
40e68a:	33 d2                	xor    %edx,%edx
40e68c:	8b 07                	mov    (%edi),%eax
40e68e:	32 ff                	xor    %bh,%bh
40e690:	8d 48 ff             	lea    -0x1(%eax),%ecx
40e693:	c6 45 0b 00          	movb   $0x0,0xb(%ebp)
40e697:	c7 45 c0 00 00 00 00 	movl   $0x0,-0x40(%ebp)
40e69e:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
40e6a5:	c7 45 cc 01 00 00 00 	movl   $0x1,-0x34(%ebp)
40e6ac:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
40e6b3:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
40e6ba:	c7 45 dc 01 00 00 00 	movl   $0x1,-0x24(%ebp)
40e6c1:	89 55 f4             	mov    %edx,-0xc(%ebp)
40e6c4:	89 55 b0             	mov    %edx,-0x50(%ebp)
40e6c7:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
40e6ca:	84 db                	test   %bl,%bl
40e6cc:	0f 85 25 01 00 00    	jne    0x40e7f7
40e6d2:	33 c0                	xor    %eax,%eax
40e6d4:	89 45 0c             	mov    %eax,0xc(%ebp)
40e6d7:	8b 37                	mov    (%edi),%esi
40e6d9:	8d 56 01             	lea    0x1(%esi),%edx
40e6dc:	89 17                	mov    %edx,(%edi)
40e6de:	3b 35 10 21 4c 00    	cmp    0x4c2110,%esi
40e6e4:	7f 4b                	jg     0x40e731
40e6e6:	85 f6                	test   %esi,%esi
40e6e8:	7e 47                	jle    0x40e731
40e6ea:	c1 e6 04             	shl    $0x4,%esi
40e6ed:	03 35 4c 21 4c 00    	add    0x4c214c,%esi
40e6f3:	74 3c                	je     0x40e731
40e6f5:	84 ff                	test   %bh,%bh
40e6f7:	75 38                	jne    0x40e731
40e6f9:	8b 4e 04             	mov    0x4(%esi),%ecx
40e6fc:	8b 01                	mov    (%ecx),%eax
40e6fe:	66 83 78 08 00       	cmpw   $0x0,0x8(%eax)
40e703:	75 d2                	jne    0x40e6d7
40e705:	8b 00                	mov    (%eax),%eax
40e707:	83 f8 08             	cmp    $0x8,%eax
40e70a:	0f 85 b6 00 00 00    	jne    0x40e7c6
40e710:	8b 45 0c             	mov    0xc(%ebp),%eax
40e713:	85 c0                	test   %eax,%eax
40e715:	0f 85 75 01 00 00    	jne    0x40e890
40e71b:	8d 42 ff             	lea    -0x1(%edx),%eax
40e71e:	b7 01                	mov    $0x1,%bh
40e720:	89 45 b8             	mov    %eax,-0x48(%ebp)
40e723:	84 db                	test   %bl,%bl
40e725:	75 b0                	jne    0x40e6d7
40e727:	38 5d 0b             	cmp    %bl,0xb(%ebp)
40e72a:	75 ab                	jne    0x40e6d7
40e72c:	89 45 f4             	mov    %eax,-0xc(%ebp)
40e72f:	eb a6                	jmp    0x40e6d7
40e731:	8b 45 f4             	mov    -0xc(%ebp),%eax
40e734:	8b 5d f8             	mov    -0x8(%ebp),%ebx
40e737:	89 07                	mov    %eax,(%edi)
40e739:	80 bb 69 01 00 00 00 	cmpb   $0x0,0x169(%ebx)
40e740:	0f 85 71 94 06 00    	jne    0x477bb7
40e746:	6a 38                	push   $0x38
40e748:	e8 9d 0d 01 00       	call   0x41f4ea
40e74d:	8b f0                	mov    %eax,%esi
40e74f:	83 c4 04             	add    $0x4,%esp
40e752:	85 f6                	test   %esi,%esi
40e754:	0f 84 3c 01 00 00    	je     0x40e896
40e75a:	8b 45 b4             	mov    -0x4c(%ebp),%eax
40e75d:	8b 4d bc             	mov    -0x44(%ebp),%ecx
40e760:	89 46 04             	mov    %eax,0x4(%esi)
40e763:	8b 45 b8             	mov    -0x48(%ebp),%eax
40e766:	89 46 08             	mov    %eax,0x8(%esi)
40e769:	89 4e 0c             	mov    %ecx,0xc(%esi)
40e76c:	8d 4e 10             	lea    0x10(%esi),%ecx
40e76f:	8d 45 c0             	lea    -0x40(%ebp),%eax
40e772:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
40e778:	50                   	push   %eax
40e779:	c7 41 08 00 00 00 00 	movl   $0x0,0x8(%ecx)
40e780:	e8 9b 2f 00 00       	call   0x411720
40e785:	8d 4e 20             	lea    0x20(%esi),%ecx
40e788:	8d 45 d0             	lea    -0x30(%ebp),%eax
40e78b:	50                   	push   %eax
40e78c:	c7 41 08 00 00 00 00 	movl   $0x0,0x8(%ecx)
40e793:	e8 88 2f 00 00       	call   0x411720
40e798:	8b 83 64 01 00 00    	mov    0x164(%ebx),%eax
40e79e:	89 46 30             	mov    %eax,0x30(%esi)
40e7a1:	89 b3 64 01 00 00    	mov    %esi,0x164(%ebx)
40e7a7:	ff 83 60 01 00 00    	incl   0x160(%ebx)
40e7ad:	8d 4d d0             	lea    -0x30(%ebp),%ecx
40e7b0:	e8 6b 44 00 00       	call   0x412c20
40e7b5:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40e7b8:	e8 63 44 00 00       	call   0x412c20
40e7bd:	5f                   	pop    %edi
40e7be:	5e                   	pop    %esi
40e7bf:	5b                   	pop    %ebx
40e7c0:	8b e5                	mov    %ebp,%esp
40e7c2:	5d                   	pop    %ebp
40e7c3:	c2 08 00             	ret    $0x8
40e7c6:	83 e8 04             	sub    $0x4,%eax
40e7c9:	74 51                	je     0x40e81c
40e7cb:	83 e8 02             	sub    $0x2,%eax
40e7ce:	75 40                	jne    0x40e810
40e7d0:	39 45 0c             	cmp    %eax,0xc(%ebp)
40e7d3:	0f 85 fe fe ff ff    	jne    0x40e6d7
40e7d9:	80 7d 0b 01          	cmpb   $0x1,0xb(%ebp)
40e7dd:	0f 84 c3 93 06 00    	je     0x477ba6
40e7e3:	c6 45 0b 01          	movb   $0x1,0xb(%ebp)
40e7e7:	84 db                	test   %bl,%bl
40e7e9:	0f 85 e8 fe ff ff    	jne    0x40e6d7
40e7ef:	89 55 f4             	mov    %edx,-0xc(%ebp)
40e7f2:	e9 e0 fe ff ff       	jmp    0x40e6d7
40e7f7:	89 45 f4             	mov    %eax,-0xc(%ebp)
40e7fa:	e9 d3 fe ff ff       	jmp    0x40e6d2
40e7ff:	83 c1 fb             	add    $0xfffffffb,%ecx
40e802:	83 f9 0a             	cmp    $0xa,%ecx
40e805:	0f 87 14 fc ff ff    	ja     0x40e41f
40e80b:	e9 58 91 06 00       	jmp    0x477968
40e810:	48                   	dec    %eax
40e811:	0f 85 c0 fe ff ff    	jne    0x40e6d7