560b01:	66 8b 4e 36          	mov    0x36(%esi),%cx
560b05:	d3 e0                	shl    %cl,%eax
560b07:	89 44 24 54          	mov    %eax,0x54(%esp)
560b0b:	66 8b 46 34          	mov    0x34(%esi),%ax
560b0f:	8b c8                	mov    %eax,%ecx
560b11:	ba 01 00 00 00       	mov    $0x1,%edx
560b16:	d3 e2                	shl    %cl,%edx
560b18:	8b 4b 08             	mov    0x8(%ebx),%ecx
560b1b:	03 d1                	add    %ecx,%edx
560b1d:	4a                   	dec    %edx
560b1e:	8b c8                	mov    %eax,%ecx
560b20:	d3 ea                	shr    %cl,%edx
560b22:	8b c8                	mov    %eax,%ecx
560b24:	d3 e2                	shl    %cl,%edx
560b26:	89 54 24 58          	mov    %edx,0x58(%esp)
560b2a:	8b cd                	mov    %ebp,%ecx
560b2c:	ba 01 00 00 00       	mov    $0x1,%edx
560b31:	d3 e2                	shl    %cl,%edx
560b33:	8b 4b 0c             	mov    0xc(%ebx),%ecx
560b36:	03 d1                	add    %ecx,%edx
560b38:	4a                   	dec    %edx
560b39:	8b cd                	mov    %ebp,%ecx
560b3b:	d3 ea                	shr    %cl,%edx
560b3d:	8b cd                	mov    %ebp,%ecx
560b3f:	d3 e2                	shl    %cl,%edx
560b41:	89 54 24 5c          	mov    %edx,0x5c(%esp)
560b45:	8b c8                	mov    %eax,%ecx
560b47:	8b 44 24 58          	mov    0x58(%esp),%eax
560b4b:	8b 54 24 50          	mov    0x50(%esp),%edx
560b4f:	2b c2                	sub    %edx,%eax
560b51:	d3 e8                	shr    %cl,%eax
560b53:	89 43 10             	mov    %eax,0x10(%ebx)
560b56:	66 8b 4e 36          	mov    0x36(%esi),%cx
560b5a:	8b 44 24 5c          	mov    0x5c(%esp),%eax
560b5e:	8b 54 24 54          	mov    0x54(%esp),%edx
560b62:	2b c2                	sub    %edx,%eax
560b64:	d3 e8                	shr    %cl,%eax
560b66:	89 43 14             	mov    %eax,0x14(%ebx)
560b69:	8b 43 10             	mov    0x10(%ebx),%eax
560b6c:	f7 6b 14             	imull  0x14(%ebx)
560b6f:	89 43 18             	mov    %eax,0x18(%ebx)
560b72:	8b 53 18             	mov    0x18(%ebx),%edx
560b75:	85 d2                	test   %edx,%edx
560b77:	7f 17                	jg     0x560b90
560b79:	68 68 03 00 00       	push   $0x368
560b7e:	68 8d eb 69 00       	push   $0x69eb8d
560b83:	68 7b eb 69 00       	push   $0x69eb7b
560b88:	e8 b3 9f ff ff       	call   0x55ab40
560b8d:	83 c4 0c             	add    $0xc,%esp
560b90:	8b 53 14             	mov    0x14(%ebx),%edx
560b93:	8b 43 10             	mov    0x10(%ebx),%eax
560b96:	e8 f9 8c 01 00       	call   0x579894
560b9b:	89 43 20             	mov    %eax,0x20(%ebx)
560b9e:	85 c0                	test   %eax,%eax
560ba0:	75 08                	jne    0x560baa
560ba2:	83 c8 ff             	or     $0xffffffff,%eax
560ba5:	e9 f7 02 00 00       	jmp    0x560ea1
560baa:	8b 53 14             	mov    0x14(%ebx),%edx
560bad:	8b 43 10             	mov    0x10(%ebx),%eax
560bb0:	e8 df 8c 01 00       	call   0x579894
560bb5:	89 43 24             	mov    %eax,0x24(%ebx)
560bb8:	85 c0                	test   %eax,%eax
560bba:	75 08                	jne    0x560bc4
560bbc:	83 c8 ff             	or     $0xffffffff,%eax
560bbf:	e9 dd 02 00 00       	jmp    0x560ea1
560bc4:	8b 43 18             	mov    0x18(%ebx),%eax
560bc7:	8b d0                	mov    %eax,%edx
560bc9:	8d 04 82             	lea    (%edx,%eax,4),%eax
560bcc:	8d 04 42             	lea    (%edx,%eax,2),%eax
560bcf:	c1 e0 02             	shl    $0x2,%eax
560bd2:	e8 a5 77 01 00       	call   0x57837c
560bd7:	89 43 1c             	mov    %eax,0x1c(%ebx)
560bda:	85 c0                	test   %eax,%eax
560bdc:	75 08                	jne    0x560be6
560bde:	83 c8 ff             	or     $0xffffffff,%eax
560be1:	e9 bb 02 00 00       	jmp    0x560ea1
560be6:	8b 54 24 44          	mov    0x44(%esp),%edx
560bea:	89 54 24 60          	mov    %edx,0x60(%esp)
560bee:	8b 4c 24 48          	mov    0x48(%esp),%ecx
560bf2:	89 4c 24 64          	mov    %ecx,0x64(%esp)
560bf6:	8b 43 18             	mov    0x18(%ebx),%eax
560bf9:	89 44 24 20          	mov    %eax,0x20(%esp)
560bfd:	8b 6b 1c             	mov    0x1c(%ebx),%ebp
560c00:	8b 44 24 20          	mov    0x20(%esp),%eax
560c04:	85 c0                	test   %eax,%eax
560c06:	0f 8e 4f 01 00 00    	jle    0x560d5b
560c0c:	66 8b 4e 34          	mov    0x34(%esi),%cx
560c10:	b8 01 00 00 00       	mov    $0x1,%eax
560c15:	d3 e0                	shl    %cl,%eax
560c17:	66 8b 4e 36          	mov    0x36(%esi),%cx
560c1b:	8b 54 24 60          	mov    0x60(%esp),%edx
560c1f:	03 c2                	add    %edx,%eax
560c21:	ba 01 00 00 00       	mov    $0x1,%edx
560c26:	d3 e2                	shl    %cl,%edx
560c28:	8b 4c 24 64          	mov    0x64(%esp),%ecx
560c2c:	03 d1                	add    %ecx,%edx
560c2e:	8b 4c 24 60          	mov    0x60(%esp),%ecx
560c32:	3b 0b                	cmp    (%ebx),%ecx
560c34:	76 06                	jbe    0x560c3c
560c36:	8b 4c 24 60          	mov    0x60(%esp),%ecx
560c3a:	eb 02                	jmp    0x560c3e
560c3c:	8b 0b                	mov    (%ebx),%ecx
560c3e:	89 4c 24 68          	mov    %ecx,0x68(%esp)
560c42:	8b 4c 24 64          	mov    0x64(%esp),%ecx
560c46:	3b 4b 04             	cmp    0x4(%ebx),%ecx
560c49:	76 06                	jbe    0x560c51
560c4b:	8b 4c 24 64          	mov    0x64(%esp),%ecx
560c4f:	eb 03                	jmp    0x560c54
560c51:	8b 4b 04             	mov    0x4(%ebx),%ecx
560c54:	89 4c 24 6c          	mov    %ecx,0x6c(%esp)
560c58:	8b 4b 08             	mov    0x8(%ebx),%ecx
560c5b:	3b c1                	cmp    %ecx,%eax
560c5d:	72 03                	jb     0x560c62
560c5f:	8b 43 08             	mov    0x8(%ebx),%eax
560c62:	89 44 24 70          	mov    %eax,0x70(%esp)
560c66:	8b 43 0c             	mov    0xc(%ebx),%eax
560c69:	3b d0                	cmp    %eax,%edx
560c6b:	72 03                	jb     0x560c70
560c6d:	8b 53 0c             	mov    0xc(%ebx),%edx
560c70:	89 54 24 74          	mov    %edx,0x74(%esp)
560c74:	8b 4c 24 70          	mov    0x70(%esp),%ecx
560c78:	8b 44 24 68          	mov    0x68(%esp),%eax
560c7c:	3b c8                	cmp    %eax,%ecx
560c7e:	0f 86 88 00 00 00    	jbe    0x560d0c
560c84:	8b 54 24 74          	mov    0x74(%esp),%edx
560c88:	8b 4c 24 6c          	mov    0x6c(%esp),%ecx
560c8c:	3b d1                	cmp    %ecx,%edx
560c8e:	76 7c                	jbe    0x560d0c
560c90:	c7 45 18 ff ff ff ff 	movl   $0xffffffff,0x18(%ebp)
560c97:	33 c0                	xor    %eax,%eax
560c99:	33 d2                	xor    %edx,%edx
560c9b:	89 45 1c             	mov    %eax,0x1c(%ebp)
560c9e:	89 55 20             	mov    %edx,0x20(%ebp)
560ca1:	33 c9                	xor    %ecx,%ecx
560ca3:	33 c0                	xor    %eax,%eax
560ca5:	89 4d 24             	mov    %ecx,0x24(%ebp)
560ca8:	89 45 00             	mov    %eax,0x0(%ebp)
560cab:	33 d2                	xor    %edx,%edx
560cad:	33 c9                	xor    %ecx,%ecx
560caf:	89 55 04             	mov    %edx,0x4(%ebp)
560cb2:	89 4d 08             	mov    %ecx,0x8(%ebp)
560cb5:	33 c0                	xor    %eax,%eax
560cb7:	33 d2                	xor    %edx,%edx
560cb9:	89 45 0c             	mov    %eax,0xc(%ebp)
560cbc:	89 55 10             	mov    %edx,0x10(%ebp)
560cbf:	c7 45 14 03 00 00 00 	movl   $0x3,0x14(%ebp)
560cc6:	33 c9                	xor    %ecx,%ecx
560cc8:	33 d2                	xor    %edx,%edx
560cca:	89 4d 24             	mov    %ecx,0x24(%ebp)
560ccd:	33 c9                	xor    %ecx,%ecx
560ccf:	33 c0                	xor    %eax,%eax
560cd1:	6a 00                	push   $0x0
560cd3:	e8 80 6f 01 00       	call   0x577c58
560cd8:	89 45 28             	mov    %eax,0x28(%ebp)
560cdb:	85 c0                	test   %eax,%eax
560cdd:	75 08                	jne    0x560ce7
560cdf:	83 c8 ff             	or     $0xffffffff,%eax
560ce2:	e9 ba 01 00 00       	jmp    0x560ea1
560ce7:	8b 54 24 6c          	mov    0x6c(%esp),%edx
560ceb:	52                   	push   %edx
560cec:	8b 4c 24 74          	mov    0x74(%esp),%ecx
560cf0:	51                   	push   %ecx
560cf1:	8b 44 24 7c          	mov    0x7c(%esp),%eax
560cf5:	50                   	push   %eax
560cf6:	8b 57 04             	mov    0x4(%edi),%edx
560cf9:	8b 45 28             	mov    0x28(%ebp),%eax
560cfc:	8b 4c 24 74          	mov    0x74(%esp),%ecx
560d00:	e8 87 71 01 00       	call   0x577e8c
560d05:	83 c5 2c             	add    $0x2c,%ebp
560d08:	ff 4c 24 20          	decl   0x20(%esp)
560d0c:	66 8b 4e 34          	mov    0x34(%esi),%cx
560d10:	b8 01 00 00 00       	mov    $0x1,%eax
560d15:	d3 e0                	shl    %cl,%eax
560d17:	01 44 24 60          	add    %eax,0x60(%esp)
560d1b:	8b 54 24 60          	mov    0x60(%esp),%edx
560d1f:	8b 44 24 4c          	mov    0x4c(%esp),%eax
560d23:	3b d0                	cmp    %eax,%edx
560d25:	72 17                	jb     0x560d3e
560d27:	8b 54 24 44          	mov    0x44(%esp),%edx
560d2b:	89 54 24 60          	mov    %edx,0x60(%esp)
560d2f:	66 8b 4e 36          	mov    0x36(%esi),%cx
560d33:	b8 01 00 00 00       	mov    $0x1,%eax
560d38:	d3 e0                	shl    %cl,%eax
560d3a:	01 44 24 64          	add    %eax,0x64(%esp)
560d3e:	8b 54 24 20          	mov    0x20(%esp),%edx
560d42:	85 d2                	test   %edx,%edx
560d44:	0f 8f c2 fe ff ff    	jg     0x560c0c
560d4a:	eb 0f                	jmp    0x560d5b
560d4c:	33 c9                	xor    %ecx,%ecx
560d4e:	89 4b 1c             	mov    %ecx,0x1c(%ebx)
560d51:	33 c0                	xor    %eax,%eax
560d53:	89 43 20             	mov    %eax,0x20(%ebx)
560d56:	33 d2                	xor    %edx,%edx
560d58:	89 53 24             	mov    %edx,0x24(%ebx)
560d5b:	8b 4e 2c             	mov    0x2c(%esi),%ecx
560d5e:	b8 01 00 00 00       	mov    $0x1,%eax
560d63:	d3 e0                	shl    %cl,%eax
560d65:	01 44 24 44          	add    %eax,0x44(%esp)
560d69:	8b 54 24 44          	mov    0x44(%esp),%edx
560d6d:	8b 4c 24 3c          	mov    0x3c(%esp),%ecx
560d71:	3b d1                	cmp    %ecx,%edx
560d73:	72 16                	jb     0x560d8b
560d75:	8b 44 24 34          	mov    0x34(%esp),%eax
560d79:	89 44 24 44          	mov    %eax,0x44(%esp)
560d7d:	8b 4e 30             	mov    0x30(%esi),%ecx
560d80:	ba 01 00 00 00       	mov    $0x1,%edx
560d85:	d3 e2                	shl    %cl,%edx
560d87:	01 54 24 48          	add    %edx,0x48(%esp)
560d8b:	ff 4c 24 1c          	decl   0x1c(%esp)
560d8f:	83 c3 28             	add    $0x28,%ebx
560d92:	8b 44 24 1c          	mov    0x1c(%esp),%eax
560d96:	85 c0                	test   %eax,%eax
560d98:	0f 8f 62 fc ff ff    	jg     0x560a00
560d9e:	ff 44 24 14          	incl   0x14(%esp)
560da2:	83 c7 20             	add    $0x20,%edi
560da5:	8b 54 24 14          	mov    0x14(%esp),%edx
560da9:	8b 0e                	mov    (%esi),%ecx
560dab:	3b d1                	cmp    %ecx,%edx
560dad:	0f 8c a7 fa ff ff    	jl     0x56085a
560db3:	ff 84 24 88 00 00 00 	incl   0x88(%esp)
560dba:	ff 44 24 10          	incl   0x10(%esp)
560dbe:	83 c6 38             	add    $0x38,%esi
560dc1:	8b 44 24 08          	mov    0x8(%esp),%eax
560dc5:	8b 4c 24 10          	mov    0x10(%esp),%ecx
560dc9:	0f b7 50 14          	movzwl 0x14(%eax),%edx
560dcd:	3b d1                	cmp    %ecx,%edx
560dcf:	0f 8f c5 f6 ff ff    	jg     0x56049a
560dd5:	66 ff 44 24 0c       	incw   0xc(%esp)
560dda:	83 44 24 08 20       	addl   $0x20,0x8(%esp)
560ddf:	83 84 24 84 00 00 00 	addl   $0x20,0x84(%esp)
560de6:	20
560de7:	0f b7 44 24 0c       	movzwl 0xc(%esp),%eax
560dec:	8b 14 24             	mov    (%esp),%edx
560def:	8b 4a 38             	mov    0x38(%edx),%ecx
560df2:	3b c1                	cmp    %ecx,%eax
560df4:	0f 8c 72 f4 ff ff    	jl     0x56026c
560dfa:	8b 54 24 04          	mov    0x4(%esp),%edx
560dfe:	8b 04 24             	mov    (%esp),%eax
560e01:	e8 42 a7 00 00       	call   0x56b548
560e06:	8b 4c 24 04          	mov    0x4(%esp),%ecx
560e0a:	85 c0                	test   %eax,%eax
560e0c:	89 41 34             	mov    %eax,0x34(%ecx)
560e0f:	75 08                	jne    0x560e19
560e11:	83 c8 ff             	or     $0xffffffff,%eax
560e14:	e9 88 00 00 00       	jmp    0x560ea1
560e19:	33 d2                	xor    %edx,%edx
560e1b:	89 94 24 80 00 00 00 	mov    %edx,0x80(%esp)
560e22:	eb 55                	jmp    0x560e79
560e24:	8b 4c 24 04          	mov    0x4(%esp),%ecx
560e28:	8b 94 24 80 00 00 00 	mov    0x80(%esp),%edx
560e2f:	8b 41 20             	mov    0x20(%ecx),%eax
560e32:	8b 40 04             	mov    0x4(%eax),%eax
560e35:	e8 7a bf 00 00       	call   0x56cdb4
560e3a:	e8 b5 be 00 00       	call   0x56ccf4
560e3f:	89 44 24 7c          	mov    %eax,0x7c(%esp)
560e43:	8b 4c 24 7c          	mov    0x7c(%esp),%ecx
560e47:	85 c9                	test   %ecx,%ecx
560e49:	75 17                	jne    0x560e62
560e4b:	68 b0 03 00 00       	push   $0x3b0
560e50:	68 9c eb 69 00       	push   $0x69eb9c
560e55:	68 97 eb 69 00       	push   $0x69eb97
560e5a:	e8 e1 9c ff ff       	call   0x55ab40
560e5f:	83 c4 0c             	add    $0xc,%esp
560e62:	8b 44 24 04          	mov    0x4(%esp),%eax
560e66:	8b 54 24 7c          	mov    0x7c(%esp),%edx
560e6a:	8b 40 34             	mov    0x34(%eax),%eax
560e6d:	e8 96 bd 00 00       	call   0x56cc08
560e72:	ff 84 24 80 00 00 00 	incl   0x80(%esp)
560e79:	8b 4c 24 04          	mov    0x4(%esp),%ecx
560e7d:	8b 41 20             	mov    0x20(%ecx),%eax
560e80:	8b 40 04             	mov    0x4(%eax),%eax
560e83:	e8 34 bf 00 00       	call   0x56cdbc
560e88:	8b 94 24 80 00 00 00 	mov    0x80(%esp),%edx
560e8f:	3b c2                	cmp    %edx,%eax
560e91:	7f 91                	jg     0x560e24
560e93:	8b 4c 24 04          	mov    0x4(%esp),%ecx
560e97:	8b 41 34             	mov    0x34(%ecx),%eax
560e9a:	e8 21 bf 00 00       	call   0x56cdc0
560e9f:	33 c0                	xor    %eax,%eax
560ea1:	81 c4 8c 0a 00 00    	add    $0xa8c,%esp
560ea7:	5d                   	pop    %ebp
560ea8:	5f                   	pop    %edi
560ea9:	5e                   	pop    %esi
560eaa:	5b                   	pop    %ebx
560eab:	c3                   	ret
560eac:	53                   	push   %ebx
560ead:	56                   	push   %esi
560eae:	57                   	push   %edi
560eaf:	55                   	push   %ebp
560eb0:	83 c4 dc             	add    $0xffffffdc,%esp
560eb3:	89 54 24 04          	mov    %edx,0x4(%esp)
560eb7:	89 04 24             	mov    %eax,(%esp)
560eba:	8b 44 24 04          	mov    0x4(%esp),%eax
560ebe:	8b 40 24             	mov    0x24(%eax),%eax
560ec1:	85 c0                	test   %eax,%eax
560ec3:	0f 84 ae 01 00 00    	je     0x561077
560ec9:	33 d2                	xor    %edx,%edx
560ecb:	89 54 24 0c          	mov    %edx,0xc(%esp)
560ecf:	89 44 24 08          	mov    %eax,0x8(%esp)
560ed3:	e9 8d 01 00 00       	jmp    0x561065
560ed8:	33 c9                	xor    %ecx,%ecx
560eda:	89 4c 24 14          	mov    %ecx,0x14(%esp)
560ede:	8b 44 24 08          	mov    0x8(%esp),%eax
560ee2:	8b 50 18             	mov    0x18(%eax),%edx
560ee5:	89 54 24 1c          	mov    %edx,0x1c(%esp)
560ee9:	e9 2a 01 00 00       	jmp    0x561018
560eee:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
560ef2:	8b 41 04             	mov    0x4(%ecx),%eax
560ef5:	85 c0                	test   %eax,%eax
560ef7:	0f 84 12 01 00 00    	je     0x56100f
560efd:	33 d2                	xor    %edx,%edx
560eff:	89 54 24 10          	mov    %edx,0x10(%esp)
560f03:	89 44 24 18          	mov    %eax,0x18(%esp)
560f07:	e9 e1 00 00 00       	jmp    0x560fed
560f0c:	8b 4c 24 18          	mov    0x18(%esp),%ecx
560f10:	8b 01                	mov    (%ecx),%eax
560f12:	85 c0                	test   %eax,%eax
560f14:	0f 84 ab 00 00 00    	je     0x560fc5
560f1a:	33 d2                	xor    %edx,%edx
560f1c:	8b f8                	mov    %eax,%edi
560f1e:	89 54 24 20          	mov    %edx,0x20(%esp)
560f22:	e9 8b 00 00 00       	jmp    0x560fb2
560f27:	8b 47 1c             	mov    0x1c(%edi),%eax
560f2a:	85 c0                	test   %eax,%eax
560f2c:	74 7d                	je     0x560fab
560f2e:	33 ed                	xor    %ebp,%ebp
560f30:	8b d8                	mov    %eax,%ebx
560f32:	eb 4c                	jmp    0x560f80
560f34:	eb 13                	jmp    0x560f49
560f36:	8b f0                	mov    %eax,%esi
560f38:	8d 43 04             	lea    0x4(%ebx),%eax
560f3b:	8b d6                	mov    %esi,%edx
560f3d:	e8 c2 16 00 00       	call   0x562604
560f42:	8b c6                	mov    %esi,%eax
560f44:	e8 33 17 00 00       	call   0x56267c
560f49:	8b 43 04             	mov    0x4(%ebx),%eax
560f4c:	85 c0                	test   %eax,%eax
560f4e:	75 e6                	jne    0x560f36
560f50:	8b 43 28             	mov    0x28(%ebx),%eax
560f53:	e8 3c 6e 01 00       	call   0x577d94
560f58:	8b 43 1c             	mov    0x1c(%ebx),%eax
560f5b:	85 c0                	test   %eax,%eax
560f5d:	74 05                	je     0x560f64
560f5f:	e8 d0 0b 01 00       	call   0x571b34
560f64:	8b 43 20             	mov    0x20(%ebx),%eax
560f67:	85 c0                	test   %eax,%eax
560f69:	74 05                	je     0x560f70
560f6b:	e8 64 f9 00 00       	call   0x5708d4
560f70:	8b 43 24             	mov    0x24(%ebx),%eax
560f73:	85 c0                	test   %eax,%eax