569978:	85 c0                	test   %eax,%eax
56997a:	0f 85 a8 00 00 00    	jne    0x569a28
569980:	8b 53 64             	mov    0x64(%ebx),%edx
569983:	85 d2                	test   %edx,%edx
569985:	75 17                	jne    0x56999e
569987:	68 c5 00 00 00       	push   $0xc5
56998c:	68 b8 f9 69 00       	push   $0x69f9b8
569991:	68 ae f9 69 00       	push   $0x69f9ae
569996:	e8 a5 11 ff ff       	call   0x55ab40
56999b:	83 c4 0c             	add    $0xc,%esp
56999e:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
5699a1:	51                   	push   %ecx
5699a2:	8b 43 64             	mov    0x64(%ebx),%eax
5699a5:	85 c0                	test   %eax,%eax
5699a7:	75 17                	jne    0x5699c0
5699a9:	68 c6 00 00 00       	push   $0xc6
5699ae:	68 ce f9 69 00       	push   $0x69f9ce
5699b3:	68 c4 f9 69 00       	push   $0x69f9c4
5699b8:	e8 83 11 ff ff       	call   0x55ab40
5699bd:	83 c4 0c             	add    $0xc,%esp
5699c0:	8b 53 20             	mov    0x20(%ebx),%edx
5699c3:	52                   	push   %edx
5699c4:	8b 4b 64             	mov    0x64(%ebx),%ecx
5699c7:	85 c9                	test   %ecx,%ecx
5699c9:	75 17                	jne    0x5699e2
5699cb:	68 c6 00 00 00       	push   $0xc6
5699d0:	68 e4 f9 69 00       	push   $0x69f9e4
5699d5:	68 da f9 69 00       	push   $0x69f9da
5699da:	e8 61 11 ff ff       	call   0x55ab40
5699df:	83 c4 0c             	add    $0xc,%esp
5699e2:	8b 43 24             	mov    0x24(%ebx),%eax
5699e5:	50                   	push   %eax
5699e6:	8b 53 64             	mov    0x64(%ebx),%edx
5699e9:	85 d2                	test   %edx,%edx
5699eb:	75 17                	jne    0x569a04
5699ed:	68 c5 00 00 00       	push   $0xc5
5699f2:	68 a2 f9 69 00       	push   $0x69f9a2
5699f7:	68 98 f9 69 00       	push   $0x69f998
5699fc:	e8 3f 11 ff ff       	call   0x55ab40
569a01:	83 c4 0c             	add    $0xc,%esp
569a04:	8b 4b 18             	mov    0x18(%ebx),%ecx
569a07:	8b d7                	mov    %edi,%edx
569a09:	8b c6                	mov    %esi,%eax
569a0b:	e8 20 00 00 00       	call   0x569a30
569a10:	85 c0                	test   %eax,%eax
569a12:	74 05                	je     0x569a19
569a14:	83 c8 ff             	or     $0xffffffff,%eax
569a17:	eb 11                	jmp    0x569a2a
569a19:	8b c3                	mov    %ebx,%eax
569a1b:	e8 a0 1e 00 00       	call   0x56b8c0
569a20:	85 c0                	test   %eax,%eax
569a22:	0f 84 58 ff ff ff    	je     0x569980
569a28:	33 c0                	xor    %eax,%eax
569a2a:	5f                   	pop    %edi
569a2b:	5e                   	pop    %esi
569a2c:	5b                   	pop    %ebx
569a2d:	c3                   	ret
569a2e:	90                   	nop
569a2f:	90                   	nop
569a30:	55                   	push   %ebp
569a31:	8b ec                	mov    %esp,%ebp
569a33:	83 c4 a4             	add    $0xffffffa4,%esp
569a36:	53                   	push   %ebx
569a37:	56                   	push   %esi
569a38:	57                   	push   %edi
569a39:	89 4d f4             	mov    %ecx,-0xc(%ebp)
569a3c:	89 55 f8             	mov    %edx,-0x8(%ebp)
569a3f:	89 45 fc             	mov    %eax,-0x4(%ebp)
569a42:	8b 45 fc             	mov    -0x4(%ebp),%eax
569a45:	8b 50 0c             	mov    0xc(%eax),%edx
569a48:	89 55 b0             	mov    %edx,-0x50(%ebp)
569a4b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
569a4e:	8b 41 08             	mov    0x8(%ecx),%eax
569a51:	89 45 a8             	mov    %eax,-0x58(%ebp)
569a54:	8b 55 a8             	mov    -0x58(%ebp),%edx
569a57:	f6 42 3c 02          	testb  $0x2,0x3c(%edx)
569a5b:	74 4f                	je     0x569aac
569a5d:	b8 91 ff 00 00       	mov    $0xff91,%eax
569a62:	e8 79 c5 00 00       	call   0x575fe0
569a67:	89 45 a4             	mov    %eax,-0x5c(%ebp)
569a6a:	85 c0                	test   %eax,%eax
569a6c:	75 08                	jne    0x569a76
569a6e:	83 c8 ff             	or     $0xffffffff,%eax
569a71:	e9 33 09 00 00       	jmp    0x56a3a9
569a76:	8b 55 b0             	mov    -0x50(%ebp),%edx
569a79:	8b 4a 1c             	mov    0x1c(%edx),%ecx
569a7c:	8b 55 a4             	mov    -0x5c(%ebp),%edx
569a7f:	66 8b 41 68          	mov    0x68(%ecx),%ax
569a83:	66 89 42 08          	mov    %ax,0x8(%edx)
569a87:	8b 4d fc             	mov    -0x4(%ebp),%ecx
569a8a:	8b 45 f8             	mov    -0x8(%ebp),%eax
569a8d:	8b 51 10             	mov    0x10(%ecx),%edx
569a90:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
569a93:	e8 50 c4 00 00       	call   0x575ee8
569a98:	85 c0                	test   %eax,%eax
569a9a:	74 08                	je     0x569aa4
569a9c:	83 c8 ff             	or     $0xffffffff,%eax
569a9f:	e9 05 09 00 00       	jmp    0x56a3a9
569aa4:	8b 45 a4             	mov    -0x5c(%ebp),%eax
569aa7:	e8 7c c5 00 00       	call   0x576028
569aac:	ba f0 f9 69 00       	mov    $0x69f9f0,%edx
569ab1:	8b 45 f8             	mov    -0x8(%ebp),%eax
569ab4:	e8 17 6d 00 00       	call   0x5707d0
569ab9:	8b f0                	mov    %eax,%esi
569abb:	85 f6                	test   %esi,%esi
569abd:	75 17                	jne    0x569ad6
569abf:	68 00 01 00 00       	push   $0x100
569ac4:	68 f8 f9 69 00       	push   $0x69f9f8
569ac9:	68 f3 f9 69 00       	push   $0x69f9f3
569ace:	e8 6d 10 ff ff       	call   0x55ab40
569ad3:	83 c4 0c             	add    $0xc,%esp
569ad6:	f6 46 10 02          	testb  $0x2,0x10(%esi)
569ada:	75 17                	jne    0x569af3
569adc:	68 02 01 00 00       	push   $0x102
569ae1:	68 2c fa 69 00       	push   $0x69fa2c
569ae6:	68 04 fa 69 00       	push   $0x69fa04
569aeb:	e8 50 10 ff ff       	call   0x55ab40
569af0:	83 c4 0c             	add    $0xc,%esp
569af3:	ff 4e 08             	decl   0x8(%esi)
569af6:	0f 89 bb 00 00 00    	jns    0x569bb7
569afc:	66 8b 46 04          	mov    0x4(%esi),%ax
569b00:	c1 e0 08             	shl    $0x8,%eax
569b03:	66 25 ff ff          	and    $0xffff,%ax
569b07:	66 89 46 04          	mov    %ax,0x4(%esi)
569b0b:	66 81 7e 04 00 ff    	cmpw   $0xff00,0x4(%esi)
569b11:	75 07                	jne    0x569b1a
569b13:	ba 06 00 00 00       	mov    $0x6,%edx
569b18:	eb 05                	jmp    0x569b1f
569b1a:	ba 07 00 00 00       	mov    $0x7,%edx
569b1f:	66 b8 01 00          	mov    $0x1,%ax
569b23:	89 56 08             	mov    %edx,0x8(%esi)
569b26:	8b 4e 08             	mov    0x8(%esi),%ecx
569b29:	66 d3 e0             	shl    %cl,%ax
569b2c:	66 09 46 04          	or     %ax,0x4(%esi)
569b30:	8b 46 0c             	mov    0xc(%esi),%eax
569b33:	f6 40 08 07          	testb  $0x7,0x8(%eax)
569b37:	75 6c                	jne    0x569ba5
569b39:	8b 56 0c             	mov    0xc(%esi),%edx
569b3c:	8b 4a 40             	mov    0x40(%edx),%ecx
569b3f:	85 c9                	test   %ecx,%ecx
569b41:	7c 1c                	jl     0x569b5f
569b43:	8b 46 0c             	mov    0xc(%esi),%eax
569b46:	8b 4e 0c             	mov    0xc(%esi),%ecx
569b49:	8b 50 40             	mov    0x40(%eax),%edx
569b4c:	8b 41 3c             	mov    0x3c(%ecx),%eax
569b4f:	3b d0                	cmp    %eax,%edx
569b51:	7f 0c                	jg     0x569b5f
569b53:	8b 56 0c             	mov    0xc(%esi),%edx
569b56:	83 4a 08 04          	orl    $0x4,0x8(%edx)
569b5a:	83 c9 ff             	or     $0xffffffff,%ecx
569b5d:	eb 49                	jmp    0x569ba8
569b5f:	8b 46 0c             	mov    0xc(%esi),%eax
569b62:	83 48 04 20          	orl    $0x20,0x4(%eax)
569b66:	8b 56 0c             	mov    0xc(%esi),%edx
569b69:	ff 4a 1c             	decl   0x1c(%edx)
569b6c:	79 19                	jns    0x569b87
569b6e:	0f b7 56 04          	movzwl 0x4(%esi),%edx
569b72:	c1 fa 08             	sar    $0x8,%edx
569b75:	8b 46 0c             	mov    0xc(%esi),%eax
569b78:	81 e2 ff 00 00 00    	and    $0xff,%edx
569b7e:	e8 95 f2 00 00       	call   0x578e18
569b83:	8b c8                	mov    %eax,%ecx
569b85:	eb 21                	jmp    0x569ba8
569b87:	8b 46 0c             	mov    0xc(%esi),%eax
569b8a:	ff 40 3c             	incl   0x3c(%eax)
569b8d:	8b 56 0c             	mov    0xc(%esi),%edx
569b90:	8b 4a 18             	mov    0x18(%edx),%ecx
569b93:	ff 42 18             	incl   0x18(%edx)
569b96:	0f b7 46 04          	movzwl 0x4(%esi),%eax
569b9a:	c1 f8 08             	sar    $0x8,%eax
569b9d:	88 01                	mov    %al,(%ecx)
569b9f:	33 c9                	xor    %ecx,%ecx
569ba1:	8a c8                	mov    %al,%cl
569ba3:	eb 03                	jmp    0x569ba8
569ba5:	83 c9 ff             	or     $0xffffffff,%ecx
569ba8:	41                   	inc    %ecx
569ba9:	75 05                	jne    0x569bb0
569bab:	83 c8 ff             	or     $0xffffffff,%eax
569bae:	eb 1a                	jmp    0x569bca
569bb0:	b8 01 00 00 00       	mov    $0x1,%eax
569bb5:	eb 13                	jmp    0x569bca
569bb7:	66 ba 01 00          	mov    $0x1,%dx
569bbb:	8b 4e 08             	mov    0x8(%esi),%ecx
569bbe:	66 d3 e2             	shl    %cl,%dx
569bc1:	66 09 56 04          	or     %dx,0x4(%esi)
569bc5:	b8 01 00 00 00       	mov    $0x1,%eax
569bca:	40                   	inc    %eax
569bcb:	75 08                	jne    0x569bd5
569bcd:	83 c8 ff             	or     $0xffffffff,%eax
569bd0:	e9 d4 07 00 00       	jmp    0x56a3a9
569bd5:	8b 55 b0             	mov    -0x50(%ebp),%edx
569bd8:	8b 45 f4             	mov    -0xc(%ebp),%eax
569bdb:	8b 4a 2c             	mov    0x2c(%edx),%ecx
569bde:	8b d0                	mov    %eax,%edx
569be0:	c1 e0 07             	shl    $0x7,%eax
569be3:	03 c2                	add    %edx,%eax
569be5:	c1 e0 02             	shl    $0x2,%eax
569be8:	03 c8                	add    %eax,%ecx
569bea:	89 4d f0             	mov    %ecx,-0x10(%ebp)
569bed:	8b 55 10             	mov    0x10(%ebp),%edx
569bf0:	8b 4d f0             	mov    -0x10(%ebp),%ecx
569bf3:	c1 e2 02             	shl    $0x2,%edx
569bf6:	8b 41 04             	mov    0x4(%ecx),%eax
569bf9:	8d 14 52             	lea    (%edx,%edx,2),%edx
569bfc:	8d 14 92             	lea    (%edx,%edx,4),%edx
569bff:	03 c2                	add    %edx,%eax
569c01:	8b 50 30             	mov    0x30(%eax),%edx
569c04:	8b 48 34             	mov    0x34(%eax),%ecx
569c07:	c1 e2 02             	shl    $0x2,%edx
569c0a:	8d 14 d2             	lea    (%edx,%edx,8),%edx
569c0d:	03 ca                	add    %edx,%ecx
569c0f:	89 4d e8             	mov    %ecx,-0x18(%ebp)
569c12:	8b 40 34             	mov    0x34(%eax),%eax
569c15:	89 45 ec             	mov    %eax,-0x14(%ebp)
569c18:	8b 45 e8             	mov    -0x18(%ebp),%eax
569c1b:	8b 4d ec             	mov    -0x14(%ebp),%ecx
569c1e:	3b c8                	cmp    %eax,%ecx
569c20:	0f 84 50 05 00 00    	je     0x56a176
569c26:	8b 55 ec             	mov    -0x14(%ebp),%edx
569c29:	8b 4a 04             	mov    0x4(%edx),%ecx
569c2c:	85 c9                	test   %ecx,%ecx
569c2e:	0f 84 30 05 00 00    	je     0x56a164
569c34:	8b 45 ec             	mov    -0x14(%ebp),%eax
569c37:	8b 4d 0c             	mov    0xc(%ebp),%ecx
569c3a:	8b 10                	mov    (%eax),%edx
569c3c:	8b c1                	mov    %ecx,%eax
569c3e:	8d 0c 48             	lea    (%eax,%ecx,2),%ecx
569c41:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
569c44:	c1 e1 02             	shl    $0x2,%ecx
569c47:	03 d1                	add    %ecx,%edx
569c49:	89 55 ac             	mov    %edx,-0x54(%ebp)
569c4c:	8b 55 ac             	mov    -0x54(%ebp),%edx
569c4f:	8b 4a 1c             	mov    0x1c(%edx),%ecx
569c52:	85 c9                	test   %ecx,%ecx
569c54:	0f 84 0a 05 00 00    	je     0x56a164
569c5a:	8b 45 ac             	mov    -0x54(%ebp),%eax
569c5d:	8b 4d ac             	mov    -0x54(%ebp),%ecx
569c60:	8b 50 1c             	mov    0x1c(%eax),%edx
569c63:	8b 41 18             	mov    0x18(%ecx),%eax
569c66:	c1 e0 02             	shl    $0x2,%eax
569c69:	8d 04 40             	lea    (%eax,%eax,2),%eax
569c6c:	8d 04 80             	lea    (%eax,%eax,4),%eax
569c6f:	03 d0                	add    %eax,%edx
569c71:	89 55 e0             	mov    %edx,-0x20(%ebp)
569c74:	8b 55 ac             	mov    -0x54(%ebp),%edx
569c77:	8b 4a 1c             	mov    0x1c(%edx),%ecx
569c7a:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
569c7d:	8b 45 e4             	mov    -0x1c(%ebp),%eax
569c80:	8b 55 e0             	mov    -0x20(%ebp),%edx
569c83:	3b c2                	cmp    %edx,%eax
569c85:	0f 84 d3 00 00 00    	je     0x569d5e
569c8b:	8b 4d 08             	mov    0x8(%ebp),%ecx
569c8e:	85 c9                	test   %ecx,%ecx
569c90:	75 36                	jne    0x569cc8
569c92:	8b 45 ac             	mov    -0x54(%ebp),%eax
569c95:	ff 70 1c             	push   0x1c(%eax)
569c98:	8b 45 e4             	mov    -0x1c(%ebp),%eax
569c9b:	5a                   	pop    %edx
569c9c:	2b c2                	sub    %edx,%eax
569c9e:	b9 3c 00 00 00       	mov    $0x3c,%ecx
569ca3:	99                   	cltd
569ca4:	f7 f9                	idiv   %ecx
569ca6:	8b d0                	mov    %eax,%edx
569ca8:	8b 45 ac             	mov    -0x54(%ebp),%eax
569cab:	8b 40 24             	mov    0x24(%eax),%eax
569cae:	e8 5d fe 00 00       	call   0x579b10
569cb3:	8b f8                	mov    %eax,%edi
569cb5:	8b 45 e4             	mov    -0x1c(%ebp),%eax
569cb8:	8b 48 0c             	mov    0xc(%eax),%ecx
569cbb:	8b 55 ac             	mov    -0x54(%ebp),%edx
569cbe:	8b 42 24             	mov    0x24(%edx),%eax
569cc1:	8b d7                	mov    %edi,%edx
569cc3:	e8 10 fe 00 00       	call   0x579ad8
569cc8:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
569ccb:	8b 59 28             	mov    0x28(%ecx),%ebx
569cce:	85 db                	test   %ebx,%ebx
569cd0:	74 0a                	je     0x569cdc
569cd2:	8b 43 20             	mov    0x20(%ebx),%eax
569cd5:	8b 55 08             	mov    0x8(%ebp),%edx
569cd8:	3b c2                	cmp    %edx,%eax
569cda:	74 04                	je     0x569ce0
569cdc:	33 c9                	xor    %ecx,%ecx
569cde:	eb 05                	jmp    0x569ce5
569ce0:	b9 01 00 00 00       	mov    $0x1,%ecx
569ce5:	89 4d cc             	mov    %ecx,-0x34(%ebp)
569ce8:	8b 45 cc             	mov    -0x34(%ebp),%eax
569ceb:	85 c0                	test   %eax,%eax
569ced:	74 5d                	je     0x569d4c
569cef:	8b 55 e4             	mov    -0x1c(%ebp),%edx
569cf2:	8b 4a 08             	mov    0x8(%edx),%ecx
569cf5:	85 c9                	test   %ecx,%ecx
569cf7:	75 53                	jne    0x569d4c
569cf9:	8b 43 20             	mov    0x20(%ebx),%eax
569cfc:	8b 55 08             	mov    0x8(%ebp),%edx
569cff:	3b c2                	cmp    %edx,%eax
569d01:	74 17                	je     0x569d1a
569d03:	68 1d 01 00 00       	push   $0x11d
569d08:	68 4d fa 69 00       	push   $0x69fa4d
569d0d:	68 38 fa 69 00       	push   $0x69fa38
569d12:	e8 29 0e ff ff       	call   0x55ab40
569d17:	83 c4 0c             	add    $0xc,%esp
569d1a:	8b 4d ac             	mov    -0x54(%ebp),%ecx
569d1d:	8b 45 e4             	mov    -0x1c(%ebp),%eax
569d20:	8b 51 1c             	mov    0x1c(%ecx),%edx
569d23:	2b c2                	sub    %edx,%eax
569d25:	b9 3c 00 00 00       	mov    $0x3c,%ecx
569d2a:	99                   	cltd
569d2b:	f7 f9                	idiv   %ecx
569d2d:	8b d0                	mov    %eax,%edx
569d2f:	8b 45 ac             	mov    -0x54(%ebp),%eax
569d32:	8b 40 20             	mov    0x20(%eax),%eax
569d35:	e8 d6 fd 00 00       	call   0x579b10
569d3a:	8b f8                	mov    %eax,%edi
569d3c:	8b 45 ac             	mov    -0x54(%ebp),%eax
569d3f:	8b d7                	mov    %edi,%edx
569d41:	8b 4b 20             	mov    0x20(%ebx),%ecx
569d44:	8b 40 20             	mov    0x20(%eax),%eax
569d47:	e8 8c fd 00 00       	call   0x579ad8
569d4c:	83 45 e4 3c          	addl   $0x3c,-0x1c(%ebp)
569d50:	8b 45 e4             	mov    -0x1c(%ebp),%eax
569d53:	8b 55 e0             	mov    -0x20(%ebp),%edx
569d56:	3b c2                	cmp    %edx,%eax
569d58:	0f 85 2d ff ff ff    	jne    0x569c8b
569d5e:	8b 4d ac             	mov    -0x54(%ebp),%ecx
569d61:	8b 55 ac             	mov    -0x54(%ebp),%edx
569d64:	8b 41 1c             	mov    0x1c(%ecx),%eax
569d67:	8b 4a 18             	mov    0x18(%edx),%ecx
569d6a:	c1 e1 02             	shl    $0x2,%ecx
569d6d:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
569d70:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
569d73:	03 c1                	add    %ecx,%eax
569d75:	89 45 e0             	mov    %eax,-0x20(%ebp)
569d78:	8b 45 ac             	mov    -0x54(%ebp),%eax
569d7b:	8b 50 1c             	mov    0x1c(%eax),%edx
569d7e:	89 55 e4             	mov    %edx,-0x1c(%ebp)
569d81:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
569d84:	8b 45 e0             	mov    -0x20(%ebp),%eax
569d87:	3b c8                	cmp    %eax,%ecx
569d89:	0f 84 d5 03 00 00    	je     0x56a164
569d8f:	8b 55 e4             	mov    -0x1c(%ebp),%edx
569d92:	8b 5a 28             	mov    0x28(%edx),%ebx
569d95:	85 db                	test   %ebx,%ebx
569d97:	74 0a                	je     0x569da3
569d99:	8b 43 20             	mov    0x20(%ebx),%eax
569d9c:	8b 55 08             	mov    0x8(%ebp),%edx
569d9f:	3b c2                	cmp    %edx,%eax
569da1:	74 04                	je     0x569da7
569da3:	33 c9                	xor    %ecx,%ecx
569da5:	eb 05                	jmp    0x569dac
569da7:	b9 01 00 00 00       	mov    $0x1,%ecx