40c4e7:	8b f8                	mov    %eax,%edi
40c4e9:	8b 47 04             	mov    0x4(%edi),%eax
40c4ec:	85 c0                	test   %eax,%eax
40c4ee:	0f 84 63 ff ff ff    	je     0x40c457
40c4f4:	eb f1                	jmp    0x40c4e7
40c4f6:	85 c0                	test   %eax,%eax
40c4f8:	74 03                	je     0x40c4fd
40c4fa:	89 78 0c             	mov    %edi,0xc(%eax)
40c4fd:	8b 46 08             	mov    0x8(%esi),%eax
40c500:	85 c0                	test   %eax,%eax
40c502:	74 03                	je     0x40c507
40c504:	89 78 0c             	mov    %edi,0xc(%eax)
40c507:	8b 4f 0c             	mov    0xc(%edi),%ecx
40c50a:	8b 47 08             	mov    0x8(%edi),%eax
40c50d:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40c510:	89 41 04             	mov    %eax,0x4(%ecx)
40c513:	8b 57 04             	mov    0x4(%edi),%edx
40c516:	85 d2                	test   %edx,%edx
40c518:	0f 85 26 80 01 00    	jne    0x424544
40c51e:	8b 57 08             	mov    0x8(%edi),%edx
40c521:	85 d2                	test   %edx,%edx
40c523:	0f 85 26 80 01 00    	jne    0x42454f
40c529:	8b 46 04             	mov    0x4(%esi),%eax
40c52c:	89 47 04             	mov    %eax,0x4(%edi)
40c52f:	8b 46 08             	mov    0x8(%esi),%eax
40c532:	89 47 08             	mov    %eax,0x8(%edi)
40c535:	8b 46 0c             	mov    0xc(%esi),%eax
40c538:	89 47 0c             	mov    %eax,0xc(%edi)
40c53b:	eb 03                	jmp    0x40c540
40c53d:	8d 49 00             	lea    0x0(%ecx),%ecx
40c540:	ff 75 0c             	push   0xc(%ebp)
40c543:	8d 45 fc             	lea    -0x4(%ebp),%eax
40c546:	ff 71 08             	push   0x8(%ecx)
40c549:	8b cb                	mov    %ebx,%ecx
40c54b:	50                   	push   %eax
40c54c:	e8 ef 9c 00 00       	call   0x416240
40c551:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40c554:	8b 49 0c             	mov    0xc(%ecx),%ecx
40c557:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40c55a:	85 c0                	test   %eax,%eax
40c55c:	0f 85 a7 fe ff ff    	jne    0x40c409
40c562:	3b cf                	cmp    %edi,%ecx
40c564:	75 da                	jne    0x40c540
40c566:	ff 75 0c             	push   0xc(%ebp)
40c569:	8d 45 fc             	lea    -0x4(%ebp),%eax
40c56c:	ff 71 04             	push   0x4(%ecx)
40c56f:	8b cb                	mov    %ebx,%ecx
40c571:	50                   	push   %eax
40c572:	e8 79 10 01 00       	call   0x41d5f0
40c577:	e9 8d fe ff ff       	jmp    0x40c409
40c57c:	89 79 04             	mov    %edi,0x4(%ecx)
40c57f:	e9 e2 fe ff ff       	jmp    0x40c466
40c584:	8b c2                	mov    %edx,%eax
40c586:	e9 6c fe ff ff       	jmp    0x40c3f7
40c58b:	8b c2                	mov    %edx,%eax
40c58d:	89 41 04             	mov    %eax,0x4(%ecx)
40c590:	e9 64 fe ff ff       	jmp    0x40c3f9
40c595:	8b c2                	mov    %edx,%eax
40c597:	89 41 08             	mov    %eax,0x8(%ecx)
40c59a:	e9 5a fe ff ff       	jmp    0x40c3f9
40c59f:	8b 46 0c             	mov    0xc(%esi),%eax
40c5a2:	89 47 0c             	mov    %eax,0xc(%edi)
40c5a5:	8b 46 10             	mov    0x10(%esi),%eax
40c5a8:	89 47 10             	mov    %eax,0x10(%edi)
40c5ab:	8d 45 f8             	lea    -0x8(%ebp),%eax
40c5ae:	e9 df fe ff ff       	jmp    0x40c492
40c5b3:	cc                   	int3
40c5b4:	cc                   	int3
40c5b5:	cc                   	int3
40c5b6:	cc                   	int3
40c5b7:	cc                   	int3
40c5b8:	cc                   	int3
40c5b9:	cc                   	int3
40c5ba:	cc                   	int3
40c5bb:	cc                   	int3
40c5bc:	cc                   	int3
40c5bd:	cc                   	int3
40c5be:	cc                   	int3
40c5bf:	cc                   	int3
40c5c0:	8b ff                	mov    %edi,%edi
40c5c2:	55                   	push   %ebp
40c5c3:	8b ec                	mov    %esp,%ebp
40c5c5:	83 e4 f8             	and    $0xfffffff8,%esp
40c5c8:	81 ec 34 01 00 00    	sub    $0x134,%esp
40c5ce:	a1 54 02 45 00       	mov    0x450254,%eax
40c5d3:	33 c4                	xor    %esp,%eax
40c5d5:	89 84 24 30 01 00 00 	mov    %eax,0x130(%esp)
40c5dc:	53                   	push   %ebx
40c5dd:	8b d9                	mov    %ecx,%ebx
40c5df:	c7 44 24 0c 00 00 00 	movl   $0x0,0xc(%esp)
40c5e6:	00
40c5e7:	89 5c 24 08          	mov    %ebx,0x8(%esp)
40c5eb:	56                   	push   %esi
40c5ec:	57                   	push   %edi
40c5ed:	8b 43 40             	mov    0x40(%ebx),%eax
40c5f0:	33 ff                	xor    %edi,%edi
40c5f2:	89 44 24 38          	mov    %eax,0x38(%esp)
40c5f6:	33 f6                	xor    %esi,%esi
40c5f8:	8b 43 3c             	mov    0x3c(%ebx),%eax
40c5fb:	83 c3 18             	add    $0x18,%ebx
40c5fe:	c7 44 24 18 00 00 00 	movl   $0x0,0x18(%esp)
40c605:	00
40c606:	89 44 24 3c          	mov    %eax,0x3c(%esp)
40c60a:	80 7b 18 00          	cmpb   $0x0,0x18(%ebx)
40c60e:	74 0f                	je     0x40c61f
40c610:	8b cb                	mov    %ebx,%ecx
40c612:	e8 89 f5 ff ff       	call   0x40bba0
40c617:	84 c0                	test   %al,%al
40c619:	0f 84 65 86 01 00    	je     0x424c84
40c61f:	8b 44 24 10          	mov    0x10(%esp),%eax
40c623:	8b 40 7c             	mov    0x7c(%eax),%eax
40c626:	85 c0                	test   %eax,%eax
40c628:	74 0b                	je     0x40c635
40c62a:	8b 48 1c             	mov    0x1c(%eax),%ecx
40c62d:	85 c9                	test   %ecx,%ecx
40c62f:	0f 85 02 01 00 00    	jne    0x40c737
40c635:	8b d0                	mov    %eax,%edx
40c637:	83 ff 3d             	cmp    $0x3d,%edi
40c63a:	73 3f                	jae    0x40c67b
40c63c:	85 d2                	test   %edx,%edx
40c63e:	74 3b                	je     0x40c67b
40c640:	8b 08                	mov    (%eax),%ecx
40c642:	8b 49 14             	mov    0x14(%ecx),%ecx
40c645:	85 c9                	test   %ecx,%ecx
40c647:	0f 84 61 86 01 00    	je     0x424cae
40c64d:	89 4c bc 40          	mov    %ecx,0x40(%esp,%edi,4)
40c651:	8b 48 18             	mov    0x18(%eax),%ecx
40c654:	85 c9                	test   %ecx,%ecx
40c656:	0f 85 8a 00 00 00    	jne    0x40c6e6
40c65c:	8b 40 20             	mov    0x20(%eax),%eax
40c65f:	85 c0                	test   %eax,%eax
40c661:	74 11                	je     0x40c674
40c663:	8b 4a 20             	mov    0x20(%edx),%ecx
40c666:	39 51 18             	cmp    %edx,0x18(%ecx)
40c669:	75 09                	jne    0x40c674
40c66b:	8b d0                	mov    %eax,%edx
40c66d:	8b 40 20             	mov    0x20(%eax),%eax
40c670:	85 c0                	test   %eax,%eax
40c672:	75 ef                	jne    0x40c663
40c674:	47                   	inc    %edi
40c675:	8b d0                	mov    %eax,%edx
40c677:	85 f6                	test   %esi,%esi
40c679:	74 bc                	je     0x40c637
40c67b:	81 fe 02 00 00 80    	cmp    $0x80000002,%esi
40c681:	0f 84 3f 86 01 00    	je     0x424cc6
40c687:	80 7b 18 00          	cmpb   $0x0,0x18(%ebx)
40c68b:	74 07                	je     0x40c694
40c68d:	53                   	push   %ebx
40c68e:	ff 15 40 11 45 00    	call   *0x451140
40c694:	83 ff 3d             	cmp    $0x3d,%edi
40c697:	0f 83 30 86 01 00    	jae    0x424ccd
40c69d:	8d 49 00             	lea    0x0(%ecx),%ecx
40c6a0:	85 f6                	test   %esi,%esi
40c6a2:	75 2b                	jne    0x40c6cf
40c6a4:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40c6a8:	8d 47 02             	lea    0x2(%edi),%eax
40c6ab:	6a 02                	push   $0x2
40c6ad:	68 ff 1c 00 00       	push   $0x1cff
40c6b2:	ff 71 54             	push   0x54(%ecx)
40c6b5:	8d 4c 24 44          	lea    0x44(%esp),%ecx
40c6b9:	51                   	push   %ecx
40c6ba:	50                   	push   %eax
40c6bb:	ff 15 b4 30 45 00    	call   *0x4530b4
40c6c1:	8b d8                	mov    %eax,%ebx
40c6c3:	83 fb 01             	cmp    $0x1,%ebx
40c6c6:	75 2c                	jne    0x40c6f4
40c6c8:	be 0d 00 00 80       	mov    $0x8000000d,%esi
40c6cd:	eb d1                	jmp    0x40c6a0
40c6cf:	8b c6                	mov    %esi,%eax
40c6d1:	8b 8c 24 3c 01 00 00 	mov    0x13c(%esp),%ecx
40c6d8:	5f                   	pop    %edi
40c6d9:	5e                   	pop    %esi
40c6da:	5b                   	pop    %ebx
40c6db:	33 cc                	xor    %esp,%ecx
40c6dd:	e8 2e 2c 01 00       	call   0x41f310
40c6e2:	8b e5                	mov    %ebp,%esp
40c6e4:	5d                   	pop    %ebp
40c6e5:	c3                   	ret
40c6e6:	8b c1                	mov    %ecx,%eax
40c6e8:	8b 48 1c             	mov    0x1c(%eax),%ecx
40c6eb:	85 c9                	test   %ecx,%ecx
40c6ed:	74 85                	je     0x40c674
40c6ef:	e9 c4 85 01 00       	jmp    0x424cb8
40c6f4:	81 fb 02 01 00 00    	cmp    $0x102,%ebx
40c6fa:	74 4a                	je     0x40c746
40c6fc:	0f 87 d5 85 01 00    	ja     0x424cd7
40c702:	85 db                	test   %ebx,%ebx
40c704:	74 63                	je     0x40c769
40c706:	81 fb c0 00 00 00    	cmp    $0xc0,%ebx
40c70c:	74 65                	je     0x40c773
40c70e:	8d 47 02             	lea    0x2(%edi),%eax
40c711:	3b d8                	cmp    %eax,%ebx
40c713:	0f 84 10 86 01 00    	je     0x424d29
40c719:	0f 83 e3 86 01 00    	jae    0x424e02
40c71f:	8d 44 24 38          	lea    0x38(%esp),%eax
40c723:	8d 04 98             	lea    (%eax,%ebx,4),%eax
40c726:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40c72a:	50                   	push   %eax
40c72b:	e8 50 00 00 00       	call   0x40c780
40c730:	8b f0                	mov    %eax,%esi
40c732:	e9 69 ff ff ff       	jmp    0x40c6a0
40c737:	8b c1                	mov    %ecx,%eax
40c739:	8b 48 1c             	mov    0x1c(%eax),%ecx
40c73c:	85 c9                	test   %ecx,%ecx
40c73e:	0f 84 f1 fe ff ff    	je     0x40c635
40c744:	eb f1                	jmp    0x40c737
40c746:	8b 5c 24 10          	mov    0x10(%esp),%ebx
40c74a:	8b 03                	mov    (%ebx),%eax
40c74c:	8b 70 2c             	mov    0x2c(%eax),%esi
40c74f:	81 fe 20 6a 41 00    	cmp    $0x416a20,%esi
40c755:	0f 85 78 86 01 00    	jne    0x424dd3
40c75b:	8b cb                	mov    %ebx,%ecx
40c75d:	e8 be a2 00 00       	call   0x416a20
40c762:	8b f0                	mov    %eax,%esi
40c764:	e9 37 ff ff ff       	jmp    0x40c6a0
40c769:	be 0c 00 00 80       	mov    $0x8000000c,%esi
40c76e:	e9 2d ff ff ff       	jmp    0x40c6a0
40c773:	33 f6                	xor    %esi,%esi
40c775:	e9 26 ff ff ff       	jmp    0x40c6a0
40c77a:	cc                   	int3
40c77b:	cc                   	int3
40c77c:	cc                   	int3
40c77d:	cc                   	int3
40c77e:	cc                   	int3
40c77f:	cc                   	int3
40c780:	8b ff                	mov    %edi,%edi
40c782:	55                   	push   %ebp
40c783:	8b ec                	mov    %esp,%ebp
40c785:	83 ec 28             	sub    $0x28,%esp
40c788:	53                   	push   %ebx
40c789:	8b d9                	mov    %ecx,%ebx
40c78b:	56                   	push   %esi
40c78c:	57                   	push   %edi
40c78d:	33 ff                	xor    %edi,%edi
40c78f:	80 7b 30 00          	cmpb   $0x0,0x30(%ebx)
40c793:	74 10                	je     0x40c7a5
40c795:	8d 4b 18             	lea    0x18(%ebx),%ecx
40c798:	e8 03 f4 ff ff       	call   0x40bba0
40c79d:	84 c0                	test   %al,%al
40c79f:	0f 84 67 86 01 00    	je     0x424e0c
40c7a5:	8b 83 80 00 00 00    	mov    0x80(%ebx),%eax
40c7ab:	89 45 f4             	mov    %eax,-0xc(%ebp)
40c7ae:	8b ff                	mov    %edi,%edi
40c7b0:	85 c0                	test   %eax,%eax
40c7b2:	0f 84 c0 00 00 00    	je     0x40c878
40c7b8:	8d 45 f8             	lea    -0x8(%ebp),%eax
40c7bb:	50                   	push   %eax
40c7bc:	8d 45 dc             	lea    -0x24(%ebp),%eax
40c7bf:	50                   	push   %eax
40c7c0:	8d 4b 7c             	lea    0x7c(%ebx),%ecx
40c7c3:	e8 78 04 00 00       	call   0x40cc40
40c7c8:	8b f8                	mov    %eax,%edi
40c7ca:	85 ff                	test   %edi,%edi
40c7cc:	0f 85 3d 01 00 00    	jne    0x40c90f
40c7d2:	39 83 80 00 00 00    	cmp    %eax,0x80(%ebx)
40c7d8:	0f 84 6f 86 01 00    	je     0x424e4d
40c7de:	8b 43 7c             	mov    0x7c(%ebx),%eax
40c7e1:	8b d0                	mov    %eax,%edx
40c7e3:	85 d2                	test   %edx,%edx
40c7e5:	74 0b                	je     0x40c7f2
40c7e7:	8b 4a 18             	mov    0x18(%edx),%ecx
40c7ea:	85 c9                	test   %ecx,%ecx
40c7ec:	0f 85 a1 00 00 00    	jne    0x40c893
40c7f2:	85 c0                	test   %eax,%eax
40c7f4:	0f 84 49 86 01 00    	je     0x424e43
40c7fa:	8b 7a 08             	mov    0x8(%edx),%edi
40c7fd:	8d 49 00             	lea    0x0(%ecx),%ecx
40c800:	8b 70 08             	mov    0x8(%eax),%esi
40c803:	3b fe                	cmp    %esi,%edi
40c805:	0f 85 2d 86 01 00    	jne    0x424e38
40c80b:	8b 4a 10             	mov    0x10(%edx),%ecx
40c80e:	3b 48 10             	cmp    0x10(%eax),%ecx
40c811:	0f 85 8b 00 00 00    	jne    0x40c8a2
40c817:	8b 4a 14             	mov    0x14(%edx),%ecx
40c81a:	3b 48 14             	cmp    0x14(%eax),%ecx
40c81d:	0f 85 7f 00 00 00    	jne    0x40c8a2
40c823:	50                   	push   %eax
40c824:	8d 4b 7c             	lea    0x7c(%ebx),%ecx
40c827:	e8 04 01 00 00       	call   0x40c930
40c82c:	8b f8                	mov    %eax,%edi
40c82e:	85 ff                	test   %edi,%edi
40c830:	0f 85 d9 00 00 00    	jne    0x40c90f
40c836:	8b 75 f8             	mov    -0x8(%ebp),%esi
40c839:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c83c:	8b 46 14             	mov    0x14(%esi),%eax
40c83f:	3b 01                	cmp    (%ecx),%eax
40c841:	0f 85 96 00 00 00    	jne    0x40c8dd
40c847:	83 7e 24 02          	cmpl   $0x2,0x24(%esi)
40c84b:	0f 85 06 86 01 00    	jne    0x424e57
40c851:	8d 45 f0             	lea    -0x10(%ebp),%eax
40c854:	50                   	push   %eax
40c855:	8d 45 f8             	lea    -0x8(%ebp),%eax
40c858:	50                   	push   %eax
40c859:	8d 45 dc             	lea    -0x24(%ebp),%eax
40c85c:	50                   	push   %eax
40c85d:	8d 4b 5c             	lea    0x5c(%ebx),%ecx
40c860:	e8 7b 01 00 00       	call   0x40c9e0
40c865:	8b f8                	mov    %eax,%edi
40c867:	85 ff                	test   %edi,%edi
40c869:	0f 85 a0 00 00 00    	jne    0x40c90f
40c86f:	ff 73 3c             	push   0x3c(%ebx)
40c872:	ff 15 4c 11 45 00    	call   *0x45114c
40c878:	80 7b 30 00          	cmpb   $0x0,0x30(%ebx)
40c87c:	8d 43 18             	lea    0x18(%ebx),%eax
40c87f:	74 07                	je     0x40c888
40c881:	50                   	push   %eax
40c882:	ff 15 40 11 45 00    	call   *0x451140
40c888:	8b c7                	mov    %edi,%eax
40c88a:	5f                   	pop    %edi
40c88b:	5e                   	pop    %esi
40c88c:	5b                   	pop    %ebx
40c88d:	8b e5                	mov    %ebp,%esp
40c88f:	5d                   	pop    %ebp
40c890:	c2 04 00             	ret    $0x4
40c893:	8b d1                	mov    %ecx,%edx
40c895:	8b 4a 18             	mov    0x18(%edx),%ecx
40c898:	85 c9                	test   %ecx,%ecx
40c89a:	0f 84 52 ff ff ff    	je     0x40c7f2
40c8a0:	eb f1                	jmp    0x40c893
40c8a2:	3b fe                	cmp    %esi,%edi
40c8a4:	0f 85 8e 85 01 00    	jne    0x424e38
40c8aa:	8b 7a 10             	mov    0x10(%edx),%edi
40c8ad:	3b 78 10             	cmp    0x10(%eax),%edi
40c8b0:	8b 72 14             	mov    0x14(%edx),%esi
40c8b3:	8b 48 14             	mov    0x14(%eax),%ecx
40c8b6:	8b 7a 08             	mov    0x8(%edx),%edi
40c8b9:	75 04                	jne    0x40c8bf
40c8bb:	3b f1                	cmp    %ecx,%esi
40c8bd:	74 64                	je     0x40c923
40c8bf:	3b f1                	cmp    %ecx,%esi
40c8c1:	7c 0a                	jl     0x40c8cd
40c8c3:	7f 5e                	jg     0x40c923
40c8c5:	8b 4a 10             	mov    0x10(%edx),%ecx
40c8c8:	3b 48 10             	cmp    0x10(%eax),%ecx
40c8cb:	73 56                	jae    0x40c923
40c8cd:	8b 40 18             	mov    0x18(%eax),%eax
40c8d0:	85 c0                	test   %eax,%eax
40c8d2:	0f 85 28 ff ff ff    	jne    0x40c800
40c8d8:	e9 66 85 01 00       	jmp    0x424e43
40c8dd:	8b 53 08             	mov    0x8(%ebx),%edx
40c8e0:	8b ca                	mov    %edx,%ecx
40c8e2:	8b 73 0c             	mov    0xc(%ebx),%esi
40c8e5:	83 c1 01             	add    $0x1,%ecx
40c8e8:	8b c6                	mov    %esi,%eax
40c8ea:	89 4b 08             	mov    %ecx,0x8(%ebx)
40c8ed:	83 d0 00             	adc    $0x0,%eax
40c8f0:	89 55 e4             	mov    %edx,-0x1c(%ebp)
40c8f3:	89 43 0c             	mov    %eax,0xc(%ebx)
40c8f6:	8d 4b 7c             	lea    0x7c(%ebx),%ecx
40c8f9:	8d 45 f0             	lea    -0x10(%ebp),%eax