556da3:	90                   	nop
556da4:	51                   	push   %ecx
556da5:	89 04 24             	mov    %eax,(%esp)
556da8:	8b c4                	mov    %esp,%eax
556daa:	33 d2                	xor    %edx,%edx
556dac:	e8 03 00 00 00       	call   0x556db4
556db1:	5a                   	pop    %edx
556db2:	c3                   	ret
556db3:	90                   	nop
556db4:	53                   	push   %ebx
556db5:	8b d8                	mov    %eax,%ebx
556db7:	8b 03                	mov    (%ebx),%eax
556db9:	81 fa 20 01 00 00    	cmp    $0x120,%edx
556dbf:	73 11                	jae    0x556dd2
556dc1:	e8 ee ac ff ff       	call   0x551ab4
556dc6:	b8 02 00 00 00       	mov    $0x2,%eax
556dcb:	e8 68 ac ff ff       	call   0x551a38
556dd0:	89 03                	mov    %eax,(%ebx)
556dd2:	68 20 01 00 00       	push   $0x120
556dd7:	6a 00                	push   $0x0
556dd9:	50                   	push   %eax
556dda:	e8 45 f5 fc ff       	call   0x526324
556ddf:	83 c4 0c             	add    $0xc,%esp
556de2:	5b                   	pop    %ebx
556de3:	c3                   	ret
556de4:	55                   	push   %ebp
556de5:	8b ec                	mov    %esp,%ebp
556de7:	53                   	push   %ebx
556de8:	85 c0                	test   %eax,%eax
556dea:	8b 5d 08             	mov    0x8(%ebp),%ebx
556ded:	74 2a                	je     0x556e19
556def:	85 d2                	test   %edx,%edx
556df1:	74 26                	je     0x556e19
556df3:	83 f9 01             	cmp    $0x1,%ecx
556df6:	75 08                	jne    0x556e00
556df8:	09 9a b8 00 00 00    	or     %ebx,0xb8(%edx)
556dfe:	eb 19                	jmp    0x556e19
556e00:	83 f9 02             	cmp    $0x2,%ecx
556e03:	75 0a                	jne    0x556e0f
556e05:	f7 d3                	not    %ebx
556e07:	21 9a b8 00 00 00    	and    %ebx,0xb8(%edx)
556e0d:	eb 0a                	jmp    0x556e19
556e0f:	ba 06 d5 69 00       	mov    $0x69d506,%edx
556e14:	e8 cf ae ff ff       	call   0x551ce8
556e19:	5b                   	pop    %ebx
556e1a:	5d                   	pop    %ebp
556e1b:	c2 04 00             	ret    $0x4
556e1e:	90                   	nop
556e1f:	90                   	nop
556e20:	55                   	push   %ebp
556e21:	8b ec                	mov    %esp,%ebp
556e23:	51                   	push   %ecx
556e24:	53                   	push   %ebx
556e25:	56                   	push   %esi
556e26:	57                   	push   %edi
556e27:	89 4d fc             	mov    %ecx,-0x4(%ebp)
556e2a:	8b da                	mov    %edx,%ebx
556e2c:	8b f0                	mov    %eax,%esi
556e2e:	85 f6                	test   %esi,%esi
556e30:	0f 84 7b 03 00 00    	je     0x5571b1
556e36:	85 db                	test   %ebx,%ebx
556e38:	0f 84 73 03 00 00    	je     0x5571b1
556e3e:	8b 45 fc             	mov    -0x4(%ebp),%eax
556e41:	8b 93 b8 00 00 00    	mov    0xb8(%ebx),%edx
556e47:	23 c2                	and    %edx,%eax
556e49:	f6 c4 40             	test   $0x40,%ah
556e4c:	74 66                	je     0x556eb4
556e4e:	8b 4d 08             	mov    0x8(%ebp),%ecx
556e51:	41                   	inc    %ecx
556e52:	74 31                	je     0x556e85
556e54:	8b 43 38             	mov    0x38(%ebx),%eax
556e57:	85 c0                	test   %eax,%eax
556e59:	74 59                	je     0x556eb4
556e5b:	8b 55 08             	mov    0x8(%ebp),%edx
556e5e:	c1 e2 04             	shl    $0x4,%edx
556e61:	8b 4c 10 04          	mov    0x4(%eax,%edx,1),%ecx
556e65:	85 c9                	test   %ecx,%ecx
556e67:	74 4b                	je     0x556eb4
556e69:	8b 7d 08             	mov    0x8(%ebp),%edi
556e6c:	c1 e7 04             	shl    $0x4,%edi
556e6f:	8b 54 38 04          	mov    0x4(%eax,%edi,1),%edx
556e73:	8b c6                	mov    %esi,%eax
556e75:	e8 ee ac ff ff       	call   0x551b68
556e7a:	8b 4b 38             	mov    0x38(%ebx),%ecx
556e7d:	33 c0                	xor    %eax,%eax
556e7f:	89 44 39 04          	mov    %eax,0x4(%ecx,%edi,1)
556e83:	eb 2f                	jmp    0x556eb4
556e85:	33 ff                	xor    %edi,%edi
556e87:	eb 10                	jmp    0x556e99
556e89:	57                   	push   %edi
556e8a:	b9 00 40 00 00       	mov    $0x4000,%ecx
556e8f:	8b d3                	mov    %ebx,%edx
556e91:	8b c6                	mov    %esi,%eax
556e93:	e8 88 ff ff ff       	call   0x556e20
556e98:	47                   	inc    %edi
556e99:	8b 43 30             	mov    0x30(%ebx),%eax
556e9c:	3b f8                	cmp    %eax,%edi
556e9e:	7c e9                	jl     0x556e89
556ea0:	8b 53 38             	mov    0x38(%ebx),%edx
556ea3:	8b c6                	mov    %esi,%eax
556ea5:	e8 be ac ff ff       	call   0x551b68
556eaa:	33 d2                	xor    %edx,%edx
556eac:	33 c9                	xor    %ecx,%ecx
556eae:	89 53 38             	mov    %edx,0x38(%ebx)
556eb1:	89 4b 30             	mov    %ecx,0x30(%ebx)
556eb4:	8b 45 fc             	mov    -0x4(%ebp),%eax
556eb7:	8b 93 b8 00 00 00    	mov    0xb8(%ebx),%edx
556ebd:	23 c2                	and    %edx,%eax
556ebf:	f6 c4 20             	test   $0x20,%ah
556ec2:	74 13                	je     0x556ed7
556ec4:	8b 53 4c             	mov    0x4c(%ebx),%edx
556ec7:	8b c6                	mov    %esi,%eax
556ec9:	e8 9a ac ff ff       	call   0x551b68
556ece:	83 63 08 ef          	andl   $0xffffffef,0x8(%ebx)
556ed2:	33 c9                	xor    %ecx,%ecx
556ed4:	89 4b 4c             	mov    %ecx,0x4c(%ebx)
556ed7:	8b 45 fc             	mov    -0x4(%ebp),%eax
556eda:	8b 93 b8 00 00 00    	mov    0xb8(%ebx),%edx
556ee0:	23 c2                	and    %edx,%eax
556ee2:	f6 c4 01             	test   $0x1,%ah
556ee5:	74 07                	je     0x556eee
556ee7:	81 63 08 ff bf ff ff 	andl   $0xffffbfff,0x8(%ebx)
556eee:	8b 4d fc             	mov    -0x4(%ebp),%ecx
556ef1:	8b 83 b8 00 00 00    	mov    0xb8(%ebx),%eax
556ef7:	23 c8                	and    %eax,%ecx
556ef9:	f6 c1 80             	test   $0x80,%cl
556efc:	74 7c                	je     0x556f7a
556efe:	8b 93 a0 00 00 00    	mov    0xa0(%ebx),%edx
556f04:	8b c6                	mov    %esi,%eax
556f06:	e8 5d ac ff ff       	call   0x551b68
556f0b:	8b 93 ac 00 00 00    	mov    0xac(%ebx),%edx
556f11:	8b c6                	mov    %esi,%eax
556f13:	e8 50 ac ff ff       	call   0x551b68
556f18:	33 d2                	xor    %edx,%edx
556f1a:	33 c9                	xor    %ecx,%ecx
556f1c:	89 93 a0 00 00 00    	mov    %edx,0xa0(%ebx)
556f22:	89 8b ac 00 00 00    	mov    %ecx,0xac(%ebx)
556f28:	8b 83 b0 00 00 00    	mov    0xb0(%ebx),%eax
556f2e:	85 c0                	test   %eax,%eax
556f30:	74 41                	je     0x556f73
556f32:	33 ff                	xor    %edi,%edi
556f34:	eb 1c                	jmp    0x556f52
556f36:	8b 83 b0 00 00 00    	mov    0xb0(%ebx),%eax
556f3c:	8b 14 b8             	mov    (%eax,%edi,4),%edx
556f3f:	8b c6                	mov    %esi,%eax
556f41:	e8 22 ac ff ff       	call   0x551b68
556f46:	8b 93 b0 00 00 00    	mov    0xb0(%ebx),%edx
556f4c:	33 c9                	xor    %ecx,%ecx
556f4e:	89 0c ba             	mov    %ecx,(%edx,%edi,4)
556f51:	47                   	inc    %edi
556f52:	33 c0                	xor    %eax,%eax
556f54:	8a 83 b5 00 00 00    	mov    0xb5(%ebx),%al
556f5a:	3b f8                	cmp    %eax,%edi
556f5c:	7c d8                	jl     0x556f36
556f5e:	8b 93 b0 00 00 00    	mov    0xb0(%ebx),%edx
556f64:	8b c6                	mov    %esi,%eax
556f66:	e8 fd ab ff ff       	call   0x551b68
556f6b:	33 d2                	xor    %edx,%edx
556f6d:	89 93 b0 00 00 00    	mov    %edx,0xb0(%ebx)
556f73:	81 63 08 ff fb ff ff 	andl   $0xfffffbff,0x8(%ebx)
556f7a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
556f7d:	8b 83 b8 00 00 00    	mov    0xb8(%ebx),%eax
556f83:	23 c8                	and    %eax,%ecx
556f85:	f6 c1 10             	test   $0x10,%cl
556f88:	74 31                	je     0x556fbb
556f8a:	8b 93 c4 00 00 00    	mov    0xc4(%ebx),%edx
556f90:	8b c6                	mov    %esi,%eax
556f92:	e8 d1 ab ff ff       	call   0x551b68
556f97:	8b 93 c8 00 00 00    	mov    0xc8(%ebx),%edx
556f9d:	8b c6                	mov    %esi,%eax
556f9f:	e8 c4 ab ff ff       	call   0x551b68
556fa4:	33 d2                	xor    %edx,%edx
556fa6:	33 c9                	xor    %ecx,%ecx
556fa8:	89 93 c4 00 00 00    	mov    %edx,0xc4(%ebx)
556fae:	89 8b c8 00 00 00    	mov    %ecx,0xc8(%ebx)
556fb4:	81 63 08 ff ef ff ff 	andl   $0xffffefff,0x8(%ebx)
556fbb:	8b 45 fc             	mov    -0x4(%ebp),%eax
556fbe:	8b 93 b8 00 00 00    	mov    0xb8(%ebx),%edx
556fc4:	23 c2                	and    %edx,%eax
556fc6:	a8 20                	test   $0x20,%al
556fc8:	0f 84 94 00 00 00    	je     0x557062
556fce:	8b 4d 08             	mov    0x8(%ebp),%ecx
556fd1:	41                   	inc    %ecx
556fd2:	74 42                	je     0x557016
556fd4:	8b 83 d4 00 00 00    	mov    0xd4(%ebx),%eax
556fda:	85 c0                	test   %eax,%eax
556fdc:	0f 84 80 00 00 00    	je     0x557062
556fe2:	8b 7d 08             	mov    0x8(%ebp),%edi
556fe5:	c1 e7 04             	shl    $0x4,%edi
556fe8:	8b 14 38             	mov    (%eax,%edi,1),%edx
556feb:	8b c6                	mov    %esi,%eax
556fed:	e8 76 ab ff ff       	call   0x551b68
556ff2:	8b 8b d4 00 00 00    	mov    0xd4(%ebx),%ecx
556ff8:	8b c6                	mov    %esi,%eax
556ffa:	8b 54 39 08          	mov    0x8(%ecx,%edi,1),%edx
556ffe:	e8 65 ab ff ff       	call   0x551b68
557003:	8b 83 d4 00 00 00    	mov    0xd4(%ebx),%eax
557009:	33 d2                	xor    %edx,%edx
55700b:	89 14 38             	mov    %edx,(%eax,%edi,1)
55700e:	33 c9                	xor    %ecx,%ecx
557010:	89 4c 38 08          	mov    %ecx,0x8(%eax,%edi,1)
557014:	eb 4c                	jmp    0x557062
557016:	8b 83 d8 00 00 00    	mov    0xd8(%ebx),%eax
55701c:	85 c0                	test   %eax,%eax
55701e:	74 3b                	je     0x55705b
557020:	33 ff                	xor    %edi,%edi
557022:	eb 10                	jmp    0x557034
557024:	57                   	push   %edi
557025:	b9 20 00 00 00       	mov    $0x20,%ecx
55702a:	8b d3                	mov    %ebx,%edx
55702c:	8b c6                	mov    %esi,%eax
55702e:	e8 ed fd ff ff       	call   0x556e20
557033:	47                   	inc    %edi
557034:	8b 83 d8 00 00 00    	mov    0xd8(%ebx),%eax
55703a:	3b f8                	cmp    %eax,%edi
55703c:	7c e6                	jl     0x557024
55703e:	8b 93 d4 00 00 00    	mov    0xd4(%ebx),%edx
557044:	8b c6                	mov    %esi,%eax
557046:	e8 1d ab ff ff       	call   0x551b68
55704b:	33 d2                	xor    %edx,%edx
55704d:	33 c9                	xor    %ecx,%ecx
55704f:	89 93 d4 00 00 00    	mov    %edx,0xd4(%ebx)
557055:	89 8b d8 00 00 00    	mov    %ecx,0xd8(%ebx)
55705b:	81 63 08 ff df ff ff 	andl   $0xffffdfff,0x8(%ebx)
557062:	8b 45 fc             	mov    -0x4(%ebp),%eax
557065:	8b 93 b8 00 00 00    	mov    0xb8(%ebx),%edx
55706b:	23 c2                	and    %edx,%eax
55706d:	f6 c4 02             	test   $0x2,%ah
557070:	74 74                	je     0x5570e6
557072:	8b 4d 08             	mov    0x8(%ebp),%ecx
557075:	41                   	inc    %ecx
557076:	74 29                	je     0x5570a1
557078:	8b 83 bc 00 00 00    	mov    0xbc(%ebx),%eax
55707e:	85 c0                	test   %eax,%eax
557080:	74 64                	je     0x5570e6
557082:	8b 7d 08             	mov    0x8(%ebp),%edi
557085:	8d 3c bf             	lea    (%edi,%edi,4),%edi
557088:	8b 54 b8 08          	mov    0x8(%eax,%edi,4),%edx
55708c:	8b c6                	mov    %esi,%eax
55708e:	e8 d5 aa ff ff       	call   0x551b68
557093:	8b 8b bc 00 00 00    	mov    0xbc(%ebx),%ecx
557099:	33 c0                	xor    %eax,%eax
55709b:	89 44 b9 08          	mov    %eax,0x8(%ecx,%edi,4)
55709f:	eb 45                	jmp    0x5570e6
5570a1:	8b 93 c0 00 00 00    	mov    0xc0(%ebx),%edx
5570a7:	85 d2                	test   %edx,%edx
5570a9:	74 3b                	je     0x5570e6
5570ab:	33 ff                	xor    %edi,%edi
5570ad:	eb 10                	jmp    0x5570bf
5570af:	57                   	push   %edi
5570b0:	b9 00 02 00 00       	mov    $0x200,%ecx
5570b5:	8b d3                	mov    %ebx,%edx
5570b7:	8b c6                	mov    %esi,%eax
5570b9:	e8 62 fd ff ff       	call   0x556e20
5570be:	47                   	inc    %edi
5570bf:	8b 83 c0 00 00 00    	mov    0xc0(%ebx),%eax
5570c5:	3b f8                	cmp    %eax,%edi
5570c7:	7c e6                	jl     0x5570af
5570c9:	8b 93 bc 00 00 00    	mov    0xbc(%ebx),%edx
5570cf:	8b c6                	mov    %esi,%eax
5570d1:	e8 92 aa ff ff       	call   0x551b68
5570d6:	33 d2                	xor    %edx,%edx
5570d8:	33 c9                	xor    %ecx,%ecx
5570da:	89 93 bc 00 00 00    	mov    %edx,0xbc(%ebx)
5570e0:	89 8b c0 00 00 00    	mov    %ecx,0xc0(%ebx)
5570e6:	8b 45 fc             	mov    -0x4(%ebp),%eax
5570e9:	8b 93 b8 00 00 00    	mov    0xb8(%ebx),%edx
5570ef:	23 c2                	and    %edx,%eax
5570f1:	a8 08                	test   $0x8,%al
5570f3:	74 13                	je     0x557108
5570f5:	8b 53 7c             	mov    0x7c(%ebx),%edx
5570f8:	8b c6                	mov    %esi,%eax
5570fa:	e8 69 aa ff ff       	call   0x551b68
5570ff:	33 c9                	xor    %ecx,%ecx
557101:	89 4b 7c             	mov    %ecx,0x7c(%ebx)
557104:	83 63 08 bf          	andl   $0xffffffbf,0x8(%ebx)
557108:	8b 45 fc             	mov    -0x4(%ebp),%eax
55710b:	8b 93 b8 00 00 00    	mov    0xb8(%ebx),%edx
557111:	23 c2                	and    %edx,%eax
557113:	f6 c4 10             	test   $0x10,%ah
557116:	74 19                	je     0x557131
557118:	8b 53 10             	mov    0x10(%ebx),%edx
55711b:	8b c6                	mov    %esi,%eax
55711d:	e8 96 fb ff ff       	call   0x556cb8
557122:	33 c9                	xor    %ecx,%ecx
557124:	89 4b 10             	mov    %ecx,0x10(%ebx)
557127:	83 63 08 f7          	andl   $0xfffffff7,0x8(%ebx)
55712b:	66 c7 43 14 00 00    	movw   $0x0,0x14(%ebx)
557131:	8b 45 fc             	mov    -0x4(%ebp),%eax
557134:	8b 93 b8 00 00 00    	mov    0xb8(%ebx),%edx
55713a:	23 c2                	and    %edx,%eax
55713c:	a8 40                	test   $0x40,%al
55713e:	74 4d                	je     0x55718d
557140:	8b 8b f8 00 00 00    	mov    0xf8(%ebx),%ecx
557146:	85 c9                	test   %ecx,%ecx
557148:	74 3c                	je     0x557186
55714a:	33 ff                	xor    %edi,%edi
55714c:	eb 1c                	jmp    0x55716a
55714e:	8b 83 f8 00 00 00    	mov    0xf8(%ebx),%eax
557154:	8b 14 b8             	mov    (%eax,%edi,4),%edx
557157:	8b c6                	mov    %esi,%eax
557159:	e8 0a aa ff ff       	call   0x551b68
55715e:	8b 93 f8 00 00 00    	mov    0xf8(%ebx),%edx
557164:	33 c9                	xor    %ecx,%ecx
557166:	89 0c ba             	mov    %ecx,(%edx,%edi,4)
557169:	47                   	inc    %edi
55716a:	8b 43 04             	mov    0x4(%ebx),%eax
55716d:	3b f8                	cmp    %eax,%edi
55716f:	7c dd                	jl     0x55714e
557171:	8b 93 f8 00 00 00    	mov    0xf8(%ebx),%edx
557177:	8b c6                	mov    %esi,%eax
557179:	e8 ea a9 ff ff       	call   0x551b68
55717e:	33 d2                	xor    %edx,%edx
557180:	89 93 f8 00 00 00    	mov    %edx,0xf8(%ebx)
557186:	81 63 08 ff 7f ff ff 	andl   $0xffff7fff,0x8(%ebx)
55718d:	8b 4d 08             	mov    0x8(%ebp),%ecx
557190:	41                   	inc    %ecx
557191:	75 0d                	jne    0x5571a0
557193:	8b 45 fc             	mov    -0x4(%ebp),%eax
557196:	f7 d0                	not    %eax
557198:	21 83 b8 00 00 00    	and    %eax,0xb8(%ebx)
55719e:	eb 11                	jmp    0x5571b1
5571a0:	8b 55 fc             	mov    -0x4(%ebp),%edx
5571a3:	81 e2 df bd ff ff    	and    $0xffffbddf,%edx
5571a9:	f7 d2                	not    %edx
5571ab:	21 93 b8 00 00 00    	and    %edx,0xb8(%ebx)
5571b1:	5f                   	pop    %edi
5571b2:	5e                   	pop    %esi
5571b3:	5b                   	pop    %ebx
5571b4:	59                   	pop    %ecx
5571b5:	5d                   	pop    %ebp
5571b6:	c2 04 00             	ret    $0x4
5571b9:	90                   	nop
5571ba:	90                   	nop
5571bb:	90                   	nop
5571bc:	53                   	push   %ebx
5571bd:	51                   	push   %ecx
5571be:	89 14 24             	mov    %edx,(%esp)
5571c1:	8b d8                	mov    %eax,%ebx
5571c3:	6a ff                	push   $0xffffffff
5571c5:	b9 ff 7f 00 00       	mov    $0x7fff,%ecx
5571ca:	8b 54 24 04          	mov    0x4(%esp),%edx
5571ce:	8b c3                	mov    %ebx,%eax
5571d0:	e8 4b fc ff ff       	call   0x556e20
5571d5:	8b 83 dc 01 00 00    	mov    0x1dc(%ebx),%eax
5571db:	85 c0                	test   %eax,%eax
5571dd:	74 1d                	je     0x5571fc
5571df:	8b 93 e0 01 00 00    	mov    0x1e0(%ebx),%edx
5571e5:	8b c3                	mov    %ebx,%eax
5571e7:	e8 7c a9 ff ff       	call   0x551b68