54ae6b:	83 a7 98 00 00 00 fc 	andl   $0xfffffffc,0x98(%edi)
54ae72:	8d 04 9b             	lea    (%ebx,%ebx,4),%eax
54ae75:	c1 e0 03             	shl    $0x3,%eax
54ae78:	33 c9                	xor    %ecx,%ecx
54ae7a:	33 d2                	xor    %edx,%edx
54ae7c:	0f 57 c0             	xorps  %xmm0,%xmm0
54ae7f:	83 c0 07             	add    $0x7,%eax
54ae82:	66 0f 13 45 bc       	movlpd %xmm0,-0x44(%ebp)
54ae87:	13 c9                	adc    %ecx,%ecx
54ae89:	83 e0 f8             	and    $0xfffffff8,%eax
54ae8c:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
54ae8f:	89 45 d0             	mov    %eax,-0x30(%ebp)
54ae92:	3b 4d f8             	cmp    -0x8(%ebp),%ecx
54ae95:	7f 1b                	jg     0x54aeb2
54ae97:	7c 04                	jl     0x54ae9d
54ae99:	3b c6                	cmp    %esi,%eax
54ae9b:	77 15                	ja     0x54aeb2
54ae9d:	8b 55 e4             	mov    -0x1c(%ebp),%edx
54aea0:	2b f0                	sub    %eax,%esi
54aea2:	89 75 fc             	mov    %esi,-0x4(%ebp)
54aea5:	19 4d f8             	sbb    %ecx,-0x8(%ebp)
54aea8:	03 d6                	add    %esi,%edx
54aeaa:	8b 4d c0             	mov    -0x40(%ebp),%ecx
54aead:	8b 75 bc             	mov    -0x44(%ebp),%esi
54aeb0:	eb 02                	jmp    0x54aeb4
54aeb2:	8b f0                	mov    %eax,%esi
54aeb4:	89 57 58             	mov    %edx,0x58(%edi)
54aeb7:	8b 55 e8             	mov    -0x18(%ebp),%edx
54aeba:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
54aec1:	89 4d f4             	mov    %ecx,-0xc(%ebp)
54aec4:	8d 04 92             	lea    (%edx,%edx,4),%eax
54aec7:	8b 55 f8             	mov    -0x8(%ebp),%edx
54aeca:	c1 e0 03             	shl    $0x3,%eax
54aecd:	83 c0 07             	add    $0x7,%eax
54aed0:	83 55 f0 00          	adcl   $0x0,-0x10(%ebp)
54aed4:	83 e0 f8             	and    $0xfffffff8,%eax
54aed7:	89 45 cc             	mov    %eax,-0x34(%ebp)
54aeda:	39 55 f0             	cmp    %edx,-0x10(%ebp)
54aedd:	7f 1b                	jg     0x54aefa
54aedf:	7c 05                	jl     0x54aee6
54aee1:	3b 45 fc             	cmp    -0x4(%ebp),%eax
54aee4:	77 14                	ja     0x54aefa
54aee6:	29 45 fc             	sub    %eax,-0x4(%ebp)
54aee9:	8b 45 f8             	mov    -0x8(%ebp),%eax
54aeec:	1b 45 f0             	sbb    -0x10(%ebp),%eax
54aeef:	89 45 f8             	mov    %eax,-0x8(%ebp)
54aef2:	8b 45 fc             	mov    -0x4(%ebp),%eax
54aef5:	03 45 e4             	add    -0x1c(%ebp),%eax
54aef8:	eb 0a                	jmp    0x54af04
54aefa:	03 f0                	add    %eax,%esi
54aefc:	13 4d f0             	adc    -0x10(%ebp),%ecx
54aeff:	33 c0                	xor    %eax,%eax
54af01:	89 4d f4             	mov    %ecx,-0xc(%ebp)
54af04:	8b 55 f8             	mov    -0x8(%ebp),%edx
54af07:	89 47 64             	mov    %eax,0x64(%edi)
54af0a:	8b 45 d4             	mov    -0x2c(%ebp),%eax
54af0d:	c1 e0 02             	shl    $0x2,%eax
54af10:	83 c0 07             	add    $0x7,%eax
54af13:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
54af1a:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
54af21:	83 55 ec 00          	adcl   $0x0,-0x14(%ebp)
54af25:	83 e0 f8             	and    $0xfffffff8,%eax
54af28:	89 45 d4             	mov    %eax,-0x2c(%ebp)
54af2b:	39 55 ec             	cmp    %edx,-0x14(%ebp)
54af2e:	7f 20                	jg     0x54af50
54af30:	7c 05                	jl     0x54af37
54af32:	3b 45 fc             	cmp    -0x4(%ebp),%eax
54af35:	77 19                	ja     0x54af50
54af37:	29 45 fc             	sub    %eax,-0x4(%ebp)
54af3a:	8b 45 f8             	mov    -0x8(%ebp),%eax
54af3d:	1b 45 ec             	sbb    -0x14(%ebp),%eax
54af40:	8b 55 e4             	mov    -0x1c(%ebp),%edx
54af43:	89 45 f8             	mov    %eax,-0x8(%ebp)
54af46:	8b 45 fc             	mov    -0x4(%ebp),%eax
54af49:	03 d0                	add    %eax,%edx
54af4b:	89 55 e0             	mov    %edx,-0x20(%ebp)
54af4e:	eb 0b                	jmp    0x54af5b
54af50:	03 f0                	add    %eax,%esi
54af52:	8b 45 fc             	mov    -0x4(%ebp),%eax
54af55:	13 4d ec             	adc    -0x14(%ebp),%ecx
54af58:	89 4d f4             	mov    %ecx,-0xc(%ebp)
54af5b:	8b 55 e0             	mov    -0x20(%ebp),%edx
54af5e:	89 57 5c             	mov    %edx,0x5c(%edi)
54af61:	8b 55 d8             	mov    -0x28(%ebp),%edx
54af64:	c1 e2 02             	shl    $0x2,%edx
54af67:	89 55 fc             	mov    %edx,-0x4(%ebp)
54af6a:	33 d2                	xor    %edx,%edx
54af6c:	83 45 fc 07          	addl   $0x7,-0x4(%ebp)
54af70:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
54af77:	13 d2                	adc    %edx,%edx
54af79:	83 65 fc f8          	andl   $0xfffffff8,-0x4(%ebp)
54af7d:	3b 55 f8             	cmp    -0x8(%ebp),%edx
54af80:	89 55 e0             	mov    %edx,-0x20(%ebp)
54af83:	8b 55 e8             	mov    -0x18(%ebp),%edx
54af86:	7f 12                	jg     0x54af9a
54af88:	7c 05                	jl     0x54af8f
54af8a:	39 45 fc             	cmp    %eax,-0x4(%ebp)
54af8d:	77 0b                	ja     0x54af9a
54af8f:	2b 45 fc             	sub    -0x4(%ebp),%eax
54af92:	03 45 e4             	add    -0x1c(%ebp),%eax
54af95:	8b 4d f4             	mov    -0xc(%ebp),%ecx
54af98:	eb 0c                	jmp    0x54afa6
54af9a:	03 75 fc             	add    -0x4(%ebp),%esi
54af9d:	8b 45 c8             	mov    -0x38(%ebp),%eax
54afa0:	13 4d e0             	adc    -0x20(%ebp),%ecx
54afa3:	89 4d f4             	mov    %ecx,-0xc(%ebp)
54afa6:	89 47 60             	mov    %eax,0x60(%edi)
54afa9:	8b c6                	mov    %esi,%eax
54afab:	0b c1                	or     %ecx,%eax
54afad:	0f 84 ba 00 00 00    	je     0x54b06d
54afb3:	51                   	push   %ecx
54afb4:	56                   	push   %esi
54afb5:	ff 75 dc             	push   -0x24(%ebp)
54afb8:	e8 23 64 fd ff       	call   0x5213e0
54afbd:	89 87 c4 00 00 00    	mov    %eax,0xc4(%edi)
54afc3:	83 c4 0c             	add    $0xc,%esp
54afc6:	89 45 08             	mov    %eax,0x8(%ebp)
54afc9:	8b 45 dc             	mov    -0x24(%ebp),%eax
54afcc:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
54afd0:	0f 85 94 00 00 00    	jne    0x54b06a
54afd6:	8b 47 58             	mov    0x58(%edi),%eax
54afd9:	85 c0                	test   %eax,%eax
54afdb:	89 45 e4             	mov    %eax,-0x1c(%ebp)
54afde:	8b 45 f4             	mov    -0xc(%ebp),%eax
54afe1:	75 1b                	jne    0x54affe
54afe3:	8b 55 c4             	mov    -0x3c(%ebp),%edx
54afe6:	3b d0                	cmp    %eax,%edx
54afe8:	7f 14                	jg     0x54affe
54afea:	8b 4d d0             	mov    -0x30(%ebp),%ecx
54afed:	7c 04                	jl     0x54aff3
54afef:	3b ce                	cmp    %esi,%ecx
54aff1:	77 0b                	ja     0x54affe
54aff3:	2b f1                	sub    %ecx,%esi
54aff5:	8b 4d 08             	mov    0x8(%ebp),%ecx
54aff8:	1b c2                	sbb    %edx,%eax
54affa:	03 ce                	add    %esi,%ecx
54affc:	eb 03                	jmp    0x54b001
54affe:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
54b001:	8b 57 64             	mov    0x64(%edi),%edx
54b004:	89 4f 58             	mov    %ecx,0x58(%edi)
54b007:	85 d2                	test   %edx,%edx
54b009:	75 18                	jne    0x54b023
54b00b:	39 45 f0             	cmp    %eax,-0x10(%ebp)
54b00e:	7f 13                	jg     0x54b023
54b010:	8b 4d cc             	mov    -0x34(%ebp),%ecx
54b013:	7c 04                	jl     0x54b019
54b015:	3b ce                	cmp    %esi,%ecx
54b017:	77 0a                	ja     0x54b023
54b019:	8b 55 08             	mov    0x8(%ebp),%edx
54b01c:	2b f1                	sub    %ecx,%esi
54b01e:	1b 45 f0             	sbb    -0x10(%ebp),%eax
54b021:	03 d6                	add    %esi,%edx
54b023:	8b 4f 5c             	mov    0x5c(%edi),%ecx
54b026:	89 57 64             	mov    %edx,0x64(%edi)
54b029:	85 c9                	test   %ecx,%ecx
54b02b:	75 1b                	jne    0x54b048
54b02d:	39 45 ec             	cmp    %eax,-0x14(%ebp)
54b030:	7f 16                	jg     0x54b048
54b032:	8b 55 d4             	mov    -0x2c(%ebp),%edx
54b035:	7c 04                	jl     0x54b03b
54b037:	3b d6                	cmp    %esi,%edx
54b039:	77 0d                	ja     0x54b048
54b03b:	2b f2                	sub    %edx,%esi
54b03d:	8b 55 08             	mov    0x8(%ebp),%edx
54b040:	1b 45 ec             	sbb    -0x14(%ebp),%eax
54b043:	8d 0c 16             	lea    (%esi,%edx,1),%ecx
54b046:	eb 03                	jmp    0x54b04b
54b048:	8b 55 08             	mov    0x8(%ebp),%edx
54b04b:	89 4f 5c             	mov    %ecx,0x5c(%edi)
54b04e:	8b 4f 60             	mov    0x60(%edi),%ecx
54b051:	85 c9                	test   %ecx,%ecx
54b053:	75 12                	jne    0x54b067
54b055:	39 45 e0             	cmp    %eax,-0x20(%ebp)
54b058:	7f 0d                	jg     0x54b067
54b05a:	7c 05                	jl     0x54b061
54b05c:	39 75 fc             	cmp    %esi,-0x4(%ebp)
54b05f:	77 06                	ja     0x54b067
54b061:	2b 75 fc             	sub    -0x4(%ebp),%esi
54b064:	8d 0c 16             	lea    (%esi,%edx,1),%ecx
54b067:	89 4f 60             	mov    %ecx,0x60(%edi)
54b06a:	8b 55 e8             	mov    -0x18(%ebp),%edx
54b06d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
54b070:	8b 81 d8 00 00 00    	mov    0xd8(%ecx),%eax
54b076:	89 87 80 00 00 00    	mov    %eax,0x80(%edi)
54b07c:	0f b6 81 c7 00 00 00 	movzbl 0xc7(%ecx),%eax
54b083:	c7 81 d8 00 00 00 00 	movl   $0x0,0xd8(%ecx)
54b08a:	00 00 00
54b08d:	8b 4d dc             	mov    -0x24(%ebp),%ecx
54b090:	c1 e0 02             	shl    $0x2,%eax
54b093:	33 87 98 00 00 00    	xor    0x98(%edi),%eax
54b099:	83 e0 0c             	and    $0xc,%eax
54b09c:	31 87 98 00 00 00    	xor    %eax,0x98(%edi)
54b0a2:	80 79 51 00          	cmpb   $0x0,0x51(%ecx)
54b0a6:	74 0e                	je     0x54b0b6
54b0a8:	33 c0                	xor    %eax,%eax
54b0aa:	66 89 47 10          	mov    %ax,0x10(%edi)
54b0ae:	89 47 1c             	mov    %eax,0x1c(%edi)
54b0b1:	89 47 18             	mov    %eax,0x18(%edi)
54b0b4:	eb 74                	jmp    0x54b12a
54b0b6:	8b 75 d8             	mov    -0x28(%ebp),%esi
54b0b9:	8b 47 64             	mov    0x64(%edi),%eax
54b0bc:	89 77 1c             	mov    %esi,0x1c(%edi)
54b0bf:	66 89 57 10          	mov    %dx,0x10(%edi)
54b0c3:	85 d2                	test   %edx,%edx
54b0c5:	7e 21                	jle    0x54b0e8
54b0c7:	83 c0 08             	add    $0x8,%eax
54b0ca:	be 01 00 00 00       	mov    $0x1,%esi
54b0cf:	90                   	nop
54b0d0:	4a                   	dec    %edx
54b0d1:	89 48 18             	mov    %ecx,0x18(%eax)
54b0d4:	66 89 30             	mov    %si,(%eax)
54b0d7:	8d 40 28             	lea    0x28(%eax),%eax
54b0da:	c7 40 e8 00 00 00 00 	movl   $0x0,-0x18(%eax)
54b0e1:	85 d2                	test   %edx,%edx
54b0e3:	7f eb                	jg     0x54b0d0
54b0e5:	8b 75 d8             	mov    -0x28(%ebp),%esi
54b0e8:	8b 47 58             	mov    0x58(%edi),%eax
54b0eb:	89 5f 18             	mov    %ebx,0x18(%edi)
54b0ee:	85 db                	test   %ebx,%ebx
54b0f0:	7e 23                	jle    0x54b115
54b0f2:	83 c0 08             	add    $0x8,%eax
54b0f5:	ba 80 00 00 00       	mov    $0x80,%edx
54b0fa:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
54b100:	4b                   	dec    %ebx
54b101:	89 48 18             	mov    %ecx,0x18(%eax)
54b104:	66 89 10             	mov    %dx,(%eax)
54b107:	8d 40 28             	lea    0x28(%eax),%eax
54b10a:	c7 40 e8 00 00 00 00 	movl   $0x0,-0x18(%eax)
54b111:	85 db                	test   %ebx,%ebx
54b113:	7f eb                	jg     0x54b100
54b115:	8d 04 b5 00 00 00 00 	lea    0x0(,%esi,4),%eax
54b11c:	50                   	push   %eax
54b11d:	6a 00                	push   $0x0
54b11f:	ff 77 60             	push   0x60(%edi)
54b122:	e8 d9 88 09 00       	call   0x5e3a00
54b127:	83 c4 0c             	add    $0xc,%esp
54b12a:	c7 47 14 a3 0d f2 2d 	movl   $0x2df20da3,0x14(%edi)
54b131:	c7 47 24 ff ff ff ff 	movl   $0xffffffff,0x24(%edi)
54b138:	c7 47 28 00 00 00 00 	movl   $0x0,0x28(%edi)
54b13f:	66 c7 87 92 00 00 00 	movw   $0xff02,0x92(%edi)
54b146:	02 ff
54b148:	c7 47 2c 00 00 00 00 	movl   $0x0,0x2c(%edi)
54b14f:	c7 47 20 01 00 00 00 	movl   $0x1,0x20(%edi)
54b156:	c7 47 30 00 00 00 00 	movl   $0x0,0x30(%edi)
54b15d:	c7 47 40 00 00 00 00 	movl   $0x0,0x40(%edi)
54b164:	c7 47 44 00 00 00 00 	movl   $0x0,0x44(%edi)
54b16b:	5f                   	pop    %edi
54b16c:	5e                   	pop    %esi
54b16d:	5b                   	pop    %ebx
54b16e:	8b e5                	mov    %ebp,%esp
54b170:	5d                   	pop    %ebp
54b171:	c3                   	ret
54b172:	cc                   	int3
54b173:	cc                   	int3
54b174:	cc                   	int3
54b175:	cc                   	int3
54b176:	cc                   	int3
54b177:	cc                   	int3
54b178:	cc                   	int3
54b179:	cc                   	int3
54b17a:	cc                   	int3
54b17b:	cc                   	int3
54b17c:	cc                   	int3
54b17d:	cc                   	int3
54b17e:	cc                   	int3
54b17f:	cc                   	int3
54b180:	55                   	push   %ebp
54b181:	8b ec                	mov    %esp,%ebp
54b183:	83 ec 24             	sub    $0x24,%esp
54b186:	a1 d4 89 72 00       	mov    0x7289d4,%eax
54b18b:	33 c5                	xor    %ebp,%eax
54b18d:	89 45 fc             	mov    %eax,-0x4(%ebp)
54b190:	53                   	push   %ebx
54b191:	8b 5d 08             	mov    0x8(%ebp),%ebx
54b194:	0f 57 c0             	xorps  %xmm0,%xmm0
54b197:	56                   	push   %esi
54b198:	8b 75 0c             	mov    0xc(%ebp),%esi
54b19b:	b8 00 24 00 00       	mov    $0x2400,%eax
54b1a0:	57                   	push   %edi
54b1a1:	8b 7d 10             	mov    0x10(%ebp),%edi
54b1a4:	0f 11 45 dc          	movups %xmm0,-0x24(%ebp)
54b1a8:	0f 11 45 ec          	movups %xmm0,-0x14(%ebp)
54b1ac:	66 85 46 08          	test   %ax,0x8(%esi)
54b1b0:	74 0b                	je     0x54b1bd
54b1b2:	56                   	push   %esi
54b1b3:	e8 98 fc 00 00       	call   0x55ae50
54b1b8:	83 c4 04             	add    $0x4,%esp
54b1bb:	eb 09                	jmp    0x54b1c6
54b1bd:	b8 01 00 00 00       	mov    $0x1,%eax
54b1c2:	66 89 46 08          	mov    %ax,0x8(%esi)
54b1c6:	8d 45 dc             	lea    -0x24(%ebp),%eax
54b1c9:	89 75 dc             	mov    %esi,-0x24(%ebp)
54b1cc:	50                   	push   %eax
54b1cd:	8b 47 18             	mov    0x18(%edi),%eax
54b1d0:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
54b1d3:	89 7d e0             	mov    %edi,-0x20(%ebp)
54b1d6:	ff d0                	call   *%eax
54b1d8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
54b1db:	83 c4 04             	add    $0x4,%esp
54b1de:	8b 45 f0             	mov    -0x10(%ebp),%eax
54b1e1:	33 cd                	xor    %ebp,%ecx
54b1e3:	5f                   	pop    %edi
54b1e4:	5e                   	pop    %esi
54b1e5:	5b                   	pop    %ebx
54b1e6:	e8 ef 62 09 00       	call   0x5e14da
54b1eb:	8b e5                	mov    %ebp,%esp
54b1ed:	5d                   	pop    %ebp
54b1ee:	c3                   	ret
54b1ef:	cc                   	int3
54b1f0:	55                   	push   %ebp
54b1f1:	8b ec                	mov    %esp,%ebp
54b1f3:	56                   	push   %esi
54b1f4:	8b 75 08             	mov    0x8(%ebp),%esi
54b1f7:	0f b7 4e 08          	movzwl 0x8(%esi),%ecx
54b1fb:	f6 c1 01             	test   $0x1,%cl
54b1fe:	75 3a                	jne    0x54b23a
54b200:	0f b6 45 0c          	movzbl 0xc(%ebp),%eax
54b204:	83 c0 bf             	add    $0xffffffbf,%eax
54b207:	83 f8 04             	cmp    $0x4,%eax
54b20a:	77 6c                	ja     0x54b278
54b20c:	ff 24 85 c0 b2 54 00 	jmp    *0x54b2c0(,%eax,4)
54b213:	f6 c1 10             	test   $0x10,%cl
54b216:	75 27                	jne    0x54b23f
54b218:	ff 75 10             	push   0x10(%ebp)
54b21b:	6a 42                	push   $0x42
54b21d:	56                   	push   %esi
54b21e:	e8 bd 88 fa ff       	call   0x4f3ae0
54b223:	0f b7 46 08          	movzwl 0x8(%esi),%eax
54b227:	83 c4 0c             	add    $0xc,%esp
54b22a:	a8 02                	test   $0x2,%al
54b22c:	74 0c                	je     0x54b23a
54b22e:	25 40 3e 00 00       	and    $0x3e40,%eax
54b233:	83 c8 10             	or     $0x10,%eax
54b236:	66 89 46 08          	mov    %ax,0x8(%esi)
54b23a:	33 c0                	xor    %eax,%eax
54b23c:	5e                   	pop    %esi
54b23d:	5d                   	pop    %ebp
54b23e:	c3                   	ret
54b23f:	81 e1 50 3e 00 00    	and    $0x3e50,%ecx
54b245:	33 c0                	xor    %eax,%eax
54b247:	66 89 4e 08          	mov    %cx,0x8(%esi)
54b24b:	5e                   	pop    %esi
54b24c:	5d                   	pop    %ebp
54b24d:	c3                   	ret
54b24e:	56                   	push   %esi
54b24f:	e8 ec 05 00 00       	call   0x54b840
54b254:	83 c4 04             	add    $0x4,%esp
54b257:	33 c0                	xor    %eax,%eax
54b259:	5e                   	pop    %esi
54b25a:	5d                   	pop    %ebp