40d338:	57                   	push   %edi
40d339:	e8 4a 00 00 00       	call   0x40d388
40d33e:	33 c0                	xor    %eax,%eax
40d340:	40                   	inc    %eax
40d341:	5b                   	pop    %ebx
40d342:	5f                   	pop    %edi
40d343:	c9                   	leave
40d344:	c2 20 00             	ret    $0x20
40d347:	33 c0                	xor    %eax,%eax
40d349:	eb f8                	jmp    0x40d343
40d34b:	33 c0                	xor    %eax,%eax
40d34d:	eb f3                	jmp    0x40d342
40d34f:	33 c0                	xor    %eax,%eax
40d351:	eb ee                	jmp    0x40d341
40d353:	90                   	nop
40d354:	4f                   	dec    %edi
40d355:	d3 40 00             	roll   %cl,0x0(%eax)
40d358:	2f                   	das
40d359:	d3 40 00             	roll   %cl,0x0(%eax)
40d35c:	fd                   	std
40d35d:	d7                   	xlat   %ds:(%ebx)
40d35e:	47                   	inc    %edi
40d35f:	00 46 d8             	add    %al,-0x28(%esi)
40d362:	47                   	inc    %edi
40d363:	00 62 d8             	add    %ah,-0x28(%edx)
40d366:	47                   	inc    %edi
40d367:	00 df                	add    %bl,%bh
40d369:	d7                   	xlat   %ds:(%ebx)
40d36a:	47                   	inc    %edi
40d36b:	00 4f d3             	add    %cl,-0x2d(%edi)
40d36e:	40                   	inc    %eax
40d36f:	00 00                	add    %al,(%eax)
40d371:	01 01                	add    %eax,(%ecx)
40d373:	02 02                	add    (%edx),%al
40d375:	01 01                	add    %eax,(%ecx)
40d377:	01 06                	add    %eax,(%esi)
40d379:	03 06                	add    (%esi),%eax
40d37b:	03 06                	add    (%esi),%eax
40d37d:	04 06                	add    $0x6,%al
40d37f:	01 06                	add    %eax,(%esi)
40d381:	01 06                	add    %eax,(%esi)
40d383:	01 06                	add    %eax,(%esi)
40d385:	05 06 01 55 8b       	add    $0x8b550106,%eax
40d38a:	ec                   	in     (%dx),%al
40d38b:	8b 45 08             	mov    0x8(%ebp),%eax
40d38e:	56                   	push   %esi
40d38f:	8b b0 80 00 00 00    	mov    0x80(%eax),%esi
40d395:	57                   	push   %edi
40d396:	33 ff                	xor    %edi,%edi
40d398:	8d 46 04             	lea    0x4(%esi),%eax
40d39b:	39 38                	cmp    %edi,(%eax)
40d39d:	75 5b                	jne    0x40d3fa
40d39f:	8b 46 0c             	mov    0xc(%esi),%eax
40d3a2:	03 45 18             	add    0x18(%ebp),%eax
40d3a5:	3d 00 01 00 00       	cmp    $0x100,%eax
40d3aa:	0f 8d 2c f9 06 00    	jge    0x47ccdc
40d3b0:	8b 45 0c             	mov    0xc(%ebp),%eax
40d3b3:	8b 7e 0c             	mov    0xc(%esi),%edi
40d3b6:	88 84 37 10 08 00 00 	mov    %al,0x810(%edi,%esi,1)
40d3bd:	83 f8 08             	cmp    $0x8,%eax
40d3c0:	74 1a                	je     0x40d3dc
40d3c2:	8b 45 10             	mov    0x10(%ebp),%eax
40d3c5:	89 44 fe 10          	mov    %eax,0x10(%esi,%edi,8)
40d3c9:	8b 45 14             	mov    0x14(%ebp),%eax
40d3cc:	89 44 fe 14          	mov    %eax,0x14(%esi,%edi,8)
40d3d0:	8d 47 01             	lea    0x1(%edi),%eax
40d3d3:	5f                   	pop    %edi
40d3d4:	89 46 0c             	mov    %eax,0xc(%esi)
40d3d7:	5e                   	pop    %esi
40d3d8:	5d                   	pop    %ebp
40d3d9:	c2 14 00             	ret    $0x14
40d3dc:	83 7d 10 ff          	cmpl   $0xffffffff,0x10(%ebp)
40d3e0:	74 08                	je     0x40d3ea
40d3e2:	8d 4d 10             	lea    0x10(%ebp),%ecx
40d3e5:	e8 53 d3 00 00       	call   0x41a73d
40d3ea:	83 7d 14 ff          	cmpl   $0xffffffff,0x14(%ebp)
40d3ee:	74 d2                	je     0x40d3c2
40d3f0:	8d 4d 14             	lea    0x14(%ebp),%ecx
40d3f3:	e8 45 d3 00 00       	call   0x41a73d
40d3f8:	eb c8                	jmp    0x40d3c2
40d3fa:	8b 30                	mov    (%eax),%esi
40d3fc:	eb 9a                	jmp    0x40d398
40d3fe:	55                   	push   %ebp
40d3ff:	8b ec                	mov    %esp,%ebp
40d401:	8b d1                	mov    %ecx,%edx
40d403:	8b 4d 08             	mov    0x8(%ebp),%ecx
40d406:	56                   	push   %esi
40d407:	57                   	push   %edi
40d408:	85 c9                	test   %ecx,%ecx
40d40a:	0f 88 8f 05 07 00    	js     0x47d99f
40d410:	83 f9 03             	cmp    $0x3,%ecx
40d413:	7c 50                	jl     0x40d465
40d415:	3b 8a 84 00 00 00    	cmp    0x84(%edx),%ecx
40d41b:	7f 48                	jg     0x40d465
40d41d:	8b 42 74             	mov    0x74(%edx),%eax
40d420:	8b 04 88             	mov    (%eax,%ecx,4),%eax
40d423:	8b 00                	mov    (%eax),%eax
40d425:	85 c0                	test   %eax,%eax
40d427:	74 3c                	je     0x40d465
40d429:	8b 75 10             	mov    0x10(%ebp),%esi
40d42c:	8b 40 04             	mov    0x4(%eax),%eax
40d42f:	89 0e                	mov    %ecx,(%esi)
40d431:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40d434:	89 01                	mov    %eax,(%ecx)
40d436:	8b c8                	mov    %eax,%ecx
40d438:	8b 42 60             	mov    0x60(%edx),%eax
40d43b:	8b 04 88             	mov    (%eax,%ecx,4),%eax
40d43e:	83 38 00             	cmpl   $0x0,(%eax)
40d441:	74 22                	je     0x40d465
40d443:	8b 0e                	mov    (%esi),%ecx
40d445:	83 f9 03             	cmp    $0x3,%ecx
40d448:	7c 1b                	jl     0x40d465
40d44a:	3b 8a 84 00 00 00    	cmp    0x84(%edx),%ecx
40d450:	7f 13                	jg     0x40d465
40d452:	8b 42 74             	mov    0x74(%edx),%eax
40d455:	8b 04 88             	mov    (%eax,%ecx,4),%eax
40d458:	83 38 00             	cmpl   $0x0,(%eax)
40d45b:	74 08                	je     0x40d465
40d45d:	b0 01                	mov    $0x1,%al
40d45f:	5f                   	pop    %edi
40d460:	5e                   	pop    %esi
40d461:	5d                   	pop    %ebp
40d462:	c2 0c 00             	ret    $0xc
40d465:	32 c0                	xor    %al,%al
40d467:	eb f6                	jmp    0x40d45f
40d469:	56                   	push   %esi
40d46a:	8b f1                	mov    %ecx,%esi
40d46c:	e8 1d 00 00 00       	call   0x40d48e
40d471:	84 c0                	test   %al,%al
40d473:	74 02                	je     0x40d477
40d475:	5e                   	pop    %esi
40d476:	c3                   	ret
40d477:	8b ce                	mov    %esi,%ecx
40d479:	e8 a6 f2 00 00       	call   0x41c724
40d47e:	8b ce                	mov    %esi,%ecx
40d480:	5e                   	pop    %esi
40d481:	84 c0                	test   %al,%al
40d483:	0f 85 a9 fe 00 00    	jne    0x41d332
40d489:	e9 91 fa ff ff       	jmp    0x40cf1f
40d48e:	56                   	push   %esi
40d48f:	8b f1                	mov    %ecx,%esi
40d491:	e8 1a 00 00 00       	call   0x40d4b0
40d496:	84 c0                	test   %al,%al
40d498:	74 05                	je     0x40d49f
40d49a:	33 c0                	xor    %eax,%eax
40d49c:	40                   	inc    %eax
40d49d:	5e                   	pop    %esi
40d49e:	c3                   	ret
40d49f:	6a 03                	push   $0x3
40d4a1:	8b ce                	mov    %esi,%ecx
40d4a3:	e8 3c 01 00 00       	call   0x40d5e4
40d4a8:	84 c0                	test   %al,%al
40d4aa:	75 ee                	jne    0x40d49a
40d4ac:	33 c0                	xor    %eax,%eax
40d4ae:	5e                   	pop    %esi
40d4af:	c3                   	ret
40d4b0:	53                   	push   %ebx
40d4b1:	56                   	push   %esi
40d4b2:	33 db                	xor    %ebx,%ebx
40d4b4:	43                   	inc    %ebx
40d4b5:	53                   	push   %ebx
40d4b6:	8b f1                	mov    %ecx,%esi
40d4b8:	e8 27 01 00 00       	call   0x40d5e4
40d4bd:	84 c0                	test   %al,%al
40d4bf:	74 05                	je     0x40d4c6
40d4c1:	5e                   	pop    %esi
40d4c2:	8a c3                	mov    %bl,%al
40d4c4:	5b                   	pop    %ebx
40d4c5:	c3                   	ret
40d4c6:	6a 02                	push   $0x2
40d4c8:	8b ce                	mov    %esi,%ecx
40d4ca:	e8 15 01 00 00       	call   0x40d5e4
40d4cf:	84 c0                	test   %al,%al
40d4d1:	75 ee                	jne    0x40d4c1
40d4d3:	33 db                	xor    %ebx,%ebx
40d4d5:	eb ea                	jmp    0x40d4c1
40d4d7:	55                   	push   %ebp
40d4d8:	8b ec                	mov    %esp,%ebp
40d4da:	83 ec 68             	sub    $0x68,%esp
40d4dd:	53                   	push   %ebx
40d4de:	56                   	push   %esi
40d4df:	8b 75 08             	mov    0x8(%ebp),%esi
40d4e2:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40d4e5:	8b 5e 04             	mov    0x4(%esi),%ebx
40d4e8:	6a 0b                	push   $0xb
40d4ea:	8b 0b                	mov    (%ebx),%ecx
40d4ec:	e8 f3 00 00 00       	call   0x40d5e4
40d4f1:	84 c0                	test   %al,%al
40d4f3:	0f 85 44 8e 06 00    	jne    0x47633d
40d4f9:	57                   	push   %edi
40d4fa:	6a 08                	push   $0x8
40d4fc:	33 db                	xor    %ebx,%ebx
40d4fe:	83 7e 08 01          	cmpl   $0x1,0x8(%esi)
40d502:	5f                   	pop    %edi
40d503:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
40d507:	76 28                	jbe    0x40d531
40d509:	8b 46 04             	mov    0x4(%esi),%eax
40d50c:	8b 40 04             	mov    0x4(%eax),%eax
40d50f:	89 45 f8             	mov    %eax,-0x8(%ebp)
40d512:	83 78 0c 0a          	cmpl   $0xa,0xc(%eax)
40d516:	0f 84 64 8e 06 00    	je     0x476380
40d51c:	8b c8                	mov    %eax,%ecx
40d51e:	88 5d ff             	mov    %bl,-0x1(%ebp)
40d521:	e8 60 fd ff ff       	call   0x40d286
40d526:	8b f8                	mov    %eax,%edi
40d528:	83 ff 10             	cmp    $0x10,%edi
40d52b:	0f 8f ab 00 00 00    	jg     0x40d5dc
40d531:	8b 46 04             	mov    0x4(%esi),%eax
40d534:	6a 07                	push   $0x7
40d536:	8b 08                	mov    (%eax),%ecx
40d538:	e8 a7 00 00 00       	call   0x40d5e4
40d53d:	84 c0                	test   %al,%al
40d53f:	0f 85 54 8e 06 00    	jne    0x476399
40d545:	33 c0                	xor    %eax,%eax
40d547:	40                   	inc    %eax
40d548:	39 46 08             	cmp    %eax,0x8(%esi)
40d54b:	76 18                	jbe    0x40d565
40d54d:	8b 76 04             	mov    0x4(%esi),%esi
40d550:	8b 76 04             	mov    0x4(%esi),%esi
40d553:	8b ce                	mov    %esi,%ecx
40d555:	e8 c6 56 00 00       	call   0x412c20
40d55a:	33 c0                	xor    %eax,%eax
40d55c:	40                   	inc    %eax
40d55d:	89 46 0c             	mov    %eax,0xc(%esi)
40d560:	89 1e                	mov    %ebx,(%esi)
40d562:	8b 75 08             	mov    0x8(%ebp),%esi
40d565:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40d568:	89 45 ec             	mov    %eax,-0x14(%ebp)
40d56b:	8d 45 e0             	lea    -0x20(%ebp),%eax
40d56e:	50                   	push   %eax
40d56f:	56                   	push   %esi
40d570:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40d573:	89 5d e8             	mov    %ebx,-0x18(%ebp)
40d576:	e8 7b 00 00 00       	call   0x40d5f6
40d57b:	6a 03                	push   $0x3
40d57d:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40d580:	e8 5f 00 00 00       	call   0x40d5e4
40d585:	84 c0                	test   %al,%al
40d587:	0f 85 26 8e 06 00    	jne    0x4763b3
40d58d:	8b 46 04             	mov    0x4(%esi),%eax
40d590:	8b 08                	mov    (%eax),%ecx
40d592:	e8 fc f9 ff ff       	call   0x40cf93
40d597:	89 45 f8             	mov    %eax,-0x8(%ebp)
40d59a:	8b f2                	mov    %edx,%esi
40d59c:	38 5d ff             	cmp    %bl,-0x1(%ebp)
40d59f:	0f 85 2c 8e 06 00    	jne    0x4763d1
40d5a5:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40d5a8:	e8 73 56 00 00       	call   0x412c20
40d5ad:	8b 45 f8             	mov    -0x8(%ebp),%eax
40d5b0:	38 5d ff             	cmp    %bl,-0x1(%ebp)
40d5b3:	0f 85 35 8e 06 00    	jne    0x4763ee
40d5b9:	56                   	push   %esi
40d5ba:	50                   	push   %eax
40d5bb:	8b d7                	mov    %edi,%edx
40d5bd:	8d 4d 98             	lea    -0x68(%ebp),%ecx
40d5c0:	e8 c2 f8 ff ff       	call   0x40ce87
40d5c5:	59                   	pop    %ecx
40d5c6:	59                   	pop    %ecx
40d5c7:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40d5ca:	8d 45 98             	lea    -0x68(%ebp),%eax
40d5cd:	50                   	push   %eax
40d5ce:	e8 e6 f7 ff ff       	call   0x40cdb9
40d5d3:	5f                   	pop    %edi
40d5d4:	5e                   	pop    %esi
40d5d5:	33 c0                	xor    %eax,%eax
40d5d7:	5b                   	pop    %ebx
40d5d8:	c9                   	leave
40d5d9:	c2 08 00             	ret    $0x8
40d5dc:	6a 10                	push   $0x10
40d5de:	5f                   	pop    %edi
40d5df:	e9 4d ff ff ff       	jmp    0x40d531
40d5e4:	55                   	push   %ebp
40d5e5:	8b ec                	mov    %esp,%ebp
40d5e7:	8b 49 0c             	mov    0xc(%ecx),%ecx
40d5ea:	33 c0                	xor    %eax,%eax
40d5ec:	3b 4d 08             	cmp    0x8(%ebp),%ecx
40d5ef:	0f 94 c0             	sete   %al
40d5f2:	5d                   	pop    %ebp
40d5f3:	c2 04 00             	ret    $0x4
40d5f6:	55                   	push   %ebp
40d5f7:	8b ec                	mov    %esp,%ebp
40d5f9:	51                   	push   %ecx
40d5fa:	51                   	push   %ecx
40d5fb:	56                   	push   %esi
40d5fc:	8b 75 08             	mov    0x8(%ebp),%esi
40d5ff:	57                   	push   %edi
40d600:	83 7e 08 01          	cmpl   $0x1,0x8(%esi)
40d604:	8b f9                	mov    %ecx,%edi
40d606:	76 20                	jbe    0x40d628
40d608:	8b 46 04             	mov    0x4(%esi),%eax
40d60b:	8b 48 04             	mov    0x4(%eax),%ecx
40d60e:	e8 73 fc ff ff       	call   0x40d286
40d613:	48                   	dec    %eax
40d614:	0f 84 8a 8e 06 00    	je     0x4764a4
40d61a:	48                   	dec    %eax
40d61b:	0f 84 83 8e 06 00    	je     0x4764a4
40d621:	48                   	dec    %eax
40d622:	0f 84 54 8e 06 00    	je     0x47647c
40d628:	8b 46 04             	mov    0x4(%esi),%eax
40d62b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40d62e:	ff 30                	push   (%eax)
40d630:	e8 79 06 00 00       	call   0x40dcae
40d635:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40d638:	e8 2c fe ff ff       	call   0x40d469
40d63d:	5f                   	pop    %edi
40d63e:	33 c0                	xor    %eax,%eax
40d640:	5e                   	pop    %esi
40d641:	c9                   	leave
40d642:	c2 08 00             	ret    $0x8
40d645:	55                   	push   %ebp
40d646:	8b ec                	mov    %esp,%ebp
40d648:	56                   	push   %esi
40d649:	33 f6                	xor    %esi,%esi
40d64b:	80 3d fc 20 4c 00 00 	cmpb   $0x0,0x4c20fc
40d652:	75 46                	jne    0x40d69a
40d654:	8b 45 14             	mov    0x14(%ebp),%eax
40d657:	2b c6                	sub    %esi,%eax
40d659:	74 67                	je     0x40d6c2
40d65b:	48                   	dec    %eax
40d65c:	75 4d                	jne    0x40d6ab
40d65e:	39 35 f0 20 4c 00    	cmp    %esi,0x4c20f0
40d664:	74 48                	je     0x40d6ae
40d666:	57                   	push   %edi
40d667:	38 05 f9 20 4c 00    	cmp    %al,0x4c20f9
40d66d:	75 6c                	jne    0x40d6db
40d66f:	8b 3d f4 20 4c 00    	mov    0x4c20f4,%edi
40d675:	57                   	push   %edi
40d676:	ff 75 08             	push   0x8(%ebp)
40d679:	e8 22 03 00 00       	call   0x40d9a0
40d67e:	84 c0                	test   %al,%al
40d680:	74 63                	je     0x40d6e5
40d682:	8b 17                	mov    (%edi),%edx
40d684:	5f                   	pop    %edi
40d685:	85 d2                	test   %edx,%edx
40d687:	74 11                	je     0x40d69a
40d689:	8b 4a 10             	mov    0x10(%edx),%ecx
40d68c:	8b 45 10             	mov    0x10(%ebp),%eax
40d68f:	8b 72 14             	mov    0x14(%edx),%esi
40d692:	81 e1 00 ff 00 00    	and    $0xff00,%ecx
40d698:	89 08                	mov    %ecx,(%eax)
40d69a:	8b 45 0c             	mov    0xc(%ebp),%eax
40d69d:	89 30                	mov    %esi,(%eax)
40d69f:	33 c0                	xor    %eax,%eax
40d6a1:	85 f6                	test   %esi,%esi
40d6a3:	0f 95 c0             	setne  %al
40d6a6:	5e                   	pop    %esi
40d6a7:	5d                   	pop    %ebp
40d6a8:	c2 10 00             	ret    $0x10
40d6ab:	48                   	dec    %eax
40d6ac:	75 21                	jne    0x40d6cf