542d79:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
542d7d:	ba 01 01 00 00       	mov    $0x101,%edx
542d82:	8d 70 0c             	lea    0xc(%eax),%esi
542d85:	0f 45 ca             	cmovne %edx,%ecx
542d88:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
542d8e:	0f b7 d9             	movzwl %cx,%ebx
542d91:	66 89 58 08          	mov    %bx,0x8(%eax)
542d95:	85 ff                	test   %edi,%edi
542d97:	0f 8e c9 fd ff ff    	jle    0x542b66
542d9d:	0f 1f 00             	nopl   (%eax)
542da0:	8d 76 28             	lea    0x28(%esi),%esi
542da3:	8d 46 f4             	lea    -0xc(%esi),%eax
542da6:	50                   	push   %eax
542da7:	e8 a4 8c 00 00       	call   0x54ba50
542dac:	4f                   	dec    %edi
542dad:	66 89 5e fc          	mov    %bx,-0x4(%esi)
542db1:	83 c4 04             	add    $0x4,%esp
542db4:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
542dba:	85 ff                	test   %edi,%edi
542dbc:	7f e2                	jg     0x542da0
542dbe:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
542dc4:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
542dca:	83 c6 14             	add    $0x14,%esi
542dcd:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
542dd3:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
542dd9:	e9 d6 fa ff ff       	jmp    0x5428b4
542dde:	8b 46 04             	mov    0x4(%esi),%eax
542de1:	ba 41 ff 00 00       	mov    $0xff41,%edx
542de6:	8b 9d 8c fe ff ff    	mov    -0x174(%ebp),%ebx
542dec:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
542df2:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
542df5:	66 8b 44 cb 08       	mov    0x8(%ebx,%ecx,8),%ax
542dfa:	66 23 c2             	and    %dx,%ax
542dfd:	66 83 c8 01          	or     $0x1,%ax
542e01:	83 c6 14             	add    $0x14,%esi
542e04:	66 89 44 cb 08       	mov    %ax,0x8(%ebx,%ecx,8)
542e09:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
542e0f:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
542e15:	e9 9a fa ff ff       	jmp    0x5428b4
542e1a:	ff b5 98 fe ff ff    	push   -0x168(%ebp)
542e20:	51                   	push   %ecx
542e21:	e8 6a 92 fc ff       	call   0x50c090
542e26:	8b f0                	mov    %eax,%esi
542e28:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
542e2e:	6a 00                	push   $0x0
542e30:	6a 00                	push   $0x0
542e32:	ff 70 04             	push   0x4(%eax)
542e35:	ff 70 10             	push   0x10(%eax)
542e38:	56                   	push   %esi
542e39:	e8 a2 8c 00 00       	call   0x54bae0
542e3e:	8a 85 60 fe ff ff    	mov    -0x1a0(%ebp),%al
542e44:	83 c4 1c             	add    $0x1c,%esp
542e47:	88 46 0a             	mov    %al,0xa(%esi)
542e4a:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
542e50:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
542e56:	83 c6 14             	add    $0x14,%esi
542e59:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
542e5f:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
542e65:	e9 4a fa ff ff       	jmp    0x5428b4
542e6a:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
542e70:	8b 42 04             	mov    0x4(%edx),%eax
542e73:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
542e76:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
542e7c:	8d 49 fb             	lea    -0x5(%ecx),%ecx
542e7f:	8b 40 64             	mov    0x64(%eax),%eax
542e82:	8d 1c c8             	lea    (%eax,%ecx,8),%ebx
542e85:	53                   	push   %ebx
542e86:	e8 85 8f 00 00       	call   0x54be10
542e8b:	83 c4 04             	add    $0x4,%esp
542e8e:	85 c0                	test   %eax,%eax
542e90:	0f 85 ba 4f 00 00    	jne    0x547e50
542e96:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
542e9c:	8b 8d 8c fe ff ff    	mov    -0x174(%ebp),%ecx
542ea2:	8b 40 08             	mov    0x8(%eax),%eax
542ea5:	8d 04 80             	lea    (%eax,%eax,4),%eax
542ea8:	8d 34 c1             	lea    (%ecx,%eax,8),%esi
542eab:	b8 00 24 00 00       	mov    $0x2400,%eax
542eb0:	66 85 46 08          	test   %ax,0x8(%esi)
542eb4:	74 09                	je     0x542ebf
542eb6:	56                   	push   %esi
542eb7:	e8 94 8b 00 00       	call   0x54ba50
542ebc:	83 c4 04             	add    $0x4,%esp
542ebf:	0f 10 03             	movups (%ebx),%xmm0
542ec2:	b9 ff eb 00 00       	mov    $0xebff,%ecx
542ec7:	0f 11 06             	movups %xmm0,(%esi)
542eca:	8b 43 10             	mov    0x10(%ebx),%eax
542ecd:	89 46 10             	mov    %eax,0x10(%esi)
542ed0:	66 8b 46 08          	mov    0x8(%esi),%ax
542ed4:	66 23 c1             	and    %cx,%ax
542ed7:	b9 40 08 00 00       	mov    $0x840,%ecx
542edc:	66 0b c1             	or     %cx,%ax
542edf:	66 89 46 08          	mov    %ax,0x8(%esi)
542ee3:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
542ee9:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
542eef:	83 c6 14             	add    $0x14,%esi
542ef2:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
542ef8:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
542efe:	e9 b1 f9 ff ff       	jmp    0x5428b4
542f03:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
542f09:	8b 8d 8c fe ff ff    	mov    -0x174(%ebp),%ecx
542f0f:	8b 42 0c             	mov    0xc(%edx),%eax
542f12:	89 85 88 fe ff ff    	mov    %eax,-0x178(%ebp)
542f18:	8b 42 04             	mov    0x4(%edx),%eax
542f1b:	8d 04 80             	lea    (%eax,%eax,4),%eax
542f1e:	8d 1c c1             	lea    (%ecx,%eax,8),%ebx
542f21:	8b 42 08             	mov    0x8(%edx),%eax
542f24:	8d 04 80             	lea    (%eax,%eax,4),%eax
542f27:	8d 34 c1             	lea    (%ecx,%eax,8),%esi
542f2a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
542f30:	53                   	push   %ebx
542f31:	56                   	push   %esi
542f32:	e8 89 88 00 00       	call   0x54b7c0
542f37:	b8 00 10 00 00       	mov    $0x1000,%eax
542f3c:	83 c4 08             	add    $0x8,%esp
542f3f:	66 85 46 08          	test   %ax,0x8(%esi)
542f43:	74 11                	je     0x542f56
542f45:	56                   	push   %esi
542f46:	e8 15 88 00 00       	call   0x54b760
542f4b:	83 c4 04             	add    $0x4,%esp
542f4e:	85 c0                	test   %eax,%eax
542f50:	0f 85 7e 60 00 00    	jne    0x548fd4
542f56:	83 c3 28             	add    $0x28,%ebx
542f59:	83 c6 28             	add    $0x28,%esi
542f5c:	83 ad 88 fe ff ff 01 	subl   $0x1,-0x178(%ebp)
542f63:	75 cb                	jne    0x542f30
542f65:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
542f6b:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
542f71:	83 c6 14             	add    $0x14,%esi
542f74:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
542f7a:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
542f80:	e9 2f f9 ff ff       	jmp    0x5428b4
542f85:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
542f8b:	8b 8d 8c fe ff ff    	mov    -0x174(%ebp),%ecx
542f91:	8b 42 0c             	mov    0xc(%edx),%eax
542f94:	89 85 88 fe ff ff    	mov    %eax,-0x178(%ebp)
542f9a:	8b 42 04             	mov    0x4(%edx),%eax
542f9d:	8d 04 80             	lea    (%eax,%eax,4),%eax
542fa0:	8d 1c c1             	lea    (%ecx,%eax,8),%ebx
542fa3:	8b 42 08             	mov    0x8(%edx),%eax
542fa6:	8d 04 80             	lea    (%eax,%eax,4),%eax
542fa9:	8d 34 c1             	lea    (%ecx,%eax,8),%esi
542fac:	0f 1f 40 00          	nopl   0x0(%eax)
542fb0:	68 00 10 00 00       	push   $0x1000
542fb5:	53                   	push   %ebx
542fb6:	56                   	push   %esi
542fb7:	e8 64 8d 00 00       	call   0x54bd20
542fbc:	b8 00 10 00 00       	mov    $0x1000,%eax
542fc1:	83 c4 0c             	add    $0xc,%esp
542fc4:	66 85 46 08          	test   %ax,0x8(%esi)
542fc8:	74 11                	je     0x542fdb
542fca:	56                   	push   %esi
542fcb:	e8 90 87 00 00       	call   0x54b760
542fd0:	83 c4 04             	add    $0x4,%esp
542fd3:	85 c0                	test   %eax,%eax
542fd5:	0f 85 f9 5f 00 00    	jne    0x548fd4
542fdb:	8b 8d 88 fe ff ff    	mov    -0x178(%ebp),%ecx
542fe1:	8b c1                	mov    %ecx,%eax
542fe3:	49                   	dec    %ecx
542fe4:	89 8d 88 fe ff ff    	mov    %ecx,-0x178(%ebp)
542fea:	85 c0                	test   %eax,%eax
542fec:	0f 84 74 fb ff ff    	je     0x542b66
542ff2:	83 c6 28             	add    $0x28,%esi
542ff5:	83 c3 28             	add    $0x28,%ebx
542ff8:	eb b6                	jmp    0x542fb0
542ffa:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
543000:	8b 9d 8c fe ff ff    	mov    -0x174(%ebp),%ebx
543006:	68 00 10 00 00       	push   $0x1000
54300b:	8b 42 04             	mov    0x4(%edx),%eax
54300e:	8d 04 80             	lea    (%eax,%eax,4),%eax
543011:	8d 04 c3             	lea    (%ebx,%eax,8),%eax
543014:	50                   	push   %eax
543015:	8b 42 08             	mov    0x8(%edx),%eax
543018:	8d 04 80             	lea    (%eax,%eax,4),%eax
54301b:	8d 04 c3             	lea    (%ebx,%eax,8),%eax
54301e:	50                   	push   %eax
54301f:	e8 fc 8c 00 00       	call   0x54bd20
543024:	83 c4 0c             	add    $0xc,%esp
543027:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
54302d:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
543033:	83 c6 14             	add    $0x14,%esi
543036:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
54303c:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
543042:	e9 6d f8 ff ff       	jmp    0x5428b4
543047:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
54304d:	8b bd 8c fe ff ff    	mov    -0x174(%ebp),%edi
543053:	8b 42 04             	mov    0x4(%edx),%eax
543056:	8d 04 80             	lea    (%eax,%eax,4),%eax
543059:	ff 74 c7 04          	push   0x4(%edi,%eax,8)
54305d:	ff 34 c7             	push   (%edi,%eax,8)
543060:	8b 42 08             	mov    0x8(%edx),%eax
543063:	8d 04 80             	lea    (%eax,%eax,4),%eax
543066:	8d 04 c7             	lea    (%edi,%eax,8),%eax
543069:	50                   	push   %eax
54306a:	e8 a1 89 00 00       	call   0x54ba10
54306f:	83 c4 0c             	add    $0xc,%esp
543072:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
543078:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
54307e:	83 c6 14             	add    $0x14,%esi
543081:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
543087:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
54308d:	e9 22 f8 ff ff       	jmp    0x5428b4
543092:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
543098:	8b 9d 8c fe ff ff    	mov    -0x174(%ebp),%ebx
54309e:	8b 42 04             	mov    0x4(%edx),%eax
5430a1:	8d 04 80             	lea    (%eax,%eax,4),%eax
5430a4:	8d 0c c3             	lea    (%ebx,%eax,8),%ecx
5430a7:	8b 42 08             	mov    0x8(%edx),%eax
5430aa:	89 8d 84 fe ff ff    	mov    %ecx,-0x17c(%ebp)
5430b0:	8d 04 80             	lea    (%eax,%eax,4),%eax
5430b3:	8d 34 c3             	lea    (%ebx,%eax,8),%esi
5430b6:	8b 42 0c             	mov    0xc(%edx),%eax
5430b9:	0f b7 51 08          	movzwl 0x8(%ecx),%edx
5430bd:	89 95 5c fe ff ff    	mov    %edx,-0x1a4(%ebp)
5430c3:	8d 04 80             	lea    (%eax,%eax,4),%eax
5430c6:	8d 1c c3             	lea    (%ebx,%eax,8),%ebx
5430c9:	8a 46 08             	mov    0x8(%esi),%al
5430cc:	0a c2                	or     %dl,%al
5430ce:	a8 01                	test   $0x1,%al
5430d0:	74 29                	je     0x5430fb
5430d2:	53                   	push   %ebx
5430d3:	e8 78 89 00 00       	call   0x54ba50
5430d8:	83 c4 04             	add    $0x4,%esp
5430db:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
5430e1:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
5430e7:	83 c6 14             	add    $0x14,%esi
5430ea:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
5430f0:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
5430f6:	e9 b9 f7 ff ff       	jmp    0x5428b4
5430fb:	f6 c2 12             	test   $0x12,%dl
5430fe:	75 36                	jne    0x543136
543100:	6a 00                	push   $0x0
543102:	ff b5 60 fe ff ff    	push   -0x1a0(%ebp)
543108:	51                   	push   %ecx
543109:	e8 62 8c 00 00       	call   0x54bd70
54310e:	83 c4 0c             	add    $0xc,%esp
543111:	85 c0                	test   %eax,%eax
543113:	0f 85 bb 5e 00 00    	jne    0x548fd4
543119:	8b 85 84 fe ff ff    	mov    -0x17c(%ebp),%eax
54311f:	b9 fd ff 00 00       	mov    $0xfffd,%ecx
543124:	66 8b 40 08          	mov    0x8(%eax),%ax
543128:	66 23 c1             	and    %cx,%ax
54312b:	0f b7 c8             	movzwl %ax,%ecx
54312e:	89 8d 5c fe ff ff    	mov    %ecx,-0x1a4(%ebp)
543134:	eb 34                	jmp    0x54316a
543136:	f7 c2 00 40 00 00    	test   $0x4000,%edx
54313c:	74 2c                	je     0x54316a
54313e:	51                   	push   %ecx
54313f:	e8 3c 82 00 00       	call   0x54b380
543144:	83 c4 04             	add    $0x4,%esp
543147:	85 c0                	test   %eax,%eax
543149:	0f 85 85 5e 00 00    	jne    0x548fd4
54314f:	8b 85 84 fe ff ff    	mov    -0x17c(%ebp),%eax
543155:	b9 fd ff 00 00       	mov    $0xfffd,%ecx
54315a:	66 8b 40 08          	mov    0x8(%eax),%ax
54315e:	66 23 c1             	and    %cx,%ax
543161:	0f b7 c0             	movzwl %ax,%eax
543164:	89 85 5c fe ff ff    	mov    %eax,-0x1a4(%ebp)
54316a:	0f b7 46 08          	movzwl 0x8(%esi),%eax
54316e:	89 85 88 fe ff ff    	mov    %eax,-0x178(%ebp)
543174:	a8 12                	test   $0x12,%al
543176:	75 13                	jne    0x54318b
543178:	6a 00                	push   $0x0
54317a:	ff b5 60 fe ff ff    	push   -0x1a0(%ebp)
543180:	56                   	push   %esi
543181:	e8 ea 8b 00 00       	call   0x54bd70
543186:	83 c4 0c             	add    $0xc,%esp
543189:	eb 10                	jmp    0x54319b
54318b:	a9 00 40 00 00       	test   $0x4000,%eax
543190:	74 26                	je     0x5431b8
543192:	56                   	push   %esi
543193:	e8 e8 81 00 00       	call   0x54b380
543198:	83 c4 04             	add    $0x4,%esp
54319b:	85 c0                	test   %eax,%eax
54319d:	0f 85 31 5e 00 00    	jne    0x548fd4
5431a3:	66 8b 46 08          	mov    0x8(%esi),%ax
5431a7:	b9 fd ff 00 00       	mov    $0xfffd,%ecx
5431ac:	66 23 c1             	and    %cx,%ax
5431af:	0f b7 c0             	movzwl %ax,%eax
5431b2:	89 85 88 fe ff ff    	mov    %eax,-0x178(%ebp)
5431b8:	8b 85 84 fe ff ff    	mov    -0x17c(%ebp),%eax
5431be:	8b 40 0c             	mov    0xc(%eax),%eax
5431c1:	03 46 0c             	add    0xc(%esi),%eax
5431c4:	99                   	cltd
5431c5:	89 85 48 fe ff ff    	mov    %eax,-0x1b8(%ebp)
5431cb:	8b ca                	mov    %edx,%ecx
5431cd:	8b 47 6c             	mov    0x6c(%edi),%eax
5431d0:	99                   	cltd
5431d1:	3b ca                	cmp    %edx,%ecx
5431d3:	0f 8f 77 4c 00 00    	jg     0x547e50
5431d9:	8b 8d 48 fe ff ff    	mov    -0x1b8(%ebp),%ecx
5431df:	7c 08                	jl     0x5431e9
5431e1:	3b c8                	cmp    %eax,%ecx
5431e3:	0f 87 67 4c 00 00    	ja     0x547e50
5431e9:	33 c0                	xor    %eax,%eax
5431eb:	3b de                	cmp    %esi,%ebx
5431ed:	0f 94 c0             	sete   %al
5431f0:	50                   	push   %eax
5431f1:	8d 41 03             	lea    0x3(%ecx),%eax
5431f4:	50                   	push   %eax
5431f5:	53                   	push   %ebx
5431f6:	e8 f5 82 00 00       	call   0x54b4f0
5431fb:	83 c4 0c             	add    $0xc,%esp
5431fe:	85 c0                	test   %eax,%eax
543200:	0f 85 ce 5d 00 00    	jne    0x548fd4
543206:	66 8b 43 08          	mov    0x8(%ebx),%ax
54320a:	b9 40 3e 00 00       	mov    $0x3e40,%ecx
54320f:	66 23 c1             	and    %cx,%ax
543212:	66 83 c8 02          	or     $0x2,%ax
543216:	66 89 43 08          	mov    %ax,0x8(%ebx)
54321a:	3b de                	cmp    %esi,%ebx
54321c:	74 1b                	je     0x543239
54321e:	ff 76 0c             	push   0xc(%esi)
543221:	ff 76 10             	push   0x10(%esi)
543224:	ff 73 10             	push   0x10(%ebx)
543227:	e8 d4 fc 09 00       	call   0x5e2f00
54322c:	8b 85 88 fe ff ff    	mov    -0x178(%ebp),%eax
543232:	83 c4 0c             	add    $0xc,%esp
543235:	66 89 46 08          	mov    %ax,0x8(%esi)
543239:	8b bd 84 fe ff ff    	mov    -0x17c(%ebp),%edi
54323f:	8b 43 10             	mov    0x10(%ebx),%eax
543242:	03 46 0c             	add    0xc(%esi),%eax
543245:	ff 77 0c             	push   0xc(%edi)
543248:	ff 77 10             	push   0x10(%edi)
54324b:	50                   	push   %eax
54324c:	e8 af fc 09 00       	call   0x5e2f00
543251:	8b 85 5c fe ff ff    	mov    -0x1a4(%ebp),%eax
543257:	83 c4 0c             	add    $0xc,%esp
54325a:	8b 8d 48 fe ff ff    	mov    -0x1b8(%ebp),%ecx
543260:	66 89 47 08          	mov    %ax,0x8(%edi)
543264:	8b 43 10             	mov    0x10(%ebx),%eax
543267:	c6 04 01 00          	movb   $0x0,(%ecx,%eax,1)
54326b:	8b 43 10             	mov    0x10(%ebx),%eax
54326e:	c6 44 01 01 00       	movb   $0x0,0x1(%ecx,%eax,1)
543273:	8b 43 10             	mov    0x10(%ebx),%eax
543276:	c6 44 01 02 00       	movb   $0x0,0x2(%ecx,%eax,1)
54327b:	b8 00 02 00 00       	mov    $0x200,%eax
543280:	66 09 43 08          	or     %ax,0x8(%ebx)
543284:	8a 85 60 fe ff ff    	mov    -0x1a0(%ebp),%al
54328a:	89 4b 0c             	mov    %ecx,0xc(%ebx)
54328d:	88 43 0a             	mov    %al,0xa(%ebx)
543290:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
543296:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
54329c:	83 c6 14             	add    $0x14,%esi
54329f:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
5432a5:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
5432ab:	e9 04 f6 ff ff       	jmp    0x5428b4
5432b0:	8b bd 98 fe ff ff    	mov    -0x168(%ebp),%edi
5432b6:	8b 8d 8c fe ff ff    	mov    -0x174(%ebp),%ecx
5432bc:	8b 47 04             	mov    0x4(%edi),%eax
5432bf:	8d 04 80             	lea    (%eax,%eax,4),%eax