8ec5e3:	e8 7e 59 b4 ff       	call   0x431f66
8ec5e8:	6a 10                	push   $0x10
8ec5ea:	6a 00                	push   $0x0
8ec5ec:	89 5d f0             	mov    %ebx,-0x10(%ebp)
8ec5ef:	8b 73 08             	mov    0x8(%ebx),%esi
8ec5f2:	53                   	push   %ebx
8ec5f3:	e8 c0 81 b2 ff       	call   0x4147b8
8ec5f8:	89 73 08             	mov    %esi,0x8(%ebx)
8ec5fb:	83 c4 0c             	add    $0xc,%esp
8ec5fe:	8b 47 10             	mov    0x10(%edi),%eax
8ec601:	89 5d ec             	mov    %ebx,-0x14(%ebp)
8ec604:	8b 48 08             	mov    0x8(%eax),%ecx
8ec607:	ff 47 0c             	incl   0xc(%edi)
8ec60a:	89 4f 10             	mov    %ecx,0x10(%edi)
8ec60d:	ff 75 08             	push   0x8(%ebp)
8ec610:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
8ec614:	8b cb                	mov    %ebx,%ecx
8ec616:	e8 68 83 b3 ff       	call   0x424983
8ec61b:	8b c3                	mov    %ebx,%eax
8ec61d:	e8 f5 1d b2 ff       	call   0x40e417
8ec622:	c2 04 00             	ret    $0x4
8ec625:	cc                   	int3
8ec626:	cc                   	int3
8ec627:	cc                   	int3
8ec628:	cc                   	int3
8ec629:	cc                   	int3
8ec62a:	cc                   	int3
8ec62b:	cc                   	int3
8ec62c:	cc                   	int3
8ec62d:	cc                   	int3
8ec62e:	cc                   	int3
8ec62f:	cc                   	int3
8ec630:	cc                   	int3
8ec631:	cc                   	int3
8ec632:	cc                   	int3
8ec633:	cc                   	int3
8ec634:	cc                   	int3
8ec635:	cc                   	int3
8ec636:	cc                   	int3
8ec637:	cc                   	int3
8ec638:	cc                   	int3
8ec639:	cc                   	int3
8ec63a:	cc                   	int3
8ec63b:	cc                   	int3
8ec63c:	cc                   	int3
8ec63d:	cc                   	int3
8ec63e:	cc                   	int3
8ec63f:	cc                   	int3
8ec640:	cc                   	int3
8ec641:	cc                   	int3
8ec642:	cc                   	int3
8ec643:	cc                   	int3
8ec644:	cc                   	int3
8ec645:	cc                   	int3
8ec646:	cc                   	int3
8ec647:	55                   	push   %ebp
8ec648:	8b ec                	mov    %esp,%ebp
8ec64a:	51                   	push   %ecx
8ec64b:	53                   	push   %ebx
8ec64c:	56                   	push   %esi
8ec64d:	8b f1                	mov    %ecx,%esi
8ec64f:	33 db                	xor    %ebx,%ebx
8ec651:	8b 4e 04             	mov    0x4(%esi),%ecx
8ec654:	85 c9                	test   %ecx,%ecx
8ec656:	74 1d                	je     0x8ec675
8ec658:	8b 56 08             	mov    0x8(%esi),%edx
8ec65b:	85 d2                	test   %edx,%edx
8ec65d:	74 0c                	je     0x8ec66b
8ec65f:	57                   	push   %edi
8ec660:	8b f9                	mov    %ecx,%edi
8ec662:	8d 7f 04             	lea    0x4(%edi),%edi
8ec665:	83 ea 01             	sub    $0x1,%edx
8ec668:	75 f8                	jne    0x8ec662
8ec66a:	5f                   	pop    %edi
8ec66b:	51                   	push   %ecx
8ec66c:	e8 a1 1f b5 ff       	call   0x43e612
8ec671:	59                   	pop    %ecx
8ec672:	89 5e 04             	mov    %ebx,0x4(%esi)
8ec675:	8b 4e 14             	mov    0x14(%esi),%ecx
8ec678:	89 5e 0c             	mov    %ebx,0xc(%esi)
8ec67b:	89 5e 10             	mov    %ebx,0x10(%esi)
8ec67e:	e8 e8 dd b1 ff       	call   0x40a46b
8ec683:	89 5e 14             	mov    %ebx,0x14(%esi)
8ec686:	5e                   	pop    %esi
8ec687:	5b                   	pop    %ebx
8ec688:	8b e5                	mov    %ebp,%esp
8ec68a:	5d                   	pop    %ebp
8ec68b:	c3                   	ret
8ec68c:	cc                   	int3
8ec68d:	cc                   	int3
8ec68e:	cc                   	int3
8ec68f:	cc                   	int3
8ec690:	cc                   	int3
8ec691:	cc                   	int3
8ec692:	cc                   	int3
8ec693:	cc                   	int3
8ec694:	cc                   	int3
8ec695:	cc                   	int3
8ec696:	cc                   	int3
8ec697:	cc                   	int3
8ec698:	cc                   	int3
8ec699:	cc                   	int3
8ec69a:	cc                   	int3
8ec69b:	cc                   	int3
8ec69c:	cc                   	int3
8ec69d:	55                   	push   %ebp
8ec69e:	8b ec                	mov    %esp,%ebp
8ec6a0:	51                   	push   %ecx
8ec6a1:	53                   	push   %ebx
8ec6a2:	56                   	push   %esi
8ec6a3:	8b f1                	mov    %ecx,%esi
8ec6a5:	33 db                	xor    %ebx,%ebx
8ec6a7:	8b 4e 04             	mov    0x4(%esi),%ecx
8ec6aa:	85 c9                	test   %ecx,%ecx
8ec6ac:	74 1d                	je     0x8ec6cb
8ec6ae:	8b 56 08             	mov    0x8(%esi),%edx
8ec6b1:	85 d2                	test   %edx,%edx
8ec6b3:	74 0c                	je     0x8ec6c1
8ec6b5:	57                   	push   %edi
8ec6b6:	8b f9                	mov    %ecx,%edi
8ec6b8:	8d 7f 04             	lea    0x4(%edi),%edi
8ec6bb:	83 ea 01             	sub    $0x1,%edx
8ec6be:	75 f8                	jne    0x8ec6b8
8ec6c0:	5f                   	pop    %edi
8ec6c1:	51                   	push   %ecx
8ec6c2:	e8 4b 1f b5 ff       	call   0x43e612
8ec6c7:	59                   	pop    %ecx
8ec6c8:	89 5e 04             	mov    %ebx,0x4(%esi)
8ec6cb:	8b 4e 14             	mov    0x14(%esi),%ecx
8ec6ce:	89 5e 0c             	mov    %ebx,0xc(%esi)
8ec6d1:	89 5e 10             	mov    %ebx,0x10(%esi)
8ec6d4:	e8 92 dd b1 ff       	call   0x40a46b
8ec6d9:	89 5e 14             	mov    %ebx,0x14(%esi)
8ec6dc:	5e                   	pop    %esi
8ec6dd:	5b                   	pop    %ebx
8ec6de:	8b e5                	mov    %ebp,%esp
8ec6e0:	5d                   	pop    %ebp
8ec6e1:	c3                   	ret
8ec6e2:	cc                   	int3
8ec6e3:	cc                   	int3
8ec6e4:	cc                   	int3
8ec6e5:	cc                   	int3
8ec6e6:	cc                   	int3
8ec6e7:	cc                   	int3
8ec6e8:	cc                   	int3
8ec6e9:	cc                   	int3
8ec6ea:	cc                   	int3
8ec6eb:	cc                   	int3
8ec6ec:	cc                   	int3
8ec6ed:	cc                   	int3
8ec6ee:	cc                   	int3
8ec6ef:	cc                   	int3
8ec6f0:	cc                   	int3
8ec6f1:	cc                   	int3
8ec6f2:	cc                   	int3
8ec6f3:	53                   	push   %ebx
8ec6f4:	56                   	push   %esi
8ec6f5:	8b f1                	mov    %ecx,%esi
8ec6f7:	33 db                	xor    %ebx,%ebx
8ec6f9:	39 5e 04             	cmp    %ebx,0x4(%esi)
8ec6fc:	74 34                	je     0x8ec732
8ec6fe:	57                   	push   %edi
8ec6ff:	8b fb                	mov    %ebx,%edi
8ec701:	39 5e 08             	cmp    %ebx,0x8(%esi)
8ec704:	76 1f                	jbe    0x8ec725
8ec706:	8b 46 04             	mov    0x4(%esi),%eax
8ec709:	8b 1c b8             	mov    (%eax,%edi,4),%ebx
8ec70c:	eb 0d                	jmp    0x8ec71b
8ec70e:	8b 0b                	mov    (%ebx),%ecx
8ec710:	83 e9 10             	sub    $0x10,%ecx
8ec713:	e8 fc 84 b1 ff       	call   0x404c14
8ec718:	8b 5b 08             	mov    0x8(%ebx),%ebx
8ec71b:	85 db                	test   %ebx,%ebx
8ec71d:	75 ef                	jne    0x8ec70e
8ec71f:	47                   	inc    %edi
8ec720:	3b 7e 08             	cmp    0x8(%esi),%edi
8ec723:	72 e1                	jb     0x8ec706
8ec725:	ff 76 04             	push   0x4(%esi)
8ec728:	e8 e5 1e b5 ff       	call   0x43e612
8ec72d:	59                   	pop    %ecx
8ec72e:	89 5e 04             	mov    %ebx,0x4(%esi)
8ec731:	5f                   	pop    %edi
8ec732:	8b 4e 14             	mov    0x14(%esi),%ecx
8ec735:	89 5e 0c             	mov    %ebx,0xc(%esi)
8ec738:	89 5e 10             	mov    %ebx,0x10(%esi)
8ec73b:	e8 2b dd b1 ff       	call   0x40a46b
8ec740:	89 5e 14             	mov    %ebx,0x14(%esi)
8ec743:	5e                   	pop    %esi
8ec744:	5b                   	pop    %ebx
8ec745:	c3                   	ret
8ec746:	cc                   	int3
8ec747:	cc                   	int3
8ec748:	cc                   	int3
8ec749:	cc                   	int3
8ec74a:	cc                   	int3
8ec74b:	cc                   	int3
8ec74c:	cc                   	int3
8ec74d:	cc                   	int3
8ec74e:	cc                   	int3
8ec74f:	cc                   	int3
8ec750:	cc                   	int3
8ec751:	cc                   	int3
8ec752:	cc                   	int3
8ec753:	cc                   	int3
8ec754:	cc                   	int3
8ec755:	cc                   	int3
8ec756:	cc                   	int3
8ec757:	cc                   	int3
8ec758:	cc                   	int3
8ec759:	cc                   	int3
8ec75a:	55                   	push   %ebp
8ec75b:	8b ec                	mov    %esp,%ebp
8ec75d:	51                   	push   %ecx
8ec75e:	57                   	push   %edi
8ec75f:	8b f9                	mov    %ecx,%edi
8ec761:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
8ec765:	75 04                	jne    0x8ec76b
8ec767:	33 c0                	xor    %eax,%eax
8ec769:	eb 44                	jmp    0x8ec7af
8ec76b:	53                   	push   %ebx
8ec76c:	56                   	push   %esi
8ec76d:	ff 75 08             	push   0x8(%ebp)
8ec770:	e8 85 a2 b2 ff       	call   0x4169fa
8ec775:	33 d2                	xor    %edx,%edx
8ec777:	89 45 fc             	mov    %eax,-0x4(%ebp)
8ec77a:	f7 77 08             	divl   0x8(%edi)
8ec77d:	8b 4f 04             	mov    0x4(%edi),%ecx
8ec780:	8d 1c 91             	lea    (%ecx,%edx,4),%ebx
8ec783:	8b 33                	mov    (%ebx),%esi
8ec785:	85 f6                	test   %esi,%esi
8ec787:	74 22                	je     0x8ec7ab
8ec789:	8b 45 fc             	mov    -0x4(%ebp),%eax
8ec78c:	39 46 0c             	cmp    %eax,0xc(%esi)
8ec78f:	75 11                	jne    0x8ec7a2
8ec791:	8d 45 08             	lea    0x8(%ebp),%eax
8ec794:	50                   	push   %eax
8ec795:	56                   	push   %esi
8ec796:	e8 e5 e2 b4 ff       	call   0x43aa80
8ec79b:	85 c0                	test   %eax,%eax
8ec79d:	75 17                	jne    0x8ec7b6
8ec79f:	8b 45 fc             	mov    -0x4(%ebp),%eax
8ec7a2:	8d 5e 08             	lea    0x8(%esi),%ebx
8ec7a5:	8b 33                	mov    (%ebx),%esi
8ec7a7:	85 f6                	test   %esi,%esi
8ec7a9:	75 e1                	jne    0x8ec78c
8ec7ab:	33 c0                	xor    %eax,%eax
8ec7ad:	5e                   	pop    %esi
8ec7ae:	5b                   	pop    %ebx
8ec7af:	5f                   	pop    %edi
8ec7b0:	8b e5                	mov    %ebp,%esp
8ec7b2:	5d                   	pop    %ebp
8ec7b3:	c2 04 00             	ret    $0x4
8ec7b6:	8b 46 08             	mov    0x8(%esi),%eax
8ec7b9:	8b cf                	mov    %edi,%ecx
8ec7bb:	56                   	push   %esi
8ec7bc:	89 03                	mov    %eax,(%ebx)
8ec7be:	e8 b7 f2 b4 ff       	call   0x43ba7a
8ec7c3:	33 c0                	xor    %eax,%eax
8ec7c5:	40                   	inc    %eax
8ec7c6:	eb e5                	jmp    0x8ec7ad
8ec7c8:	cc                   	int3
8ec7c9:	cc                   	int3
8ec7ca:	cc                   	int3
8ec7cb:	cc                   	int3
8ec7cc:	cc                   	int3
8ec7cd:	cc                   	int3
8ec7ce:	cc                   	int3
8ec7cf:	cc                   	int3
8ec7d0:	cc                   	int3
8ec7d1:	cc                   	int3
8ec7d2:	cc                   	int3
8ec7d3:	cc                   	int3
8ec7d4:	cc                   	int3
8ec7d5:	cc                   	int3
8ec7d6:	cc                   	int3
8ec7d7:	cc                   	int3
8ec7d8:	cc                   	int3
8ec7d9:	cc                   	int3
8ec7da:	cc                   	int3
8ec7db:	cc                   	int3
8ec7dc:	cc                   	int3
8ec7dd:	cc                   	int3
8ec7de:	cc                   	int3
8ec7df:	cc                   	int3
8ec7e0:	cc                   	int3
8ec7e1:	cc                   	int3
8ec7e2:	cc                   	int3
8ec7e3:	55                   	push   %ebp
8ec7e4:	8b ec                	mov    %esp,%ebp
8ec7e6:	83 ec 10             	sub    $0x10,%esp
8ec7e9:	56                   	push   %esi
8ec7ea:	57                   	push   %edi
8ec7eb:	8b f9                	mov    %ecx,%edi
8ec7ed:	89 7d f4             	mov    %edi,-0xc(%ebp)
8ec7f0:	8b 47 10             	mov    0x10(%edi),%eax
8ec7f3:	f7 d8                	neg    %eax
8ec7f5:	1b c0                	sbb    %eax,%eax
8ec7f7:	89 45 fc             	mov    %eax,-0x4(%ebp)
8ec7fa:	74 42                	je     0x8ec83e
8ec7fc:	8d 45 f8             	lea    -0x8(%ebp),%eax
8ec7ff:	50                   	push   %eax
8ec800:	8d 45 f0             	lea    -0x10(%ebp),%eax
8ec803:	50                   	push   %eax
8ec804:	8d 45 fc             	lea    -0x4(%ebp),%eax
8ec807:	50                   	push   %eax
8ec808:	8d 4f 04             	lea    0x4(%edi),%ecx
8ec80b:	e8 a4 68 b4 ff       	call   0x4330b4
8ec810:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
8ec814:	0f 84 a6 00 00 00    	je     0x8ec8c0
8ec81a:	6a 00                	push   $0x0
8ec81c:	ff 75 f8             	push   -0x8(%ebp)
8ec81f:	ff 15 18 40 d8 00    	call   *0xd84018
8ec825:	85 c0                	test   %eax,%eax
8ec827:	0f 84 93 00 00 00    	je     0x8ec8c0
8ec82d:	50                   	push   %eax
8ec82e:	b9 f8 ed d7 00       	mov    $0xd7edf8,%ecx
8ec833:	e8 ea 33 b2 ff       	call   0x40fc22
8ec838:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
8ec83c:	75 be                	jne    0x8ec7fc
8ec83e:	8b 47 48             	mov    0x48(%edi),%eax
8ec841:	f7 d8                	neg    %eax
8ec843:	1b c0                	sbb    %eax,%eax
8ec845:	89 45 fc             	mov    %eax,-0x4(%ebp)
8ec848:	74 65                	je     0x8ec8af
8ec84a:	8d 47 3c             	lea    0x3c(%edi),%eax
8ec84d:	8b f8                	mov    %eax,%edi
8ec84f:	53                   	push   %ebx
8ec850:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
8ec854:	8d 45 f8             	lea    -0x8(%ebp),%eax
8ec857:	50                   	push   %eax
8ec858:	8d 45 f0             	lea    -0x10(%ebp),%eax
8ec85b:	8b cf                	mov    %edi,%ecx
8ec85d:	50                   	push   %eax
8ec85e:	8d 45 fc             	lea    -0x4(%ebp),%eax
8ec861:	50                   	push   %eax
8ec862:	e8 6a b6 b2 ff       	call   0x417ed1
8ec867:	8b 5d f8             	mov    -0x8(%ebp),%ebx
8ec86a:	eb 21                	jmp    0x8ec88d
8ec86c:	8b cb                	mov    %ebx,%ecx
8ec86e:	e8 3c 46 b3 ff       	call   0x420eaf
8ec873:	89 45 f8             	mov    %eax,-0x8(%ebp)
8ec876:	85 c0                	test   %eax,%eax
8ec878:	74 13                	je     0x8ec88d
8ec87a:	8b 08                	mov    (%eax),%ecx
8ec87c:	6a 01                	push   $0x1
8ec87e:	8b 71 04             	mov    0x4(%ecx),%esi
8ec881:	8b ce                	mov    %esi,%ecx
8ec883:	e8 dd fd b3 ff       	call   0x42c665
8ec888:	8b 4d f8             	mov    -0x8(%ebp),%ecx
8ec88b:	ff d6                	call   *%esi