43e793:	8b 74 24 08          	mov    0x8(%esp),%esi
43e797:	8b c6                	mov    %esi,%eax
43e799:	c1 e8 04             	shr    $0x4,%eax
43e79c:	89 02                	mov    %eax,(%edx)
43e79e:	33 d2                	xor    %edx,%edx
43e7a0:	f7 71 08             	divl   0x8(%ecx)
43e7a3:	8b 44 24 0c          	mov    0xc(%esp),%eax
43e7a7:	89 10                	mov    %edx,(%eax)
43e7a9:	8b 49 04             	mov    0x4(%ecx),%ecx
43e7ac:	85 c9                	test   %ecx,%ecx
43e7ae:	74 10                	je     0x43e7c0
43e7b0:	8b 04 91             	mov    (%ecx,%edx,4),%eax
43e7b3:	eb 07                	jmp    0x43e7bc
43e7b5:	39 70 04             	cmp    %esi,0x4(%eax)
43e7b8:	74 08                	je     0x43e7c2
43e7ba:	8b 00                	mov    (%eax),%eax
43e7bc:	85 c0                	test   %eax,%eax
43e7be:	75 f5                	jne    0x43e7b5
43e7c0:	33 c0                	xor    %eax,%eax
43e7c2:	5e                   	pop    %esi
43e7c3:	c2 0c 00             	ret    $0xc
43e7c6:	56                   	push   %esi
43e7c7:	8b 71 04             	mov    0x4(%ecx),%esi
43e7ca:	85 f6                	test   %esi,%esi
43e7cc:	75 04                	jne    0x43e7d2
43e7ce:	33 c0                	xor    %eax,%eax
43e7d0:	eb 22                	jmp    0x43e7f4
43e7d2:	57                   	push   %edi
43e7d3:	8b 7c 24 0c          	mov    0xc(%esp),%edi
43e7d7:	8b c7                	mov    %edi,%eax
43e7d9:	33 d2                	xor    %edx,%edx
43e7db:	c1 e8 04             	shr    $0x4,%eax
43e7de:	f7 71 08             	divl   0x8(%ecx)
43e7e1:	8b 14 96             	mov    (%esi,%edx,4),%edx
43e7e4:	eb 07                	jmp    0x43e7ed
43e7e6:	39 7a 04             	cmp    %edi,0x4(%edx)
43e7e9:	74 0d                	je     0x43e7f8
43e7eb:	8b 12                	mov    (%edx),%edx
43e7ed:	85 d2                	test   %edx,%edx
43e7ef:	75 f5                	jne    0x43e7e6
43e7f1:	33 c0                	xor    %eax,%eax
43e7f3:	5f                   	pop    %edi
43e7f4:	5e                   	pop    %esi
43e7f5:	c2 04 00             	ret    $0x4
43e7f8:	8b 42 08             	mov    0x8(%edx),%eax
43e7fb:	eb f6                	jmp    0x43e7f3
43e7fd:	55                   	push   %ebp
43e7fe:	8b ec                	mov    %esp,%ebp
43e800:	51                   	push   %ecx
43e801:	8d 45 08             	lea    0x8(%ebp),%eax
43e804:	50                   	push   %eax
43e805:	8d 45 fc             	lea    -0x4(%ebp),%eax
43e808:	50                   	push   %eax
43e809:	ff 75 08             	push   0x8(%ebp)
43e80c:	e8 7d ff ff ff       	call   0x43e78e
43e811:	85 c0                	test   %eax,%eax
43e813:	74 0b                	je     0x43e820
43e815:	8b 40 08             	mov    0x8(%eax),%eax
43e818:	8b 4d 0c             	mov    0xc(%ebp),%ecx
43e81b:	89 01                	mov    %eax,(%ecx)
43e81d:	33 c0                	xor    %eax,%eax
43e81f:	40                   	inc    %eax
43e820:	c9                   	leave
43e821:	c2 08 00             	ret    $0x8
43e824:	56                   	push   %esi
43e825:	8b 71 04             	mov    0x4(%ecx),%esi
43e828:	85 f6                	test   %esi,%esi
43e82a:	75 04                	jne    0x43e830
43e82c:	33 c0                	xor    %eax,%eax
43e82e:	eb 24                	jmp    0x43e854
43e830:	57                   	push   %edi
43e831:	8b 7c 24 0c          	mov    0xc(%esp),%edi
43e835:	8b c7                	mov    %edi,%eax
43e837:	c1 e8 04             	shr    $0x4,%eax
43e83a:	33 d2                	xor    %edx,%edx
43e83c:	f7 71 08             	divl   0x8(%ecx)
43e83f:	8d 14 96             	lea    (%esi,%edx,4),%edx
43e842:	8b 02                	mov    (%edx),%eax
43e844:	eb 09                	jmp    0x43e84f
43e846:	39 78 04             	cmp    %edi,0x4(%eax)
43e849:	74 0d                	je     0x43e858
43e84b:	8b d0                	mov    %eax,%edx
43e84d:	8b 00                	mov    (%eax),%eax
43e84f:	85 c0                	test   %eax,%eax
43e851:	75 f3                	jne    0x43e846
43e853:	5f                   	pop    %edi
43e854:	5e                   	pop    %esi
43e855:	c2 04 00             	ret    $0x4
43e858:	8b 30                	mov    (%eax),%esi
43e85a:	50                   	push   %eax
43e85b:	89 32                	mov    %esi,(%edx)
43e85d:	e8 13 ff ff ff       	call   0x43e775
43e862:	33 c0                	xor    %eax,%eax
43e864:	40                   	inc    %eax
43e865:	eb ec                	jmp    0x43e853
43e867:	53                   	push   %ebx
43e868:	8b 5c 24 08          	mov    0x8(%esp),%ebx
43e86c:	56                   	push   %esi
43e86d:	8b 33                	mov    (%ebx),%esi
43e86f:	85 f6                	test   %esi,%esi
43e871:	74 69                	je     0x43e8dc
43e873:	83 fe ff             	cmp    $0xffffffff,%esi
43e876:	57                   	push   %edi
43e877:	75 1e                	jne    0x43e897
43e879:	8b 51 08             	mov    0x8(%ecx),%edx
43e87c:	33 ff                	xor    %edi,%edi
43e87e:	85 d2                	test   %edx,%edx
43e880:	76 15                	jbe    0x43e897
43e882:	8b 41 04             	mov    0x4(%ecx),%eax
43e885:	8b 30                	mov    (%eax),%esi
43e887:	85 f6                	test   %esi,%esi
43e889:	75 0c                	jne    0x43e897
43e88b:	47                   	inc    %edi
43e88c:	83 c0 04             	add    $0x4,%eax
43e88f:	3b fa                	cmp    %edx,%edi
43e891:	72 f2                	jb     0x43e885
43e893:	21 33                	and    %esi,(%ebx)
43e895:	eb 44                	jmp    0x43e8db
43e897:	8b 3e                	mov    (%esi),%edi
43e899:	85 ff                	test   %edi,%edi
43e89b:	75 2a                	jne    0x43e8c7
43e89d:	8b 46 04             	mov    0x4(%esi),%eax
43e8a0:	8b 59 08             	mov    0x8(%ecx),%ebx
43e8a3:	c1 e8 04             	shr    $0x4,%eax
43e8a6:	33 d2                	xor    %edx,%edx
43e8a8:	f7 f3                	div    %ebx
43e8aa:	42                   	inc    %edx
43e8ab:	3b d3                	cmp    %ebx,%edx
43e8ad:	73 14                	jae    0x43e8c3
43e8af:	8b 41 04             	mov    0x4(%ecx),%eax
43e8b2:	8d 04 90             	lea    (%eax,%edx,4),%eax
43e8b5:	8b 38                	mov    (%eax),%edi
43e8b7:	85 ff                	test   %edi,%edi
43e8b9:	75 08                	jne    0x43e8c3
43e8bb:	42                   	inc    %edx
43e8bc:	83 c0 04             	add    $0x4,%eax
43e8bf:	3b d3                	cmp    %ebx,%edx
43e8c1:	72 f2                	jb     0x43e8b5
43e8c3:	8b 5c 24 10          	mov    0x10(%esp),%ebx
43e8c7:	8b 4c 24 14          	mov    0x14(%esp),%ecx
43e8cb:	89 3b                	mov    %edi,(%ebx)
43e8cd:	8b 46 04             	mov    0x4(%esi),%eax
43e8d0:	89 01                	mov    %eax,(%ecx)
43e8d2:	8b 46 08             	mov    0x8(%esi),%eax
43e8d5:	8b 4c 24 18          	mov    0x18(%esp),%ecx
43e8d9:	89 01                	mov    %eax,(%ecx)
43e8db:	5f                   	pop    %edi
43e8dc:	5e                   	pop    %esi
43e8dd:	5b                   	pop    %ebx
43e8de:	c2 0c 00             	ret    $0xc
43e8e1:	8b c1                	mov    %ecx,%eax
43e8e3:	8b 4c 24 04          	mov    0x4(%esp),%ecx
43e8e7:	33 d2                	xor    %edx,%edx
43e8e9:	3b ca                	cmp    %edx,%ecx
43e8eb:	c7 00 f4 bc 48 00    	movl   $0x48bcf4,(%eax)
43e8f1:	7f 03                	jg     0x43e8f6
43e8f3:	6a 0a                	push   $0xa
43e8f5:	59                   	pop    %ecx
43e8f6:	89 50 04             	mov    %edx,0x4(%eax)
43e8f9:	c7 40 08 11 00 00 00 	movl   $0x11,0x8(%eax)
43e900:	89 50 0c             	mov    %edx,0xc(%eax)
43e903:	89 50 10             	mov    %edx,0x10(%eax)
43e906:	89 50 14             	mov    %edx,0x14(%eax)
43e909:	89 48 18             	mov    %ecx,0x18(%eax)
43e90c:	c2 04 00             	ret    $0x4
43e90f:	c7 01 f4 bc 48 00    	movl   $0x48bcf4,(%ecx)
43e915:	e9 30 fe ff ff       	jmp    0x43e74a
43e91a:	56                   	push   %esi
43e91b:	8b f1                	mov    %ecx,%esi
43e91d:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
43e921:	75 2d                	jne    0x43e950
43e923:	6a 0c                	push   $0xc
43e925:	ff 76 18             	push   0x18(%esi)
43e928:	8d 46 14             	lea    0x14(%esi),%eax
43e92b:	50                   	push   %eax
43e92c:	e8 37 df ff ff       	call   0x43c868
43e931:	8b 4e 18             	mov    0x18(%esi),%ecx
43e934:	83 c0 04             	add    $0x4,%eax
43e937:	8d 14 49             	lea    (%ecx,%ecx,2),%edx
43e93a:	49                   	dec    %ecx
43e93b:	8d 44 90 f4          	lea    -0xc(%eax,%edx,4),%eax
43e93f:	78 0f                	js     0x43e950
43e941:	41                   	inc    %ecx
43e942:	8b 56 10             	mov    0x10(%esi),%edx
43e945:	89 10                	mov    %edx,(%eax)
43e947:	89 46 10             	mov    %eax,0x10(%esi)
43e94a:	83 e8 0c             	sub    $0xc,%eax
43e94d:	49                   	dec    %ecx
43e94e:	75 f2                	jne    0x43e942
43e950:	8b 46 10             	mov    0x10(%esi),%eax
43e953:	8b 08                	mov    (%eax),%ecx
43e955:	ff 46 0c             	incl   0xc(%esi)
43e958:	89 4e 10             	mov    %ecx,0x10(%esi)
43e95b:	83 60 04 00          	andl   $0x0,0x4(%eax)
43e95f:	83 60 08 00          	andl   $0x0,0x8(%eax)
43e963:	5e                   	pop    %esi
43e964:	c3                   	ret
43e965:	55                   	push   %ebp
43e966:	8b ec                	mov    %esp,%ebp
43e968:	51                   	push   %ecx
43e969:	56                   	push   %esi
43e96a:	57                   	push   %edi
43e96b:	8b 7d 08             	mov    0x8(%ebp),%edi
43e96e:	8d 45 fc             	lea    -0x4(%ebp),%eax
43e971:	50                   	push   %eax
43e972:	8d 45 08             	lea    0x8(%ebp),%eax
43e975:	50                   	push   %eax
43e976:	57                   	push   %edi
43e977:	8b f1                	mov    %ecx,%esi
43e979:	e8 10 fe ff ff       	call   0x43e78e
43e97e:	85 c0                	test   %eax,%eax
43e980:	75 2f                	jne    0x43e9b1
43e982:	39 46 04             	cmp    %eax,0x4(%esi)
43e985:	75 0c                	jne    0x43e993
43e987:	6a 01                	push   $0x1
43e989:	ff 76 08             	push   0x8(%esi)
43e98c:	8b ce                	mov    %esi,%ecx
43e98e:	e8 6b fd ff ff       	call   0x43e6fe
43e993:	8b ce                	mov    %esi,%ecx
43e995:	e8 80 ff ff ff       	call   0x43e91a
43e99a:	8b 4d 08             	mov    0x8(%ebp),%ecx
43e99d:	89 78 04             	mov    %edi,0x4(%eax)
43e9a0:	8b 56 04             	mov    0x4(%esi),%edx
43e9a3:	c1 e1 02             	shl    $0x2,%ecx
43e9a6:	8b 14 11             	mov    (%ecx,%edx,1),%edx
43e9a9:	89 10                	mov    %edx,(%eax)
43e9ab:	8b 56 04             	mov    0x4(%esi),%edx
43e9ae:	89 04 11             	mov    %eax,(%ecx,%edx,1)
43e9b1:	5f                   	pop    %edi
43e9b2:	83 c0 08             	add    $0x8,%eax
43e9b5:	5e                   	pop    %esi
43e9b6:	c9                   	leave
43e9b7:	c2 04 00             	ret    $0x4
43e9ba:	56                   	push   %esi
43e9bb:	8b f1                	mov    %ecx,%esi
43e9bd:	e8 4d ff ff ff       	call   0x43e90f
43e9c2:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
43e9c7:	74 07                	je     0x43e9d0
43e9c9:	56                   	push   %esi
43e9ca:	e8 b1 16 00 00       	call   0x440080
43e9cf:	59                   	pop    %ecx
43e9d0:	8b c6                	mov    %esi,%eax
43e9d2:	5e                   	pop    %esi
43e9d3:	c2 04 00             	ret    $0x4
43e9d6:	8b 54 24 04          	mov    0x4(%esp),%edx
43e9da:	33 c0                	xor    %eax,%eax
43e9dc:	85 d2                	test   %edx,%edx
43e9de:	75 0e                	jne    0x43e9ee
43e9e0:	e8 66 6a ff ff       	call   0x43544b
43e9e5:	6b c0 21             	imul   $0x21,%eax,%eax
43e9e8:	0f be c9             	movsbl %cl,%ecx
43e9eb:	03 c1                	add    %ecx,%eax
43e9ed:	42                   	inc    %edx
43e9ee:	8a 0a                	mov    (%edx),%cl
43e9f0:	84 c9                	test   %cl,%cl
43e9f2:	75 f1                	jne    0x43e9e5
43e9f4:	c2 04 00             	ret    $0x4
43e9f7:	53                   	push   %ebx
43e9f8:	8b 5c 24 08          	mov    0x8(%esp),%ebx
43e9fc:	85 db                	test   %ebx,%ebx
43e9fe:	56                   	push   %esi
43e9ff:	8b f1                	mov    %ecx,%esi
43ea01:	75 03                	jne    0x43ea06
43ea03:	6a 11                	push   $0x11
43ea05:	5b                   	pop    %ebx
43ea06:	8b 46 04             	mov    0x4(%esi),%eax
43ea09:	85 c0                	test   %eax,%eax
43ea0b:	74 0b                	je     0x43ea18
43ea0d:	50                   	push   %eax
43ea0e:	e8 6d 16 00 00       	call   0x440080
43ea13:	83 66 04 00          	andl   $0x0,0x4(%esi)
43ea17:	59                   	pop    %ecx
43ea18:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
43ea1d:	74 1c                	je     0x43ea3b
43ea1f:	57                   	push   %edi
43ea20:	8b fb                	mov    %ebx,%edi
43ea22:	c1 e7 02             	shl    $0x2,%edi
43ea25:	57                   	push   %edi
43ea26:	e8 2a 16 00 00       	call   0x440055
43ea2b:	57                   	push   %edi
43ea2c:	6a 00                	push   $0x0
43ea2e:	50                   	push   %eax
43ea2f:	89 46 04             	mov    %eax,0x4(%esi)
43ea32:	e8 09 98 fd ff       	call   0x418240
43ea37:	83 c4 10             	add    $0x10,%esp
43ea3a:	5f                   	pop    %edi
43ea3b:	89 5e 08             	mov    %ebx,0x8(%esi)
43ea3e:	5e                   	pop    %esi
43ea3f:	5b                   	pop    %ebx
43ea40:	c2 08 00             	ret    $0x8
43ea43:	8b c1                	mov    %ecx,%eax
43ea45:	8b 4c 24 04          	mov    0x4(%esp),%ecx
43ea49:	33 d2                	xor    %edx,%edx
43ea4b:	3b ca                	cmp    %edx,%ecx
43ea4d:	c7 00 30 fe 48 00    	movl   $0x48fe30,(%eax)
43ea53:	7f 03                	jg     0x43ea58
43ea55:	6a 0a                	push   $0xa
43ea57:	59                   	pop    %ecx
43ea58:	89 50 04             	mov    %edx,0x4(%eax)
43ea5b:	c7 40 08 11 00 00 00 	movl   $0x11,0x8(%eax)
43ea62:	89 50 0c             	mov    %edx,0xc(%eax)
43ea65:	89 50 10             	mov    %edx,0x10(%eax)
43ea68:	89 50 14             	mov    %edx,0x14(%eax)
43ea6b:	89 48 18             	mov    %ecx,0x18(%eax)
43ea6e:	c2 04 00             	ret    $0x4
43ea71:	56                   	push   %esi
43ea72:	8b f1                	mov    %ecx,%esi
43ea74:	e8 e8 28 fc ff       	call   0x401361
43ea79:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
43ea7e:	74 07                	je     0x43ea87
43ea80:	56                   	push   %esi
43ea81:	e8 fa 15 00 00       	call   0x440080
43ea86:	59                   	pop    %ecx
43ea87:	8b c6                	mov    %esi,%eax
43ea89:	5e                   	pop    %esi
43ea8a:	c2 04 00             	ret    $0x4
43ea8d:	56                   	push   %esi
43ea8e:	8b f1                	mov    %ecx,%esi
43ea90:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
43ea94:	57                   	push   %edi
43ea95:	75 2f                	jne    0x43eac6
43ea97:	6a 10                	push   $0x10
43ea99:	ff 76 18             	push   0x18(%esi)
43ea9c:	8d 46 14             	lea    0x14(%esi),%eax
43ea9f:	50                   	push   %eax
43eaa0:	e8 c3 dd ff ff       	call   0x43c868
43eaa5:	8b 4e 18             	mov    0x18(%esi),%ecx
43eaa8:	8b d1                	mov    %ecx,%edx
43eaaa:	83 c0 04             	add    $0x4,%eax
43eaad:	c1 e2 04             	shl    $0x4,%edx
43eab0:	49                   	dec    %ecx
43eab1:	8d 44 10 f0          	lea    -0x10(%eax,%edx,1),%eax
43eab5:	78 0f                	js     0x43eac6
43eab7:	41                   	inc    %ecx
43eab8:	8b 56 10             	mov    0x10(%esi),%edx
43eabb:	89 10                	mov    %edx,(%eax)
43eabd:	89 46 10             	mov    %eax,0x10(%esi)
43eac0:	83 e8 10             	sub    $0x10,%eax
43eac3:	49                   	dec    %ecx
43eac4:	75 f2                	jne    0x43eab8
43eac6:	8b 7e 10             	mov    0x10(%esi),%edi
43eac9:	8b 07                	mov    (%edi),%eax
43eacb:	ff 46 0c             	incl   0xc(%esi)
43eace:	8d 4f 08             	lea    0x8(%edi),%ecx
43ead1:	85 c9                	test   %ecx,%ecx
43ead3:	89 46 10             	mov    %eax,0x10(%esi)
43ead6:	74 05                	je     0x43eadd
43ead8:	e8 d7 25 fc ff       	call   0x4010b4
43eadd:	83 67 0c 00          	andl   $0x0,0xc(%edi)
43eae1:	8b c7                	mov    %edi,%eax