40b3af:	e8 f3 d0 ff ff       	call   0x4084a7
40b3b4:	59                   	pop    %ecx
40b3b5:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40b3b9:	8b 75 08             	mov    0x8(%ebp),%esi
40b3bc:	8b 46 04             	mov    0x4(%esi),%eax
40b3bf:	85 c0                	test   %eax,%eax
40b3c1:	74 30                	je     0x40b3f3
40b3c3:	8b 0d 48 27 42 00    	mov    0x422748,%ecx
40b3c9:	ba 44 27 42 00       	mov    $0x422744,%edx
40b3ce:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40b3d1:	85 c9                	test   %ecx,%ecx
40b3d3:	74 11                	je     0x40b3e6
40b3d5:	39 01                	cmp    %eax,(%ecx)
40b3d7:	75 2c                	jne    0x40b405
40b3d9:	8b 41 04             	mov    0x4(%ecx),%eax
40b3dc:	89 42 04             	mov    %eax,0x4(%edx)
40b3df:	51                   	push   %ecx
40b3e0:	e8 33 9d ff ff       	call   0x405118
40b3e5:	59                   	pop    %ecx
40b3e6:	ff 76 04             	push   0x4(%esi)
40b3e9:	e8 2a 9d ff ff       	call   0x405118
40b3ee:	59                   	pop    %ecx
40b3ef:	83 66 04 00          	andl   $0x0,0x4(%esi)
40b3f3:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40b3fa:	e8 0a 00 00 00       	call   0x40b409
40b3ff:	e8 f1 f9 ff ff       	call   0x40adf5
40b404:	c3                   	ret
40b405:	8b d1                	mov    %ecx,%edx
40b407:	eb c5                	jmp    0x40b3ce
40b409:	6a 0e                	push   $0xe
40b40b:	e8 fb d1 ff ff       	call   0x40860b
40b410:	59                   	pop    %ecx
40b411:	c3                   	ret
40b412:	55                   	push   %ebp
40b413:	8b ec                	mov    %esp,%ebp
40b415:	ff 35 4c 27 42 00    	push   0x42274c
40b41b:	ff 15 5c 90 41 00    	call   *0x41905c
40b421:	85 c0                	test   %eax,%eax
40b423:	74 0f                	je     0x40b434
40b425:	ff 75 08             	push   0x8(%ebp)
40b428:	ff d0                	call   *%eax
40b42a:	59                   	pop    %ecx
40b42b:	85 c0                	test   %eax,%eax
40b42d:	74 05                	je     0x40b434
40b42f:	33 c0                	xor    %eax,%eax
40b431:	40                   	inc    %eax
40b432:	5d                   	pop    %ebp
40b433:	c3                   	ret
40b434:	33 c0                	xor    %eax,%eax
40b436:	5d                   	pop    %ebp
40b437:	c3                   	ret
40b438:	55                   	push   %ebp
40b439:	8b ec                	mov    %esp,%ebp
40b43b:	8b 45 08             	mov    0x8(%ebp),%eax
40b43e:	a3 4c 27 42 00       	mov    %eax,0x42274c
40b443:	5d                   	pop    %ebp
40b444:	c3                   	ret
40b445:	55                   	push   %ebp
40b446:	8b ec                	mov    %esp,%ebp
40b448:	56                   	push   %esi
40b449:	8b 75 08             	mov    0x8(%ebp),%esi
40b44c:	85 f6                	test   %esi,%esi
40b44e:	74 10                	je     0x40b460
40b450:	8b 55 0c             	mov    0xc(%ebp),%edx
40b453:	85 d2                	test   %edx,%edx
40b455:	74 09                	je     0x40b460
40b457:	8b 4d 10             	mov    0x10(%ebp),%ecx
40b45a:	85 c9                	test   %ecx,%ecx
40b45c:	75 16                	jne    0x40b474
40b45e:	88 0e                	mov    %cl,(%esi)
40b460:	e8 18 cd ff ff       	call   0x40817d
40b465:	6a 16                	push   $0x16
40b467:	5e                   	pop    %esi
40b468:	89 30                	mov    %esi,(%eax)
40b46a:	e8 86 01 00 00       	call   0x40b5f5
40b46f:	8b c6                	mov    %esi,%eax
40b471:	5e                   	pop    %esi
40b472:	5d                   	pop    %ebp
40b473:	c3                   	ret
40b474:	57                   	push   %edi
40b475:	8b fe                	mov    %esi,%edi
40b477:	2b f9                	sub    %ecx,%edi
40b479:	8a 01                	mov    (%ecx),%al
40b47b:	88 04 0f             	mov    %al,(%edi,%ecx,1)
40b47e:	41                   	inc    %ecx
40b47f:	84 c0                	test   %al,%al
40b481:	74 03                	je     0x40b486
40b483:	4a                   	dec    %edx
40b484:	75 f3                	jne    0x40b479
40b486:	5f                   	pop    %edi
40b487:	85 d2                	test   %edx,%edx
40b489:	75 0b                	jne    0x40b496
40b48b:	88 16                	mov    %dl,(%esi)
40b48d:	e8 eb cc ff ff       	call   0x40817d
40b492:	6a 22                	push   $0x22
40b494:	eb d1                	jmp    0x40b467
40b496:	33 c0                	xor    %eax,%eax
40b498:	eb d7                	jmp    0x40b471
40b49a:	55                   	push   %ebp
40b49b:	8b ec                	mov    %esp,%ebp
40b49d:	81 ec 28 03 00 00    	sub    $0x328,%esp
40b4a3:	a1 90 08 42 00       	mov    0x420890,%eax
40b4a8:	33 c5                	xor    %ebp,%eax
40b4aa:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b4ad:	83 7d 08 ff          	cmpl   $0xffffffff,0x8(%ebp)
40b4b1:	57                   	push   %edi
40b4b2:	74 09                	je     0x40b4bd
40b4b4:	ff 75 08             	push   0x8(%ebp)
40b4b7:	e8 e0 61 00 00       	call   0x41169c
40b4bc:	59                   	pop    %ecx
40b4bd:	83 a5 e0 fc ff ff 00 	andl   $0x0,-0x320(%ebp)
40b4c4:	6a 4c                	push   $0x4c
40b4c6:	8d 85 e4 fc ff ff    	lea    -0x31c(%ebp),%eax
40b4cc:	6a 00                	push   $0x0
40b4ce:	50                   	push   %eax
40b4cf:	e8 6c ba ff ff       	call   0x406f40
40b4d4:	8d 85 e0 fc ff ff    	lea    -0x320(%ebp),%eax
40b4da:	89 85 d8 fc ff ff    	mov    %eax,-0x328(%ebp)
40b4e0:	8d 85 30 fd ff ff    	lea    -0x2d0(%ebp),%eax
40b4e6:	83 c4 0c             	add    $0xc,%esp
40b4e9:	89 85 dc fc ff ff    	mov    %eax,-0x324(%ebp)
40b4ef:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
40b4f5:	89 8d dc fd ff ff    	mov    %ecx,-0x224(%ebp)
40b4fb:	89 95 d8 fd ff ff    	mov    %edx,-0x228(%ebp)
40b501:	89 9d d4 fd ff ff    	mov    %ebx,-0x22c(%ebp)
40b507:	89 b5 d0 fd ff ff    	mov    %esi,-0x230(%ebp)
40b50d:	89 bd cc fd ff ff    	mov    %edi,-0x234(%ebp)
40b513:	66 8c 95 f8 fd ff ff 	data16 mov %ss,-0x208(%ebp)
40b51a:	66 8c 8d ec fd ff ff 	data16 mov %cs,-0x214(%ebp)
40b521:	66 8c 9d c8 fd ff ff 	data16 mov %ds,-0x238(%ebp)
40b528:	66 8c 85 c4 fd ff ff 	data16 mov %es,-0x23c(%ebp)
40b52f:	66 8c a5 c0 fd ff ff 	data16 mov %fs,-0x240(%ebp)
40b536:	66 8c ad bc fd ff ff 	data16 mov %gs,-0x244(%ebp)
40b53d:	9c                   	pushf
40b53e:	8f 85 f0 fd ff ff    	pop    -0x210(%ebp)
40b544:	8b 45 04             	mov    0x4(%ebp),%eax
40b547:	89 85 e8 fd ff ff    	mov    %eax,-0x218(%ebp)
40b54d:	8d 45 04             	lea    0x4(%ebp),%eax
40b550:	89 85 f4 fd ff ff    	mov    %eax,-0x20c(%ebp)
40b556:	c7 85 30 fd ff ff 01 	movl   $0x10001,-0x2d0(%ebp)
40b55d:	00 01 00
40b560:	8b 40 fc             	mov    -0x4(%eax),%eax
40b563:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
40b569:	8b 45 0c             	mov    0xc(%ebp),%eax
40b56c:	89 85 e0 fc ff ff    	mov    %eax,-0x320(%ebp)
40b572:	8b 45 10             	mov    0x10(%ebp),%eax
40b575:	89 85 e4 fc ff ff    	mov    %eax,-0x31c(%ebp)
40b57b:	8b 45 04             	mov    0x4(%ebp),%eax
40b57e:	89 85 ec fc ff ff    	mov    %eax,-0x314(%ebp)
40b584:	ff 15 9c 90 41 00    	call   *0x41909c
40b58a:	8b f8                	mov    %eax,%edi
40b58c:	8d 85 d8 fc ff ff    	lea    -0x328(%ebp),%eax
40b592:	50                   	push   %eax
40b593:	e8 ec 44 00 00       	call   0x40fa84
40b598:	59                   	pop    %ecx
40b599:	85 c0                	test   %eax,%eax
40b59b:	75 13                	jne    0x40b5b0
40b59d:	85 ff                	test   %edi,%edi
40b59f:	75 0f                	jne    0x40b5b0
40b5a1:	83 7d 08 ff          	cmpl   $0xffffffff,0x8(%ebp)
40b5a5:	74 09                	je     0x40b5b0
40b5a7:	ff 75 08             	push   0x8(%ebp)
40b5aa:	e8 ed 60 00 00       	call   0x41169c
40b5af:	59                   	pop    %ecx
40b5b0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40b5b3:	33 cd                	xor    %ebp,%ecx
40b5b5:	5f                   	pop    %edi
40b5b6:	e8 7e 91 ff ff       	call   0x404739
40b5bb:	c9                   	leave
40b5bc:	c3                   	ret
40b5bd:	55                   	push   %ebp
40b5be:	8b ec                	mov    %esp,%ebp
40b5c0:	8b 45 08             	mov    0x8(%ebp),%eax
40b5c3:	a3 50 27 42 00       	mov    %eax,0x422750
40b5c8:	5d                   	pop    %ebp
40b5c9:	c3                   	ret
40b5ca:	55                   	push   %ebp
40b5cb:	8b ec                	mov    %esp,%ebp
40b5cd:	ff 35 50 27 42 00    	push   0x422750
40b5d3:	ff 15 5c 90 41 00    	call   *0x41905c
40b5d9:	85 c0                	test   %eax,%eax
40b5db:	74 03                	je     0x40b5e0
40b5dd:	5d                   	pop    %ebp
40b5de:	ff e0                	jmp    *%eax
40b5e0:	ff 75 18             	push   0x18(%ebp)
40b5e3:	ff 75 14             	push   0x14(%ebp)
40b5e6:	ff 75 10             	push   0x10(%ebp)
40b5e9:	ff 75 0c             	push   0xc(%ebp)
40b5ec:	ff 75 08             	push   0x8(%ebp)
40b5ef:	e8 11 00 00 00       	call   0x40b605
40b5f4:	cc                   	int3
40b5f5:	33 c0                	xor    %eax,%eax
40b5f7:	50                   	push   %eax
40b5f8:	50                   	push   %eax
40b5f9:	50                   	push   %eax
40b5fa:	50                   	push   %eax
40b5fb:	50                   	push   %eax
40b5fc:	e8 c9 ff ff ff       	call   0x40b5ca
40b601:	83 c4 14             	add    $0x14,%esp
40b604:	c3                   	ret
40b605:	6a 17                	push   $0x17
40b607:	e8 6c c4 00 00       	call   0x417a78
40b60c:	85 c0                	test   %eax,%eax
40b60e:	74 05                	je     0x40b615
40b610:	6a 05                	push   $0x5
40b612:	59                   	pop    %ecx
40b613:	cd 29                	int    $0x29
40b615:	56                   	push   %esi
40b616:	6a 01                	push   $0x1
40b618:	be 17 04 00 c0       	mov    $0xc0000417,%esi
40b61d:	56                   	push   %esi
40b61e:	6a 02                	push   $0x2
40b620:	e8 75 fe ff ff       	call   0x40b49a
40b625:	56                   	push   %esi
40b626:	e8 44 44 00 00       	call   0x40fa6f
40b62b:	83 c4 10             	add    $0x10,%esp
40b62e:	5e                   	pop    %esi
40b62f:	c3                   	ret
40b630:	55                   	push   %ebp
40b631:	8b ec                	mov    %esp,%ebp
40b633:	51                   	push   %ecx
40b634:	e8 b9 1f 00 00       	call   0x40d5f2
40b639:	85 c0                	test   %eax,%eax
40b63b:	79 05                	jns    0x40b642
40b63d:	83 c8 ff             	or     $0xffffffff,%eax
40b640:	c9                   	leave
40b641:	c3                   	ret
40b642:	56                   	push   %esi
40b643:	8b 75 0c             	mov    0xc(%ebp),%esi
40b646:	57                   	push   %edi
40b647:	56                   	push   %esi
40b648:	e8 ec 28 00 00       	call   0x40df39
40b64d:	59                   	pop    %ecx
40b64e:	8b 4e 0c             	mov    0xc(%esi),%ecx
40b651:	8b f8                	mov    %eax,%edi
40b653:	f6 c1 82             	test   $0x82,%cl
40b656:	75 0d                	jne    0x40b665
40b658:	e8 20 cb ff ff       	call   0x40817d
40b65d:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40b663:	eb 10                	jmp    0x40b675
40b665:	f6 c1 40             	test   $0x40,%cl
40b668:	74 17                	je     0x40b681
40b66a:	e8 0e cb ff ff       	call   0x40817d
40b66f:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
40b675:	83 4e 0c 20          	orl    $0x20,0xc(%esi)
40b679:	83 c8 ff             	or     $0xffffffff,%eax
40b67c:	e9 07 01 00 00       	jmp    0x40b788
40b681:	53                   	push   %ebx
40b682:	33 db                	xor    %ebx,%ebx
40b684:	f6 c1 01             	test   $0x1,%cl
40b687:	74 13                	je     0x40b69c
40b689:	89 5e 04             	mov    %ebx,0x4(%esi)
40b68c:	f6 c1 10             	test   $0x10,%cl
40b68f:	74 7d                	je     0x40b70e
40b691:	8b 46 08             	mov    0x8(%esi),%eax
40b694:	83 e1 fe             	and    $0xfffffffe,%ecx
40b697:	89 06                	mov    %eax,(%esi)
40b699:	89 4e 0c             	mov    %ecx,0xc(%esi)
40b69c:	8b 46 0c             	mov    0xc(%esi),%eax
40b69f:	83 e0 ef             	and    $0xffffffef,%eax
40b6a2:	83 c8 02             	or     $0x2,%eax
40b6a5:	89 46 0c             	mov    %eax,0xc(%esi)
40b6a8:	89 5e 04             	mov    %ebx,0x4(%esi)
40b6ab:	a9 0c 01 00 00       	test   $0x10c,%eax
40b6b0:	75 2a                	jne    0x40b6dc
40b6b2:	e8 5e ac ff ff       	call   0x406315
40b6b7:	83 c0 20             	add    $0x20,%eax
40b6ba:	3b f0                	cmp    %eax,%esi
40b6bc:	74 0c                	je     0x40b6ca
40b6be:	e8 52 ac ff ff       	call   0x406315
40b6c3:	83 c0 40             	add    $0x40,%eax
40b6c6:	3b f0                	cmp    %eax,%esi
40b6c8:	75 0b                	jne    0x40b6d5
40b6ca:	57                   	push   %edi
40b6cb:	e8 e5 67 00 00       	call   0x411eb5
40b6d0:	59                   	pop    %ecx
40b6d1:	85 c0                	test   %eax,%eax
40b6d3:	75 07                	jne    0x40b6dc
40b6d5:	56                   	push   %esi
40b6d6:	e8 31 3b 00 00       	call   0x40f20c
40b6db:	59                   	pop    %ecx
40b6dc:	f7 46 0c 08 01 00 00 	testl  $0x108,0xc(%esi)
40b6e3:	74 7a                	je     0x40b75f
40b6e5:	8b 56 08             	mov    0x8(%esi),%edx
40b6e8:	8b 0e                	mov    (%esi),%ecx
40b6ea:	8d 42 01             	lea    0x1(%edx),%eax
40b6ed:	89 06                	mov    %eax,(%esi)
40b6ef:	8b 46 18             	mov    0x18(%esi),%eax
40b6f2:	2b ca                	sub    %edx,%ecx
40b6f4:	48                   	dec    %eax
40b6f5:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40b6f8:	89 46 04             	mov    %eax,0x4(%esi)
40b6fb:	85 c9                	test   %ecx,%ecx
40b6fd:	7e 17                	jle    0x40b716
40b6ff:	51                   	push   %ecx
40b700:	52                   	push   %edx
40b701:	57                   	push   %edi
40b702:	e8 fc 2a 00 00       	call   0x40e203
40b707:	83 c4 0c             	add    $0xc,%esp
40b70a:	8b d8                	mov    %eax,%ebx
40b70c:	eb 47                	jmp    0x40b755
40b70e:	83 c9 20             	or     $0x20,%ecx
40b711:	89 4e 0c             	mov    %ecx,0xc(%esi)
40b714:	eb 68                	jmp    0x40b77e
40b716:	83 ff ff             	cmp    $0xffffffff,%edi
40b719:	74 1b                	je     0x40b736
40b71b:	83 ff fe             	cmp    $0xfffffffe,%edi
40b71e:	74 16                	je     0x40b736
40b720:	8b cf                	mov    %edi,%ecx
40b722:	8b c7                	mov    %edi,%eax
40b724:	83 e1 1f             	and    $0x1f,%ecx
40b727:	c1 f8 05             	sar    $0x5,%eax
40b72a:	c1 e1 06             	shl    $0x6,%ecx
40b72d:	03 0c 85 20 2a 42 00 	add    0x422a20(,%eax,4),%ecx
40b734:	eb 05                	jmp    0x40b73b
40b736:	b9 18 10 42 00       	mov    $0x421018,%ecx
40b73b:	f6 41 04 20          	testb  $0x20,0x4(%ecx)
40b73f:	74 14                	je     0x40b755
40b741:	6a 02                	push   $0x2
40b743:	53                   	push   %ebx
40b744:	53                   	push   %ebx
40b745:	57                   	push   %edi
40b746:	e8 47 39 00 00       	call   0x40f092
40b74b:	23 c2                	and    %edx,%eax
40b74d:	83 c4 10             	add    $0x10,%esp
40b750:	83 f8 ff             	cmp    $0xffffffff,%eax
40b753:	74 25                	je     0x40b77a
40b755:	8b 4e 08             	mov    0x8(%esi),%ecx
40b758:	8a 45 08             	mov    0x8(%ebp),%al
40b75b:	88 01                	mov    %al,(%ecx)
40b75d:	eb 16                	jmp    0x40b775
40b75f:	33 c0                	xor    %eax,%eax
40b761:	40                   	inc    %eax
40b762:	50                   	push   %eax
40b763:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b766:	8d 45 08             	lea    0x8(%ebp),%eax
40b769:	50                   	push   %eax
40b76a:	57                   	push   %edi
40b76b:	e8 93 2a 00 00       	call   0x40e203
40b770:	83 c4 0c             	add    $0xc,%esp
40b773:	8b d8                	mov    %eax,%ebx
40b775:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
40b778:	74 09                	je     0x40b783
40b77a:	83 4e 0c 20          	orl    $0x20,0xc(%esi)
40b77e:	83 c8 ff             	or     $0xffffffff,%eax
40b781:	eb 04                	jmp    0x40b787
40b783:	0f b6 45 08          	movzbl 0x8(%ebp),%eax
40b787:	5b                   	pop    %ebx
40b788:	5f                   	pop    %edi
40b789:	5e                   	pop    %esi