7ceaaa:	7f a7                	jg     0x7cea53
7ceaac:	8b 54 24 38          	mov    0x38(%esp),%edx
7ceab0:	85 d2                	test   %edx,%edx
7ceab2:	79 15                	jns    0x7ceac9
7ceab4:	8b 4f 44             	mov    0x44(%edi),%ecx
7ceab7:	8b c2                	mov    %edx,%eax
7ceab9:	f7 d8                	neg    %eax
7ceabb:	3b c1                	cmp    %ecx,%eax
7ceabd:	0f 87 71 14 00 00    	ja     0x7cff34
7ceac3:	8d 04 11             	lea    (%ecx,%edx,1),%eax
7ceac6:	89 47 44             	mov    %eax,0x44(%edi)
7ceac9:	83 7c 24 24 00       	cmpl   $0x0,0x24(%esp)
7ceace:	8b 4c 24 28          	mov    0x28(%esp),%ecx
7cead2:	0f 8f 18 fa ff ff    	jg     0x7ce4f0
7cead8:	8b 54 24 4c          	mov    0x4c(%esp),%edx
7ceadc:	8b c1                	mov    %ecx,%eax
7ceade:	2b 47 28             	sub    0x28(%edi),%eax
7ceae1:	3b c2                	cmp    %edx,%eax
7ceae3:	0f 85 4b 14 00 00    	jne    0x7cff34
7ceae9:	85 ed                	test   %ebp,%ebp
7ceaeb:	0f 8e 84 00 00 00    	jle    0x7ceb75
7ceaf1:	83 fd 10             	cmp    $0x10,%ebp
7ceaf4:	0f 8d 7b 00 00 00    	jge    0x7ceb75
7ceafa:	b8 10 00 00 00       	mov    $0x10,%eax
7ceaff:	2b c5                	sub    %ebp,%eax
7ceb01:	89 44 24 24          	mov    %eax,0x24(%esp)
7ceb05:	3b f3                	cmp    %ebx,%esi
7ceb07:	72 17                	jb     0x7ceb20
7ceb09:	57                   	push   %edi
7ceb0a:	e8 61 29 00 00       	call   0x7d1470
7ceb0f:	83 c4 04             	add    $0x4,%esp
7ceb12:	85 c0                	test   %eax,%eax
7ceb14:	0f 85 da 13 00 00    	jne    0x7cfef4
7ceb1a:	8b 77 60             	mov    0x60(%edi),%esi
7ceb1d:	8b 5f 64             	mov    0x64(%edi),%ebx
7ceb20:	8a 06                	mov    (%esi),%al
7ceb22:	46                   	inc    %esi
7ceb23:	88 44 24 13          	mov    %al,0x13(%esp)
7ceb27:	3b f3                	cmp    %ebx,%esi
7ceb29:	72 17                	jb     0x7ceb42
7ceb2b:	57                   	push   %edi
7ceb2c:	e8 3f 29 00 00       	call   0x7d1470
7ceb31:	83 c4 04             	add    $0x4,%esp
7ceb34:	85 c0                	test   %eax,%eax
7ceb36:	0f 85 b8 13 00 00    	jne    0x7cfef4
7ceb3c:	8b 77 60             	mov    0x60(%edi),%esi
7ceb3f:	8b 5f 64             	mov    0x64(%edi),%ebx
7ceb42:	8a 06                	mov    (%esi),%al
7ceb44:	83 c5 10             	add    $0x10,%ebp
7ceb47:	0f b6 d0             	movzbl %al,%edx
7ceb4a:	46                   	inc    %esi
7ceb4b:	0f b6 44 24 13       	movzbl 0x13(%esp),%eax
7ceb50:	c1 e2 08             	shl    $0x8,%edx
7ceb53:	0b d0                	or     %eax,%edx
7ceb55:	89 6c 24 2c          	mov    %ebp,0x2c(%esp)
7ceb59:	8b 44 24 24          	mov    0x24(%esp),%eax
7ceb5d:	8b c8                	mov    %eax,%ecx
7ceb5f:	d3 e2                	shl    %cl,%edx
7ceb61:	83 e8 10             	sub    $0x10,%eax
7ceb64:	09 54 24 14          	or     %edx,0x14(%esp)
7ceb68:	89 44 24 24          	mov    %eax,0x24(%esp)
7ceb6c:	83 fd 10             	cmp    $0x10,%ebp
7ceb6f:	7c 94                	jl     0x7ceb05
7ceb71:	8b 54 24 4c          	mov    0x4c(%esp),%edx
7ceb75:	8b cd                	mov    %ebp,%ecx
7ceb77:	83 e1 0f             	and    $0xf,%ecx
7ceb7a:	74 0a                	je     0x7ceb86
7ceb7c:	d3 64 24 14          	shll   %cl,0x14(%esp)
7ceb80:	2b e9                	sub    %ecx,%ebp
7ceb82:	89 6c 24 2c          	mov    %ebp,0x2c(%esp)
7ceb86:	8b 47 68             	mov    0x68(%edi),%eax
7ceb89:	3b 47 6c             	cmp    0x6c(%edi),%eax
7ceb8c:	0f 85 a2 13 00 00    	jne    0x7cff34
7ceb92:	80 7f 50 00          	cmpb   $0x0,0x50(%edi)
7ceb96:	0f 84 d2 12 00 00    	je     0x7cfe6e
7ceb9c:	8b 47 48             	mov    0x48(%edi),%eax
7ceb9f:	89 44 24 44          	mov    %eax,0x44(%esp)
7ceba3:	85 c0                	test   %eax,%eax
7ceba5:	0f 84 c3 12 00 00    	je     0x7cfe6e
7cebab:	81 7f 2c 00 80 00 00 	cmpl   $0x8000,0x2c(%edi)
7cebb2:	0f 87 b6 12 00 00    	ja     0x7cfe6e
7cebb8:	83 fa 0a             	cmp    $0xa,%edx
7cebbb:	0f 86 ad 12 00 00    	jbe    0x7cfe6e
7cebc1:	8d 8a b1 7a 00 00    	lea    0x7ab1(%edx),%ecx
7cebc7:	03 cf                	add    %edi,%ecx
7cebc9:	8d 87 bb 7a 00 00    	lea    0x7abb(%edi),%eax
7cebcf:	89 4c 24 18          	mov    %ecx,0x18(%esp)
7cebd3:	8b 4f 4c             	mov    0x4c(%edi),%ecx
7cebd6:	52                   	push   %edx
7cebd7:	50                   	push   %eax
7cebd8:	89 47 68             	mov    %eax,0x68(%edi)
7cebdb:	8b 47 28             	mov    0x28(%edi),%eax
7cebde:	03 47 14             	add    0x14(%edi),%eax
7cebe1:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
7cebe5:	8b 0f                	mov    (%edi),%ecx
7cebe7:	50                   	push   %eax
7cebe8:	8b 41 24             	mov    0x24(%ecx),%eax
7cebeb:	ff d0                	call   *%eax
7cebed:	8d 97 bb 7a 00 00    	lea    0x7abb(%edi),%edx
7cebf3:	83 c4 0c             	add    $0xc,%esp
7cebf6:	3b 54 24 18          	cmp    0x18(%esp),%edx
7cebfa:	0f 83 68 12 00 00    	jae    0x7cfe68
7cec00:	8b 4c 24 24          	mov    0x24(%esp),%ecx
7cec04:	8b 7c 24 44          	mov    0x44(%esp),%edi
7cec08:	8b 6c 24 18          	mov    0x18(%esp),%ebp
7cec0c:	0f 1f 40 00          	nopl   0x0(%eax)
7cec10:	8a 02                	mov    (%edx),%al
7cec12:	42                   	inc    %edx
7cec13:	3c e8                	cmp    $0xe8,%al
7cec15:	0f 84 db 11 00 00    	je     0x7cfdf6
7cec1b:	b8 01 00 00 00       	mov    $0x1,%eax
7cec20:	e9 2d 12 00 00       	jmp    0x7cfe52
7cec25:	85 d2                	test   %edx,%edx
7cec27:	0f 8e 85 fe ff ff    	jle    0x7ceab2
7cec2d:	0f 1f 00             	nopl   (%eax)
7cec30:	83 fd 10             	cmp    $0x10,%ebp
7cec33:	7d 7b                	jge    0x7cecb0
7cec35:	b8 10 00 00 00       	mov    $0x10,%eax
7cec3a:	2b c5                	sub    %ebp,%eax
7cec3c:	89 44 24 18          	mov    %eax,0x18(%esp)
7cec40:	3b f3                	cmp    %ebx,%esi
7cec42:	72 17                	jb     0x7cec5b
7cec44:	57                   	push   %edi
7cec45:	e8 26 28 00 00       	call   0x7d1470
7cec4a:	83 c4 04             	add    $0x4,%esp
7cec4d:	85 c0                	test   %eax,%eax
7cec4f:	0f 85 9f 12 00 00    	jne    0x7cfef4
7cec55:	8b 77 60             	mov    0x60(%edi),%esi
7cec58:	8b 5f 64             	mov    0x64(%edi),%ebx
7cec5b:	8a 06                	mov    (%esi),%al
7cec5d:	46                   	inc    %esi
7cec5e:	88 44 24 13          	mov    %al,0x13(%esp)
7cec62:	3b f3                	cmp    %ebx,%esi
7cec64:	72 17                	jb     0x7cec7d
7cec66:	57                   	push   %edi
7cec67:	e8 04 28 00 00       	call   0x7d1470
7cec6c:	83 c4 04             	add    $0x4,%esp
7cec6f:	85 c0                	test   %eax,%eax
7cec71:	0f 85 7d 12 00 00    	jne    0x7cfef4
7cec77:	8b 77 60             	mov    0x60(%edi),%esi
7cec7a:	8b 5f 64             	mov    0x64(%edi),%ebx
7cec7d:	8a 06                	mov    (%esi),%al
7cec7f:	83 c5 10             	add    $0x10,%ebp
7cec82:	0f b6 d0             	movzbl %al,%edx
7cec85:	46                   	inc    %esi
7cec86:	0f b6 44 24 13       	movzbl 0x13(%esp),%eax
7cec8b:	c1 e2 08             	shl    $0x8,%edx
7cec8e:	0b d0                	or     %eax,%edx
7cec90:	8b 44 24 18          	mov    0x18(%esp),%eax
7cec94:	8b c8                	mov    %eax,%ecx
7cec96:	83 e8 10             	sub    $0x10,%eax
7cec99:	d3 e2                	shl    %cl,%edx
7cec9b:	8b 4c 24 14          	mov    0x14(%esp),%ecx
7cec9f:	0b ca                	or     %edx,%ecx
7ceca1:	89 44 24 18          	mov    %eax,0x18(%esp)
7ceca5:	89 4c 24 14          	mov    %ecx,0x14(%esp)
7ceca9:	83 fd 10             	cmp    $0x10,%ebp
7cecac:	7c 92                	jl     0x7cec40
7cecae:	eb 04                	jmp    0x7cecb4
7cecb0:	8b 4c 24 14          	mov    0x14(%esp),%ecx
7cecb4:	8b c1                	mov    %ecx,%eax
7cecb6:	ba 10 0a 00 00       	mov    $0xa10,%edx
7cecbb:	c1 e8 14             	shr    $0x14,%eax
7cecbe:	0f b7 84 47 72 0d 00 	movzwl 0xd72(%edi,%eax,2),%eax
7cecc5:	00
7cecc6:	66 3b c2             	cmp    %dx,%ax
7cecc9:	72 32                	jb     0x7cecfd
7ceccb:	ba 00 00 10 00       	mov    $0x100000,%edx
7cecd0:	d1 fa                	sar    $1,%edx
7cecd2:	0f 84 5c 12 00 00    	je     0x7cff34
7cecd8:	23 ca                	and    %edx,%ecx
7cecda:	0f b7 c0             	movzwl %ax,%eax
7cecdd:	f7 d9                	neg    %ecx
7cecdf:	1b c9                	sbb    %ecx,%ecx
7cece1:	03 c0                	add    %eax,%eax
7cece3:	f7 d9                	neg    %ecx
7cece5:	0b c8                	or     %eax,%ecx
7cece7:	0f b7 84 4f 72 0d 00 	movzwl 0xd72(%edi,%ecx,2),%eax
7cecee:	00
7cecef:	b9 10 0a 00 00       	mov    $0xa10,%ecx
7cecf4:	66 3b c1             	cmp    %cx,%ax
7cecf7:	8b 4c 24 14          	mov    0x14(%esp),%ecx
7cecfb:	73 d3                	jae    0x7cecd0
7cecfd:	0f b7 d0             	movzwl %ax,%edx
7ced00:	0f b6 8c 17 d0 00 00 	movzbl 0xd0(%edi,%edx,1),%ecx
7ced07:	00
7ced08:	d3 64 24 14          	shll   %cl,0x14(%esp)
7ced0c:	2b e9                	sub    %ecx,%ebp
7ced0e:	89 6c 24 2c          	mov    %ebp,0x2c(%esp)
7ced12:	81 fa 00 01 00 00    	cmp    $0x100,%edx
7ced18:	7d 1a                	jge    0x7ced34
7ced1a:	8b 4c 24 40          	mov    0x40(%esp),%ecx
7ced1e:	8b 44 24 28          	mov    0x28(%esp),%eax
7ced22:	88 14 08             	mov    %dl,(%eax,%ecx,1)
7ced25:	b9 01 00 00 00       	mov    $0x1,%ecx
7ced2a:	8b 54 24 38          	mov    0x38(%esp),%edx
7ced2e:	4a                   	dec    %edx
7ced2f:	e9 0e 09 00 00       	jmp    0x7cf642
7ced34:	81 ea 00 01 00 00    	sub    $0x100,%edx
7ced3a:	8b ca                	mov    %edx,%ecx
7ced3c:	89 54 24 1c          	mov    %edx,0x1c(%esp)
7ced40:	83 e1 07             	and    $0x7,%ecx
7ced43:	89 4c 24 20          	mov    %ecx,0x20(%esp)
7ced47:	83 f9 07             	cmp    $0x7,%ecx
7ced4a:	0f 85 fc 00 00 00    	jne    0x7cee4c
7ced50:	80 bf ba 7a 00 00 00 	cmpb   $0x0,0x7aba(%edi)
7ced57:	0f 85 d7 11 00 00    	jne    0x7cff34
7ced5d:	83 fd 10             	cmp    $0x10,%ebp
7ced60:	7d 7e                	jge    0x7cede0
7ced62:	b8 10 00 00 00       	mov    $0x10,%eax
7ced67:	2b c5                	sub    %ebp,%eax
7ced69:	89 44 24 18          	mov    %eax,0x18(%esp)
7ced6d:	0f 1f 00             	nopl   (%eax)
7ced70:	3b f3                	cmp    %ebx,%esi
7ced72:	72 17                	jb     0x7ced8b
7ced74:	57                   	push   %edi
7ced75:	e8 f6 26 00 00       	call   0x7d1470
7ced7a:	83 c4 04             	add    $0x4,%esp
7ced7d:	85 c0                	test   %eax,%eax
7ced7f:	0f 85 6f 11 00 00    	jne    0x7cfef4
7ced85:	8b 77 60             	mov    0x60(%edi),%esi
7ced88:	8b 5f 64             	mov    0x64(%edi),%ebx
7ced8b:	8a 06                	mov    (%esi),%al
7ced8d:	46                   	inc    %esi
7ced8e:	88 44 24 13          	mov    %al,0x13(%esp)
7ced92:	3b f3                	cmp    %ebx,%esi
7ced94:	72 17                	jb     0x7cedad
7ced96:	57                   	push   %edi
7ced97:	e8 d4 26 00 00       	call   0x7d1470
7ced9c:	83 c4 04             	add    $0x4,%esp
7ced9f:	85 c0                	test   %eax,%eax
7ceda1:	0f 85 4d 11 00 00    	jne    0x7cfef4
7ceda7:	8b 77 60             	mov    0x60(%edi),%esi
7cedaa:	8b 5f 64             	mov    0x64(%edi),%ebx
7cedad:	8a 06                	mov    (%esi),%al
7cedaf:	83 c5 10             	add    $0x10,%ebp
7cedb2:	0f b6 d0             	movzbl %al,%edx
7cedb5:	46                   	inc    %esi
7cedb6:	0f b6 44 24 13       	movzbl 0x13(%esp),%eax
7cedbb:	c1 e2 08             	shl    $0x8,%edx
7cedbe:	0b d0                	or     %eax,%edx
7cedc0:	8b 44 24 18          	mov    0x18(%esp),%eax
7cedc4:	8b c8                	mov    %eax,%ecx
7cedc6:	83 e8 10             	sub    $0x10,%eax
7cedc9:	d3 e2                	shl    %cl,%edx
7cedcb:	8b 4c 24 14          	mov    0x14(%esp),%ecx
7cedcf:	0b ca                	or     %edx,%ecx
7cedd1:	89 44 24 18          	mov    %eax,0x18(%esp)
7cedd5:	89 4c 24 14          	mov    %ecx,0x14(%esp)
7cedd9:	83 fd 10             	cmp    $0x10,%ebp
7ceddc:	7c 92                	jl     0x7ced70
7cedde:	eb 04                	jmp    0x7cede4
7cede0:	8b 4c 24 14          	mov    0x14(%esp),%ecx
7cede4:	8b c1                	mov    %ecx,%eax
7cede6:	ba fa 00 00 00       	mov    $0xfa,%edx
7cedeb:	c1 e8 14             	shr    $0x14,%eax
7cedee:	0f b7 84 47 b2 55 00 	movzwl 0x55b2(%edi,%eax,2),%eax
7cedf5:	00
7cedf6:	66 3b c2             	cmp    %dx,%ax
7cedf9:	72 32                	jb     0x7cee2d
7cedfb:	ba 00 00 10 00       	mov    $0x100000,%edx
7cee00:	d1 fa                	sar    $1,%edx
7cee02:	0f 84 2c 11 00 00    	je     0x7cff34
7cee08:	23 ca                	and    %edx,%ecx
7cee0a:	0f b7 c0             	movzwl %ax,%eax
7cee0d:	f7 d9                	neg    %ecx
7cee0f:	1b c9                	sbb    %ecx,%ecx
7cee11:	03 c0                	add    %eax,%eax
7cee13:	f7 d9                	neg    %ecx
7cee15:	0b c8                	or     %eax,%ecx
7cee17:	0f b7 84 4f b2 55 00 	movzwl 0x55b2(%edi,%ecx,2),%eax
7cee1e:	00
7cee1f:	b9 fa 00 00 00       	mov    $0xfa,%ecx
7cee24:	66 3b c1             	cmp    %cx,%ax
7cee27:	8b 4c 24 14          	mov    0x14(%esp),%ecx
7cee2b:	73 d3                	jae    0x7cee00
7cee2d:	8b 54 24 1c          	mov    0x1c(%esp),%edx
7cee31:	0f b7 c0             	movzwl %ax,%eax
7cee34:	0f b6 8c 07 20 0b 00 	movzbl 0xb20(%edi,%eax,1),%ecx
7cee3b:	00
7cee3c:	d3 64 24 14          	shll   %cl,0x14(%esp)
7cee40:	2b e9                	sub    %ecx,%ebp
7cee42:	8b 4c 24 20          	mov    0x20(%esp),%ecx
7cee46:	89 6c 24 2c          	mov    %ebp,0x2c(%esp)
7cee4a:	03 c8                	add    %eax,%ecx
7cee4c:	8d 41 02             	lea    0x2(%ecx),%eax
7cee4f:	c1 fa 03             	sar    $0x3,%edx
7cee52:	89 44 24 20          	mov    %eax,0x20(%esp)
7cee56:	8b c2                	mov    %edx,%eax
7cee58:	89 54 24 1c          	mov    %edx,0x1c(%esp)
7cee5c:	83 e8 00             	sub    $0x0,%eax
7cee5f:	0f 84 8f 03 00 00    	je     0x7cf1f4
7cee65:	83 e8 01             	sub    $0x1,%eax
7cee68:	0f 84 74 03 00 00    	je     0x7cf1e2
7cee6e:	83 e8 01             	sub    $0x1,%eax
7cee71:	0f 84 59 03 00 00    	je     0x7cf1d0
7cee77:	83 fa 24             	cmp    $0x24,%edx
7cee7a:	72 07                	jb     0x7cee83
7cee7c:	ba 11 00 00 00       	mov    $0x11,%edx
7cee81:	eb 07                	jmp    0x7cee8a
7cee83:	0f b6 92 54 c4 c2 00 	movzbl 0xc2c454(%edx),%edx
7cee8a:	8b 44 24 1c          	mov    0x1c(%esp),%eax
7cee8e:	89 54 24 18          	mov    %edx,0x18(%esp)
7cee92:	8b 04 85 78 c4 c2 00 	mov    0xc2c478(,%eax,4),%eax
7cee99:	83 e8 02             	sub    $0x2,%eax
7cee9c:	89 44 24 1c          	mov    %eax,0x1c(%esp)
7ceea0:	83 fa 03             	cmp    $0x3,%edx
7ceea3:	0f 86 8f 01 00 00    	jbe    0x7cf038
7ceea9:	83 ea 03             	sub    $0x3,%edx
7ceeac:	89 54 24 18          	mov    %edx,0x18(%esp)
7ceeb0:	3b ea                	cmp    %edx,%ebp
7ceeb2:	7d 77                	jge    0x7cef2b
7ceeb4:	b8 10 00 00 00       	mov    $0x10,%eax
7ceeb9:	2b c5                	sub    %ebp,%eax
7ceebb:	89 44 24 34          	mov    %eax,0x34(%esp)
7ceebf:	90                   	nop
7ceec0:	3b f3                	cmp    %ebx,%esi
7ceec2:	72 17                	jb     0x7ceedb
7ceec4:	57                   	push   %edi
7ceec5:	e8 a6 25 00 00       	call   0x7d1470
7ceeca:	83 c4 04             	add    $0x4,%esp
7ceecd:	85 c0                	test   %eax,%eax
7ceecf:	0f 85 1f 10 00 00    	jne    0x7cfef4
7ceed5:	8b 77 60             	mov    0x60(%edi),%esi
7ceed8:	8b 5f 64             	mov    0x64(%edi),%ebx
7ceedb:	8a 06                	mov    (%esi),%al
7ceedd:	46                   	inc    %esi
7ceede:	88 44 24 13          	mov    %al,0x13(%esp)
7ceee2:	3b f3                	cmp    %ebx,%esi
7ceee4:	72 17                	jb     0x7ceefd
7ceee6:	57                   	push   %edi
7ceee7:	e8 84 25 00 00       	call   0x7d1470
7ceeec:	83 c4 04             	add    $0x4,%esp
7ceeef:	85 c0                	test   %eax,%eax
7ceef1:	0f 85 fd 0f 00 00    	jne    0x7cfef4
7ceef7:	8b 77 60             	mov    0x60(%edi),%esi
7ceefa:	8b 5f 64             	mov    0x64(%edi),%ebx
7ceefd:	8a 06                	mov    (%esi),%al
7ceeff:	83 c5 10             	add    $0x10,%ebp
7cef02:	0f b6 d0             	movzbl %al,%edx
7cef05:	46                   	inc    %esi
7cef06:	0f b6 44 24 13       	movzbl 0x13(%esp),%eax
7cef0b:	c1 e2 08             	shl    $0x8,%edx
7cef0e:	0b d0                	or     %eax,%edx
7cef10:	8b 44 24 34          	mov    0x34(%esp),%eax
7cef14:	8b c8                	mov    %eax,%ecx
7cef16:	83 e8 10             	sub    $0x10,%eax
7cef19:	d3 e2                	shl    %cl,%edx
7cef1b:	09 54 24 14          	or     %edx,0x14(%esp)
7cef1f:	8b 54 24 18          	mov    0x18(%esp),%edx