608f88:	c2 04 00             	ret    $0x4
608f8b:	cc                   	int3
608f8c:	cc                   	int3
608f8d:	cc                   	int3
608f8e:	cc                   	int3
608f8f:	cc                   	int3
608f90:	8b 44 24 04          	mov    0x4(%esp),%eax
608f94:	53                   	push   %ebx
608f95:	56                   	push   %esi
608f96:	57                   	push   %edi
608f97:	8b 30                	mov    (%eax),%esi
608f99:	8b f9                	mov    %ecx,%edi
608f9b:	8b 50 04             	mov    0x4(%eax),%edx
608f9e:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
608fa4:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
608fab:	8b 5f 04             	mov    0x4(%edi),%ebx
608fae:	89 57 04             	mov    %edx,0x4(%edi)
608fb1:	89 37                	mov    %esi,(%edi)
608fb3:	85 db                	test   %ebx,%ebx
608fb5:	74 21                	je     0x608fd8
608fb7:	83 ce ff             	or     $0xffffffff,%esi
608fba:	8b c6                	mov    %esi,%eax
608fbc:	f0 0f c1 43 04       	lock xadd %eax,0x4(%ebx)
608fc1:	75 15                	jne    0x608fd8
608fc3:	8b 03                	mov    (%ebx),%eax
608fc5:	8b cb                	mov    %ebx,%ecx
608fc7:	ff 10                	call   *(%eax)
608fc9:	f0 0f c1 73 08       	lock xadd %esi,0x8(%ebx)
608fce:	4e                   	dec    %esi
608fcf:	75 07                	jne    0x608fd8
608fd1:	8b 03                	mov    (%ebx),%eax
608fd3:	8b cb                	mov    %ebx,%ecx
608fd5:	ff 50 04             	call   *0x4(%eax)
608fd8:	8b c7                	mov    %edi,%eax
608fda:	5f                   	pop    %edi
608fdb:	5e                   	pop    %esi
608fdc:	5b                   	pop    %ebx
608fdd:	c2 04 00             	ret    $0x4
608fe0:	cc                   	int3
608fe1:	cc                   	int3
608fe2:	cc                   	int3
608fe3:	cc                   	int3
608fe4:	cc                   	int3
608fe5:	cc                   	int3
608fe6:	cc                   	int3
608fe7:	cc                   	int3
608fe8:	cc                   	int3
608fe9:	cc                   	int3
608fea:	cc                   	int3
608feb:	cc                   	int3
608fec:	cc                   	int3
608fed:	cc                   	int3
608fee:	cc                   	int3
608fef:	cc                   	int3
608ff0:	cc                   	int3
608ff1:	cc                   	int3
608ff2:	cc                   	int3
608ff3:	cc                   	int3
608ff4:	cc                   	int3
608ff5:	cc                   	int3
608ff6:	cc                   	int3
608ff7:	cc                   	int3
608ff8:	cc                   	int3
608ff9:	cc                   	int3
608ffa:	cc                   	int3
608ffb:	cc                   	int3
608ffc:	cc                   	int3
608ffd:	cc                   	int3
608ffe:	cc                   	int3
608fff:	cc                   	int3
609000:	8b 44 24 04          	mov    0x4(%esp),%eax
609004:	56                   	push   %esi
609005:	8b f1                	mov    %ecx,%esi
609007:	57                   	push   %edi
609008:	8b 48 04             	mov    0x4(%eax),%ecx
60900b:	8b 00                	mov    (%eax),%eax
60900d:	85 c9                	test   %ecx,%ecx
60900f:	74 04                	je     0x609015
609011:	f0 ff 41 04          	lock incl 0x4(%ecx)
609015:	8b 7e 04             	mov    0x4(%esi),%edi
609018:	89 4e 04             	mov    %ecx,0x4(%esi)
60901b:	89 06                	mov    %eax,(%esi)
60901d:	85 ff                	test   %edi,%edi
60901f:	74 2a                	je     0x60904b
609021:	53                   	push   %ebx
609022:	83 cb ff             	or     $0xffffffff,%ebx
609025:	8b c3                	mov    %ebx,%eax
609027:	f0 0f c1 47 04       	lock xadd %eax,0x4(%edi)
60902c:	75 15                	jne    0x609043
60902e:	8b 07                	mov    (%edi),%eax
609030:	8b cf                	mov    %edi,%ecx
609032:	ff 10                	call   *(%eax)
609034:	f0 0f c1 5f 08       	lock xadd %ebx,0x8(%edi)
609039:	4b                   	dec    %ebx
60903a:	75 07                	jne    0x609043
60903c:	8b 07                	mov    (%edi),%eax
60903e:	8b cf                	mov    %edi,%ecx
609040:	ff 50 04             	call   *0x4(%eax)
609043:	5b                   	pop    %ebx
609044:	5f                   	pop    %edi
609045:	8b c6                	mov    %esi,%eax
609047:	5e                   	pop    %esi
609048:	c2 04 00             	ret    $0x4
60904b:	5f                   	pop    %edi
60904c:	8b c6                	mov    %esi,%eax
60904e:	5e                   	pop    %esi
60904f:	c2 04 00             	ret    $0x4
609052:	cc                   	int3
609053:	cc                   	int3
609054:	cc                   	int3
609055:	cc                   	int3
609056:	cc                   	int3
609057:	cc                   	int3
609058:	cc                   	int3
609059:	cc                   	int3
60905a:	cc                   	int3
60905b:	cc                   	int3
60905c:	cc                   	int3
60905d:	cc                   	int3
60905e:	cc                   	int3
60905f:	cc                   	int3
609060:	cc                   	int3
609061:	cc                   	int3
609062:	cc                   	int3
609063:	cc                   	int3
609064:	cc                   	int3
609065:	cc                   	int3
609066:	cc                   	int3
609067:	cc                   	int3
609068:	cc                   	int3
609069:	cc                   	int3
60906a:	cc                   	int3
60906b:	cc                   	int3
60906c:	cc                   	int3
60906d:	cc                   	int3
60906e:	cc                   	int3
60906f:	cc                   	int3
609070:	56                   	push   %esi
609071:	8b f1                	mov    %ecx,%esi
609073:	8b 4c 24 08          	mov    0x8(%esp),%ecx
609077:	3b f1                	cmp    %ecx,%esi
609079:	74 50                	je     0x6090cb
60907b:	8b 11                	mov    (%ecx),%edx
60907d:	8b 41 04             	mov    0x4(%ecx),%eax
609080:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
609086:	c7 41 04 00 00 00 00 	movl   $0x0,0x4(%ecx)
60908d:	57                   	push   %edi
60908e:	8b 7e 04             	mov    0x4(%esi),%edi
609091:	89 46 04             	mov    %eax,0x4(%esi)
609094:	89 16                	mov    %edx,(%esi)
609096:	85 ff                	test   %edi,%edi
609098:	74 2a                	je     0x6090c4
60909a:	53                   	push   %ebx
60909b:	83 cb ff             	or     $0xffffffff,%ebx
60909e:	8b c3                	mov    %ebx,%eax
6090a0:	f0 0f c1 47 04       	lock xadd %eax,0x4(%edi)
6090a5:	75 15                	jne    0x6090bc
6090a7:	8b 07                	mov    (%edi),%eax
6090a9:	8b cf                	mov    %edi,%ecx
6090ab:	ff 10                	call   *(%eax)
6090ad:	f0 0f c1 5f 08       	lock xadd %ebx,0x8(%edi)
6090b2:	4b                   	dec    %ebx
6090b3:	75 07                	jne    0x6090bc
6090b5:	8b 07                	mov    (%edi),%eax
6090b7:	8b cf                	mov    %edi,%ecx
6090b9:	ff 50 04             	call   *0x4(%eax)
6090bc:	5b                   	pop    %ebx
6090bd:	5f                   	pop    %edi
6090be:	8b c6                	mov    %esi,%eax
6090c0:	5e                   	pop    %esi
6090c1:	c2 04 00             	ret    $0x4
6090c4:	5f                   	pop    %edi
6090c5:	8b c6                	mov    %esi,%eax
6090c7:	5e                   	pop    %esi
6090c8:	c2 04 00             	ret    $0x4
6090cb:	8b c6                	mov    %esi,%eax
6090cd:	5e                   	pop    %esi
6090ce:	c2 04 00             	ret    $0x4
6090d1:	cc                   	int3
6090d2:	cc                   	int3
6090d3:	cc                   	int3
6090d4:	cc                   	int3
6090d5:	cc                   	int3
6090d6:	cc                   	int3
6090d7:	cc                   	int3
6090d8:	cc                   	int3
6090d9:	cc                   	int3
6090da:	cc                   	int3
6090db:	cc                   	int3
6090dc:	cc                   	int3
6090dd:	cc                   	int3
6090de:	cc                   	int3
6090df:	cc                   	int3
6090e0:	cc                   	int3
6090e1:	cc                   	int3
6090e2:	cc                   	int3
6090e3:	cc                   	int3
6090e4:	cc                   	int3
6090e5:	cc                   	int3
6090e6:	cc                   	int3
6090e7:	cc                   	int3
6090e8:	cc                   	int3
6090e9:	cc                   	int3
6090ea:	cc                   	int3
6090eb:	cc                   	int3
6090ec:	cc                   	int3
6090ed:	cc                   	int3
6090ee:	cc                   	int3
6090ef:	cc                   	int3
6090f0:	8b 44 24 04          	mov    0x4(%esp),%eax
6090f4:	56                   	push   %esi
6090f5:	8b f1                	mov    %ecx,%esi
6090f7:	3b f0                	cmp    %eax,%esi
6090f9:	74 06                	je     0x609101
6090fb:	50                   	push   %eax
6090fc:	e8 25 48 e1 ff       	call   0x41d926
609101:	8b c6                	mov    %esi,%eax
609103:	5e                   	pop    %esi
609104:	c2 04 00             	ret    $0x4
609107:	cc                   	int3
609108:	cc                   	int3
609109:	cc                   	int3
60910a:	cc                   	int3
60910b:	cc                   	int3
60910c:	cc                   	int3
60910d:	cc                   	int3
60910e:	cc                   	int3
60910f:	cc                   	int3
609110:	56                   	push   %esi
609111:	8b f1                	mov    %ecx,%esi
609113:	8b 4c 24 08          	mov    0x8(%esp),%ecx
609117:	3b f1                	cmp    %ecx,%esi
609119:	74 16                	je     0x609131
60911b:	8b 01                	mov    (%ecx),%eax
60911d:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
609123:	8b 0e                	mov    (%esi),%ecx
609125:	89 06                	mov    %eax,(%esi)
609127:	85 c9                	test   %ecx,%ecx
609129:	74 06                	je     0x609131
60912b:	8b 01                	mov    (%ecx),%eax
60912d:	6a 01                	push   $0x1
60912f:	ff 10                	call   *(%eax)
609131:	8b c6                	mov    %esi,%eax
609133:	5e                   	pop    %esi
609134:	c2 04 00             	ret    $0x4
609137:	cc                   	int3
609138:	cc                   	int3
609139:	cc                   	int3
60913a:	cc                   	int3
60913b:	cc                   	int3
60913c:	cc                   	int3
60913d:	cc                   	int3
60913e:	cc                   	int3
60913f:	cc                   	int3
609140:	56                   	push   %esi
609141:	8b f1                	mov    %ecx,%esi
609143:	8b 4c 24 08          	mov    0x8(%esp),%ecx
609147:	3b f1                	cmp    %ecx,%esi
609149:	74 16                	je     0x609161
60914b:	8b 01                	mov    (%ecx),%eax
60914d:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
609153:	8b 0e                	mov    (%esi),%ecx
609155:	89 06                	mov    %eax,(%esi)
609157:	85 c9                	test   %ecx,%ecx
609159:	74 06                	je     0x609161
60915b:	8b 01                	mov    (%ecx),%eax
60915d:	6a 01                	push   $0x1
60915f:	ff 10                	call   *(%eax)
609161:	8b c6                	mov    %esi,%eax
609163:	5e                   	pop    %esi
609164:	c2 04 00             	ret    $0x4
609167:	cc                   	int3
609168:	cc                   	int3
609169:	cc                   	int3
60916a:	cc                   	int3
60916b:	cc                   	int3
60916c:	cc                   	int3
60916d:	cc                   	int3
60916e:	cc                   	int3
60916f:	cc                   	int3
609170:	56                   	push   %esi
609171:	8b f1                	mov    %ecx,%esi
609173:	8b 0e                	mov    (%esi),%ecx
609175:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
60917b:	85 c9                	test   %ecx,%ecx
60917d:	74 06                	je     0x609185
60917f:	8b 01                	mov    (%ecx),%eax
609181:	6a 01                	push   $0x1
609183:	ff 10                	call   *(%eax)
609185:	8b c6                	mov    %esi,%eax
609187:	5e                   	pop    %esi
609188:	c2 04 00             	ret    $0x4
60918b:	cc                   	int3
60918c:	cc                   	int3
60918d:	cc                   	int3
60918e:	cc                   	int3
60918f:	cc                   	int3
609190:	cc                   	int3
609191:	cc                   	int3
609192:	cc                   	int3
609193:	cc                   	int3
609194:	cc                   	int3
609195:	cc                   	int3
609196:	cc                   	int3
609197:	cc                   	int3
609198:	cc                   	int3
609199:	cc                   	int3
60919a:	cc                   	int3
60919b:	cc                   	int3
60919c:	cc                   	int3
60919d:	cc                   	int3
60919e:	cc                   	int3
60919f:	cc                   	int3
6091a0:	55                   	push   %ebp
6091a1:	56                   	push   %esi
6091a2:	8b 74 24 0c          	mov    0xc(%esp),%esi
6091a6:	8b e9                	mov    %ecx,%ebp
6091a8:	3b ee                	cmp    %esi,%ebp
6091aa:	0f 84 d0 00 00 00    	je     0x609280
6091b0:	8b 16                	mov    (%esi),%edx
6091b2:	8b 46 04             	mov    0x4(%esi),%eax
6091b5:	3b d0                	cmp    %eax,%edx
6091b7:	75 0d                	jne    0x6091c6
6091b9:	8b 45 00             	mov    0x0(%ebp),%eax
6091bc:	89 45 04             	mov    %eax,0x4(%ebp)
6091bf:	8b c5                	mov    %ebp,%eax
6091c1:	5e                   	pop    %esi
6091c2:	5d                   	pop    %ebp
6091c3:	c2 04 00             	ret    $0x4
6091c6:	8b 4d 00             	mov    0x0(%ebp),%ecx
6091c9:	53                   	push   %ebx
6091ca:	8b 5d 04             	mov    0x4(%ebp),%ebx
6091cd:	57                   	push   %edi
6091ce:	8b f8                	mov    %eax,%edi
6091d0:	2b d9                	sub    %ecx,%ebx
6091d2:	2b fa                	sub    %edx,%edi
6091d4:	c1 fb 02             	sar    $0x2,%ebx
6091d7:	c1 ff 02             	sar    $0x2,%edi
6091da:	3b fb                	cmp    %ebx,%edi
6091dc:	77 27                	ja     0x609205
6091de:	2b c2                	sub    %edx,%eax
6091e0:	50                   	push   %eax
6091e1:	52                   	push   %edx
6091e2:	51                   	push   %ecx
6091e3:	e8 9a 59 e1 ff       	call   0x41eb82
6091e8:	8b 4e 04             	mov    0x4(%esi),%ecx
6091eb:	83 c4 0c             	add    $0xc,%esp
6091ee:	2b 0e                	sub    (%esi),%ecx
6091f0:	8b 45 00             	mov    0x0(%ebp),%eax
6091f3:	c1 f9 02             	sar    $0x2,%ecx