6ec8f3:	8b f1                	mov    %ecx,%esi
6ec8f5:	e8 83 e0 d3 ff       	call   0x42a97d
6ec8fa:	83 c4 04             	add    $0x4,%esp
6ec8fd:	85 c0                	test   %eax,%eax
6ec8ff:	74 15                	je     0x6ec916
6ec901:	89 06                	mov    %eax,(%esi)
6ec903:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
6ec909:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
6ec910:	8b 06                	mov    (%esi),%eax
6ec912:	89 30                	mov    %esi,(%eax)
6ec914:	5e                   	pop    %esi
6ec915:	c3                   	ret
6ec916:	e8 72 10 d5 ff       	call   0x43d98d
6ec91b:	cc                   	int3
6ec91c:	cc                   	int3
6ec91d:	cc                   	int3
6ec91e:	cc                   	int3
6ec91f:	cc                   	int3
6ec920:	cc                   	int3
6ec921:	cc                   	int3
6ec922:	cc                   	int3
6ec923:	cc                   	int3
6ec924:	cc                   	int3
6ec925:	cc                   	int3
6ec926:	cc                   	int3
6ec927:	cc                   	int3
6ec928:	cc                   	int3
6ec929:	cc                   	int3
6ec92a:	cc                   	int3
6ec92b:	cc                   	int3
6ec92c:	cc                   	int3
6ec92d:	cc                   	int3
6ec92e:	cc                   	int3
6ec92f:	cc                   	int3
6ec930:	56                   	push   %esi
6ec931:	8b f1                	mov    %ecx,%esi
6ec933:	ff 36                	push   (%esi)
6ec935:	e8 55 4e d1 ff       	call   0x40178f
6ec93a:	83 c4 04             	add    $0x4,%esp
6ec93d:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
6ec943:	5e                   	pop    %esi
6ec944:	c3                   	ret
6ec945:	cc                   	int3
6ec946:	cc                   	int3
6ec947:	cc                   	int3
6ec948:	cc                   	int3
6ec949:	cc                   	int3
6ec94a:	cc                   	int3
6ec94b:	cc                   	int3
6ec94c:	cc                   	int3
6ec94d:	cc                   	int3
6ec94e:	cc                   	int3
6ec94f:	cc                   	int3
6ec950:	8b c1                	mov    %ecx,%eax
6ec952:	c3                   	ret
6ec953:	cc                   	int3
6ec954:	cc                   	int3
6ec955:	cc                   	int3
6ec956:	cc                   	int3
6ec957:	cc                   	int3
6ec958:	cc                   	int3
6ec959:	cc                   	int3
6ec95a:	cc                   	int3
6ec95b:	cc                   	int3
6ec95c:	cc                   	int3
6ec95d:	cc                   	int3
6ec95e:	cc                   	int3
6ec95f:	cc                   	int3
6ec960:	8b c1                	mov    %ecx,%eax
6ec962:	c3                   	ret
6ec963:	cc                   	int3
6ec964:	cc                   	int3
6ec965:	cc                   	int3
6ec966:	cc                   	int3
6ec967:	cc                   	int3
6ec968:	cc                   	int3
6ec969:	cc                   	int3
6ec96a:	cc                   	int3
6ec96b:	cc                   	int3
6ec96c:	cc                   	int3
6ec96d:	cc                   	int3
6ec96e:	cc                   	int3
6ec96f:	cc                   	int3
6ec970:	8b c1                	mov    %ecx,%eax
6ec972:	c3                   	ret
6ec973:	cc                   	int3
6ec974:	cc                   	int3
6ec975:	cc                   	int3
6ec976:	cc                   	int3
6ec977:	cc                   	int3
6ec978:	cc                   	int3
6ec979:	cc                   	int3
6ec97a:	cc                   	int3
6ec97b:	cc                   	int3
6ec97c:	cc                   	int3
6ec97d:	cc                   	int3
6ec97e:	cc                   	int3
6ec97f:	cc                   	int3
6ec980:	8b c1                	mov    %ecx,%eax
6ec982:	c3                   	ret
6ec983:	cc                   	int3
6ec984:	cc                   	int3
6ec985:	cc                   	int3
6ec986:	cc                   	int3
6ec987:	cc                   	int3
6ec988:	cc                   	int3
6ec989:	cc                   	int3
6ec98a:	cc                   	int3
6ec98b:	cc                   	int3
6ec98c:	cc                   	int3
6ec98d:	cc                   	int3
6ec98e:	cc                   	int3
6ec98f:	cc                   	int3
6ec990:	8b c1                	mov    %ecx,%eax
6ec992:	c3                   	ret
6ec993:	cc                   	int3
6ec994:	cc                   	int3
6ec995:	cc                   	int3
6ec996:	cc                   	int3
6ec997:	cc                   	int3
6ec998:	cc                   	int3
6ec999:	cc                   	int3
6ec99a:	cc                   	int3
6ec99b:	cc                   	int3
6ec99c:	cc                   	int3
6ec99d:	cc                   	int3
6ec99e:	cc                   	int3
6ec99f:	cc                   	int3
6ec9a0:	8b c1                	mov    %ecx,%eax
6ec9a2:	c3                   	ret
6ec9a3:	cc                   	int3
6ec9a4:	cc                   	int3
6ec9a5:	cc                   	int3
6ec9a6:	cc                   	int3
6ec9a7:	cc                   	int3
6ec9a8:	cc                   	int3
6ec9a9:	cc                   	int3
6ec9aa:	cc                   	int3
6ec9ab:	cc                   	int3
6ec9ac:	cc                   	int3
6ec9ad:	cc                   	int3
6ec9ae:	cc                   	int3
6ec9af:	cc                   	int3
6ec9b0:	8b c1                	mov    %ecx,%eax
6ec9b2:	c3                   	ret
6ec9b3:	cc                   	int3
6ec9b4:	cc                   	int3
6ec9b5:	cc                   	int3
6ec9b6:	cc                   	int3
6ec9b7:	cc                   	int3
6ec9b8:	cc                   	int3
6ec9b9:	cc                   	int3
6ec9ba:	cc                   	int3
6ec9bb:	cc                   	int3
6ec9bc:	cc                   	int3
6ec9bd:	cc                   	int3
6ec9be:	cc                   	int3
6ec9bf:	cc                   	int3
6ec9c0:	8b c1                	mov    %ecx,%eax
6ec9c2:	c3                   	ret
6ec9c3:	cc                   	int3
6ec9c4:	cc                   	int3
6ec9c5:	cc                   	int3
6ec9c6:	cc                   	int3
6ec9c7:	cc                   	int3
6ec9c8:	cc                   	int3
6ec9c9:	cc                   	int3
6ec9ca:	cc                   	int3
6ec9cb:	cc                   	int3
6ec9cc:	cc                   	int3
6ec9cd:	cc                   	int3
6ec9ce:	cc                   	int3
6ec9cf:	cc                   	int3
6ec9d0:	8b 41 08             	mov    0x8(%ecx),%eax
6ec9d3:	8b 4c 24 04          	mov    0x4(%esp),%ecx
6ec9d7:	48                   	dec    %eax
6ec9d8:	c1 e9 02             	shr    $0x2,%ecx
6ec9db:	23 c1                	and    %ecx,%eax
6ec9dd:	c2 04 00             	ret    $0x4
6ec9e0:	cc                   	int3
6ec9e1:	cc                   	int3
6ec9e2:	cc                   	int3
6ec9e3:	cc                   	int3
6ec9e4:	cc                   	int3
6ec9e5:	cc                   	int3
6ec9e6:	cc                   	int3
6ec9e7:	cc                   	int3
6ec9e8:	cc                   	int3
6ec9e9:	cc                   	int3
6ec9ea:	cc                   	int3
6ec9eb:	cc                   	int3
6ec9ec:	cc                   	int3
6ec9ed:	cc                   	int3
6ec9ee:	cc                   	int3
6ec9ef:	cc                   	int3
6ec9f0:	8b 41 08             	mov    0x8(%ecx),%eax
6ec9f3:	8b 4c 24 04          	mov    0x4(%esp),%ecx
6ec9f7:	48                   	dec    %eax
6ec9f8:	c1 e9 02             	shr    $0x2,%ecx
6ec9fb:	23 c1                	and    %ecx,%eax
6ec9fd:	c2 04 00             	ret    $0x4
6eca00:	cc                   	int3
6eca01:	cc                   	int3
6eca02:	cc                   	int3
6eca03:	cc                   	int3
6eca04:	cc                   	int3
6eca05:	cc                   	int3
6eca06:	cc                   	int3
6eca07:	cc                   	int3
6eca08:	cc                   	int3
6eca09:	cc                   	int3
6eca0a:	cc                   	int3
6eca0b:	cc                   	int3
6eca0c:	cc                   	int3
6eca0d:	cc                   	int3
6eca0e:	cc                   	int3
6eca0f:	cc                   	int3
6eca10:	8b 54 24 04          	mov    0x4(%esp),%edx
6eca14:	83 ec 08             	sub    $0x8,%esp
6eca17:	55                   	push   %ebp
6eca18:	8b e9                	mov    %ecx,%ebp
6eca1a:	56                   	push   %esi
6eca1b:	be 01 00 00 00       	mov    $0x1,%esi
6eca20:	8b 4d 08             	mov    0x8(%ebp),%ecx
6eca23:	85 c9                	test   %ecx,%ecx
6eca25:	0f 45 f1             	cmovne %ecx,%esi
6eca28:	8b c6                	mov    %esi,%eax
6eca2a:	2b c1                	sub    %ecx,%eax
6eca2c:	3b c2                	cmp    %edx,%eax
6eca2e:	72 05                	jb     0x6eca35
6eca30:	83 fe 08             	cmp    $0x8,%esi
6eca33:	73 13                	jae    0x6eca48
6eca35:	b8 ff ff ff 0f       	mov    $0xfffffff,%eax
6eca3a:	2b c6                	sub    %esi,%eax
6eca3c:	3b c6                	cmp    %esi,%eax
6eca3e:	0f 82 f5 00 00 00    	jb     0x6ecb39
6eca44:	03 f6                	add    %esi,%esi
6eca46:	eb e0                	jmp    0x6eca28
6eca48:	2b f1                	sub    %ecx,%esi
6eca4a:	53                   	push   %ebx
6eca4b:	8b 5d 0c             	mov    0xc(%ebp),%ebx
6eca4e:	57                   	push   %edi
6eca4f:	8d 04 31             	lea    (%ecx,%esi,1),%eax
6eca52:	c1 eb 02             	shr    $0x2,%ebx
6eca55:	50                   	push   %eax
6eca56:	8d 4c 24 20          	lea    0x20(%esp),%ecx
6eca5a:	89 5c 24 14          	mov    %ebx,0x14(%esp)
6eca5e:	e8 6b a1 d4 ff       	call   0x436bce
6eca63:	8b 4d 04             	mov    0x4(%ebp),%ecx
6eca66:	8b 7d 08             	mov    0x8(%ebp),%edi
6eca69:	c1 e3 02             	shl    $0x2,%ebx
6eca6c:	c1 e7 02             	shl    $0x2,%edi
6eca6f:	89 44 24 1c          	mov    %eax,0x1c(%esp)
6eca73:	8d 14 19             	lea    (%ecx,%ebx,1),%edx
6eca76:	03 d8                	add    %eax,%ebx
6eca78:	2b fa                	sub    %edx,%edi
6eca7a:	03 f9                	add    %ecx,%edi
6eca7c:	57                   	push   %edi
6eca7d:	52                   	push   %edx
6eca7e:	53                   	push   %ebx
6eca7f:	e8 fe 20 d3 ff       	call   0x41eb82
6eca84:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
6eca88:	8d 14 1f             	lea    (%edi,%ebx,1),%edx
6eca8b:	83 c4 0c             	add    $0xc,%esp
6eca8e:	89 54 24 14          	mov    %edx,0x14(%esp)
6eca92:	3b ce                	cmp    %esi,%ecx
6eca94:	77 3a                	ja     0x6ecad0
6eca96:	8b 45 04             	mov    0x4(%ebp),%eax
6eca99:	8d 1c 8d 00 00 00 00 	lea    0x0(,%ecx,4),%ebx
6ecaa0:	8b f8                	mov    %eax,%edi
6ecaa2:	2b f8                	sub    %eax,%edi
6ecaa4:	03 fb                	add    %ebx,%edi
6ecaa6:	57                   	push   %edi
6ecaa7:	50                   	push   %eax
6ecaa8:	52                   	push   %edx
6ecaa9:	e8 d4 20 d3 ff       	call   0x41eb82
6ecaae:	8b c6                	mov    %esi,%eax
6ecab0:	2b 44 24 1c          	sub    0x1c(%esp),%eax
6ecab4:	c1 e0 02             	shl    $0x2,%eax
6ecab7:	50                   	push   %eax
6ecab8:	8b 44 24 24          	mov    0x24(%esp),%eax
6ecabc:	03 c7                	add    %edi,%eax
6ecabe:	6a 00                	push   $0x0
6ecac0:	50                   	push   %eax
6ecac1:	e8 f2 7c d2 ff       	call   0x4147b8
6ecac6:	53                   	push   %ebx
6ecac7:	8b 5c 24 38          	mov    0x38(%esp),%ebx
6ecacb:	6a 00                	push   $0x0
6ecacd:	53                   	push   %ebx
6ecace:	eb 3d                	jmp    0x6ecb0d
6ecad0:	8b 4d 04             	mov    0x4(%ebp),%ecx
6ecad3:	8d 1c b5 00 00 00 00 	lea    0x0(,%esi,4),%ebx
6ecada:	53                   	push   %ebx
6ecadb:	51                   	push   %ecx
6ecadc:	52                   	push   %edx
6ecadd:	e8 a0 20 d3 ff       	call   0x41eb82
6ecae2:	8b 7d 04             	mov    0x4(%ebp),%edi
6ecae5:	8b 54 24 1c          	mov    0x1c(%esp),%edx
6ecae9:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
6ecaec:	2b f8                	sub    %eax,%edi
6ecaee:	8d 0c 95 00 00 00 00 	lea    0x0(,%edx,4),%ecx
6ecaf5:	03 f9                	add    %ecx,%edi
6ecaf7:	57                   	push   %edi
6ecaf8:	50                   	push   %eax
6ecaf9:	ff 74 24 30          	push   0x30(%esp)
6ecafd:	e8 80 20 d3 ff       	call   0x41eb82
6ecb02:	53                   	push   %ebx
6ecb03:	8b 5c 24 38          	mov    0x38(%esp),%ebx
6ecb07:	6a 00                	push   $0x0
6ecb09:	8d 04 1f             	lea    (%edi,%ebx,1),%eax
6ecb0c:	50                   	push   %eax
6ecb0d:	e8 a6 7c d2 ff       	call   0x4147b8
6ecb12:	8b 45 04             	mov    0x4(%ebp),%eax
6ecb15:	83 c4 24             	add    $0x24,%esp
6ecb18:	85 c0                	test   %eax,%eax
6ecb1a:	74 0d                	je     0x6ecb29
6ecb1c:	ff 75 08             	push   0x8(%ebp)
6ecb1f:	8d 4c 24 20          	lea    0x20(%esp),%ecx
6ecb23:	50                   	push   %eax
6ecb24:	e8 11 c8 d2 ff       	call   0x41933a
6ecb29:	5f                   	pop    %edi
6ecb2a:	89 5d 04             	mov    %ebx,0x4(%ebp)
6ecb2d:	01 75 08             	add    %esi,0x8(%ebp)
6ecb30:	5b                   	pop    %ebx
6ecb31:	5e                   	pop    %esi
6ecb32:	5d                   	pop    %ebp
6ecb33:	83 c4 08             	add    $0x8,%esp
6ecb36:	c2 04 00             	ret    $0x4
6ecb39:	68 d8 b7 bd 00       	push   $0xbdb7d8
6ecb3e:	e8 d3 cc d3 ff       	call   0x429816
6ecb43:	cc                   	int3
6ecb44:	cc                   	int3
6ecb45:	cc                   	int3
6ecb46:	cc                   	int3
6ecb47:	cc                   	int3
6ecb48:	cc                   	int3
6ecb49:	cc                   	int3
6ecb4a:	cc                   	int3
6ecb4b:	cc                   	int3
6ecb4c:	cc                   	int3
6ecb4d:	cc                   	int3
6ecb4e:	cc                   	int3
6ecb4f:	cc                   	int3
6ecb50:	cc                   	int3
6ecb51:	cc                   	int3
6ecb52:	cc                   	int3
6ecb53:	cc                   	int3
6ecb54:	cc                   	int3
6ecb55:	cc                   	int3
6ecb56:	cc                   	int3