574a84:	85 c0                	test   %eax,%eax
574a86:	75 03                	jne    0x574a8b
574a88:	5f                   	pop    %edi
574a89:	5e                   	pop    %esi
574a8a:	c3                   	ret
574a8b:	8b 47 14             	mov    0x14(%edi),%eax
574a8e:	ff 70 14             	push   0x14(%eax)
574a91:	8b 46 14             	mov    0x14(%esi),%eax
574a94:	ff 70 14             	push   0x14(%eax)
574a97:	e8 24 e3 f3 ff       	call   0x4b2dc0
574a9c:	83 c4 08             	add    $0x8,%esp
574a9f:	f7 d8                	neg    %eax
574aa1:	1b c0                	sbb    %eax,%eax
574aa3:	40                   	inc    %eax
574aa4:	5f                   	pop    %edi
574aa5:	5e                   	pop    %esi
574aa6:	c3                   	ret
574aa7:	cc                   	int3
574aa8:	cc                   	int3
574aa9:	cc                   	int3
574aaa:	cc                   	int3
574aab:	cc                   	int3
574aac:	cc                   	int3
574aad:	cc                   	int3
574aae:	cc                   	int3
574aaf:	cc                   	int3
574ab0:	8b 44 24 08          	mov    0x8(%esp),%eax
574ab4:	6a 00                	push   $0x0
574ab6:	ff 74 24 14          	push   0x14(%esp)
574aba:	ff 74 24 14          	push   0x14(%esp)
574abe:	ff 70 14             	push   0x14(%eax)
574ac1:	ff 74 24 14          	push   0x14(%esp)
574ac5:	e8 76 0b 00 00       	call   0x575640
574aca:	83 c4 14             	add    $0x14,%esp
574acd:	c3                   	ret
574ace:	cc                   	int3
574acf:	cc                   	int3
574ad0:	8b 44 24 08          	mov    0x8(%esp),%eax
574ad4:	6a 01                	push   $0x1
574ad6:	ff 74 24 14          	push   0x14(%esp)
574ada:	ff 74 24 14          	push   0x14(%esp)
574ade:	ff 70 14             	push   0x14(%eax)
574ae1:	ff 74 24 14          	push   0x14(%esp)
574ae5:	e8 56 0b 00 00       	call   0x575640
574aea:	83 c4 14             	add    $0x14,%esp
574aed:	c3                   	ret
574aee:	cc                   	int3
574aef:	cc                   	int3
574af0:	8b 44 24 08          	mov    0x8(%esp),%eax
574af4:	6a 02                	push   $0x2
574af6:	ff 74 24 14          	push   0x14(%esp)
574afa:	ff 74 24 14          	push   0x14(%esp)
574afe:	ff 70 14             	push   0x14(%eax)
574b01:	ff 74 24 14          	push   0x14(%esp)
574b05:	e8 36 0b 00 00       	call   0x575640
574b0a:	83 c4 14             	add    $0x14,%esp
574b0d:	c3                   	ret
574b0e:	cc                   	int3
574b0f:	cc                   	int3
574b10:	8b 44 24 08          	mov    0x8(%esp),%eax
574b14:	83 e8 07             	sub    $0x7,%eax
574b17:	74 15                	je     0x574b2e
574b19:	83 e8 01             	sub    $0x1,%eax
574b1c:	75 37                	jne    0x574b55
574b1e:	8b 44 24 10          	mov    0x10(%esp),%eax
574b22:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
574b28:	b8 01 00 00 00       	mov    $0x1,%eax
574b2d:	c3                   	ret
574b2e:	8b 44 24 0c          	mov    0xc(%esp),%eax
574b32:	83 f8 01             	cmp    $0x1,%eax
574b35:	75 0d                	jne    0x574b44
574b37:	ff 74 24 10          	push   0x10(%esp)
574b3b:	e8 d0 02 00 00       	call   0x574e10
574b40:	83 c4 04             	add    $0x4,%esp
574b43:	c3                   	ret
574b44:	85 c0                	test   %eax,%eax
574b46:	75 0d                	jne    0x574b55
574b48:	ff 74 24 10          	push   0x10(%esp)
574b4c:	e8 7f 03 00 00       	call   0x574ed0
574b51:	83 c4 04             	add    $0x4,%esp
574b54:	c3                   	ret
574b55:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
574b5a:	c3                   	ret
574b5b:	cc                   	int3
574b5c:	cc                   	int3
574b5d:	cc                   	int3
574b5e:	cc                   	int3
574b5f:	cc                   	int3
574b60:	8b 44 24 04          	mov    0x4(%esp),%eax
574b64:	ff 70 14             	push   0x14(%eax)
574b67:	e8 44 7c ff ff       	call   0x56c7b0
574b6c:	59                   	pop    %ecx
574b6d:	c3                   	ret
574b6e:	cc                   	int3
574b6f:	cc                   	int3
574b70:	b8 18 00 00 00       	mov    $0x18,%eax
574b75:	e8 76 c9 06 00       	call   0x5e14f0
574b7a:	ff 74 24 20          	push   0x20(%esp)
574b7e:	8d 44 24 08          	lea    0x8(%esp),%eax
574b82:	50                   	push   %eax
574b83:	8d 44 24 18          	lea    0x18(%esp),%eax
574b87:	50                   	push   %eax
574b88:	8d 44 24 20          	lea    0x20(%esp),%eax
574b8c:	50                   	push   %eax
574b8d:	6a 00                	push   $0x0
574b8f:	e8 7c 36 01 00       	call   0x588210
574b94:	83 c4 14             	add    $0x14,%esp
574b97:	85 c0                	test   %eax,%eax
574b99:	75 04                	jne    0x574b9f
574b9b:	83 c4 18             	add    $0x18,%esp
574b9e:	c3                   	ret
574b9f:	53                   	push   %ebx
574ba0:	56                   	push   %esi
574ba1:	57                   	push   %edi
574ba2:	ff 74 24 10          	push   0x10(%esp)
574ba6:	8d 44 24 1c          	lea    0x1c(%esp),%eax
574baa:	50                   	push   %eax
574bab:	8d 44 24 1c          	lea    0x1c(%esp),%eax
574baf:	50                   	push   %eax
574bb0:	6a 00                	push   $0x0
574bb2:	e8 a9 94 00 00       	call   0x57e060
574bb7:	83 c4 10             	add    $0x10,%esp
574bba:	83 7c 24 14 10       	cmpl   $0x10,0x14(%esp)
574bbf:	74 1e                	je     0x574bdf
574bc1:	6a 72                	push   $0x72
574bc3:	68 9c d0 6b 00       	push   $0x6bd09c
574bc8:	6a 69                	push   $0x69
574bca:	6a 6c                	push   $0x6c
574bcc:	6a 05                	push   $0x5
574bce:	e8 cd c8 f2 ff       	call   0x4a14a0
574bd3:	83 c4 14             	add    $0x14,%esp
574bd6:	33 c0                	xor    %eax,%eax
574bd8:	5f                   	pop    %edi
574bd9:	5e                   	pop    %esi
574bda:	5b                   	pop    %ebx
574bdb:	83 c4 18             	add    $0x18,%esp
574bde:	c3                   	ret
574bdf:	8b 4c 24 18          	mov    0x18(%esp),%ecx
574be3:	8b 5c 24 28          	mov    0x28(%esp),%ebx
574be7:	8b 41 08             	mov    0x8(%ecx),%eax
574bea:	81 7b 0c f8 cf 6b 00 	cmpl   $0x6bcff8,0xc(%ebx)
574bf1:	89 44 24 0c          	mov    %eax,0xc(%esp)
574bf5:	8b 01                	mov    (%ecx),%eax
574bf7:	50                   	push   %eax
574bf8:	8d 44 24 10          	lea    0x10(%esp),%eax
574bfc:	50                   	push   %eax
574bfd:	6a 00                	push   $0x0
574bff:	75 07                	jne    0x574c08
574c01:	e8 2a 46 01 00       	call   0x589230
574c06:	eb 05                	jmp    0x574c0d
574c08:	e8 03 46 01 00       	call   0x589210
574c0d:	8b f0                	mov    %eax,%esi
574c0f:	83 c4 0c             	add    $0xc,%esp
574c12:	85 f6                	test   %esi,%esi
574c14:	75 1e                	jne    0x574c34
574c16:	6a 7b                	push   $0x7b
574c18:	68 9c d0 6b 00       	push   $0x6bd09c
574c1d:	6a 68                	push   $0x68
574c1f:	6a 6c                	push   $0x6c
574c21:	6a 05                	push   $0x5
574c23:	e8 78 c8 f2 ff       	call   0x4a14a0
574c28:	83 c4 14             	add    $0x14,%esp
574c2b:	33 c0                	xor    %eax,%eax
574c2d:	5f                   	pop    %edi
574c2e:	5e                   	pop    %esi
574c2f:	5b                   	pop    %ebx
574c30:	83 c4 18             	add    $0x18,%esp
574c33:	c3                   	ret
574c34:	ff 74 24 1c          	push   0x1c(%esp)
574c38:	8d 44 24 24          	lea    0x24(%esp),%eax
574c3c:	50                   	push   %eax
574c3d:	6a 00                	push   $0x0
574c3f:	e8 dc f0 f3 ff       	call   0x4b3d20
574c44:	8b f8                	mov    %eax,%edi
574c46:	83 c4 0c             	add    $0xc,%esp
574c49:	85 ff                	test   %edi,%edi
574c4b:	75 2a                	jne    0x574c77
574c4d:	68 80 00 00 00       	push   $0x80
574c52:	68 9c d0 6b 00       	push   $0x6bd09c
574c57:	6a 68                	push   $0x68
574c59:	6a 6c                	push   $0x6c
574c5b:	6a 05                	push   $0x5
574c5d:	e8 3e c8 f2 ff       	call   0x4a14a0
574c62:	83 c4 14             	add    $0x14,%esp
574c65:	56                   	push   %esi
574c66:	e8 45 7b ff ff       	call   0x56c7b0
574c6b:	83 c4 04             	add    $0x4,%esp
574c6e:	33 c0                	xor    %eax,%eax
574c70:	5f                   	pop    %edi
574c71:	5e                   	pop    %esi
574c72:	5b                   	pop    %ebx
574c73:	83 c4 18             	add    $0x18,%esp
574c76:	c3                   	ret
574c77:	6a 00                	push   $0x0
574c79:	57                   	push   %edi
574c7a:	e8 61 f3 f3 ff       	call   0x4b3fe0
574c7f:	83 c4 08             	add    $0x8,%esp
574c82:	89 46 14             	mov    %eax,0x14(%esi)
574c85:	85 c0                	test   %eax,%eax
574c87:	75 30                	jne    0x574cb9
574c89:	68 86 00 00 00       	push   $0x86
574c8e:	68 9c d0 6b 00       	push   $0x6bd09c
574c93:	6a 6d                	push   $0x6d
574c95:	6a 6c                	push   $0x6c
574c97:	6a 05                	push   $0x5
574c99:	e8 02 c8 f2 ff       	call   0x4a14a0
574c9e:	57                   	push   %edi
574c9f:	e8 3c ef f3 ff       	call   0x4b3be0
574ca4:	83 c4 18             	add    $0x18,%esp
574ca7:	56                   	push   %esi
574ca8:	e8 03 7b ff ff       	call   0x56c7b0
574cad:	83 c4 04             	add    $0x4,%esp
574cb0:	33 c0                	xor    %eax,%eax
574cb2:	5f                   	pop    %edi
574cb3:	5e                   	pop    %esi
574cb4:	5b                   	pop    %ebx
574cb5:	83 c4 18             	add    $0x18,%esp
574cb8:	c3                   	ret
574cb9:	57                   	push   %edi
574cba:	e8 21 ef f3 ff       	call   0x4b3be0
574cbf:	8b 43 0c             	mov    0xc(%ebx),%eax
574cc2:	56                   	push   %esi
574cc3:	ff 30                	push   (%eax)
574cc5:	53                   	push   %ebx
574cc6:	e8 85 08 f6 ff       	call   0x4d5550
574ccb:	83 c4 10             	add    $0x10,%esp
574cce:	b8 01 00 00 00       	mov    $0x1,%eax
574cd3:	5f                   	pop    %edi
574cd4:	5e                   	pop    %esi
574cd5:	5b                   	pop    %ebx
574cd6:	83 c4 18             	add    $0x18,%esp
574cd9:	c3                   	ret
574cda:	cc                   	int3
574cdb:	cc                   	int3
574cdc:	cc                   	int3
574cdd:	cc                   	int3
574cde:	cc                   	int3
574cdf:	cc                   	int3
574ce0:	b8 04 00 00 00       	mov    $0x4,%eax
574ce5:	e8 06 c8 06 00       	call   0x5e14f0
574cea:	53                   	push   %ebx
574ceb:	8b 5c 24 10          	mov    0x10(%esp),%ebx
574cef:	55                   	push   %ebp
574cf0:	56                   	push   %esi
574cf1:	57                   	push   %edi
574cf2:	8b 7b 14             	mov    0x14(%ebx),%edi
574cf5:	c7 44 24 10 00 00 00 	movl   $0x0,0x10(%esp)
574cfc:	00
574cfd:	e8 ae cc f3 ff       	call   0x4b19b0
574d02:	8b f0                	mov    %eax,%esi
574d04:	85 f6                	test   %esi,%esi
574d06:	75 3e                	jne    0x574d46
574d08:	68 a4 00 00 00       	push   $0xa4
574d0d:	68 9c d0 6b 00       	push   $0x6bd09c
574d12:	6a 41                	push   $0x41
574d14:	6a 6d                	push   $0x6d
574d16:	6a 05                	push   $0x5
574d18:	e8 83 c7 f2 ff       	call   0x4a14a0
574d1d:	83 c4 14             	add    $0x14,%esp
574d20:	8b 44 24 10          	mov    0x10(%esp),%eax
574d24:	85 c0                	test   %eax,%eax
574d26:	74 09                	je     0x574d31
574d28:	50                   	push   %eax
574d29:	e8 02 b4 f2 ff       	call   0x4a0130
574d2e:	83 c4 04             	add    $0x4,%esp
574d31:	85 f6                	test   %esi,%esi
574d33:	74 09                	je     0x574d3e
574d35:	56                   	push   %esi
574d36:	e8 45 cc f3 ff       	call   0x4b1980
574d3b:	83 c4 04             	add    $0x4,%esp
574d3e:	5f                   	pop    %edi
574d3f:	5e                   	pop    %esi
574d40:	5d                   	pop    %ebp
574d41:	33 c0                	xor    %eax,%eax
574d43:	5b                   	pop    %ebx
574d44:	59                   	pop    %ecx
574d45:	c3                   	ret
574d46:	81 7b 0c f8 cf 6b 00 	cmpl   $0x6bcff8,0xc(%ebx)
574d4d:	8d 46 08             	lea    0x8(%esi),%eax
574d50:	50                   	push   %eax
574d51:	57                   	push   %edi
574d52:	75 07                	jne    0x574d5b
574d54:	e8 c7 45 01 00       	call   0x589320
574d59:	eb 05                	jmp    0x574d60
574d5b:	e8 a0 45 01 00       	call   0x589300
574d60:	83 c4 08             	add    $0x8,%esp
574d63:	89 06                	mov    %eax,(%esi)
574d65:	85 c0                	test   %eax,%eax
574d67:	7f 07                	jg     0x574d70
574d69:	68 a9 00 00 00       	push   $0xa9
574d6e:	eb 9d                	jmp    0x574d0d
574d70:	6a 00                	push   $0x0
574d72:	ff 77 14             	push   0x14(%edi)
574d75:	e8 c6 f2 f3 ff       	call   0x4b4040
574d7a:	8b f8                	mov    %eax,%edi
574d7c:	83 c4 08             	add    $0x8,%esp
574d7f:	85 ff                	test   %edi,%edi
574d81:	74 9d                	je     0x574d20
574d83:	8d 44 24 10          	lea    0x10(%esp),%eax
574d87:	50                   	push   %eax
574d88:	57                   	push   %edi
574d89:	e8 12 f0 f3 ff       	call   0x4b3da0
574d8e:	57                   	push   %edi
574d8f:	8b e8                	mov    %eax,%ebp
574d91:	e8 4a ee f3 ff       	call   0x4b3be0
574d96:	83 c4 0c             	add    $0xc,%esp
574d99:	85 ed                	test   %ebp,%ebp
574d9b:	7f 0a                	jg     0x574da7
574d9d:	68 b7 00 00 00       	push   $0xb7
574da2:	e9 66 ff ff ff       	jmp    0x574d0d
574da7:	8b 43 0c             	mov    0xc(%ebx),%eax
574daa:	55                   	push   %ebp
574dab:	ff 74 24 14          	push   0x14(%esp)
574daf:	56                   	push   %esi
574db0:	6a 10                	push   $0x10
574db2:	ff 30                	push   (%eax)
574db4:	e8 07 2b f3 ff       	call   0x4a78c0
574db9:	83 c4 04             	add    $0x4,%esp
574dbc:	50                   	push   %eax
574dbd:	ff 74 24 2c          	push   0x2c(%esp)
574dc1:	e8 9a 34 01 00       	call   0x588260
574dc6:	83 c4 18             	add    $0x18,%esp
574dc9:	85 c0                	test   %eax,%eax
574dcb:	0f 84 4f ff ff ff    	je     0x574d20
574dd1:	5f                   	pop    %edi
574dd2:	5e                   	pop    %esi
574dd3:	5d                   	pop    %ebp
574dd4:	b8 01 00 00 00       	mov    $0x1,%eax
574dd9:	5b                   	pop    %ebx
574dda:	59                   	pop    %ecx
574ddb:	c3                   	ret
574ddc:	cc                   	int3
574ddd:	cc                   	int3
574dde:	cc                   	int3
574ddf:	cc                   	int3
574de0:	56                   	push   %esi
574de1:	e8 ba 7a ff ff       	call   0x56c8a0
574de6:	8b f0                	mov    %eax,%esi
574de8:	85 f6                	test   %esi,%esi
574dea:	74 1c                	je     0x574e08
574dec:	6a ff                	push   $0xffffffff
574dee:	ff 74 24 0c          	push   0xc(%esp)
574df2:	56                   	push   %esi
574df3:	e8 68 0c 00 00       	call   0x575a60
574df8:	83 c4 0c             	add    $0xc,%esp
574dfb:	85 c0                	test   %eax,%eax
574dfd:	75 0d                	jne    0x574e0c
574dff:	56                   	push   %esi
574e00:	e8 ab 79 ff ff       	call   0x56c7b0
574e05:	83 c4 04             	add    $0x4,%esp