43c969:	e8 dd 8a ff ff       	call   0x43544b
43c96e:	ff 75 08             	push   0x8(%ebp)
43c971:	e8 df 36 00 00       	call   0x440055
43c976:	ff 76 08             	push   0x8(%esi)
43c979:	8b d8                	mov    %eax,%ebx
43c97b:	ff 76 04             	push   0x4(%esi)
43c97e:	53                   	push   %ebx
43c97f:	e8 ec ae fd ff       	call   0x417870
43c984:	8b 46 08             	mov    0x8(%esi),%eax
43c987:	8b cf                	mov    %edi,%ecx
43c989:	2b c8                	sub    %eax,%ecx
43c98b:	51                   	push   %ecx
43c98c:	03 c3                	add    %ebx,%eax
43c98e:	6a 00                	push   $0x0
43c990:	50                   	push   %eax
43c991:	e8 aa b8 fd ff       	call   0x418240
43c996:	ff 76 04             	push   0x4(%esi)
43c999:	e8 e2 36 00 00       	call   0x440080
43c99e:	8b 45 08             	mov    0x8(%ebp),%eax
43c9a1:	83 c4 20             	add    $0x20,%esp
43c9a4:	89 7e 08             	mov    %edi,0x8(%esi)
43c9a7:	89 46 0c             	mov    %eax,0xc(%esi)
43c9aa:	89 5e 04             	mov    %ebx,0x4(%esi)
43c9ad:	5f                   	pop    %edi
43c9ae:	5e                   	pop    %esi
43c9af:	5b                   	pop    %ebx
43c9b0:	5d                   	pop    %ebp
43c9b1:	c2 08 00             	ret    $0x8
43c9b4:	56                   	push   %esi
43c9b5:	8b 74 24 08          	mov    0x8(%esp),%esi
43c9b9:	57                   	push   %edi
43c9ba:	8b f9                	mov    %ecx,%edi
43c9bc:	3b fe                	cmp    %esi,%edi
43c9be:	75 05                	jne    0x43c9c5
43c9c0:	e8 86 8a ff ff       	call   0x43544b
43c9c5:	8b 46 08             	mov    0x8(%esi),%eax
43c9c8:	53                   	push   %ebx
43c9c9:	8b 5f 08             	mov    0x8(%edi),%ebx
43c9cc:	6a ff                	push   $0xffffffff
43c9ce:	03 c3                	add    %ebx,%eax
43c9d0:	50                   	push   %eax
43c9d1:	8b cf                	mov    %edi,%ecx
43c9d3:	e8 d7 fe ff ff       	call   0x43c8af
43c9d8:	ff 76 08             	push   0x8(%esi)
43c9db:	8b 47 04             	mov    0x4(%edi),%eax
43c9de:	ff 76 04             	push   0x4(%esi)
43c9e1:	03 c3                	add    %ebx,%eax
43c9e3:	50                   	push   %eax
43c9e4:	e8 87 ae fd ff       	call   0x417870
43c9e9:	83 c4 0c             	add    $0xc,%esp
43c9ec:	8b c3                	mov    %ebx,%eax
43c9ee:	5b                   	pop    %ebx
43c9ef:	5f                   	pop    %edi
43c9f0:	5e                   	pop    %esi
43c9f1:	c2 04 00             	ret    $0x4
43c9f4:	56                   	push   %esi
43c9f5:	8b 74 24 08          	mov    0x8(%esp),%esi
43c9f9:	57                   	push   %edi
43c9fa:	8b f9                	mov    %ecx,%edi
43c9fc:	3b fe                	cmp    %esi,%edi
43c9fe:	74 1b                	je     0x43ca1b
43ca00:	6a ff                	push   $0xffffffff
43ca02:	ff 76 08             	push   0x8(%esi)
43ca05:	e8 a5 fe ff ff       	call   0x43c8af
43ca0a:	ff 76 08             	push   0x8(%esi)
43ca0d:	ff 76 04             	push   0x4(%esi)
43ca10:	ff 77 04             	push   0x4(%edi)
43ca13:	e8 58 ae fd ff       	call   0x417870
43ca18:	83 c4 0c             	add    $0xc,%esp
43ca1b:	5f                   	pop    %edi
43ca1c:	5e                   	pop    %esi
43ca1d:	c2 04 00             	ret    $0x4
43ca20:	56                   	push   %esi
43ca21:	8b f1                	mov    %ecx,%esi
43ca23:	8b 46 08             	mov    0x8(%esi),%eax
43ca26:	3b 46 0c             	cmp    0xc(%esi),%eax
43ca29:	74 31                	je     0x43ca5c
43ca2b:	57                   	push   %edi
43ca2c:	33 ff                	xor    %edi,%edi
43ca2e:	85 c0                	test   %eax,%eax
43ca30:	74 17                	je     0x43ca49
43ca32:	50                   	push   %eax
43ca33:	e8 1d 36 00 00       	call   0x440055
43ca38:	ff 76 08             	push   0x8(%esi)
43ca3b:	8b f8                	mov    %eax,%edi
43ca3d:	ff 76 04             	push   0x4(%esi)
43ca40:	57                   	push   %edi
43ca41:	e8 2a ae fd ff       	call   0x417870
43ca46:	83 c4 10             	add    $0x10,%esp
43ca49:	ff 76 04             	push   0x4(%esi)
43ca4c:	e8 2f 36 00 00       	call   0x440080
43ca51:	8b 46 08             	mov    0x8(%esi),%eax
43ca54:	59                   	pop    %ecx
43ca55:	89 7e 04             	mov    %edi,0x4(%esi)
43ca58:	89 46 0c             	mov    %eax,0xc(%esi)
43ca5b:	5f                   	pop    %edi
43ca5c:	5e                   	pop    %esi
43ca5d:	c3                   	ret
43ca5e:	56                   	push   %esi
43ca5f:	8b 74 24 08          	mov    0x8(%esp),%esi
43ca63:	85 f6                	test   %esi,%esi
43ca65:	57                   	push   %edi
43ca66:	8b f9                	mov    %ecx,%edi
43ca68:	7d 05                	jge    0x43ca6f
43ca6a:	e8 dc 89 ff ff       	call   0x43544b
43ca6f:	3b 77 08             	cmp    0x8(%edi),%esi
43ca72:	7c 0d                	jl     0x43ca81
43ca74:	6a ff                	push   $0xffffffff
43ca76:	8d 46 01             	lea    0x1(%esi),%eax
43ca79:	50                   	push   %eax
43ca7a:	8b cf                	mov    %edi,%ecx
43ca7c:	e8 2e fe ff ff       	call   0x43c8af
43ca81:	8b 47 04             	mov    0x4(%edi),%eax
43ca84:	8a 4c 24 10          	mov    0x10(%esp),%cl
43ca88:	5f                   	pop    %edi
43ca89:	88 0c 06             	mov    %cl,(%esi,%eax,1)
43ca8c:	5e                   	pop    %esi
43ca8d:	c2 08 00             	ret    $0x8
43ca90:	55                   	push   %ebp
43ca91:	8b ec                	mov    %esp,%ebp
43ca93:	53                   	push   %ebx
43ca94:	8b 5d 08             	mov    0x8(%ebp),%ebx
43ca97:	85 db                	test   %ebx,%ebx
43ca99:	56                   	push   %esi
43ca9a:	8b f1                	mov    %ecx,%esi
43ca9c:	7c 65                	jl     0x43cb03
43ca9e:	8b 45 10             	mov    0x10(%ebp),%eax
43caa1:	85 c0                	test   %eax,%eax
43caa3:	7e 5e                	jle    0x43cb03
43caa5:	3b 5e 08             	cmp    0x8(%esi),%ebx
43caa8:	7c 0c                	jl     0x43cab6
43caaa:	6a ff                	push   $0xffffffff
43caac:	03 c3                	add    %ebx,%eax
43caae:	50                   	push   %eax
43caaf:	e8 fb fd ff ff       	call   0x43c8af
43cab4:	eb 37                	jmp    0x43caed
43cab6:	8b 45 10             	mov    0x10(%ebp),%eax
43cab9:	57                   	push   %edi
43caba:	8b 7e 08             	mov    0x8(%esi),%edi
43cabd:	6a ff                	push   $0xffffffff
43cabf:	03 c7                	add    %edi,%eax
43cac1:	50                   	push   %eax
43cac2:	e8 e8 fd ff ff       	call   0x43c8af
43cac7:	8b 46 04             	mov    0x4(%esi),%eax
43caca:	2b fb                	sub    %ebx,%edi
43cacc:	03 c3                	add    %ebx,%eax
43cace:	57                   	push   %edi
43cacf:	8b 7d 10             	mov    0x10(%ebp),%edi
43cad2:	50                   	push   %eax
43cad3:	03 c7                	add    %edi,%eax
43cad5:	50                   	push   %eax
43cad6:	e8 45 a5 fd ff       	call   0x417020
43cadb:	8b 46 04             	mov    0x4(%esi),%eax
43cade:	57                   	push   %edi
43cadf:	03 c3                	add    %ebx,%eax
43cae1:	6a 00                	push   $0x0
43cae3:	50                   	push   %eax
43cae4:	e8 57 b7 fd ff       	call   0x418240
43cae9:	83 c4 18             	add    $0x18,%esp
43caec:	5f                   	pop    %edi
43caed:	8b 45 10             	mov    0x10(%ebp),%eax
43caf0:	8b 4e 04             	mov    0x4(%esi),%ecx
43caf3:	8a 55 0c             	mov    0xc(%ebp),%dl
43caf6:	88 14 0b             	mov    %dl,(%ebx,%ecx,1)
43caf9:	43                   	inc    %ebx
43cafa:	48                   	dec    %eax
43cafb:	75 f3                	jne    0x43caf0
43cafd:	5e                   	pop    %esi
43cafe:	5b                   	pop    %ebx
43caff:	5d                   	pop    %ebp
43cb00:	c2 0c 00             	ret    $0xc
43cb03:	e8 43 89 ff ff       	call   0x43544b
43cb08:	cc                   	int3
43cb09:	56                   	push   %esi
43cb0a:	57                   	push   %edi
43cb0b:	8b f9                	mov    %ecx,%edi
43cb0d:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
43cb11:	85 c9                	test   %ecx,%ecx
43cb13:	7c 33                	jl     0x43cb48
43cb15:	8b 74 24 10          	mov    0x10(%esp),%esi
43cb19:	85 f6                	test   %esi,%esi
43cb1b:	7c 2b                	jl     0x43cb48
43cb1d:	8b 47 08             	mov    0x8(%edi),%eax
43cb20:	8d 14 31             	lea    (%ecx,%esi,1),%edx
43cb23:	3b d0                	cmp    %eax,%edx
43cb25:	7f 21                	jg     0x43cb48
43cb27:	2b c1                	sub    %ecx,%eax
43cb29:	2b c6                	sub    %esi,%eax
43cb2b:	74 13                	je     0x43cb40
43cb2d:	8b 57 04             	mov    0x4(%edi),%edx
43cb30:	03 ca                	add    %edx,%ecx
43cb32:	50                   	push   %eax
43cb33:	8d 04 31             	lea    (%ecx,%esi,1),%eax
43cb36:	50                   	push   %eax
43cb37:	51                   	push   %ecx
43cb38:	e8 e3 a4 fd ff       	call   0x417020
43cb3d:	83 c4 0c             	add    $0xc,%esp
43cb40:	29 77 08             	sub    %esi,0x8(%edi)
43cb43:	5f                   	pop    %edi
43cb44:	5e                   	pop    %esi
43cb45:	c2 08 00             	ret    $0x8
43cb48:	e8 fe 88 ff ff       	call   0x43544b
43cb4d:	cc                   	int3
43cb4e:	8b c1                	mov    %ecx,%eax
43cb50:	33 c9                	xor    %ecx,%ecx
43cb52:	c7 00 cc c9 48 00    	movl   $0x48c9cc,(%eax)
43cb58:	89 48 04             	mov    %ecx,0x4(%eax)
43cb5b:	89 48 10             	mov    %ecx,0x10(%eax)
43cb5e:	89 48 0c             	mov    %ecx,0xc(%eax)
43cb61:	89 48 08             	mov    %ecx,0x8(%eax)
43cb64:	c3                   	ret
43cb65:	ff 71 04             	push   0x4(%ecx)
43cb68:	c7 01 cc c9 48 00    	movl   $0x48c9cc,(%ecx)
43cb6e:	e8 0d 35 00 00       	call   0x440080
43cb73:	59                   	pop    %ecx
43cb74:	c3                   	ret
43cb75:	55                   	push   %ebp
43cb76:	8b ec                	mov    %esp,%ebp
43cb78:	51                   	push   %ecx
43cb79:	53                   	push   %ebx
43cb7a:	56                   	push   %esi
43cb7b:	8b 75 0c             	mov    0xc(%ebp),%esi
43cb7e:	57                   	push   %edi
43cb7f:	33 ff                	xor    %edi,%edi
43cb81:	3b f7                	cmp    %edi,%esi
43cb83:	89 4d fc             	mov    %ecx,-0x4(%ebp)
43cb86:	74 48                	je     0x43cbd0
43cb88:	8b 5d 08             	mov    0x8(%ebp),%ebx
43cb8b:	3b df                	cmp    %edi,%ebx
43cb8d:	7c 41                	jl     0x43cbd0
43cb8f:	39 7e 08             	cmp    %edi,0x8(%esi)
43cb92:	7e 35                	jle    0x43cbc9
43cb94:	8b 46 08             	mov    0x8(%esi),%eax
43cb97:	3b c7                	cmp    %edi,%eax
43cb99:	7e 35                	jle    0x43cbd0
43cb9b:	50                   	push   %eax
43cb9c:	8b 46 04             	mov    0x4(%esi),%eax
43cb9f:	0f b6 00             	movzbl (%eax),%eax
43cba2:	50                   	push   %eax
43cba3:	53                   	push   %ebx
43cba4:	e8 e7 fe ff ff       	call   0x43ca90
43cba9:	39 7e 08             	cmp    %edi,0x8(%esi)
43cbac:	7e 1b                	jle    0x43cbc9
43cbae:	57                   	push   %edi
43cbaf:	8b ce                	mov    %esi,%ecx
43cbb1:	e8 08 82 fd ff       	call   0x414dbe
43cbb6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
43cbb9:	50                   	push   %eax
43cbba:	8d 04 1f             	lea    (%edi,%ebx,1),%eax
43cbbd:	50                   	push   %eax
43cbbe:	e8 17 82 fd ff       	call   0x414dda
43cbc3:	47                   	inc    %edi
43cbc4:	3b 7e 08             	cmp    0x8(%esi),%edi
43cbc7:	7c e5                	jl     0x43cbae
43cbc9:	5f                   	pop    %edi
43cbca:	5e                   	pop    %esi
43cbcb:	5b                   	pop    %ebx
43cbcc:	c9                   	leave
43cbcd:	c2 08 00             	ret    $0x8
43cbd0:	e8 76 88 ff ff       	call   0x43544b
43cbd5:	cc                   	int3
43cbd6:	53                   	push   %ebx
43cbd7:	55                   	push   %ebp
43cbd8:	8b 6c 24 0c          	mov    0xc(%esp),%ebp
43cbdc:	8b 45 18             	mov    0x18(%ebp),%eax
43cbdf:	56                   	push   %esi
43cbe0:	f7 d0                	not    %eax
43cbe2:	a8 01                	test   $0x1,%al
43cbe4:	8b f1                	mov    %ecx,%esi
43cbe6:	57                   	push   %edi
43cbe7:	8b cd                	mov    %ebp,%ecx
43cbe9:	74 2e                	je     0x43cc19
43cbeb:	ff 76 08             	push   0x8(%esi)
43cbee:	e8 ea 40 01 00       	call   0x450cdd
43cbf3:	8b 7e 08             	mov    0x8(%esi),%edi
43cbf6:	85 ff                	test   %edi,%edi
43cbf8:	8b 76 04             	mov    0x4(%esi),%esi
43cbfb:	76 4f                	jbe    0x43cc4c
43cbfd:	bb ff ff ff 7f       	mov    $0x7fffffff,%ebx
43cc02:	3b fb                	cmp    %ebx,%edi
43cc04:	73 02                	jae    0x43cc08
43cc06:	8b df                	mov    %edi,%ebx
43cc08:	53                   	push   %ebx
43cc09:	56                   	push   %esi
43cc0a:	8b cd                	mov    %ebp,%ecx
43cc0c:	e8 1b 40 01 00       	call   0x450c2c
43cc11:	03 f3                	add    %ebx,%esi
43cc13:	2b fb                	sub    %ebx,%edi
43cc15:	75 e6                	jne    0x43cbfd
43cc17:	eb 33                	jmp    0x43cc4c
43cc19:	e8 eb 40 01 00       	call   0x450d09
43cc1e:	6a ff                	push   $0xffffffff
43cc20:	50                   	push   %eax
43cc21:	8b ce                	mov    %esi,%ecx
43cc23:	e8 87 fc ff ff       	call   0x43c8af
43cc28:	8b 7e 08             	mov    0x8(%esi),%edi
43cc2b:	85 ff                	test   %edi,%edi
43cc2d:	8b 76 04             	mov    0x4(%esi),%esi
43cc30:	76 1a                	jbe    0x43cc4c
43cc32:	bb ff ff ff 7f       	mov    $0x7fffffff,%ebx
43cc37:	3b fb                	cmp    %ebx,%edi
43cc39:	73 02                	jae    0x43cc3d
43cc3b:	8b df                	mov    %edi,%ebx
43cc3d:	53                   	push   %ebx
43cc3e:	56                   	push   %esi
43cc3f:	8b cd                	mov    %ebp,%ecx
43cc41:	e8 e3 3a 01 00       	call   0x450729
43cc46:	03 f3                	add    %ebx,%esi
43cc48:	2b fb                	sub    %ebx,%edi
43cc4a:	75 e6                	jne    0x43cc32
43cc4c:	5f                   	pop    %edi
43cc4d:	5e                   	pop    %esi
43cc4e:	5d                   	pop    %ebp
43cc4f:	5b                   	pop    %ebx
43cc50:	c2 04 00             	ret    $0x4
43cc53:	56                   	push   %esi
43cc54:	8b f1                	mov    %ecx,%esi
43cc56:	e8 0a ff ff ff       	call   0x43cb65
43cc5b:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
43cc60:	74 07                	je     0x43cc69
43cc62:	56                   	push   %esi
43cc63:	e8 18 34 00 00       	call   0x440080
43cc68:	59                   	pop    %ecx
43cc69:	8b c6                	mov    %esi,%eax
43cc6b:	5e                   	pop    %esi
43cc6c:	c2 04 00             	ret    $0x4
43cc6f:	55                   	push   %ebp
43cc70:	8b ec                	mov    %esp,%ebp
43cc72:	53                   	push   %ebx
43cc73:	56                   	push   %esi
43cc74:	57                   	push   %edi
43cc75:	8b 7d 08             	mov    0x8(%ebp),%edi
43cc78:	33 db                	xor    %ebx,%ebx
43cc7a:	3b fb                	cmp    %ebx,%edi
43cc7c:	8b f1                	mov    %ecx,%esi
43cc7e:	0f 8c b1 00 00 00    	jl     0x43cd35
43cc84:	8b 45 0c             	mov    0xc(%ebp),%eax
43cc87:	3b c3                	cmp    %ebx,%eax
43cc89:	7c 03                	jl     0x43cc8e
43cc8b:	89 46 10             	mov    %eax,0x10(%esi)
43cc8e:	3b fb                	cmp    %ebx,%edi
43cc90:	75 14                	jne    0x43cca6
43cc92:	ff 76 04             	push   0x4(%esi)
43cc95:	e8 e6 33 00 00       	call   0x440080
43cc9a:	59                   	pop    %ecx
43cc9b:	89 5e 0c             	mov    %ebx,0xc(%esi)
43cc9e:	89 5e 08             	mov    %ebx,0x8(%esi)
43cca1:	e9 d9 00 00 00       	jmp    0x43cd7f
43cca6:	8b 4e 04             	mov    0x4(%esi),%ecx
43cca9:	3b cb                	cmp    %ebx,%ecx