4cd8c8:	8b 03                	mov    (%ebx),%eax
4cd8ca:	8b cb                	mov    %ebx,%ecx
4cd8cc:	ff 10                	call   *(%eax)
4cd8ce:	83 c8 ff             	or     $0xffffffff,%eax
4cd8d1:	f0 0f c1 43 08       	lock xadd %eax,0x8(%ebx)
4cd8d6:	75 07                	jne    0x4cd8df
4cd8d8:	8b 03                	mov    (%ebx),%eax
4cd8da:	8b cb                	mov    %ebx,%ecx
4cd8dc:	ff 50 04             	call   *0x4(%eax)
4cd8df:	89 7e 04             	mov    %edi,0x4(%esi)
4cd8e2:	5f                   	pop    %edi
4cd8e3:	89 2e                	mov    %ebp,(%esi)
4cd8e5:	5e                   	pop    %esi
4cd8e6:	5d                   	pop    %ebp
4cd8e7:	5b                   	pop    %ebx
4cd8e8:	c2 04 00             	ret    $0x4
4cd8eb:	cc                   	int3
4cd8ec:	cc                   	int3
4cd8ed:	cc                   	int3
4cd8ee:	cc                   	int3
4cd8ef:	cc                   	int3
4cd8f0:	cc                   	int3
4cd8f1:	cc                   	int3
4cd8f2:	cc                   	int3
4cd8f3:	cc                   	int3
4cd8f4:	cc                   	int3
4cd8f5:	cc                   	int3
4cd8f6:	cc                   	int3
4cd8f7:	cc                   	int3
4cd8f8:	cc                   	int3
4cd8f9:	cc                   	int3
4cd8fa:	cc                   	int3
4cd8fb:	cc                   	int3
4cd8fc:	cc                   	int3
4cd8fd:	cc                   	int3
4cd8fe:	cc                   	int3
4cd8ff:	cc                   	int3
4cd900:	8b 44 24 04          	mov    0x4(%esp),%eax
4cd904:	53                   	push   %ebx
4cd905:	55                   	push   %ebp
4cd906:	56                   	push   %esi
4cd907:	8b 28                	mov    (%eax),%ebp
4cd909:	8b f1                	mov    %ecx,%esi
4cd90b:	57                   	push   %edi
4cd90c:	8b 78 04             	mov    0x4(%eax),%edi
4cd90f:	85 ff                	test   %edi,%edi
4cd911:	74 04                	je     0x4cd917
4cd913:	f0 ff 47 04          	lock incl 0x4(%edi)
4cd917:	8b 5e 04             	mov    0x4(%esi),%ebx
4cd91a:	85 db                	test   %ebx,%ebx
4cd91c:	74 21                	je     0x4cd93f
4cd91e:	83 c8 ff             	or     $0xffffffff,%eax
4cd921:	f0 0f c1 43 04       	lock xadd %eax,0x4(%ebx)
4cd926:	75 17                	jne    0x4cd93f
4cd928:	8b 03                	mov    (%ebx),%eax
4cd92a:	8b cb                	mov    %ebx,%ecx
4cd92c:	ff 10                	call   *(%eax)
4cd92e:	83 c8 ff             	or     $0xffffffff,%eax
4cd931:	f0 0f c1 43 08       	lock xadd %eax,0x8(%ebx)
4cd936:	75 07                	jne    0x4cd93f
4cd938:	8b 03                	mov    (%ebx),%eax
4cd93a:	8b cb                	mov    %ebx,%ecx
4cd93c:	ff 50 04             	call   *0x4(%eax)
4cd93f:	89 7e 04             	mov    %edi,0x4(%esi)
4cd942:	5f                   	pop    %edi
4cd943:	89 2e                	mov    %ebp,(%esi)
4cd945:	5e                   	pop    %esi
4cd946:	5d                   	pop    %ebp
4cd947:	5b                   	pop    %ebx
4cd948:	c2 04 00             	ret    $0x4
4cd94b:	cc                   	int3
4cd94c:	cc                   	int3
4cd94d:	cc                   	int3
4cd94e:	cc                   	int3
4cd94f:	cc                   	int3
4cd950:	cc                   	int3
4cd951:	cc                   	int3
4cd952:	cc                   	int3
4cd953:	cc                   	int3
4cd954:	cc                   	int3
4cd955:	cc                   	int3
4cd956:	cc                   	int3
4cd957:	cc                   	int3
4cd958:	cc                   	int3
4cd959:	cc                   	int3
4cd95a:	cc                   	int3
4cd95b:	cc                   	int3
4cd95c:	cc                   	int3
4cd95d:	cc                   	int3
4cd95e:	cc                   	int3
4cd95f:	cc                   	int3
4cd960:	8b 44 24 04          	mov    0x4(%esp),%eax
4cd964:	53                   	push   %ebx
4cd965:	55                   	push   %ebp
4cd966:	56                   	push   %esi
4cd967:	8b 28                	mov    (%eax),%ebp
4cd969:	8b f1                	mov    %ecx,%esi
4cd96b:	57                   	push   %edi
4cd96c:	8b 78 04             	mov    0x4(%eax),%edi
4cd96f:	85 ff                	test   %edi,%edi
4cd971:	74 04                	je     0x4cd977
4cd973:	f0 ff 47 04          	lock incl 0x4(%edi)
4cd977:	8b 5e 04             	mov    0x4(%esi),%ebx
4cd97a:	85 db                	test   %ebx,%ebx
4cd97c:	74 21                	je     0x4cd99f
4cd97e:	83 c8 ff             	or     $0xffffffff,%eax
4cd981:	f0 0f c1 43 04       	lock xadd %eax,0x4(%ebx)
4cd986:	75 17                	jne    0x4cd99f
4cd988:	8b 03                	mov    (%ebx),%eax
4cd98a:	8b cb                	mov    %ebx,%ecx
4cd98c:	ff 10                	call   *(%eax)
4cd98e:	83 c8 ff             	or     $0xffffffff,%eax
4cd991:	f0 0f c1 43 08       	lock xadd %eax,0x8(%ebx)
4cd996:	75 07                	jne    0x4cd99f
4cd998:	8b 03                	mov    (%ebx),%eax
4cd99a:	8b cb                	mov    %ebx,%ecx
4cd99c:	ff 50 04             	call   *0x4(%eax)
4cd99f:	89 7e 04             	mov    %edi,0x4(%esi)
4cd9a2:	5f                   	pop    %edi
4cd9a3:	89 2e                	mov    %ebp,(%esi)
4cd9a5:	5e                   	pop    %esi
4cd9a6:	5d                   	pop    %ebp
4cd9a7:	5b                   	pop    %ebx
4cd9a8:	c2 04 00             	ret    $0x4
4cd9ab:	cc                   	int3
4cd9ac:	cc                   	int3
4cd9ad:	cc                   	int3
4cd9ae:	cc                   	int3
4cd9af:	cc                   	int3
4cd9b0:	cc                   	int3
4cd9b1:	cc                   	int3
4cd9b2:	cc                   	int3
4cd9b3:	cc                   	int3
4cd9b4:	cc                   	int3
4cd9b5:	cc                   	int3
4cd9b6:	cc                   	int3
4cd9b7:	cc                   	int3
4cd9b8:	cc                   	int3
4cd9b9:	cc                   	int3
4cd9ba:	cc                   	int3
4cd9bb:	cc                   	int3
4cd9bc:	cc                   	int3
4cd9bd:	cc                   	int3
4cd9be:	cc                   	int3
4cd9bf:	cc                   	int3
4cd9c0:	8b 44 24 04          	mov    0x4(%esp),%eax
4cd9c4:	53                   	push   %ebx
4cd9c5:	55                   	push   %ebp
4cd9c6:	56                   	push   %esi
4cd9c7:	8b 28                	mov    (%eax),%ebp
4cd9c9:	8b f1                	mov    %ecx,%esi
4cd9cb:	57                   	push   %edi
4cd9cc:	8b 78 04             	mov    0x4(%eax),%edi
4cd9cf:	85 ff                	test   %edi,%edi
4cd9d1:	74 04                	je     0x4cd9d7
4cd9d3:	f0 ff 47 04          	lock incl 0x4(%edi)
4cd9d7:	8b 5e 04             	mov    0x4(%esi),%ebx
4cd9da:	85 db                	test   %ebx,%ebx
4cd9dc:	74 21                	je     0x4cd9ff
4cd9de:	83 c8 ff             	or     $0xffffffff,%eax
4cd9e1:	f0 0f c1 43 04       	lock xadd %eax,0x4(%ebx)
4cd9e6:	75 17                	jne    0x4cd9ff
4cd9e8:	8b 03                	mov    (%ebx),%eax
4cd9ea:	8b cb                	mov    %ebx,%ecx
4cd9ec:	ff 10                	call   *(%eax)
4cd9ee:	83 c8 ff             	or     $0xffffffff,%eax
4cd9f1:	f0 0f c1 43 08       	lock xadd %eax,0x8(%ebx)
4cd9f6:	75 07                	jne    0x4cd9ff
4cd9f8:	8b 03                	mov    (%ebx),%eax
4cd9fa:	8b cb                	mov    %ebx,%ecx
4cd9fc:	ff 50 04             	call   *0x4(%eax)
4cd9ff:	89 7e 04             	mov    %edi,0x4(%esi)
4cda02:	5f                   	pop    %edi
4cda03:	89 2e                	mov    %ebp,(%esi)
4cda05:	5e                   	pop    %esi
4cda06:	5d                   	pop    %ebp
4cda07:	5b                   	pop    %ebx
4cda08:	c2 04 00             	ret    $0x4
4cda0b:	cc                   	int3
4cda0c:	cc                   	int3
4cda0d:	cc                   	int3
4cda0e:	cc                   	int3
4cda0f:	cc                   	int3
4cda10:	cc                   	int3
4cda11:	cc                   	int3
4cda12:	cc                   	int3
4cda13:	cc                   	int3
4cda14:	cc                   	int3
4cda15:	cc                   	int3
4cda16:	cc                   	int3
4cda17:	cc                   	int3
4cda18:	cc                   	int3
4cda19:	cc                   	int3
4cda1a:	cc                   	int3
4cda1b:	cc                   	int3
4cda1c:	cc                   	int3
4cda1d:	cc                   	int3
4cda1e:	cc                   	int3
4cda1f:	cc                   	int3
4cda20:	56                   	push   %esi
4cda21:	8b f1                	mov    %ecx,%esi
4cda23:	57                   	push   %edi
4cda24:	8b 7e 04             	mov    0x4(%esi),%edi
4cda27:	85 ff                	test   %edi,%edi
4cda29:	74 35                	je     0x4cda60
4cda2b:	53                   	push   %ebx
4cda2c:	83 cb ff             	or     $0xffffffff,%ebx
4cda2f:	8b c3                	mov    %ebx,%eax
4cda31:	f0 0f c1 47 04       	lock xadd %eax,0x4(%edi)
4cda36:	75 15                	jne    0x4cda4d
4cda38:	8b 07                	mov    (%edi),%eax
4cda3a:	8b cf                	mov    %edi,%ecx
4cda3c:	ff 10                	call   *(%eax)
4cda3e:	f0 0f c1 5f 08       	lock xadd %ebx,0x8(%edi)
4cda43:	4b                   	dec    %ebx
4cda44:	75 07                	jne    0x4cda4d
4cda46:	8b 07                	mov    (%edi),%eax
4cda48:	8b cf                	mov    %edi,%ecx
4cda4a:	ff 50 04             	call   *0x4(%eax)
4cda4d:	8b 44 24 14          	mov    0x14(%esp),%eax
4cda51:	5b                   	pop    %ebx
4cda52:	89 46 04             	mov    %eax,0x4(%esi)
4cda55:	8b 44 24 0c          	mov    0xc(%esp),%eax
4cda59:	5f                   	pop    %edi
4cda5a:	89 06                	mov    %eax,(%esi)
4cda5c:	5e                   	pop    %esi
4cda5d:	c2 08 00             	ret    $0x8
4cda60:	8b 44 24 10          	mov    0x10(%esp),%eax
4cda64:	89 46 04             	mov    %eax,0x4(%esi)
4cda67:	8b 44 24 0c          	mov    0xc(%esp),%eax
4cda6b:	5f                   	pop    %edi
4cda6c:	89 06                	mov    %eax,(%esi)
4cda6e:	5e                   	pop    %esi
4cda6f:	c2 08 00             	ret    $0x8
4cda72:	cc                   	int3
4cda73:	cc                   	int3
4cda74:	cc                   	int3
4cda75:	cc                   	int3
4cda76:	cc                   	int3
4cda77:	cc                   	int3
4cda78:	cc                   	int3
4cda79:	cc                   	int3
4cda7a:	cc                   	int3
4cda7b:	cc                   	int3
4cda7c:	cc                   	int3
4cda7d:	cc                   	int3
4cda7e:	cc                   	int3
4cda7f:	cc                   	int3
4cda80:	cc                   	int3
4cda81:	cc                   	int3
4cda82:	cc                   	int3
4cda83:	cc                   	int3
4cda84:	cc                   	int3
4cda85:	cc                   	int3
4cda86:	cc                   	int3
4cda87:	cc                   	int3
4cda88:	cc                   	int3
4cda89:	cc                   	int3
4cda8a:	cc                   	int3
4cda8b:	cc                   	int3
4cda8c:	cc                   	int3
4cda8d:	cc                   	int3
4cda8e:	cc                   	int3
4cda8f:	cc                   	int3
4cda90:	56                   	push   %esi
4cda91:	8b f1                	mov    %ecx,%esi
4cda93:	57                   	push   %edi
4cda94:	8b 7e 04             	mov    0x4(%esi),%edi
4cda97:	85 ff                	test   %edi,%edi
4cda99:	74 35                	je     0x4cdad0
4cda9b:	53                   	push   %ebx
4cda9c:	83 cb ff             	or     $0xffffffff,%ebx
4cda9f:	8b c3                	mov    %ebx,%eax
4cdaa1:	f0 0f c1 47 04       	lock xadd %eax,0x4(%edi)
4cdaa6:	75 15                	jne    0x4cdabd
4cdaa8:	8b 07                	mov    (%edi),%eax
4cdaaa:	8b cf                	mov    %edi,%ecx
4cdaac:	ff 10                	call   *(%eax)
4cdaae:	f0 0f c1 5f 08       	lock xadd %ebx,0x8(%edi)
4cdab3:	4b                   	dec    %ebx
4cdab4:	75 07                	jne    0x4cdabd
4cdab6:	8b 07                	mov    (%edi),%eax
4cdab8:	8b cf                	mov    %edi,%ecx
4cdaba:	ff 50 04             	call   *0x4(%eax)
4cdabd:	8b 44 24 14          	mov    0x14(%esp),%eax
4cdac1:	5b                   	pop    %ebx
4cdac2:	89 46 04             	mov    %eax,0x4(%esi)
4cdac5:	8b 44 24 0c          	mov    0xc(%esp),%eax
4cdac9:	5f                   	pop    %edi
4cdaca:	89 06                	mov    %eax,(%esi)
4cdacc:	5e                   	pop    %esi
4cdacd:	c2 08 00             	ret    $0x8
4cdad0:	8b 44 24 10          	mov    0x10(%esp),%eax
4cdad4:	89 46 04             	mov    %eax,0x4(%esi)
4cdad7:	8b 44 24 0c          	mov    0xc(%esp),%eax
4cdadb:	5f                   	pop    %edi
4cdadc:	89 06                	mov    %eax,(%esi)
4cdade:	5e                   	pop    %esi
4cdadf:	c2 08 00             	ret    $0x8
4cdae2:	cc                   	int3
4cdae3:	cc                   	int3
4cdae4:	cc                   	int3
4cdae5:	cc                   	int3
4cdae6:	cc                   	int3
4cdae7:	cc                   	int3
4cdae8:	cc                   	int3
4cdae9:	cc                   	int3
4cdaea:	cc                   	int3
4cdaeb:	cc                   	int3
4cdaec:	cc                   	int3
4cdaed:	cc                   	int3
4cdaee:	cc                   	int3
4cdaef:	cc                   	int3
4cdaf0:	cc                   	int3
4cdaf1:	cc                   	int3
4cdaf2:	cc                   	int3
4cdaf3:	cc                   	int3
4cdaf4:	cc                   	int3
4cdaf5:	cc                   	int3
4cdaf6:	cc                   	int3
4cdaf7:	cc                   	int3
4cdaf8:	cc                   	int3
4cdaf9:	cc                   	int3
4cdafa:	cc                   	int3
4cdafb:	cc                   	int3
4cdafc:	cc                   	int3
4cdafd:	cc                   	int3
4cdafe:	cc                   	int3
4cdaff:	cc                   	int3
4cdb00:	83 ec 60             	sub    $0x60,%esp
4cdb03:	a1 24 f6 d5 00       	mov    0xd5f624,%eax
4cdb08:	33 c4                	xor    %esp,%eax
4cdb0a:	89 44 24 5c          	mov    %eax,0x5c(%esp)
4cdb0e:	56                   	push   %esi
4cdb0f:	8b 74 24 6c          	mov    0x6c(%esp),%esi
4cdb13:	b8 e9 a2 8b 2e       	mov    $0x2e8ba2e9,%eax
4cdb18:	57                   	push   %edi
4cdb19:	8b 7c 24 6c          	mov    0x6c(%esp),%edi
4cdb1d:	8b ce                	mov    %esi,%ecx
4cdb1f:	2b cf                	sub    %edi,%ecx
4cdb21:	f7 e9                	imul   %ecx
4cdb23:	c1 fa 04             	sar    $0x4,%edx
4cdb26:	8b c2                	mov    %edx,%eax
4cdb28:	c1 e8 1f             	shr    $0x1f,%eax
4cdb2b:	03 c2                	add    %edx,%eax
4cdb2d:	83 f8 02             	cmp    $0x2,%eax
4cdb30:	0f 8c 75 01 00 00    	jl     0x4cdcab
4cdb36:	53                   	push   %ebx
4cdb37:	55                   	push   %ebp
4cdb38:	bd c8 ff ff ff       	mov    $0xffffffc8,%ebp