4fc629:	3b cf                	cmp    %edi,%ecx
4fc62b:	73 0d                	jae    0x4fc63a
4fc62d:	2b f9                	sub    %ecx,%edi
4fc62f:	89 38                	mov    %edi,(%eax)
4fc631:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4fc638:	eb 39                	jmp    0x4fc673
4fc63a:	8b 06                	mov    (%esi),%eax
4fc63c:	33 c9                	xor    %ecx,%ecx
4fc63e:	39 38                	cmp    %edi,(%eax)
4fc640:	73 1b                	jae    0x4fc65d
4fc642:	33 d2                	xor    %edx,%edx
4fc644:	8b 06                	mov    (%esi),%eax
4fc646:	41                   	inc    %ecx
4fc647:	29 3c 02             	sub    %edi,(%edx,%eax,1)
4fc64a:	bf 01 00 00 00       	mov    $0x1,%edi
4fc64f:	8b 06                	mov    (%esi),%eax
4fc651:	8d 14 8d 00 00 00 00 	lea    0x0(,%ecx,4),%edx
4fc658:	39 3c 10             	cmp    %edi,(%eax,%edx,1)
4fc65b:	72 e7                	jb     0x4fc644
4fc65d:	29 3c 88             	sub    %edi,(%eax,%ecx,4)
4fc660:	8b 06                	mov    (%esi),%eax
4fc662:	83 3c 88 00          	cmpl   $0x0,(%eax,%ecx,4)
4fc666:	75 0b                	jne    0x4fc673
4fc668:	8b 46 04             	mov    0x4(%esi),%eax
4fc66b:	48                   	dec    %eax
4fc66c:	3b c8                	cmp    %eax,%ecx
4fc66e:	75 03                	jne    0x4fc673
4fc670:	89 46 04             	mov    %eax,0x4(%esi)
4fc673:	bf 01 00 00 00       	mov    $0x1,%edi
4fc678:	56                   	push   %esi
4fc679:	e8 e2 d6 fd ff       	call   0x4d9d60
4fc67e:	83 c4 04             	add    $0x4,%esp
4fc681:	85 c0                	test   %eax,%eax
4fc683:	75 0b                	jne    0x4fc690
4fc685:	33 c9                	xor    %ecx,%ecx
4fc687:	39 4e 0c             	cmp    %ecx,0xc(%esi)
4fc68a:	0f 94 c1             	sete   %cl
4fc68d:	89 4e 0c             	mov    %ecx,0xc(%esi)
4fc690:	8b c7                	mov    %edi,%eax
4fc692:	5f                   	pop    %edi
4fc693:	5e                   	pop    %esi
4fc694:	5b                   	pop    %ebx
4fc695:	c3                   	ret
4fc696:	33 db                	xor    %ebx,%ebx
4fc698:	8b d7                	mov    %edi,%edx
4fc69a:	3b 5e 04             	cmp    0x4(%esi),%ebx
4fc69d:	7d 16                	jge    0x4fc6b5
4fc69f:	8b 06                	mov    (%esi),%eax
4fc6a1:	8d 0c 98             	lea    (%eax,%ebx,4),%ecx
4fc6a4:	8b 01                	mov    (%ecx),%eax
4fc6a6:	03 c7                	add    %edi,%eax
4fc6a8:	3b c7                	cmp    %edi,%eax
4fc6aa:	89 01                	mov    %eax,(%ecx)
4fc6ac:	1b ff                	sbb    %edi,%edi
4fc6ae:	43                   	inc    %ebx
4fc6af:	f7 df                	neg    %edi
4fc6b1:	3b d0                	cmp    %eax,%edx
4fc6b3:	77 e3                	ja     0x4fc698
4fc6b5:	85 ff                	test   %edi,%edi
4fc6b7:	74 22                	je     0x4fc6db
4fc6b9:	8b 46 04             	mov    0x4(%esi),%eax
4fc6bc:	3b d8                	cmp    %eax,%ebx
4fc6be:	75 1b                	jne    0x4fc6db
4fc6c0:	40                   	inc    %eax
4fc6c1:	50                   	push   %eax
4fc6c2:	56                   	push   %esi
4fc6c3:	e8 d8 de fd ff       	call   0x4da5a0
4fc6c8:	83 c4 08             	add    $0x8,%esp
4fc6cb:	85 c0                	test   %eax,%eax
4fc6cd:	75 04                	jne    0x4fc6d3
4fc6cf:	5f                   	pop    %edi
4fc6d0:	5e                   	pop    %esi
4fc6d1:	5b                   	pop    %ebx
4fc6d2:	c3                   	ret
4fc6d3:	8b 06                	mov    (%esi),%eax
4fc6d5:	ff 46 04             	incl   0x4(%esi)
4fc6d8:	89 3c 98             	mov    %edi,(%eax,%ebx,4)
4fc6db:	5f                   	pop    %edi
4fc6dc:	5e                   	pop    %esi
4fc6dd:	b8 01 00 00 00       	mov    $0x1,%eax
4fc6e2:	5b                   	pop    %ebx
4fc6e3:	c3                   	ret
4fc6e4:	cc                   	int3
4fc6e5:	cc                   	int3
4fc6e6:	cc                   	int3
4fc6e7:	cc                   	int3
4fc6e8:	cc                   	int3
4fc6e9:	cc                   	int3
4fc6ea:	cc                   	int3
4fc6eb:	cc                   	int3
4fc6ec:	cc                   	int3
4fc6ed:	cc                   	int3
4fc6ee:	cc                   	int3
4fc6ef:	cc                   	int3
4fc6f0:	b8 04 00 00 00       	mov    $0x4,%eax
4fc6f5:	e8 b6 50 0d 00       	call   0x5d17b0
4fc6fa:	53                   	push   %ebx
4fc6fb:	55                   	push   %ebp
4fc6fc:	8b 6c 24 14          	mov    0x14(%esp),%ebp
4fc700:	33 db                	xor    %ebx,%ebx
4fc702:	56                   	push   %esi
4fc703:	57                   	push   %edi
4fc704:	85 ed                	test   %ebp,%ebp
4fc706:	0f 84 9e 00 00 00    	je     0x4fc7aa
4fc70c:	8b 7c 24 18          	mov    0x18(%esp),%edi
4fc710:	39 5f 04             	cmp    %ebx,0x4(%edi)
4fc713:	75 08                	jne    0x4fc71d
4fc715:	5f                   	pop    %edi
4fc716:	5e                   	pop    %esi
4fc717:	5d                   	pop    %ebp
4fc718:	33 c0                	xor    %eax,%eax
4fc71a:	5b                   	pop    %ebx
4fc71b:	59                   	pop    %ecx
4fc71c:	c3                   	ret
4fc71d:	55                   	push   %ebp
4fc71e:	e8 cd d7 fd ff       	call   0x4d9ef0
4fc723:	be 20 00 00 00       	mov    $0x20,%esi
4fc728:	2b f0                	sub    %eax,%esi
4fc72a:	56                   	push   %esi
4fc72b:	8b ce                	mov    %esi,%ecx
4fc72d:	89 74 24 18          	mov    %esi,0x18(%esp)
4fc731:	57                   	push   %edi
4fc732:	57                   	push   %edi
4fc733:	d3 e5                	shl    %cl,%ebp
4fc735:	e8 a6 e2 fe ff       	call   0x4ea9e0
4fc73a:	83 c4 10             	add    $0x10,%esp
4fc73d:	85 c0                	test   %eax,%eax
4fc73f:	74 69                	je     0x4fc7aa
4fc741:	8b 4f 04             	mov    0x4(%edi),%ecx
4fc744:	8d 51 ff             	lea    -0x1(%ecx),%edx
4fc747:	89 54 24 1c          	mov    %edx,0x1c(%esp)
4fc74b:	85 d2                	test   %edx,%edx
4fc74d:	78 33                	js     0x4fc782
4fc74f:	90                   	nop
4fc750:	8b 07                	mov    (%edi),%eax
4fc752:	55                   	push   %ebp
4fc753:	8b 34 90             	mov    (%eax,%edx,4),%esi
4fc756:	56                   	push   %esi
4fc757:	53                   	push   %ebx
4fc758:	e8 a3 47 f1 ff       	call   0x410f00
4fc75d:	8b 54 24 28          	mov    0x28(%esp),%edx
4fc761:	8b c8                	mov    %eax,%ecx
4fc763:	0f af c5             	imul   %ebp,%eax
4fc766:	8b de                	mov    %esi,%ebx
4fc768:	83 c4 0c             	add    $0xc,%esp
4fc76b:	2b d8                	sub    %eax,%ebx
4fc76d:	8b 07                	mov    (%edi),%eax
4fc76f:	89 0c 90             	mov    %ecx,(%eax,%edx,4)
4fc772:	83 ea 01             	sub    $0x1,%edx
4fc775:	89 54 24 1c          	mov    %edx,0x1c(%esp)
4fc779:	79 d5                	jns    0x4fc750
4fc77b:	8b 4f 04             	mov    0x4(%edi),%ecx
4fc77e:	8b 74 24 10          	mov    0x10(%esp),%esi
4fc782:	8b d1                	mov    %ecx,%edx
4fc784:	85 c9                	test   %ecx,%ecx
4fc786:	7e 0f                	jle    0x4fc797
4fc788:	8b 07                	mov    (%edi),%eax
4fc78a:	83 7c 88 fc 00       	cmpl   $0x0,-0x4(%eax,%ecx,4)
4fc78f:	75 06                	jne    0x4fc797
4fc791:	8d 51 ff             	lea    -0x1(%ecx),%edx
4fc794:	89 57 04             	mov    %edx,0x4(%edi)
4fc797:	8b ce                	mov    %esi,%ecx
4fc799:	d3 eb                	shr    %cl,%ebx
4fc79b:	85 d2                	test   %edx,%edx
4fc79d:	75 03                	jne    0x4fc7a2
4fc79f:	89 57 0c             	mov    %edx,0xc(%edi)
4fc7a2:	5f                   	pop    %edi
4fc7a3:	5e                   	pop    %esi
4fc7a4:	5d                   	pop    %ebp
4fc7a5:	8b c3                	mov    %ebx,%eax
4fc7a7:	5b                   	pop    %ebx
4fc7a8:	59                   	pop    %ecx
4fc7a9:	c3                   	ret
4fc7aa:	5f                   	pop    %edi
4fc7ab:	5e                   	pop    %esi
4fc7ac:	5d                   	pop    %ebp
4fc7ad:	83 c8 ff             	or     $0xffffffff,%eax
4fc7b0:	5b                   	pop    %ebx
4fc7b1:	59                   	pop    %ecx
4fc7b2:	c3                   	ret
4fc7b3:	cc                   	int3
4fc7b4:	cc                   	int3
4fc7b5:	cc                   	int3
4fc7b6:	cc                   	int3
4fc7b7:	cc                   	int3
4fc7b8:	cc                   	int3
4fc7b9:	cc                   	int3
4fc7ba:	cc                   	int3
4fc7bb:	cc                   	int3
4fc7bc:	cc                   	int3
4fc7bd:	cc                   	int3
4fc7be:	cc                   	int3
4fc7bf:	cc                   	int3
4fc7c0:	b8 08 00 00 00       	mov    $0x8,%eax
4fc7c5:	e8 e6 4f 0d 00       	call   0x5d17b0
4fc7ca:	53                   	push   %ebx
4fc7cb:	8b 5c 24 14          	mov    0x14(%esp),%ebx
4fc7cf:	0f 57 c0             	xorps  %xmm0,%xmm0
4fc7d2:	66 0f 13 44 24 04    	movlpd %xmm0,0x4(%esp)
4fc7d8:	85 db                	test   %ebx,%ebx
4fc7da:	75 08                	jne    0x4fc7e4
4fc7dc:	83 c8 ff             	or     $0xffffffff,%eax
4fc7df:	5b                   	pop    %ebx
4fc7e0:	83 c4 08             	add    $0x8,%esp
4fc7e3:	c3                   	ret
4fc7e4:	8b 44 24 10          	mov    0x10(%esp),%eax
4fc7e8:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4fc7ec:	56                   	push   %esi
4fc7ed:	8b 70 04             	mov    0x4(%eax),%esi
4fc7f0:	83 ee 01             	sub    $0x1,%esi
4fc7f3:	78 24                	js     0x4fc819
4fc7f5:	8b 00                	mov    (%eax),%eax
4fc7f7:	57                   	push   %edi
4fc7f8:	8d 3c b0             	lea    (%eax,%esi,4),%edi
4fc7fb:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
4fc800:	6a 00                	push   $0x0
4fc802:	53                   	push   %ebx
4fc803:	33 c0                	xor    %eax,%eax
4fc805:	0b 07                	or     (%edi),%eax
4fc807:	51                   	push   %ecx
4fc808:	50                   	push   %eax
4fc809:	e8 a2 49 0d 00       	call   0x5d11b0
4fc80e:	83 ee 01             	sub    $0x1,%esi
4fc811:	8d 7f fc             	lea    -0x4(%edi),%edi
4fc814:	8b c8                	mov    %eax,%ecx
4fc816:	79 e8                	jns    0x4fc800
4fc818:	5f                   	pop    %edi
4fc819:	5e                   	pop    %esi
4fc81a:	8b c1                	mov    %ecx,%eax
4fc81c:	5b                   	pop    %ebx
4fc81d:	83 c4 08             	add    $0x8,%esp
4fc820:	c3                   	ret
4fc821:	cc                   	int3
4fc822:	cc                   	int3
4fc823:	cc                   	int3
4fc824:	cc                   	int3
4fc825:	cc                   	int3
4fc826:	cc                   	int3
4fc827:	cc                   	int3
4fc828:	cc                   	int3
4fc829:	cc                   	int3
4fc82a:	cc                   	int3
4fc82b:	cc                   	int3
4fc82c:	cc                   	int3
4fc82d:	cc                   	int3
4fc82e:	cc                   	int3
4fc82f:	cc                   	int3
4fc830:	56                   	push   %esi
4fc831:	8b 74 24 08          	mov    0x8(%esp),%esi
4fc835:	57                   	push   %edi
4fc836:	8b 4e 04             	mov    0x4(%esi),%ecx
4fc839:	85 c9                	test   %ecx,%ecx
4fc83b:	74 4e                	je     0x4fc88b
4fc83d:	8b 54 24 10          	mov    0x10(%esp),%edx
4fc841:	85 d2                	test   %edx,%edx
4fc843:	75 12                	jne    0x4fc857
4fc845:	52                   	push   %edx
4fc846:	56                   	push   %esi
4fc847:	e8 94 d8 fd ff       	call   0x4da0e0
4fc84c:	83 c4 08             	add    $0x8,%esp
4fc84f:	b8 01 00 00 00       	mov    $0x1,%eax
4fc854:	5f                   	pop    %edi
4fc855:	5e                   	pop    %esi
4fc856:	c3                   	ret
4fc857:	8b 06                	mov    (%esi),%eax
4fc859:	52                   	push   %edx
4fc85a:	51                   	push   %ecx
4fc85b:	50                   	push   %eax
4fc85c:	50                   	push   %eax
4fc85d:	e8 8e 43 f1 ff       	call   0x410bf0
4fc862:	8b f8                	mov    %eax,%edi
4fc864:	83 c4 10             	add    $0x10,%esp
4fc867:	85 ff                	test   %edi,%edi
4fc869:	74 20                	je     0x4fc88b
4fc86b:	8b 4e 04             	mov    0x4(%esi),%ecx
4fc86e:	41                   	inc    %ecx
4fc86f:	51                   	push   %ecx
4fc870:	56                   	push   %esi
4fc871:	e8 2a dd fd ff       	call   0x4da5a0
4fc876:	83 c4 08             	add    $0x8,%esp
4fc879:	85 c0                	test   %eax,%eax
4fc87b:	75 03                	jne    0x4fc880
4fc87d:	5f                   	pop    %edi
4fc87e:	5e                   	pop    %esi
4fc87f:	c3                   	ret
4fc880:	8b 4e 04             	mov    0x4(%esi),%ecx
4fc883:	8b 06                	mov    (%esi),%eax
4fc885:	89 3c 88             	mov    %edi,(%eax,%ecx,4)
4fc888:	ff 46 04             	incl   0x4(%esi)
4fc88b:	5f                   	pop    %edi
4fc88c:	b8 01 00 00 00       	mov    $0x1,%eax
4fc891:	5e                   	pop    %esi
4fc892:	c3                   	ret
4fc893:	cc                   	int3
4fc894:	cc                   	int3
4fc895:	cc                   	int3
4fc896:	cc                   	int3
4fc897:	cc                   	int3
4fc898:	cc                   	int3
4fc899:	cc                   	int3
4fc89a:	cc                   	int3
4fc89b:	cc                   	int3
4fc89c:	cc                   	int3
4fc89d:	cc                   	int3
4fc89e:	cc                   	int3
4fc89f:	cc                   	int3
4fc8a0:	56                   	push   %esi
4fc8a1:	57                   	push   %edi
4fc8a2:	8b 7c 24 10          	mov    0x10(%esp),%edi
4fc8a6:	85 ff                	test   %edi,%edi
4fc8a8:	0f 84 b1 00 00 00    	je     0x4fc95f
4fc8ae:	8b 74 24 0c          	mov    0xc(%esp),%esi
4fc8b2:	56                   	push   %esi
4fc8b3:	e8 a8 d4 fd ff       	call   0x4d9d60
4fc8b8:	83 c4 04             	add    $0x4,%esp
4fc8bb:	85 c0                	test   %eax,%eax
4fc8bd:	74 20                	je     0x4fc8df
4fc8bf:	57                   	push   %edi
4fc8c0:	56                   	push   %esi
4fc8c1:	e8 1a d8 fd ff       	call   0x4da0e0
4fc8c6:	8b f8                	mov    %eax,%edi
4fc8c8:	83 c4 08             	add    $0x8,%esp
4fc8cb:	85 ff                	test   %edi,%edi
4fc8cd:	74 0b                	je     0x4fc8da
4fc8cf:	6a 01                	push   $0x1
4fc8d1:	56                   	push   %esi
4fc8d2:	e8 d9 d7 fd ff       	call   0x4da0b0
4fc8d7:	83 c4 08             	add    $0x8,%esp
4fc8da:	8b c7                	mov    %edi,%eax
4fc8dc:	5f                   	pop    %edi
4fc8dd:	5e                   	pop    %esi
4fc8de:	c3                   	ret
4fc8df:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
4fc8e3:	74 1b                	je     0x4fc900
4fc8e5:	57                   	push   %edi
4fc8e6:	56                   	push   %esi
4fc8e7:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
4fc8ee:	e8 9d fc ff ff       	call   0x4fc590
4fc8f3:	83 c4 08             	add    $0x8,%esp
4fc8f6:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4fc8fd:	5f                   	pop    %edi
4fc8fe:	5e                   	pop    %esi
4fc8ff:	c3                   	ret
4fc900:	83 7e 04 01          	cmpl   $0x1,0x4(%esi)
4fc904:	75 1b                	jne    0x4fc921
4fc906:	8b 06                	mov    (%esi),%eax
4fc908:	8b 08                	mov    (%eax),%ecx
4fc90a:	3b cf                	cmp    %edi,%ecx
4fc90c:	73 13                	jae    0x4fc921
4fc90e:	2b f9                	sub    %ecx,%edi