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
43eae3:	5f                   	pop    %edi
43eae4:	5e                   	pop    %esi
43eae5:	c3                   	ret
43eae6:	56                   	push   %esi
43eae7:	57                   	push   %edi
43eae8:	ff 74 24 0c          	push   0xc(%esp)
43eaec:	8b f1                	mov    %ecx,%esi
43eaee:	e8 e3 fe ff ff       	call   0x43e9d6
43eaf3:	8b 7c 24 14          	mov    0x14(%esp),%edi
43eaf7:	89 07                	mov    %eax,(%edi)
43eaf9:	33 d2                	xor    %edx,%edx
43eafb:	f7 76 08             	divl   0x8(%esi)
43eafe:	8b 44 24 10          	mov    0x10(%esp),%eax
43eb02:	89 10                	mov    %edx,(%eax)
43eb04:	8b 76 04             	mov    0x4(%esi),%esi
43eb07:	85 f6                	test   %esi,%esi
43eb09:	74 25                	je     0x43eb30
43eb0b:	8b 34 96             	mov    (%esi,%edx,4),%esi
43eb0e:	eb 1c                	jmp    0x43eb2c
43eb10:	8b 46 04             	mov    0x4(%esi),%eax
43eb13:	3b 07                	cmp    (%edi),%eax
43eb15:	75 13                	jne    0x43eb2a
43eb17:	ff 74 24 0c          	push   0xc(%esp)
43eb1b:	8d 46 08             	lea    0x8(%esi),%eax
43eb1e:	50                   	push   %eax
43eb1f:	e8 14 e2 02 00       	call   0x46cd38
43eb24:	84 c0                	test   %al,%al
43eb26:	59                   	pop    %ecx
43eb27:	59                   	pop    %ecx
43eb28:	75 0d                	jne    0x43eb37
43eb2a:	8b 36                	mov    (%esi),%esi
43eb2c:	85 f6                	test   %esi,%esi
43eb2e:	75 e0                	jne    0x43eb10
43eb30:	33 c0                	xor    %eax,%eax
43eb32:	5f                   	pop    %edi
43eb33:	5e                   	pop    %esi
43eb34:	c2 0c 00             	ret    $0xc
43eb37:	8b c6                	mov    %esi,%eax
43eb39:	eb f7                	jmp    0x43eb32
43eb3b:	55                   	push   %ebp
43eb3c:	8b ec                	mov    %esp,%ebp
43eb3e:	51                   	push   %ecx
43eb3f:	8d 45 08             	lea    0x8(%ebp),%eax
43eb42:	50                   	push   %eax
43eb43:	8d 45 fc             	lea    -0x4(%ebp),%eax
43eb46:	50                   	push   %eax
43eb47:	ff 75 08             	push   0x8(%ebp)
43eb4a:	e8 97 ff ff ff       	call   0x43eae6
43eb4f:	85 c0                	test   %eax,%eax
43eb51:	74 0b                	je     0x43eb5e
43eb53:	8b 40 0c             	mov    0xc(%eax),%eax
43eb56:	8b 4d 0c             	mov    0xc(%ebp),%ecx
43eb59:	89 01                	mov    %eax,(%ecx)
43eb5b:	33 c0                	xor    %eax,%eax
43eb5d:	40                   	inc    %eax
43eb5e:	c9                   	leave
43eb5f:	c2 08 00             	ret    $0x8
43eb62:	55                   	push   %ebp
43eb63:	8b ec                	mov    %esp,%ebp
43eb65:	51                   	push   %ecx
43eb66:	8d 45 08             	lea    0x8(%ebp),%eax
43eb69:	50                   	push   %eax
43eb6a:	8d 45 fc             	lea    -0x4(%ebp),%eax
43eb6d:	50                   	push   %eax
43eb6e:	ff 75 08             	push   0x8(%ebp)
43eb71:	e8 70 ff ff ff       	call   0x43eae6
43eb76:	85 c0                	test   %eax,%eax
43eb78:	74 0b                	je     0x43eb85
43eb7a:	8b 40 08             	mov    0x8(%eax),%eax
43eb7d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
43eb80:	89 01                	mov    %eax,(%ecx)
43eb82:	33 c0                	xor    %eax,%eax
43eb84:	40                   	inc    %eax
43eb85:	c9                   	leave
43eb86:	c2 08 00             	ret    $0x8
43eb89:	e9 d3 27 fc ff       	jmp    0x401361
43eb8e:	55                   	push   %ebp
43eb8f:	56                   	push   %esi
43eb90:	8b f1                	mov    %ecx,%esi
43eb92:	33 ed                	xor    %ebp,%ebp
43eb94:	39 6e 04             	cmp    %ebp,0x4(%esi)
43eb97:	74 33                	je     0x43ebcc
43eb99:	53                   	push   %ebx
43eb9a:	33 db                	xor    %ebx,%ebx
43eb9c:	39 6e 08             	cmp    %ebp,0x8(%esi)
43eb9f:	76 1e                	jbe    0x43ebbf
43eba1:	57                   	push   %edi
43eba2:	8b 46 04             	mov    0x4(%esi),%eax
43eba5:	8b 3c 98             	mov    (%eax,%ebx,4),%edi
43eba8:	eb 0a                	jmp    0x43ebb4
43ebaa:	8d 4f 08             	lea    0x8(%edi),%ecx
43ebad:	e8 af 27 fc ff       	call   0x401361
43ebb2:	8b 3f                	mov    (%edi),%edi
43ebb4:	3b fd                	cmp    %ebp,%edi
43ebb6:	75 f2                	jne    0x43ebaa
43ebb8:	43                   	inc    %ebx
43ebb9:	3b 5e 08             	cmp    0x8(%esi),%ebx
43ebbc:	72 e4                	jb     0x43eba2
43ebbe:	5f                   	pop    %edi
43ebbf:	ff 76 04             	push   0x4(%esi)
43ebc2:	e8 b9 14 00 00       	call   0x440080
43ebc7:	59                   	pop    %ecx
43ebc8:	89 6e 04             	mov    %ebp,0x4(%esi)
43ebcb:	5b                   	pop    %ebx
43ebcc:	8b 4e 14             	mov    0x14(%esi),%ecx
43ebcf:	89 6e 0c             	mov    %ebp,0xc(%esi)
43ebd2:	89 6e 10             	mov    %ebp,0x10(%esi)
43ebd5:	e8 bf dc ff ff       	call   0x43c899
43ebda:	89 6e 14             	mov    %ebp,0x14(%esi)
43ebdd:	5e                   	pop    %esi
43ebde:	5d                   	pop    %ebp
43ebdf:	c3                   	ret
43ebe0:	c7 01 30 fe 48 00    	movl   $0x48fe30,(%ecx)
43ebe6:	e9 a3 ff ff ff       	jmp    0x43eb8e
43ebeb:	56                   	push   %esi
43ebec:	57                   	push   %edi
43ebed:	8b 7c 24 0c          	mov    0xc(%esp),%edi
43ebf1:	8b f1                	mov    %ecx,%esi
43ebf3:	8d 4f 08             	lea    0x8(%edi),%ecx
43ebf6:	e8 66 27 fc ff       	call   0x401361
43ebfb:	8b 46 10             	mov    0x10(%esi),%eax
43ebfe:	89 07                	mov    %eax,(%edi)
43ec00:	ff 4e 0c             	decl   0xc(%esi)
43ec03:	89 7e 10             	mov    %edi,0x10(%esi)
43ec06:	75 07                	jne    0x43ec0f
43ec08:	8b ce                	mov    %esi,%ecx
43ec0a:	e8 7f ff ff ff       	call   0x43eb8e
43ec0f:	5f                   	pop    %edi
43ec10:	5e                   	pop    %esi
43ec11:	c2 04 00             	ret    $0x4
43ec14:	57                   	push   %edi
43ec15:	8b f9                	mov    %ecx,%edi
43ec17:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
43ec1b:	75 04                	jne    0x43ec21
43ec1d:	33 c0                	xor    %eax,%eax
43ec1f:	eb 44                	jmp    0x43ec65
43ec21:	53                   	push   %ebx
43ec22:	55                   	push   %ebp
43ec23:	56                   	push   %esi
43ec24:	ff 74 24 14          	push   0x14(%esp)
43ec28:	8b cf                	mov    %edi,%ecx
43ec2a:	e8 a7 fd ff ff       	call   0x43e9d6
43ec2f:	8b e8                	mov    %eax,%ebp
43ec31:	33 d2                	xor    %edx,%edx
43ec33:	f7 77 08             	divl   0x8(%edi)
43ec36:	8b 47 04             	mov    0x4(%edi),%eax
43ec39:	8d 1c 90             	lea    (%eax,%edx,4),%ebx
43ec3c:	8b 33                	mov    (%ebx),%esi
43ec3e:	eb 1c                	jmp    0x43ec5c
43ec40:	39 6e 04             	cmp    %ebp,0x4(%esi)
43ec43:	75 13                	jne    0x43ec58
43ec45:	ff 74 24 14          	push   0x14(%esp)
43ec49:	8d 46 08             	lea    0x8(%esi),%eax
43ec4c:	50                   	push   %eax
43ec4d:	e8 e6 e0 02 00       	call   0x46cd38
43ec52:	84 c0                	test   %al,%al
43ec54:	59                   	pop    %ecx
43ec55:	59                   	pop    %ecx
43ec56:	75 11                	jne    0x43ec69
43ec58:	8b de                	mov    %esi,%ebx
43ec5a:	8b 36                	mov    (%esi),%esi
43ec5c:	85 f6                	test   %esi,%esi
43ec5e:	75 e0                	jne    0x43ec40
43ec60:	33 c0                	xor    %eax,%eax
43ec62:	5e                   	pop    %esi
43ec63:	5d                   	pop    %ebp
43ec64:	5b                   	pop    %ebx
43ec65:	5f                   	pop    %edi
43ec66:	c2 04 00             	ret    $0x4
43ec69:	8b 06                	mov    (%esi),%eax
43ec6b:	56                   	push   %esi
43ec6c:	8b cf                	mov    %edi,%ecx
43ec6e:	89 03                	mov    %eax,(%ebx)
43ec70:	e8 76 ff ff ff       	call   0x43ebeb
43ec75:	33 c0                	xor    %eax,%eax