7cc6b7:	8b 44 24 2c          	mov    0x2c(%esp),%eax
7cc6bb:	0f b7 44 82 02       	movzwl 0x2(%edx,%eax,4),%eax
7cc6c0:	33 d2                	xor    %edx,%edx
7cc6c2:	0f af c1             	imul   %ecx,%eax
7cc6c5:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
7cc6c9:	f7 74 24 30          	divl   0x30(%esp)
7cc6cd:	8b 54 24 40          	mov    0x40(%esp),%edx
7cc6d1:	01 44 24 18          	add    %eax,0x18(%esp)
7cc6d5:	8b 42 08             	mov    0x8(%edx),%eax
7cc6d8:	49                   	dec    %ecx
7cc6d9:	66 83 44 88 02 08    	addw   $0x8,0x2(%eax,%ecx,4)
7cc6df:	85 c9                	test   %ecx,%ecx
7cc6e1:	7f f2                	jg     0x7cc6d5
7cc6e3:	8b 42 08             	mov    0x8(%edx),%eax
7cc6e6:	b9 d8 0e 00 00       	mov    $0xed8,%ecx
7cc6eb:	66 39 48 02          	cmp    %cx,0x2(%eax)
7cc6ef:	76 09                	jbe    0x7cc6fa
7cc6f1:	52                   	push   %edx
7cc6f2:	e8 79 18 00 00       	call   0x7cdf70
7cc6f7:	83 c4 04             	add    $0x4,%esp
7cc6fa:	8b 4c 24 14          	mov    0x14(%esp),%ecx
7cc6fe:	8b 54 24 24          	mov    0x24(%esp),%edx
7cc702:	8b 44 24 18          	mov    0x18(%esp),%eax
7cc706:	33 c2                	xor    %edx,%eax
7cc708:	a9 00 80 00 00       	test   $0x8000,%eax
7cc70d:	8b 44 24 18          	mov    0x18(%esp),%eax
7cc711:	74 2a                	je     0x7cc73d
7cc713:	a9 00 40 00 00       	test   $0x4000,%eax
7cc718:	0f 84 cf 00 00 00    	je     0x7cc7ed
7cc71e:	f7 c2 00 40 00 00    	test   $0x4000,%edx
7cc724:	0f 85 c3 00 00 00    	jne    0x7cc7ed
7cc72a:	81 74 24 1c 00 40 00 	xorl   $0x4000,0x1c(%esp)
7cc731:	00
7cc732:	25 ff 3f 00 00       	and    $0x3fff,%eax
7cc737:	81 ca 00 40 00 00    	or     $0x4000,%edx
7cc73d:	03 c0                	add    %eax,%eax
7cc73f:	89 44 24 18          	mov    %eax,0x18(%esp)
7cc743:	8d 04 12             	lea    (%edx,%edx,1),%eax
7cc746:	83 c8 01             	or     $0x1,%eax
7cc749:	0f b7 d0             	movzwl %ax,%edx
7cc74c:	89 54 24 24          	mov    %edx,0x24(%esp)
7cc750:	80 fb 01             	cmp    $0x1,%bl
7cc753:	73 71                	jae    0x7cc7c6
7cc755:	3b f5                	cmp    %ebp,%esi
7cc757:	72 1b                	jb     0x7cc774
7cc759:	57                   	push   %edi
7cc75a:	e8 31 19 00 00       	call   0x7ce090
7cc75f:	83 c4 04             	add    $0x4,%esp
7cc762:	85 c0                	test   %eax,%eax
7cc764:	0f 85 23 0f 00 00    	jne    0x7cd68d
7cc76a:	8b 6f 30             	mov    0x30(%edi),%ebp
7cc76d:	8b 77 2c             	mov    0x2c(%edi),%esi
7cc770:	89 6c 24 20          	mov    %ebp,0x20(%esp)
7cc774:	8a 3e                	mov    (%esi),%bh
7cc776:	46                   	inc    %esi
7cc777:	3b f5                	cmp    %ebp,%esi
7cc779:	72 1b                	jb     0x7cc796
7cc77b:	57                   	push   %edi
7cc77c:	e8 0f 19 00 00       	call   0x7ce090
7cc781:	83 c4 04             	add    $0x4,%esp
7cc784:	85 c0                	test   %eax,%eax
7cc786:	0f 85 01 0f 00 00    	jne    0x7cd68d
7cc78c:	8b 6f 30             	mov    0x30(%edi),%ebp
7cc78f:	8b 77 2c             	mov    0x2c(%edi),%esi
7cc792:	89 6c 24 20          	mov    %ebp,0x20(%esp)
7cc796:	8a 06                	mov    (%esi),%al
7cc798:	b9 10 00 00 00       	mov    $0x10,%ecx
7cc79d:	0f b6 d7             	movzbl %bh,%edx
7cc7a0:	46                   	inc    %esi
7cc7a1:	c1 e2 08             	shl    $0x8,%edx
7cc7a4:	0f b6 c0             	movzbl %al,%eax
7cc7a7:	0b d0                	or     %eax,%edx
7cc7a9:	0f b6 c3             	movzbl %bl,%eax
7cc7ac:	2b c8                	sub    %eax,%ecx
7cc7ae:	80 c3 10             	add    $0x10,%bl
7cc7b1:	d3 e2                	shl    %cl,%edx
7cc7b3:	8b 4c 24 14          	mov    0x14(%esp),%ecx
7cc7b7:	0b ca                	or     %edx,%ecx
7cc7b9:	89 4c 24 14          	mov    %ecx,0x14(%esp)
7cc7bd:	80 fb 01             	cmp    $0x1,%bl
7cc7c0:	72 93                	jb     0x7cc755
7cc7c2:	8b 54 24 24          	mov    0x24(%esp),%edx
7cc7c6:	8b 44 24 1c          	mov    0x1c(%esp),%eax
7cc7ca:	c1 e9 1f             	shr    $0x1f,%ecx
7cc7cd:	03 c0                	add    %eax,%eax
7cc7cf:	0b c8                	or     %eax,%ecx
7cc7d1:	0f b7 c1             	movzwl %cx,%eax
7cc7d4:	8b 4c 24 14          	mov    0x14(%esp),%ecx
7cc7d8:	03 c9                	add    %ecx,%ecx
7cc7da:	89 44 24 1c          	mov    %eax,0x1c(%esp)
7cc7de:	fe cb                	dec    %bl
7cc7e0:	89 4c 24 14          	mov    %ecx,0x14(%esp)
7cc7e4:	88 5c 24 12          	mov    %bl,0x12(%esp)
7cc7e8:	e9 15 ff ff ff       	jmp    0x7cc702
7cc7ed:	8b 7c 24 34          	mov    0x34(%esp),%edi
7cc7f1:	8b 4c 24 28          	mov    0x28(%esp),%ecx
7cc7f5:	8b 44 24 4c          	mov    0x4c(%esp),%eax
7cc7f9:	ff 4c 24 3c          	decl   0x3c(%esp)
7cc7fd:	88 04 39             	mov    %al,(%ecx,%edi,1)
7cc800:	b8 01 00 00 00       	mov    $0x1,%eax
7cc805:	8b 7c 24 54          	mov    0x54(%esp),%edi
7cc809:	e9 60 0c 00 00       	jmp    0x7cd46e
7cc80e:	83 e9 04             	sub    $0x4,%ecx
7cc811:	0f 84 c2 08 00 00    	je     0x7cd0d9
7cc817:	83 e9 01             	sub    $0x1,%ecx
7cc81a:	0f 84 d8 05 00 00    	je     0x7ccdf8
7cc820:	83 e9 01             	sub    $0x1,%ecx
7cc823:	0f 85 6f 0e 00 00    	jne    0x7cd698
7cc829:	0f b7 c8             	movzwl %ax,%ecx
7cc82c:	8b 87 a4 00 00 00    	mov    0xa4(%edi),%eax
7cc832:	0f b7 d2             	movzwl %dx,%edx
7cc835:	2b d1                	sub    %ecx,%edx
7cc837:	89 54 24 48          	mov    %edx,0x48(%esp)
7cc83b:	0f b7 40 02          	movzwl 0x2(%eax),%eax
7cc83f:	89 44 24 38          	mov    %eax,0x38(%esp)
7cc843:	8b 44 24 1c          	mov    0x1c(%esp),%eax
7cc847:	0f b7 c0             	movzwl %ax,%eax
7cc84a:	2b c1                	sub    %ecx,%eax
7cc84c:	0f b7 ca             	movzwl %dx,%ecx
7cc84f:	40                   	inc    %eax
7cc850:	33 d2                	xor    %edx,%edx
7cc852:	0f af 44 24 38       	imul   0x38(%esp),%eax
7cc857:	41                   	inc    %ecx
7cc858:	48                   	dec    %eax
7cc859:	f7 f1                	div    %ecx
7cc85b:	8b 97 a0 00 00 00    	mov    0xa0(%edi),%edx
7cc861:	0f b7 c0             	movzwl %ax,%eax
7cc864:	89 44 24 4c          	mov    %eax,0x4c(%esp)
7cc868:	b8 01 00 00 00       	mov    $0x1,%eax
7cc86d:	89 44 24 30          	mov    %eax,0x30(%esp)
7cc871:	3b d0                	cmp    %eax,%edx
7cc873:	7e 22                	jle    0x7cc897
7cc875:	8b 8f a4 00 00 00    	mov    0xa4(%edi),%ecx
7cc87b:	8b 7c 24 4c          	mov    0x4c(%esp),%edi
7cc87f:	83 c1 06             	add    $0x6,%ecx
7cc882:	66 39 39             	cmp    %di,(%ecx)
7cc885:	76 08                	jbe    0x7cc88f
7cc887:	40                   	inc    %eax
7cc888:	83 c1 04             	add    $0x4,%ecx
7cc88b:	3b c2                	cmp    %edx,%eax
7cc88d:	7c f3                	jl     0x7cc882
7cc88f:	8b 7c 24 54          	mov    0x54(%esp),%edi
7cc893:	89 44 24 30          	mov    %eax,0x30(%esp)
7cc897:	8b 97 a4 00 00 00    	mov    0xa4(%edi),%edx
7cc89d:	0f b7 4c 82 fc       	movzwl -0x4(%edx,%eax,4),%ecx
7cc8a2:	0f b7 44 82 fe       	movzwl -0x2(%edx,%eax,4),%eax
7cc8a7:	33 d2                	xor    %edx,%edx
7cc8a9:	89 4c 24 40          	mov    %ecx,0x40(%esp)
7cc8ad:	8b 4c 24 48          	mov    0x48(%esp),%ecx
7cc8b1:	41                   	inc    %ecx
7cc8b2:	0f af c1             	imul   %ecx,%eax
7cc8b5:	f7 74 24 38          	divl   0x38(%esp)
7cc8b9:	8b 54 24 18          	mov    0x18(%esp),%edx
7cc8bd:	4a                   	dec    %edx
7cc8be:	03 c2                	add    %edx,%eax
7cc8c0:	8b 97 a4 00 00 00    	mov    0xa4(%edi),%edx
7cc8c6:	0f b7 c0             	movzwl %ax,%eax
7cc8c9:	89 44 24 2c          	mov    %eax,0x2c(%esp)
7cc8cd:	8b 44 24 30          	mov    0x30(%esp),%eax
7cc8d1:	0f b7 44 82 02       	movzwl 0x2(%edx,%eax,4),%eax
7cc8d6:	33 d2                	xor    %edx,%edx
7cc8d8:	0f af c1             	imul   %ecx,%eax
7cc8db:	8b 4c 24 30          	mov    0x30(%esp),%ecx
7cc8df:	f7 74 24 38          	divl   0x38(%esp)
7cc8e3:	01 44 24 18          	add    %eax,0x18(%esp)
7cc8e7:	66 0f 1f 84 00 00 00 	nopw   0x0(%eax,%eax,1)
7cc8ee:	00 00
7cc8f0:	8b 87 a4 00 00 00    	mov    0xa4(%edi),%eax
7cc8f6:	49                   	dec    %ecx
7cc8f7:	66 83 44 88 02 08    	addw   $0x8,0x2(%eax,%ecx,4)
7cc8fd:	85 c9                	test   %ecx,%ecx
7cc8ff:	7f ef                	jg     0x7cc8f0
7cc901:	8b 87 a4 00 00 00    	mov    0xa4(%edi),%eax
7cc907:	b9 d8 0e 00 00       	mov    $0xed8,%ecx
7cc90c:	66 39 48 02          	cmp    %cx,0x2(%eax)
7cc910:	76 0f                	jbe    0x7cc921
7cc912:	8d 87 9c 00 00 00    	lea    0x9c(%edi),%eax
7cc918:	50                   	push   %eax
7cc919:	e8 52 16 00 00       	call   0x7cdf70
7cc91e:	83 c4 04             	add    $0x4,%esp
7cc921:	8b 4c 24 14          	mov    0x14(%esp),%ecx
7cc925:	8b 54 24 2c          	mov    0x2c(%esp),%edx
7cc929:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
7cc930:	8b 44 24 18          	mov    0x18(%esp),%eax
7cc934:	33 c2                	xor    %edx,%eax
7cc936:	a9 00 80 00 00       	test   $0x8000,%eax
7cc93b:	8b 44 24 18          	mov    0x18(%esp),%eax
7cc93f:	74 2a                	je     0x7cc96b
7cc941:	a9 00 40 00 00       	test   $0x4000,%eax
7cc946:	0f 84 cf 00 00 00    	je     0x7cca1b
7cc94c:	f7 c2 00 40 00 00    	test   $0x4000,%edx
7cc952:	0f 85 c3 00 00 00    	jne    0x7cca1b
7cc958:	81 74 24 1c 00 40 00 	xorl   $0x4000,0x1c(%esp)
7cc95f:	00
7cc960:	25 ff 3f 00 00       	and    $0x3fff,%eax
7cc965:	81 ca 00 40 00 00    	or     $0x4000,%edx
7cc96b:	03 c0                	add    %eax,%eax
7cc96d:	89 44 24 18          	mov    %eax,0x18(%esp)
7cc971:	8d 04 12             	lea    (%edx,%edx,1),%eax
7cc974:	83 c8 01             	or     $0x1,%eax
7cc977:	0f b7 d0             	movzwl %ax,%edx
7cc97a:	89 54 24 2c          	mov    %edx,0x2c(%esp)
7cc97e:	80 fb 01             	cmp    $0x1,%bl
7cc981:	73 71                	jae    0x7cc9f4
7cc983:	3b f5                	cmp    %ebp,%esi
7cc985:	72 1b                	jb     0x7cc9a2
7cc987:	57                   	push   %edi
7cc988:	e8 03 17 00 00       	call   0x7ce090
7cc98d:	83 c4 04             	add    $0x4,%esp
7cc990:	85 c0                	test   %eax,%eax
7cc992:	0f 85 f5 0c 00 00    	jne    0x7cd68d
7cc998:	8b 6f 30             	mov    0x30(%edi),%ebp
7cc99b:	8b 77 2c             	mov    0x2c(%edi),%esi
7cc99e:	89 6c 24 20          	mov    %ebp,0x20(%esp)
7cc9a2:	8a 3e                	mov    (%esi),%bh
7cc9a4:	46                   	inc    %esi
7cc9a5:	3b f5                	cmp    %ebp,%esi
7cc9a7:	72 1b                	jb     0x7cc9c4
7cc9a9:	57                   	push   %edi
7cc9aa:	e8 e1 16 00 00       	call   0x7ce090
7cc9af:	83 c4 04             	add    $0x4,%esp
7cc9b2:	85 c0                	test   %eax,%eax
7cc9b4:	0f 85 d3 0c 00 00    	jne    0x7cd68d
7cc9ba:	8b 6f 30             	mov    0x30(%edi),%ebp
7cc9bd:	8b 77 2c             	mov    0x2c(%edi),%esi
7cc9c0:	89 6c 24 20          	mov    %ebp,0x20(%esp)
7cc9c4:	8a 06                	mov    (%esi),%al
7cc9c6:	b9 10 00 00 00       	mov    $0x10,%ecx
7cc9cb:	0f b6 d7             	movzbl %bh,%edx
7cc9ce:	46                   	inc    %esi
7cc9cf:	c1 e2 08             	shl    $0x8,%edx
7cc9d2:	0f b6 c0             	movzbl %al,%eax
7cc9d5:	0b d0                	or     %eax,%edx
7cc9d7:	0f b6 c3             	movzbl %bl,%eax
7cc9da:	2b c8                	sub    %eax,%ecx
7cc9dc:	80 c3 10             	add    $0x10,%bl
7cc9df:	d3 e2                	shl    %cl,%edx
7cc9e1:	8b 4c 24 14          	mov    0x14(%esp),%ecx
7cc9e5:	0b ca                	or     %edx,%ecx
7cc9e7:	89 4c 24 14          	mov    %ecx,0x14(%esp)
7cc9eb:	80 fb 01             	cmp    $0x1,%bl
7cc9ee:	72 93                	jb     0x7cc983
7cc9f0:	8b 54 24 2c          	mov    0x2c(%esp),%edx
7cc9f4:	8b 44 24 1c          	mov    0x1c(%esp),%eax
7cc9f8:	c1 e9 1f             	shr    $0x1f,%ecx
7cc9fb:	03 c0                	add    %eax,%eax
7cc9fd:	0b c8                	or     %eax,%ecx
7cc9ff:	0f b7 c1             	movzwl %cx,%eax
7cca02:	8b 4c 24 14          	mov    0x14(%esp),%ecx
7cca06:	03 c9                	add    %ecx,%ecx
7cca08:	89 44 24 1c          	mov    %eax,0x1c(%esp)
7cca0c:	fe cb                	dec    %bl
7cca0e:	89 4c 24 14          	mov    %ecx,0x14(%esp)
7cca12:	88 5c 24 12          	mov    %bl,0x12(%esp)
7cca16:	e9 15 ff ff ff       	jmp    0x7cc930
7cca1b:	8b 44 24 40          	mov    0x40(%esp),%eax
7cca1f:	c7 44 24 38 00 00 00 	movl   $0x0,0x38(%esp)
7cca26:	00
7cca27:	8a 90 d8 c3 c2 00    	mov    0xc2c3d8(%eax),%dl
7cca2d:	88 54 24 13          	mov    %dl,0x13(%esp)
7cca31:	84 d2                	test   %dl,%dl
7cca33:	0f 84 bf 00 00 00    	je     0x7ccaf8
7cca39:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
7cca40:	80 fb 10             	cmp    $0x10,%bl
7cca43:	77 6a                	ja     0x7ccaaf
7cca45:	3b f5                	cmp    %ebp,%esi
7cca47:	72 1b                	jb     0x7cca64
7cca49:	57                   	push   %edi
7cca4a:	e8 41 16 00 00       	call   0x7ce090
7cca4f:	83 c4 04             	add    $0x4,%esp
7cca52:	85 c0                	test   %eax,%eax
7cca54:	0f 85 33 0c 00 00    	jne    0x7cd68d
7cca5a:	8b 6f 30             	mov    0x30(%edi),%ebp
7cca5d:	8b 77 2c             	mov    0x2c(%edi),%esi
7cca60:	89 6c 24 20          	mov    %ebp,0x20(%esp)
7cca64:	8a 3e                	mov    (%esi),%bh
7cca66:	46                   	inc    %esi
7cca67:	3b f5                	cmp    %ebp,%esi
7cca69:	72 1b                	jb     0x7cca86
7cca6b:	57                   	push   %edi
7cca6c:	e8 1f 16 00 00       	call   0x7ce090
7cca71:	83 c4 04             	add    $0x4,%esp
7cca74:	85 c0                	test   %eax,%eax
7cca76:	0f 85 11 0c 00 00    	jne    0x7cd68d
7cca7c:	8b 6f 30             	mov    0x30(%edi),%ebp
7cca7f:	8b 77 2c             	mov    0x2c(%edi),%esi
7cca82:	89 6c 24 20          	mov    %ebp,0x20(%esp)
7cca86:	8a 06                	mov    (%esi),%al
7cca88:	b9 10 00 00 00       	mov    $0x10,%ecx
7cca8d:	0f b6 d7             	movzbl %bh,%edx
7cca90:	46                   	inc    %esi
7cca91:	c1 e2 08             	shl    $0x8,%edx
7cca94:	0f b6 c0             	movzbl %al,%eax
7cca97:	0b d0                	or     %eax,%edx
7cca99:	0f b6 c3             	movzbl %bl,%eax
7cca9c:	2b c8                	sub    %eax,%ecx
7cca9e:	d3 e2                	shl    %cl,%edx
7ccaa0:	09 54 24 14          	or     %edx,0x14(%esp)
7ccaa4:	80 c3 10             	add    $0x10,%bl
7ccaa7:	8a 54 24 13          	mov    0x13(%esp),%dl
7ccaab:	88 5c 24 12          	mov    %bl,0x12(%esp)
7ccaaf:	38 54 24 12          	cmp    %dl,0x12(%esp)
7ccab3:	b9 20 00 00 00       	mov    $0x20,%ecx
7ccab8:	0f b6 44 24 12       	movzbl 0x12(%esp),%eax
7ccabd:	0f b6 da             	movzbl %dl,%ebx
7ccac0:	0f 42 d8             	cmovb  %eax,%ebx
7ccac3:	8b 44 24 14          	mov    0x14(%esp),%eax
7ccac7:	28 5c 24 12          	sub    %bl,0x12(%esp)
7ccacb:	0f b6 d3             	movzbl %bl,%edx
7ccace:	2b ca                	sub    %edx,%ecx
7ccad0:	d3 e8                	shr    %cl,%eax
7ccad2:	8b ca                	mov    %edx,%ecx
7ccad4:	d3 64 24 38          	shll   %cl,0x38(%esp)
7ccad8:	8a 54 24 13          	mov    0x13(%esp),%dl
7ccadc:	09 44 24 38          	or     %eax,0x38(%esp)
7ccae0:	d3 64 24 14          	shll   %cl,0x14(%esp)
7ccae4:	2a d3                	sub    %bl,%dl
7ccae6:	8a 5c 24 12          	mov    0x12(%esp),%bl
7ccaea:	88 54 24 13          	mov    %dl,0x13(%esp)
7ccaee:	0f 85 4c ff ff ff    	jne    0x7cca40
7ccaf4:	8b 44 24 40          	mov    0x40(%esp),%eax
7ccaf8:	0f b6 80 bc c3 c2 00 	movzbl 0xc2c3bc(%eax),%eax
7ccaff:	8b 4c 24 38          	mov    0x38(%esp),%ecx
7ccb03:	83 c1 05             	add    $0x5,%ecx
7ccb06:	03 c1                	add    %ecx,%eax
7ccb08:	89 44 24 30          	mov    %eax,0x30(%esp)
7ccb0c:	8b 44 24 18          	mov    0x18(%esp),%eax
7ccb10:	0f b7 c8             	movzwl %ax,%ecx
7ccb13:	8b 87 98 00 00 00    	mov    0x98(%edi),%eax
7ccb19:	0f b7 40 02          	movzwl 0x2(%eax),%eax
7ccb1d:	89 44 24 40          	mov    %eax,0x40(%esp)
7ccb21:	8b 44 24 2c          	mov    0x2c(%esp),%eax
7ccb25:	0f b7 d0             	movzwl %ax,%edx
7ccb28:	8b 44 24 1c          	mov    0x1c(%esp),%eax
7ccb2c:	2b d1                	sub    %ecx,%edx
7ccb2e:	0f b7 c0             	movzwl %ax,%eax
7ccb31:	2b c1                	sub    %ecx,%eax
7ccb33:	89 54 24 48          	mov    %edx,0x48(%esp)
7ccb37:	40                   	inc    %eax
7ccb38:	0f b7 ca             	movzwl %dx,%ecx
7ccb3b:	0f af 44 24 40       	imul   0x40(%esp),%eax
7ccb40:	33 d2                	xor    %edx,%edx
7ccb42:	41                   	inc    %ecx
7ccb43:	48                   	dec    %eax
7ccb44:	f7 f1                	div    %ecx
7ccb46:	8b 97 94 00 00 00    	mov    0x94(%edi),%edx
7ccb4c:	0f b7 c0             	movzwl %ax,%eax
7ccb4f:	89 44 24 4c          	mov    %eax,0x4c(%esp)
7ccb53:	b8 01 00 00 00       	mov    $0x1,%eax
7ccb58:	89 44 24 2c          	mov    %eax,0x2c(%esp)