7ce863:	83 c5 10             	add    $0x10,%ebp
7ce866:	0f b6 d0             	movzbl %al,%edx
7ce869:	46                   	inc    %esi
7ce86a:	0f b6 44 24 13       	movzbl 0x13(%esp),%eax
7ce86f:	c1 e2 08             	shl    $0x8,%edx
7ce872:	0b d0                	or     %eax,%edx
7ce874:	8b 44 24 18          	mov    0x18(%esp),%eax
7ce878:	8b c8                	mov    %eax,%ecx
7ce87a:	83 e8 10             	sub    $0x10,%eax
7ce87d:	d3 e2                	shl    %cl,%edx
7ce87f:	09 54 24 14          	or     %edx,0x14(%esp)
7ce883:	89 44 24 18          	mov    %eax,0x18(%esp)
7ce887:	83 fd 03             	cmp    $0x3,%ebp
7ce88a:	7c 98                	jl     0x7ce824
7ce88c:	8b 4c 24 20          	mov    0x20(%esp),%ecx
7ce890:	8b 54 24 14          	mov    0x14(%esp),%edx
7ce894:	8b c2                	mov    %edx,%eax
7ce896:	83 ed 03             	sub    $0x3,%ebp
7ce899:	c1 e8 1d             	shr    $0x1d,%eax
7ce89c:	88 84 0f 5a 0c 00 00 	mov    %al,0xc5a(%edi,%ecx,1)
7ce8a3:	41                   	inc    %ecx
7ce8a4:	c1 e2 03             	shl    $0x3,%edx
7ce8a7:	89 54 24 14          	mov    %edx,0x14(%esp)
7ce8ab:	89 4c 24 20          	mov    %ecx,0x20(%esp)
7ce8af:	83 f9 08             	cmp    $0x8,%ecx
7ce8b2:	0f 8c 58 ff ff ff    	jl     0x7ce810
7ce8b8:	8d 87 9a 79 00 00    	lea    0x799a(%edi),%eax
7ce8be:	50                   	push   %eax
7ce8bf:	8d 87 5a 0c 00 00    	lea    0xc5a(%edi),%eax
7ce8c5:	50                   	push   %eax
7ce8c6:	6a 07                	push   $0x7
7ce8c8:	6a 08                	push   $0x8
7ce8ca:	e8 f1 28 00 00       	call   0x7d11c0
7ce8cf:	83 c4 10             	add    $0x10,%esp
7ce8d2:	85 c0                	test   %eax,%eax
7ce8d4:	0f 85 5a 16 00 00    	jne    0x7cff34
7ce8da:	8b 54 24 14          	mov    0x14(%esp),%edx
7ce8de:	68 00 01 00 00       	push   $0x100
7ce8e3:	89 77 60             	mov    %esi,0x60(%edi)
7ce8e6:	8d b7 d0 00 00 00    	lea    0xd0(%edi),%esi
7ce8ec:	6a 00                	push   $0x0
7ce8ee:	56                   	push   %esi
7ce8ef:	57                   	push   %edi
7ce8f0:	89 5f 64             	mov    %ebx,0x64(%edi)
7ce8f3:	89 57 70             	mov    %edx,0x70(%edi)
7ce8f6:	89 6f 74             	mov    %ebp,0x74(%edi)
7ce8f9:	e8 62 20 00 00       	call   0x7d0960
7ce8fe:	83 c4 10             	add    $0x10,%esp
7ce901:	85 c0                	test   %eax,%eax
7ce903:	0f 85 eb 15 00 00    	jne    0x7cfef4
7ce909:	8b 47 20             	mov    0x20(%edi),%eax
7ce90c:	05 00 01 00 00       	add    $0x100,%eax
7ce911:	50                   	push   %eax
7ce912:	68 00 01 00 00       	push   $0x100
7ce917:	56                   	push   %esi
7ce918:	57                   	push   %edi
7ce919:	e8 42 20 00 00       	call   0x7d0960
7ce91e:	83 c4 10             	add    $0x10,%esp
7ce921:	85 c0                	test   %eax,%eax
7ce923:	0f 85 cb 15 00 00    	jne    0x7cfef4
7ce929:	8b 47 70             	mov    0x70(%edi),%eax
7ce92c:	8b 5f 60             	mov    0x60(%edi),%ebx
7ce92f:	8b 6f 64             	mov    0x64(%edi),%ebp
7ce932:	89 44 24 18          	mov    %eax,0x18(%esp)
7ce936:	8b 47 74             	mov    0x74(%edi),%eax
7ce939:	89 44 24 20          	mov    %eax,0x20(%esp)
7ce93d:	8d 87 72 0d 00 00    	lea    0xd72(%edi),%eax
7ce943:	50                   	push   %eax
7ce944:	56                   	push   %esi
7ce945:	6a 0c                	push   $0xc
7ce947:	68 10 0a 00 00       	push   $0xa10
7ce94c:	e8 6f 28 00 00       	call   0x7d11c0
7ce951:	83 c4 10             	add    $0x10,%esp
7ce954:	85 c0                	test   %eax,%eax
7ce956:	0f 85 d8 15 00 00    	jne    0x7cff34
7ce95c:	38 87 b8 01 00 00    	cmp    %al,0x1b8(%edi)
7ce962:	74 04                	je     0x7ce968
7ce964:	c6 47 50 01          	movb   $0x1,0x50(%edi)
7ce968:	8b 44 24 18          	mov    0x18(%esp),%eax
7ce96c:	89 47 70             	mov    %eax,0x70(%edi)
7ce96f:	8b 44 24 20          	mov    0x20(%esp),%eax
7ce973:	68 f9 00 00 00       	push   $0xf9
7ce978:	89 47 74             	mov    %eax,0x74(%edi)
7ce97b:	8d 87 20 0b 00 00    	lea    0xb20(%edi),%eax
7ce981:	6a 00                	push   $0x0
7ce983:	50                   	push   %eax
7ce984:	57                   	push   %edi
7ce985:	89 5f 60             	mov    %ebx,0x60(%edi)
7ce988:	89 6f 64             	mov    %ebp,0x64(%edi)
7ce98b:	e8 d0 1f 00 00       	call   0x7d0960
7ce990:	83 c4 10             	add    $0x10,%esp
7ce993:	85 c0                	test   %eax,%eax
7ce995:	0f 85 59 15 00 00    	jne    0x7cfef4
7ce99b:	8b 47 70             	mov    0x70(%edi),%eax
7ce99e:	8b 6f 74             	mov    0x74(%edi),%ebp
7ce9a1:	8b 77 60             	mov    0x60(%edi),%esi
7ce9a4:	8b 5f 64             	mov    0x64(%edi),%ebx
7ce9a7:	89 44 24 14          	mov    %eax,0x14(%esp)
7ce9ab:	8d 87 b2 55 00 00    	lea    0x55b2(%edi),%eax
7ce9b1:	50                   	push   %eax
7ce9b2:	8d 87 20 0b 00 00    	lea    0xb20(%edi),%eax
7ce9b8:	89 6c 24 30          	mov    %ebp,0x30(%esp)
7ce9bc:	50                   	push   %eax
7ce9bd:	6a 0c                	push   $0xc
7ce9bf:	68 fa 00 00 00       	push   $0xfa
7ce9c4:	c6 87 ba 7a 00 00 00 	movb   $0x0,0x7aba(%edi)
7ce9cb:	e8 f0 27 00 00       	call   0x7d11c0
7ce9d0:	83 c4 10             	add    $0x10,%esp
7ce9d3:	85 c0                	test   %eax,%eax
7ce9d5:	74 26                	je     0x7ce9fd
7ce9d7:	33 c0                	xor    %eax,%eax
7ce9d9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
7ce9e0:	80 bc 07 20 0b 00 00 	cmpb   $0x0,0xb20(%edi,%eax,1)
7ce9e7:	00
7ce9e8:	0f 87 46 15 00 00    	ja     0x7cff34
7ce9ee:	40                   	inc    %eax
7ce9ef:	3d fa 00 00 00       	cmp    $0xfa,%eax
7ce9f4:	7c ea                	jl     0x7ce9e0
7ce9f6:	c6 87 ba 7a 00 00 01 	movb   $0x1,0x7aba(%edi)
7ce9fd:	8b 4c 24 28          	mov    0x28(%esp),%ecx
7cea01:	8b 47 44             	mov    0x44(%edi),%eax
7cea04:	8b d0                	mov    %eax,%edx
7cea06:	3b 44 24 24          	cmp    0x24(%esp),%eax
7cea0a:	0f 4f 54 24 24       	cmovg  0x24(%esp),%edx
7cea0f:	29 54 24 24          	sub    %edx,0x24(%esp)
7cea13:	2b c2                	sub    %edx,%eax
7cea15:	89 47 44             	mov    %eax,0x44(%edi)
7cea18:	0f b6 47 51          	movzbl 0x51(%edi),%eax
7cea1c:	89 54 24 38          	mov    %edx,0x38(%esp)
7cea20:	83 e8 01             	sub    $0x1,%eax
7cea23:	0f 84 30 0c 00 00    	je     0x7cf659
7cea29:	83 e8 01             	sub    $0x1,%eax
7cea2c:	0f 84 f3 01 00 00    	je     0x7cec25
7cea32:	83 e8 01             	sub    $0x1,%eax
7cea35:	0f 85 f9 14 00 00    	jne    0x7cff34
7cea3b:	8b 54 24 40          	mov    0x40(%esp),%edx
7cea3f:	8b 44 24 38          	mov    0x38(%esp),%eax
7cea43:	03 d1                	add    %ecx,%edx
7cea45:	03 c8                	add    %eax,%ecx
7cea47:	89 54 24 18          	mov    %edx,0x18(%esp)
7cea4b:	89 4c 24 28          	mov    %ecx,0x28(%esp)
7cea4f:	85 c0                	test   %eax,%eax
7cea51:	7e 59                	jle    0x7ceaac
7cea53:	8b cb                	mov    %ebx,%ecx
7cea55:	2b ce                	sub    %esi,%ecx
7cea57:	75 21                	jne    0x7cea7a
7cea59:	3b f3                	cmp    %ebx,%esi
7cea5b:	72 4b                	jb     0x7ceaa8
7cea5d:	57                   	push   %edi
7cea5e:	e8 0d 2a 00 00       	call   0x7d1470
7cea63:	83 c4 04             	add    $0x4,%esp
7cea66:	85 c0                	test   %eax,%eax
7cea68:	0f 85 86 14 00 00    	jne    0x7cfef4
7cea6e:	8b 77 60             	mov    0x60(%edi),%esi
7cea71:	8b 5f 64             	mov    0x64(%edi),%ebx
7cea74:	8b 54 24 18          	mov    0x18(%esp),%edx
7cea78:	eb 2a                	jmp    0x7ceaa4
7cea7a:	3b c8                	cmp    %eax,%ecx
7cea7c:	0f 4f c8             	cmovg  %eax,%ecx
7cea7f:	8b 07                	mov    (%edi),%eax
7cea81:	51                   	push   %ecx
7cea82:	52                   	push   %edx
7cea83:	56                   	push   %esi
7cea84:	8b 40 24             	mov    0x24(%eax),%eax
7cea87:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
7cea8b:	ff d0                	call   *%eax
7cea8d:	8b 44 24 2c          	mov    0x2c(%esp),%eax
7cea91:	83 c4 0c             	add    $0xc,%esp
7cea94:	8b 54 24 18          	mov    0x18(%esp),%edx
7cea98:	03 f0                	add    %eax,%esi
7cea9a:	03 d0                	add    %eax,%edx
7cea9c:	29 44 24 38          	sub    %eax,0x38(%esp)
7ceaa0:	89 54 24 18          	mov    %edx,0x18(%esp)
7ceaa4:	8b 44 24 38          	mov    0x38(%esp),%eax
7ceaa8:	85 c0                	test   %eax,%eax
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