405a84:	59                   	pop    %ecx
405a85:	5e                   	pop    %esi
405a86:	c3                   	ret
405a87:	55                   	push   %ebp
405a88:	8b ec                	mov    %esp,%ebp
405a8a:	56                   	push   %esi
405a8b:	57                   	push   %edi
405a8c:	8b 7d 08             	mov    0x8(%ebp),%edi
405a8f:	8b f1                	mov    %ecx,%esi
405a91:	8d 47 01             	lea    0x1(%edi),%eax
405a94:	39 46 08             	cmp    %eax,0x8(%esi)
405a97:	73 25                	jae    0x405abe
405a99:	50                   	push   %eax
405a9a:	e8 ac ff ff ff       	call   0x405a4b
405a9f:	83 3e 00             	cmpl   $0x0,(%esi)
405aa2:	89 46 08             	mov    %eax,0x8(%esi)
405aa5:	74 08                	je     0x405aaf
405aa7:	ff 36                	push   (%esi)
405aa9:	e8 be b5 01 00       	call   0x42106c
405aae:	59                   	pop    %ecx
405aaf:	ff 76 08             	push   0x8(%esi)
405ab2:	e8 3f b5 01 00       	call   0x420ff6
405ab7:	89 06                	mov    %eax,(%esi)
405ab9:	59                   	pop    %ecx
405aba:	c6 04 38 00          	movb   $0x0,(%eax,%edi,1)
405abe:	5f                   	pop    %edi
405abf:	5e                   	pop    %esi
405ac0:	5d                   	pop    %ebp
405ac1:	c2 04 00             	ret    $0x4
405ac4:	55                   	push   %ebp
405ac5:	8b ec                	mov    %esp,%ebp
405ac7:	56                   	push   %esi
405ac8:	57                   	push   %edi
405ac9:	8b 7d 10             	mov    0x10(%ebp),%edi
405acc:	8b f1                	mov    %ecx,%esi
405ace:	85 ff                	test   %edi,%edi
405ad0:	74 3e                	je     0x405b10
405ad2:	83 ff ff             	cmp    $0xffffffff,%edi
405ad5:	74 39                	je     0x405b10
405ad7:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
405adb:	74 33                	je     0x405b10
405add:	8b 4e 0c             	mov    0xc(%esi),%ecx
405ae0:	8b 01                	mov    (%ecx),%eax
405ae2:	83 f8 01             	cmp    $0x1,%eax
405ae5:	0f 8f 98 85 03 00    	jg     0x43e083
405aeb:	57                   	push   %edi
405aec:	8b ce                	mov    %esi,%ecx
405aee:	e8 94 ff ff ff       	call   0x405a87
405af3:	57                   	push   %edi
405af4:	ff 75 08             	push   0x8(%ebp)
405af7:	89 7e 04             	mov    %edi,0x4(%esi)
405afa:	ff 36                	push   (%esi)
405afc:	e8 7f b5 01 00       	call   0x421080
405b01:	8b 06                	mov    (%esi),%eax
405b03:	83 c4 0c             	add    $0xc,%esp
405b06:	c6 04 07 00          	movb   $0x0,(%edi,%eax,1)
405b0a:	5f                   	pop    %edi
405b0b:	5e                   	pop    %esi
405b0c:	5d                   	pop    %ebp
405b0d:	c2 0c 00             	ret    $0xc
405b10:	51                   	push   %ecx
405b11:	51                   	push   %ecx
405b12:	e8 f1 d8 05 00       	call   0x463408
405b17:	eb f1                	jmp    0x405b0a
405b19:	55                   	push   %ebp
405b1a:	8b ec                	mov    %esp,%ebp
405b1c:	51                   	push   %ecx
405b1d:	51                   	push   %ecx
405b1e:	8b 45 08             	mov    0x8(%ebp),%eax
405b21:	56                   	push   %esi
405b22:	8b f1                	mov    %ecx,%esi
405b24:	40                   	inc    %eax
405b25:	39 46 08             	cmp    %eax,0x8(%esi)
405b28:	72 07                	jb     0x405b31
405b2a:	5e                   	pop    %esi
405b2b:	8b e5                	mov    %ebp,%esp
405b2d:	5d                   	pop    %ebp
405b2e:	c2 04 00             	ret    $0x4
405b31:	3d c2 41 00 00       	cmp    $0x41c2,%eax
405b36:	0f 83 6b 85 03 00    	jae    0x43e0a7
405b3c:	03 c0                	add    %eax,%eax
405b3e:	57                   	push   %edi
405b3f:	50                   	push   %eax
405b40:	89 46 08             	mov    %eax,0x8(%esi)
405b43:	e8 03 ff ff ff       	call   0x405a4b
405b48:	50                   	push   %eax
405b49:	89 46 08             	mov    %eax,0x8(%esi)
405b4c:	e8 a5 b4 01 00       	call   0x420ff6
405b51:	83 3e 00             	cmpl   $0x0,(%esi)
405b54:	8b f8                	mov    %eax,%edi
405b56:	59                   	pop    %ecx
405b57:	74 17                	je     0x405b70
405b59:	8b 4e 04             	mov    0x4(%esi),%ecx
405b5c:	41                   	inc    %ecx
405b5d:	51                   	push   %ecx
405b5e:	ff 36                	push   (%esi)
405b60:	57                   	push   %edi
405b61:	e8 1a b5 01 00       	call   0x421080
405b66:	ff 36                	push   (%esi)
405b68:	e8 ff b4 01 00       	call   0x42106c
405b6d:	83 c4 10             	add    $0x10,%esp
405b70:	89 3e                	mov    %edi,(%esi)
405b72:	5f                   	pop    %edi
405b73:	eb b5                	jmp    0x405b2a
405b75:	55                   	push   %ebp
405b76:	8b ec                	mov    %esp,%ebp
405b78:	53                   	push   %ebx
405b79:	8b 5d 08             	mov    0x8(%ebp),%ebx
405b7c:	33 c0                	xor    %eax,%eax
405b7e:	57                   	push   %edi
405b7f:	50                   	push   %eax
405b80:	50                   	push   %eax
405b81:	8b 7b 04             	mov    0x4(%ebx),%edi
405b84:	50                   	push   %eax
405b85:	50                   	push   %eax
405b86:	47                   	inc    %edi
405b87:	57                   	push   %edi
405b88:	ff 33                	push   (%ebx)
405b8a:	50                   	push   %eax
405b8b:	50                   	push   %eax
405b8c:	ff 15 ac f1 48 00    	call   *0x48f1ac
405b92:	89 45 08             	mov    %eax,0x8(%ebp)
405b95:	85 c0                	test   %eax,%eax
405b97:	74 37                	je     0x405bd0
405b99:	56                   	push   %esi
405b9a:	50                   	push   %eax
405b9b:	e8 56 b4 01 00       	call   0x420ff6
405ba0:	59                   	pop    %ecx
405ba1:	8b f0                	mov    %eax,%esi
405ba3:	33 c0                	xor    %eax,%eax
405ba5:	50                   	push   %eax
405ba6:	50                   	push   %eax
405ba7:	ff 75 08             	push   0x8(%ebp)
405baa:	56                   	push   %esi
405bab:	57                   	push   %edi
405bac:	ff 33                	push   (%ebx)
405bae:	50                   	push   %eax
405baf:	50                   	push   %eax
405bb0:	ff 15 ac f1 48 00    	call   *0x48f1ac
405bb6:	48                   	dec    %eax
405bb7:	50                   	push   %eax
405bb8:	51                   	push   %ecx
405bb9:	8b 4d 0c             	mov    0xc(%ebp),%ecx
405bbc:	56                   	push   %esi
405bbd:	e8 02 ff ff ff       	call   0x405ac4
405bc2:	56                   	push   %esi
405bc3:	e8 a4 b4 01 00       	call   0x42106c
405bc8:	59                   	pop    %ecx
405bc9:	5e                   	pop    %esi
405bca:	5f                   	pop    %edi
405bcb:	5b                   	pop    %ebx
405bcc:	5d                   	pop    %ebp
405bcd:	c2 08 00             	ret    $0x8
405bd0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
405bd3:	e8 57 fe ff ff       	call   0x405a2f
405bd8:	eb f0                	jmp    0x405bca
405bda:	55                   	push   %ebp
405bdb:	8b ec                	mov    %esp,%ebp
405bdd:	57                   	push   %edi
405bde:	8b f9                	mov    %ecx,%edi
405be0:	8b 4f 0c             	mov    0xc(%edi),%ecx
405be3:	8b 01                	mov    (%ecx),%eax
405be5:	83 f8 01             	cmp    $0x1,%eax
405be8:	0f 8f 29 85 03 00    	jg     0x43e117
405bee:	8b 47 04             	mov    0x4(%edi),%eax
405bf1:	8b cf                	mov    %edi,%ecx
405bf3:	40                   	inc    %eax
405bf4:	50                   	push   %eax
405bf5:	e8 1f ff ff ff       	call   0x405b19
405bfa:	8b 57 04             	mov    0x4(%edi),%edx
405bfd:	8b 0f                	mov    (%edi),%ecx
405bff:	8a 45 08             	mov    0x8(%ebp),%al
405c02:	88 04 0a             	mov    %al,(%edx,%ecx,1)
405c05:	ff 47 04             	incl   0x4(%edi)
405c08:	8b 07                	mov    (%edi),%eax
405c0a:	8b 4f 04             	mov    0x4(%edi),%ecx
405c0d:	c6 04 01 00          	movb   $0x0,(%ecx,%eax,1)
405c11:	8b c7                	mov    %edi,%eax
405c13:	5f                   	pop    %edi
405c14:	5d                   	pop    %ebp
405c15:	c2 04 00             	ret    $0x4
405c18:	56                   	push   %esi
405c19:	8b f1                	mov    %ecx,%esi
405c1b:	6a 10                	push   $0x10
405c1d:	58                   	pop    %eax
405c1e:	50                   	push   %eax
405c1f:	83 66 04 00          	andl   $0x0,0x4(%esi)
405c23:	89 46 08             	mov    %eax,0x8(%esi)
405c26:	e8 cb b3 01 00       	call   0x420ff6
405c2b:	89 06                	mov    %eax,(%esi)
405c2d:	6a 04                	push   $0x4
405c2f:	c6 00 00             	movb   $0x0,(%eax)
405c32:	e8 bf b3 01 00       	call   0x420ff6
405c37:	59                   	pop    %ecx
405c38:	59                   	pop    %ecx
405c39:	85 c0                	test   %eax,%eax
405c3b:	74 0d                	je     0x405c4a
405c3d:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
405c43:	89 46 0c             	mov    %eax,0xc(%esi)
405c46:	8b c6                	mov    %esi,%eax
405c48:	5e                   	pop    %esi
405c49:	c3                   	ret
405c4a:	33 c0                	xor    %eax,%eax
405c4c:	eb f5                	jmp    0x405c43
405c4e:	55                   	push   %ebp
405c4f:	8b ec                	mov    %esp,%ebp
405c51:	8b 55 0c             	mov    0xc(%ebp),%edx
405c54:	83 ec 0c             	sub    $0xc,%esp
405c57:	53                   	push   %ebx
405c58:	8b 5d 10             	mov    0x10(%ebp),%ebx
405c5b:	56                   	push   %esi
405c5c:	8b 75 08             	mov    0x8(%ebp),%esi
405c5f:	57                   	push   %edi
405c60:	8b f9                	mov    %ecx,%edi
405c62:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
405c66:	74 76                	je     0x405cde
405c68:	83 fb 01             	cmp    $0x1,%ebx
405c6b:	74 04                	je     0x405c71
405c6d:	85 db                	test   %ebx,%ebx
405c6f:	75 6d                	jne    0x405cde
405c71:	89 55 f8             	mov    %edx,-0x8(%ebp)
405c74:	8b ca                	mov    %edx,%ecx
405c76:	83 fb 01             	cmp    $0x1,%ebx
405c79:	0f 84 d2 84 03 00    	je     0x43e151
405c7f:	8b 47 0c             	mov    0xc(%edi),%eax
405c82:	8b 5f 10             	mov    0x10(%edi),%ebx
405c85:	99                   	cltd
405c86:	2b d8                	sub    %eax,%ebx
405c88:	8b 47 14             	mov    0x14(%edi),%eax
405c8b:	89 5d fc             	mov    %ebx,-0x4(%ebp)
405c8e:	8b 5d 10             	mov    0x10(%ebp),%ebx
405c91:	1b c2                	sbb    %edx,%eax
405c93:	89 45 f4             	mov    %eax,-0xc(%ebp)
405c96:	3b c8                	cmp    %eax,%ecx
405c98:	7c 78                	jl     0x405d12
405c9a:	7f 05                	jg     0x405ca1
405c9c:	3b 75 fc             	cmp    -0x4(%ebp),%esi
405c9f:	72 71                	jb     0x405d12
405ca1:	8b 47 08             	mov    0x8(%edi),%eax
405ca4:	99                   	cltd
405ca5:	89 45 10             	mov    %eax,0x10(%ebp)
405ca8:	8b 45 fc             	mov    -0x4(%ebp),%eax
405cab:	01 45 10             	add    %eax,0x10(%ebp)
405cae:	13 55 f4             	adc    -0xc(%ebp),%edx
405cb1:	83 6d 10 01          	subl   $0x1,0x10(%ebp)
405cb5:	83 da 00             	sbb    $0x0,%edx
405cb8:	3b ca                	cmp    %edx,%ecx
405cba:	7f 56                	jg     0x405d12
405cbc:	7c 05                	jl     0x405cc3
405cbe:	3b 75 10             	cmp    0x10(%ebp),%esi
405cc1:	77 4f                	ja     0x405d12
405cc3:	8b ce                	mov    %esi,%ecx
405cc5:	89 77 10             	mov    %esi,0x10(%edi)
405cc8:	2b c8                	sub    %eax,%ecx
405cca:	b0 01                	mov    $0x1,%al
405ccc:	89 4f 0c             	mov    %ecx,0xc(%edi)
405ccf:	8b 4d f8             	mov    -0x8(%ebp),%ecx
405cd2:	89 4f 14             	mov    %ecx,0x14(%edi)
405cd5:	5f                   	pop    %edi
405cd6:	5e                   	pop    %esi
405cd7:	5b                   	pop    %ebx
405cd8:	8b e5                	mov    %ebp,%esp
405cda:	5d                   	pop    %ebp
405cdb:	c2 0c 00             	ret    $0xc
405cde:	83 67 08 00          	andl   $0x0,0x8(%edi)
405ce2:	83 67 0c 00          	andl   $0x0,0xc(%edi)
405ce6:	83 fb 01             	cmp    $0x1,%ebx
405ce9:	0f 84 75 84 03 00    	je     0x43e164
405cef:	53                   	push   %ebx
405cf0:	6a 00                	push   $0x0
405cf2:	52                   	push   %edx
405cf3:	56                   	push   %esi
405cf4:	ff 37                	push   (%edi)
405cf6:	ff 15 d8 f1 48 00    	call   *0x48f1d8
405cfc:	8b cf                	mov    %edi,%ecx
405cfe:	8b f0                	mov    %eax,%esi
405d00:	e8 a9 00 00 00       	call   0x405dae
405d05:	85 f6                	test   %esi,%esi
405d07:	89 47 10             	mov    %eax,0x10(%edi)
405d0a:	89 57 14             	mov    %edx,0x14(%edi)
405d0d:	0f 95 c0             	setne  %al
405d10:	eb c3                	jmp    0x405cd5
405d12:	8b 75 08             	mov    0x8(%ebp),%esi
405d15:	8b 55 0c             	mov    0xc(%ebp),%edx
405d18:	eb c4                	jmp    0x405cde
405d1a:	cc                   	int3
405d1b:	cc                   	int3
405d1c:	cc                   	int3
405d1d:	cc                   	int3
405d1e:	cc                   	int3
405d1f:	cc                   	int3
405d20:	55                   	push   %ebp
405d21:	8b ec                	mov    %esp,%ebp
405d23:	53                   	push   %ebx
405d24:	56                   	push   %esi
405d25:	8b f1                	mov    %ecx,%esi
405d27:	57                   	push   %edi
405d28:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
405d2c:	74 65                	je     0x405d93
405d2e:	8b 5d 0c             	mov    0xc(%ebp),%ebx
405d31:	33 ff                	xor    %edi,%edi
405d33:	85 db                	test   %ebx,%ebx
405d35:	74 1f                	je     0x405d56
405d37:	8b 46 0c             	mov    0xc(%esi),%eax
405d3a:	3b 46 08             	cmp    0x8(%esi),%eax
405d3d:	74 27                	je     0x405d66
405d3f:	8b 4e 04             	mov    0x4(%esi),%ecx
405d42:	8b 46 0c             	mov    0xc(%esi),%eax
405d45:	8a 04 01             	mov    (%ecx,%eax,1),%al
405d48:	8b 4d 08             	mov    0x8(%ebp),%ecx
405d4b:	88 04 0f             	mov    %al,(%edi,%ecx,1)
405d4e:	47                   	inc    %edi
405d4f:	ff 46 0c             	incl   0xc(%esi)
405d52:	3b fb                	cmp    %ebx,%edi
405d54:	72 e1                	jb     0x405d37
405d56:	01 7e 10             	add    %edi,0x10(%esi)
405d59:	8b c7                	mov    %edi,%eax
405d5b:	5f                   	pop    %edi
405d5c:	83 56 14 00          	adcl   $0x0,0x14(%esi)
405d60:	5e                   	pop    %esi
405d61:	5b                   	pop    %ebx
405d62:	5d                   	pop    %ebp
405d63:	c2 08 00             	ret    $0x8
405d66:	6a 00                	push   $0x0
405d68:	8d 45 0c             	lea    0xc(%ebp),%eax
405d6b:	50                   	push   %eax
405d6c:	68 00 00 01 00       	push   $0x10000
405d71:	ff 76 04             	push   0x4(%esi)
405d74:	ff 36                	push   (%esi)
405d76:	ff 15 e0 f1 48 00    	call   *0x48f1e0
405d7c:	85 c0                	test   %eax,%eax
405d7e:	74 d6                	je     0x405d56
405d80:	8b 45 0c             	mov    0xc(%ebp),%eax
405d83:	85 c0                	test   %eax,%eax
405d85:	74 cf                	je     0x405d56
405d87:	89 46 08             	mov    %eax,0x8(%esi)
405d8a:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
405d91:	eb ac                	jmp    0x405d3f
405d93:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
405d9a:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
405da1:	e8 08 00 00 00       	call   0x405dae
405da6:	89 46 10             	mov    %eax,0x10(%esi)
405da9:	89 56 14             	mov    %edx,0x14(%esi)
405dac:	eb 80                	jmp    0x405d2e
405dae:	55                   	push   %ebp
405daf:	8b ec                	mov    %esp,%ebp
405db1:	51                   	push   %ecx
405db2:	51                   	push   %ecx
405db3:	6a 01                	push   $0x1
405db5:	8d 45 f8             	lea    -0x8(%ebp),%eax