57997e:	8d 44 24 2c          	lea    0x2c(%esp),%eax
579982:	bb 01 00 00 00       	mov    $0x1,%ebx
579987:	50                   	push   %eax
579988:	e8 13 79 f3 ff       	call   0x4b12a0
57998d:	ff b4 24 9c 00 00 00 	push   0x9c(%esp)
579994:	8d 44 24 34          	lea    0x34(%esp),%eax
579998:	ff 74 24 28          	push   0x28(%esp)
57999c:	50                   	push   %eax
57999d:	e8 ae 7a f3 ff       	call   0x4b1450
5799a2:	83 c4 18             	add    $0x18,%esp
5799a5:	85 c0                	test   %eax,%eax
5799a7:	0f 84 91 00 00 00    	je     0x579a3e
5799ad:	0f 1f 00             	nopl   (%eax)
5799b0:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
5799b4:	8b c3                	mov    %ebx,%eax
5799b6:	ff 74 24 20          	push   0x20(%esp)
5799ba:	c1 e8 08             	shr    $0x8,%eax
5799bd:	88 59 03             	mov    %bl,0x3(%ecx)
5799c0:	88 41 02             	mov    %al,0x2(%ecx)
5799c3:	8b c3                	mov    %ebx,%eax
5799c5:	c1 e8 10             	shr    $0x10,%eax
5799c8:	88 41 01             	mov    %al,0x1(%ecx)
5799cb:	8b c3                	mov    %ebx,%eax
5799cd:	c1 e8 18             	shr    $0x18,%eax
5799d0:	88 01                	mov    %al,(%ecx)
5799d2:	8d 44 24 28          	lea    0x28(%esp),%eax
5799d6:	ff 74 24 14          	push   0x14(%esp)
5799da:	50                   	push   %eax
5799db:	e8 70 7a f3 ff       	call   0x4b1450
5799e0:	83 c4 0c             	add    $0xc,%esp
5799e3:	85 c0                	test   %eax,%eax
5799e5:	74 57                	je     0x579a3e
5799e7:	6a 00                	push   $0x0
5799e9:	3b f7                	cmp    %edi,%esi
5799eb:	0f 82 82 00 00 00    	jb     0x579a73
5799f1:	8d 44 24 28          	lea    0x28(%esp),%eax
5799f5:	55                   	push   %ebp
5799f6:	50                   	push   %eax
5799f7:	e8 f4 77 f3 ff       	call   0x4b11f0
5799fc:	83 c4 0c             	add    $0xc,%esp
5799ff:	85 c0                	test   %eax,%eax
579a01:	74 3b                	je     0x579a3e
579a03:	2b f7                	sub    %edi,%esi
579a05:	0f 84 98 00 00 00    	je     0x579aa3
579a0b:	6a 00                	push   $0x0
579a0d:	ff 74 24 18          	push   0x18(%esp)
579a11:	8d 44 24 2c          	lea    0x2c(%esp),%eax
579a15:	03 ef                	add    %edi,%ebp
579a17:	50                   	push   %eax
579a18:	43                   	inc    %ebx
579a19:	e8 82 78 f3 ff       	call   0x4b12a0
579a1e:	ff b4 24 9c 00 00 00 	push   0x9c(%esp)
579a25:	8d 44 24 34          	lea    0x34(%esp),%eax
579a29:	ff 74 24 28          	push   0x28(%esp)
579a2d:	50                   	push   %eax
579a2e:	e8 1d 7a f3 ff       	call   0x4b1450
579a33:	83 c4 18             	add    $0x18,%esp
579a36:	85 c0                	test   %eax,%eax
579a38:	0f 85 72 ff ff ff    	jne    0x5799b0
579a3e:	33 db                	xor    %ebx,%ebx
579a40:	8b 4c 24 10          	mov    0x10(%esp),%ecx
579a44:	5f                   	pop    %edi
579a45:	85 c9                	test   %ecx,%ecx
579a47:	74 09                	je     0x579a52
579a49:	51                   	push   %ecx
579a4a:	e8 e1 66 f2 ff       	call   0x4a0130
579a4f:	83 c4 04             	add    $0x4,%esp
579a52:	8d 44 24 20          	lea    0x20(%esp),%eax
579a56:	50                   	push   %eax
579a57:	e8 04 7a f3 ff       	call   0x4b1460
579a5c:	8b 4c 24 7c          	mov    0x7c(%esp),%ecx
579a60:	83 c4 04             	add    $0x4,%esp
579a63:	8b c3                	mov    %ebx,%eax
579a65:	5e                   	pop    %esi
579a66:	5d                   	pop    %ebp
579a67:	5b                   	pop    %ebx
579a68:	33 cc                	xor    %esp,%ecx
579a6a:	e8 6b 7a 06 00       	call   0x5e14da
579a6f:	83 c4 70             	add    $0x70,%esp
579a72:	c3                   	ret
579a73:	8d 44 24 40          	lea    0x40(%esp),%eax
579a77:	50                   	push   %eax
579a78:	8d 44 24 2c          	lea    0x2c(%esp),%eax
579a7c:	50                   	push   %eax
579a7d:	e8 6e 77 f3 ff       	call   0x4b11f0
579a82:	83 c4 0c             	add    $0xc,%esp
579a85:	85 c0                	test   %eax,%eax
579a87:	74 b5                	je     0x579a3e
579a89:	56                   	push   %esi
579a8a:	8d 44 24 40          	lea    0x40(%esp),%eax
579a8e:	50                   	push   %eax
579a8f:	55                   	push   %ebp
579a90:	e8 6b 94 06 00       	call   0x5e2f00
579a95:	8d 44 24 48          	lea    0x48(%esp),%eax
579a99:	57                   	push   %edi
579a9a:	50                   	push   %eax
579a9b:	e8 b0 68 f2 ff       	call   0x4a0350
579aa0:	83 c4 14             	add    $0x14,%esp
579aa3:	bb 01 00 00 00       	mov    $0x1,%ebx
579aa8:	eb 96                	jmp    0x579a40
579aaa:	cc                   	int3
579aab:	cc                   	int3
579aac:	cc                   	int3
579aad:	cc                   	int3
579aae:	cc                   	int3
579aaf:	cc                   	int3
579ab0:	b8 34 00 00 00       	mov    $0x34,%eax
579ab5:	e8 36 7a 06 00       	call   0x5e14f0
579aba:	8b 4c 24 4c          	mov    0x4c(%esp),%ecx
579abe:	81 f9 00 00 00 40    	cmp    $0x40000000,%ecx
579ac4:	0f 87 30 01 00 00    	ja     0x579bfa
579aca:	8b 54 24 44          	mov    0x44(%esp),%edx
579ace:	81 fa 00 00 00 40    	cmp    $0x40000000,%edx
579ad4:	0f 87 20 01 00 00    	ja     0x579bfa
579ada:	8d 44 24 14          	lea    0x14(%esp),%eax
579ade:	c7 44 24 1c bc 34 72 	movl   $0x7234bc,0x1c(%esp)
579ae5:	00
579ae6:	89 44 24 08          	mov    %eax,0x8(%esp)
579aea:	8b 44 24 40          	mov    0x40(%esp),%eax
579aee:	89 44 24 0c          	mov    %eax,0xc(%esp)
579af2:	8d 44 24 04          	lea    0x4(%esp),%eax
579af6:	89 44 24 10          	mov    %eax,0x10(%esp)
579afa:	8b 44 24 48          	mov    0x48(%esp),%eax
579afe:	c7 44 24 14 04 00 00 	movl   $0x4,0x14(%esp)
579b05:	00
579b06:	c7 44 24 20 00 00 00 	movl   $0x0,0x20(%esp)
579b0d:	00
579b0e:	c7 44 24 18 04 00 00 	movl   $0x4,0x18(%esp)
579b15:	00
579b16:	c7 44 24 04 04 00 00 	movl   $0x4,0x4(%esp)
579b1d:	00
579b1e:	85 c0                	test   %eax,%eax
579b20:	74 1e                	je     0x579b40
579b22:	89 44 24 2c          	mov    %eax,0x2c(%esp)
579b26:	8d 44 24 24          	lea    0x24(%esp),%eax
579b2a:	c7 44 24 28 04 00 00 	movl   $0x4,0x28(%esp)
579b31:	00
579b32:	c7 44 24 30 00 00 00 	movl   $0x0,0x30(%esp)
579b39:	00
579b3a:	89 4c 24 24          	mov    %ecx,0x24(%esp)
579b3e:	eb 02                	jmp    0x579b42
579b40:	33 c0                	xor    %eax,%eax
579b42:	56                   	push   %esi
579b43:	8b 74 24 3c          	mov    0x3c(%esp),%esi
579b47:	57                   	push   %edi
579b48:	52                   	push   %edx
579b49:	50                   	push   %eax
579b4a:	8d 44 24 1c          	lea    0x1c(%esp),%eax
579b4e:	50                   	push   %eax
579b4f:	56                   	push   %esi
579b50:	e8 3b 23 01 00       	call   0x58be90
579b55:	8b f8                	mov    %eax,%edi
579b57:	83 c4 10             	add    $0x10,%esp
579b5a:	85 ff                	test   %edi,%edi
579b5c:	0f 8e 82 00 00 00    	jle    0x579be4
579b62:	8b 06                	mov    (%esi),%eax
579b64:	89 44 24 54          	mov    %eax,0x54(%esp)
579b68:	8d 44 24 08          	lea    0x8(%esp),%eax
579b6c:	6a 10                	push   $0x10
579b6e:	50                   	push   %eax
579b6f:	8d 44 24 5c          	lea    0x5c(%esp),%eax
579b73:	89 7c 24 10          	mov    %edi,0x10(%esp)
579b77:	50                   	push   %eax
579b78:	e8 83 00 00 00       	call   0x579c00
579b7d:	83 c4 0c             	add    $0xc,%esp
579b80:	85 c0                	test   %eax,%eax
579b82:	74 60                	je     0x579be4
579b84:	6a 10                	push   $0x10
579b86:	8d 44 24 0c          	lea    0xc(%esp),%eax
579b8a:	50                   	push   %eax
579b8b:	8d 44 24 5c          	lea    0x5c(%esp),%eax
579b8f:	50                   	push   %eax
579b90:	e8 6b 00 00 00       	call   0x579c00
579b95:	83 c4 0c             	add    $0xc,%esp
579b98:	85 c0                	test   %eax,%eax
579b9a:	74 48                	je     0x579be4
579b9c:	6a 06                	push   $0x6
579b9e:	8d 44 24 0c          	lea    0xc(%esp),%eax
579ba2:	50                   	push   %eax
579ba3:	8d 44 24 5c          	lea    0x5c(%esp),%eax
579ba7:	50                   	push   %eax
579ba8:	e8 53 00 00 00       	call   0x579c00
579bad:	83 c4 0c             	add    $0xc,%esp
579bb0:	85 c0                	test   %eax,%eax
579bb2:	74 30                	je     0x579be4
579bb4:	6a 04                	push   $0x4
579bb6:	8d 44 24 0c          	lea    0xc(%esp),%eax
579bba:	50                   	push   %eax
579bbb:	8d 44 24 5c          	lea    0x5c(%esp),%eax
579bbf:	50                   	push   %eax
579bc0:	e8 3b 00 00 00       	call   0x579c00
579bc5:	83 c4 0c             	add    $0xc,%esp
579bc8:	85 c0                	test   %eax,%eax
579bca:	74 18                	je     0x579be4
579bcc:	8b 74 24 54          	mov    0x54(%esp),%esi
579bd0:	6a 04                	push   $0x4
579bd2:	68 bc 34 72 00       	push   $0x7234bc
579bd7:	56                   	push   %esi
579bd8:	e8 53 6a f2 ff       	call   0x4a0630
579bdd:	83 c4 0c             	add    $0xc,%esp
579be0:	85 c0                	test   %eax,%eax
579be2:	74 08                	je     0x579bec
579be4:	5f                   	pop    %edi
579be5:	33 c0                	xor    %eax,%eax
579be7:	5e                   	pop    %esi
579be8:	83 c4 34             	add    $0x34,%esp
579beb:	c3                   	ret
579bec:	8b 44 24 44          	mov    0x44(%esp),%eax
579bf0:	89 30                	mov    %esi,(%eax)
579bf2:	8b c7                	mov    %edi,%eax
579bf4:	5f                   	pop    %edi
579bf5:	5e                   	pop    %esi
579bf6:	83 c4 34             	add    $0x34,%esp
579bf9:	c3                   	ret
579bfa:	33 c0                	xor    %eax,%eax
579bfc:	83 c4 34             	add    $0x34,%esp
579bff:	c3                   	ret
579c00:	b8 0c 00 00 00       	mov    $0xc,%eax
579c05:	e8 e6 78 06 00       	call   0x5e14f0
579c0a:	56                   	push   %esi
579c0b:	8b 74 24 14          	mov    0x14(%esp),%esi
579c0f:	57                   	push   %edi
579c10:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
579c14:	8b 06                	mov    (%esi),%eax
579c16:	89 44 24 18          	mov    %eax,0x18(%esp)
579c1a:	8d 44 24 0c          	lea    0xc(%esp),%eax
579c1e:	ff 37                	push   (%edi)
579c20:	50                   	push   %eax
579c21:	8d 44 24 10          	lea    0x10(%esp),%eax
579c25:	50                   	push   %eax
579c26:	8d 44 24 1c          	lea    0x1c(%esp),%eax
579c2a:	50                   	push   %eax
579c2b:	8d 44 24 28          	lea    0x28(%esp),%eax
579c2f:	50                   	push   %eax
579c30:	e8 2b 7f f3 ff       	call   0x4b1b60
579c35:	83 c4 14             	add    $0x14,%esp
579c38:	84 c0                	test   %al,%al
579c3a:	78 31                	js     0x579c6d
579c3c:	8b 44 24 08          	mov    0x8(%esp),%eax
579c40:	3b 44 24 20          	cmp    0x20(%esp),%eax
579c44:	75 27                	jne    0x579c6d
579c46:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
579c4b:	75 20                	jne    0x579c6d
579c4d:	8b 4c 24 18          	mov    0x18(%esp),%ecx
579c51:	83 f8 06             	cmp    $0x6,%eax
579c54:	75 04                	jne    0x579c5a
579c56:	03 4c 24 10          	add    0x10(%esp),%ecx
579c5a:	8b 06                	mov    (%esi),%eax
579c5c:	2b c1                	sub    %ecx,%eax
579c5e:	01 07                	add    %eax,(%edi)
579c60:	b8 01 00 00 00       	mov    $0x1,%eax
579c65:	5f                   	pop    %edi
579c66:	89 0e                	mov    %ecx,(%esi)
579c68:	5e                   	pop    %esi
579c69:	83 c4 0c             	add    $0xc,%esp
579c6c:	c3                   	ret
579c6d:	5f                   	pop    %edi
579c6e:	33 c0                	xor    %eax,%eax
579c70:	5e                   	pop    %esi
579c71:	83 c4 0c             	add    $0xc,%esp
579c74:	c3                   	ret
579c75:	cc                   	int3
579c76:	cc                   	int3
579c77:	cc                   	int3
579c78:	cc                   	int3
579c79:	cc                   	int3
579c7a:	cc                   	int3
579c7b:	cc                   	int3
579c7c:	cc                   	int3
579c7d:	cc                   	int3
579c7e:	cc                   	int3
579c7f:	cc                   	int3
579c80:	b8 d8 00 00 00       	mov    $0xd8,%eax
579c85:	e8 66 78 06 00       	call   0x5e14f0
579c8a:	a1 d4 89 72 00       	mov    0x7289d4,%eax
579c8f:	33 c4                	xor    %esp,%eax
579c91:	89 84 24 d4 00 00 00 	mov    %eax,0xd4(%esp)
579c98:	8b 84 24 dc 00 00 00 	mov    0xdc(%esp),%eax
579c9f:	8b 94 24 ec 00 00 00 	mov    0xec(%esp),%edx
579ca6:	55                   	push   %ebp
579ca7:	8b ac 24 ec 00 00 00 	mov    0xec(%esp),%ebp
579cae:	56                   	push   %esi
579caf:	8b b4 24 ec 00 00 00 	mov    0xec(%esp),%esi
579cb6:	89 44 24 4c          	mov    %eax,0x4c(%esp)
579cba:	8b 84 24 fc 00 00 00 	mov    0xfc(%esp),%eax
579cc1:	89 44 24 58          	mov    %eax,0x58(%esp)
579cc5:	8b 84 24 00 01 00 00 	mov    0x100(%esp),%eax
579ccc:	c1 ee 03             	shr    $0x3,%esi
579ccf:	89 44 24 50          	mov    %eax,0x50(%esp)
579cd3:	8b 84 24 04 01 00 00 	mov    0x104(%esp),%eax
579cda:	89 6c 24 34          	mov    %ebp,0x34(%esp)
579cde:	89 54 24 28          	mov    %edx,0x28(%esp)
579ce2:	89 44 24 54          	mov    %eax,0x54(%esp)
579ce6:	c7 44 24 40 00 00 00 	movl   $0x0,0x40(%esp)
579ced:	00
579cee:	c7 44 24 24 00 00 00 	movl   $0x0,0x24(%esp)
579cf5:	00
579cf6:	c7 44 24 3c 02 00 00 	movl   $0x2,0x3c(%esp)
579cfd:	00
579cfe:	57                   	push   %edi
579cff:	8b bc 24 0c 01 00 00 	mov    0x10c(%esp),%edi
579d06:	89 7c 24 18          	mov    %edi,0x18(%esp)
579d0a:	83 fe 14             	cmp    $0x14,%esi
579d0d:	74 24                	je     0x579d33
579d0f:	83 fe 1c             	cmp    $0x1c,%esi
579d12:	74 1f                	je     0x579d33
579d14:	83 fe 20             	cmp    $0x20,%esi
579d17:	74 1a                	je     0x579d33
579d19:	5f                   	pop    %edi
579d1a:	5e                   	pop    %esi
579d1b:	33 c0                	xor    %eax,%eax
579d1d:	5d                   	pop    %ebp
579d1e:	8b 8c 24 d4 00 00 00 	mov    0xd4(%esp),%ecx
579d25:	33 cc                	xor    %esp,%ecx
579d27:	e8 ae 77 06 00       	call   0x5e14da
579d2c:	81 c4 d8 00 00 00    	add    $0xd8,%esp
579d32:	c3                   	ret
579d33:	85 ed                	test   %ebp,%ebp
579d35:	75 0f                	jne    0x579d46
579d37:	e8 a4 7a f3 ff       	call   0x4b17e0
579d3c:	8b 54 24 2c          	mov    0x2c(%esp),%edx
579d40:	8b e8                	mov    %eax,%ebp
579d42:	89 44 24 38          	mov    %eax,0x38(%esp)
579d46:	8b 8c 24 ec 00 00 00 	mov    0xec(%esp),%ecx
579d4d:	b8 00 02 00 00       	mov    $0x200,%eax
579d52:	3b c8                	cmp    %eax,%ecx
579d54:	0f 42 c8             	cmovb  %eax,%ecx
579d57:	8d 41 3f             	lea    0x3f(%ecx),%eax
579d5a:	83 e0 c0             	and    $0xffffffc0,%eax
579d5d:	89 44 24 30          	mov    %eax,0x30(%esp)
579d61:	8b 84 24 fc 00 00 00 	mov    0xfc(%esp),%eax
579d68:	85 c0                	test   %eax,%eax
579d6a:	74 0b                	je     0x579d77
579d6c:	33 c9                	xor    %ecx,%ecx
579d6e:	3b c6                	cmp    %esi,%eax
579d70:	0f 42 d1             	cmovb  %ecx,%edx
579d73:	89 54 24 2c          	mov    %edx,0x2c(%esp)
579d77:	3b c6                	cmp    %esi,%eax
579d79:	0f 47 c6             	cmova  %esi,%eax
579d7c:	89 84 24 fc 00 00 00 	mov    %eax,0xfc(%esp)
579d83:	85 d2                	test   %edx,%edx
579d85:	74 12                	je     0x579d99
579d87:	50                   	push   %eax
579d88:	52                   	push   %edx
579d89:	8d 84 24 a8 00 00 00 	lea    0xa8(%esp),%eax
579d90:	50                   	push   %eax
579d91:	e8 6a 91 06 00       	call   0x5e2f00
579d96:	83 c4 0c             	add    $0xc,%esp
579d99:	e8 e2 6b ff ff       	call   0x570980
579d9e:	89 44 24 24          	mov    %eax,0x24(%esp)