5569b2:	0f b7 0c 42          	movzwl (%edx,%eax,2),%ecx
5569b6:	0f af 8c 24 50 01 00 	imul   0x150(%esp),%ecx
5569bd:	00
5569be:	c1 e9 08             	shr    $0x8,%ecx
5569c1:	89 8c 24 50 01 00 00 	mov    %ecx,0x150(%esp)
5569c8:	8b 93 c0 01 00 00    	mov    0x1c0(%ebx),%edx
5569ce:	0f b7 0c 42          	movzwl (%edx,%eax,2),%ecx
5569d2:	0f af 8c 24 4c 01 00 	imul   0x14c(%esp),%ecx
5569d9:	00
5569da:	c1 e9 08             	shr    $0x8,%ecx
5569dd:	89 8c 24 4c 01 00 00 	mov    %ecx,0x14c(%esp)
5569e4:	40                   	inc    %eax
5569e5:	3b f0                	cmp    %eax,%esi
5569e7:	7f b5                	jg     0x55699e
5569e9:	8b 83 c8 01 00 00    	mov    0x1c8(%ebx),%eax
5569ef:	0f b7 40 08          	movzwl 0x8(%eax),%eax
5569f3:	f7 ac 24 50 01 00 00 	imull  0x150(%esp)
5569fa:	c1 e8 03             	shr    $0x3,%eax
5569fd:	89 84 24 50 01 00 00 	mov    %eax,0x150(%esp)
556a04:	8b 93 c8 01 00 00    	mov    0x1c8(%ebx),%edx
556a0a:	0f b7 4a 08          	movzwl 0x8(%edx),%ecx
556a0e:	0f af 8c 24 4c 01 00 	imul   0x14c(%esp),%ecx
556a15:	00
556a16:	c1 e9 03             	shr    $0x3,%ecx
556a19:	89 8c 24 4c 01 00 00 	mov    %ecx,0x14c(%esp)
556a20:	8b 84 24 4c 01 00 00 	mov    0x14c(%esp),%eax
556a27:	3d c0 ff 3f 00       	cmp    $0x3fffc0,%eax
556a2c:	76 0d                	jbe    0x556a3b
556a2e:	c7 84 24 24 01 00 00 	movl   $0x7fffffff,0x124(%esp)
556a35:	ff ff ff 7f
556a39:	eb 1a                	jmp    0x556a55
556a3b:	8b 94 24 4c 01 00 00 	mov    0x14c(%esp),%edx
556a42:	c1 e2 0a             	shl    $0xa,%edx
556a45:	8b 8c 24 50 01 00 00 	mov    0x150(%esp),%ecx
556a4c:	03 d1                	add    %ecx,%edx
556a4e:	89 94 24 24 01 00 00 	mov    %edx,0x124(%esp)
556a55:	8b 84 24 24 01 00 00 	mov    0x124(%esp),%eax
556a5c:	8b 54 24 10          	mov    0x10(%esp),%edx
556a60:	3b c2                	cmp    %edx,%eax
556a62:	73 0a                	jae    0x556a6e
556a64:	8b 8b bc 00 00 00    	mov    0xbc(%ebx),%ecx
556a6a:	89 4c 24 08          	mov    %ecx,0x8(%esp)
556a6e:	8b 54 24 08          	mov    0x8(%esp),%edx
556a72:	8b c3                	mov    %ebx,%eax
556a74:	e8 77 00 00 00       	call   0x556af0
556a79:	8a 8b b9 01 00 00    	mov    0x1b9(%ebx),%cl
556a7f:	84 c9                	test   %cl,%cl
556a81:	76 5f                	jbe    0x556ae2
556a83:	c7 84 24 54 01 00 00 	movl   $0x1,0x154(%esp)
556a8a:	01 00 00 00
556a8e:	8b 84 24 54 01 00 00 	mov    0x154(%esp),%eax
556a95:	3b f0                	cmp    %eax,%esi
556a97:	7e 33                	jle    0x556acc
556a99:	8b 93 bc 01 00 00    	mov    0x1bc(%ebx),%edx
556a9f:	8b 8c 24 54 01 00 00 	mov    0x154(%esp),%ecx
556aa6:	8a 44 0a ff          	mov    -0x1(%edx,%ecx,1),%al
556aaa:	8b 93 bc 01 00 00    	mov    0x1bc(%ebx),%edx
556ab0:	8b 8c 24 54 01 00 00 	mov    0x154(%esp),%ecx
556ab7:	88 04 0a             	mov    %al,(%edx,%ecx,1)
556aba:	ff 84 24 54 01 00 00 	incl   0x154(%esp)
556ac1:	8b 84 24 54 01 00 00 	mov    0x154(%esp),%eax
556ac8:	3b f0                	cmp    %eax,%esi
556aca:	7f cd                	jg     0x556a99
556acc:	8b 93 bc 01 00 00    	mov    0x1bc(%ebx),%edx
556ad2:	8b 8c 24 54 01 00 00 	mov    0x154(%esp),%ecx
556ad9:	8b 44 24 08          	mov    0x8(%esp),%eax
556add:	8a 00                	mov    (%eax),%al
556adf:	88 04 0a             	mov    %al,(%edx,%ecx,1)
556ae2:	81 c4 58 01 00 00    	add    $0x158,%esp
556ae8:	5d                   	pop    %ebp
556ae9:	5f                   	pop    %edi
556aea:	5e                   	pop    %esi
556aeb:	5b                   	pop    %ebx
556aec:	c3                   	ret
556aed:	90                   	nop
556aee:	90                   	nop
556aef:	90                   	nop
556af0:	53                   	push   %ebx
556af1:	8b d8                	mov    %eax,%ebx
556af3:	89 53 34             	mov    %edx,0x34(%ebx)
556af6:	8b 83 c4 00 00 00    	mov    0xc4(%ebx),%eax
556afc:	40                   	inc    %eax
556afd:	89 43 38             	mov    %eax,0x38(%ebx)
556b00:	8d 43 34             	lea    0x34(%ebx),%eax
556b03:	33 d2                	xor    %edx,%edx
556b05:	e8 5a 02 fd ff       	call   0x526d64
556b0a:	85 c0                	test   %eax,%eax
556b0c:	74 1e                	je     0x556b2c
556b0e:	8b 43 4c             	mov    0x4c(%ebx),%eax
556b11:	85 c0                	test   %eax,%eax
556b13:	74 0b                	je     0x556b20
556b15:	8b d0                	mov    %eax,%edx
556b17:	8b c3                	mov    %ebx,%eax
556b19:	e8 2e b1 ff ff       	call   0x551c4c
556b1e:	eb 0c                	jmp    0x556b2c
556b20:	ba a2 d3 69 00       	mov    $0x69d3a2,%edx
556b25:	8b c3                	mov    %ebx,%eax
556b27:	e8 20 b1 ff ff       	call   0x551c4c
556b2c:	8b 53 44             	mov    0x44(%ebx),%edx
556b2f:	85 d2                	test   %edx,%edx
556b31:	75 19                	jne    0x556b4c
556b33:	8b 4b 70             	mov    0x70(%ebx),%ecx
556b36:	8b 53 6c             	mov    0x6c(%ebx),%edx
556b39:	8b c3                	mov    %ebx,%eax
556b3b:	e8 10 d6 ff ff       	call   0x554150
556b40:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
556b43:	89 4b 40             	mov    %ecx,0x40(%ebx)
556b46:	8b 43 70             	mov    0x70(%ebx),%eax
556b49:	89 43 44             	mov    %eax,0x44(%ebx)
556b4c:	8b 53 38             	mov    0x38(%ebx),%edx
556b4f:	85 d2                	test   %edx,%edx
556b51:	75 ad                	jne    0x556b00
556b53:	8b 83 a8 00 00 00    	mov    0xa8(%ebx),%eax
556b59:	85 c0                	test   %eax,%eax
556b5b:	74 12                	je     0x556b6f
556b5d:	8b 93 ac 00 00 00    	mov    0xac(%ebx),%edx
556b63:	89 93 a8 00 00 00    	mov    %edx,0xa8(%ebx)
556b69:	89 83 ac 00 00 00    	mov    %eax,0xac(%ebx)
556b6f:	8b c3                	mov    %ebx,%eax
556b71:	e8 3e e7 ff ff       	call   0x5552b4
556b76:	ff 83 14 01 00 00    	incl   0x114(%ebx)
556b7c:	8b 83 10 01 00 00    	mov    0x110(%ebx),%eax
556b82:	85 c0                	test   %eax,%eax
556b84:	76 11                	jbe    0x556b97
556b86:	8b 93 14 01 00 00    	mov    0x114(%ebx),%edx
556b8c:	3b c2                	cmp    %edx,%eax
556b8e:	77 07                	ja     0x556b97
556b90:	8b c3                	mov    %ebx,%eax
556b92:	e8 29 bd ff ff       	call   0x5528c0
556b97:	5b                   	pop    %ebx
556b98:	c3                   	ret
556b99:	8d 40 00             	lea    0x0(%eax),%eax
556b9c:	53                   	push   %ebx
556b9d:	56                   	push   %esi
556b9e:	8b da                	mov    %edx,%ebx
556ba0:	8b f0                	mov    %eax,%esi
556ba2:	83 fb 08             	cmp    $0x8,%ebx
556ba5:	7e 0c                	jle    0x556bb3
556ba7:	ba e4 d4 69 00       	mov    $0x69d4e4,%edx
556bac:	8b c6                	mov    %esi,%eax
556bae:	e8 99 b0 ff ff       	call   0x551c4c
556bb3:	85 db                	test   %ebx,%ebx
556bb5:	7d 04                	jge    0x556bbb
556bb7:	33 c9                	xor    %ecx,%ecx
556bb9:	eb 02                	jmp    0x556bbd
556bbb:	8b cb                	mov    %ebx,%ecx
556bbd:	88 8e ec 00 00 00    	mov    %cl,0xec(%esi)
556bc3:	5e                   	pop    %esi
556bc4:	5b                   	pop    %ebx
556bc5:	c3                   	ret
556bc6:	90                   	nop
556bc7:	90                   	nop
556bc8:	53                   	push   %ebx
556bc9:	56                   	push   %esi
556bca:	83 c4 f8             	add    $0xfffffff8,%esp
556bcd:	8b d9                	mov    %ecx,%ebx
556bcf:	8b 0d dc d4 69 00    	mov    0x69d4dc,%ecx
556bd5:	83 fb 08             	cmp    $0x8,%ebx
556bd8:	89 0c 24             	mov    %ecx,(%esp)
556bdb:	8b 0d e0 d4 69 00    	mov    0x69d4e0,%ecx
556be1:	89 4c 24 04          	mov    %ecx,0x4(%esp)
556be5:	76 07                	jbe    0x556bee
556be7:	bb 08 00 00 00       	mov    $0x8,%ebx
556bec:	eb 09                	jmp    0x556bf7
556bee:	83 fb 01             	cmp    $0x1,%ebx
556bf1:	73 04                	jae    0x556bf7
556bf3:	33 c0                	xor    %eax,%eax
556bf5:	eb 2d                	jmp    0x556c24
556bf7:	83 fa 07             	cmp    $0x7,%edx
556bfa:	76 04                	jbe    0x556c00
556bfc:	33 c0                	xor    %eax,%eax
556bfe:	eb 24                	jmp    0x556c24
556c00:	8d 0c 13             	lea    (%ebx,%edx,1),%ecx
556c03:	83 f9 08             	cmp    $0x8,%ecx
556c06:	76 07                	jbe    0x556c0f
556c08:	bb 08 00 00 00       	mov    $0x8,%ebx
556c0d:	2b da                	sub    %edx,%ebx
556c0f:	53                   	push   %ebx
556c10:	8d 4c 24 04          	lea    0x4(%esp),%ecx
556c14:	8b f2                	mov    %edx,%esi
556c16:	03 ce                	add    %esi,%ecx
556c18:	51                   	push   %ecx
556c19:	03 c6                	add    %esi,%eax
556c1b:	50                   	push   %eax
556c1c:	e8 1b f7 fc ff       	call   0x52633c
556c21:	83 c4 0c             	add    $0xc,%esp
556c24:	59                   	pop    %ecx
556c25:	5a                   	pop    %edx
556c26:	5e                   	pop    %esi
556c27:	5b                   	pop    %ebx
556c28:	c3                   	ret
556c29:	90                   	nop
556c2a:	90                   	nop
556c2b:	90                   	nop
556c2c:	53                   	push   %ebx
556c2d:	56                   	push   %esi
556c2e:	8b f2                	mov    %edx,%esi
556c30:	8b d8                	mov    %eax,%ebx
556c32:	8b ce                	mov    %esi,%ecx
556c34:	33 d2                	xor    %edx,%edx
556c36:	8b c3                	mov    %ebx,%eax
556c38:	e8 8b ff ff ff       	call   0x556bc8
556c3d:	83 f8 01             	cmp    $0x1,%eax
556c40:	1b c0                	sbb    %eax,%eax
556c42:	f7 d8                	neg    %eax
556c44:	5e                   	pop    %esi
556c45:	5b                   	pop    %ebx
556c46:	c3                   	ret
556c47:	90                   	nop
556c48:	53                   	push   %ebx
556c49:	56                   	push   %esi
556c4a:	8b f2                	mov    %edx,%esi
556c4c:	57                   	push   %edi
556c4d:	0f af f1             	imul   %ecx,%esi
556c50:	8b f8                	mov    %eax,%edi
556c52:	55                   	push   %ebp
556c53:	8b d6                	mov    %esi,%edx
556c55:	8b 6f 2c             	mov    0x2c(%edi),%ebp
556c58:	81 4f 2c 00 00 10 00 	orl    $0x100000,0x2c(%edi)
556c5f:	e8 90 ae ff ff       	call   0x551af4
556c64:	8b d8                	mov    %eax,%ebx
556c66:	89 6f 2c             	mov    %ebp,0x2c(%edi)
556c69:	85 db                	test   %ebx,%ebx
556c6b:	75 04                	jne    0x556c71
556c6d:	8b c3                	mov    %ebx,%eax
556c6f:	eb 40                	jmp    0x556cb1
556c71:	81 fe 00 80 00 00    	cmp    $0x8000,%esi
556c77:	76 2a                	jbe    0x556ca3
556c79:	68 00 80 00 00       	push   $0x8000
556c7e:	6a 00                	push   $0x0
556c80:	53                   	push   %ebx
556c81:	e8 9e f6 fc ff       	call   0x526324
556c86:	83 c4 0c             	add    $0xc,%esp
556c89:	81 ee 00 80 00 00    	sub    $0x8000,%esi
556c8f:	56                   	push   %esi
556c90:	6a 00                	push   $0x0
556c92:	8d 93 00 80 00 00    	lea    0x8000(%ebx),%edx
556c98:	52                   	push   %edx
556c99:	e8 86 f6 fc ff       	call   0x526324
556c9e:	83 c4 0c             	add    $0xc,%esp
556ca1:	eb 0c                	jmp    0x556caf
556ca3:	56                   	push   %esi
556ca4:	6a 00                	push   $0x0
556ca6:	53                   	push   %ebx
556ca7:	e8 78 f6 fc ff       	call   0x526324
556cac:	83 c4 0c             	add    $0xc,%esp
556caf:	8b c3                	mov    %ebx,%eax
556cb1:	5d                   	pop    %ebp
556cb2:	5f                   	pop    %edi
556cb3:	5e                   	pop    %esi
556cb4:	5b                   	pop    %ebx
556cb5:	c3                   	ret
556cb6:	90                   	nop
556cb7:	90                   	nop
556cb8:	e8 ab ae ff ff       	call   0x551b68
556cbd:	c3                   	ret
556cbe:	90                   	nop
556cbf:	90                   	nop
556cc0:	53                   	push   %ebx
556cc1:	8b d8                	mov    %eax,%ebx
556cc3:	33 c9                	xor    %ecx,%ecx
556cc5:	33 d2                	xor    %edx,%edx
556cc7:	33 c0                	xor    %eax,%eax
556cc9:	e8 12 5b fd ff       	call   0x52c7e0
556cce:	89 83 d0 00 00 00    	mov    %eax,0xd0(%ebx)
556cd4:	5b                   	pop    %ebx
556cd5:	c3                   	ret
556cd6:	90                   	nop
556cd7:	90                   	nop
556cd8:	53                   	push   %ebx
556cd9:	8b d8                	mov    %eax,%ebx
556cdb:	56                   	push   %esi
556cdc:	57                   	push   %edi
556cdd:	f6 83 dc 00 00 00 20 	testb  $0x20,0xdc(%ebx)
556ce4:	8b f9                	mov    %ecx,%edi
556ce6:	8b f2                	mov    %edx,%esi
556ce8:	b8 01 00 00 00       	mov    $0x1,%eax
556ced:	74 15                	je     0x556d04
556cef:	8b 53 2c             	mov    0x2c(%ebx),%edx
556cf2:	81 e2 00 03 00 00    	and    $0x300,%edx
556cf8:	81 fa 00 03 00 00    	cmp    $0x300,%edx
556cfe:	75 0c                	jne    0x556d0c
556d00:	33 c0                	xor    %eax,%eax
556d02:	eb 08                	jmp    0x556d0c
556d04:	f6 43 2d 08          	testb  $0x8,0x2d(%ebx)
556d08:	74 02                	je     0x556d0c
556d0a:	33 c0                	xor    %eax,%eax
556d0c:	85 c0                	test   %eax,%eax
556d0e:	74 15                	je     0x556d25
556d10:	8b cf                	mov    %edi,%ecx
556d12:	8b d6                	mov    %esi,%edx
556d14:	8b 83 d0 00 00 00    	mov    0xd0(%ebx),%eax
556d1a:	e8 c1 5a fd ff       	call   0x52c7e0
556d1f:	89 83 d0 00 00 00    	mov    %eax,0xd0(%ebx)
556d25:	5f                   	pop    %edi
556d26:	5e                   	pop    %esi
556d27:	5b                   	pop    %ebx
556d28:	c3                   	ret
556d29:	90                   	nop
556d2a:	90                   	nop
556d2b:	90                   	nop
556d2c:	53                   	push   %ebx
556d2d:	51                   	push   %ecx
556d2e:	8b d8                	mov    %eax,%ebx
556d30:	85 db                	test   %ebx,%ebx
556d32:	75 05                	jne    0x556d39
556d34:	33 c0                	xor    %eax,%eax
556d36:	5a                   	pop    %edx
556d37:	5b                   	pop    %ebx
556d38:	c3                   	ret
556d39:	8b 8b 00 02 00 00    	mov    0x200(%ebx),%ecx
556d3f:	8b 93 04 02 00 00    	mov    0x204(%ebx),%edx
556d45:	b8 02 00 00 00       	mov    $0x2,%eax
556d4a:	e8 f5 ac ff ff       	call   0x551a44
556d4f:	89 04 24             	mov    %eax,(%esp)
556d52:	8b 14 24             	mov    (%esp),%edx
556d55:	85 d2                	test   %edx,%edx
556d57:	74 0c                	je     0x556d65
556d59:	8b c4                	mov    %esp,%eax
556d5b:	ba 20 01 00 00       	mov    $0x120,%edx
556d60:	e8 4f 00 00 00       	call   0x556db4
556d65:	8b 04 24             	mov    (%esp),%eax
556d68:	5a                   	pop    %edx
556d69:	5b                   	pop    %ebx
556d6a:	c3                   	ret
556d6b:	90                   	nop
556d6c:	53                   	push   %ebx
556d6d:	56                   	push   %esi
556d6e:	57                   	push   %edi
556d6f:	8b f2                	mov    %edx,%esi
556d71:	8b f8                	mov    %eax,%edi
556d73:	33 db                	xor    %ebx,%ebx
556d75:	85 f6                	test   %esi,%esi
556d77:	74 02                	je     0x556d7b
556d79:	8b 1e                	mov    (%esi),%ebx
556d7b:	85 db                	test   %ebx,%ebx
556d7d:	74 20                	je     0x556d9f
556d7f:	8b d3                	mov    %ebx,%edx
556d81:	8b c7                	mov    %edi,%eax
556d83:	e8 34 04 00 00       	call   0x5571bc
556d88:	8b 8f 00 02 00 00    	mov    0x200(%edi),%ecx
556d8e:	8b 97 08 02 00 00    	mov    0x208(%edi),%edx
556d94:	8b c3                	mov    %ebx,%eax
556d96:	e8 25 ad ff ff       	call   0x551ac0
556d9b:	33 c9                	xor    %ecx,%ecx
556d9d:	89 0e                	mov    %ecx,(%esi)
556d9f:	5f                   	pop    %edi
556da0:	5e                   	pop    %esi
556da1:	5b                   	pop    %ebx
556da2:	c3                   	ret